Browse Source

数据概览 事件上报部分完成

master
mk 10 months ago
parent
commit
8938315312
  1. 1122
      libs/qqmap-wx-jssdk.js
  2. 1
      libs/qqmap-wx-jssdk.min.js
  3. 1
      main.js
  4. 1
      manifest.json
  5. 3
      pages/login/login.vue
  6. 3
      pages/statistics/modules/StayList/StayList.vue
  7. 145
      pages/statistics/statistics.vue
  8. BIN
      static/images/statistics/bot.png
  9. BIN
      static/images/statistics/top.png
  10. 194
      subpages/demandCheck/pages/dissatisfied/demandCheck/demandCheck.vue
  11. 22
      uni_modules/百度地图,高德地图,谷歌地图实现导航/App.vue
  12. 14
      uni_modules/百度地图,高德地图,谷歌地图实现导航/info.md
  13. 23
      uni_modules/百度地图,高德地图,谷歌地图实现导航/main.js
  14. 85
      uni_modules/百度地图,高德地图,谷歌地图实现导航/manifest.json
  15. 9
      uni_modules/百度地图,高德地图,谷歌地图实现导航/package.json
  16. 21
      uni_modules/百度地图,高德地图,谷歌地图实现导航/pages.json
  17. 171
      uni_modules/百度地图,高德地图,谷歌地图实现导航/pages/index/map.vue
  18. 76
      uni_modules/百度地图,高德地图,谷歌地图实现导航/uni.scss

1122
libs/qqmap-wx-jssdk.js

File diff suppressed because it is too large

1
libs/qqmap-wx-jssdk.min.js

File diff suppressed because one or more lines are too long

1
main.js

@ -4,7 +4,6 @@ import App from './App';
import zpMixins from '@/uni_modules/zp-mixins/index.js';
import {VueJsonp} from 'vue-jsonp';
// #ifndef VUE3
import Vue from 'vue';
Vue.use(zpMixins);

1
manifest.json

