| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183 | import Vue from 'vue'function setBar() {    uni.getSystemInfo({        success: function (e) {            // #ifndef MP            Vue.prototype.usePort = 'h5';            Vue.prototype.StatusBar = e.statusBarHeight;            if (e.platform == 'android') {                Vue.prototype.CustomBar = e.statusBarHeight + 50;            } else {                Vue.prototype.CustomBar = e.statusBarHeight + 45;            };            // #endif            // #ifdef MP-WEIXIN            Vue.prototype.usePort = 'wechat';            Vue.prototype.StatusBar = e.statusBarHeight;            let custom = wx.getMenuButtonBoundingClientRect();            Vue.prototype.Custom = custom;            Vue.prototype.CustomBar = custom.bottom + custom.top - e.statusBarHeight;            // #endif                   // #ifdef MP-ALIPAY            Vue.prototype.StatusBar = e.statusBarHeight;            Vue.prototype.CustomBar = e.statusBarHeight + e.titleBarHeight;            // #endif        }    })}function mount() {    Vue.prototype.getLocation = (isReverseGeocoder = false) => {        return new Promise((resolve, reject) => {            let that = this;            handle()            function handle() {                uni.getLocation({                    altitude: true,                    highAccuracyExpireTime: 8000,                    isHighAccuracy: true,                    success: res => {                        console.log("获取定位", res)                        if (isReverseGeocoder) {                            const QQMapWX = require("./qqmap-wx-jssdk.min");                            let qqmapsdk = new QQMapWX({                                key: 'UVVBZ-UOGWZ-ZUWXC-TJQMT-TUWLO-IVFTN'                            });                            qqmapsdk.reverseGeocoder({                                location: {                                    latitude: res.latitude,                                    longitude: res.longitude                                },                                success(s) {                                    console.log("逆解析结果", s.result)                                    res.result = s.result;                                    resolve(res)                                },                                fail: err => console.error(err)                            });                        } else {                            resolve(res)                        }                    },                    fail: err => {                        uni.hideLoading();                        query()                    }                })            }            function query() {                uni.getSetting({                    success({                        authSetting                    }) {                        if (authSetting['scope.userLocation']) {                            handle()                        } else {                            uni.showModal({                                title: '提示',                                content: '您未开启地理位置授权',                                cancelText: '下次再说',                                confirmText: '前去授权',                                success: ({                                    confirm                                }) => {                                    if (confirm) {                                        uni.openSetting({                                            success(res) {                                                if (res.authSetting['scope.userLocation']) handle();                                            }                                        })                                    } else {                                        uni.showToast({                                            title: "已拒绝地理位置授权",                                            icon: "none",                                        })                                    }                                }                            })                        }                    }                })            }        })    };    Vue.prototype.cutoff = (msg, title = "", mask = false, exitTime = 0, icon = 'none', duration = 2000, ) => {        if (msg != '成功' || title) uni.showToast({            title: msg == '成功' ? title : msg,            duration,            icon,            mask: mask || exitTime != 0        })        if (exitTime && msg == '成功') setTimeout(uni.navigateBack, exitTime)        return msg != '成功';    };    Vue.prototype.tovw = (num) => (num * 100 / 375).toFixed(3) + "vw";    Vue.prototype.getHeight = (even, that, calculate = true) => {        return new Promise((resolve, reject) => {            if (calculate) {                uni.getSystemInfo({                    success(s) {                        uni.createSelectorQuery().in(that).select(even).boundingClientRect().exec(res => (!res[0]) ? reject('没有查询到元素') : resolve(s.windowHeight - res[0].bottom))                    }                });            } else {                uni.createSelectorQuery().in(that).select(even).boundingClientRect().exec(res => (!res[0]) ? reject('没有查询到元素') : resolve(res[0]))            }        })    };    Vue.prototype.getControlItem = (nameList, detail, specialType = {}) => {        let list = nameList.map(v => detail.function[v])        for (const key in list) {            try {                let original = list[key].params,                    name = Object.entries(original)[0][0];                list[key].paramName = name;                list[key].params = detail.params[name];                list[key].paramValue = detail.paramcmdvalues[name]                list[key].isfeedback = detail.isfeedback == 1 && list[key].paramValue;                if (specialType[nameList[key]] || false) {                    list[key].inputType = specialType[nameList[key]];                    if (["radio"].includes(specialType[nameList[key]])) {                        list[key].showValue = "";                        if (list[key].params.lastvalue + '') list[key].showValue = list[key].params.options.find(v => v.value == list[key].params.lastvalue).label || ""                    } else if (["radioNum"].includes(specialType[nameList[key]])) {                        //MTO2 控制模式使用                        list[key].params.options = [];                        for (const oKey in original) {                            let item = detail.params[oKey];                            if (original[oKey] == 1) list[key].showValue = item.paramname;                            list[key].paramValue = item.paramname;                            list[key].params.options.push({                                label: item.paramname,                                value: item.lastvalue,                                key: oKey                            })                        };                    }                } else if (list[key].params.datatype == "boolean") {                    list[key].inputType = 'switch';                    list[key].showValue = "";                    if (list[key].params.lastvalue + '') list[key].showValue = list[key].params.options.find(v => v.value == list[key].params.lastvalue).label || ""                } else {                    list[key].inputType = list[key].params.num_step ? 'step' : 'int';                }            } catch (error) {                console.log("出错项", list[key].funcname, list[key])            }        }        return list    }}module.exports = {    mount,    setBar}
 |