From 192b35d8f0dae7cff5aa1c673018659e361ab394 Mon Sep 17 00:00:00 2001 From: mk <2403457699@qq.com> Date: Fri, 22 Sep 2023 14:07:23 +0800 Subject: [PATCH] =?UTF-8?q?=E6=97=B6=E9=97=B4=E7=BB=84=E4=BB=B6,=E7=A4=BE?= =?UTF-8?q?=E5=8C=BA=E6=91=B8=E6=8E=92=E9=A1=B5=E9=9D=A2=E6=B7=BB=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app.js | 3 +- app.json | 12 + components/dist/date-picker-view/index.js | 477 +++++++ components/dist/date-picker-view/index.json | 6 + components/dist/date-picker-view/index.wxml | 16 + components/dist/date-picker-view/index.wxss | 0 .../dist/date-picker-view/locales/en.js | 9 + .../dist/date-picker-view/locales/index.js | 9 + .../dist/date-picker-view/locales/zh_CN.js | 9 + .../dist/date-picker-view/locales/zh_TW.js | 9 + components/dist/date-picker-view/props.js | 86 ++ components/dist/date-picker/index.js | 23 + components/dist/date-picker/index.json | 7 + components/dist/date-picker/index.wxml | 45 + components/dist/date-picker/index.wxss | 57 + components/dist/date-picker/utils.js | 23 + images/work/shareBg.png | Bin 0 -> 39365 bytes pages/work/work.js | 52 +- pages/work/work.wxml | 8 +- project.private.config.json | 21 +- subpages/addResi/pages/addResi/addResi.js | 45 +- subpages/addhouse/pages/addhouse/addhouse.js | 1 + .../pages/historyQuery/historyQuery.js | 10 +- .../pages/historyQuery/historyQuery.wxml | 2 +- subpages/demandCheck/images/IC_guanbi@2x.png | Bin 0 -> 2333 bytes subpages/demandCheck/images/del.png | Bin 0 -> 3276 bytes subpages/demandCheck/images/dianji.png | Bin 0 -> 10865 bytes subpages/demandCheck/images/ic_delete@2x.png | Bin 0 -> 5466 bytes .../demandCheck/images/ic_yitidingwei@2x.png | Bin 0 -> 3776 bytes subpages/demandCheck/images/ic_yueduliang.png | Bin 0 -> 1201 bytes subpages/demandCheck/images/icon_close.png | Bin 0 -> 1962 bytes .../images/ig_tianjiatupian@2x.png | Bin 0 -> 19127 bytes subpages/demandCheck/images/loading.gif | Bin 0 -> 3897 bytes subpages/demandCheck/images/mkf.png | Bin 0 -> 606 bytes subpages/demandCheck/images/right-sword.png | Bin 0 -> 1994 bytes subpages/demandCheck/images/save.png | Bin 0 -> 2388 bytes subpages/demandCheck/images/tupian.png | Bin 0 -> 2386 bytes subpages/demandCheck/images/xiaobofang.png | Bin 0 -> 2508 bytes subpages/demandCheck/images/xiaozanting.png | Bin 0 -> 2471 bytes subpages/demandCheck/images/yuyin.png | Bin 0 -> 2385 bytes subpages/demandCheck/images/zanting.png | Bin 0 -> 11752 bytes .../dissatisfied/demandCheck/demandCheck.js | 1031 ++++++++++++++- .../dissatisfied/demandCheck/demandCheck.json | 10 +- .../dissatisfied/demandCheck/demandCheck.wxml | 328 ++--- .../dissatisfied/demandCheck/demandCheck.wxss | 1037 +++++++++++++-- .../gatherInformation/gatherInformation.wxml | 3 +- .../pages/searchResult/searchResult.js | 7 +- utils/api.js | 7 +- utils/qqmap-wx-jssdk.js | 1123 +++++++++++++++++ 49 files changed, 4077 insertions(+), 399 deletions(-) create mode 100644 components/dist/date-picker-view/index.js create mode 100644 components/dist/date-picker-view/index.json create mode 100644 components/dist/date-picker-view/index.wxml create mode 100644 components/dist/date-picker-view/index.wxss create mode 100644 components/dist/date-picker-view/locales/en.js create mode 100644 components/dist/date-picker-view/locales/index.js create mode 100644 components/dist/date-picker-view/locales/zh_CN.js create mode 100644 components/dist/date-picker-view/locales/zh_TW.js create mode 100644 components/dist/date-picker-view/props.js create mode 100644 components/dist/date-picker/index.js create mode 100644 components/dist/date-picker/index.json create mode 100644 components/dist/date-picker/index.wxml create mode 100644 components/dist/date-picker/index.wxss create mode 100644 components/dist/date-picker/utils.js create mode 100644 images/work/shareBg.png create mode 100644 subpages/demandCheck/images/IC_guanbi@2x.png create mode 100644 subpages/demandCheck/images/del.png create mode 100644 subpages/demandCheck/images/dianji.png create mode 100644 subpages/demandCheck/images/ic_delete@2x.png create mode 100644 subpages/demandCheck/images/ic_yitidingwei@2x.png create mode 100644 subpages/demandCheck/images/ic_yueduliang.png create mode 100644 subpages/demandCheck/images/icon_close.png create mode 100644 subpages/demandCheck/images/ig_tianjiatupian@2x.png create mode 100644 subpages/demandCheck/images/loading.gif create mode 100644 subpages/demandCheck/images/mkf.png create mode 100644 subpages/demandCheck/images/right-sword.png create mode 100644 subpages/demandCheck/images/save.png create mode 100644 subpages/demandCheck/images/tupian.png create mode 100644 subpages/demandCheck/images/xiaobofang.png create mode 100644 subpages/demandCheck/images/xiaozanting.png create mode 100644 subpages/demandCheck/images/yuyin.png create mode 100644 subpages/demandCheck/images/zanting.png create mode 100644 utils/qqmap-wx-jssdk.js diff --git a/app.js b/app.js index 0144990..485f0f5 100644 --- a/app.js +++ b/app.js @@ -30,7 +30,6 @@ App({ navigationHeight: 40 }, user:{}, - share:false, - keyWord:"" + share:false } }) diff --git a/app.json b/app.json index 6a4eef2..f73edce 100644 --- a/app.json +++ b/app.json @@ -115,6 +115,18 @@ } ] }, + "permission": { + "scope.userLocation": { + "desc": "亿联社区将获取您的位置信息" + } + }, + "requiredPrivateInfos": [ + "getLocation", + "chooseLocation" + ], + "navigateToMiniProgramAppIdList": [ + "wx50ebeb95943868cd" + ], "networkTimeout": { "request": 60000 }, diff --git a/components/dist/date-picker-view/index.js b/components/dist/date-picker-view/index.js new file mode 100644 index 0000000..c568e7d --- /dev/null +++ b/components/dist/date-picker-view/index.js @@ -0,0 +1,477 @@ +import baseComponent from '../helpers/baseComponent' +import classNames from '../helpers/classNames' +import locales from './locales/index' +import { props } from './props' + +const DATETIME = 'datetime' +const DATE = 'date' +const TIME = 'time' +const MONTH = 'month' +const YEAR = 'year' +const ONE_DAY = 24 * 60 * 60 * 1000 + +function fomartArray(min, max, step = 1) { + let i = min + let result = [] + while (i <= max) { + result.push(i) + i+=step + } + return result +} + +function getDaysInMonth(date) { + return new Date(date.getFullYear(), date.getMonth() + 1, 0).getDate() +} + +function pad(n) { + return n < 10 ? `0${n}` : n + '' +} + +function cloneDate(date) { + return new Date(+date) +} + +function setMonth(date, month) { + date.setDate(Math.min(date.getDate(), getDaysInMonth(new Date(date.getFullYear(), month)))) + date.setMonth(month) +} + +function valueToDate(value, props = {}) { + if (!Array.isArray(value)) { + if (typeof value === 'string') { + value = value.replace(/\-/g, '/') + } + if (!isNaN(Number(value))) { + value = Number(value) + } + return new Date(value) + } + + const { mode, use12Hours } = props + const now = new Date() + const year = now.getFullYear() + const month = now.getMonth() + const day = now.getDate() + const newValue = value.map((v) => Number(v)) + if (use12Hours && [DATETIME, TIME].includes(mode)) { + const hourIndex = mode === DATETIME ? 3 : 0 + const ampmIndex = newValue.length - 1 + const ampm = Number(newValue[ampmIndex]) + let nhour = Number(newValue[hourIndex]) + + if (ampm === 1) { + if (nhour <= 12) { + nhour += 12 + } + nhour = nhour >= 24 ? 0 : nhour + } else { + if (nhour === 0) { + nhour = 12 + } + if (nhour > 12) { + nhour -= 12 + } + nhour = nhour >= 12 ? 0 : nhour + } + + newValue.splice(hourIndex, 1, nhour) + newValue.splice(ampmIndex, 1) + } + if (mode === TIME) { + newValue.unshift(day) + newValue.unshift(month) + newValue.unshift(year) + } else if (mode === MONTH) { + newValue.push(day) + } else if (mode === YEAR) { + newValue.push(month) + newValue.push(day) + } + while (newValue.length <= 6) { + newValue.push(0) + } + return new Date(...newValue) +} + +baseComponent({ + properties: props, + data: { + inputValue: [], + options: [], + }, + observers: { + inputValue() { + this.updatedCols() + }, + value(value) { + this.setValue(value) + }, + ['mode, minuteStep, use12Hours, minDate, maxDate, minHour, maxHour, minMinute, maxMinute, lang']() { + this.setValue(this.data.inputValue) + }, + }, + methods: { + getDefaultMinDate() { + if (!this.defaultMinDate) { + this.defaultMinDate = new Date(2000, 1, 1, 0, 0, 0) + } + return this.defaultMinDate + }, + getDefaultMaxDate() { + if (!this.defaultMaxDate) { + this.defaultMaxDate = new Date(2030, 1, 1, 23, 59, 59) + } + return this.defaultMaxDate + }, + getMinDate() { + return this.data.minDate ? valueToDate(this.data.minDate, this.data) : this.getDefaultMinDate() + }, + getMaxDate() { + return this.data.maxDate ? valueToDate(this.data.maxDate, this.data) : this.getDefaultMaxDate() + }, + getDateMember(type = 'min', member = 'year') { + const methods = { + min: 'getMinDate', + max: 'getMaxDate', + year: 'getFullYear', + month: 'getMonth', + day: 'getDate', + hour: 'getHours', + minute: 'getMinutes', + } + return this[methods[type]]()[methods[member]]() + }, + getDisplayHour(rawHour) { + // 12 hour am (midnight 00:00) -> 12 hour pm (noon 12:00) -> 12 hour am (midnight 00:00) + if (this.data.use12Hours) { + if (rawHour === 0) { + rawHour = 12 + } + if (rawHour > 12) { + rawHour -= 12 + } + return rawHour + } + return rawHour + }, + setHours(date, hour) { + if (this.data.use12Hours) { + const dh = date.getHours() + let nhour = hour + nhour = dh >= 12 ? hour + 12 : hour + nhour = nhour >= 24 ? 0 : nhour // Make sure no more than one day + date.setHours(nhour) + } else { + date.setHours(hour) + } + }, + setAmPm(date, index) { + if (index === 0) { + date.setTime(+date - ONE_DAY / 2) + } else { + date.setTime(+date + ONE_DAY / 2) + } + }, + getNewDate(values, index) { + const value = parseInt(values[index], 10) + const { mode } = this.data + let newValue = cloneDate(this.getDate()) + if (mode === DATETIME || mode === DATE || mode === YEAR || mode === MONTH) { + switch (index) { + case 0: + newValue.setFullYear(value) + break + case 1: + setMonth(newValue, value) + break + case 2: + newValue.setDate(value) + break + case 3: + this.setHours(newValue, value) + break + case 4: + newValue.setMinutes(value) + break + case 5: + this.setAmPm(newValue, value) + break + default: + break + } + } else if (mode === TIME) { + switch (index) { + case 0: + this.setHours(newValue, value) + break + case 1: + newValue.setMinutes(value) + break + case 2: + this.setAmPm(newValue, value) + break + default: + break + } + } + return this.clipDate(newValue) + }, + clipDate(date) { + const { mode } = this.data + const minDate = this.getMinDate() + const maxDate = this.getMaxDate() + if (mode === DATETIME) { + if (date < minDate) { + return cloneDate(minDate) + } + if (date > maxDate) { + return cloneDate(maxDate) + } + } else if (mode === DATE || mode === YEAR || mode === MONTH) { + if (+date + ONE_DAY <= minDate) { + return cloneDate(minDate) + } + if (date >= +maxDate + ONE_DAY) { + return cloneDate(maxDate) + } + } else if (mode === TIME) { + const maxHour = maxDate.getHours() + const maxMinutes = maxDate.getMinutes() + const minHour = minDate.getHours() + const minMinutes = minDate.getMinutes() + const hour = date.getHours() + const minutes = date.getMinutes() + if (hour < minHour || hour === minHour && minutes < minMinutes) { + return cloneDate(minDate) + } + if (hour > maxHour || hour === maxHour && minutes > maxMinutes) { + return cloneDate(maxDate) + } + } + return date + }, + getDate(d) { + const date = d ? d : this.data.value + return this.clipDate(date ? valueToDate(date, this.data) : this.getMinDate()) + }, + getDateData(date) { + const { mode, lang } = this.data + const locale = locales[lang] + const selYear = date.getFullYear() + const selMonth = date.getMonth() + + const minDateYear = this.getDateMember('min', 'year') + const maxDateYear = this.getDateMember('max', 'year') + const minDateMonth = this.getDateMember('min', 'month') + const maxDateMonth = this.getDateMember('max', 'month') + const minDateDay = this.getDateMember('min', 'day') + const maxDateDay = this.getDateMember('max', 'day') + + const years = fomartArray(minDateYear, maxDateYear).map((i) => ({ + value: i + '', + label: i + locale.year + '', + })) + + if (mode === YEAR) { + return [years] + } + + const minMonth = minDateYear === selYear ? minDateMonth : 0 + const maxMonth = maxDateYear === selYear ? maxDateMonth : 11 + const months = fomartArray(minMonth, maxMonth).map((i) => ({ + value: i + '', + label: i + 1 + locale.month + '', + })) + + if (mode === MONTH) { + return [years, months] + } + + const minDay = minDateYear === selYear && minDateMonth === selMonth ? minDateDay : 1 + const maxDay = maxDateYear === selYear && maxDateMonth === selMonth ? maxDateDay : getDaysInMonth(date) + + const days = fomartArray(minDay, maxDay).map((i) => ({ + value: i + '', + label: i + locale.day + '', + })) + + return [years, months, days] + }, + getTimeData(date) { + let { minHour, maxHour, minMinute, maxMinute } = this.data + const { mode, minuteStep, use12Hours, lang } = this.data + const locale = locales[lang] + const minDateMinute = this.getDateMember('min', 'minute') + const maxDateMinute = this.getDateMember('max', 'minute') + const minDateHour = this.getDateMember('min', 'hour') + const maxDateHour = this.getDateMember('max', 'hour') + const hour = date.getHours() + + if (mode === DATETIME) { + const year = date.getFullYear() + const month = date.getMonth() + const day = date.getDate() + const minDateYear = this.getDateMember('min', 'year') + const maxDateYear = this.getDateMember('max', 'year') + const minDateMonth = this.getDateMember('min', 'month') + const maxDateMonth = this.getDateMember('max', 'month') + const minDateDay = this.getDateMember('min', 'day') + const maxDateDay = this.getDateMember('max', 'day') + if (minDateYear === year && minDateMonth === month && minDateDay === day) { + minHour = minDateHour + if (minDateHour === hour) { + minMinute = minDateMinute + } + } + if (maxDateYear === year && maxDateMonth === month && maxDateDay === day) { + maxHour = maxDateHour + if (maxDateHour === hour) { + maxMinute = maxDateMinute + } + } + } else { + minHour = minDateHour + if (minDateHour === hour) { + minMinute = minDateMinute + } + maxHour = maxDateHour + if (maxDateHour === hour) { + maxMinute = maxDateMinute + } + } + + let hours = [] + if (minHour === 0 && maxHour === 0 || minHour !== 0 && maxHour !== 0) { + minHour = this.getDisplayHour(minHour) + } else if (minHour === 0 && use12Hours) { + minHour = 1 + hours.push({ + value: '0', + label: locale.hour ? '12' + locale.hour : '12', + }) + } + maxHour = this.getDisplayHour(maxHour) + hours = [...hours, ...fomartArray(minHour, maxHour).map((i) => ({ + value: i + '', + label: locale.hour ? i + locale.hour + '' : pad(i), + }))] + + const minutes = [] + const selMinute = date.getMinutes() + for (let i = minMinute; i <= maxMinute; i += minuteStep) { + minutes.push({ + value: i + '', + label: locale.minute ? i + locale.minute + '' : pad(i), + }) + if (selMinute > i && selMinute < i + minuteStep) { + minutes.push({ + value: selMinute + '', + label: locale.minute ? selMinute + locale.minute + '' : pad(selMinute), + }) + } + } + + const ampm = [{ value: '0', label: locale.am }, { value: '1', label: locale.pm }] + + return [hours, minutes].concat(use12Hours ? [ampm] : []) + }, + getValueCols(d) { + const { mode, use12Hours } = this.data + const date = this.getDate(d) + let cols = [] + let value = [] + + if (mode === YEAR) { + return { + cols: this.getDateData(date), + value: [date.getFullYear() + ''], + } + } + + if (mode === MONTH) { + return { + cols: this.getDateData(date), + value: [date.getFullYear() + '', date.getMonth() + ''], + } + } + + if (mode === DATETIME || mode === DATE) { + cols = this.getDateData(date) + value = [date.getFullYear() + '', date.getMonth() + '', date.getDate() + ''] + } + + if (mode === DATETIME || mode === TIME) { + cols = cols.concat(this.getTimeData(date)) + const hour = date.getHours() + const selMinute = date.getMinutes() + let dtValue = [hour + '', selMinute + ''] + let nhour = hour + if (use12Hours) { + nhour = hour === 0 ? 12 : (hour > 12 ? hour - 12 : hour) + dtValue = [nhour + '', selMinute + '', (hour >= 12 ? 1 : 0) + ''] + } + value = value.concat(dtValue) + } + + return { + value, + cols, + } + }, + onValueChange(e) { + const { value, index } = e.detail + const newDate = this.getNewDate(value, index) + const { value: newValue, cols: newCols } = this.getValueCols(newDate) + const values = this.getValue(newValue, newCols) + this.triggerEvent('valueChange', { ...e.detail, ...values, date: +newDate }) + }, + updatedCols() { + const { cols } = this.getValueCols() + this.setData({ cols }) + }, + updated(inputValue) { + if (this.data.inputValue !== inputValue) { + this.setData({ + inputValue, + }) + } + }, + setValue(value = this.data.inputValue) { + const { value: inputValue } = this.getValueCols() + this.updated(inputValue) + }, + getValue(value = this.data.inputValue, cols = this.data.cols) { + this.picker = this.picker || this.selectComponent('#wux-picker') + return { + ...this.picker.getValue(value, cols), + date: +this.getDate(), + } + }, + }, + attached() { + this.setValue(this.data.value) + }, +}) + + + + + + + + + + + + + + + + + + + + + + diff --git a/components/dist/date-picker-view/index.json b/components/dist/date-picker-view/index.json new file mode 100644 index 0000000..f0f8d8d --- /dev/null +++ b/components/dist/date-picker-view/index.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + "wux-multi-picker-view": "../multi-picker-view/index" + } +} diff --git a/components/dist/date-picker-view/index.wxml b/components/dist/date-picker-view/index.wxml new file mode 100644 index 0000000..cd857a4 --- /dev/null +++ b/components/dist/date-picker-view/index.wxml @@ -0,0 +1,16 @@ + diff --git a/components/dist/date-picker-view/index.wxss b/components/dist/date-picker-view/index.wxss new file mode 100644 index 0000000..e69de29 diff --git a/components/dist/date-picker-view/locales/en.js b/components/dist/date-picker-view/locales/en.js new file mode 100644 index 0000000..3e22610 --- /dev/null +++ b/components/dist/date-picker-view/locales/en.js @@ -0,0 +1,9 @@ +export default { + year: '', + month: '', + day: '', + hour: '', + minute: '', + am: 'AM', + pm: 'PM', +} diff --git a/components/dist/date-picker-view/locales/index.js b/components/dist/date-picker-view/locales/index.js new file mode 100644 index 0000000..b1de86c --- /dev/null +++ b/components/dist/date-picker-view/locales/index.js @@ -0,0 +1,9 @@ +import en from './en' +import zh_CN from './zh_CN' +import zh_TW from './zh_TW' + +export default { + en, + zh_CN, + zh_TW, +} \ No newline at end of file diff --git a/components/dist/date-picker-view/locales/zh_CN.js b/components/dist/date-picker-view/locales/zh_CN.js new file mode 100644 index 0000000..8686d35 --- /dev/null +++ b/components/dist/date-picker-view/locales/zh_CN.js @@ -0,0 +1,9 @@ +export default { + year: '年', + month: '月', + day: '日', + hour: '时', + minute: '分', + am: '上午', + pm: '下午', +} diff --git a/components/dist/date-picker-view/locales/zh_TW.js b/components/dist/date-picker-view/locales/zh_TW.js new file mode 100644 index 0000000..d086fb1 --- /dev/null +++ b/components/dist/date-picker-view/locales/zh_TW.js @@ -0,0 +1,9 @@ +export default { + year: '年', + month: '月', + day: '日', + hour: '時', + minute: '分', + am: '上午', + pm: '下午', +} diff --git a/components/dist/date-picker-view/props.js b/components/dist/date-picker-view/props.js new file mode 100644 index 0000000..96afa09 --- /dev/null +++ b/components/dist/date-picker-view/props.js @@ -0,0 +1,86 @@ +export const props = { + prefixCls: { + type: String, + value: 'wux-date-picker', + }, + multiPickerPrefixCls: { + type: String, + value: 'wux-picker', + }, + pickerPrefixCls: { + type: String, + value: 'wux-picker-col', + }, + value: { + type: null, + value: null, + }, + itemHeight: { + type: Number, + value: 34, + }, + itemStyle: { + type: [String, Object, Array], + value: '', + }, + indicatorStyle: { + type: [String, Object, Array], + value: '', + }, + indicatorClass: { + type: String, + value: '', + }, + maskStyle: { + type: [String, Object, Array], + value: '', + }, + maskClass: { + type: String, + value: '', + }, + labelAlign: { + type: String, + value: 'center', + }, + mode: { + type: String, + value: 'datetime', + }, + minuteStep: { + type: Number, + value: 1, + }, + use12Hours: { + type: Boolean, + value: false, + }, + minDate: { + type: null, + value: null, + }, + maxDate: { + type: null, + value: null, + }, + minHour: { + type: Number, + value: 0, + }, + maxHour: { + type: Number, + value: 23, + }, + minMinute: { + type: Number, + value: 0, + }, + maxMinute: { + type: Number, + value: 59, + }, + lang: { + type: String, + value: 'zh_CN', + }, +} diff --git a/components/dist/date-picker/index.js b/components/dist/date-picker/index.js new file mode 100644 index 0000000..36a4f95 --- /dev/null +++ b/components/dist/date-picker/index.js @@ -0,0 +1,23 @@ +import baseComponent from '../helpers/baseComponent' +import popupMixin from '../helpers/popupMixin' +import { props } from '../date-picker-view/props' +import { formatDate } from './utils' + +const platformProps = { + labelPropName: 'label', + format(values, props) { + const o = { + datetime: 'yyyy-MM-dd hh:mm', + date: 'yyyy-MM-dd', + year: 'yyyy', + month: 'yyyy-MM', + time: 'hh:mm', + } + return formatDate(values.date, o[props.mode]) + }, +} + +baseComponent({ + behaviors: [popupMixin('#wux-picker', platformProps)], + properties: props, +}) diff --git a/components/dist/date-picker/index.json b/components/dist/date-picker/index.json new file mode 100644 index 0000000..238ad24 --- /dev/null +++ b/components/dist/date-picker/index.json @@ -0,0 +1,7 @@ +{ + "component": true, + "usingComponents": { + "wux-popup": "../popup/index", + "wux-date-picker-view": "../date-picker-view/index" + } +} diff --git a/components/dist/date-picker/index.wxml b/components/dist/date-picker/index.wxml new file mode 100644 index 0000000..ac3c35a --- /dev/null +++ b/components/dist/date-picker/index.wxml @@ -0,0 +1,45 @@ + + + + + {{ toolbar.cancelText }} + {{ toolbar.title }} + {{ toolbar.confirmText }} + + + + + + diff --git a/components/dist/date-picker/index.wxss b/components/dist/date-picker/index.wxss new file mode 100644 index 0000000..2405eeb --- /dev/null +++ b/components/dist/date-picker/index.wxss @@ -0,0 +1,57 @@ +.wux-date-picker__toolbar { + position: relative; + width: 100%; + font-size: 34rpx; + line-height: 1.5; + color: rgba(0,0,0,.85); + background-color: #f7f7f8 +} +.wux-date-picker__toolbar::before { + content: " "; + position: absolute; + left: 0; + top: 0; + right: 0; + height: 1PX; + border-top: 1PX solid #d9d9d9; + color: #d9d9d9; + transform-origin: 0 0; + transform: scaleY(.5) +} +.wux-date-picker__inner { + height: 88rpx; + display: -ms-flexbox; + display: flex; + text-align: center +} +.wux-date-picker__title { + position: absolute; + display: block; + width: 100%; + padding: 0; + font-size: 34rpx; + font-weight: 400; + line-height: 88rpx; + color: rgba(0,0,0,.85); + text-align: center; + white-space: nowrap +} +.wux-date-picker__button { + position: absolute; + box-sizing: border-box; + height: 88rpx; + line-height: 88rpx; + padding: 0 30rpx; + z-index: 10 +} +.wux-date-picker__button--cancel { + left: 0; + color: #b2b2b2 +} +.wux-date-picker__button--confirm { + right: 0; + color: #33cd5f +} +.wux-date-picker__button--hover { + background-color: #ececec +} \ No newline at end of file diff --git a/components/dist/date-picker/utils.js b/components/dist/date-picker/utils.js new file mode 100644 index 0000000..5fcb700 --- /dev/null +++ b/components/dist/date-picker/utils.js @@ -0,0 +1,23 @@ +export function formatDate(date, fmt) { + if (!(date instanceof Date)) { + date = new Date(date) + } + const o = { + 'M+': date.getMonth() + 1, + 'd+': date.getDate(), + 'h+': date.getHours(), + 'm+': date.getMinutes(), + 's+': date.getSeconds(), + 'q+': Math.floor((date.getMonth() + 3) / 3), + 'S': date.getMilliseconds(), + } + if (/(y+)/.test(fmt)) { + fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length)) + } + for (const k in o) { + if (new RegExp(`(${k})`).test(fmt)) { + fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (('00' + o[k]).substr(('' + o[k]).length))) + } + } + return fmt +} diff --git a/images/work/shareBg.png b/images/work/shareBg.png new file mode 100644 index 0000000000000000000000000000000000000000..27a6c0e2386795a5100495a4eb74c88a40102e13 GIT binary patch literal 39365 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 - + 满意度自查 @@ -66,9 +66,11 @@ - {{communitySelfInspTop.agencyName}}{{communitySelfInspTop.monthName}}月份满意度自查 + + {{communitySelfInspTop.agencyName}}{{communitySelfInspTop.monthName}}月份满意度自查 + 已提交 {{communitySelfInspTop.personQty?communitySelfInspTop.personQty:'--'}} - 查看统计 + 查看统计 diff --git a/project.private.config.json b/project.private.config.json index bbbc93a..ad7f2a0 100644 --- a/project.private.config.json +++ b/project.private.config.json @@ -8,6 +8,20 @@ "condition": { "miniprogram": { "list": [ + { + "name": "诉求摸排", + "pathName": "subpages/demandCheck/pages/dissatisfied/demandCheck/demandCheck", + "query": "", + "launchMode": "default", + "scene": null + }, + { + "name": "查询结果", + "pathName": "subpages/searchResult/pages/searchResult/searchResult", + "query": "type=resi&keyWord=马", + "launchMode": "default", + "scene": null + }, { "name": "回访记录详情", "pathName": "subpages/communitySelfInsp/pages/followUpDetail/followUpDetail", @@ -64,13 +78,6 @@ "launchMode": "default", "scene": null }, - { - "name": "查询结果", - "pathName": "subpages/searchResult/pages/searchResult/searchResult", - "query": "type=resi&keyWord=小程序", - "launchMode": "default", - "scene": null - }, { "name": "新增居民", "pathName": "subpages/addResi/pages/addResi/addResi", diff --git a/subpages/addResi/pages/addResi/addResi.js b/subpages/addResi/pages/addResi/addResi.js index a58baa4..6882941 100644 --- a/subpages/addResi/pages/addResi/addResi.js +++ b/subpages/addResi/pages/addResi/addResi.js @@ -239,8 +239,11 @@ Page({ console.log(err); }) }, + // 获取婚姻信息 getFamilyInfoDetailById(){ api.getFamilyInfoDetailById(this.data.resiId).then(res=>{ + console.log(this.data.marriageList); + console.log(res); this.setData({ 'form.familyInfoDto':res.data, marriageName:this.data.marriageList.filter(item=>item.value ==res.data.marriage)[0].label @@ -386,8 +389,11 @@ Page({ if (this.data.isFirstLoadGrid) { // 编辑回填逻辑 const id = this.data.form.gridId; + console.log(id); + console.log(this.data.gridList); const temp = this.data.gridList.filter(item => item.value == id); - const gridName = '' + console.log(temp); + let gridName = '' if(temp.length != 0){ gridName = temp[0].label }else{ @@ -430,7 +436,14 @@ Page({ if (this.data.isFirstLoadVillage) { // 编辑回填逻辑 const id = this.data.form.villageId; - const villageName = this.data.villageList.filter(item => item.value == id)[0].label; + const temp = this.data.villageList.filter(item => item.value == id); + let villageName = '' + if(temp.length != 0){ + villageName = temp[0].label + }else{ + this.showToast('小区信息有误') + return + } this.setData({ villageName: villageName, "form.villageId": id @@ -439,6 +452,7 @@ Page({ this.setData({ isFirstLoadVillage: false }); + console.log(this.data.villageList,'小区'); } else { // 正常修改逻辑 const selectedIndex = e.detail.value; @@ -465,7 +479,14 @@ Page({ bindPickerChangebuilding(e){ if (this.data.isFirstLoadBuilding) { const id = this.data.form.buildId; - const buildingName = this.data.buildingList.filter(item => item.value == id)[0].label; + const temp = this.data.buildingList.filter(item => item.value == id); + let buildingName = '' + if(temp.length != 0){ + buildingName = temp[0].label + }else{ + this.showToast('小区信息有误') + return + } this.setData({ buildingName: buildingName, "form.buildId": id @@ -493,7 +514,14 @@ Page({ bindPickerChangeUnit(e){ if (this.data.isFirstLoadUnit) { const id = this.data.form.unitId; - const unitName = this.data.unitList.filter(item => item.value == id)[0].label; + const temp = this.data.unitList.filter(item => item.value == id); + let unitName = '' + if(temp.length != 0){ + unitName = temp[0].label + }else{ + this.showToast('楼栋信息有误') + return + } this.setData({ unitName: unitName, "form.unitId": id, @@ -518,7 +546,14 @@ Page({ bindPickerChangeHouse(e){ if (this.data.isFirstLoadHouse) { const id = this.data.form.homeId; - const houseName = this.data.houseList.filter(item => item.value == id)[0].label; + const temp = this.data.houseList.filter(item => item.value == id); + let houseName = '' + if(temp.length != 0){ + houseName = temp[0].label + }else{ + this.showToast('房屋信息有误') + return + } this.setData({ houseName: houseName, "form.homeId": id diff --git a/subpages/addhouse/pages/addhouse/addhouse.js b/subpages/addhouse/pages/addhouse/addhouse.js index 652cfa4..a98e041 100644 --- a/subpages/addhouse/pages/addhouse/addhouse.js +++ b/subpages/addhouse/pages/addhouse/addhouse.js @@ -127,6 +127,7 @@ Page({ }) await this.setDataAsync({ form:res.data, + 'form.sysCoding':res.data.ownerIdCard, gridId:res.data.gridId }); setTimeout(()=>{ diff --git a/subpages/communitySelfInsp/pages/historyQuery/historyQuery.js b/subpages/communitySelfInsp/pages/historyQuery/historyQuery.js index 9fd55d6..f109d92 100644 --- a/subpages/communitySelfInsp/pages/historyQuery/historyQuery.js +++ b/subpages/communitySelfInsp/pages/historyQuery/historyQuery.js @@ -78,13 +78,17 @@ Page({ */ onShareAppMessage() { return{ - title:'问卷调查', - path:'/pages/webView/webView?url=' + this.data.url + title:`${this.data.agencyName}${this.data.monthName}月份满意度调查`, + path:'/pages/webView/webView?url=' + this.data.questionnaireUrl, + imageUrl:'../../../../images/work/shareBg.png' } }, share(e){ + console.log(e); this.setData({ - url:e.currentTarget.dataset.url + url:e.currentTarget.dataset.item.questionnaireUrl, + agencyName:e.currentTarget.dataset.item.agencyName, + monthName:e.currentTarget.dataset.item.monthName }) }, getTable(){ diff --git a/subpages/communitySelfInsp/pages/historyQuery/historyQuery.wxml b/subpages/communitySelfInsp/pages/historyQuery/historyQuery.wxml index b838fe6..12b8da0 100644 --- a/subpages/communitySelfInsp/pages/historyQuery/historyQuery.wxml +++ b/subpages/communitySelfInsp/pages/historyQuery/historyQuery.wxml @@ -18,7 +18,7 @@ - + {{item.synthesisScore}}分 diff --git a/subpages/demandCheck/images/IC_guanbi@2x.png b/subpages/demandCheck/images/IC_guanbi@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..beaa347b72d8f8fe3a61377af9b056a3c64bf383 GIT binary patch literal 2333 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 literal 0 HcmV?d00001 diff --git a/subpages/demandCheck/images/ic_delete@2x.png b/subpages/demandCheck/images/ic_delete@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..d7c62f3b4ab6e770e239cf0bb2a555711e84e2d5 GIT binary patch literal 5466 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 CSvHIS literal 0 HcmV?d00001 diff --git a/subpages/demandCheck/images/ic_yitidingwei@2x.png b/subpages/demandCheck/images/ic_yitidingwei@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..d4b80cd6eb26154e6c2ecd25b5a196da250cc8d0 GIT binary patch literal 3776 zcmV;x4nOgUP)|5kljsand(3P<)8nw!zE!C z0u)q8D&h@9E7Ut$t}38-SD@Q~atVaEo9{bs=V8t|ag*$B0y8}`8J%Hwzw?~;_B_w| z1cO|vD)Z*eD;YX;=rC(-m9=)VF=n!=o)2IgfJy+v0SpBYagPZAoB+@P-~fRCh{#9Q z+C9b?{-sWwIMF$0&Ybihw*?vO7aw})p|TMpMpUXQ!At^h5r7Lt=f` z`78?{gBK#4?RsH%Pk!1s+Y-&fVi z0L}t162LG3-7X480r0d5#JEV60yx9{5pXAfBLLb(WRJCWi|2Wpj~zR&BSf`}XbI-`Lp5R4r-^2++cX3oih0J%FE!$mIaWyL8$oB3rDr zZ;Qw$*4l%*0MWJzdUGTGQZEYn-jvP5hRc{cH->B*j+-Wlk?*rIIKtT}f^gM5GEEZ$R z6f)TvWhe|c9?5lSYL7pm&5 z0PX;A1puD(ZdH8=z-s_L6p;g|RO(P;VipaWXG|J{NctEU~s;a6nB61UeKdS0aS@28;5qaJiv%y;XPAnE8${$E1XovA*WTX)`vt`4j2k!Z3Ty2>BEnP~ z3t$(3)vCHSlgYea%mC!P8a8YgXAwF(J2SbDKqEspom?YiepzBBHr_=mm&iR;*Ytw5zL& z#m^u6Er%sj%oy{i@B6RR)YNdk^jfaKnWp0%W0)W!q(SBG!$(z>bZ0Laf{5%-rBdzv zHIhUkFz05brb2Vg531c0^abhNTY z1%P092;^p@F`OOQ6lG0urjag@`*AaG0eA+$3;ji^xw-jLW6X2_?6zY7Y*f{Gp69)j z+wpn$vZ}`%ZSmhaY}; z$nfFAN2uyW)>;nE+W=5Mkv^?(k@_OHB{wxSRj@8agqP;1(ZxC z?(Us!!X>Io8Q?7FIceP4A1kf zG{*cvRoRlcn0Bq{bb9NYIddogzgceBUfQGUl3sDhZjVNzs|o?Cv(`=#5k9C(RabKM zuoiMpZoz^DVT#3e5&^E`V1>~?hUhN z&*l*QW-${~^#T!Lw`1omQ&rBy9nolXQK6>rX8@E2B%?<~WQD4>rBbO+b30sfbMraI z80Pl9A~Ho)HydLfj7Fo+mVTC zk+@Mr9#B=zt#<%CVvKpFuC9)<{F}w*)6&v1(OP?_V=feh&+!oA@%X$#fTFIGaHE{; z%T={C9*=*X+kKjwo5=`ncE$QbN(umfOQ+MT3-LViwbIhk-vQuwpj7xbn~$oludlD) zpBtg^gxJ9m$_o7#0KpXIGu7QfX2;Z&B43t+g~d_E5=IRaJSu?~m#3?mjtK zNn27G8XEYlUduHf>LLzSrXFR)-@-85p4$<7QJ?wq=Z}g+A{RR{$Vtx4Jr#ywvcA5a z>C|gE?ZXY;tg62f5rU$*NO$zGs(vjZd=_0)l2h_AT3b6sgadVbXJ_Yo{b{7;=H?%I zo)>jPn1`^|TDwqHcjvN~UVz-@&UVFjH`C5_poNi0+>+v8bx#c$+A#)9LiC{<ZsNr2&joZ&lQ?|=^^j%;lmZG zdX1wdWZX0hDZSf*AlTI(rE&J~cxx@?$9L$t0U/gJT`VNhw(^4)EW`LLs-V}E~< zAw}|i{}Re@5n;;FE8oa&sH(44R8$xmMvRWnog%DIr_uArC5v^}E=XjWN}#O2JntA{2Q|auzWC?B6+~f-RFSX&c!?e+qW6K(gO+ zPAzMOEP~zhGuE$&Jf5$C6a>T%xO%uM48v*kwE^(%hqC$atfzdg%|L;1P*0pVaa0fl zZ2y09l7xzOt*WkYhDu(SwkU6V$&w{wf*|<0wf1g0nyhcOTUA}9s;|`7*K^*S^5P6E zDJdcICaY%Mvi^9r(&~BM3$?Yiq)2&JQGlGs&Dq3mL$(%sU`0hJyNR5XxWy66S6Q&mhDsHRL|^}&O=(r- zykSan4JxGv1SqFy=?Yy9fY*o=TPuzqKmPhaTRA)Fp+kpgYf;93tLX$m@btlh2M-M7 z&S^k^vZw3VHQOrFk7|<>d=;-dRCQM&29W(7cf&z%j$N3ys zHq_SE9?nN^mM&d7GM!FSwf@O@)>If9INyq)R{hoLpaJm*-3ikjqUX#LKEm5QYc0+6 zE&cI5dUDQLq9A15Q26oI`*Geu6&vBcK%EjG-if+bVtDmJP}D%5@OFR-x4gW3S1!G0 zV;MVkEZ;i$t-Iae|9|f8eV)!IPm1ZFrv!)(piP@jr+;LvrQWB)rFZ=XX};%q|C}{z z*8ZNU*TZe42}3qdcXmBlyzl#)`V)}FfEmzW&G&;XEiL21Fr-ptakDPIR#m#Ets?SD z))uBDh(sb+I|{|9(p7qmf-MZg=X3qIVnOu$+$l$hKi1aP=5=&*R9kEBV3Tm~GVpDX z)ucvQXC|3UPH~sev~(x%7SCDDYbq)#_+rJk)aU;VP!D=U`-@zUt(@GC?=!T9VYr^3 z@jNdZMSgA{0h8Lax3_N@$neYu^t41M`v7NX&`Hf+uMBaXHQxrIr*JuKW@nbHBiKkJ z^4iRqGkI-!TGnX=#2vY!zs?ClUQg0b$iAb)%VXYL(+;D>yfGe+^Hw~s93KeM(+-Gj zxw^V~QW%C5X}qPQJIa?fxcI^!-$Yp-hT(IgN00vKbkxmhZwk35$oC6)dF)6+uy>!^ zB!Ni+(T0WwufMBW_2e-tHaUss0KyGHd8J%wA7oZ;e zJ!S;Par`{^96Sj+aj+5N`{`c~Dv1=45wYnIS;o|QP{S!VBHshM?j;9mG28+oU^(NN z$aWQ38O=ty8M&45XUM0(k0Wl( z*EwmkeS%w@{wK!O+AlH!1P-w_2W$gXterrXj7b0|MQrZG;9`c=jJF^Yj+`aacc78J zbS{7n^eYAi2KKVo54Dmw9*_Gb!AI!7h%92ypU6d{5qOAGwDk4$6`)wgc%RE!i;SG> zG%LVCPz;^}i>Q=`wJD7gK!Ca{2U92})T%h_}UG&)8Z7U$>ZmnIU4lTN`A z0FQwWnQB!?F?2Z)xocn<1ddV0pJZlcmSkjP_=y=PzcUb<&0LZ#r}0tb6VM`?cCs*+ z@#3tktY3pC4`8Xy*97kfIT4KP$C4PY1fK4JU-C_Ai8A<~Vy3&IRGD0CQGL%&7e zE_iXskQtk42ksmZ8UOOqiHYDJL;q##se+iFhRzDG*S8r^_{A=X2Us|bvvTKH zq0~#sre09NT%Fwk^#=9p>~iV}CaJY&!O!fShFlFAM|%s7qoil{8aS@&cvvw!tQxcV zLNFISp%7^9ZZPRgZo#Im;cO03iTq~F$H?CGGW(XbBE{S@Bg=_)NAJJkc8Z)RqdHpo z&Y!aXBI9{_GbZ#J>OBW9k-=-&G!H{(sh00CRAE0rMrOYwrJSln?;ztgu#o-^=APEO zk?JqNn7;=|qOWn@#3??&kluJb%a`;$flk$B56&Z?RPO?MkJ|U&E$29Gzvmw$#`p$? zHh}GrsU{+?+JlttUP_Bf68#Ry?jmw~Apg5AsPS58@}JQpf&V>$e+3u-IS+VkWWRd~ P00000NkvXXu0mjfWGqB* literal 0 HcmV?d00001 diff --git a/subpages/demandCheck/images/icon_close.png b/subpages/demandCheck/images/icon_close.png new file mode 100644 index 0000000000000000000000000000000000000000..5e08d97e9f6c4cf34b59bee874e4b3b427fad885 GIT binary patch literal 1962 zcmaJ?dr%X19*?{Nv?xW9qLf?Kf^a8!kc5yxfV>PrgA(8f9IY1I!|2S@Ec7Kogd_LdT zXJ#$i(?ov0>wF0Wf}c1=AjQ{6*X!+tf2*H$Xz(Q%6Uwj*qyRHOC`{lgkbD>rYak^o zg&{@Bo&h+4KyZ&xWy&y_WGh>aXh@I?Lo#Y~IGaF7NHXdmxf;fRd|0W{a=_Uu-5{V+ zaKLPagd)-L;X+l4357FEX_<19TFz2{Nr^y$k&O#zU$35^>zWJ# z&mowa1OAefOtKx|BPa|oNU_m!DlHCRvPe`0D=vn<35cOkW62a2nM#kQP}vj~n?eO% zJRlwoRTQwLg3T{t;U^AQh+#T5nQSl^NCp}SL6u}Gi^U>SV#qNu(KsSnU!uhzW3*Pk zVM##%>*c6Qhp7-P;8KM0ks^!(;+g(Zf=2gJR;z!}CcI%}Bcvl!NfcK}OF)U_|3fvJ zmuNjEg@4WWe+ug}OLQ<<3hR*~RE`g>V1p}^j?G752t&|J1lhgR#qEU%hUg0s9l+2xpFDUtbIbJat~o$yD4rTq-XE_nW;eEjvTD28zRzA^KWwkHf_Kd-$D2^Y z+<`gETq8x@X_dz%id!N^-W%E4(}6m2tEY>u`par=n0LG%(LeEnH__g)KACj<(cM$# zW;5TM=y2z?`+G10()@pKx2lEApqbt`4gRgG-zIVZ-psjO(>^y}4IEBC`mQqsD)(QN zOo6RY3=w^vEQZz+Zzf;!@?M={EuXD4<*5I$>6P?dT@76x zthP7E_U<}oc=^m1Wgc57fHH6}PZ#+pV6uDskZix$I{LOdi5FgLUgZ%SKSy*39sW%t zJE72cUPrQVfAU55>!W*zyDRFw;T1oyTF$xy15Qa?<@vymO~KNXphSoad7|nsMc1Ud zb%EPI$?apNa#p_c(QV6*WxI4`KVFZ^srYijB%A1I_|EOrX;6R$Ei7=$R10n?A5MgK z9#xm756Z*BhbuqheOn`4S4Q7&skdgH8W_Bk5|-nIG7}~b_y^cDL88a(`Ln588)(2- z)gw;FH#Mby?7tyaozjugCAAwFrHxES-#uxui4NZXrq(cgNQD zY<}|n#=Jka&hpNz6$L-M@nmH}2C)fvM-Gqnb4_YHf z4LsItG5rJ5=|D?v?&-rcVM;hOTEDi+o?i1a?b4sx5+*XUeJ+bdERU1qb5qXIZH%i$5-yWF}sm<}lR^X=R)vg2u}UrUAu z+BNlVS~PdP;ln3kXyb*R$;v|;m5$E~Vp^KEF{Iq4{ynxUb!|JHi|a-AvRdjIM5tJC zu(&%Td*kGY<&Ak-=XaAKrSWZ);kcd+)&&~hbUVO&B zzWS~6&yLZ4x@!ExyrXk~T{-e7z;DKE*=xJ&@$_16S*I^CE$S#$G~gBN{6Z8NTOf2Y eKmFYbFT%E;eOqI$G!(o3o?>B|pq01t&;JG5gbHf_ literal 0 HcmV?d00001 diff --git a/subpages/demandCheck/images/ig_tianjiatupian@2x.png b/subpages/demandCheck/images/ig_tianjiatupian@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..a01eeb003b060173c51f122654f71d3d520dc960 GIT binary patch literal 19127 zcmeHv^;^|Jx340x>29Q38bO3jcQ5@%1h$4c3(y@U}iu5Lxa0^IDmq>RD z+)>Xt_x=U^Y><`bi*qe_TJhj-(~4MKG_C4(C`ZX*8tLa@Pq zLO-X1KbUW*E6E%AT5e^1dB*<5JDcrU2LXj%P+6n25xUGySs2e4r}t{vg>N2sN99%vDY4dwh>FOjqn^kq zHTL>oTwUA`{_UGBy=$CizcHA3Z^PcK)uqn-(Td-dPk;4q`|Q<6ukAm*v7hwLUY*J1 zHYW~>ycWEPt0sp*riN)=Zla&I!rWhd07dKeRR^Z7o>hWIvda3qC&Z6}jz+b!S356? zSBO9S-d*V2wi5C+qv#$lH`&;z=4+Ej#OC_GUOjV5vwvWg=G9m2;!O0n-{f{f%v_Qg z2QzQbxl`HbIZN!=M`iuMakr0cJKjx9L_|b7Pw-7B%Gv;1bAtW*KGl2yukC4B>(cBe zRnqKR`1%{o(pY?nV`mMsPFBg1UtqE$4KVxo`cHfM*B#BgU)xV=r`bckC)t}_fetTa zD=RCn7c<>k@6&M{q)g27w**}rzvqsfbNVp}s+x_LDh|X2*_O-WQdYE&fNXbd0~%kh3iTCym^(vfTaq z#1G2Hb{5TmK*Okkyi->1S1>3Tcg^ycFJ*k$-~fFh#6$C?mSx}bXF<_t0cL3{egx!K zUTOB%Eu&8^*EYs0=QtiNs6fl|^76LI%F5=@2fvf{q1QNOX+fl&LD9o4_*P|u(?xIo za2U!%#>|AFt>8KP#{NvUuln~=LPCP<+}s?Ox@~l0U1DOQ_xa`3j=kA&(itbcP=zU} zZC9oS<0!?&PgQj=zd&x=ka_z(?O>&xO%z}M)t$K(%N@a!lN0p*PTO^G&FGVsuhpAL z)qEF4fWBecivMqj!i(VlYU`l@gi zRSpr3#ujB6#;UHWe+imo%E6{s>7~&JHM!hZ2)_PnApg0a?sKh|TxMyPS=D^kX4$K4 z^e4s^72<+9mVX=l)UrzTDg#Bl=!5H*_LJAj$SZrZv^Fr$va$4G2ftzmKUIqV)7mnP z7X>`SGn24)_LCv~2fy79?zzwY294Xk9{m1T!-vnaX_ofMyROtd2F(xj+)5aNOzR&0 zPD>wq0KFzcosZj_1;1TAd!vttX3FSkrNOSD{v#=q*EgKD?TVM|TLuq)^TUtaZPqyO zei(d#3*N)5T)(sEsR<+sBfxM96L#8u<#v7(b^h^bs*o6lc0G(haT5Qp=AXv2J0R|# zX6MI+n5JrTfCh4vIUvtV0YbE%*D!xH5@J!eS?704@o|+tL z|Ms7?!W^nXqKBlj=9J?3yU_8{cK#{+UHA+5C`5Ep{Vz*;$UvMw%RuctDJBI%CH;$z z#$Tm@uSosv4I_d1y_HypmbbxQvJ`xCe|sZ)jCm8QjMSkz^)CzWt^(6f5X8zwb2Ux%LAJ+dP_5Uc$|MF!Tik4?aABY6Ior{X4 z9=xgM>&*G%cL-~VGQ(Lapfws3khnNLt{>kyxrZHw zl7vSvvpAHSlmVv~W?AVovvE{GQpx@-?v(FX9RpuQ4rMMBHj#x*7M&Yb^u4ES{p4aJ zdelQ=lPIdQd9(v{zJ^~}I=(UE;^OkqTQZCOYNlPazMm`|=O&gj<9AojPY`w#9Z^&` z#yt|mf=7c1g|c4hE8%p7kS*^3WNT~i(3W@QUUgbrq%K=18c;iTd3-tlnk5+%H);Ln zPflE_4bvP5Rc?gZk$;P(LRgkg5&AL`+w`Z`o_vn39LirtYUfqEMY`Z-9UUcK7f<=4 zy@S%IZn`x13O##h6|md33;Q;>(~9#f#G0smuatHpAVI_KwWxA-z#+%rwjw(F1zarP zXMKYU@D=to#ps&%-~&r6e&z`Ya0l`|)n(e8z+FuG9|sA84&$tG0;&!{m4bU!#HW*> zyPVrqglac1fHMlk6`vm0EqC6qHm(VLB+tp)znC=*^yB;Efq% zjz>LU03VAJ9octZ1LtMbKe-c03Y?pRP*c;3KOEeRwJ=u!RYc539W(d=xAo1guJ(Z5 z9cO>0z$c(e$%n%*_FbBrSp6r87^z^2IXQk^k`*ht3k|~ z1U@m)Ny*?wCqEJRcIcYb}TEC`G$j%4VKWi zz*{@OLFAk90$%t1=g|UH6!?&+M{;QcIf;!vJ8rTD-A2+5Yzr_0f;SUv-lU~~D)A;q zZyhv&!1&!CJTL`Jk~nu74Zm6Ck-K*88luP$1>~ zqvUoiFd$Ks3!A1k(BLNr=N@s2;Dh18L~7xmrSRnb#f%V$Fgghwe5jKF!51o3n*AWo zFjpx%*Qx=`4W@l8FXsaU?X`EpbQ6FO#9jp_V=}UVupn5?$^h_`kJ<7FqYeU0!{A=(%Fk_=aVUsghe+a(U z-y9YJ1k;8}Wky^8b2Tfj&Ub*+&CNzG<_*C}wFwKD*h7245L=nZ(q91~@W}7Hk>dxF z$%}hWw6g^k5uM(ovh+7=R$vH*Rky zT0pS>v2l)5Jz#EfzrOA@ka{^{Eoip{jI=OvnD}M8EhdP~h;g-mnr6Iuf1>%G3P_HM zQ}AUw8z^~1j5`1nO^kd%y!t!nq(Hoq_@e~)=&p*8cH#w9OVVoQ2*EhS2CU+K%!r^5 zl((iFcTC9;D64NB~K-yUQIf1O*?YMNm@^l#}uIy&0$ZkkzL4J^tD zIVKX+yJc@SoH-igNA;PC@K-E+^ak5xHx}3XsJeOV>VSTrbLLcgm*h#PcVA&aENE!}MlmXT9Tce^Dr>V6UE? zxb;Y@!Lg#Irl#tEB<{rKO05eQ93h}+cd0BQ8!vL4jn_xWU4aMXR8VX-J_i@&Oy?Uw zoHtd>(*+7cKk@a8hwX1|xe5|}&HAN{scSRZ%8N@5kDy@sl3D@GrkIjEs?POXs6~cqU}|CS{bE@5EZb&WFnub6ef?rV$>#i$FZnC6M&h+Bz2-WXmBIkR_f9i1Qz#%>IS)kyY zxM^m4^ykl?_dg8hr2Xy_BHh=-0LEvfOfN@{j1OAY-`{URMv%@Ss#tN&)9+(HA!kgA z;5OIwgCQmn%~pHj%-hl4AE#Por>CLaBL>K{ofA7e-Fz$Un~QycUC~xsEDxd0@B%CC zea&QrKFA+ZfLGkXf>zT%Hc97fp%m`rJ&u-4GYucduD4kP~VkJebH7pXU%NZ;5Hc z%c(=-jX8EVWu2lhwFnLBvcuU^ge@>~Jt{v5L*?viT;edpXlBjSC3*6rioVR&Hhjp? zTWhJqoDAvq*RDHt)tH8fy?A=bYjh18Wiv4u{7DY2gp1vTx?f&nLWx1Z)#nFuDZa`# zzxd?`gP8E4m;GQ@;_CBGz@U!AH!liflrenOcvy-f!ATrf*V5oXspGKxqv1b#?>+#_%f)Z%M;{0YOvVmnPQQbw!BBAxM}1!SPc$9%zciYLvcr`1Yfm>1532b* zTcxtTz8~MPIQDPZ&?y=LA<03F`o-cU8O#QVkBoj?HIp=yTYM61$qp|r6N1~?WEhCX zx5@b$zq@_J+1S{io^hi_(G3)5inE0l0;8GXCVwFtf}xHCX>DTcFh;l-4FO5{wui*P zgYx;u5tUGM6v(AI*xD{tkE~7a?wrYnO8?&!mMhQ8`!Y$;wJmG7qD zf5d_t4|W1{^l$I|P3g5mfvO$6cgy^nu@e#p@vDp7?7!sT0Z0xGhBdnW%^9{&0Bx;G z@eBK#;~NMA;U@8V{lDzvf4iW6eGmiYp~X{$e=Gin7{>o6F(RWe`=IC=C|XkzB&O&5 z((D5-#BO241U=#1XZmQrB_U8X+GvR~=MNCv88N}uQo0lJ^Tns;7c$qWSXJuek*hjX zwM(n_jKUs(y|+vA(^DXqir8Lzs?ABIhs$=pP^q=G@%f$15r-#4j$dID@v1 z{Kx6(=~qGIT*w+J>L1^m`IZIkD7_;=9(l;uxqy_SAs7QKq@s<%&ZQPCsiv9M1e??1 z8{$KWX!wTqzofuK@eht)G~bI&ESSZ+~@PQSO5^?O8nLJ-wy zsZVh``05k(1BWGW7?!pJtU(D{NBAJ|CU*fFl+@XtUKYJAklR^ zIXT&%nVHFtSvLA4;r36zc=wFKCENv4kQ+L1`xub*!|zEwdj7MRsi|pGQBl#O?Ck7T z-q_rhPoMnu7rW!;T-@E6o)KQ()0Il{C(&Z~HL{v~28D6r!Y&EDg=(ym%+c-RuW4opG`o5g!#Ex7WV$j*fyfG^bA z+8Q8hDo9ccYAe&&Q|=Y< z&GL|S7`;Pyr^i_XGgaO#AmBo=a=hu+bIFgjqLEfxx0#qif&fbyb%^rv@{u=!kAj;% zeL7>CT{67ou<}*`@|@joUOi5x4*Tx9{Pgtn=6p+!W7oywg`qJL77)!7E^#{@JSp2IG)1@N)r%ZrBA!GK}YB zWnFIW?(UirC=nDVMXV1q=QNsdeR$7}hrNdU*%i+)Wb-XB(dzc?+d&C$z<&1u_;JL+ z!I^V&b-ffSv@%v+5@4}om_CWwEXH{n930$^$r|i7Q`aO_RVox*|5#Z!!;v5r7wQHz z==$TTYAe1OVQyp|9C$(z&)nU2wooXPk5=@0u+HJD6EKFSEVy#omwo%*8)ijt0k>+=huXF_ZJlwyH{3L7(d8h z2fXAZDFGZRD#hJosq6t%F`@VhLKRj81Yc6b3b#N+V!0=mUE68sEN6`B z_%qOeLAkc7s;3duYH*B&PqmThbcn;U!7eziY6gYSm-aiXm?w5Pssb;BGkm~yUQ=QR zDBP{R>B&jIdv4siD7rVTO9vvP1`r`-PhW^fC?#2CV#c8%9=E_q)C->nNYk}sR zT6B@fdp0*F4vTp)CE|^7U~hJ4zcD?L-J;gGC2`3`;2#t;D2UCJ;0T|Hyi_+{NMiYB z?kvZ~Xfhfm!TCJKCli+Fp#qzaa%}Frmu>d$Awx>So92QdOO)iQ=i(Ydv>SN z~BfT*?BndzUOgd=f05sgngK7FPs3${<)4}+GLT<%7Mw2)dS+zY3}k6`%=8@)EWT8+QM#k6KL zuse(RS2;(KEiElRo1q%cqTxB~&vdLM!+D5$Aj6U$`oYweH{2Hse8^!p#y0T9hroRn zn8GX&5SI9imueCIbFG>e44^{T&6h|%8+%ba*phpok!tF1^G>*S|$5~QQmc&g2@wwQ|B z8O;^btNQq?dtqTgP)A2cEqjgm*HeBn`L^zQvDv&=1(Ny-8VTObcE`XcOp4~X$GtxK zu*^|aG1@6={Vf`oJPaKF{D3S-zGN$X^mGQ3Wzwp1`|RxO4klJ5Uj)Tj0G+R@q8~9S z4I!b)OI~kSPGds@YAazN@mngw+cW~rCoRzMEv=|HR!5|Xk- zCa`>MHg1bd!liMtJ%TyQp-B)VjkgJ~Eyyg>2}oMw)I}gpVrEOJhu0dvL?&pg*+^|% zUAOW_*21@Natx82>duvRxU(E+;1-iIx6JMxJZo)>ua^-3!SF*H!WNlPA}z5K11C=G z%5_Vgt}+nAQwopKj5GOKcIa7)ie!54eI*f8a0aG397A_8yP`>}3CVnTXd0S4kNaHm zcHaf_yMg8+R@l?qQNA##!lxn3UvB8LUTkk}ZuVbP&-gN8@(u3xTHGqV1N%~jNuEvV zYyzRAgaWU0Pi=ttT`zj6Cf>h7{@1D5yKu}+-vOs`#LLP1uQyu*!rebhwM%k4=Xxo0 z@YDu)dUmQD!?Ej^Mqcy!Il5L8<@t=+Ad3r~RD}bp zJ>2>jRo_oUb;~dxho_w0VYVhXe$9S`#w#^3S{uAB_3^n!phA)?Hh+O+z2V}4Pue7wJVem0JNdumM0 zxQQ61^4q*9%nf13wbpV?T~}V6lVtP3Mx2Y#^a616$na_CHyFfBCha-uoJjOQV;D>H zfDM{gE1&|$WtH=`JA}$0AN}GXc786aU%IR3b3J4TSN?p*QgN&2>*y$@jk0T35ShSk zI9&d_hhq#X7L331g9WSx|pVKp%`llo|u^lLYrHN8MnG!GvO{2YEb*Ym1S){ zOK2OdQ|Y#rB^v}q*>F1U@-m&5LQF^`I9Xraw$*)<6?>cTqRw(rr;6SX z;t&DivX>TTh)3n?%Z1ymTTz@)ys;WBe*TQ~Dsd%a$YtiRw%+ApRQcr)_l`Gjcks52bQ$h-wQJ zW^lj=acy*(k0oF0FnVV2$_9wMJJC~n>+>UdK0oiX!c3(V|Ev3j({Cxry6A0gM+=b$ zRH(g*7W*wg`#skqg&UP|D_2=;uSr^0c!Bwlh!{I5Qa%U0a19m^@nl=~)%)c^=3s;r zsrj;Q8u#uxM7Nu;^5pi#)45zfIy+fh{_f?dcdM*sa1`C%)a2yZ?*2;uytVP2HqrNj zFRivVHyJ=+dP(OVgL@;O9PFlw3)>R;4IWc?hYRC6R<9E1Qn4sTlZbIbhNPCFllY-L zF7V<4r2Ap8p;-}0U#5u~^89|4YxSM`Sj^$idnd<8unPSrex<^V&+5*&ow(d&h1P8P zmiicEbx;{>zu$^kOrmSM31kY@+`A*TGP&7z${cBwt27syk&z_hrre!MoYbOz9Xk2d zhQq6bnUNzIH#?}4E+GN6yJHeE;m(ta6w>9%f{)5Mg`Z*U<;B~a73&#a?d~Qomf;-I zS7M+eYLEJ|d3bFY7?_x@--YHld~(ZX9E-Mc6?rQ+y%5R_MjZYsK#4iRYfWmgC;SFl z{5FI1Q)xf=<(bO(U<$Otth9s zE^`a25cK@{p=R}D1Ce}skyZCMdpz8F19=;{`79-3UYB`?YLank;$7~&XM1p44TOG?inl@R5{SWXJ$rk5 zZ}uLRQ{h~Y(y_ZJH9bXZ730&Ohf683=}7s+e+L`!H}k@hBHDjuaWvG`9VM31X)&Hg z`c3yzg~x`l>TD+1>e9hAIhnIHk2VD)L_)2GLtS@U7uCNGU{7Q!d8u-(IX=gOQp*P(?vw^z`QK&DoemwajE8$w-s?~ zgD#)#-KlE4l%khoJQXwu+z{@<+++$}d93}(N0bZ#P$BUtRu2%$ZF-^b^AxbXHr&os z5C*thrH&*zTG{dg44XY{lOy+Gj`>ch)>QXmWc(IA5HaJ*5M3ReVENOOi?<6qTU$Xn ziCc0?)I*)QCbMzWf@(zf;Y_K~4WZ%`oRQLSN;D$(IaM~^YC@H~ID~xi&E6SFjkXfe z6e=>OU?bNmg6&}gaYCmio6`BTCqm^+bPrYd%E5nc5vx1uzW7S2c@+B0Lgf1i!xK%P zBzWC(&hkCEs$$pT3C6NV&-Yqs1{PU^iUs6{l@LNzz3u7^0^6xJwt`~E6%fttyS_wz z1QBMRIQ_L2eB&kFd+(CiM6%F7Af|b^G+U-Q=1eoMHW2OncsjFGB9MX=@x71D=u>2o zhrj zer1GJvS%*i8}o%C_1lBe07^uG$f_t~36=AIgPGrxH6vvpyG32SB*1Wj}aA8FbBWRG3-^8h-b zJ$8eOXevhBTbwq=w}q%-NFuOH-E+>qEtrCI=2iGT61@5DM<_yC-*k`DKl|0F!gC!f z%JD+jHNM$9-%9mbBnSCR31QssP*Q1eGS6@VR@E`~$=6HoqKsG2?4kJ?2L}h^T2FRo zKT{=)p09cOCObA~ETqk6*G>7x`9`wjJ2jqrI*DJ&V3qB0zT3R1FnSC7j)K7Eo;pV& zY+AQ>wpY8DE82Mak)qRkB+*N}5s}A3l-P<66Z#$<*bAp#K9N+SA=o1gAEV2gJ!(2Qk&Zf4KQ`o`OlBvhj^zU5sqMO|U-p&D+pFy%(T)sc-dk1_)8;51%Mbzy&bt9$}_j zNkttNE^MU^HHL-IkKrUFPjX$zH_WTVr<|asJnvxin)mgsr6Aa;PGk^+MeOXGsm^2d zD(LUAIBI09(=pbnm@o16%CoYvgp%2k^^r1tBAS=Fl!HsHNWt9(8}oZk2T{Vc4WHqZ zV@QaF%FVf$4PA(dMCTK*gOJ?5w~>{Tv(qd6d-#K(%7x&kX;JracQz*C5vO7`?wc4 zFo!AV{_kc?riM=$N2Y+F;C=5b(L#lnm|=7UK{nl(M0QXWiLvoU=yaH>R{Aa$cdlf+3s_}T~^?QC1rRx&VuQenjzy{pFj zp8uu%?tboxyi+!p^Xj0KX0p(eMU0{b2Tva@l|zz}gJ_A(n)=Vn@GscEZ6qjl@fQ}Q z>>=3o5d5X!hnl&sOeA*VkuE>l#0#w=T3jb$Pq?ziDWwrecR>?|3PuaV)tSp*=e|9( z&3?2U_twRe}ncqX@V`@It2bq|jbCwE_mkv;;hyiJ8qE!b)%6!XULm>F^GE#(O{ zhLLjhuU0SeI|3wZ*xWdE7)`#sfLnEGP?ZSXISC(-Z!S*fSM%c*XRNXGLIpE6-{^=4 zl)-pgDgk}ID13|kwUopjjV|F1oIJ@a2j%=>kP|``wC&yW9n+;KPl5LV3EU@EqRJ<> z)_ZJ=+YSGsL8to%#fC+YLIfmeT7V>xwItH+Olq76JM62crl_&*L(WbiH-eCu7Yi!| zdCI(_%Ns4}C3&*O*^YCxJijxAtS$Jc_6f6V;9^w6_Mc#XuEC52CMH+)zED<6)FX1H z8F;zWV?CB5BlL?|Z|`xG4F1W$rrA;{gSG-TEOg>2olqFnEu%v>36CA|LfaaixA1Zn z&tzqPh3Hp?xr7FddqTTJ!)Dr0%>ldLr^QRB$&@HUS2h^Ibogg)Z|_+l^2)Se|8=!f zzW`Xc{*vTkmX+})EgmkH;A;jEHO85#x5xk8Esqr zK5yZ5f#N}jG23{di}EZY`C_6H`H~?14v-bntQ^RlBA}y4;4u2^@cr&cH~FGk97vZ7 z=2<<3G1G=K+)sK_-|yIKE5P05-_apE&MIQZ)`MteIzB$0?Y1dl5q9}rRw_ej6J1D3 z$JU>4{B~x^Y!igBk>T)Kp`0#v(o_ME7}o)BOeUg^*wp!kI`J;hxk4zGSG}ht{4h()pc!Pl)iR8Oo-i4Q5(K5Eqw`Bzg2RmrB?s( zU`(b?kLfv%l7Y)vh)Icay^=WLKbnC-K%z^}0m(5hZIEGo3RgqiC38Lb$YfZT}Cl zTRMl;-jnx~z0LSc`h}U;%{=B=Z{2&n$fOma1Ml7h!S3!GU%ZD&$=f?S*Vt&*U?N6* z7NlxfDtf9@15Vk^V^kh(EvsN-gp@-nnBQ9@?u0F{+F=z+KZrIVSXs1BVKyw6dv;PP z+r7ktD)nuUdZ*YE9vTC2PWtX(_dtGs)8Obzvdz&L#VYm)RjTM(P@#`B`7-U~5I>$e z7ED5c{YD~SyRQQ>z_Y=x&jUR+$v z_1=6F9+qrz`u#?W9GtRI(>H0b8F7^Ij;yocBZM+=(dRUvpju6$TR4(Pk=K{(SYudI z?wlg25l)%pd`4%D%1azwZR_k$RBglD+2si^QFzV6PQ#nmb!p*Z`u=e>;}|cY$%$+k zn6I67Y0;%|c1fgMlH*J442hAIc#g45OS1i#jc@i7Lj`c<`(-y0`0*S1_&oxoOS7jq3h8>a84znP`J7=g2r-j1XzjPr~jqec|_9pF;tVDv>L%}GS z5}Na+X~ajwo9^W}=I7z5i&bn!#qZO%Df9Sm9ew^`%ssA@{!(6qkw{%qigLblA^B-S zm?9x5qA7V^+PK@@)_6}2X27SR&#+0){VV*N= zZ-7@EVz`vT%eL@+wShKWR&mt(C5=tQOTA}2XwT+Kk6h7dTLX-1rqXny(ghr12Lsfi z=rA4k2aEHVkJQc*k#z7A*VEv2A8nL>?65tqEQ;|>^{-Ib9#}4zAiN*_~`@oO=3*5}BJ`J{0 zNrXMEmBxsD(_PYy2<^JLBar{b<&{CLt;1qjdP7yjy^nQu5iotHD^_D6UB;eYH?$pY zJ1gu>7k)&{Da&8%XD^9&d@`>gLC`efbENfE6L?{Mfh^BGU2^|{IjuR~CHtVt<_mL$ zXH{srSH-*^i`COkpW@9cqp@X07SxcK-ll4CI*I$hxBOp1jN6~!b$D$313CJrjQjid z@22Z8^w`EM6ebr?>)v#@j2;j$K+!%f_C@8&@+`?ykkE_gzvNAr$Y)Ozuk6l`L$6&?;)eXMts$yos zJ^U3ODpn6Hp`e;KiadU8vo{>mcC8`_I^9^=%xGd^a3>%ONT5*n7H60R1&R2N)?$a9 zZjH5t;$&FP4zt_ml}46;g2fllDqmVyqv@~GYz|!Z!%#6XkzEoi zC<3;=%79w-+e7ZQ!*F8J@sMguAL`s?$3qUrrk4sfzR?SqORJHXsa6HrohL4gL|87k zs)aQ*!&U6zu)W9XVo9s^RbMg}V-Z{WmtjXJJ?S6=6g+@{vPc~*){!)0Lr<}EyNN6U zj4*FV30-WZ9bURDvOXl^H=rcc4rM$f1w*9&MInZ4OR|JnjFH+3lS0I z@I6Z#r$W8JG&H6v1;XQr@GVY8IXrx_KHD4Jw`@I%$gqy~)ZVJfk&X=xYQGc@p64rj z)p$EDC<>u0vbxx_B=|TdnR9$+XD5VOF@}XdJ0RDQHZh4SGvy+;SIvP{`B~>r^WipC zthiRu)9QPCM{M>@97&YAVP2ABo;I?Ow_{X%BK(h91JCY-i%vQk?;#oeYf3XicEoQj zndu)fR>h98s6{&&ao?zd@M8EV`V*$eTCEo0 zQGK|b5L?M?&a@r6GL0tqX!1?_;29(2&)#5f{-V5PTRM@^PqdFGJ|40V-mUs>z#XN? zD;XBR=cD8>AJ7r$OC-D^O`yb9hbdb!miUGOr)Pe0o|XlZXEKz8onFV*SJ0J2+O}RN zTEyf*8+|^{nE$h9WJ*zlHGx!=GfQWh?9PG9xW?iQ$BOfw7ySO0*6Q(><_5072`K*Q3jAa`XCWAg>Il6F?Y&5}(D z*+d+-m&vF`YHRt@`Y6JQXr36p@9_9h&Eli+MQI5rl--FPq0iYA?;riTkBVpJ9YK%a zZr4&8B>bGeWVJ+m*>lznYvcZRlXXTcXXSxGPAll`m)xxmyA_=Gg&ud_)V-O+5^?KvLL8~j_5<7yRsz4PpyPYtWh zG!>B-I|~WDL5%De9f7jbnUt*Jp`SxTP3x(in&>lo^83cx#RED#oSXz7B%V!oQfv52 zb4{{J7s166yG{4av7FxyW@EqbCBRXqkj)> zPjx5a)id#GhrM{tu4s}O=i`UnUO6Pgwh7#YrsT2t;bd6Pcou3X$t7k0>Aa`iW){uTpbaqfIS%K3R#V!S29|pZE@E9HKjK`^!)K z)yPqP>$~S)Ii-3%9(^W`VS&c}j2!HG9Wabm5Vv`_gNO6DBdAMpxz%IcQ|tW)5t+=- zxRjo+@Qd&}tIV68Zr0raGEn_cB9jRhGk%AEY)w#G@(e?C>6KDwR7yBEV>Go+q&8*s zmk!$&9)H%}{Gil2>bUZ4QN7++3iihy%UG1O6LFpIgWjmqY)r5`Loh|uygR>?If5wK z6Sk6y$=nO>;XGkB^40ZyP~~97JwmP+8f{Ek=EK$yPE?7jyZ9v~7HzJ>P^*}$1pSt* zv5Q!nUZl)F{O#*t3OmUq9D6PxAmHmg<{)9d68(++T1T~|mpzTjImkB+oCitcov?1Y zwEt`!y6bxvvm$>_6}8?i#FSYIIU22i2>*0WQz#uh%Kv7v-$CND8ME6}*Zzuw2J=oK z%EwmwOO7b&#m!VaGE;GJ@nV0nuWFgg_f?>LV-Mb173l2=^Bh#^RgeDY4a7}beum|& zPT;p=o4?uKpra(+E=W6IhK^>rk9mt2uBTrL`Fext_(r#O(RZZni_hRr%}I%ly!XR2 zd(_6f}E=Fs+udMlxZWnXf|aMaVWLOBt*8GcdHko@-W2OT|ZO&Q&JaESDZYu zdO@7P@~K18{KA>OU}d{u^hG~}e|s0|8@=~9u{QKHZTG>z)y0dVUa>VLo0lYu8DEL6 zlirIkv#poZvohG2OVLN+R$cAy?>~#%Wr0)P)9ruge&Yt7!yjA#I$3TQVnx53HCBf5 zj+zZF){~7ip^OeG`X9O2ER3wq7Q#-L#Bs~7b&s>G^PV5m)OY1|MS`aY?Bz&r34OJi z#ZNDvF^%={esFTpSyY2)KPV5vbC(m9RX{x{oLN7Ty#1YqoaY#~h*ZS(1+jl?DQLu9t~2}gr6${d4D<`m+@L^exoN#qPA zI3=j?rG8pz_?d>D_U<+rVXgMM#Pk31dJf{OZmK7_ahm z;l|5c-zr#5yxbTfa+aEodT+v;H&-rP5UgC7x#r(I3f^gq<(E3muyq8yD8lgcWr_Vw zdyf;Xg#1OUBKO#=Y#IGZuBxdi4(A|c-h`8J;c)S@n4O-ARL`x*5RK1o=kG-D^4w_d zX=KBAo2bPS6zu7lYM#mxemO1HhI_tRe()#D|K@tYoEU#g{qAEiD*f_0Zv(RjRwUM* zPl}!2_@i$OwtszbyCv;a{_aqt`eAN|>%c@WB(&;Rl82X5=2cg{Ldl19M`iux#=FRu z&>_|3Ts5q{z$Zw}lFhwFE}X^Qipu?_#zs8)z%?HVziJ-Z7hK1B>#f?9H@mZ?cv2$m zUIDlQ99{nk9f6ly*^97`x_gZjRNZ5C92Ez*Q_bBLx=$Xjl?zYp?*Dst*;M7v2rXQu zH7fH>I^Zd3RM3)Xpzm6e)GK8Vu7sG7;cvhD)EH*bcn?pTtS>p+;xe9{fM4mGpyp?_NJ13rvovvmLw&n0yYdaF48fI?VAl&0YPl zJL|}}yN!+P{qafHNY=A$olfSkjkWPhnZL*~>|>~Kr6!|c1HXSE%8%i|Q>K3<)psSQ zKr#4NGw9`@{>9cG*n#B#c}w>91^xkeGdDPeQU4DR;eVdi{dvnj0IvIrx#Lf?{=HxO zKQ9gcpaKZFgJCuETV4FUi2FYeFaLDk{vTrh_l4sBW-(qrLe4h(9WVi`5mxkpPMZDd z!S>sKD)<7E7qk8V%4BDDYhp4_U5aqBl!B3bShQJNP;0 zU>0e$m-7aHSigzouhy1nGebFY3#rWtx41#X`pD&*hQ7y59Z{ zw>Fomu7*!a9e(r&jRrhO6s+M>9BOzhv6}d!`LAXp#BYX|&I8a4AHVFj?#^>l0P2yo zdgktER!^?H;azwC?C{@xb4Ltz3|1I50E(%EqT9IE79XYAp8@cgYa#SOWo+)}187^e zr>g5e91@dsIkU74@XVX9f8Q0<;YS~|0VoouH2XH*{{0*PsncX{Mn=|bZmlEJ`0uKF zPPYWS^dNq}4e5J~2i=YmdV1P`FSoxld0Y!Juhs@>mVx13KrrX*Hdym6X_ zK(fbwpj4jfQ|#zfjSUSA>9oyV1I(N&;W;o&k^bts2D3YMPM`I`$_DFxmlk*4Y;Q(6 z0Km-r0it=mV_A9f1|-@Xoor1me*Jn3E~>7d0Bn>zDEeA{T5AA}OPKNVine@N^`Grg zp$iy(cLKTwKrz?8;2J6V4}uI(g~DO#(9tHJ9ZLYOg9FN~0o0F$IK>-#T7#MXYWARH z5^M9RXP#B=>Hlu~Yu=dobRp1Rox18b!Tu0Hde&s)ioKeo?=UmYyS{2-Jxy({o zVr8=E>P_^It>Z@kzh_-Kd$a}q`s$!Finu8ZHU9@H=LBd}mc|t6WC`ly6Pn2T6E&Se1P}83{4qvQyA#wXSb$xJtelFO0_A@hY2>ttWXX%wt z>{x#;cdJ{Sd7G8zQ?s;3ES7%RJ1UiBhkhyyH z|KK3)5EBuRAaz?ADfq&F{Wo&c$EiO9*m)_fCKg}K$MdQ`xLjbI)c3p2-??NC)osp& za&1!IW&J5n&{y63`G7%R0TG-EFmrAbMM1_E0K!mZnRWa6>ZL4%Y*eHK#+L^Gscxt% L>nK$ySi%1feD32s literal 0 HcmV?d00001 diff --git a/subpages/demandCheck/images/loading.gif b/subpages/demandCheck/images/loading.gif new file mode 100644 index 0000000000000000000000000000000000000000..915c1984cb8541c40f28762a09970b6578632aa3 GIT binary patch literal 3897 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 literal 0 HcmV?d00001 diff --git a/subpages/demandCheck/images/mkf.png b/subpages/demandCheck/images/mkf.png new file mode 100644 index 0000000000000000000000000000000000000000..74600d17dcb73f917f2b1e635e7118a26da3fc3a GIT binary patch literal 606 zcmV-k0-^nhP)Px%7)eAyRA@u(SW$AqAP{||7qKU)9z+{XVm%3|9z=VR<|38OVsN%hNFhLLX2_S5 zEco8O1>PdC@JB2hKPrL$RC9qYx6@an;8^C}a6fvY4V3SjY ztP1Ru-UE0epaSULrI7TSzo+jB+v)AkEkpQPyQ z{Bsl-nelrH6QfYBt}Iyr4%8a626$m7FNO31xX|@VF5vcmvl8HBa@d5BdaML|Sz43= zzg%YdIFi|;JEElP#^e%mFSA1GmYoB4XBsn($0if-9A+VS9z%f;q$OjL6(|WVWbR5J sBugb@ssbgm8!~rQAS6pAV-~N#H?sOzKqf>88~^|S07*qoM6N<$f-v{`l>h($ literal 0 HcmV?d00001 diff --git a/subpages/demandCheck/images/right-sword.png b/subpages/demandCheck/images/right-sword.png new file mode 100644 index 0000000000000000000000000000000000000000..4c6f0ce4b11c6ed5e24d0632f3ece44179fa0b50 GIT binary patch literal 1994 zcmV;*2Q~PKP)g!_?_3dZRp8bo6{1Ct^0CoX<3Sd@M z|0W_e*LD8|K%>5|U(ZDb!8`@94B(oo7F5+;SXg-2uRx=|w;e#ASU`sX z#O*I&rtSbJipW)C%>35Y)`P{xMgIGNoXCJCCntZ;`cc)qts`S2t^@c2z)cakX0PF@ z>$(cXzE;t9>(QM3Dhyv)PeU zDs@Oi91(d}Ro@elp8^=MLHht6iO9UFUN^>EGsY~HN+s6Xz)oa9VMO_S{w3e{bE^6Q zfb#%O0vKx(YcnLtv2EL`Lca1Tm^lP5y zRmaE2zv_1b?idh*&gF8$u~_VwF=h$?uizwr*IF_`Qn;_GMP5M>aWk3BXZ-}#6(9zl z&1REBLqn89yngQic+;whAq$N3y+TkV3IL@% zV+?DG8RKgqj{3fT4#4{&a=|v> zkkwN*lz$Ydq#$vJ92~xTx3tmME+wlBbM3#dfnBnzP)w1ilUv`_Rz5%kC;#DI#P*G3= zI<{AZ!nOfmiGmiuNAY;Pl1`@|bwlfY1r&k`g5Wi(3S-PgRi&`yr&_jon));fGjA|H%E`RMC50-R~-cq_9_Oy3ZP82uBs(t%)0Bk+wFoH2p|T<2AoVL zUpB_PX={qt@I(tJdJ?Rmd6I>dOZVCxK?VjW>{a=E{z$Xge1oEvIv2o?0UT=4fK=-O=h?gV zJqH13FR0U}Pmd>)$>X60q-+B4a!bUU%nnrr>&tcBKkthMz<~i`a8&EbWb&k{{sO?S z08mx5#>8otHFe*0-QPa!^2tM_kSrOzqT_~DM`S%H2k}rXJhqO}3;}tbcc)sdejOz<;WL8*WE{ugL_2Av4>LofvUT{Q`|8?> zwwO+*Kka1r>pLJa*~rMqkst{2s(KLsCt0e4&>f=Z@IXXLc9NZW^5n_N%E}6rc-yD1 zfCwg?PBRnq!#O_iCz&j1Bc~%pzKBOqH&g!=&WazB2W>mGB$z&dPGuZWw z6lfFg?(Px{9aS3oG#|%Wih;De7&<@PDV57*ZvT36dYYkJE_XPQNYL>iCDR&)8D$KwS=vU*;q4LU9FEx>x9wiG z?TK_h7niI z?H_oa$FZ8lPg-v6F*HEdRdtSLJ!x4)sGR$@uIv~P!EA1BGI*+G)(m~OBP~6KjghPW z8Pakr7OQM*Y&`6y$Lx3AI_^W~&!5k1Z*QMyS)-hNM*4><{~IFmv4||p&CSu*?#P;o z0;FTw=IESCrLvSU))l4n=k_i%5BJnEzh7W>;_>*cQmI6C>pPgXGGyyz*fJR#CS99T zE&J7Pjd*@C69hpakx1O>WsixHsmL`nIXQVM2!f+lEwgUeV?ycA-^H&;I4*Oof8!uF z;B95dah%`TeGh4wU_#fE%PfMake2OGw%m#986^YzJ=0ExXwkC2&}s_7P%ZO&AF5?$ zX0D&>#{Iywn;}v#O^tBwXP2j1-ZR-f&%0TzRzDw9@&7Myku&5t&R?wp;5@UVs>{Zh zSuU)6-(NU>{P?5GmoGD82YT88^e5}g@Y?N)$US}nLu$@sGRyr~0C)12i43TdmmkFc c`M(47AJ()fV%-gg`v3p{07*qoM6N<$f@by0#sB~S literal 0 HcmV?d00001 diff --git a/subpages/demandCheck/images/save.png b/subpages/demandCheck/images/save.png new file mode 100644 index 0000000000000000000000000000000000000000..55ad2a358a5cf253b6a700d048ad7c8a89f3b483 GIT binary patch literal 2388 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 literal 0 HcmV?d00001 diff --git a/subpages/demandCheck/images/xiaobofang.png b/subpages/demandCheck/images/xiaobofang.png new file mode 100644 index 0000000000000000000000000000000000000000..65fd3bfbcb83377bee06092094b2a43466319886 GIT binary patch literal 2508 zcmaJ@dpy&7A2&KKBc!PqnW-7F8^gwO+1#U94svbT4>P;ihVddqIw?*_l!`*mDY-_3 z$n!iBidPgOq?2({ZiUXFp6R4>{&;$Ruh;MQy}aJ<_viNh<9CYc?zk1K36_$Q+Uo2? zp-EP&jaOb)@+Gbf^CgRh(B4OQh#Mk|q4NPLTL$+i0CQ&3Ljf8rBBDfq4G8Hl5j%n-Ac{!vFSq(J?VGs2CFzmmiA85(oq|28YJsj3o$TK`ci|7a4N|dYcLqKoHDl z@`Ow-2ezR|Kgx{~lHig||0;pa`zFf~d~K7YVQ3MZhsL5X8zpT5-Q4~^l+FHz76@s; z-}(MeVS#5X4?xoZ0XK>tEE!yg-bN@Mk<16^LN4Ev%Z=FVA~lRFMgSW6Jld)KPvK@{>v7q4b z4g`BF21BviSyyuSW`2MpaXepQ?V7ZkI4LPvD`$$Wr|9{p zpI-#j9@0{~Y=*2npMCut67&b`oVN~B0WMGROCLCP{1;UxN|FsTtB9hmauxQW*cwLt z0jUlda9Nkyq7y$4E|ph+!?W#dAiA`opKZwfcAdp85xu;3aqP!=hb!%p zeJov;{HpDs4cY*o-JDmWVi=oEbjiINl6dfX_YwLN*6C!+qw(PDaXRm-XluabbJ`wIi8}3x~?|hVR1X6FFo|Pz>C@) zEp3YRzn3qky0-%&_n?mItdPQLDQ}QvvaU8N0XrIM-Di=4veMQ}GB2-@^=!~Wjb^@b zxw!77GApxN+F?!AjBSpRtx;&woWODA;2H`yod(!#)rw{2v;~d4*qv5_gV#Y$Lv?Sm z!lCMw>{>Z}?P1jlhex+P7W@j-Q&qQ?Y|rdK)QxnQL{kpUc4%Ee7{tUGH1Ae0>l>}! zx;%8%=xG>1-Rz9E=}P$z@MwV60NVL1OfiykujTlS9T&VBmc1Bb>Hl@f(3>v@R8pC}CB+?AZg?#$0tMl4HV*SvY3$xK zR-k|F6N`uZ*DnK)#;)6gx}P#48SUu-?l+8WI`^w=x#8!VO;|&!czjUn$LmxaX5t!S z-{$TGb*tA9p1;V}HDj{i2*kOS)Qp~w=hNqA^v3s$q%QwP9a2{Hnkh(LMEV>+h>LK6 zf|fFVZ(a-b!D3Z5zwYrV^GXHNwY(FTj9d&>;u{~mD_1U_dhbB)sx=$UUHk>v8{asL zFP{guq~?~f?i%bZ$qNnh$Y&EE=kak0u5;p%JXcpZDV0@JvzVZF8ruS9u?Z==xtr-E2Q#}N0xVT8&EA(-&D;r!GeBw`obwD`g;QI+` z%m%O2wkJRmSwTN#4h0yre&pBg-|f4*f5gc(=zhvzpU11d#a(hLr8Cuecw=p|%ap6(wYD8xw139^k<47A^RXSw#`4TIt8-Uf9~2m4Mc0AwGyQ>2B`5Kmn~mL1W$Ni#+92% zMmutduNb9cpw$c7U1?7BVExbX%q?e88>NUGk znJjap|MDJjPE|#Qum4$&XNOukw|Pk3Unj{bXDw?IT1T|88+R~v1D92lhKybETM$jO zqsMkqr*4U?sMB};e6s3gmF4>sg`e`f8}iNPN}dva{RwU C!XHEc literal 0 HcmV?d00001 diff --git a/subpages/demandCheck/images/xiaozanting.png b/subpages/demandCheck/images/xiaozanting.png new file mode 100644 index 0000000000000000000000000000000000000000..6813144b866547ca71b658639bd24075f3af9860 GIT binary patch literal 2471 zcmaJ@c|25mAD+gR$XfQsG~&uK3yoQrEHfiwBzI`6*D+3JViq$agJS5Fv=^s6;To8ch(oljucp z{vJzuA|Y5J5ub=cMMp;?qpguVK^O`{AP`V!E0mR$r4(T)jNys^u_ae%w5&h@g-ijP zFJkk!@Fhhcgcl_uA*7l9T>^*yLzXN2-X>|oP-1|O!XVL0B`pJKwEqv~aDJeLA}{ct zeE+AgkRHPaQC^^s7bRdy2e;E`DHNYb7Jz_=C!q6q5zAflWbs5iA&bX{lgUe6!@*5= zu(_eUXyL|h92$-2$`y(LE)#U6kPuQ8B%2*dw8D^W@KkFmo=PTTFjTUmGX+Dy;xHJ3 zHO0mTk6GqYc+4mc$Q3PfL;vAA|CGCA2M%8vnF0#fyTMRr0gnU!RyL9S^IXV3)%(s3 z{dq2wpK?*sWKc`P{jXs!Ur8ObwEbaS>EVa@L9W#C0;#nJcCm&b5P5A^iX&b8viHnh zckd{jM+qaZg)vpyF)5gGi*z;W3dbv@%2Y(xw5s;g%WplJd^TljxjnJG;HqWW^vo0J z?==g+`X;;9?{aHzJQ>9B{~cR_yCZS9Ft?D?J|k8YRrbbJD#VY}Ohy<6eIU%8?VGc! zy*2XZg35jSKUbc3On1;Kg)*SIkW_~aYU|HlQZSJK4l-X9zsS!*aMicnm{kQ%W&avs zA9RPppf=DVNVmnvmX-Z;R_iv8NdBFON<>K<{p4ip=*4MD1&L8X2WB5m>UBe_5_yvL zyQ(u<&8@BXV;r!h*)CzGiz^Zh6PZWv=}y6N()z{0s-Dh!!v6?9lh`W3Nz|vdsmdL? zq{C8Z9G(pHOIHLTP-9p$88HaWuP8j3)lIr{Q(WFa);#W*bU$8U_v4lTzAgL2o6RS0dEISr@8o!IAHQ;BeG z<0DQLXf^De7=jABtIIy0))MQO$_?J@6QOkijvj?ejA2QaSa&ANJ)4X-_VoILk0wuRGtAOP*<@7$p zWay}4_)Hm~SbfJ}zcG@gQ7v>)x$Ymmp~>n7eVD8u|Hp-KFZxto7dy}8nQJpQ(Z!65Jho5hZ>XEYULL3v?kQ3z$~~h*q1=SxvxJ0&kFK zRw`&JE@+O`MpV~k?=kH#VV&LDK9E);+q-RCr6VVNzvqZq?+ZeF_r-UBThtYT6?QL2$uGn_K zthYV$QtDo&pWpEV3o>Fmu9N)-pUG0Ii1I`As{-R<)egMUO=$0r6x>%%Nr@F=0(#@! zSe=QiipVeB;_AqbCwa|$#(`Vf4>Tj^`Jg0~BNKECmvyISv)!6PwK$pHH=i}icy^!i zftK;$q_*CTW(W1XN`;laclzIZ*{70@1<5&UG;2iy<7&1gYC0)b!}jR#gNbA7`sW)| zH7tBiBn{EMd`%6EPC}h*aXVY7fol+zx+PN^7@Psw@lfR__l%V|2ERS`BdAW9PHTrG zY**?j=+VBZK`pk$5ci)b{EJX?Fhw(S4S;w%=52S@l$BgYe_kX`MRcB9)C`8;-NWBW TbQM&Vew|#Y9+YCI;H3Wm$pZ?w literal 0 HcmV?d00001 diff --git a/subpages/demandCheck/images/yuyin.png b/subpages/demandCheck/images/yuyin.png new file mode 100644 index 0000000000000000000000000000000000000000..6a000c393fc1b9b7f0037149dd544fb369531631 GIT binary patch literal 2385 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 { + this.reverseLocation() + }) + this.setData({ + 'fmData.time':Date.now(), + }) + this.getAgencygridtree() + }, + // 组织树 + getAgencygridtree(){ + api.getAgencygridtree().then(res=>{ + this.setData({ + angencyList:[res.data] + }) + console.log(this.data.angencyList); + }).catch(err=>{ + console.log(err); + }) + }, - }, - /** - * 生命周期函数--监听页面隐藏 - */ - onHide() { + // 触底函数 + onReachBottom() { + if (this.projectlist) { + this.projectlist.onReachBottom() + } + }, - }, + toughGetLocation() { + this.getLocation(false); + wx.chooseLocation({ + success: res => { + console.log('resadddres', res) + const { fmData } = this.data; + this.setData({ + fmData: { + ...fmData, + addressContent: res.address, + longitude: res.longitude, + latitude: res.latitude + }, + }); + } + }) + }, + showRecordSheet () { + this.setData({ + showRecord: true, + recorderData: {}, + recorderTimeMax: "00:00", + recorderTimeCur: "00:00", + isRecord: 0, + recordingTime: 0, + uploadRecord: { + uploaded: true, + url: "" + } + }) +}, + // 获取经纬度 + getLocation() { + return new Promise((resolve, reject) => { + const _this = this + wx.getLocation({ + type: 'gcj02', + success(res) { + if (res.latitude && res.longitude) { + _this.setData({ + 'personalInfo.issueLatitude': res.latitude, + 'personalInfo.issueLongitude': res.longitude + }) + resolve(true) + } + }, + fail(err) { + reject(err) + } + }) + }) + }, - /** - * 生命周期函数--监听页面卸载 - */ - onUnload() { + + // 提交按钮 + submitPersonalInfo() { + if (!this.data.addressContent) { + return this.showToast('请选择事件位置') + } + if (!this.data.personalInfo.streetId) { + return this.showToast('请选择所属街道') + } + if (!this.data.personalInfo.communityId) { + return this.showToast('请选择所属社区') + } + if (!this.data.personalInfo.gridId) { + return this.showToast('请选择所属网格') + } + if (!this.data.personalInfo.contactName) { + return this.showToast('请填写联系人姓名') + } - }, + if (!this.data.personalInfo.mobile) { + return this.showToast('请填写手机号') + } + if (!this.data.personalInfo.itemContent) { + return this.showToast('请填写问题描述') + } + if (this.data.personalInfo.itemContent.length < 11) { + return this.showToast('问题描述不少于 10 字') + } + // 如果我上报时候没有提交“详细地址”,电脑pc端的位置就是应该显示事件位置 + if (!this.data.personalInfo.issueAddress || this.data.personalInfo.issueAddress.length == 0) { + this.setData({ + 'personalInfo.issueAddress': this.data.addressContent + }) + } else { + this.setData({ + 'personalInfo.issueAddress': this.data.addressContent + this.data.personalInfo.issueAddress + }) + } + const imagesList = [] + if (this.data.uploadImageList.length > 0) { + const isUploadDown = this.data.uploadImageList.some(item => !item.uploaded) + if (isUploadDown) { + wx.showToast({ + title: '请等待图片上传完成', + icon: 'none', + duration: 1000 + }) + return false + } + } + if (this.data.uploadImageList.length > 0) { + this.data.uploadImageList.forEach(item => { + imagesList.push(item.ossUrl) + }) + } + this.setData({ + 'personalInfo.images': imagesList, + 'personalInfo.itemVoice': this.data.uploadRecord.url, + 'personalInfo.duration': this.data.recorderDuration + }) + if (this.data.isNewUser) { // 新用户 + this.setData({ + formSub: true + }) + this.getTokenV3() // 通过gridId 拿到userId + } else { // 老用户 + console.log('直接调接口') + this.submitItem() + // this.submitPersonalInfoByWx() + } + }, - /** - * 页面相关事件处理函数--监听用户下拉动作 - */ - onPullDownRefresh() { + + + // 提交接口 + submitItem() { + wx.showLoading({ + title: '提交中...', + mask: true + }) + this.setData({ + submitDisabled: true + }) + const para = this.data.personalInfo + submitItem(para).then(res => { + wx.hideLoading() + if (res.data) { + wx.showModal({ + title: '提示', + content: `您的诉求我们已经查收,正在快马加鞭办理,请您耐心等待\r\n诉求编号为:${res.data}`, + confirmText: '确认', + showCancel: false, + success: res => { + this.setData({ + submitDisabled: false, + 'personalInfo.nickname': '', + 'personalInfo.itemContent': '', + 'personalInfo.itemVoice': '', + 'personalInfo.duration': '', + 'personalInfo.images': [], + 'personalInfo.contactName': '', + 'personalInfo.issueAddress': '', + uploadImageList: [], + recorderData: {}, + uploadRecord: { + uploaded: true, + url: "" + }, + }) + this.projectlist = this.selectComponent('#projectlist') + } + }) + } else { + wx.showToast({ + title: "提交失败,请重试~", + icon: "none", + duration: 1500 + }) + this.setData({ + submitDisabled: false + }) + } + }).catch(err => { + console.log(err) + wx.hideLoading() + this.setData({ + submitDisabled: false + }) + }) + }, + // 我是居民/我是党员/我是企业 tab切换 - }, + // 详细地址 + bindIssueAddressInput(e) { + this.setData({ + 'personalInfo.issueAddress': e.detail.value + }) + }, + bindContactNameInput(e) { + this.setData({ + 'personalInfo.contactName': e.detail.value + }) + }, + // 手机号 双向绑定 + bindMobileInput(e) { + this.setData({ + 'personalInfo.mobile': e.detail.value + }) + }, + // 双向绑定 地址输入框 + bindAddressInput(e) { + this.setData({ + addressContent: e.detail.value + }) + }, + // 解决ios占位符遮挡问题 + bindTextareaFocus() { + this.setData({ + placeholderShow: false, + }) + }, + // 解决ios占位符遮挡问题 + bindTextareaBlur(e) { + this.setData({ + 'personalInfo.itemContent': e.detail.value + }) + if (this.data.personalInfo.itemContent.length == 0) { + this.setData({ + placeholderShow: true + }) + } + }, + // 双向绑定 内容输入框 + bindTextareaInput(e) { + this.setData({ + 'personalInfo.itemContent': e.detail.value + }) + }, + + + + + // 点击空白,隐藏sheet + onHideSheet() { + this.setData({ + showRecord: false + }) + }, + + // + countRecordTimeline() { + clearInterval(this.data.setInter) + this.data.setInter = setInterval(() => { + this.setData({ + recordingTime: this.data.recordingTime + 1 + }, () => { + if (this.data.recordingTime < 10) { + this.setData({ + recorderTimeCur: "00:0" + this.data.recordingTime + }) + } else { + this.setData({ + recorderTimeCur: "00:" + this.data.recordingTime + }) + } + if (!this.data.showRecord) { + let max = Math.ceil(this.data.recorderData.duration / 1000) + let value = parseFloat(this.data.recordingTime / max).toFixed(2) + this.setData({ + audioTimeline: value * 100 + }) + } + }) + }, 1000) + }, + + sliderchange() { + let max = Math.ceil(this.data.recorderData.duration / 1000) + let value = parseFloat(this.data.recordingTime / max).toFixed(2) + this.setData({ + audioTimeline: value * 100 + }) + }, + + handleTimeChange(e) { + let { personalInfo } = this.data + const { dateTimeArray, dateTime } = e.detail + personalInfo.reportTime = `${dateTimeArray[0][dateTime[0]]}-${dateTimeArray[1][dateTime[1]]}-${dateTimeArray[2][dateTime[2]]} ${dateTimeArray[3][dateTime[3]]}:${dateTimeArray[4][dateTime[4]]}:${dateTimeArray[5][dateTime[5]]}` + console.log('change', e.detail) + this.setData({ + personalInfo + }) + }, + + // 录音end + // 选择图片 上传弹窗 - 上传图片方式 - 选择图片 - 上传图片 - 回调赋值 + chooseImage() { + if (this.data.uploadImageList.length > 9) { + wx.showToast({ + title: "最多上传10张照片", + icon: "none" + }) + return + } + const _this = this + $wuxActionSheet().showSheet({ + buttons: [ + { text: '拍照' }, + { text: '从相册中获取' }, + ], + className: 'dialog-class', + buttonClicked(index) { + if (index === 0) { + wx.chooseImage({ + count: 1, + sizeType: ['original', 'compressed'], + sourceType: ['camera'], + success(res) { + let deleteLength = _this.data.uploadImageList.length + const uploadImageList = [..._this.data.uploadImageList] + if (res.tempFiles[0].size <= 5 * 1024 * 1024) { + uploadImageList.push({ + uploaded: false, + ossUrl: '', + imgUrl: res.tempFiles[0].path, + imageId: ++_this.data.imageId + }) + } else { + _this.showToast('图片上限5M,请压缩后重试~') + return false + } + _this.setData({ + uploadImageList + }) + wx.uploadFile({ + url: `${config.BASEURL()}oss/file/uploadvariedfile`, + filePath: res.tempFilePaths[0], + name: 'file', + header: { + 'Content-type': 'application/json;charset=UTF-8', + 'Authorization': wx.getStorageSync('token') + }, + success(fileRes) { + if (!JSON.parse(fileRes.data).data) { + _this.showToast('图片上传失败,请重试~') + // 删除 + const index = _this.data.uploadImageList.findIndex(item => item.imageId === _this.data.imageId) + if (index > -1) { + _this.data.uploadImageList.splice(index, 1) + _this.setData({ + uploadImageList: _this.data.uploadImageList + }) + } + } else { + uploadImageList[uploadImageList.length - 1].uploaded = true + uploadImageList[uploadImageList.length - 1].ossUrl = JSON.parse(fileRes.data).data + _this.setData({ + uploadImageList + }) + } + + }, + fail(fileRes) { + _this.setData({ + uploadImageList: [] + }) + _this.showToast('图片上传失败,请重试~') + } + }) + } + }) + } else if (index === 1) { + wx.chooseImage({ + count: 1, + sizeType: ['original', 'compressed'], + sourceType: ['album'], + success(res) { + let deleteLength = _this.data.uploadImageList.length + const uploadImageList = [] + const endIndex = _this.data.uploadImageList.length + res.tempFiles.forEach(item => { + if (item.size <= 5 * 1024 * 1024) { + uploadImageList.push({ + uploaded: false, + ossUrl: '', + imgUrl: item.path, + imageId: ++_this.data.imageId + }) + } else { + _this.showToast('图片上限5M,请压缩后重试~') + } + }) + _this.setData({ + uploadImageList: [..._this.data.uploadImageList, ...uploadImageList] + }) + uploadImageList.forEach((item, index) => { + return (function (index) { + wx.uploadFile({ + url: `${config.BASEURL()}oss/file/uploadvariedfile`, + filePath: res.tempFilePaths[index], + name: 'file', + header: { + 'Content-type': 'application/json;charset=UTF-8', + 'Authorization': wx.getStorageSync('token') + }, + success(fileRes) { + if (!JSON.parse(fileRes.data).data) { + _this.showToast('图片上传失败,请重试~') + _this.data.uploadImageList.splice(deleteLength, _this.data.uploadImageList.length - deleteLength) + _this.setData({ + uploadImageList: _this.data.uploadImageList + }) + } else { + uploadImageList[index].uploaded = true + uploadImageList[index].ossUrl = JSON.parse(fileRes.data).data + _this.data.uploadImageList = _this.data.uploadImageList.slice(0, endIndex) + _this.setData({ + uploadImageList: [..._this.data.uploadImageList, ...uploadImageList] + }) + } + console.log(_this.data.uploadImageList.length, '图片上传长度'); + }, + fail(fileRes) { + _this.setData({ + uploadImageList: [] + }) + _this.showToast('图片上传失败,请重试~') + } + }) + })(index) + }) + } + }) + } + return true + }, + cancelText: '取消', + cancel() { }, + destructiveButtonClicked() { }, + }) + }, + // 删除选中的图片 + deleteImage(e) { + const index = this.data.uploadImageList.findIndex(item => item.imageId === e.currentTarget.dataset.imageid) + if (index > -1) { + this.data.uploadImageList.splice(index, 1) + this.setData({ + uploadImageList: this.data.uploadImageList + }) + } + }, + // 代码简化,弹窗统一封装 + showToast(title) { + wx.showToast({ + title: title, + icon: 'none', + duration: 2000 + }) + }, - /** - * 页面上拉触底事件的处理函数 - */ - onReachBottom() { + // 街道社区 + getDeptTree() { + getDeptTree().then(res => { + this.setData({ + streetList: res.data[0].children + }) + if (this.data.personalInfo.streetId && this.data.personalInfo.communityId) { + this.data.streetList.forEach(element => { + if (element.value == this.data.personalInfo.streetId) { + this.setData({ + 'personalInfo.street': element.label, + communityList: element.children // 社区 + }) + // 循环社区 + element.children.forEach(community => { + if (community.value == this.data.personalInfo.communityId) { + this.setData({ + 'personalInfo.community': community.label, + gridList: community.children + // 'personalInfo.grid': community.children[0].label, // 网格默认选择第一个 + // 'personalInfo.gridId': community.children[0].value // 网格 + }) + } + }); + } + }); + } + }).catch(err => { + console.log(err) + }) + }, + // 单选点击事件 + inputSyncPicker(e) { + let { + detail: { value }, + currentTarget: { + dataset: { idKey, nameKey, listName, subname, subindex }, + }, + } = e; + let item = this.data[listName][value]; + let { personalInfo } = this.data; + if (subname && subindex !== undefined) { + personalInfo[subname][subindex][idKey] = item.value; + personalInfo[subname][subindex][nameKey] = item.label; + } else { + personalInfo[idKey] = item.value; + personalInfo[nameKey] = item.label; + } + + this.setData({ personalInfo }); + + this.dataHandle(listName) + + }, + dataHandle(listName) { + if (listName == 'streetList') { + this.setData({ + communityList: [], + gridList: [], + 'personalInfo.community': '', // 社区 + 'personalInfo.communityId': '', // 社区 + 'personalInfo.grid': '', // 网格 + 'personalInfo.gridId': '' // 网格 + }) + } else if (listName == 'communityList') { + this.setData({ + gridList: [], + 'personalInfo.grid': '', // 网格 + 'personalInfo.gridId': '' // 网格 + }) + } + if (this.data.personalInfo.streetId) { // 选择街道 + this.data.streetList.forEach((element, index) => { + if (this.data.personalInfo.streetId == element.value) { + this.setData({ + communityList: element.children + }) + } + }); + } + if (this.data.personalInfo.communityId) { // 选择社区 + this.data.communityList.forEach((element, index) => { + if (this.data.personalInfo.communityId == element.value) { + this.setData({ + gridList: element.children + // 'personalInfo.grid': element.children[0].label, // 网格默认选择第一个 + // 'personalInfo.gridId': element.children[0].value // 网格 + }) + } + }); + } + }, + // 逆地址解析 + reverseLocation() { + const _this = this + this.data.qqMapWX.reverseGeocoder({ + location: { + latitude: _this.data.personalInfo.issueLatitude, + longitude: _this.data.personalInfo.issueLongitude + }, + success(res) { + _this.setData({ + fmData: { + addressContent: res.result.address, + address: res.result.address, + }, + }) + }, + fail(err) { + console.debug(err) + } + }) + }, + + onConfirmDate(e) { + console.log(e); + this.setData({ + 'fmData.time': e.detail.label, + timeLabel: e.detail.displayValue.join(' '), + visibleTime:false + }) + console.log(this.data.fmData.time) + }, + // onVisibleChange(e) { + // this.setData({ + // // timeLabel: e.detail.displayValue.join(' '), + // }) + // }, + onCancel(){ + this.setData({ + visibleTime:false + }) + }, + showTimePicker(){ + this.setData({ + visibleTime:true + }) + }, + onPageScroll: function (e) { + if (this.projectlist) { + this.projectlist.onPageScroll(e) + } + }, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady() { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow() { + + }, + /** + * 生命周期函数--监听页面隐藏 + */ + onHide() { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload() { + + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh() { + + }, + + + /** + * 用户点击右上角分享 + */ + // /page/user?id=123 + onShareAppMessage() { + return { + path: 'pages/peopleLivelihood/peopleLivelihood', + } + }, + handleRecordDel() { + const { hasStop, isStart } = this.data + console.log('hasStop---', this.data.hasStop) + if (isStart && !hasStop) { + recorderManager.stop() + } + // if (!hasStop && hasStart) recorderManager.stop(); + // recorderManager.stop(); + clearInterval(timer) + timer = null + this.setData({ + recordingTime: '00:00', + recordingLength: 0, + hasStart: false, + isStart: false, + hasStop: false, + url: '', + duration: 0 + }) + }, + handleRecord() { + let { hasStart } = this.data + console.log(hasStart); + if (hasStart) this.recortPause() + else this.recortResume() + }, + handleOpenRecord() { + this.setData({ + isStart: true, + }); + console.log('opppppp') + this.recordStart() + }, + // 录音暂停 + recortPause() { + recorderManager.pause(); + this.setData({ + hasStart: false + }) + clearInterval(timer) + timer = null + }, + // 录音继续 + recortResume() { + this.recordingTimer() + recorderManager.resume(); + this.setData({ + hasStart: true + }) + + }, + + uploadRecord(file, duration) { + console.log(file,duration); + wx.uploadFile({ + url: `${config.BASEURL()}oss/file/uploadvoice`, + filePath: file, + name: "file", + header: { + "Content-type": "multipart/form-data", + 'Authorization': wx.getStorageSync('token') + }, + success: (fileRes) => { + wx.hideLoading() + console.log('ressss', fileRes) + if (!JSON.parse(fileRes.data).data) { + wx.showToast({ + title: "录音上传失败,请重试~", + icon: "none", + duration: 1500 + }) + this.setData({ + "uploadRecord.uploaded": true, + "uploadRecord.url": "", + recorderDuration: "", + recorderData: {} + }) + } else { + this.setData({ + "uploadRecord.uploaded": true, + "uploadRecord.url": JSON.parse(fileRes.data).data + }) + console.log(this.data.uploadRecord); + } }, + fail: (fileRes) => { + console.log(fileRes); + wx.showToast({ + title: "录音上传失败,请重试~", + icon: "none", + duration: 1500 + }) + this.setData({ + "uploadRecord.uploaded": true, + "uploadRecord.url": "", + recorderDuration: "", + recorderData: {} + }) + } + }) + }, + // 录音开始 + recordStart() { + this.setData({ + hasStart: true, + }); + const options = { + duration: this.data.overDuration, + format: 'mp3', + type: 'voice' + }; + this.recordingTimer() + recorderManager.start(options); + recorderManager.onStart(res => { + console.log('recorder start', res); + }); + recorderManager.onPause(res => { + console.log('onPause', res) + }) + console.log(recorderManager); + recorderManager.onResume(res => { + console.log('onResume', res) + }) + recorderManager.onStop((res) => { + console.log('recorder stop', res); + const { tempFilePath, duration } = res; + this.setData({ + hasStop: true, + url: tempFilePath, + duration + }) + // + }); + recorderManager.onFrameRecorded(res => { + console.log('onFrameRecorded', res) + }) + recorderManager.onError((res) => { + console.log('recorder onError', res); + wx.showToast({ + title: res.errMsg, + icon: 'none', + duration: 1500 + }) + }); + }, + // 录音暂停 + recortPause() { + recorderManager.pause(); + this.setData({ + hasStart: false + }) + clearInterval(timer) + timer = null + }, + // 录音继续 + recortResume() { + this.recordingTimer() + recorderManager.resume(); + this.setData({ + hasStart: true + }) - /** - * 用户点击右上角分享 - */ - onShareAppMessage() { + }, + // 录音结束 + recordStop() { + const { url, duration, hasStop } = this.data + this.setData({ + hasStart: false + }) + wx.showLoading({ + title: '录音上传中...' + }) + console.log(url, duration, hasStop) + + if (hasStop) { + this.uploadRecord(url, 600000) + console.log('hasStop', hasStop) + } else { + console.log('hasStopeee', hasStop) + recorderManager.stop(); + clearInterval(timer) + timer = null + recorderManager.onStop((res) => { + console.log('recorder stop1111', res); + const { tempFilePath, duration } = res; + this.uploadRecord(tempFilePath, duration) + // + }); } + + }, + + recordingTimer() { + clearInterval(timer) + timer = null + timer = setInterval(() => { + let { overDuration, recordingLength } = this.data + if (recordingLength * 1000 >= overDuration) { + wx.showToast({ + title: '录音已超时,已停止录音', + icon: 'none', + duration: 1500 + }) + console.log('lllllllll超时了') + recorderManager.stop(); + clearInterval(timer) + timer = null + this.setData({ + hasStart: false + }) + return + } + let time = this.data.recordingLength + 1; + this.setData({ + recordingLength: time, + recordingTime: this.formatTime(time) + }); + console.log('timer,还在执行') + }, 1000); + }, + formatTime(num) { + let min = parseInt(num / 60) + let second = num % 60 + min = min >= 10 ? min : '0' + min + second = second >= 10 ? second : '0' + second + return min + ':' + second + }, + hancleCancle() { + this.handleRecordDel() + this.setData({ + showRecord:false + }) + }, + hidePicker(){ + this.setData({ + angencyVisible:false + }) + }, + showPicker(){ + this.setData({ + angencyVisible:true + }) + }, + onConfirmAngecy(e){ + console.log(e); + this.setData({ + agencyName:e.detail.label, + 'form.grid':e.detail.value[e.detail.value.length - 1], + angencyVisible:false + }) + console.log(this.form); + }, + onValueChange(e){ + console.log(e); + } }) \ No newline at end of file diff --git a/subpages/demandCheck/pages/dissatisfied/demandCheck/demandCheck.json b/subpages/demandCheck/pages/dissatisfied/demandCheck/demandCheck.json index 3928faa..417343b 100644 --- a/subpages/demandCheck/pages/dissatisfied/demandCheck/demandCheck.json +++ b/subpages/demandCheck/pages/dissatisfied/demandCheck/demandCheck.json @@ -1,3 +1,11 @@ { - "usingComponents": {} + "usingComponents": { + "wux-actionsheet": "../../../../../components/dist/actionsheet/index", + "wux-segmented-control": "../../../../../components/dist/segmented-control/index", + "wux-date-picker": "../../../../../components/dist/date-picker/index", + "wux-cell-group": "../../../../../components/dist/cell-group/index", + "wux-picker": "../../../../../components/dist/picker/index" + + }, + "navigationBarTitleText": "诉求摸排" } \ No newline at end of file diff --git a/subpages/demandCheck/pages/dissatisfied/demandCheck/demandCheck.wxml b/subpages/demandCheck/pages/dissatisfied/demandCheck/demandCheck.wxml index 5456114..e2c619c 100644 --- a/subpages/demandCheck/pages/dissatisfied/demandCheck/demandCheck.wxml +++ b/subpages/demandCheck/pages/dissatisfied/demandCheck/demandCheck.wxml @@ -1,43 +1,18 @@ - + + + + * - 事件位置 - - - {{addressContent}} - - - - - - - - 详细地址 - - - - - + 所属组织 - - - - - * - 所属街道 - - - + - - - * - 所属社区 - - - - {{personalInfo.community}} - 请选择 - - - - - - - - * - 所属网格 - - - - {{personalInfo.grid}} - 请选择 - - + + --> + {{agencyName?agencyName:'请选择'}} * - 是否公开 + 诉求类型 - 不公开 - 公开 + 事件上报 + 居民需求 - - - - * - 联系人姓名 - - - - - - - - - - * - 手机号 - - - - - - - - - - * - 手机号 - - - - - - - - - - * - 验证码 - - - - - - + - {{getMobileType === 'wx' ? '*如若获取手机号异常,请点击切换至手机号/验证码注册方式' : '*点击可切回至从微信获取手机号注册方式'}} @@ -169,15 +47,20 @@ * - 问题描述 + 事件描述 - - + + 您也可以语音输入描述 + + + + + + 上传图片 + - - + + - + - - - - - - - - - - - - - - - - {{recorderTimeCur}} - {{recorderTimeMax}} - - - - - + + + + + + + + + + + 取消 - - - - - - + + + + + + + + + + + + + - + - - - + + - \ No newline at end of file + + + 点击发布语音内容 + 限10分钟内 + + + + + + + + \ No newline at end of file diff --git a/subpages/demandCheck/pages/dissatisfied/demandCheck/demandCheck.wxss b/subpages/demandCheck/pages/dissatisfied/demandCheck/demandCheck.wxss index d0fe8c8..f38dc28 100644 --- a/subpages/demandCheck/pages/dissatisfied/demandCheck/demandCheck.wxss +++ b/subpages/demandCheck/pages/dissatisfied/demandCheck/demandCheck.wxss @@ -1,158 +1,939 @@ -/* subpages/demandCheck/pages/dissatisfied/demandCheck/demandCheck.wxss */ +page { + width: 100%; + height: auto; + overflow-y: auto; + background: #f7f7f7; + padding-bottom: 20rpx; + box-sizing: border-box; +} +.complete-info { + width: 100%; + height: 100%; + background: #f7f7f7; +} + + + + .content { - width: 100%; - min-height: calc(100vh - 100rpx); - margin-top: 100rpx; - } + width: 100%; + min-height: calc(100vh - 100rpx); +} + +.content-list { + width: 100%; + min-height: calc(100vh - 100rpx); + margin-top: 100rpx; + padding: 20rpx 20rpx 0rpx 20rpx; + box-sizing: border-box; +} + +/* 内容 */ + +.personal-info { + width: 100%; + height: 100%; + box-sizing: border-box; + padding: 0 20rpx; + overflow: hidden; +} + +.basic-info { + width: 100%; + background: #fff; + border-radius: 16rpx; + box-sizing: border-box; + padding: 0 20rpx; + margin-top: 20rpx; +} + +.border-bottom { + border-bottom: 1rpx solid #eaeaea; +} +.no-border-bottom{ + border-bottom: 1rpx solid #fff !important; +} +.note { + font-size: 22rpx; + color: #999; + line-height: 62rpx; +} + + +.add-issue { + width: 100%; + height: 100%; + background: #f7f7f7; + box-sizing: border-box; + padding: 0rpx 20rpx 0; +} + +.add-issue .issue-content { + width: 100%; + height: auto; + border-radius: 16rpx; + background: #fff; + box-sizing: border-box; + padding: 0rpx 20rpx 45rpx; +} +.add-issue .issue-content textarea { + margin-top: 15rpx; + width: 100%; + height: 298rpx; + background-color: #f7f7f7; + padding:30rpx; + font-size: 34rpx; + color: #333; + line-height: 50rpx; + position: relative; +} +.add-issue .issue-content textarea .textarea-placeholder { + font-size: 32rpx; + color: #999; + line-height: 50rpx; + position: absolute; + left: 0; + top: 0; +} +/* ???????? */ + + .image-list { + width: 100%; + display: grid; + grid-template-columns: 214rpx 214rpx 214rpx; + grid-template-rows: 214rpx; + grid-gap: 17rpx; + height: 214rpx; + margin-top:80rpx ; +} +.image-list-2 { + height: 428rpx !important; +} +.image-list-3 { + height: 642rpx !important; +} +.image-list-4 { + height: 856rpx !important; +} + .image-list .image-item { + width: 100%; + height: 100%; + position: relative; +} + .image-list image { + width: 100%; + height: 100%; + object-fit: cover; + border-radius: 8rpx; +} + .image-list .image-item .loading { + position: absolute; + left: 25%; + top: 25%; + width: 50%; + height: 50%; +} + .image-list .image-item .close { + position: absolute; + top: -10rpx; + right: -10rpx; + width: 40rpx; + height: 40rpx; +} +.add-issue .image-box { + width: 100%; + height: auto; + border-radius: 16rpx; + background: #fff; + margin-top: 20rpx; + box-sizing: border-box; + padding: 34rpx 24rpx; + position: relative; + /* display: flex; + align-items: center; */ +} +.image-box .image-list-label { + position: absolute; + top: 35rpx; +} +.yg-zp{ + font-size: 32rpx; + font-family: Source Han Serif SC; + font-weight: 400; + color: #333; +} +.yg-zp-1{ + margin-top: 15rpx; + font-size: 25rpx; + font-family: Source Han Serif SC; + font-weight: 400; + color: #999; +} +.add-issue .image-box .add-icon { + /* margin-top: 40rpx; */ + width: 80rpx; + height: 80rpx; + margin-right: 40rpx; +} +.sheet-bg { + width: 100%; + height: 100%; + position: fixed; + top: 0; + left: 0; + z-index: 999; + background-color: rgba(0, 0, 0, 0.6); +} + +/* record start */ +.record-actionsheet { + height: 472rpx; + width: 100%; + background-color: #ffffff; + border-radius: 30rpx 30rpx 0 0; + position: fixed; + z-index: 999; + bottom: 0; + transition: all .2s linear; +} +.record-actionsheet-hide { + bottom: -480rpx; + transition: all .2s linear; +} +.record-actionsheet .top-menu { + display: flex; + align-items: center; + justify-content: space-between; + height: 80rpx; +} +.record-actionsheet .top-menu .button { + width: 120rpx; + height: 80rpx; + line-height: 80rpx; + text-align: center; +} +.record-actionsheet .top-menu .cancel { + color: #5b5b5b; +} +.record-actionsheet .top-menu .confirm { + color: #f61717; +} +.record-actionsheet .close-icon { + width: 80rpx; + height: 80rpx; + display: flex; + align-items: center; + justify-content: center; +} +.record-actionsheet .close-icon image { + width: 30rpx; + height: 30rpx; +} +.record-actionsheet .text-status { + color: #5b5b5b; + text-align: center; +} +.record-actionsheet .status-icon { + width: 100%; + height: 210rpx; + text-align: center; + margin-top: 50rpx; +} +.record-actionsheet .status-icon .icon { + width: 210rpx; + height: 210rpx; +} +.record-actionsheet .text-tip { + font-size: 26rpx; + color: #9e9e9e; + text-align: center; +} +/* record end */ + +/* audio start */ +.audio { + width: 670rpx; + height: 116rpx; + background-color: #f3f3f3; + border-radius: 10r; + display: flex; + position: relative; + margin-top: 40rpx; +} +.audio .control-button { + width: 100rpx; + height: 100%; + display: flex; + align-items: center; + justify-content: center; +} +.audio .control-button image { + width: 60rpx; + height: 60rpx; +} +.audio .control-line { + display: flex; + flex-direction: column; + justify-content: center; +} +.audio .control-line .control-slider { + width: 500rpx; + margin: 10rpx 36rpx; +} +.audio .control-line .line-time { + margin: 0 10px; + display: flex; + align-items: center; + justify-content: space-between; +} +.audio .control-line .line-time .time-text { + color: #aaaaaa; + font-size: 24rpx; +} +.audio .delete-audio { + position: absolute; + right: -20rpx; + top: -20rpx; +} +.audio .delete-audio image { + width: 60rpx; + height: 60rpx; +} +/* audio end */ + +.add-issue .issue-location { + width: 100%; + height: 210rpx; + border-radius: 16rpx; + background: #fff; + margin-top: 20rpx; + box-sizing: border-box; + padding: 34rpx 18rpx 9rpx 25rpx; +} +.add-issue .issue-location { + width: 100%; + height: 210rpx; + border-radius: 16rpx; + background: #fff; + margin-top: 20rpx; + box-sizing: border-box; + padding: 34rpx 18rpx 9rpx 25rpx; +} +.add-issue .issue-location .address { + width:70%; + height: 80rpx; + display: flex; + align-items: center; +} +.add-issue .issue-location textarea { + width:100%; + height: 88rpx; + color: #333; + font-size: 34rpx; + line-height: 46rpx; +} +.add-issue .issue-location .address-placeholder { + font-size: 32rpx; + color: #999; +} +.add-issue .issue-location .address image { + width: 26rpx; + height:26rpx; +} +.add-issue .issue-location .address view { + color: #999; + font-size: 26rpx; + margin-left: 14rpx; +} + +/* 重新定位 */ +.flexBox{ + display: flex; + width: 100%; + box-sizing: border-box; +} +.refresh{ + margin-top: 20rpx; + margin-left: 30rpx; +} +.refresh image { + width: 34rpx; + height: 34rpx; + float: left; + position: relative; + top: 5rpx; +} + +.refresh-name { + font-size: 28rpx; + font-weight: 500; + color: rgba(0, 179, 152, 1); + float: left; + margin-left: 10rpx; +} + +.tip{ + margin-top: 20rpx; + font-size: 22rpx; + font-weight: 400; + color: #BCBCBC; +} + +.wux-actionsheet__button { + font-size: 34rpx !important; + color: #333 !important; +} + + +/* picker */ +.item { + border-bottom: 1rpx solid #e7eeee; + padding: 25rpx 0; + line-height: 60rpx; + display: flex; + justify-content: space-between; +} +.item .field { +position: relative; +box-sizing: border-box; +width: 300rpx; +padding-left: 25rpx; +} + +.field-d { + width: 220rpx !important; +} +.value-d{ + width: 450rpx !important; +} +.item .field.mobile-field { +width: 250rpx !important; +} +.item .field .must { +position: absolute; +top: 0; +left: 0; +margin: 0 auto; +color: #F61616; +font-size: 30rpx; +} + +.item .field .field-text { +font-size: 32rpx; +font-family: Source Han Serif SC; +font-weight: 400; +color: #333; +} + +.item .value { + position: relative; + width: 410rpx; + display: flex; + font-size: 32rpx; + font-family: Source Han Serif SC; + font-weight: 400; + color: #333; + line-height: 60rpx; +} + +.item .value-dl { + position: relative; + width: 410rpx; + display: flex; + font-size: 32rpx; + font-family: Source Han Serif SC; + font-weight: 400; + color: #333; + line-height: 60rpx; + align-items: center; +} + +.di-name{ + margin-right: 14rpx; + text-align: right; + width: calc(100% - 30rpx); +} + +.di-but{ + width: 30rpx; + height: 34rpx; +} + +.item .value input { +text-align: right; +font-size: 34rpx; +color: #333; +height: 100%; +width: 100%; +} +.item .value .picker { +position: relative; +width: 100%; +padding-right: 40rpx; +text-align: right; +} + +.item .value .picker .z-weak { +color: #999; +} + +.item .value .picker .menu-arrow { +position: absolute; +top: 20rpx; +right: 0; +width: 16rpx; +height: 23rpx; +} +.item .value-mobile { +position: relative; +width: 410rpx; +display: flex; +font-size: 32rpx; +font-family: Source Han Serif SC; +font-weight: 400; +color: #333; +line-height: 60rpx; +display: flex; +justify-content: flex-end; +} +.item .value-mobile .get-code { +padding: 0 15rpx; +height: 60rpx; +line-height: 60rpx; +background: linear-gradient(to right, #F40C0C, #FF4E4E); +color: #fff; +font-size: 24rpx; +border-radius: 6rpx; +margin: 0; +margin-left: 25rpx; +} +.item .value-mobile .button-hover { +background: rgb(175, 1, 1); +} +.item .value-mobile input { +text-align: right; +font-size: 34rpx; +color: #333; +height: 100%; +width: 55%; +} +.placeholder-style { +font-size: 28rpx; +color: #999; +} + +.is-open{ +margin-top: 20rpx; +padding: 0 20rpx; +box-sizing: border-box; +height: 30rpx; +font-size: 30rpx; +font-weight: 400; +color: #333333; +line-height: 30rpx; +} + +.submit-button { +width: 100%; +height: 84rpx; +display: flex; +align-items: center; +justify-content: center; +margin: 80rpx 0 65rpx; +} +.submit-button button { +height: 84rpx; +line-height: 84rpx; +width: 560rpx; +padding: 0; +text-align: center; +color: #fff; +font-size: 33rpx; +border-radius: 84rpx; +background: linear-gradient(to right, #82b4fd, #3e93fe); +} +/* .submit-button .hover-submit { +background: rgb(175, 1, 1); +} */ + +.radio-group { + height: 100%; + display: flex; + align-items: center; + color: #999; + font-size: 28rpx; +} +.radio-group radio + radio { + margin-left: 20rpx; +} + + +.tip_bg{ + position: absolute; + overflow: hidden; + top: 0; + z-index: 9999; + width: 100%; + height: auto; + padding-bottom: 40rpx; + box-sizing: border-box; + /* background: rgba(0, 0, 0, 0.6); */ + background: #f7f7f7; + /* display: flex; + justify-content: center; */ +} +/* 新样式 */ +.tip-top{ + height: 433rpx; + width: 100%; +} +.tip-top image { + height: 433rpx; + width: 100%; +} + +.info-1 { + width: 100%; + /* margin-left: 20rpx; */ + height: auto; + z-index: 9999; + position: relative; + margin-top: -20rpx; + /* background: red; */ +} + +.info-2 { + height: auto; + width: calc(100% - 40rpx); + margin-left: 20rpx; + background: #FFFFFF; + border-radius: 10rpx; + margin-top: 20rpx; + padding: 40rpx; + box-sizing: border-box; +} + +.info-2 .info-2-title { + width: 100%; + height: 54rpx; +} +.info-2 .info-2-title.top{ + margin-top: 54rpx; +} +.info-2 .info-2-name{ + font-size: 33rpx; + font-weight: 800; + color: #FEFEFE; + line-height: 54rpx; + position: absolute; + margin-left: 24rpx; +} + +.info-2 .info-2-title .tou{ + width: 380rpx; + height: 54rpx; +} + +.info-2 .info-2-info{ + margin-top: 38rpx; + width: 100%; + height: auto; + font-size: 28rpx; + font-weight: 500; + color: #333333; + line-height: 50rpx; +} +.list{ + display: flex; +} +.list-name{ + width: 40rpx +} +.list-cont{ + width: calc(100% - 40rpx); +} +.end{ + /* position: absolute; */ + margin-top: 40rpx; + width: 100%; + height: 80rpx; + bottom: 20rpx; + display: flex; + align-items: center; + justify-content: center; +} +.end .end-but { + text-align: center; + border-radius: 50rpx; + width: 350rpx; + height: 80rpx; + line-height: 80rpx; + font-size: 30rpx; + color: #fff; +} + + +.end .bg1 { + background: #ffb2b5; +} +.end .bg2 { + + background: linear-gradient(to right, #f40f0f, #ff4c4c); +} + +.info-1 image{ + top: 0; + width: 100%; + height: 100%; + position: absolute; + z-index: 10; +} + +.info-1 .top-c { + padding: 44rpx 40rpx; + box-sizing: border-box; + position: inherit; + /* position: absolute; */ + z-index: 999; + font-size: 28rpx; + font-weight: 500; + color: #333333; + line-height: 50rpx; + z-index: 99; + height: 285rpx; +} + +/* end */ +.tip-info{ + position: relative; + border-radius: 10rpx; + margin-top: 150rpx; + z-index: 100; + width: 80%; + height: 950rpx; + background: #fff; + /* opacity: 1; */ +} +.tip-info .title{ + padding: 30rpx 35rpx 10rpx 35rpx; + box-sizing: border-box; + position: relative; + width: 100%; + height: auto; + text-align: center; + line-height: 45rpx; + font-size: 30rpx; +} + +.tip-info .title .close{ + position: absolute; + width: 60rpx; + height: 60rpx; + background: red; + top: 10rpx; + right: 20rpx; +} +.tip-info .tip-content{ + max-height: 650rpx; + overflow-y: auto; + width: 100%; + height: auto; + padding: 10rpx 30rpx; + box-sizing: border-box; +} +.tip-info .tip-content .h1{ + width: 100%; + height: auto; + font-size: 30rpx; + line-height: 45rpx; + font-weight: 600; +} +.tip-info .tip-content .h2{ + width: 100%; + height: auto; + font-size: 26rpx; + line-height: 45rpx; +} + +.tip-info .tip-content .h3{ + text-align: right; + width: 100%; + height: auto; + font-size: 26rpx; + line-height: 45rpx; +} + + +.sound-operate { + display: flex; + justify-content: center; + align-items: center; + margin: 40rpx 0 30rpx 0; - .personal-info { +} +.sound-operate-del, + .sound-operate-finish { + width: 60rpx; + height: 60rpx; + + + } + .sound-operate-del image, + .sound-operate-finish image { + display: block; width: 100%; height: 100%; + } + .sound-operate-btn { + margin: 0 60rpx; + + } + .sound-circel { + width: 160rpx; + height: 160rpx; box-sizing: border-box; - padding: 0 20rpx; + background: #e9f2fe; + border-radius: 50%; overflow: hidden; + + } - .basic-info { - width: 100%; - background: #fff; - border-radius: 16rpx; + .sound-circle-bd { + width: 124rpx; + height: 124rpx; box-sizing: border-box; - padding: 0 20rpx; - margin-top: 20rpx; + margin: 18rpx auto; + border: 16rpx solid #5e9fff; + background-color: #5e9fff; + overflow: hidden; + border-radius: 50%; + -webkit-border-radius: 50%; + -moz-border-radius: 50%; + -ms-border-radius: 50%; + -o-border-radius: 50%; } - - .item { - border-bottom: 1rpx solid #e7eeee; - padding: 25rpx 0; - line-height: 60rpx; - display: flex; - justify-content: space-between; + .sound-circle-bg { + background: #5d9fff; } - .item .field { - position: relative; - box-sizing: border-box; - width: 300rpx; - padding-left: 25rpx; + @-webkit-keyframes list { + 0% { + -webkit-transform: scaley(1); + transform: scaley(1); + } + + 50% { + -webkit-transform: scaley(0.4); + transform: scaley(0.4); + } + 100% { + -webkit-transform: scaley(1); + transform: scaley(1); + } } + @keyframes list { + 0% { + -webkit-transform: scaley(1); + transform: scaley(1); + } - .field-d { - width: 220rpx !important; + 50% { + -webkit-transform: scaley(0.4); + transform: scaley(0.4); + } + + 100% { + -webkit-transform: scaley(1); + transform: scaley(1); + } } - .value-d{ - width: 450rpx !important; + .sound-play { + display: flex; + justify-content: center; + align-items: center; + height: 100%; + } - .item .field.mobile-field { - width: 250rpx !important; + .sound-cancle { + padding: 20rpx; + font-size: 24rpx; + color: #999999; + text-align: right; } - .item .field .must { - position: absolute; - top: 0; - left: 0; - margin: 0 auto; - color: #F61616; - font-size: 30rpx; + .sound-wrapper { + margin-top: 80rpx; + font-family: Source Han Serif SC; + font-weight: 500; + text-align: center; } - - .item .field .field-text { - font-size: 32rpx; - font-family: Source Han Serif SC; - font-weight: 400; - color: #333; + .sound-time { + width: 80rpx; + margin: 0 auto; + font-size: 30rpx; + color: #333333; + line-height: 1; + letter-spacing: 2rpx; } - - .item .value { - position: relative; - width: 410rpx; - display: flex; - font-size: 32rpx; - font-family: Source Han Serif SC; - font-weight: 400; - color: #333; - line-height: 60rpx; + .sound-tips { + font-size: 26rpx; + color: #999999; + text-align: center; } - - .item .value-dl { - position: relative; - width: 410rpx; + + .sound-operate { display: flex; - font-size: 32rpx; - font-family: Source Han Serif SC; - font-weight: 400; - color: #333; - line-height: 60rpx; + justify-content: center; align-items: center; + margin: 40rpx 0 30rpx 0; + } - - .di-name{ - margin-right: 14rpx; - text-align: right; - width: calc(100% - 30rpx); - } - - .di-but{ - width: 30rpx; - height: 34rpx; + .sound-operate-del, + .sound-operate-finish { + width: 60rpx; + height: 60rpx; } - - .item .value input { - text-align: right; - font-size: 34rpx; - color: #333; - height: 100%; - width: 100%; - } - .item .value .picker { - position: relative; - width: 100%; - padding-right: 40rpx; - text-align: right; + + .sound-play .sound-play-item { + background-color: #fff; + width: 6rpx; + height: 40rpx; + border-radius: 6rpx; + margin-right: 7rpx; + -webkit-animation-fill-mode: both; + animation-fill-mode: both; + animation: list 1s 0s infinite cubic-bezier(0.85, 0.25, 0.37, 0.85); + -webkit-border-radius: 6rpx; + -moz-border-radius: 6rpx; + -ms-border-radius: 6rpx; + -o-border-radius: 6rpx; + -webkit-animation: list 1s 0s infinite cubic-bezier(0.85, 0.25, 0.37, 0.85); } - - .item .value .picker .z-weak { - color: #999; + .sound-play .sound-play-item:nth-child(1) { + -webkit-animation-delay: 0.1s !important; + animation-delay: 0.1s !important; } - - .item .value .picker .menu-arrow { - position: absolute; - top: 20rpx; - right: 0; - width: 16rpx; - height: 23rpx; + .sound-play .sound-play-item:nth-child(2) { + -webkit-animation-delay: 0.2s !important; + animation-delay: 0.2s !important; } - .item .value-mobile { - position: relative; - width: 410rpx; - display: flex; - font-size: 32rpx; - font-family: Source Han Serif SC; - font-weight: 400; - color: #333; - line-height: 60rpx; - display: flex; - justify-content: flex-end; + .sound-play .sound-play-item:nth-child(3) { + -webkit-animation-delay: 0.3s !important; + animation-delay: 0.3s !important; } - .item .value-mobile .get-code { - padding: 0 15rpx; - height: 60rpx; - line-height: 60rpx; - background: linear-gradient(to right, #F40C0C, #FF4E4E); - color: #fff; - font-size: 24rpx; - border-radius: 6rpx; - margin: 0; - margin-left: 25rpx; + .sound-play .sound-play-item:nth-child(4) { + -webkit-animation-delay: 0.4s !important; + animation-delay: 0.4s !important; } - .item .value-mobile .button-hover { - background: rgb(175, 1, 1); + .sound-play-stop .sound-play-item { + animation-play-state: paused; } - .item .value-mobile input { - text-align: right; - font-size: 34rpx; - color: #333; - height: 100%; - width: 55%; + .mkf-img{ + display: flex; + align-items: center; + color: #999; + font-size: 26rpx; + font-family: PingFang SC; } - .placeholder-style { - font-size: 28rpx; - color: #999; + .mkf-img image{ + width: 50rpx; + height: 50rpx; } \ No newline at end of file diff --git a/subpages/gatherInformation/pages/gatherInformation/gatherInformation.wxml b/subpages/gatherInformation/pages/gatherInformation/gatherInformation.wxml index 420ea00..514720a 100644 --- a/subpages/gatherInformation/pages/gatherInformation/gatherInformation.wxml +++ b/subpages/gatherInformation/pages/gatherInformation/gatherInformation.wxml @@ -1,7 +1,8 @@ - {{typeVal =='resi'?'居民信息采集':typeVal=='house'?'房屋信息采集':'全部信息'}} , {{collectTypeVal =='add'?'新增':collectTypeVal =='edit'?'修改':collectTypeVal == 'del'?'删除':''}} + {{typeVal =='resi'?'居民信息采集':typeVal=='house'?'房屋信息采集':'全部信息'}} + diff --git a/subpages/searchResult/pages/searchResult/searchResult.js b/subpages/searchResult/pages/searchResult/searchResult.js index 545acbd..1a2119b 100644 --- a/subpages/searchResult/pages/searchResult/searchResult.js +++ b/subpages/searchResult/pages/searchResult/searchResult.js @@ -30,9 +30,8 @@ Page({ share:app.globalData.share, title:options.type =='resi'?'居民查询结果':'房屋查询结果', type:options.type, - keyWord:app.globalData.keyWord + keyWord:options.keyWord }) - console.log(this.data.keyWord,'dataK'); this.getTable() }, @@ -47,7 +46,6 @@ Page({ * 生命周期函数--监听页面显示 */ onShow() { - console.log(this.data.keyWord,'show'); }, /** @@ -103,7 +101,6 @@ Page({ loadMoreType: res.data.list.length === this.data.pageSize ? 'more' : 'none', tableData: this.data.tableData.concat(res.data.list), }) - console.log(this.data.loadMoreType); if (this.data.tableData.length == 0) { this.setData({ loadMoreVisible: false, @@ -122,7 +119,6 @@ Page({ loadMoreType: res.data.list.length === this.data.pageSize ? 'more' : 'none', tableData: this.data.tableData.concat(res.data.list), }) - console.log(this.data.loadMoreType); if (this.data.tableData.length == 0) { this.setData({ loadMoreVisible: false, @@ -155,7 +151,6 @@ Page({ } }, handelClickedit(e){ - console.log(e); if(this.data.type == 'resi'){ wx.navigateTo({ url: `/subpages/addResi/pages/addResi/addResi?type=edit&resiId=${e.currentTarget.dataset.item.resiId}`, diff --git a/utils/api.js b/utils/api.js index 7173c9c..7ebd1ad 100644 --- a/utils/api.js +++ b/utils/api.js @@ -34,7 +34,8 @@ module.exports = { getFollowUpList, followUpSave, followUpDelete, - logout + logout, + getAgencygridtree } // 消息列表 function getIntelligentMessage(param){ @@ -177,3 +178,7 @@ function followUpSave (parm) { function followUpDelete (parm) { return fly.post(`governance/satisfaction/communitySelfInsp/followUp/delete/${parm}`,) } +// 获取组织树 +function getAgencygridtree () { + return fly.post(`gov/org/customeragency/agencygridtree`,) +} diff --git a/utils/qqmap-wx-jssdk.js b/utils/qqmap-wx-jssdk.js new file mode 100644 index 0000000..9724e31 --- /dev/null +++ b/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