diff --git a/miniprogram/images/home/Associatio.png b/miniprogram/images/home/Associatio.png
deleted file mode 100644
index 719b243..0000000
Binary files a/miniprogram/images/home/Associatio.png and /dev/null differ
diff --git a/miniprogram/images/home/add-issue.png b/miniprogram/images/home/add-issue.png
deleted file mode 100644
index 1fc7f52..0000000
Binary files a/miniprogram/images/home/add-issue.png and /dev/null differ
diff --git a/miniprogram/images/home/appramise.png b/miniprogram/images/home/appramise.png
deleted file mode 100644
index eb67b84..0000000
Binary files a/miniprogram/images/home/appramise.png and /dev/null differ
diff --git a/miniprogram/images/home/banshizhinan.png b/miniprogram/images/home/banshizhinan.png
deleted file mode 100644
index abcd37d..0000000
Binary files a/miniprogram/images/home/banshizhinan.png and /dev/null differ
diff --git a/miniprogram/images/home/chuangC.png b/miniprogram/images/home/chuangC.png
deleted file mode 100644
index 0d5ed16..0000000
Binary files a/miniprogram/images/home/chuangC.png and /dev/null differ
diff --git a/miniprogram/images/home/consult.png b/miniprogram/images/home/consult.png
deleted file mode 100644
index 71c5d47..0000000
Binary files a/miniprogram/images/home/consult.png and /dev/null differ
diff --git a/miniprogram/images/home/dang_logo.png b/miniprogram/images/home/dang_logo.png
deleted file mode 100644
index 2c30d7f..0000000
Binary files a/miniprogram/images/home/dang_logo.png and /dev/null differ
diff --git a/miniprogram/images/home/down.png b/miniprogram/images/home/down.png
deleted file mode 100644
index fa0f0a1..0000000
Binary files a/miniprogram/images/home/down.png and /dev/null differ
diff --git a/miniprogram/images/home/dyfc.png b/miniprogram/images/home/dyfc.png
deleted file mode 100644
index 605047b..0000000
Binary files a/miniprogram/images/home/dyfc.png and /dev/null differ
diff --git a/miniprogram/images/home/empty.png b/miniprogram/images/home/empty.png
deleted file mode 100644
index 4a3d6d4..0000000
Binary files a/miniprogram/images/home/empty.png and /dev/null differ
diff --git a/miniprogram/images/home/happy.png b/miniprogram/images/home/happy.png
deleted file mode 100644
index b06468b..0000000
Binary files a/miniprogram/images/home/happy.png and /dev/null differ
diff --git a/miniprogram/images/home/home-grid-bg.png b/miniprogram/images/home/home-grid-bg.png
deleted file mode 100644
index fd33a89..0000000
Binary files a/miniprogram/images/home/home-grid-bg.png and /dev/null differ
diff --git a/miniprogram/images/home/home-status.png b/miniprogram/images/home/home-status.png
deleted file mode 100644
index 641bfb0..0000000
Binary files a/miniprogram/images/home/home-status.png and /dev/null differ
diff --git a/miniprogram/images/home/ic_dang.png b/miniprogram/images/home/ic_dang.png
deleted file mode 100644
index d5ef418..0000000
Binary files a/miniprogram/images/home/ic_dang.png and /dev/null differ
diff --git a/miniprogram/images/home/ic_tongzhixiaoxi.png b/miniprogram/images/home/ic_tongzhixiaoxi.png
deleted file mode 100644
index ca5e785..0000000
Binary files a/miniprogram/images/home/ic_tongzhixiaoxi.png and /dev/null differ
diff --git a/miniprogram/images/home/info-note.png b/miniprogram/images/home/info-note.png
deleted file mode 100644
index cd83bc4..0000000
Binary files a/miniprogram/images/home/info-note.png and /dev/null differ
diff --git a/miniprogram/images/home/new-progress.png b/miniprogram/images/home/new-progress.png
deleted file mode 100644
index 0273791..0000000
Binary files a/miniprogram/images/home/new-progress.png and /dev/null differ
diff --git a/miniprogram/images/home/notice-logo.png b/miniprogram/images/home/notice-logo.png
deleted file mode 100644
index 3a6b920..0000000
Binary files a/miniprogram/images/home/notice-logo.png and /dev/null differ
diff --git a/miniprogram/images/home/notice.png b/miniprogram/images/home/notice.png
deleted file mode 100644
index 16962b1..0000000
Binary files a/miniprogram/images/home/notice.png and /dev/null differ
diff --git a/miniprogram/images/home/party-masses.png b/miniprogram/images/home/party-masses.png
deleted file mode 100644
index 7a85c18..0000000
Binary files a/miniprogram/images/home/party-masses.png and /dev/null differ
diff --git a/miniprogram/images/home/partyElegant.png b/miniprogram/images/home/partyElegant.png
deleted file mode 100644
index 9794556..0000000
Binary files a/miniprogram/images/home/partyElegant.png and /dev/null differ
diff --git a/miniprogram/images/home/partyhistory.png b/miniprogram/images/home/partyhistory.png
deleted file mode 100644
index 294792b..0000000
Binary files a/miniprogram/images/home/partyhistory.png and /dev/null differ
diff --git a/miniprogram/images/home/project-close.png b/miniprogram/images/home/project-close.png
deleted file mode 100644
index 4e08288..0000000
Binary files a/miniprogram/images/home/project-close.png and /dev/null differ
diff --git a/miniprogram/images/home/project-end.png b/miniprogram/images/home/project-end.png
deleted file mode 100644
index 3f1c2de..0000000
Binary files a/miniprogram/images/home/project-end.png and /dev/null differ
diff --git a/miniprogram/images/home/project-handle.png b/miniprogram/images/home/project-handle.png
deleted file mode 100644
index 958cbd3..0000000
Binary files a/miniprogram/images/home/project-handle.png and /dev/null differ
diff --git a/miniprogram/images/home/right-sword.png b/miniprogram/images/home/right-sword.png
deleted file mode 100644
index 98a50a8..0000000
Binary files a/miniprogram/images/home/right-sword.png and /dev/null differ
diff --git a/miniprogram/images/home/signin.png b/miniprogram/images/home/signin.png
deleted file mode 100644
index dc4b961..0000000
Binary files a/miniprogram/images/home/signin.png and /dev/null differ
diff --git a/miniprogram/images/home/signined.png b/miniprogram/images/home/signined.png
deleted file mode 100644
index 2d5c436..0000000
Binary files a/miniprogram/images/home/signined.png and /dev/null differ
diff --git a/miniprogram/images/home/suishibao.png b/miniprogram/images/home/suishibao.png
deleted file mode 100644
index 1483c55..0000000
Binary files a/miniprogram/images/home/suishibao.png and /dev/null differ
diff --git a/miniprogram/images/home/suishijiang.png b/miniprogram/images/home/suishijiang.png
deleted file mode 100644
index eca477e..0000000
Binary files a/miniprogram/images/home/suishijiang.png and /dev/null differ
diff --git a/miniprogram/images/home/talents.png b/miniprogram/images/home/talents.png
deleted file mode 100644
index c67cf41..0000000
Binary files a/miniprogram/images/home/talents.png and /dev/null differ
diff --git a/miniprogram/images/home/up.png b/miniprogram/images/home/up.png
deleted file mode 100644
index 8b578ee..0000000
Binary files a/miniprogram/images/home/up.png and /dev/null differ
diff --git a/miniprogram/images/home/wenjuandiaocha.png b/miniprogram/images/home/wenjuandiaocha.png
deleted file mode 100644
index 16475d4..0000000
Binary files a/miniprogram/images/home/wenjuandiaocha.png and /dev/null differ
diff --git a/miniprogram/images/home/wodexiaoxi.png b/miniprogram/images/home/wodexiaoxi.png
deleted file mode 100644
index 4e91edc..0000000
Binary files a/miniprogram/images/home/wodexiaoxi.png and /dev/null differ
diff --git a/miniprogram/images/home/xingchengshangbao.png b/miniprogram/images/home/xingchengshangbao.png
deleted file mode 100644
index 8663208..0000000
Binary files a/miniprogram/images/home/xingchengshangbao.png and /dev/null differ
diff --git a/miniprogram/images/home/xuqiuqingdan.png b/miniprogram/images/home/xuqiuqingdan.png
deleted file mode 100644
index e7dc3b9..0000000
Binary files a/miniprogram/images/home/xuqiuqingdan.png and /dev/null differ
diff --git a/miniprogram/pages/formid/formid.js b/miniprogram/pages/formid/formid.js
index 59a1f2f..3f3d964 100644
--- a/miniprogram/pages/formid/formid.js
+++ b/miniprogram/pages/formid/formid.js
@@ -1,125 +1,453 @@
var api = require('../../utils/api.js')
var global = require('../../utils/config.js')
-import regeneratorRuntime from '../../utils/runtime.js'
+const QQMapWX = require('../../utils/qqmap-wx-jssdk')
+import {
+ gcj02_to_wgs84
+} from "../../utils/wgs84_to_gcj02";
const app = getApp()
Page({
- data: {
- gridId: '',
- gridName: '',
- gridNameArr: [],
- formid: '',
- resToken: '',
- resGridName: '',
- inviteUserId: '',
- GridNameId:""
- },
-onLoad(options) {
- if (options.gid) {
- this.setData({
- gridId:'1221751857028825090',
- inviteUserId: options.inviteUserId
- })
- }
- this.getToken(options.gid)
- // this.getInvitation()
- },
-// getInvitation(){
-// let that = this
-// api.getInvitation(this.data.gridId).then(function (res) {
-// that.setData({
-// GridNameId:res.data
-// })
-// that.getGridName()
-// })
-// },
- getToken: function (gid) {
- let that = this
- wx.login({
- success(res) {
- if (res.code) {
- console.log('微信CODE: ' + res.code)
- let wxCode = res.code
- const para = {
- inviteUserId: that.data.inviteUserId,
- //写死四机社区第一网格
- gridId: '1224104693058306049',
- wxCode: res.code
- }
- api.getTokenV3(para).then(function (res) {
- global.Token = res.data.token
- wx.removeStorageSync('token')
- wx.setStorageSync('token', res.data.token)
- that.setData({
- resToken: res.data.token,
- resGridName: res.data.grid
+ data: {
+ gridId: '',
+ gridName: '',
+ gridNameArr: [],
+ formid: '',
+ resToken: '',
+ resGridName: '',
+ inviteUserId: '',
+ GridNameId: "",
+ qqMapWX: '',
+ form: {
+
+ },
+ streetList: [],
+ addressContent: '',
+ address: '',
+ form: {
+ name: '',
+ idCard: '',
+ mobile: '',
+ homeName: '',//居住小区名称
+ workUnit: '',//工作单位
+ workType: '',//单位性质
+ workIndustry: '',//所属行业
+ party: 1,//是否为党员
+ allDeptIds: [],//社区id
+ shibei:'1',//是否居住在市北
+ },
+ selectedStatus:false,
+ selectOption: [
+ { label: '党政机关', value: '0' },
+ { label: '事业单位', value: '1' },
+ { label: '国有企业', value: '2' },
+ { label: '私营企业', value: '3' },
+ { label: '集体企业', value: '4' },
+ { label: '外资企业、合资企业', value: '5' },
+ { label: '社会组织', value: '6' },
+ { label: '其他', value: '7' }
+ ],
+ workTypeInput:false,
+ workTypeText:'',//单位类型为其他的输入框值
+ newArr:[],
+ multiIds:[],
+ multiIndex: [0, 0],
+ changeFlag:false,
+ },
+ onLoad(options) {
+ // this.data.qqMapWX = new QQMapWX({
+ // key: 'CMJBZ-4DECI-JXGGN-5B4WU-QLV2H-B5BEJ'
+ // })
+ // this.getLocation().then(() => {
+ // this.reverseLocation()
+ // })
+ this.getDeptTree()
+ // if (options.gid) {
+ // this.setData({
+ // gridId:'1221751857028825090',
+ // inviteUserId: options.inviteUserId
+ // })
+ // }
+ // this.getToken(options.gid)
+ // this.getInvitation()
+ },
+ // 获取经纬度
+ getLocation() {
+ return new Promise((resolve, reject) => {
+ const _this = this
+ wx.getLocation({
+ type: 'gcj02',
+ success(res) {
+ if (res.latitude && res.longitude) {
+ _this.setData({
+ 'form.issueLatitude': res.latitude,
+ 'form.issueLongitude': res.longitude
+ })
+ _this.getDeptIdByItude()
+ resolve(true)
+ }
+ },
+ fail(err) {
+ reject(err)
+ }
})
- })
+ })
+ },
+ getDeptIdByItude() {
+ let transfromlnglat = gcj02_to_wgs84(this.data.form.issueLongitude, this.data.form.issueLatitude)
+ const para = {
+ longitude: transfromlnglat[0],
+ latitude: transfromlnglat[1]
}
- }
- })
- },
- getGridName() {
- let that = this
- api.getCompleteName(this.data.GridNameId).then(function (res) {
- wx.setStorage({
- key: "gridName",
- data: res.data
- })
- that.setData({
- gridName: res.data,
- gridNameArr: res.data.split('/')
- })
- })
- },
- bindGetUserInfo: function (e) {
- if (e.detail.userInfo) {
- // let wxHeadImg = e.detail.userInfo.avatarUrl
- // let wxNickName = e.detail.userInfo.nickName
- console.log(e)
- let that = this
- wx.login({
- success: function (response) {
- let code = response.code;
- wx.getUserInfo({
- success: function (res) {
- console.log(res.encryptedData)
- console.log(res.iv)
- let encryptedData = res.encryptedData
- let iv = res.iv
- api.updateWxInfo(code, encryptedData, iv).then(function (res) {
- // 跳转到首页
- console.log('跳转到首页')
- wx.setStorageSync('isFirst', 'noFirst')
- wx.reLaunch({
- url: '/pages/index/index'
- })
- })
+ api.getDeptIdByItude(para).then(res => {
+ // 返回成功以后再调用 列表
+ this.setData({
+ 'form.streetId': res.data && res.data.streetId ? res.data.streetId : '',
+ 'form.communityId': res.data && res.data.communityId ? res.data.communityId : '',
+ 'form.gridId': res.data && res.data.gridId ? res.data.gridId : '',
+ 'form.grid': res.data && res.data.gridName ? res.data.gridName : ''
+ })
+ this.getDeptTree()
+ }).catch(err => {
+ this.getDeptTree()
+ console.log(err)
+ })
+ },
+ //获取街道树
+ getDeptTree() {
+ api.getDeptTree().then(res => {
+ this.setData({
+ streetList: res.data[0].children
+ })
+ console.log(this.data.streetList);
+ let state = {
+ arr: [],
+ arr1: [],
+ arr2: [],
+ // arr3: [],
+ multiIds: []
+ }
+ this.data.streetList.map((v, vk) => {
+ state.arr1.push(v.label);
+ if (this.data.multiIndex[0] === vk) {
+ state.multiIds[0] = v;
+ }
+ if (state.arr2.length <= 0) {
+ v.children.map((c, ck) => {
+ state.arr2.push(c.label);
+ if (this.data.multiIndex[1] === ck) {
+ state.multiIds[1] = c;
+ }
+ // if (state.arr3.length <= 0) {
+ // c.children.map((t, tk) => {
+ // state.arr3.push(t.label);
+ // if (this.data.multiIndex[2] === tk) {
+ // state.multiIds[2] = t;
+ // }
+ // });
+ // }
+ });
+ }
+ });
+ state.arr[0] = state.arr1;
+ state.arr[1] = state.arr2;
+ this.setData({
+ newArr: state.arr,
+ multiIds: state.multiIds,
+ });
+ if (this.data.form.streetId && this.data.form.communityId) {
+ this.data.streetList.forEach(element => {
+ if (element.value == this.data.form.streetId) {
+ this.setData({
+ 'form.street': element.label,
+ communityList: element.children.filter(item=>item.label!= '武定路社区'&&item.label!= '陵县路社区') // 社区
+ })
+ // 循环社区
+ element.children.forEach(community => {
+ if (community.value == this.data.form.communityId) {
+ this.setData({
+ 'form.community': community.label,
+ gridList: community.children,
+ // 'form.grid': community.children[0].label, // 网格默认选择第一个
+ // 'form.gridId': community.children[0].value // 网格
+ })
+ }
+ });
+ }
+ });
}
- })
+ }).catch(err => {
+ console.log(err)
+ })
+ },
+ //确定选择社区
+ bindMultiPickerChange() {
+ this.setData({
+ 'form.allDeptIds':['1175270520603930625',this.data.multiIds[0].value,this.data.multiIds[1].value,this.data.streetList.filter(item=>item.value == this.data.multiIds[0].value)[0].children.filter(item=>item.value== this.data.multiIds[1].value)[0].children[0].value],
+ changeFlag:true
+ })
+ console.log(this.data.streetList);
+ console.log(this.data.form.allDeptIds);
+ },
+ //滑动社区
+ bindMultiPickerColumnChange(e) {
+ let data = {
+ newArr: this.data.newArr,
+ multiIndex: this.data.multiIndex,
+ multiIds: this.data.multiIds,
+ };
+ data.multiIndex[e.detail.column] = e.detail.value;
+
+ let searchColumn = () => {
+ let arr1 = [];
+ let arr2 = [];
+ this.data.streetList.map((v, vk) => {
+ if (data.multiIndex[0] === vk) {
+ data.multiIds[0] = {
+ ...v,
+ };
+ v.children.map((c, ck) => {
+ arr1.push(c.label);
+ if (data.multiIndex[1] === ck) {
+ data.multiIds[1] = {
+ ...c,
+ };
+ }
+ });
+ }
+ });
+ data.newArr[1] = arr1;
+ data.newArr[2] = arr2;
+ };
+ switch (e.detail.column) {
+ case 0:
+ // 每次切换还原初始值
+ data.multiIndex[1] = 0;
+ // data.multiIndex[2] = 0;
+ // 执行函数处理
+ searchColumn();
+ break;
+ case 1:
+ // data.multiIndex[2] = 0;
+ searchColumn();
+ break;
+ case 2:
+ searchColumn();
+ break;
+
}
- })
- } else {
- console.log('拒绝授权')
- wx.redirectTo({
- url: '/pages/index/index'
- })
- // wx.showModal({
- // title: '提示',
- // content: '您点击了拒绝授权,将无法进入小程序,请授权之后再进入!',
- // showCancel: false,
- // confirmText: '返回授权',
- // success: function (res) {
- // if (res.confirm) {
- // console.log('用户点击了“返回授权”')
- // }
- // }
- // })
+ this.setData(data);
+ this.setData({
+ newArr:this.data.newArr.splice(0,2),
+ changeFlag:true
+ })
+ },
+ reverseLocation() {
+ const _this = this
+ this.data.qqMapWX.reverseGeocoder({
+ location: {
+ latitude: _this.data.form.issueLatitude,
+ longitude: _this.data.form.issueLongitude
+ },
+ success(res) {
+ _this.setData({
+ addressContent: res.result.address,
+ address: res.result.address
+ // 'form.issueAddress': res.result.address,
+ })
+ },
+ fail(err) {
+ console.debug(err)
+ }
+ })
+ },
+ //姓名双向绑定
+ bindRealNameInput(e) {
+ this.setData({
+ 'form.name': e.detail.value
+ })
+ console.log(this.data.form)
+ },
+ //身份证双向绑定
+ bindRealIdcardInput(e) {
+ this.setData({
+ 'form.idCard': e.detail.value
+ })
+ console.log(this.data.form)
+ },
+ //工作单位
+ bindWorkUnitInput(e) {
+ this.setData({
+ 'form.workUnit': e.detail.value
+ })
+ console.log(this.data.form)
+ },
+ //所属行业
+ bindWorkIndustryInput(e) {
+ this.setData({
+ 'form.workIndustry': e.detail.value
+ })
+ console.log(this.data.form)
+ },
+ //手机号双向绑定
+ bindRealMobileInput(e) {
+ this.setData({
+ 'form.mobile': e.detail.value
+ })
+ console.log(this.data.form)
+ },
+ //居住小区名称
+ bindHomeNameInput(e) {
+ this.setData({
+ 'form.homeName': e.detail.value
+ })
+ },
+ //单选框
+ bindFlagshibeiChange(e){
+ this.setData({
+ 'form.shibei': e.detail.value
+ })
+ },
+ handleCLickShow(e) {
+ this.setData({
+ selectedStatus: true,
+ })
+ },
+
+ pickerConfirm(e) {
+ console.log(e);
+ if(e.detail.value == '7'){
+ this.setData({
+ workTypeInput:true
+ })
+ }
+ this.setData({
+ 'form.workType': e.detail.label,
+ selectedStatus: false
+ });
+ },
+ //下拉框取消
+ pickerCancel() {
+ this.setData({
+ selectedStatus: false
+ });
+ },
+ bindWorkTypeTextInput(e){
+ console.log(e,'cccccc');
+ this.setData({
+ workTypeText: e.detail.value
+ })
+ console.log(this.data.workTypeText);
+ },
+ //单位性质弹框确定
+ confirmDlaog(e){
+ console.log(e);
+ this.setData({
+ workTypeInput:false
+ })
+ },
+ //单位性质弹框取消
+ cancelDlaog(){
+ this.setData({
+ workTypeInput:false
+ })
+ },
+ getToken: function (gid) {
+ let that = this
+ wx.login({
+ success(res) {
+ if (res.code) {
+ console.log('微信CODE: ' + res.code)
+ let wxCode = res.code
+ const para = {
+ inviteUserId: that.data.inviteUserId,
+ //写死四机社区第一网格
+ gridId: '1224104693058306049',
+ wxCode: res.code
+ }
+ api.getTokenV3(para).then(function (res) {
+ global.Token = res.data.token
+ wx.removeStorageSync('token')
+ wx.setStorageSync('token', res.data.token)
+ that.setData({
+ resToken: res.data.token,
+ resGridName: res.data.grid
+ })
+ })
+ }
+ }
+ })
+ },
+ // 单选点击事件
+
+ showToast (title) {
+ wx.showToast({
+ title: title,
+ icon: 'none',
+ duration: 2000
+ })
+ },
+ navigateToIndex() {
+
+ if (!this.data.form.name) {
+ this.showToast('请输入姓名')
+ return false
+ }
+ if (!this.data.form.idCard) {
+ this.showToast('请填写身份证号')
+ return false
+ }
+ if(!this.data.form.workUnit){
+ this.showToast('请填写工作单位')
+ return false
+ }
+ if (!this.data.form.mobile) {
+ this.showToast('请填写手机号')
+ return false
+ }
+ if(this.data.form.shibei == '1'){
+ if (this.data.form.allDeptIds.length == 0) {
+ this.showToast('请选择报到常住社区名称')
+ return false
+ }
+ if (!this.data.form.homeName) {
+ this.showToast('请填写居住小区名称')
+ return false
+ }
+ }else if(this.data.form.shibei == '0'){
+ if (this.data.form.allDeptIds.length == 0) {
+ this.showToast('请填写单位报到联系社区名称')
+ return false
+ }
+ }
+
+ const para = {
+ ...this.data.form
+ }
+ if(this.data.workTypeText){
+ para.workType = this.data.workTypeText
+ }
+ para.party = parseInt(para.party)
+ console.log(para);
+ // wx.showLoading({
+ // title: "提交中..."
+ // })
+ let than = this
+ // api.submitReportparty(para).then(res => {
+ // wx.hideLoading()
+ // if(res.code == '0'){
+ // than.setData({
+ // submitStatus:true
+ // })
+ // }else{
+ // than.showToast(res.msg)
+ // }
+ // }).catch(err => {
+ // wx.hideLoading()
+ // console.log(err);
+ // })
+ wx.reLaunch({
+ url: '/pages/home/home'
+ })
+ console.log(this.data.form);
}
- },
- navigateToIndex () {
- wx.reLaunch({
- url: '/pages/home/home'
- })
- }
-})
+})
\ No newline at end of file
diff --git a/miniprogram/pages/formid/formid.json b/miniprogram/pages/formid/formid.json
index b0bfb9d..357b305 100644
--- a/miniprogram/pages/formid/formid.json
+++ b/miniprogram/pages/formid/formid.json
@@ -1,4 +1,6 @@
{
"navigationBarTitleText": "注册",
- "usingComponents": {}
+ "usingComponents": {
+ "wux-picker": "../../dist/picker/index"
+ }
}
\ No newline at end of file
diff --git a/miniprogram/pages/formid/formid.wxml b/miniprogram/pages/formid/formid.wxml
index aa9379c..9ea5faf 100644
--- a/miniprogram/pages/formid/formid.wxml
+++ b/miniprogram/pages/formid/formid.wxml
@@ -1,17 +1,145 @@
-
-
-
- 欢迎使用北尚先锋
-
-
-
-
-
+
+
+
+ *
+ 姓名
+
+
+
+
+
+
+
+ *
+ 身份证号
+
+
+
+
+
+
+
+ *
+ 手机号码
+
+
+
+
+
+
+
+ *
+ 工作单位
+
+
+
+
+
+
+
+
+ 单位性质
+
+
+ {{form.workType?form.workType:'请选择'}}
+
+
+
+
+
+ 单位性质(其他)
+
+
+
+
+
+
+
+
+ 所属行业
+
+
+
+
+
+
+
+
+ 是否居住在市北
+
+
+
+ 是
+ 否
+
+
+
+
+
+ *
+ 报到的常住社区名称
+
+
+
+
+ {{newArr[0][multiIndex[0]]}},{{newArr[1][multiIndex[1]]}}
+
+
+ 请选择
+
+
+
+
+
+
+
+ *
+ 居住小区名称
+
+
+
+
+
+
+
+ *
+ 单位报到联系社区名称
+
+
+
+
+ {{newArr[0][multiIndex[0]]}},{{newArr[1][multiIndex[1]]}}
+
+
+ 请选择
+
+
+
+
+
+
+ *
+ 是否为中共党员
+
+
+
+ 是
+ 否
+
+
+
+
-
\ No newline at end of file
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/miniprogram/pages/formid/formid.wxss b/miniprogram/pages/formid/formid.wxss
index 0ca3459..60b89b3 100644
--- a/miniprogram/pages/formid/formid.wxss
+++ b/miniprogram/pages/formid/formid.wxss
@@ -1,25 +1,61 @@
-.bgimg{
- width: 710rpx;
- height: 100%;
- position: absolute;
- }
- .context2{
- padding: 80px 22px 50px 20px;
- position: absolute;
- z-index: 99999;
- font-size: 28rpx;
- color: #333333;
- }
-.context-title{
- font-size: 50rpx;
- margin-bottom: 50rpx;
+
+.container{
+ height: calc(100vh - 100rpx);
+ overflow-y: scroll ;
+ overflow-x: hidden;
}
-.context-name{
- font-size: 36rpx;
+.gray{
+ background-color: #fafafa;
}
-.context-name view{
- line-height: 60rpx;
+.gray-font{
+ color:#808080 ;
}
+.basic-info {
+ width: 95%;
+ background: #fff;
+ border-radius: 16rpx;
+ box-sizing: border-box;
+ padding: 0 20rpx;
+ margin: 20rpx auto;
+
+ }
+ .basic-info .list-item {
+ width: 100%;
+ height: 100rpx;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ }
+ .basic-info .list-item .left .must {
+ color: #F61616;
+ font-size: 30rpx;
+ }
+ .basic-info .list-item .left .title {
+ color: #333;
+ font-size: 34rpx;
+ }
+ .basic-info .list-item .left {
+ display: flex;
+ align-items: center;
+ height: 100rpx;
+ }
+ .basic-info .list-item .right {
+ height: 100%;
+ display: flex;
+ align-items: center;
+ justify-content: flex-end;
+ flex: 1;
+ }
+ .basic-info .list-item .right .picker{
+ width: 100%;
+ }
+ .basic-info .list-item .right input{
+ text-align: right;
+ }
+ .fixed{
+ position: fixed;
+ bottom: 20rpx;
+ }
.buttons .btn2 {
background: linear-gradient(to right, #f51212, #ff4c4c);
height:84rpx;
diff --git a/miniprogram/pages/my/my.wxml b/miniprogram/pages/my/my.wxml
index 1944536..eefbf25 100644
--- a/miniprogram/pages/my/my.wxml
+++ b/miniprogram/pages/my/my.wxml
@@ -23,13 +23,13 @@
-
+
\ No newline at end of file
diff --git a/miniprogram/project.private.config.json b/miniprogram/project.private.config.json
index 34e61c1..08e0bf4 100644
--- a/miniprogram/project.private.config.json
+++ b/miniprogram/project.private.config.json
@@ -142,7 +142,7 @@
"scene": null
},
{
- "name": "",
+ "name": "注册",
"pathName": "pages/formid/formid",
"query": "",
"launchMode": "default",
diff --git a/miniprogram/subpages/checkIn/pages/checkIn/register/register.js b/miniprogram/subpages/checkIn/pages/checkIn/register/register.js
index eddffb0..dd7689f 100644
--- a/miniprogram/subpages/checkIn/pages/checkIn/register/register.js
+++ b/miniprogram/subpages/checkIn/pages/checkIn/register/register.js
@@ -35,12 +35,14 @@ Page({
allDeptIds: [],//社区id
shibei:'1',//是否居住在市北
},
+ workTypeText:'',
orgOptions: [],
newArr:[],
multiIds:[],
multiIndex: [0, 0],
submitStatus:false,
- changeFlag:false
+ changeFlag:false,
+ workTypeInput:false
},
/**
@@ -134,12 +136,28 @@ Page({
*/
onShareAppMessage() {
+ },
+ cancelDlaog(){
+ this.setData({
+ workTypeInput:false
+ })
},
handelClickTwo(){
wx.navigateBack({
delta: 1
})
},
+ bindWorkTypeTextInput(e){
+ this.setData({
+ workTypeText: e.detail.value
+ })
+ },
+ confirmDlaog(e){
+ console.log(e);
+ this.setData({
+ workTypeInput:false
+ })
+ },
bindMultiPickerChange() {
this.setData({
'form.allDeptIds':['1175270520603930625',this.data.multiIds[0].value,this.data.multiIds[1].value],
@@ -291,6 +309,12 @@ Page({
})
},
pickerConfirm(e) {
+ console.log(e);
+ if(e.detail.value == '7'){
+ this.setData({
+ workTypeInput:true
+ })
+ }
this.setData({
'form.workType': e.detail.label,
selectedStatus: false
@@ -353,9 +377,13 @@ Page({
}else{
para.owners = parseInt(para.owners)
}
+ if(this.data.workTypeText){
+ para.workType = this.data.workTypeText
+ }
para.party = parseInt(para.party)
para.volunteer = parseInt(para.volunteer)
para.gridStaff = parseInt(para.gridStaff)
+ console.log(para);
wx.showLoading({
title: "提交中..."
})
diff --git a/miniprogram/subpages/checkIn/pages/checkIn/register/register.wxml b/miniprogram/subpages/checkIn/pages/checkIn/register/register.wxml
index 6817e32..a2b4b97 100644
--- a/miniprogram/subpages/checkIn/pages/checkIn/register/register.wxml
+++ b/miniprogram/subpages/checkIn/pages/checkIn/register/register.wxml
@@ -47,6 +47,15 @@
{{form.workType?form.workType:'请选择'}}
+
+
+
+ 单位性质(其他)
+
+
+
+
+
@@ -198,4 +207,8 @@
-
\ No newline at end of file
+
+
+
+
+
\ No newline at end of file
diff --git a/miniprogram/subpages/knight/pages/knight/knight.wxml b/miniprogram/subpages/knight/pages/knight/knight.wxml
index 5a6f83a..0bbca23 100644
--- a/miniprogram/subpages/knight/pages/knight/knight.wxml
+++ b/miniprogram/subpages/knight/pages/knight/knight.wxml
@@ -24,7 +24,7 @@
驿站地图
- 主要是浏览、查询附近驿站点位。
+ 主要是浏览、查询附近新锋驿站点位。
@@ -48,7 +48,7 @@
城市观察员
- 城市管理齐出力,优美环境共受益。
+ 城市管理齐出力,优美环境共受益。
diff --git a/miniprogram/subpages/knight/pages/knight/observeResi/observeResi.js b/miniprogram/subpages/knight/pages/knight/observeResi/observeResi.js
index aa7a23f..d62117e 100644
--- a/miniprogram/subpages/knight/pages/knight/observeResi/observeResi.js
+++ b/miniprogram/subpages/knight/pages/knight/observeResi/observeResi.js
@@ -309,7 +309,14 @@ Page({
this.showToast('请填写现工作单位')
return false
}
-
+ if(!this.data.form.courier){
+ this.showToast('请选择行业类别')
+
+ return false
+ }else if(this.data.form.courier == 5 && !this.data.form.courierText){
+ this.showToast('请请填写其他行业类别')
+ return false
+ }
const para = {
...this.data.form
}
@@ -322,19 +329,25 @@ Page({
console.log(para);
wx.hideLoading()
let than = this
- api.submitKnightpionner(para).then(res=>{
- wx.hideLoading()
- if(res.code == '0'){
- than.setData({
- submitStatus:true
- })
- }else{
- than.showToast(res.msg)
- }
- }).catch(err=>{
- wx.hideLoading()
- console.log(err);
- })
+ // api.submitKnightpionner(para).then(res=>{
+ // wx.hideLoading()
+ // if(res.code == '0'){
+ // than.setData({
+ // submitStatus:true
+ // })
+ // }else{
+ // than.showToast(res.msg)
+ // }
+ // }).catch(err=>{
+ // wx.hideLoading()
+ // console.log(err);
+ // })
+ },
+ bindRealCourierTextInput(e){
+ this.setData({
+ 'form.courierText': e.detail.value
+ })
+ console.log(this.data.courierText)
},
handelClickTwo(){
wx.navigateBack({
diff --git a/miniprogram/subpages/knight/pages/knight/observeResi/observeResi.wxml b/miniprogram/subpages/knight/pages/knight/observeResi/observeResi.wxml
index b6dccfa..3f84846 100644
--- a/miniprogram/subpages/knight/pages/knight/observeResi/observeResi.wxml
+++ b/miniprogram/subpages/knight/pages/knight/observeResi/observeResi.wxml
@@ -69,6 +69,16 @@
{{selectedValueHlabel?selectedValueHlabel:'请选择'}}
+
+
+ *
+ 行业类别(其他)
+
+
+
+
+
+
*
diff --git a/miniprogram/subpages/redGrider/pages/redGrider/redGrider.wxml b/miniprogram/subpages/redGrider/pages/redGrider/redGrider.wxml
index f6d5f3a..c3c2913 100644
--- a/miniprogram/subpages/redGrider/pages/redGrider/redGrider.wxml
+++ b/miniprogram/subpages/redGrider/pages/redGrider/redGrider.wxml
@@ -12,7 +12,7 @@
网格力量
- “网格力量”是面向全区社区下网格···
+ “网格力量”是面向全区社区下网格。
diff --git a/miniprogram/utils/api.js b/miniprogram/utils/api.js
index c6b406b..088da34 100644
--- a/miniprogram/utils/api.js
+++ b/miniprogram/utils/api.js
@@ -57,7 +57,9 @@ module.exports = {
standardbearerApply: standardbearerApply,
standardbearerStatus: standardbearerStatus,
getByLoginUser: getByLoginUser,
- saveOrder: saveOrder
+ saveOrder: saveOrder,
+ getDeptIdByItude:getDeptIdByItude,
+ getDeptTree:getDeptTree
}
function getToken(wxCode) {
@@ -493,4 +495,12 @@ function getByLoginUser() {
//保存招募令
function saveOrder(info) {
return fly.post("app-user/redspearhead/save", info)
-}
\ No newline at end of file
+}
+//根据经纬度查询街道社区
+ function getDeptIdByItude (para) {
+ return fly.post(`admin/dept/getGridByCoordinate`, para)
+ }
+ //街道tree
+ function getDeptTree () {
+ return fly.get(`admin/dept/getAllDeptTree`)
+ }
\ No newline at end of file
diff --git a/miniprogram/utils/qqmap-wx-jssdk.js b/miniprogram/utils/qqmap-wx-jssdk.js
new file mode 100644
index 0000000..9724e31
--- /dev/null
+++ b/miniprogram/utils/qqmap-wx-jssdk.js
@@ -0,0 +1,1123 @@
+/**
+ * 微信小程序JavaScriptSDK
+ *
+ * @version 1.2
+ * @date 2019-03-06
+ * @author v_ylyue@tencent.com
+ */
+
+var ERROR_CONF = {
+ KEY_ERR: 311,
+ KEY_ERR_MSG: 'key格式错误',
+ PARAM_ERR: 310,
+ PARAM_ERR_MSG: '请求参数信息有误',
+ SYSTEM_ERR: 600,
+ SYSTEM_ERR_MSG: '系统错误',
+ WX_ERR_CODE: 1000,
+ WX_OK_CODE: 200
+};
+var BASE_URL = 'https://apis.map.qq.com/ws/';
+var URL_SEARCH = BASE_URL + 'place/v1/search';
+var URL_SUGGESTION = BASE_URL + 'place/v1/suggestion';
+var URL_GET_GEOCODER = BASE_URL + 'geocoder/v1/';
+var URL_CITY_LIST = BASE_URL + 'district/v1/list';
+var URL_AREA_LIST = BASE_URL + 'district/v1/getchildren';
+var URL_DISTANCE = BASE_URL + 'distance/v1/';
+var URL_DIRECTION = BASE_URL + 'direction/v1/';
+var MODE = {
+ driving: 'driving',
+ transit: 'transit'
+};
+var EARTH_RADIUS = 6378136.49;
+var Utils = {
+ /**
+ * md5加密方法
+ * 版权所有©2011 Sebastian Tschan,https://blueimp.net
+ */
+ safeAdd(x, y) {
+ var lsw = (x & 0xffff) + (y & 0xffff);
+ var msw = (x >> 16) + (y >> 16) + (lsw >> 16);
+ return (msw << 16) | (lsw & 0xffff);
+ },
+ bitRotateLeft(num, cnt) {
+ return (num << cnt) | (num >>> (32 - cnt));
+ },
+ md5cmn(q, a, b, x, s, t) {
+ return this.safeAdd(this.bitRotateLeft(this.safeAdd(this.safeAdd(a, q), this.safeAdd(x, t)), s), b);
+ },
+ md5ff(a, b, c, d, x, s, t) {
+ return this.md5cmn((b & c) | (~b & d), a, b, x, s, t);
+ },
+ md5gg(a, b, c, d, x, s, t) {
+ return this.md5cmn((b & d) | (c & ~d), a, b, x, s, t);
+ },
+ md5hh(a, b, c, d, x, s, t) {
+ return this.md5cmn(b ^ c ^ d, a, b, x, s, t);
+ },
+ md5ii(a, b, c, d, x, s, t) {
+ return this.md5cmn(c ^ (b | ~d), a, b, x, s, t);
+ },
+ binlMD5(x, len) {
+ /* append padding */
+ x[len >> 5] |= 0x80 << (len % 32);
+ x[((len + 64) >>> 9 << 4) + 14] = len;
+
+ var i;
+ var olda;
+ var oldb;
+ var oldc;
+ var oldd;
+ var a = 1732584193;
+ var b = -271733879;
+ var c = -1732584194;
+ var d = 271733878;
+
+ for (i = 0; i < x.length; i += 16) {
+ olda = a;
+ oldb = b;
+ oldc = c;
+ oldd = d;
+
+ a = this.md5ff(a, b, c, d, x[i], 7, -680876936);
+ d = this.md5ff(d, a, b, c, x[i + 1], 12, -389564586);
+ c = this.md5ff(c, d, a, b, x[i + 2], 17, 606105819);
+ b = this.md5ff(b, c, d, a, x[i + 3], 22, -1044525330);
+ a = this.md5ff(a, b, c, d, x[i + 4], 7, -176418897);
+ d = this.md5ff(d, a, b, c, x[i + 5], 12, 1200080426);
+ c = this.md5ff(c, d, a, b, x[i + 6], 17, -1473231341);
+ b = this.md5ff(b, c, d, a, x[i + 7], 22, -45705983);
+ a = this.md5ff(a, b, c, d, x[i + 8], 7, 1770035416);
+ d = this.md5ff(d, a, b, c, x[i + 9], 12, -1958414417);
+ c = this.md5ff(c, d, a, b, x[i + 10], 17, -42063);
+ b = this.md5ff(b, c, d, a, x[i + 11], 22, -1990404162);
+ a = this.md5ff(a, b, c, d, x[i + 12], 7, 1804603682);
+ d = this.md5ff(d, a, b, c, x[i + 13], 12, -40341101);
+ c = this.md5ff(c, d, a, b, x[i + 14], 17, -1502002290);
+ b = this.md5ff(b, c, d, a, x[i + 15], 22, 1236535329);
+
+ a = this.md5gg(a, b, c, d, x[i + 1], 5, -165796510);
+ d = this.md5gg(d, a, b, c, x[i + 6], 9, -1069501632);
+ c = this.md5gg(c, d, a, b, x[i + 11], 14, 643717713);
+ b = this.md5gg(b, c, d, a, x[i], 20, -373897302);
+ a = this.md5gg(a, b, c, d, x[i + 5], 5, -701558691);
+ d = this.md5gg(d, a, b, c, x[i + 10], 9, 38016083);
+ c = this.md5gg(c, d, a, b, x[i + 15], 14, -660478335);
+ b = this.md5gg(b, c, d, a, x[i + 4], 20, -405537848);
+ a = this.md5gg(a, b, c, d, x[i + 9], 5, 568446438);
+ d = this.md5gg(d, a, b, c, x[i + 14], 9, -1019803690);
+ c = this.md5gg(c, d, a, b, x[i + 3], 14, -187363961);
+ b = this.md5gg(b, c, d, a, x[i + 8], 20, 1163531501);
+ a = this.md5gg(a, b, c, d, x[i + 13], 5, -1444681467);
+ d = this.md5gg(d, a, b, c, x[i + 2], 9, -51403784);
+ c = this.md5gg(c, d, a, b, x[i + 7], 14, 1735328473);
+ b = this.md5gg(b, c, d, a, x[i + 12], 20, -1926607734);
+
+ a = this.md5hh(a, b, c, d, x[i + 5], 4, -378558);
+ d = this.md5hh(d, a, b, c, x[i + 8], 11, -2022574463);
+ c = this.md5hh(c, d, a, b, x[i + 11], 16, 1839030562);
+ b = this.md5hh(b, c, d, a, x[i + 14], 23, -35309556);
+ a = this.md5hh(a, b, c, d, x[i + 1], 4, -1530992060);
+ d = this.md5hh(d, a, b, c, x[i + 4], 11, 1272893353);
+ c = this.md5hh(c, d, a, b, x[i + 7], 16, -155497632);
+ b = this.md5hh(b, c, d, a, x[i + 10], 23, -1094730640);
+ a = this.md5hh(a, b, c, d, x[i + 13], 4, 681279174);
+ d = this.md5hh(d, a, b, c, x[i], 11, -358537222);
+ c = this.md5hh(c, d, a, b, x[i + 3], 16, -722521979);
+ b = this.md5hh(b, c, d, a, x[i + 6], 23, 76029189);
+ a = this.md5hh(a, b, c, d, x[i + 9], 4, -640364487);
+ d = this.md5hh(d, a, b, c, x[i + 12], 11, -421815835);
+ c = this.md5hh(c, d, a, b, x[i + 15], 16, 530742520);
+ b = this.md5hh(b, c, d, a, x[i + 2], 23, -995338651);
+
+ a = this.md5ii(a, b, c, d, x[i], 6, -198630844);
+ d = this.md5ii(d, a, b, c, x[i + 7], 10, 1126891415);
+ c = this.md5ii(c, d, a, b, x[i + 14], 15, -1416354905);
+ b = this.md5ii(b, c, d, a, x[i + 5], 21, -57434055);
+ a = this.md5ii(a, b, c, d, x[i + 12], 6, 1700485571);
+ d = this.md5ii(d, a, b, c, x[i + 3], 10, -1894986606);
+ c = this.md5ii(c, d, a, b, x[i + 10], 15, -1051523);
+ b = this.md5ii(b, c, d, a, x[i + 1], 21, -2054922799);
+ a = this.md5ii(a, b, c, d, x[i + 8], 6, 1873313359);
+ d = this.md5ii(d, a, b, c, x[i + 15], 10, -30611744);
+ c = this.md5ii(c, d, a, b, x[i + 6], 15, -1560198380);
+ b = this.md5ii(b, c, d, a, x[i + 13], 21, 1309151649);
+ a = this.md5ii(a, b, c, d, x[i + 4], 6, -145523070);
+ d = this.md5ii(d, a, b, c, x[i + 11], 10, -1120210379);
+ c = this.md5ii(c, d, a, b, x[i + 2], 15, 718787259);
+ b = this.md5ii(b, c, d, a, x[i + 9], 21, -343485551);
+
+ a = this.safeAdd(a, olda);
+ b = this.safeAdd(b, oldb);
+ c = this.safeAdd(c, oldc);
+ d = this.safeAdd(d, oldd);
+ }
+ return [a, b, c, d];
+ },
+ binl2rstr(input) {
+ var i;
+ var output = '';
+ var length32 = input.length * 32;
+ for (i = 0; i < length32; i += 8) {
+ output += String.fromCharCode((input[i >> 5] >>> (i % 32)) & 0xff);
+ }
+ return output;
+ },
+ rstr2binl(input) {
+ var i;
+ var output = [];
+ output[(input.length >> 2) - 1] = undefined;
+ for (i = 0; i < output.length; i += 1) {
+ output[i] = 0;
+ }
+ var length8 = input.length * 8;
+ for (i = 0; i < length8; i += 8) {
+ output[i >> 5] |= (input.charCodeAt(i / 8) & 0xff) << (i % 32);
+ }
+ return output;
+ },
+ rstrMD5(s) {
+ return this.binl2rstr(this.binlMD5(this.rstr2binl(s), s.length * 8));
+ },
+ rstrHMACMD5(key, data) {
+ var i;
+ var bkey = this.rstr2binl(key);
+ var ipad = [];
+ var opad = [];
+ var hash;
+ ipad[15] = opad[15] = undefined;
+ if (bkey.length > 16) {
+ bkey = this.binlMD5(bkey, key.length * 8);
+ }
+ for (i = 0; i < 16; i += 1) {
+ ipad[i] = bkey[i] ^ 0x36363636;
+ opad[i] = bkey[i] ^ 0x5c5c5c5c;
+ }
+ hash = this.binlMD5(ipad.concat(this.rstr2binl(data)), 512 + data.length * 8);
+ return this.binl2rstr(this.binlMD5(opad.concat(hash), 512 + 128));
+ },
+ rstr2hex(input) {
+ var hexTab = '0123456789abcdef';
+ var output = '';
+ var x;
+ var i;
+ for (i = 0; i < input.length; i += 1) {
+ x = input.charCodeAt(i);
+ output += hexTab.charAt((x >>> 4) & 0x0f) + hexTab.charAt(x & 0x0f);
+ }
+ return output;
+ },
+ str2rstrUTF8(input) {
+ return unescape(encodeURIComponent(input));
+ },
+ rawMD5(s) {
+ return this.rstrMD5(this.str2rstrUTF8(s));
+ },
+ hexMD5(s) {
+ return this.rstr2hex(this.rawMD5(s));
+ },
+ rawHMACMD5(k, d) {
+ return this.rstrHMACMD5(this.str2rstrUTF8(k), str2rstrUTF8(d));
+ },
+ hexHMACMD5(k, d) {
+ return this.rstr2hex(this.rawHMACMD5(k, d));
+ },
+
+ md5(string, key, raw) {
+ if (!key) {
+ if (!raw) {
+ return this.hexMD5(string);
+ }
+ return this.rawMD5(string);
+ }
+ if (!raw) {
+ return this.hexHMACMD5(key, string);
+ }
+ return this.rawHMACMD5(key, string);
+ },
+ /**
+ * 得到md5加密后的sig参数
+ * @param {Object} requestParam 接口参数
+ * @param {String} sk签名字符串
+ * @param {String} featrue 方法名
+ * @return 返回加密后的sig参数
+ */
+ getSig(requestParam, sk, feature, mode) {
+ var sig = null;
+ var requestArr = [];
+ Object.keys(requestParam).sort().forEach(function(key){
+ requestArr.push(key + '=' + requestParam[key]);
+ });
+ if (feature == 'search') {
+ sig = '/ws/place/v1/search?' + requestArr.join('&') + sk;
+ }
+ if (feature == 'suggest') {
+ sig = '/ws/place/v1/suggestion?' + requestArr.join('&') + sk;
+ }
+ if (feature == 'reverseGeocoder') {
+ sig = '/ws/geocoder/v1/?' + requestArr.join('&') + sk;
+ }
+ if (feature == 'geocoder') {
+ sig = '/ws/geocoder/v1/?' + requestArr.join('&') + sk;
+ }
+ if (feature == 'getCityList') {
+ sig = '/ws/district/v1/list?' + requestArr.join('&') + sk;
+ }
+ if (feature == 'getDistrictByCityId') {
+ sig = '/ws/district/v1/getchildren?' + requestArr.join('&') + sk;
+ }
+ if (feature == 'calculateDistance') {
+ sig = '/ws/distance/v1/?' + requestArr.join('&') + sk;
+ }
+ if (feature == 'direction') {
+ sig = '/ws/direction/v1/' + mode + '?' + requestArr.join('&') + sk;
+ }
+ sig = this.md5(sig);
+ return sig;
+ },
+ /**
+ * 得到终点query字符串
+ * @param {Array|String} 检索数据
+ */
+ location2query(data) {
+ if (typeof data == 'string') {
+ return data;
+ }
+ var query = '';
+ for (var i = 0; i < data.length; i++) {
+ var d = data[i];
+ if (!!query) {
+ query += ';';
+ }
+ if (d.location) {
+ query = query + d.location.lat + ',' + d.location.lng;
+ }
+ if (d.latitude && d.longitude) {
+ query = query + d.latitude + ',' + d.longitude;
+ }
+ }
+ return query;
+ },
+
+ /**
+ * 计算角度
+ */
+ rad(d) {
+ return d * Math.PI / 180.0;
+ },
+ /**
+ * 处理终点location数组
+ * @return 返回终点数组
+ */
+ getEndLocation(location){
+ var to = location.split(';');
+ var endLocation = [];
+ for (var i = 0; i < to.length; i++) {
+ endLocation.push({
+ lat: parseFloat(to[i].split(',')[0]),
+ lng: parseFloat(to[i].split(',')[1])
+ })
+ }
+ return endLocation;
+ },
+
+ /**
+ * 计算两点间直线距离
+ * @param a 表示纬度差
+ * @param b 表示经度差
+ * @return 返回的是距离,单位m
+ */
+ getDistance(latFrom, lngFrom, latTo, lngTo) {
+ var radLatFrom = this.rad(latFrom);
+ var radLatTo = this.rad(latTo);
+ var a = radLatFrom - radLatTo;
+ var b = this.rad(lngFrom) - this.rad(lngTo);
+ var distance = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2) + Math.cos(radLatFrom) * Math.cos(radLatTo) * Math.pow(Math.sin(b / 2), 2)));
+ distance = distance * EARTH_RADIUS;
+ distance = Math.round(distance * 10000) / 10000;
+ return parseFloat(distance.toFixed(0));
+ },
+ /**
+ * 使用微信接口进行定位
+ */
+ getWXLocation(success, fail, complete) {
+ wx.getLocation({
+ type: 'gcj02',
+ success: success,
+ fail: fail,
+ complete: complete
+ });
+ },
+
+ /**
+ * 获取location参数
+ */
+ getLocationParam(location) {
+ if (typeof location == 'string') {
+ var locationArr = location.split(',');
+ if (locationArr.length === 2) {
+ location = {
+ latitude: location.split(',')[0],
+ longitude: location.split(',')[1]
+ };
+ } else {
+ location = {};
+ }
+ }
+ return location;
+ },
+
+ /**
+ * 回调函数默认处理
+ */
+ polyfillParam(param) {
+ param.success = param.success || function () { };
+ param.fail = param.fail || function () { };
+ param.complete = param.complete || function () { };
+ },
+
+ /**
+ * 验证param对应的key值是否为空
+ *
+ * @param {Object} param 接口参数
+ * @param {String} key 对应参数的key
+ */
+ checkParamKeyEmpty(param, key) {
+ if (!param[key]) {
+ var errconf = this.buildErrorConfig(ERROR_CONF.PARAM_ERR, ERROR_CONF.PARAM_ERR_MSG + key +'参数格式有误');
+ param.fail(errconf);
+ param.complete(errconf);
+ return true;
+ }
+ return false;
+ },
+
+ /**
+ * 验证参数中是否存在检索词keyword
+ *
+ * @param {Object} param 接口参数
+ */
+ checkKeyword(param){
+ return !this.checkParamKeyEmpty(param, 'keyword');
+ },
+
+ /**
+ * 验证location值
+ *
+ * @param {Object} param 接口参数
+ */
+ checkLocation(param) {
+ var location = this.getLocationParam(param.location);
+ if (!location || !location.latitude || !location.longitude) {
+ var errconf = this.buildErrorConfig(ERROR_CONF.PARAM_ERR, ERROR_CONF.PARAM_ERR_MSG + ' location参数格式有误');
+ param.fail(errconf);
+ param.complete(errconf);
+ return false;
+ }
+ return true;
+ },
+
+ /**
+ * 构造错误数据结构
+ * @param {Number} errCode 错误码
+ * @param {Number} errMsg 错误描述
+ */
+ buildErrorConfig(errCode, errMsg) {
+ return {
+ status: errCode,
+ message: errMsg
+ };
+ },
+
+ /**
+ *
+ * 数据处理函数
+ * 根据传入参数不同处理不同数据
+ * @param {String} feature 功能名称
+ * search 地点搜索
+ * suggest关键词提示
+ * reverseGeocoder逆地址解析
+ * geocoder地址解析
+ * getCityList获取城市列表:父集
+ * getDistrictByCityId获取区县列表:子集
+ * calculateDistance距离计算
+ * @param {Object} param 接口参数
+ * @param {Object} data 数据
+ */
+ handleData(param,data,feature){
+ if (feature == 'search') {
+ var searchResult = data.data;
+ var searchSimplify = [];
+ for (var i = 0; i < searchResult.length; i++) {
+ searchSimplify.push({
+ id: searchResult[i].id || null,
+ title: searchResult[i].title || null,
+ latitude: searchResult[i].location && searchResult[i].location.lat || null,
+ longitude: searchResult[i].location && searchResult[i].location.lng || null,
+ address: searchResult[i].address || null,
+ category: searchResult[i].category || null,
+ tel: searchResult[i].tel || null,
+ adcode: searchResult[i].ad_info && searchResult[i].ad_info.adcode || null,
+ city: searchResult[i].ad_info && searchResult[i].ad_info.city || null,
+ district: searchResult[i].ad_info && searchResult[i].ad_info.district || null,
+ province: searchResult[i].ad_info && searchResult[i].ad_info.province || null
+ })
+ }
+ param.success(data, {
+ searchResult: searchResult,
+ searchSimplify: searchSimplify
+ })
+ } else if (feature == 'suggest') {
+ var suggestResult = data.data;
+ var suggestSimplify = [];
+ for (var i = 0; i < suggestResult.length; i++) {
+ suggestSimplify.push({
+ adcode: suggestResult[i].adcode || null,
+ address: suggestResult[i].address || null,
+ category: suggestResult[i].category || null,
+ city: suggestResult[i].city || null,
+ district: suggestResult[i].district || null,
+ id: suggestResult[i].id || null,
+ latitude: suggestResult[i].location && suggestResult[i].location.lat || null,
+ longitude: suggestResult[i].location && suggestResult[i].location.lng || null,
+ province: suggestResult[i].province || null,
+ title: suggestResult[i].title || null,
+ type: suggestResult[i].type || null
+ })
+ }
+ param.success(data, {
+ suggestResult: suggestResult,
+ suggestSimplify: suggestSimplify
+ })
+ } else if (feature == 'reverseGeocoder') {
+ var reverseGeocoderResult = data.result;
+ var reverseGeocoderSimplify = {
+ address: reverseGeocoderResult.address || null,
+ latitude: reverseGeocoderResult.location && reverseGeocoderResult.location.lat || null,
+ longitude: reverseGeocoderResult.location && reverseGeocoderResult.location.lng || null,
+ adcode: reverseGeocoderResult.ad_info && reverseGeocoderResult.ad_info.adcode || null,
+ city: reverseGeocoderResult.address_component && reverseGeocoderResult.address_component.city || null,
+ district: reverseGeocoderResult.address_component && reverseGeocoderResult.address_component.district || null,
+ nation: reverseGeocoderResult.address_component && reverseGeocoderResult.address_component.nation || null,
+ province: reverseGeocoderResult.address_component && reverseGeocoderResult.address_component.province || null,
+ street: reverseGeocoderResult.address_component && reverseGeocoderResult.address_component.street || null,
+ street_number: reverseGeocoderResult.address_component && reverseGeocoderResult.address_component.street_number || null,
+ recommend: reverseGeocoderResult.formatted_addresses && reverseGeocoderResult.formatted_addresses.recommend || null,
+ rough: reverseGeocoderResult.formatted_addresses && reverseGeocoderResult.formatted_addresses.rough || null
+ };
+ if (reverseGeocoderResult.pois) {//判断是否返回周边poi
+ var pois = reverseGeocoderResult.pois;
+ var poisSimplify = [];
+ for (var i = 0;i < pois.length;i++) {
+ poisSimplify.push({
+ id: pois[i].id || null,
+ title: pois[i].title || null,
+ latitude: pois[i].location && pois[i].location.lat || null,
+ longitude: pois[i].location && pois[i].location.lng || null,
+ address: pois[i].address || null,
+ category: pois[i].category || null,
+ adcode: pois[i].ad_info && pois[i].ad_info.adcode || null,
+ city: pois[i].ad_info && pois[i].ad_info.city || null,
+ district: pois[i].ad_info && pois[i].ad_info.district || null,
+ province: pois[i].ad_info && pois[i].ad_info.province || null
+ })
+ }
+ param.success(data,{
+ reverseGeocoderResult: reverseGeocoderResult,
+ reverseGeocoderSimplify: reverseGeocoderSimplify,
+ pois: pois,
+ poisSimplify: poisSimplify
+ })
+ } else {
+ param.success(data, {
+ reverseGeocoderResult: reverseGeocoderResult,
+ reverseGeocoderSimplify: reverseGeocoderSimplify
+ })
+ }
+ } else if (feature == 'geocoder') {
+ var geocoderResult = data.result;
+ var geocoderSimplify = {
+ title: geocoderResult.title || null,
+ latitude: geocoderResult.location && geocoderResult.location.lat || null,
+ longitude: geocoderResult.location && geocoderResult.location.lng || null,
+ adcode: geocoderResult.ad_info && geocoderResult.ad_info.adcode || null,
+ province: geocoderResult.address_components && geocoderResult.address_components.province || null,
+ city: geocoderResult.address_components && geocoderResult.address_components.city || null,
+ district: geocoderResult.address_components && geocoderResult.address_components.district || null,
+ street: geocoderResult.address_components && geocoderResult.address_components.street || null,
+ street_number: geocoderResult.address_components && geocoderResult.address_components.street_number || null,
+ level: geocoderResult.level || null
+ };
+ param.success(data,{
+ geocoderResult: geocoderResult,
+ geocoderSimplify: geocoderSimplify
+ });
+ } else if (feature == 'getCityList') {
+ var provinceResult = data.result[0];
+ var cityResult = data.result[1];
+ var districtResult = data.result[2];
+ param.success(data,{
+ provinceResult: provinceResult,
+ cityResult: cityResult,
+ districtResult: districtResult
+ });
+ } else if (feature == 'getDistrictByCityId') {
+ var districtByCity = data.result[0];
+ param.success(data, districtByCity);
+ } else if (feature == 'calculateDistance') {
+ var calculateDistanceResult = data.result.elements;
+ var distance = [];
+ for (var i = 0; i < calculateDistanceResult.length; i++){
+ distance.push(calculateDistanceResult[i].distance);
+ }
+ param.success(data, {
+ calculateDistanceResult: calculateDistanceResult,
+ distance: distance
+ });
+ } else if (feature == 'direction') {
+ var direction = data.result.routes;
+ param.success(data,direction);
+ } else {
+ param.success(data);
+ }
+ },
+
+ /**
+ * 构造微信请求参数,公共属性处理
+ *
+ * @param {Object} param 接口参数
+ * @param {Object} param 配置项
+ * @param {String} feature 方法名
+ */
+ buildWxRequestConfig(param, options, feature) {
+ var that = this;
+ options.header = { "content-type": "application/json" };
+ options.method = 'GET';
+ options.success = function (res) {
+ var data = res.data;
+ if (data.status === 0) {
+ that.handleData(param, data, feature);
+ } else {
+ param.fail(data);
+ }
+ };
+ options.fail = function (res) {
+ res.statusCode = ERROR_CONF.WX_ERR_CODE;
+ param.fail(that.buildErrorConfig(ERROR_CONF.WX_ERR_CODE, res.errMsg));
+ };
+ options.complete = function (res) {
+ var statusCode = +res.statusCode;
+ switch(statusCode) {
+ case ERROR_CONF.WX_ERR_CODE: {
+ param.complete(that.buildErrorConfig(ERROR_CONF.WX_ERR_CODE, res.errMsg));
+ break;
+ }
+ case ERROR_CONF.WX_OK_CODE: {
+ var data = res.data;
+ if (data.status === 0) {
+ param.complete(data);
+ } else {
+ param.complete(that.buildErrorConfig(data.status, data.message));
+ }
+ break;
+ }
+ default:{
+ param.complete(that.buildErrorConfig(ERROR_CONF.SYSTEM_ERR, ERROR_CONF.SYSTEM_ERR_MSG));
+ }
+
+ }
+ };
+ return options;
+ },
+
+ /**
+ * 处理用户参数是否传入坐标进行不同的处理
+ */
+ locationProcess(param, locationsuccess, locationfail, locationcomplete) {
+ var that = this;
+ locationfail = locationfail || function (res) {
+ res.statusCode = ERROR_CONF.WX_ERR_CODE;
+ param.fail(that.buildErrorConfig(ERROR_CONF.WX_ERR_CODE, res.errMsg));
+ };
+ locationcomplete = locationcomplete || function (res) {
+ if (res.statusCode == ERROR_CONF.WX_ERR_CODE) {
+ param.complete(that.buildErrorConfig(ERROR_CONF.WX_ERR_CODE, res.errMsg));
+ }
+ };
+ if (!param.location) {
+ that.getWXLocation(locationsuccess, locationfail, locationcomplete);
+ } else if (that.checkLocation(param)) {
+ var location = Utils.getLocationParam(param.location);
+ locationsuccess(location);
+ }
+ }
+};
+
+
+class QQMapWX {
+
+ /**
+ * 构造函数
+ *
+ * @param {Object} options 接口参数,key 为必选参数
+ */
+ constructor(options) {
+ if (!options.key) {
+ throw Error('key值不能为空');
+ }
+ this.key = options.key;
+ };
+
+ /**
+ * POI周边检索
+ *
+ * @param {Object} options 接口参数对象
+ *
+ * 参数对象结构可以参考
+ * @see http://lbs.qq.com/webservice_v1/guide-search.html
+ */
+ search(options) {
+ var that = this;
+ options = options || {};
+
+ Utils.polyfillParam(options);
+
+ if (!Utils.checkKeyword(options)) {
+ return;
+ }
+
+ var requestParam = {
+ keyword: options.keyword,
+ orderby: options.orderby || '_distance',
+ page_size: options.page_size || 10,
+ page_index: options.page_index || 1,
+ output: 'json',
+ key: that.key
+ };
+
+ if (options.address_format) {
+ requestParam.address_format = options.address_format;
+ }
+
+ if (options.filter) {
+ requestParam.filter = options.filter;
+ }
+
+ var distance = options.distance || "1000";
+ var auto_extend = options.auto_extend || 1;
+ var region = null;
+ var rectangle = null;
+
+ //判断城市限定参数
+ if (options.region) {
+ region = options.region;
+ }
+
+ //矩形限定坐标(暂时只支持字符串格式)
+ if (options.rectangle) {
+ rectangle = options.rectangle;
+ }
+
+ var locationsuccess = function (result) {
+ if (region && !rectangle) {
+ //城市限定参数拼接
+ requestParam.boundary = "region(" + region + "," + auto_extend + "," + result.latitude + "," + result.longitude + ")";
+ if (options.sig) {
+ requestParam.sig = Utils.getSig(requestParam, options.sig, 'search');
+ }
+ } else if (rectangle && !region) {
+ //矩形搜索
+ requestParam.boundary = "rectangle(" + rectangle + ")";
+ if (options.sig) {
+ requestParam.sig = Utils.getSig(requestParam, options.sig, 'search');
+ }
+ } else {
+ requestParam.boundary = "nearby(" + result.latitude + "," + result.longitude + "," + distance + "," + auto_extend + ")";
+ if (options.sig) {
+ requestParam.sig = Utils.getSig(requestParam, options.sig, 'search');
+ }
+ }
+ wx.request(Utils.buildWxRequestConfig(options, {
+ url: URL_SEARCH,
+ data: requestParam
+ }, 'search'));
+ };
+ Utils.locationProcess(options, locationsuccess);
+ };
+
+ /**
+ * sug模糊检索
+ *
+ * @param {Object} options 接口参数对象
+ *
+ * 参数对象结构可以参考
+ * http://lbs.qq.com/webservice_v1/guide-suggestion.html
+ */
+ getSuggestion(options) {
+ var that = this;
+ options = options || {};
+ Utils.polyfillParam(options);
+
+ if (!Utils.checkKeyword(options)) {
+ return;
+ }
+
+ var requestParam = {
+ keyword: options.keyword,
+ region: options.region || '全国',
+ region_fix: options.region_fix || 0,
+ policy: options.policy || 0,
+ page_size: options.page_size || 10,//控制显示条数
+ page_index: options.page_index || 1,//控制页数
+ get_subpois : options.get_subpois || 0,//返回子地点
+ output: 'json',
+ key: that.key
+ };
+ //长地址
+ if (options.address_format) {
+ requestParam.address_format = options.address_format;
+ }
+ //过滤
+ if (options.filter) {
+ requestParam.filter = options.filter;
+ }
+ //排序
+ if (options.location) {
+ var locationsuccess = function (result) {
+ requestParam.location = result.latitude + ',' + result.longitude;
+ if (options.sig) {
+ requestParam.sig = Utils.getSig(requestParam, options.sig, 'suggest');
+ }
+ wx.request(Utils.buildWxRequestConfig(options, {
+ url: URL_SUGGESTION,
+ data: requestParam
+ }, "suggest"));
+ };
+ Utils.locationProcess(options, locationsuccess);
+ } else {
+ if (options.sig) {
+ requestParam.sig = Utils.getSig(requestParam, options.sig, 'suggest');
+ }
+ wx.request(Utils.buildWxRequestConfig(options, {
+ url: URL_SUGGESTION,
+ data: requestParam
+ }, "suggest"));
+ }
+ };
+
+ /**
+ * 逆地址解析
+ *
+ * @param {Object} options 接口参数对象
+ *
+ * 请求参数结构可以参考
+ * http://lbs.qq.com/webservice_v1/guide-gcoder.html
+ */
+ reverseGeocoder(options) {
+ var that = this;
+ options = options || {};
+ Utils.polyfillParam(options);
+ var requestParam = {
+ coord_type: options.coord_type || 5,
+ get_poi: options.get_poi || 0,
+ output: 'json',
+ key: that.key
+ };
+ if (options.poi_options) {
+ requestParam.poi_options = options.poi_options
+ }
+
+ var locationsuccess = function (result) {
+ requestParam.location = result.latitude + ',' + result.longitude;
+ if (options.sig) {
+ requestParam.sig = Utils.getSig(requestParam, options.sig, 'reverseGeocoder');
+ }
+ wx.request(Utils.buildWxRequestConfig(options, {
+ url: URL_GET_GEOCODER,
+ data: requestParam
+ }, 'reverseGeocoder'));
+ };
+ Utils.locationProcess(options, locationsuccess);
+ };
+
+ /**
+ * 地址解析
+ *
+ * @param {Object} options 接口参数对象
+ *
+ * 请求参数结构可以参考
+ * http://lbs.qq.com/webservice_v1/guide-geocoder.html
+ */
+ geocoder(options) {
+ var that = this;
+ options = options || {};
+ Utils.polyfillParam(options);
+
+ if (Utils.checkParamKeyEmpty(options, 'address')) {
+ return;
+ }
+
+ var requestParam = {
+ address: options.address,
+ output: 'json',
+ key: that.key
+ };
+
+ //城市限定
+ if (options.region) {
+ requestParam.region = options.region;
+ }
+
+ if (options.sig) {
+ requestParam.sig = Utils.getSig(requestParam, options.sig, 'geocoder');
+ }
+
+ wx.request(Utils.buildWxRequestConfig(options, {
+ url: URL_GET_GEOCODER,
+ data: requestParam
+ },'geocoder'));
+ };
+
+
+ /**
+ * 获取城市列表
+ *
+ * @param {Object} options 接口参数对象
+ *
+ * 请求参数结构可以参考
+ * http://lbs.qq.com/webservice_v1/guide-region.html
+ */
+ getCityList(options) {
+ var that = this;
+ options = options || {};
+ Utils.polyfillParam(options);
+ var requestParam = {
+ output: 'json',
+ key: that.key
+ };
+
+ if (options.sig) {
+ requestParam.sig = Utils.getSig(requestParam, options.sig, 'getCityList');
+ }
+
+ wx.request(Utils.buildWxRequestConfig(options, {
+ url: URL_CITY_LIST,
+ data: requestParam
+ },'getCityList'));
+ };
+
+ /**
+ * 获取对应城市ID的区县列表
+ *
+ * @param {Object} options 接口参数对象
+ *
+ * 请求参数结构可以参考
+ * http://lbs.qq.com/webservice_v1/guide-region.html
+ */
+ getDistrictByCityId(options) {
+ var that = this;
+ options = options || {};
+ Utils.polyfillParam(options);
+
+ if (Utils.checkParamKeyEmpty(options, 'id')) {
+ return;
+ }
+
+ var requestParam = {
+ id: options.id || '',
+ output: 'json',
+ key: that.key
+ };
+
+ if (options.sig) {
+ requestParam.sig = Utils.getSig(requestParam, options.sig, 'getDistrictByCityId');
+ }
+
+ wx.request(Utils.buildWxRequestConfig(options, {
+ url: URL_AREA_LIST,
+ data: requestParam
+ },'getDistrictByCityId'));
+ };
+
+ /**
+ * 用于单起点到多终点的路线距离(非直线距离)计算:
+ * 支持两种距离计算方式:步行和驾车。
+ * 起点到终点最大限制直线距离10公里。
+ *
+ * 新增直线距离计算。
+ *
+ * @param {Object} options 接口参数对象
+ *
+ * 请求参数结构可以参考
+ * http://lbs.qq.com/webservice_v1/guide-distance.html
+ */
+ calculateDistance(options) {
+ var that = this;
+ options = options || {};
+ Utils.polyfillParam(options);
+
+ if (Utils.checkParamKeyEmpty(options, 'to')) {
+ return;
+ }
+
+ var requestParam = {
+ mode: options.mode || 'walking',
+ to: Utils.location2query(options.to),
+ output: 'json',
+ key: that.key
+ };
+
+ if (options.from) {
+ options.location = options.from;
+ }
+
+ //计算直线距离
+ if(requestParam.mode == 'straight'){
+ var locationsuccess = function (result) {
+ var locationTo = Utils.getEndLocation(requestParam.to);//处理终点坐标
+ var data = {
+ message:"query ok",
+ result:{
+ elements:[]
+ },
+ status:0
+ };
+ for (var i = 0; i < locationTo.length; i++) {
+ data.result.elements.push({//将坐标存入
+ distance: Utils.getDistance(result.latitude, result.longitude, locationTo[i].lat, locationTo[i].lng),
+ duration:0,
+ from:{
+ lat: result.latitude,
+ lng:result.longitude
+ },
+ to:{
+ lat: locationTo[i].lat,
+ lng: locationTo[i].lng
+ }
+ });
+ }
+ var calculateResult = data.result.elements;
+ var distanceResult = [];
+ for (var i = 0; i < calculateResult.length; i++) {
+ distanceResult.push(calculateResult[i].distance);
+ }
+ return options.success(data,{
+ calculateResult: calculateResult,
+ distanceResult: distanceResult
+ });
+ };
+
+ Utils.locationProcess(options, locationsuccess);
+ } else {
+ var locationsuccess = function (result) {
+ requestParam.from = result.latitude + ',' + result.longitude;
+ if (options.sig) {
+ requestParam.sig = Utils.getSig(requestParam, options.sig, 'calculateDistance');
+ }
+ wx.request(Utils.buildWxRequestConfig(options, {
+ url: URL_DISTANCE,
+ data: requestParam
+ },'calculateDistance'));
+ };
+
+ Utils.locationProcess(options, locationsuccess);
+ }
+ };
+
+ /**
+ * 路线规划:
+ *
+ * @param {Object} options 接口参数对象
+ *
+ * 请求参数结构可以参考
+ * https://lbs.qq.com/webservice_v1/guide-road.html
+ */
+ direction(options) {
+ var that = this;
+ options = options || {};
+ Utils.polyfillParam(options);
+
+ if (Utils.checkParamKeyEmpty(options, 'to')) {
+ return;
+ }
+
+ var requestParam = {
+ output: 'json',
+ key: that.key
+ };
+
+ //to格式处理
+ if (typeof options.to == 'string') {
+ requestParam.to = options.to;
+ } else {
+ requestParam.to = options.to.latitude + ',' + options.to.longitude;
+ }
+ //初始化局部请求域名
+ var SET_URL_DIRECTION = null;
+ //设置默认mode属性
+ options.mode = options.mode || MODE.driving;
+
+ //设置请求域名
+ SET_URL_DIRECTION = URL_DIRECTION + options.mode;
+
+ if (options.from) {
+ options.location = options.from;
+ }
+
+ if (options.mode == MODE.driving) {
+ if (options.from_poi) {
+ requestParam.from_poi = options.from_poi;
+ }
+ if (options.heading) {
+ requestParam.heading = options.heading;
+ }
+ if (options.speed) {
+ requestParam.speed = options.speed;
+ }
+ if (options.accuracy) {
+ requestParam.accuracy = options.accuracy;
+ }
+ if (options.road_type) {
+ requestParam.road_type = options.road_type;
+ }
+ if (options.to_poi) {
+ requestParam.to_poi = options.to_poi;
+ }
+ if (options.from_track) {
+ requestParam.from_track = options.from_track;
+ }
+ if (options.waypoints) {
+ requestParam.waypoints = options.waypoints;
+ }
+ if (options.policy) {
+ requestParam.policy = options.policy;
+ }
+ if (options.plate_number) {
+ requestParam.plate_number = options.plate_number;
+ }
+ }
+
+ if (options.mode == MODE.transit) {
+ if (options.departure_time) {
+ requestParam.departure_time = options.departure_time;
+ }
+ if (options.policy) {
+ requestParam.policy = options.policy;
+ }
+ }
+
+ var locationsuccess = function (result) {
+ requestParam.from = result.latitude + ',' + result.longitude;
+ if (options.sig) {
+ requestParam.sig = Utils.getSig(requestParam, options.sig, 'direction',options.mode);
+ }
+ wx.request(Utils.buildWxRequestConfig(options, {
+ url: SET_URL_DIRECTION,
+ data: requestParam
+ }, 'direction'));
+ };
+
+ Utils.locationProcess(options, locationsuccess);
+ }
+};
+
+module.exports = QQMapWX;
\ No newline at end of file
diff --git a/miniprogram/utils/wgs84_to_gcj02.js b/miniprogram/utils/wgs84_to_gcj02.js
new file mode 100644
index 0000000..26831b3
--- /dev/null
+++ b/miniprogram/utils/wgs84_to_gcj02.js
@@ -0,0 +1,115 @@
+//wgs84_to_gcj02.js文件
+
+//地标 转 国测 常量
+var x_PI = (3.14159265358979324 * 3000.0) / 180.0;
+var PI = 3.1415926535897932384626;
+var a = 6378245.0; //卫星椭球坐标投影到平面地图坐标系的投影因子。
+var ee = 0.00669342162296594323; //椭球的偏心率。
+
+
+//判断是否在国内,在中国国内的经纬度才需要做偏移
+function out_of_china(lng, lat) {
+ return (
+ lng < 72.004 ||
+ lng > 137.8347 ||
+ (lat < 0.8293 || lat > 55.8271 || false)
+ );
+}
+
+//转化经度
+function transformlng(lng, lat) {
+ var ret =
+ 300.0 +
+ lng +
+ 2.0 * lat +
+ 0.1 * lng * lng +
+ 0.1 * lng * lat +
+ 0.1 * Math.sqrt(Math.abs(lng));
+ ret +=
+ ((20.0 * Math.sin(6.0 * lng * PI) +
+ 20.0 * Math.sin(2.0 * lng * PI)) *
+ 2.0) /
+ 3.0;
+ ret +=
+ ((20.0 * Math.sin(lng * PI) +
+ 40.0 * Math.sin((lng / 3.0) * PI)) *
+ 2.0) /
+ 3.0;
+ ret +=
+ ((150.0 * Math.sin((lng / 12.0) * PI) +
+ 300.0 * Math.sin((lng / 30.0) * PI)) *
+ 2.0) /
+ 3.0;
+ return ret;
+}
+
+//转化纬度
+function transformlat(lng, lat) {
+ var ret =
+ -100.0 +
+ 2.0 * lng +
+ 3.0 * lat +
+ 0.2 * lat * lat +
+ 0.1 * lng * lat +
+ 0.2 * Math.sqrt(Math.abs(lng));
+ ret +=
+ ((20.0 * Math.sin(6.0 * lng * PI) +
+ 20.0 * Math.sin(2.0 * lng * PI)) *
+ 2.0) /
+ 3.0;
+ ret +=
+ ((20.0 * Math.sin(lat * PI) +
+ 40.0 * Math.sin((lat / 3.0) * PI)) *
+ 2.0) /
+ 3.0;
+ ret +=
+ ((160.0 * Math.sin((lat / 12.0) * PI) +
+ 320 * Math.sin((lat * PI) / 30.0)) *
+ 2.0) /
+ 3.0;
+ return ret;
+}
+
+//wgs84 to gcj02 地球坐标系 转 火星坐标系
+export function wgs84_to_gcj02(lng, lat) {
+ if (out_of_china(lng, lat)) {
+ return [lng, lat];
+ } else {
+ var dlat = transformlat(lng - 105.0, lat - 35.0);
+ var dlng = transformlng(lng - 105.0, lat - 35.0);
+ var radlat = (lat / 180.0) * PI;
+ var magic = Math.sin(radlat);
+ magic = 1 - ee * magic * magic;
+ var sqrtmagic = Math.sqrt(magic);
+ dlat =
+ (dlat * 180.0) /
+ (((a * (1 - ee)) / (magic * sqrtmagic)) * PI);
+ dlng =
+ (dlng * 180.0) / ((a / sqrtmagic) * Math.cos(radlat) * PI);
+ var mglat = lat + dlat;
+ var mglng = lng + dlng;
+
+ return [mglng, mglat];
+ }
+}
+
+
+//gcj02 to wgs84 火星坐标系 转 地球坐标系
+export function gcj02_to_wgs84(lng, lat) {
+ if (out_of_china(lng, lat)) {
+ return [lng, lat]
+ }
+ else {
+ var dlat = transformlat(lng - 105.0, lat - 35.0);
+ var dlng = transformlng(lng - 105.0, lat - 35.0);
+ var radlat = lat / 180.0 * PI;
+ var magic = Math.sin(radlat);
+ magic = 1 - ee * magic * magic;
+ var sqrtmagic = Math.sqrt(magic);
+ dlat = (dlat * 180.0) / ((a * (1 - ee)) / (magic * sqrtmagic) * PI);
+ dlng = (dlng * 180.0) / (a / sqrtmagic * Math.cos(radlat) * PI);
+ var mglat = lat + dlat;
+ var mglng = lng + dlng;
+ return [lng * 2 - mglng, lat * 2 - mglat]
+ }
+}