From 49899aa8ed98b17a8f0272fcabfcb65e24215d74 Mon Sep 17 00:00:00 2001 From: chen <2659004835@qq.com> Date: Mon, 18 Apr 2022 17:08:12 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=A3=80=E6=B5=8Bapp?= =?UTF-8?q?=E5=B0=8F=E7=A8=8B=E5=BA=8F=E6=98=AF=E5=90=A6=E5=BC=80=E5=90=AF?= =?UTF-8?q?GPS=E5=AE=9A=E4=BD=8D=E6=9C=8D=E5=8A=A1=EF=BC=8C=E5=B9=B6?= =?UTF-8?q?=E5=89=8D=E5=BE=80=E5=BC=80=E5=90=AF=EF=BC=8C=E8=B0=83=E5=8F=96?= =?UTF-8?q?=E8=B4=B9=E7=94=A8=E8=AE=A1=E7=AE=97=E6=8E=A5=E5=8F=A3=E3=80=81?= =?UTF-8?q?=E8=B0=83=E7=94=A8=E6=9F=A5=E8=AF=A2=E5=8A=9F=E8=83=BD=E7=9A=84?= =?UTF-8?q?=EF=BC=88=E5=AE=A2=E6=88=B7=E3=80=81=E9=A1=B9=E7=9B=AE=E3=80=81?= =?UTF-8?q?=E5=A4=87=E5=93=81=EF=BC=89=E5=88=97=E8=A1=A8=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=EF=BC=8C=E8=AF=A6=E6=83=85=E6=9F=A5=E8=AF=A2=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- App.vue | 6 +- commons/flying-monkey.css | 2 +- jsFile/public-api.js | 4 + jsFile/requst.js | 5 +- jsFile/tools.js | 94 +- manifest.json | 2 +- pages.json | 8 +- pages/dataQuery/client.vue | 94 +- pages/dataQuery/dataQuery.vue | 405 ++++--- pages/dataQuery/details.vue | 20 + pages/dataQuery/projectDetails.vue | 1013 ++++++++--------- pages/dataQuery/projectQuery.vue | 134 +-- pages/feedback/feedback.vue | 2 +- pages/repairsPage/repairsPage.vue | 32 +- pages/tabbar/pagehome/pagehome.vue | 20 +- pages/workOrder/details.vue | 2 +- pages/workOrder/workOrder.vue | 109 +- pages/workOrder/workOrderLlsit.vue | 8 +- pages/workOrder/workOrderThree.vue | 59 +- .../electronic-certificate.vue | 3 +- 20 files changed, 1054 insertions(+), 968 deletions(-) diff --git a/App.vue b/App.vue index e1e15cf..260e0de 100644 --- a/App.vue +++ b/App.vue @@ -16,8 +16,8 @@ this.globalData.hostapi = 'https://7and5.cn'; // #endif // #ifdef H5 - // this.globalData.hostapi = 'https://7and5.cn'; - this.globalData.hostapi = '/web'; + this.globalData.hostapi = 'https://7and5.cn'; + // this.globalData.hostapi = '/web'; // #endif }, onShow: function() { @@ -27,6 +27,8 @@ // 每十分钟更新用户地理位置 this.$toolAll.tools.renewLocationEv(); // } + // 检测是否开启GPS定位服务 + this.$toolAll.tools.checkOpenGPSServiceByAndroidIOS(); }, onHide: function() { diff --git a/commons/flying-monkey.css b/commons/flying-monkey.css index 9567a97..3033d70 100644 --- a/commons/flying-monkey.css +++ b/commons/flying-monkey.css @@ -196,7 +196,7 @@ uni-radio .uni-radio-input {border: 1rpx solid #444444;} background-color: #FFFFFF; } .solution-title { - bottom: 0rpx; + bottom: -2rpx; left: -40rpx; right: -40rpx; padding: 6rpx; diff --git a/jsFile/public-api.js b/jsFile/public-api.js index 5b79a2c..db45f1e 100644 --- a/jsFile/public-api.js +++ b/jsFile/public-api.js @@ -18,6 +18,10 @@ export function queryFun(data) { return request.post("/universal/api.search/search", data); } +// (客户、项目、备品)详情 +export function queryDetail(data) { + return request.post("/universal/api.search/search_info", data); +} // 处理工单,获取 export function handleWorkOrderGet(data) { diff --git a/jsFile/requst.js b/jsFile/requst.js index d3abf9e..c4bf8aa 100644 --- a/jsFile/requst.js +++ b/jsFile/requst.js @@ -7,7 +7,7 @@ console.log(ENV,'当前环境'); // development:开发环境 test:测试环 // #endif // #ifdef MP-WEIXIN const hostapi = 'https://7and5.cn'; -// #endif +// #endif // #ifdef H5 const hostapi = '/web'; // const hostapi = 'https://7and5.cn'; @@ -112,7 +112,7 @@ const request = (method, url, options) => { }, complete: rest => { // 是否成功,都会执行 - console.log(rest,100); + console.log(rest,115); } }) }) @@ -135,6 +135,7 @@ const uploadFile = (url, options) => { token:uni.getStorageSync('token') || '' }, success: res => { + console.log(res,138); if (res.statusCode == 200) { let temp = JSON.parse(res.data) if (temp.code == 1) { diff --git a/jsFile/tools.js b/jsFile/tools.js index c967c3c..1bc0f39 100644 --- a/jsFile/tools.js +++ b/jsFile/tools.js @@ -1,4 +1,3 @@ -const app = getApp(); import { renewLocation } from './public-api.js'; // 解决微信小程序 var QQMapWX = require('./map/qqmap-wx-jssdk.min.js'); @@ -36,7 +35,86 @@ const jsonp = function(url, data) { document.body.appendChild(scriptNode) }) } -const tools = { + +const tools = { + checkOpenGPSServiceByAndroidIOS() { + // #ifdef APP-PLUS + let system = uni.getSystemInfoSync(); // 获取系统信息 + if (system.platform === 'android') { // 判断平台 + var context = plus.android.importClass("android.content.Context"); + var locationManager = plus.android.importClass("android.location.LocationManager"); + var main = plus.android.runtimeMainActivity(); + var mainSvr = main.getSystemService(context.LOCATION_SERVICE); + if (!mainSvr.isProviderEnabled(locationManager.GPS_PROVIDER)) { + uni.showModal({ + title: '提示', + content: '请打开定位服务功能', + showCancel: false, // 不显示取消按钮 + success() { + if (!mainSvr.isProviderEnabled(locationManager.GPS_PROVIDER)) { + var Intent = plus.android.importClass('android.content.Intent'); + var Settings = plus.android.importClass('android.provider.Settings'); + var intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS); + main.startActivity(intent); // 打开系统设置GPS服务页面 + } else { + console.log('GPS功能已开启'); + } + } + }); + } + } else if (system.platform === 'ios') { + console.log("苹果"); + var cllocationManger = plus.ios.import("CLLocationManager"); + var enable = cllocationManger.locationServicesEnabled(); + var status = cllocationManger.authorizationStatus(); + plus.ios.deleteObject(cllocationManger); + if (enable && status != 2) { + console.log("手机系统的定位已经打开"); + } else { + console.log("手机系统的定位没有打开"); + uni.showModal({ + title: '提示', + content: '请前往设置-隐私-定位服务打开定位服务功能', + showCancel: false, // 不显示取消按钮 + success() { + var UIApplication = plus.ios.import("UIApplication"); + var application2 = UIApplication.sharedApplication(); + var NSURL2 = plus.ios.import("NSURL"); + // var setting2 = NSURL2.URLWithString("prefs:root=LOCATION_SERVICES"); + // var setting2 = NSURL2.URLWithString("App-Prefs:root=LOCATION_SERVICES"); + var setting2 = NSURL2.URLWithString("app-settings:"); + //var setting2 = NSURL2.URLWithString("App-Prefs:root=Privacy&path=LOCATION"); + // var setting2 = NSURL2.URLWithString("App-Prefs:root=Privacy&path=LOCATION_SERVICES"); + application2.openURL(setting2); + plus.ios.deleteObject(setting2); + plus.ios.deleteObject(NSURL2); + plus.ios.deleteObject(application2); + } + }); + } + } + // #endif + // #ifdef MP-WEIXIN + wx.getSetting({ + success: (res) => { + console.log(res,99); + if (!res.authSetting['scope.userLocation']) { + //打开提示框,提示前往设置页面 + uni.showModal({ + title:'为了更好的体验,请开启定位服务', + confirmText:'开启', + cancelText:'关闭', + success:(res)=> { + if(res.confirm) { + wx.openSetting({success (res) {}}) + } + } + }) + } + } + }) + // #endif + }, // 更新用户地理位置 locationTimer:null, // 每十分钟调用一次 @@ -104,10 +182,10 @@ const tools = { }, // h5 getAddressH5(){ - uni.showLoading({ - title: '定位中...', - mask:true - }); + // uni.showLoading({ + // title: '定位中...', + // mask:true + // }); uni.getLocation({ type: 'gcj02', // wgs84 gcj02 altitude: true, @@ -116,7 +194,7 @@ const tools = { let str = `output=jsonp&key=QNHBZ-55RKF-OMFJJ-NPU7O-EPSDH-ACBAA&location=${res.latitude},${res.longitude}` jsonp('https://apis.map.qq.com/ws/geocoder/v1/?'+str,{}).then(res=>{ // console.log(res,'H5'); - uni.hideLoading(); + // uni.hideLoading(); if(res.status == 0){ // that.locationName = res.result.address; //当前定位 let params = { @@ -149,7 +227,7 @@ const tools = { if (res.code) { var params = {code:res.code} uni.request({ - url: `${app.globalData.hostapi}/api/user/login`, + url: `${getApp().globalData.hostapi}/api/user/login`, method: 'post', data: params, header: { diff --git a/manifest.json b/manifest.json index 8db9743..6270395 100644 --- a/manifest.json +++ b/manifest.json @@ -1,6 +1,6 @@ { "name" : "飞猴", - "appid" : "__UNI__C9AEDD9", + "appid" : "__UNI__25FB71A", "description" : "", "versionName" : "1.0.0", "versionCode" : "100", diff --git a/pages.json b/pages.json index d8ab8d3..2f2910a 100644 --- a/pages.json +++ b/pages.json @@ -1,11 +1,5 @@ { - "pages": [ { - "path": "pages/workOrder/punchCard", - "style": { - "navigationBarTitleText": "个人中心", - "navigationStyle": "custom" //禁用原生导航栏,微信小程序可用 - } - },{ + "pages": [{ "path": "pages/guide-page/guide-page", "style": { "navigationBarTitleText": "", diff --git a/pages/dataQuery/client.vue b/pages/dataQuery/client.vue index d25d84b..3eb06e4 100644 --- a/pages/dataQuery/client.vue +++ b/pages/dataQuery/client.vue @@ -3,7 +3,7 @@ - + {{item.name}} @@ -19,6 +19,7 @@ {{item.address}} + @@ -26,75 +27,50 @@ diff --git a/pages/dataQuery/details.vue b/pages/dataQuery/details.vue index 2c2283f..79e91d5 100644 --- a/pages/dataQuery/details.vue +++ b/pages/dataQuery/details.vue @@ -139,6 +139,7 @@ diff --git a/pages/dataQuery/projectQuery.vue b/pages/dataQuery/projectQuery.vue index 3e852ea..9c03261 100644 --- a/pages/dataQuery/projectQuery.vue +++ b/pages/dataQuery/projectQuery.vue @@ -4,7 +4,7 @@ - + @@ -23,14 +23,10 @@ {{item.date}} 质保到期 - - 质保中 - - - 临时项目 - + 质保中 + 临时项目 - + @@ -41,110 +37,84 @@ import statusNav from '../../components/status-nav.vue'; import containerSubgroupTwo from '@/components/containers/container-subgroup-two.vue'; import {queryFun} from '../../jsFile/public-api.js'; + import pitera from '@/components/nothing/pitera.vue'; export default { components:{ containerSubgroupTwo, - statusNav + statusNav, + pitera }, data() { return { - dataPage:{ - page:1, - list_rows:20 - }, - projectQuery: [ - { - name: "湖南工业大学化工学院会议室P2.5全彩LED显示屏", - img: "../../static/del/img001.png", - code: "20220108-1001", - model: "DS-CK25FI/H", - size: "3.94m*2.02m", - installationSite: "xxx综合楼2楼会议室", - address: "湖南省长沙市高新开发区谷园路109号像素大厦1205", - date: "2022/01/08", - state: 1 + projectQuery: [ + { + id:1, + name: "湖南工业大学化工学院会议室P2.5全彩LED显示屏", + img: "../../static/del/img001.png", + code: "20220108-1001", + model: "DS-CK25FI/H", + size: "3.94m*2.02m", + installationSite: "xxx综合楼2楼会议室", + address: "湖南省长沙市高新开发区谷园路109号像素大厦1205", + date: "2022/01/08", + state: 1 - }, - { - name: "湖南工业大学化工学院会议室P2.5全彩LED显示屏", - img: "../../static/del/img001.png", - code: "20220108-1001", - model: "DS-CK25FI/H", - size: "3.94m*2.02m", - installationSite: "xxx综合楼2楼会议室", - address: "湖南省长沙市高新开发区谷园路109号像素大厦1205", - date: "2022/01/08", - state: 2 - - }, - { - name: "湖南工业大学化工学院会议室P2.5全彩LED显示屏", - img: "../../static/del/img001.png", - code: "20220108-1001", - model: "DS-CK25FI/H", - size: "3.94m*2.02m", - installationSite: "xxx综合楼2楼会议室", - address: "湖南省长沙市高新开发区谷园路109号像素大厦1205", - date: "2022/01/08", - state: 2 - - }, - { - name: "湖南工业大学化工学院会议室P2.5全彩LED显示屏", - img: "../../static/del/img001.png", - code: "20220108-1001", - model: "DS-CK25FI/H", - size: "3.94m*2.02m", - installationSite: "xxx综合楼2楼会议室", - address: "湖南省长沙市高新开发区谷园路109号像素大厦1205", - date: "2022/01/08", - state: 1 - - }, - { - name: "湖南工业大学化工学院会议室P2.5全彩LED显示屏", - img: "../../static/del/img001.png", - code: "20220108-1001", - model: "DS-CK25FI/H", - size: "3.94m*2.02m", - installationSite: "xxx综合楼2楼会议室", - address: "湖南省长沙市高新开发区谷园路109号像素大厦1205", - date: "2022/01/08", - state: 0 - - }, - - ], + } + ], list_rows:20, page:1, - total:0 + total:0, + key_word:''//关键词 } }, + onReachBottom() { + if(this.total!=this.projectQuery.length) { + this.page++; + this.queryFunEv(); + } + }, onLoad(op) { if(op.key_word!=undefined) { + this.key_word = op.key_word; // 调用查询(项目)列表事件 - this.queryFunEv(op.key_word); + this.queryFunEv(); } }, methods: { - projectDetailsFun(){ + projectDetailsFun(id){ uni.navigateTo({ - url:"/pages/dataQuery/projectDetails" + url:`/pages/dataQuery/projectDetails?id=${id}` }) }, // 查询(项目)列表事件 queryFunEv(){ let params = { type_id:2, - keyword, + keyword:this.key_word, list_rows:this.list_rows, page:this.page } queryFun(params).then(res=>{ if(res.code) { - - } + this.total = res.data.total;//设置总条数 + if(this.page==1) this.projectQuery = []; + // if(res.data.data.length) { + // res.data.data.forEach(item=>{ + // let obj = { + // id:item.member_id,//客户id + // name:item.name,//客户名称 + // code:item.serial_number,//客户编号 + // icon:["弱电安防","弱电安防","弱电安防"], + // num:item.project_count,//项目数量 + // address:item.address//客户地址 + // } + // this.projectQuery.push(obj); + // }) + // } + } else { + this.$toolAll.tools.showToast(res.msg); + } }) }, bindPickerChange(data){ diff --git a/pages/feedback/feedback.vue b/pages/feedback/feedback.vue index 83043df..a67d675 100644 --- a/pages/feedback/feedback.vue +++ b/pages/feedback/feedback.vue @@ -52,7 +52,6 @@ import footTabOne from "../../components/foot-tabs/foot-tab-one.vue" import containerSubgroupTwo from '@/components/containers/container-subgroup-two.vue'; import { uploadImg } from '@/jsFile/public-api.js'; - const app = getApp(); export default { components: { footTabOne, @@ -181,6 +180,7 @@ height: 80rpx; line-height: 80rpx; padding: 0 40rpx; + box-sizing: border-box; border-top: 2rpx solid #EAEAEA; border-bottom: 2rpx solid #EAEAEA; background-color: #FFFFFF; diff --git a/pages/repairsPage/repairsPage.vue b/pages/repairsPage/repairsPage.vue index 052fb71..b88cff7 100644 --- a/pages/repairsPage/repairsPage.vue +++ b/pages/repairsPage/repairsPage.vue @@ -23,9 +23,9 @@ - - 请填写设备名称和型号或扫描二维码 - + + + @@ -172,17 +172,21 @@ }, submitButton() { this.data.fault_type = this.faultTypeData[this.indexType].id - if (this.data.is_device == 0) { - if (!this.data.device_name) { - this.$toolAll.tools.showToast("请填写设备名称或型号"); - return - } - } else { - if (!this.data.project_number) { - this.$toolAll.tools.showToast("请扫描设备二维码"); - return - } - } + // if (this.data.is_device == 0) { + // if (!this.data.device_name) { + // this.$toolAll.tools.showToast("请填写设备名称或型号"); + // return + // } + // } else { + // if (!this.data.project_number) { + // this.$toolAll.tools.showToast("请扫描设备二维码"); + // return + // } + // } + if (!this.data.device_name) { + this.$toolAll.tools.showToast("请填写设备名称或型号"); + return + } if (!this.data.username) { this.$toolAll.tools.showToast("请填写您的姓名"); return diff --git a/pages/tabbar/pagehome/pagehome.vue b/pages/tabbar/pagehome/pagehome.vue index 8cd9244..2cecabf 100644 --- a/pages/tabbar/pagehome/pagehome.vue +++ b/pages/tabbar/pagehome/pagehome.vue @@ -234,7 +234,6 @@ import footTabOne from '@/components/foot-tabs/foot-tab-one.vue'; import containerSubgroupTwo from '@/components/containers/container-subgroup-two.vue'; import {getPlanType} from '@/jsFile/public-api.js'; - const app = getApp(); export default { components:{ pitera, @@ -246,11 +245,11 @@ }, data() { return { - role: 1, // 1:业务员 2:表示客户 3:表示客服 4:表示工程师 - // role: uni.getStorageSync('type_id'), // 1:业务员 2:表示客户 3:表示客服 4:表示工程师 + // role: 1, // 1:业务员 2:表示客户 3:表示客服 4:表示工程师 + role: uni.getStorageSync('type_id'), // 1:业务员 2:表示客户 3:表示客服 4:表示工程师 statusHeight: uni.getSystemInfoSync().statusBarHeight + 50, messageNumber: 0 ,// 消息数量 - noticeList:[{id:1,title:'2021年11月06日公司团建,维保服务暂停一天服务暂停一天服务暂停一天。一天服务暂停一天服务暂停一天。'}],//公告 + noticeList:[{id:1,title:'系统正在维护中...'}],//公告 // 故障报修 repairList:[ {imgsrc:'/static/public/icon-home-repair.png',title:'报修'}, @@ -280,27 +279,27 @@ // 项目维保 projectRepairList:[ {imgsrc:'/static/public/icon-home-staySingle.png',title:'待接单',num:0,id:2}, - {imgsrc:'/static/public/icon-home-stayImplement.png',title:'待执行',num:99,id:0}, - {imgsrc:'/static/public/icon-home-repairIng.png',title:'维保中',num:6,id:4}, + {imgsrc:'/static/public/icon-home-stayImplement.png',title:'待执行',num:0,id:0}, + {imgsrc:'/static/public/icon-home-repairIng.png',title:'维保中',num:0,id:4}, ], // 工单数据 workOrderList:[ {imgsrc:'/static/public/icon-home-abnormalSingle.png',title:'异常单',num:0,id:100}, {imgsrc:'/static/public/icon-home-overdueSingle.png',title:'逾期单',num:0,id:101}, {imgsrc:'/static/public/icon-home-overtime.png',title:'超时单 ',num:0,id:0}, - {imgsrc:'/static/public/icon-home-workOrderPool.png',title:'工单池',num:6,id:0}, + {imgsrc:'/static/public/icon-home-workOrderPool.png',title:'工单池',num:0,id:0}, ], // 结算情况 settlementList:[ {imgsrc:'/static/public/icon-home-stayCollection.png',title:'待收款',num:0,id:5}, - {imgsrc:'/static/public/icon-home-received.png',title:'已收款',num:6,id:7}, + {imgsrc:'/static/public/icon-home-received.png',title:'已收款',num:0,id:7}, {imgsrc:'/static/public/icon-home-commission.png',title:'佣金',num:0,id:5}, ], // 待办工单 stayWorkOrderList:[ {imgsrc:'/static/public/icon-home-stayImplement.png',title:'待受理',num:0,id:0}, - {imgsrc:'/static/public/icon-home-stayAssign.png',title:'待指派',num:6,id:0}, - {imgsrc:'/static/public/icon-home-stayRepair.png',title:'待维保',num:6,id:3}, + {imgsrc:'/static/public/icon-home-stayAssign.png',title:'待指派',num:0,id:0}, + {imgsrc:'/static/public/icon-home-stayRepair.png',title:'待维保',num:0,id:3}, {imgsrc:'/static/public/icon-home-returnVisit.png',title:'待回访',num:0,id:8}, ], // 待办事件 @@ -336,7 +335,6 @@ this.getIncrementServiceType(); // 调用获取常见故障列表事件 this.getFaultsList(); - }, methods: { // 首页信息查询 diff --git a/pages/workOrder/details.vue b/pages/workOrder/details.vue index 38b6448..4b1e8e7 100644 --- a/pages/workOrder/details.vue +++ b/pages/workOrder/details.vue @@ -40,7 +40,7 @@ 维保类型: - + 紧急程度: diff --git a/pages/workOrder/workOrder.vue b/pages/workOrder/workOrder.vue index 5295099..a537d34 100644 --- a/pages/workOrder/workOrder.vue +++ b/pages/workOrder/workOrder.vue @@ -84,7 +84,7 @@ {{serviceModeList[serviceModeIndex].name}} - + 定位地址: @@ -181,7 +181,8 @@ var qqmapsdk = new QQMapWX({ ],//服务方式 serviceModeIndex:0,//服务方式下标 flag:true, - temporaryImg:[]//暂存图片id + temporaryImg:[],//暂存图片id + addressFlag:true } }, onShow() { @@ -193,28 +194,90 @@ var qqmapsdk = new QQMapWX({ this.orderId = op.id; this.handleWorkOrderGet(this.orderId); } - this.getProductType(); - this.getFaultType(); - this.getAddressH5(); + // 更新定位地址 + this.getAddress(); }, methods: { - // 定位地址 - getAddress() { - + // app获取经纬度和详细地址 + getAddress(){ + this.$toolAll.tools.showToast('正在获取定位...') + // #ifdef APP-PLUS + if(this.addressFlag) { + this.addressFlag = false; + uni.getLocation({ + type: 'gcj02', + geocode:true, + success: (res)=> { + this.$toolAll.tools.showToast('定位成功'); + // console.log(res,'app'); + this.targetObj.address = `${res.address.province}${res.address.city}${res.address.district}${res.address.street || ''}${res.address.streetNum || ''}${res.address.poiName || ''}` + setTimeout(()=>{ + this.addressFlag = true; + },2000) + } + }); + } else { + this.$toolAll.tools.showToast('请勿重复获取定位...') + } + // #endif + // #ifdef MP-WEIXIN + this.getAddressWx(); + // #endif + // #ifdef H5 + this.getAddressH5(); + // #endif + }, + // 微信获取经纬度和详细地址 + getAddressWx(){ + if(this.addressFlag) { + this.addressFlag = false; + uni.getLocation({ + type: 'gcj02', + geocode:true, + success: (res)=> { + // console.log(res,'地址信息'); + qqmapsdk.reverseGeocoder({ + location: {latitude: res.latitude, longitude: res.longitude}, + success:(res)=> { + console.log(res,'WX'); + this.$toolAll.tools.showToast('定位成功'); + this.targetObj.address = `${res.result.address_component.province}${res.result.address_component.city}${res.result.address_component.district}${res.result.address_component.street || ''}(${res.result.address_component.street_number || ''})` + setTimeout(()=>{ + this.addressFlag = true; + },2000) + }, + fail(err) { + console.log(err) + } + }) + } + }); + } else { + this.$toolAll.tools.showToast('请勿重复获取定位...') + } }, getAddressH5(){ - uni.getLocation({ - type: 'gcj02',//wgs84 gcj02 - altitude: true, - geocode: true, - success: (res)=> { - let str = `output=jsonp&key=QNHBZ-55RKF-OMFJJ-NPU7O-EPSDH-ACBAA&location=${res.latitude},${res.longitude}` - jsonp('https://apis.map.qq.com/ws/geocoder/v1/?'+str,{}).then(res=>{ - console.log(res,'H5'); - this.targetObj.address = `${res.result.address_component.province}${res.result.address_component.city}${res.result.address_component.district}${res.result.address_component.street || ''}(${res.result.address_component.street_number || ''})` - }) - } - }); + if(this.addressFlag) { + this.addressFlag = false; + uni.getLocation({ + type: 'gcj02',//wgs84 gcj02 + altitude: true, + geocode: true, + success: (res)=> { + let str = `output=jsonp&key=QNHBZ-55RKF-OMFJJ-NPU7O-EPSDH-ACBAA&location=${res.latitude},${res.longitude}` + jsonp('https://apis.map.qq.com/ws/geocoder/v1/?'+str,{}).then(res=>{ + console.log(res,'H5'); + this.$toolAll.tools.showToast('定位成功'); + this.targetObj.address = `${res.result.address_component.province}${res.result.address_component.city}${res.result.address_component.district}${res.result.address_component.street || ''}(${res.result.address_component.street_number || ''})` + setTimeout(()=>{ + this.addressFlag = true; + },2000) + }) + } + }); + } else { + this.$toolAll.tools.showToast('请勿重复获取定位...') + } }, // 改变产品类型、维保类型、服务方式 changePicker(index,e) { @@ -312,6 +375,8 @@ var qqmapsdk = new QQMapWX({ this.getProductType(); // 调用查询故障类型事件 this.getFaultType(); + // 调用获取服务方式 + // this.getServiceMode() } }) }, @@ -341,8 +406,8 @@ var qqmapsdk = new QQMapWX({ uni.setStorageSync('targetObj',this.targetObj); let params = { steps:1, - order_id:this.orderId || 14,//工单id - start_address:'四川省成都市成华区',//开工地址 + order_id:this.orderId,//工单id + start_address:this.targetObj.address,//开工地址 product_type:this.productTypeList[this.productIndex].id,//产品类型 installation_location:this.targetObj.installLocation,//安装位置 fault_type:this.faultTypeList[this.faultIndex].id,//维保类型 diff --git a/pages/workOrder/workOrderLlsit.vue b/pages/workOrder/workOrderLlsit.vue index a2f35c6..2ff63da 100644 --- a/pages/workOrder/workOrderLlsit.vue +++ b/pages/workOrder/workOrderLlsit.vue @@ -39,7 +39,7 @@ {{item.project_name}} - {{item.btn.attributes.text}} + {{item.btn.attributes.text}} @@ -65,6 +65,7 @@ + @@ -77,11 +78,13 @@ import containerSubgroupTwo from '@/components/containers/container-subgroup-two.vue'; import statusNav from '../../components/status-nav.vue'; import footTabOne from "../../components/foot-tabs/foot-tab-one.vue" + import pitera from '@/components/nothing/pitera.vue'; export default { components: { footTabOne, statusNav, - containerSubgroupTwo + containerSubgroupTwo, + pitera }, data() { const currentDate = this.getDate({ @@ -356,7 +359,6 @@ border-radius: 50rpx; color: #FFFFFF; display: flex;justify-content: center;align-items: center; - line-height: 40rpx; } .project-list .li .message .text .title .icon1 { diff --git a/pages/workOrder/workOrderThree.vue b/pages/workOrder/workOrderThree.vue index 91f7a97..64c872e 100644 --- a/pages/workOrder/workOrderThree.vue +++ b/pages/workOrder/workOrderThree.vue @@ -51,12 +51,13 @@ 其他费用 - + - 费用合计¥{{totalPrice}} + + 费用合计¥{{allPrice}} @@ -179,11 +180,13 @@ array: ['微信', '支付宝', '银行转账'], paymentModeIndex:0, serviceTime:'' ,// 服务时间 + allPrice:'0.00',//费用合计 detailObj:{ - doorToDoorFee:'120.09', - taxes:'120.20', - materialCost:'120.02', - otherCost:'', + doorToDoorFee:'0.00',//上门费、人工费 + taxes:'0.00', + materialCost:'0.00',//材料费 + otherCost:'',//其他费用 + taxRate:10,//税率 address:'湖南省株洲市荷塘区红旗中路456号(五矿二十三冶)', collectionCode:[ '/static/del/500478055.png', @@ -221,7 +224,7 @@ } else { taxesResult = this.$toolAll.tools.operationEv(this.detailObj.doorToDoorFee,this.detailObj.materialCost,'+',2); taxesResult = this.$toolAll.tools.operationEv(taxesResult,this.detailObj.otherCost,'+',2); - taxesResult = this.$toolAll.tools.operationEv(taxesResult,0.1,"*",2); + taxesResult = this.$toolAll.tools.operationEv(taxesResult,this.detailObj.taxRate,"*",2); } return taxesResult; } @@ -243,14 +246,39 @@ this.orderId = op.id; // 调用查询结算审核信息事件 this.handleWorkOrderGet(this.orderId); + // 调用支付费用计算 + this.priceEv(); } this.handleWorkOrderGet(); }, methods: { + // 其他费用输入框监听事件 + otherInput() { + this.priceEv(); + }, + // 支付费用计算 + priceEv(){ + let params = { + order_id:this.orderId,//工单id + settlement_type:[1,2,3,4][this.currentWay],//结算方式 + invoice_type:[3,2,1][this.billingIndex],//是否开票 + other_price:this.detailObj.otherCost || 0,//其他费用 + } + this.$requst.post('/universal/api.order/compute_cost',params).then(res=>{ + if(res.code) { + this.detailObj.doorToDoorFee = parseFloat(res.data.artificial_price);//人工费/上门费 + this.detailObj.taxRate = parseFloat(res.data.tax_rate)/100;//税率 + this.detailObj.materialCost = parseFloat(res.data.material_price);//材料费 + this.allPrice = res.data.pay_price;//费用合计 + } else { + this.$toolAll.tools.showToast(res.msg); + } + }) + }, // 查询结算审核信息 handleWorkOrderGet(id){ let params = { - order_id:14, + order_id:this.orderId, steps:3 } handleWorkOrderGet(params).then(res=>{ @@ -268,23 +296,20 @@ order_id:this.orderId, steps:3, settlement_type:[1,2,3,4][this.currentWay],//结算方式1:单次收费 2:质保免费 3:验收扫尾 4:包年签单 - c:this.detailObj.doorToDoorFee, - d:this.detailObj.taxes, - e:this.detailObj.materialCost, - f:this.detailObj.otherCost, - g:this.totalPrice, pay_type:[1,2,3][this.paymentModeIndex],//支付方式1:微信 2:支付宝 3:银行转账 invoice_type:[3,2,1][this.billingIndex],//开票方式3:专票 2:普票 1:不开票 is_collection:this.isMoney ? 1 : 0,//是否收款 - signature:this.signId,//签名id + signature:this.signId || 62,//签名id + settlement_address:this.detailObj.address, settlement_remark:this.remarkText//备注内容 } - console.log(params); handleWorkOrderSubmit(params).then(res=>{ if(res.code) { uni.navigateTo({ url: `/pages/workOrder/workorderTwo?id=${this.orderId}` }) + } else { + this.$toolAll.tools.showToast(res.msg); } this.flag = true; }) @@ -314,6 +339,8 @@ }, clearingFormFun(index) { this.currentWay = index; + // 调用支付费用计算 + this.priceEv(); }, bindPickerChange(data) { this.paymentModeIndex = data.detail.value; @@ -327,6 +354,8 @@ this.billingIndex = index; // this.conversionEv(); } + // 调用支付费用计算 + this.priceEv(); }, // 税金费用换算 // conversionEv(){ diff --git a/pagesB/electronic-certificate/electronic-certificate.vue b/pagesB/electronic-certificate/electronic-certificate.vue index 19ee0e1..16b1dbb 100644 --- a/pagesB/electronic-certificate/electronic-certificate.vue +++ b/pagesB/electronic-certificate/electronic-certificate.vue @@ -27,7 +27,6 @@