5 files modified
3 files added
| New file |
| | |
| | | import http from '@/http/api.js' |
| | | |
| | | |
| | | export const getDicList = (code) => { |
| | | return http.request({ |
| | | url: '/blade-system/dict-biz/dictionary', |
| | | method: 'get', |
| | | params: { |
| | | code |
| | | } |
| | | }) |
| | | } |
| New file |
| | |
| | | import http from '@/http/api.js' |
| | | |
| | | export const add = (row) => { |
| | | return http.request({ |
| | | url: '/eventgm/eventgm/submit', |
| | | method: 'post', |
| | | data: row |
| | | }) |
| | | } |
| | |
| | | } |
| | | }) |
| | | } |
| | | |
| | | export const update = (row) =>{ |
| | | return http.request({ |
| | | url:'/taskInfo/taskinfo/submit', |
| | | method:'POST', |
| | | data:row |
| | | }) |
| | | } |
| | |
| | | "delay" : 0 |
| | | }, |
| | | /* 模块配置 */ |
| | | "modules" : {}, |
| | | "modules" : { |
| | | "Geolocation" : {} |
| | | }, |
| | | /* 应用发布信息 */ |
| | | "distribute" : { |
| | | /* android打包配置 */ |
| | |
| | | "ios" : {}, |
| | | /* SDK配置 */ |
| | | "sdkConfigs" : { |
| | | "ad" : {} |
| | | "ad" : {}, |
| | | "geolocation" : { |
| | | "system" : { |
| | | "__platform__" : [ "ios", "android" ] |
| | | } |
| | | } |
| | | } |
| | | } |
| | | }, |
| | |
| | | "navigationBarTitleText": "任务列表", |
| | | "enablePullDownRefresh": false |
| | | } |
| | | |
| | | }, |
| | | { |
| | | "path": "pages/taskinfo/eventsReported", |
| | | "style": { |
| | | "navigationBarTitleText": "事件上报", |
| | | "enablePullDownRefresh": false |
| | | } |
| | | } |
| | | ], |
| | | "globalStyle": { |
| New file |
| | |
| | | <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> |
| | |
| | | </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> |
| | |
| | | |
| | | <script> |
| | | import { |
| | | getList |
| | | getList,update |
| | | } from "@/api/taskinfo/list.js"; |
| | | export default { |
| | | data() { |
| | |
| | | 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" |
| | | }) |
| | | } |
| | | } |
| | | } |
| | |
| | | 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' |
| | | }) |
| | | } |
| | | |