From 0e9f61d1697564f4adb188e363cb8f4aa196fba5 Mon Sep 17 00:00:00 2001
From: guoshilong <123456>
Date: Fri, 30 Sep 2022 09:04:43 +0800
Subject: [PATCH] 事件上报
---
api/taskinfo/list.js | 8 +
pages/taskinfo/list.vue | 36 ++++++
api/eventgm/eventgm.js | 9 +
manifest.json | 11 +
pages.json | 8 +
utils/func.js | 3
api/dict/dict.js | 12 ++
pages/taskinfo/eventsReported.vue | 212 ++++++++++++++++++++++++++++++++++++++++++
8 files changed, 291 insertions(+), 8 deletions(-)
diff --git a/api/dict/dict.js b/api/dict/dict.js
new file mode 100644
index 0000000..57a42d7
--- /dev/null
+++ b/api/dict/dict.js
@@ -0,0 +1,12 @@
+import http from '@/http/api.js'
+
+
+export const getDicList = (code) => {
+ return http.request({
+ url: '/blade-system/dict-biz/dictionary',
+ method: 'get',
+ params: {
+ code
+ }
+ })
+}
\ No newline at end of file
diff --git a/api/eventgm/eventgm.js b/api/eventgm/eventgm.js
new file mode 100644
index 0000000..e152b36
--- /dev/null
+++ b/api/eventgm/eventgm.js
@@ -0,0 +1,9 @@
+import http from '@/http/api.js'
+
+export const add = (row) => {
+ return http.request({
+ url: '/eventgm/eventgm/submit',
+ method: 'post',
+ data: row
+ })
+}
\ No newline at end of file
diff --git a/api/taskinfo/list.js b/api/taskinfo/list.js
index 37a6431..d1de2b4 100644
--- a/api/taskinfo/list.js
+++ b/api/taskinfo/list.js
@@ -11,3 +11,11 @@
}
})
}
+
+export const update = (row) =>{
+ return http.request({
+ url:'/taskInfo/taskinfo/submit',
+ method:'POST',
+ data:row
+ })
+}
diff --git a/manifest.json b/manifest.json
index aca0d30..5cac501 100644
--- a/manifest.json
+++ b/manifest.json
@@ -22,7 +22,9 @@
"delay" : 0
},
/* 模块配置 */
- "modules" : {},
+ "modules" : {
+ "Geolocation" : {}
+ },
/* 应用发布信息 */
"distribute" : {
/* android打包配置 */
@@ -55,7 +57,12 @@
"ios" : {},
/* SDK配置 */
"sdkConfigs" : {
- "ad" : {}
+ "ad" : {},
+ "geolocation" : {
+ "system" : {
+ "__platform__" : [ "ios", "android" ]
+ }
+ }
}
}
},
diff --git a/pages.json b/pages.json
index 132c21b..0f7884b 100644
--- a/pages.json
+++ b/pages.json
@@ -25,7 +25,13 @@
"navigationBarTitleText": "任务列表",
"enablePullDownRefresh": false
}
-
+ },
+ {
+ "path": "pages/taskinfo/eventsReported",
+ "style": {
+ "navigationBarTitleText": "事件上报",
+ "enablePullDownRefresh": false
+ }
}
],
"globalStyle": {
diff --git a/pages/taskinfo/eventsReported.vue b/pages/taskinfo/eventsReported.vue
new file mode 100644
index 0000000..02d7916
--- /dev/null
+++ b/pages/taskinfo/eventsReported.vue
@@ -0,0 +1,212 @@
+<template>
+ <view class="container">
+ <u-form :model="form" ref="uForm" :rules="rules">
+
+ <u-form-item label="地址:">
+ <u-input v-model="form.address" placeholder="请输入地址" @click="getAddress"/>
+ </u-form-item>
+
+ <u-form-item label-width="20%" label="事件类型:" prop="type">
+ <u-input v-model="form.typeText" type="select" @click="showType = true" placeholder="请选择事件类型"/>
+ </u-form-item>
+ <u-action-sheet
+ v-model="showType"
+ :list="typeList"
+ title="请选择事件类型"
+ @click="typeSelect"
+ >
+ </u-action-sheet>
+
+ <u-form-item label-width="20%" label="事件状态:" prop="state">
+ <u-input v-model="form.stateText" type="select" @click="showState = true" placeholder="请选择事件状态"/>
+ </u-form-item>
+ <u-action-sheet
+ v-model="showState"
+ :list="stateList"
+ title="请选择事件状态"
+ @click="stateSelect"
+ >
+ </u-action-sheet>
+
+ <u-form-item label-width="20%" label="事件来源:">
+ <u-input :disabled="true" v-model="form.sourceText" type="select" @click="showSource = true" placeholder="请选择事件来源"/>
+ </u-form-item>
+<!-- <u-action-sheet
+ v-model="showSource"
+ :list="sourceList"
+ title="请选择事件状态"
+ @click="sourceSelect"
+ >
+ </u-action-sheet> -->
+
+ <u-form-item label-position="top" label-width="25%" label="图片上传:">
+ <u-upload ref="uUpload" :header="header" :action="uploadApi" max-count="5" ></u-upload>
+ </u-form-item>
+
+ <u-form-item label-position="top" label="备注:">
+ <u-input v-model="form.remark" type="textarea" />
+ </u-form-item>
+ </u-form>
+
+ <view class="submitBtn">
+ <u-button @click="submit">提交</u-button>
+ </view>
+ </view>
+
+</template>
+
+<script>
+import {clientId,clientSecret} from '@/common/setting'
+import {add} from "@/api/eventgm/eventgm.js"
+import {getDicList} from "@/api/dict/dict.js"
+export default {
+ data() {
+ return {
+ form: {
+ address:"",
+ longitude:"",
+ latitude:"",
+ type:"",
+ typeText:"",
+ state:"",
+ stateText:"",
+ source:"APP",
+ sourceText:"APP",
+ picUrls:[],
+ remark:"",
+ },
+ rules:{
+ type:[{
+ required:true,
+ message:'请选择事件类型',
+ trigger:'blur'
+ }],
+ state:[{
+ required:true,
+ message:'请选择事件状态',
+ trigger:'blur'
+ }],
+
+ },
+ //换用其他写法
+ uploadApi:"http://localhost/blade-resource/oss/endpoint/put-file-attach",
+ header:{},
+ showType:false,
+ typeList:[],
+ showState:false,
+ stateList:[],
+ showSource:false,
+ sourceList:[
+ {
+ text: 'WEB',
+ value:'WEB'
+ },
+ {
+ text: 'APP',
+ value:'APP'
+ },
+ ],
+ };
+ },
+ onReady() {
+ this.$refs.uForm.setRules(this.rules);
+ },
+ created() {
+ this.getType()
+ this.getState()
+ this.getHeader()
+ },
+ methods:{
+ getHeader(){
+ let accessToken = uni.getStorageSync('accessToken');
+ if (accessToken) {
+ this.header['Blade-Auth'] = 'bearer ' + accessToken;
+ }
+ // 客户端认证参数
+ this.header['Authorization'] = 'Basic ' + Base64.encode(clientId + ':' + clientSecret);
+ },
+ getAddress(){
+ uni.getLocation({
+ type: 'wgs84',
+ isHighAccuracy:true,
+ geocode:true,
+ success: res=> {
+ console.log(res)
+ console.log('当前位置的经度:' + res.longitude);
+ console.log('当前位置的纬度:' + res.latitude);
+ this.form.longitude = res.longitude
+ this.form.latitude = res.latitude
+ }
+ });
+ },
+ //获取数据字典
+ getType(){
+ getDicList("EVENT_TYPE").then(res=>{
+ if(res.code == 200){
+ res.data.forEach(e=>{
+ this.typeList.push({
+ text:e.dictValue,
+ key:e.dictKey
+ })
+ })
+ }
+ })
+ },
+ getState(){
+ getDicList("EVENT_STATE").then(res=>{
+ if(res.code == 200){
+ res.data.forEach(e=>{
+ this.stateList.push({
+ text:e.dictValue,
+ key:e.dictKey
+ })
+ })
+ }
+ })
+ },
+ //选择事件
+ typeSelect(index){
+ this.form.typeText = this.typeList[index].text
+ this.form.type = this.typeList[index].key
+ },
+ stateSelect(index){
+ this.form.stateText = this.stateList[index].text
+ this.form.state = this.stateList[index].key
+ },
+ sourceSelect(index){
+ this.form.sourceText = this.sourceList[index].text
+ this.form.source = this.sourceList[index].value
+ },
+ submit(){
+ this.$refs.uForm.validate(valid => {
+ if (valid) {
+ let lists = this.$refs.uUpload.lists
+ if(lists.length>0){
+ lists.forEach(e=>{
+ this.form.picUrls.push({
+ label:e.response.data.name,
+ value:e.response.data.link
+ })
+ })
+ }else{
+ this.form.picUrls = null
+ }
+ add(this.form).then(res=>{
+ if(res.code ==200){
+ uni.redirectTo({
+ url:"/pages/taskinfo/list"
+ })
+ }
+ })
+ }
+ });
+ }
+ }
+};
+</script>
+
+<style scoped>
+ .container{
+ padding: 20px;
+ }
+</style>
\ No newline at end of file
diff --git a/pages/taskinfo/list.vue b/pages/taskinfo/list.vue
index 0357227..d8a34ba 100644
--- a/pages/taskinfo/list.vue
+++ b/pages/taskinfo/list.vue
@@ -29,9 +29,9 @@
</view>
</view>
<view class="onve-right">
- <u-button class='greens' size="mini" v-if="current == 0">开始任务</u-button>
- <u-button class='greens' size="mini" v-if="current == 1">完成任务</u-button>
- <u-button class='o-r-down' plain type="error" size="mini" v-if="current == 1">事件上报
+ <u-button class='greens' size="mini" v-if="current == 0" @click="startTask(item)">开始任务</u-button>
+ <u-button class='greens' size="mini" v-if="current == 1" @click="finishTask(item)">完成任务</u-button>
+ <u-button class='o-r-down' plain type="error" size="mini" v-if="current == 1" @click="goToEventsReported">事件上报
</u-button>
</view>
</view>
@@ -46,7 +46,7 @@
<script>
import {
- getList
+ getList,update
} from "@/api/taskinfo/list.js";
export default {
data() {
@@ -103,6 +103,34 @@
this.page.total = data.total;
this.taskinfoList = this.taskinfoList.concat(data.records)
})
+ },
+ //任务开始事件
+ startTask(item){
+ item.state = '1'
+ item.routeRange = '\'' + item.routeRange + '\''
+ update(item).then(res=>{
+ if(res.code == 200){
+ this.page.currentPage = 1
+ this.getList()
+ }
+ })
+ },
+ //任务结束事件
+ finishTask(item){
+ item.state = '2'
+ item.routeRange = '\'' + item.routeRange + '\''
+ update(item).then(res=>{
+ if(res.code == 200){
+ this.page.currentPage = 1
+ this.getList()
+ }
+ })
+ },
+ //事件上报
+ goToEventsReported(){
+ uni.navigateTo({
+ url:"../taskinfo/eventsReported"
+ })
}
}
}
diff --git a/utils/func.js b/utils/func.js
index 435be48..2b7cb00 100644
--- a/utils/func.js
+++ b/utils/func.js
@@ -7,7 +7,8 @@
vm.$u.vuex('accessToken', userInfo.access_token)
vm.$u.vuex('isLogin', true)
uni.switchTab({
- url: '/pages/home/home'
+ // url: '/pages/home/home'
+ url:'/pages/service/service'
})
}
--
Gitblit v1.9.3