@ -55,6 +55,7 @@
"desc" : "亿联社区将获取您的位置信息"
}
},
"plugins" : {
"ocr-plugin" : {
"version" : "3.1.3",

3
pages/login/login.vue

@ -46,7 +46,8 @@ export default {
/**
* 生命周期函数--监听页面加载
*/,
onLoad(options) {},
onLoad(options) {
},
/**
* 生命周期函数--监听页面初次渲染完成
*/

3
pages/statistics/modules/StayList/StayList.vue

@ -119,6 +119,9 @@ export default {
.container {
padding: 0rpx 24rpx;
}
.stay-list{
width: 100%;
}
.stay-item {
display: flex;
align-items: center;

145
pages/statistics/statistics.vue

@ -2,6 +2,65 @@
<view>
<Head />
<view class="statistics-container">
<view class="card">
<view class="title">
数据概览
</view>
<view class="overview">
<view class="top">
<view class="item">
<view class="num">
24255
</view>
<view class="type">
事件数
</view>
</view>
<view class="item">
<view class="num">
24255
</view>
<view class="type">
事件数
</view>
</view>
<view class="item">
<view class="num">
24255
</view>
<view class="type">
事件数
</view>
</view>
</view>
<view class="bot">
<view class="item">
<view class="num">
24255
</view>
<view class="type">
需求数
</view>
</view>
<view class="item">
<view class="num">
24255
</view>
<view class="type">
已办结
</view>
</view>
<view class="item">
<view class="num">
24255
</view>
<view class="type">
未办结
</view>
</view>
</view>
</view>
</view>
<view class="card">
<view class="title">
<view class="title-tabs">
@ -191,7 +250,91 @@ export default {
}
};
</script>
<style>
<style lang="scss" scoped>
.overview{
display: flex;
flex-direction: column;
.top{
background: url('../../static/images/statistics/top.png');
background-size: 100% 100%;
height: 68px;
.item{
flex: 1;
position: relative;
&::after{
content: ' ';
width: 1px;
height: 13px;
background: #ff9466;
position: absolute;
left: 0;
top: 15px;
}
}
&>:first-child{
&::after{
display: none;
}
.num{
color: #ff4a43;
}
.type{
color: #ff7672;
}
}
}
.bot{
background: url('../../static/images/statistics/bot.png');
background-size: 100% 100%;
height: 68px;
margin-top: 8px;
.item{
flex: 1;
position: relative;
&::after{
content: ' ';
width: 1px;
height: 13px;
background: #ff844d;
position: absolute;
left: 0;
top: 15px;
}
}
&>:first-child{
&::after{
display: none;
}
.num{
color: #ff882b;
}
.type{
color: #ff964c;
}
}
}
.top,.bot{
display: flex;
align-items: center;
justify-content: space-around;
.num{
font-size: 18px;
color: #333333;
font-weight: bold;
text-align: center;
}
.type{
text-align: center;
font-size: 13px;
color: #A3ABBA;
}
}
}
.statistics-container {
padding: 20rpx;
box-sizing: border-box;

BIN
static/images/statistics/bot.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 91 KiB

BIN
static/images/statistics/top.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 96 KiB

194
subpages/demandCheck/pages/dissatisfied/demandCheck/demandCheck.vue

@ -72,22 +72,12 @@
@blur="bindTextareaInput" @input="bindTextareaInput" @focus="bindTextareaFocus"
placeholder="请输入事件描述(不超过500字)"></textarea>
<!-- 语音播放 -->
<view class="audio-play" v-if="fmData.voiceList.length > 0 && (tabVal == 0 || tabVal == 2)">
<view class="audio-play-left">
<image src="/static/subpages/demandCheck/images/zt.png" mode="" @tap="handlePlay"
v-if="!hasPlay" />
<image src="/static/subpages/demandCheck/images/bf.png" mode="" @tap="handlePlay"
v-else />
<slider :value="stepValue" min="0" :max="totalMax" @change="slideChange"
@changing="handleSlideMove" class="audio-slider" active-color="#3A80E7"
block-color="#3A80E7" block-size="2" />
<view class="audio-time">{{ totalTime }}</view>
</view>
<image src="/static/subpages/demandCheck/images/sc.png" @tap="handleAudioDel" mode="" />
<view style="display: flex;align-items: center;" v-if='playUrl'>
<audio :src='playUrl' name='本地录音' controls="true"></audio>
<image src="/static/subpages/demandCheck/images/sc.png" style="width: 30rpx;height: 30rpx;" @tap="handleAudioDel" mode="" />
</view>
<view class="mkf-img" @tap="showRecordSheet"
v-if="fmData.voiceList.length <= 0 && (tabVal == 0 || tabVal == 2)">
v-if="fmData.voiceList.length <= 0 && (tabVal == 0 || tabVal == 2) && !playUrl">
<image src="/static/subpages/demandCheck/images/mkf.png" mode="widthFix" />
您也可以语音输入描述
</view>
@ -198,7 +188,7 @@
</view>
<navigator hover-class="backC" class="value-dl"
url="/subpages/demandCheck/pages/dissatisfied/searchResi/searchResi">
<view :class="resiName ? 'di-name' : 'di-name1'">
<view :class="resiName ? 'pdi-name' : 'di-name1'">
{{ resiName ? resiName : '请选择' }}
</view>
<image class="di-but" src="/static/images/right.png" mode="aspectFit" />
@ -878,7 +868,7 @@
uni.downloadFile({
url: _this.uploadRecord.url,
header: {
Authorization: uni.getStorageSync('token')
Authorization: uni.getStorageSync('token'),
},
success(res) {
console.log(res);
@ -887,7 +877,7 @@
_this.setData({
playUrl: res.tempFilePath
});
_this.initAudio();
// _this.initAudio();
} else {
// wx.showToast({
// title: '',
@ -906,6 +896,7 @@
}
});
},
initAudio() {
var _this = this;
innerAudioContext.src = this.playUrl;
@ -963,7 +954,13 @@
hasPlay: false
});
},
handleAudioDel() {
this.setData({
totalTime: '00:00',
'fmData.voiceList': [],
playUrl:''
});
},
audioPlay() {
innerAudioContext.play();
this.setData({
@ -1916,6 +1913,155 @@
}
return true;
},
toMapAPP(lat,lon,cityName) {
var url = '';
if (plus.os.name == 'Android') {
var hasBaiduMap = plus.runtime.isApplicationExist({
pname: 'com.baidu.BaiduMap',
action: 'baidumap://'
});
var hasAmap = plus.runtime.isApplicationExist({
pname: 'com.autonavi.minimap',
action: 'androidamap://'
});
var urlBaiduMap = 'baidumap://map/marker?location=' + lat + ',' + lon + '&title=' + cityName + '&src=婚梯';
var urlAmap = 'androidamap://viewMap?sourceApplication=婚梯&poiname=' + cityName + '&lat=' + lat + '&lon=' + lon +
'&dev=0';
// if (hasAmap && hasBaiduMap) {
plus.nativeUI.actionSheet({
title: '选择地图应用',
cancel: '取消',
buttons: [{
title: '百度地图'
}, {
title: '高德地图'
} ,{
title: '谷歌地图'
}]
}, function(e) {
switch (e.index) {
case 1:
plus.runtime.openURL(urlBaiduMap);
break;
case 2:
plus.runtime.openURL(urlAmap);
break;
case 3:
url = 'geo:' + lat + ',' + lon + '?q='+cityName; //使google
plus.runtime.openURL(url);
break;
}
});
} else {
plus.nativeUI.actionSheet({
title: '选择地图应用',
cancel: '取消',
buttons: [{
title: 'Apple地图'
}, {
title: '高德地图'
} ,{
title: '谷歌地图'
}]
}, function(e) {
console.log('e.index: ' + e.index);
switch (e.index) {
case 1:
url = 'http://maps.apple.com/?q=%e6%95%b0%e5%ad%97%e5%a4%a9%e5%a0%82&ll=' + lat + ',' + lon +
'&spn=0.008766,0.019441';
break;
case 2:
url = 'baidumap://map/marker?location=' + lat + ',' + lon + '&title=' + cityName + '&src=婚梯';
break;
case 3:
url = 'iosamap://viewMap?sourceApplication=婚梯&poiname=' + cityName + '&lat=' + lat + '&lon=' + lon + '&dev=0';
break;
case 4:
url = 'geo:' + lat + ',' + lon + '?q='+cityName; //使google
plus.runtime.openURL(url);
break;
default:
break;
}
if (url != '') {
plus.runtime.openURL(url, function(e) {
plus.nativeUI.alert('本机未安装指定的地图应用');
});
}
});
}
},
//
deleteImage(e) {
const index = this.uploadImageList.findIndex((item) => item.imageId === e.currentTarget.dataset.imageid);
@ -2422,17 +2568,7 @@
},
routePlanning() {
let key = 'UDOBZ-KWRKZ-XCZXE-ZFSTS-QPNKV-VKBK7';
let referer = 'e智社区';
let endPoint = JSON.stringify({
//
name: this.fmData.address,
latitude: this.fmData.latitude,
longitude: this.fmData.longitude
});
uni.navigateTo({
url: 'plugin://routePlan/index?key=' + key + '&referer=' + referer + '&endPoint=' + endPoint
});
this.toMapAPP(this.fmData.latitude,this.fmData.longitude,this.fmData.name)
},
bindTextareaFocus() {

22
uni_modules/百度地图,高德地图,谷歌地图实现导航/App.vue

@ -0,0 +1,22 @@
<script>
export default {
onLaunch: function() {
console.log('App Launch')
},
onShow: function() {
console.log('App Show')
},
onHide: function() {
console.log('App Hide')
}
}
</script>
<style lang="scss">
/* 注意要写在第一行,同时给style标签加入lang="scss"属性 */
// @import "uview-ui/index.scss";
.cell-hover-class {
background-color: rgb(0, 170, 255);
}
</style>

14
uni_modules/百度地图,高德地图,谷歌地图实现导航/info.md

@ -0,0 +1,14 @@
学习uni插件发布
###1、安装 vue-baidu-map
#### cnpm install vue-baidu-map --save
###2、main.js引入
####import BaiduMap from 'vue-baidu-map'
####import {BmlMarkerClusterer} from 'vue-baidu-map'
####Vue.component('bml-marker-cluster', BmlMarkerClusterer)
####Vue.use(BaiduMap, {
#### ak: 'your ak'
####})

23
uni_modules/百度地图,高德地图,谷歌地图实现导航/main.js

@ -0,0 +1,23 @@
import Vue from 'vue'
import App from './App'
// import uView from "uview-ui";
import BaiduMap from 'vue-baidu-map'
import {BmlMarkerClusterer} from 'vue-baidu-map'
Vue.component('bml-marker-cluster', BmlMarkerClusterer)
Vue.config.productionTip = false
App.mpType = 'app'
// Vue.use(uView);
Vue.use(BaiduMap, {
// ak 是在百度地图开发者平台申请的密钥 详见 http://lbsyun.baidu.com/apiconsole/key */
ak: 'xxxxxxxxxxxxxxxxxxxxxxxx'
})
const app = new Vue({
...App
})
app.$mount()

85
uni_modules/百度地图,高德地图,谷歌地图实现导航/manifest.json

@ -0,0 +1,85 @@
{
"name" : "百度地图,高德地图,谷歌地图实现导航",
"appid" : "",
"description" : "",
"versionName" : "1.0.0",
"versionCode" : "100",
"transformPx" : false,
/* 5+App */
"app-plus" : {
"usingComponents" : true,
"nvueCompiler" : "uni-app",
"compilerVersion" : 3,
"splashscreen" : {
"alwaysShowBeforeRender" : true,
"waiting" : true,
"autoclose" : true,
"delay" : 0
},
/* */
"modules" : {},
/* */
"distribute" : {
/* android */
"android" : {
"permissions" : [
"<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
"<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
"<uses-permission android:name=\"android.permission.READ_CONTACTS\"/>",
"<uses-permission android:name=\"android.permission.VIBRATE\"/>",
"<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
"<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
"<uses-permission android:name=\"android.permission.WRITE_CONTACTS\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
"<uses-permission android:name=\"android.permission.CAMERA\"/>",
"<uses-permission android:name=\"android.permission.RECORD_AUDIO\"/>",
"<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
"<uses-permission android:name=\"android.permission.MODIFY_AUDIO_SETTINGS\"/>",
"<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
"<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
"<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
"<uses-permission android:name=\"android.permission.CALL_PHONE\"/>",
"<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_COARSE_LOCATION\"/>",
"<uses-feature android:name=\"android.hardware.camera\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_FINE_LOCATION\"/>",
"<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
]
},
/* ios */
"ios" : {},
/* SDK */
"sdkConfigs" : {}
}
},
/* */
"quickapp" : {},
/* */
"mp-weixin" : {
"appid" : "",
"setting" : {
"urlCheck" : false
},
"usingComponents" : true
},
"mp-alipay" : {
"usingComponents" : true
},
"mp-baidu" : {
"usingComponents" : true
},
"mp-toutiao" : {
"usingComponents" : true
},
"uniStatistics" : {
"enable" : false
},
"h5" : {
"router" : {
"mode" : "history",
"base" : "/map"
}
},
"vueVersion" : "2"
}

9
uni_modules/百度地图,高德地图,谷歌地图实现导航/package.json

@ -0,0 +1,9 @@
{
"dependencies": {
"vue-baidu-map": "^0.21.22"
},
"devDependencies": {
"node-sass": "^5.0.0",
"sass-loader": "^10.1.0"
}
}

21
uni_modules/百度地图,高德地图,谷歌地图实现导航/pages.json

@ -0,0 +1,21 @@
{
// "easycom": {
// "^u-(.*)": "uview-ui/components/u-$1/u-$1.vue"
// },
"pages": [ //pageshttps://uniapp.dcloud.io/collocation/pages
{
"path": "pages/index/map",
"style": {
"navigationBarTitleText": "uni-app"
}
}
],
"globalStyle": {
"navigationBarTextStyle": "black",
"navigationBarTitleText": "uni-app",
"navigationBarBackgroundColor": "#F8F8F8",
"backgroundColor": "#F8F8F8"
}
}

171
uni_modules/百度地图,高德地图,谷歌地图实现导航/pages/index/map.vue

@ -0,0 +1,171 @@
<template>
<view><button @click="button_bt">点击事件</button></view>
</template>
<script>
export default {
components: {
},
data() {
return {
};
},
methods: {
button_bt(){
this.toMapAPP("经度","纬度","地址")
},
toMapAPP(lat,lon,cityName) {
var url = '';
if (plus.os.name == 'Android') {
var hasBaiduMap = plus.runtime.isApplicationExist({
pname: 'com.baidu.BaiduMap',
action: 'baidumap://'
});
var hasAmap = plus.runtime.isApplicationExist({
pname: 'com.autonavi.minimap',
action: 'androidamap://'
});
var urlBaiduMap = 'baidumap://map/marker?location=' + lat + ',' + lon + '&title=' + cityName + '&src=婚梯';
var urlAmap = 'androidamap://viewMap?sourceApplication=婚梯&poiname=' + cityName + '&lat=' + lat + '&lon=' + lon +
'&dev=0';
// if (hasAmap && hasBaiduMap) {
plus.nativeUI.actionSheet({
title: '选择地图应用',
cancel: '取消',
buttons: [{
title: '百度地图'
}, {
title: '高德地图'
} ,{
title: '谷歌地图'
}]
}, function(e) {
switch (e.index) {
case 1:
plus.runtime.openURL(urlBaiduMap);
break;
case 2:
plus.runtime.openURL(urlAmap);
break;
case 3:
url = 'geo:' + lat + ',' + lon + '?q='+cityName; //使google
plus.runtime.openURL(url);
break;
}
});
} else {
plus.nativeUI.actionSheet({
title: '选择地图应用',
cancel: '取消',
buttons: [{
title: 'Apple地图'
}, {
title: '高德地图'
} ,{
title: '谷歌地图'
}]
}, function(e) {
console.log('e.index: ' + e.index);
switch (e.index) {
case 1:
url = 'http://maps.apple.com/?q=%e6%95%b0%e5%ad%97%e5%a4%a9%e5%a0%82&ll=' + lat + ',' + lon +
'&spn=0.008766,0.019441';
break;
case 2:
url = 'baidumap://map/marker?location=' + lat + ',' + lon + '&title=' + cityName + '&src=婚梯';
break;
case 3:
url = 'iosamap://viewMap?sourceApplication=婚梯&poiname=' + cityName + '&lat=' + lat + '&lon=' + lon + '&dev=0';
break;
case 4:
url = 'geo:' + lat + ',' + lon + '?q='+cityName; //使google
plus.runtime.openURL(url);
break;
default:
break;
}
if (url != '') {
plus.runtime.openURL(url, function(e) {
plus.nativeUI.alert('本机未安装指定的地图应用');
});
}
});
}
    }
},
};
</script>
<style></style>

76
uni_modules/百度地图,高德地图,谷歌地图实现导航/uni.scss

@ -0,0 +1,76 @@
/**
* 这里是uni-app内置的常用样式变量
*
* uni-app 官方扩展插件及插件市场https://ext.dcloud.net.cn上很多三方插件均使用了这些样式变量
* 如果你是插件开发者建议你使用scss预处理并在插件代码中直接使用这些变量无需 import 这个文件方便用户通过搭积木的方式开发整体风格一致的App
*
*/
/**
* 如果你是App开发者插件使用者你可以通过修改这些变量来定制自己的插件主题实现自定义主题功能
*
* 如果你的项目同样使用了scss预处理你也可以直接在你的 scss 代码中使用如下变量同时无需 import 这个文件
*/
/* 颜色变量 */
/* 行为相关颜色 */
// @import 'uview-ui/theme.scss';
$uni-color-primary: #007aff;
$uni-color-success: #4cd964;
$uni-color-warning: #f0ad4e;
$uni-color-error: #dd524d;
/* 文字基本颜色 */
$uni-text-color:#333;//基本色
$uni-text-color-inverse:#fff;//反色
$uni-text-color-grey:#999;//辅助灰色如加载更多的提示信息
$uni-text-color-placeholder: #808080;
$uni-text-color-disable:#c0c0c0;
/* 背景颜色 */
$uni-bg-color:#ffffff;
$uni-bg-color-grey:#f8f8f8;
$uni-bg-color-hover:#f1f1f1;//点击状态颜色
$uni-bg-color-mask:rgba(0, 0, 0, 0.4);//遮罩颜色
/* 边框颜色 */
$uni-border-color:#c8c7cc;
/* 尺寸变量 */
/* 文字尺寸 */
$uni-font-size-sm:24rpx;
$uni-font-size-base:28rpx;
$uni-font-size-lg:32rpx;
/* 图片尺寸 */
$uni-img-size-sm:40rpx;
$uni-img-size-base:52rpx;
$uni-img-size-lg:80rpx;
/* Border Radius */
$uni-border-radius-sm: 4rpx;
$uni-border-radius-base: 6rpx;
$uni-border-radius-lg: 12rpx;
$uni-border-radius-circle: 50%;
/* 水平间距 */
$uni-spacing-row-sm: 10px;
$uni-spacing-row-base: 20rpx;
$uni-spacing-row-lg: 30rpx;
/* 垂直间距 */
$uni-spacing-col-sm: 8rpx;
$uni-spacing-col-base: 16rpx;
$uni-spacing-col-lg: 24rpx;
/* 透明度 */
$uni-opacity-disabled: 0.3; // 组件禁用态的透明度
/* 文章场景相关 */
$uni-color-title: #2C405A; // 文章标题颜色
$uni-font-size-title:40rpx;
$uni-color-subtitle: #555555; // 二级标题颜色
$uni-font-size-subtitle:36rpx;
$uni-color-paragraph: #3F536E; // 文章段落颜色
$uni-font-size-paragraph:30rpx;
Loading…
Cancel
Save