9 files modified
5 files added
| | |
| | | } |
| | | } |
| | | }, |
| | | watch: {}, |
| | | mounted() {}, |
| | | computed: { |
| | | socketValue() { |
| | | return this.$store.state.socketValue; |
| | | } |
| | | }, |
| | | watch: { |
| | | socketValue() { |
| | | console.log(this.socketValue); |
| | | let that = this; |
| | | if (that.socketValue.type === "start") { |
| | | console.log("任务开启") |
| | | this.$store.commit("addTask", this.socketValue.rid); |
| | | } else if (that.socketValue.type === "stop") { |
| | | console.log("任务结束") |
| | | this.$store.commit("stopTask", this.socketValue.rid); |
| | | } |
| | | } |
| | | }, |
| | | mounted() { |
| | | this.$store.dispatch("connectws"); |
| | | }, |
| | | onLaunch: function() { //初始化完成时触发(全局只触发一次) |
| | | console.log('第一次进入') |
| | | // Window.say = Window.console; |
| | |
| | | }, |
| | | methods: { |
| | | setUniAppMsg(data) { |
| | | // console.log(data) |
| | | // console.log(uni) |
| | | uni.postMessage({ |
| | | data: { |
| | | action: 'message' |
| | | } |
| | | }); |
| | | uni.getEnv(function(res) { |
| | | console.log('当前环境:' + JSON.stringify(res)); |
| | | }); |
| | | |
| | | window.parent.hBackMsg(data) |
| | | }, |
| | | openAPP(type) { |
| | | // console.log(type) |
| | |
| | | if (that.data.butCT == "beginUp") { |
| | | // 反馈 |
| | | uni.navigateTo({ |
| | | url: '/pages/grabOrders/feedback?data=' + JSON.stringify(this.data) |
| | | url: '/pages/grabOrders/feedback?data=' + JSON.stringify(this.data) + |
| | | '&other="11111"' |
| | | }); |
| | | } else if (that.data.butCT == "begin") { |
| | | // 开始任务 |
| | | this.setUniAppMsg({ |
| | | type: "begin", |
| | | data: that.data |
| | | type: "start", |
| | | data: { |
| | | id: that.data.id, |
| | | serid: that.data.serid |
| | | }, |
| | | fn: function(val) { |
| | | if(val == "success"){ |
| | | console.log("成功开启任务") |
| | | } |
| | | } |
| | | }) |
| | | } |
| | | } else { |
| | |
| | | } |
| | | //url解码 |
| | | this.data = this.getQueryVariable('data') || data; |
| | | if (this.data.team) { |
| | | console.log(this.data) |
| | | if (typeof this.data.team === "string") { |
| | | this.data.team = this.data.team.split(','); |
| | | } |
| | | console.log(this.data) |
| | | let lines = this.data.line |
| | | let position = lines.slice(lines.indexOf("(") + 1, lines.indexOf(",")).split(" "); |
| | | // console.log(position) |
| | |
| | | <template> |
| | | <view class="mapJQtijiao"> |
| | | <u-top-tips ref="uTips"></u-top-tips> |
| | | <!-- <view class="head"> |
| | | <u-navbar :is-fixed="false" :border-bottom="false" :is-back="false" title="" |
| | | :background="{ background: '#0cd7e5' }"> |
| | |
| | | upData() { |
| | | // console.log('开始上传'); |
| | | let video = "", |
| | | imgs = ""; |
| | | imgs = "", |
| | | that = this; |
| | | for (let k in this.imgs) { |
| | | imgs += this.imgs[k].src; |
| | | if (k != this.imgs.length - 1) { |
| | |
| | | serid: uni.getStorageSync("ids") |
| | | // result: this.content, |
| | | }; |
| | | // console.log(dataList) |
| | | // return; |
| | | let ds = { |
| | | |
| | | } |
| | | |
| | | wx.showLoading({ |
| | | title: "提交中...", |
| | | mask: true |
| | | }) |
| | | // console.log(dataList); |
| | | let d = { |
| | | rid: this.data.id, |
| | | serid: this.data.serid, |
| | | type: "stop", |
| | | that: that |
| | | } |
| | | that.$store.commit('useWebScoketApi', d); |
| | | wx.request({ |
| | | url: this.$store.state.piAPI + 'taskfk/save', //仅为示例,并非真实接口地址。 |
| | | data: dataList, |
| | |
| | | clearTimeout(time); |
| | | time = null; |
| | | uni.redirectTo({ |
| | | url: './grabOrders' |
| | | url: './grabOrders?from="feedback"' |
| | | }); |
| | | }, 1000) |
| | | } |
| | |
| | | }); |
| | | } |
| | | }); |
| | | |
| | | }, |
| | | takePhoto() { |
| | | var that = this; |
| | |
| | | <template> |
| | | <view class="grabOrders"> |
| | | <view> |
| | | <u-tabs-swiper |
| | | ref="uTabs" |
| | | :list="list" |
| | | :current="current" |
| | | @change="tabsChange" |
| | | :is-scroll="false" |
| | | swiperWidth="750" |
| | | ></u-tabs-swiper> |
| | | </view> |
| | | <!-- @animationfinish="animationfinish" --> |
| | | <swiper |
| | | :current="swiperCurrent" |
| | | @transition="transition" |
| | | @animationfinish="animationfinish" |
| | | :style="{height: 'calc(' + useHeight+' - 40px)', width: '100%'}" |
| | | > |
| | | <swiper-item |
| | | class="swiper-item" |
| | | v-for="(item, index) in list" |
| | | :key="index" |
| | | :style="{height: useHeight, width: '100%'}" |
| | | > |
| | | <scroll-view |
| | | scroll-y |
| | | :style="{height: useHeight, width: '100%'}" |
| | | @scrolltolower="onreachBottom" |
| | | > |
| | | <page0 |
| | | :listData="leftdata" |
| | | :swiperCurrent="0" |
| | | v-if="item.name == '正在进行'" |
| | | @openOnce="openOnce" |
| | | @getOrders="getOrders" |
| | | ></page0> |
| | | <page1 |
| | | :listData="rightdata" |
| | | :swiperCurrent="1" |
| | | v-if="item.name == '可参与'" |
| | | @openOnce="openOnce" |
| | | @getOrders="getOrders" |
| | | ></page1> |
| | | <view class="grabOrders"> |
| | | <u-top-tips ref="uTips"></u-top-tips> |
| | | <view> |
| | | <u-tabs-swiper ref="uTabs" :list="list" :current="current" @change="tabsChange" :is-scroll="false" |
| | | swiperWidth="750"></u-tabs-swiper> |
| | | </view> |
| | | <!-- @animationfinish="animationfinish" --> |
| | | <swiper :current="swiperCurrent" @transition="transition" @animationfinish="animationfinish" |
| | | :style="{ height: 'calc(' + useHeight + ' - 40px)', width: '100%' }"> |
| | | <swiper-item class="swiper-item" v-for="(item, index) in list" :key="index" |
| | | :style="{ height: useHeight, width: '100%' }"> |
| | | <scroll-view scroll-y :style="{ height: useHeight, width: '100%' }" @scrolltolower="onreachBottom"> |
| | | <page0 :listData="leftdata" :swiperCurrent="0" v-if="item.name == '正在进行'" @openOnce="openOnce" |
| | | @getOrders="getOrders"></page0> |
| | | <page1 :listData="rightdata" :swiperCurrent="1" v-if="item.name == '可参与'" @openOnce="openOnce" |
| | | @getOrders="getOrders"></page1> |
| | | |
| | | <!-- <view class="a" v-if="item.name == '正在进行'"> |
| | | <!-- <view class="a" v-if="item.name == '正在进行'"> |
| | | {{leftdata}} |
| | | </view> |
| | | <view class="b" v-if="item.name == '可参与'"> |
| | | {{rightdata}} |
| | | </view>--> |
| | | </scroll-view> |
| | | </swiper-item> |
| | | </swiper> |
| | | <view> |
| | | <u-modal |
| | | v-model="showPopup" |
| | | :content="appdetitle" |
| | | :show-cancel-button="true" |
| | | @confirm="confirms" |
| | | ></u-modal> |
| | | <!-- <u-button @click="open"> |
| | | </scroll-view> |
| | | </swiper-item> |
| | | </swiper> |
| | | <view> |
| | | <u-modal v-model="showPopup" :content="appdetitle" :show-cancel-button="true" @confirm="confirms"></u-modal> |
| | | <!-- <u-button @click="open"> |
| | | 打开模态框 |
| | | </u-button>--> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </template> |
| | | <script> |
| | | import page0 from "./inPage/page0.vue" |
| | | import page1 from "./inPage/page1.vue" |
| | | export default { |
| | | components: { |
| | | page0, |
| | | page1, |
| | | }, |
| | | data () { |
| | | return { |
| | | list: [{ |
| | | name: "正在进行", |
| | | }, |
| | | { |
| | | name: "可参与", |
| | | }, |
| | | ], |
| | | // 因为内部的滑动机制限制,请将tabs组件和swiper组件的current用不同变量赋值 |
| | | current: 0, // tabs组件的current值,表示当前活动的tab选项 |
| | | swiperCurrent: 0, // swiper组件的current值,表示当前那个swiper-item是活动的 |
| | | leftdata: [], |
| | | rightdata: [], |
| | | showPopup: false, |
| | | appdetitle: "", |
| | | popupData: {}, |
| | | useHeight: '100%' |
| | | } |
| | | }, |
| | | watch: { |
| | | current () { |
| | | // console.log(this.current) |
| | | this.getGrabOrders(this.current) |
| | | }, |
| | | change () { |
| | | this.getGrabOrders(this.current) |
| | | }, |
| | | }, |
| | | mounted () { |
| | | // this.getGrabOrders(this.current); |
| | | let type = uni.getSystemInfoSync().platform |
| | | if (type == "android") { |
| | | this.useHeight = "100vh" |
| | | } |
| | | }, |
| | | computed: { |
| | | change () { |
| | | return this.$store.state.gotuGrabOrders |
| | | }, |
| | | }, |
| | | onLoad: function (options) { |
| | | // debugger |
| | | // console.log(options) |
| | | if (options.detailData == 0) { |
| | | this.current = 0 |
| | | this.swiperCurrent = 0 |
| | | } else { |
| | | this.current = 1 |
| | | this.swiperCurrent = 1 |
| | | } |
| | | this.getGrabOrders(this.current) |
| | | }, |
| | | methods: { |
| | | // tabs通知swiper切换 |
| | | tabsChange (index) { |
| | | this.swiperCurrent = index |
| | | }, |
| | | // swiper-item左右移动,通知tabs的滑块跟随移动 |
| | | transition (e) { |
| | | let dx = e.detail.dx |
| | | this.$refs.uTabs.setDx(dx) |
| | | }, |
| | | // 由于swiper的内部机制问题,快速切换swiper不会触发dx的连续变化,需要在结束时重置状态 |
| | | // swiper滑动结束,分别设置tabs和swiper的状态 |
| | | animationfinish (e) { |
| | | let current = e.detail.current |
| | | this.$refs.uTabs.setFinishCurrent(current) |
| | | this.swiperCurrent = current |
| | | this.current = current |
| | | }, |
| | | // scroll-view到底部加载更多 |
| | | onreachBottom () { }, |
| | | openOnce (val) { |
| | | //打开地图 |
| | | // console.log(this.swiperCurrent) |
| | | val["buttype"] = this.swiperCurrent //tab标识,0正在进行,1可参与 |
| | | val["serid"] = uni.getStorageSync("ids") + "," |
| | | val["appenUrl"] = this.$store.state.piAPI |
| | | //打开地图 |
| | | import page0 from "./inPage/page0.vue"; |
| | | import page1 from "./inPage/page1.vue"; |
| | | export default { |
| | | components: { |
| | | page0, |
| | | page1, |
| | | }, |
| | | data() { |
| | | return { |
| | | list: [{ |
| | | name: "正在进行", |
| | | }, |
| | | { |
| | | name: "可参与", |
| | | }, |
| | | ], |
| | | // 因为内部的滑动机制限制,请将tabs组件和swiper组件的current用不同变量赋值 |
| | | current: 0, // tabs组件的current值,表示当前活动的tab选项 |
| | | swiperCurrent: 0, // swiper组件的current值,表示当前那个swiper-item是活动的 |
| | | leftdata: [], |
| | | rightdata: [], |
| | | showPopup: false, |
| | | appdetitle: "", |
| | | popupData: {}, |
| | | useHeight: "100%", |
| | | }; |
| | | }, |
| | | watch: { |
| | | current() { |
| | | // console.log(this.current) |
| | | this.getGrabOrders(this.current); |
| | | }, |
| | | change() { |
| | | this.getGrabOrders(this.current); |
| | | }, |
| | | |
| | | if (val.iscation == 1) { |
| | | if (val.type == 0) { |
| | | //是队长-上传反馈 |
| | | val["butCT"] = "beginUp" |
| | | } else if (val.type == 2) { |
| | | //是队长-开始任务 |
| | | val["butCT"] = "begin" |
| | | } else { |
| | | //是队长-完成任务任务 |
| | | val["butCT"] = "over" |
| | | } |
| | | } else { |
| | | if (val.type == 0) { |
| | | //不是队长-上传反馈 |
| | | val["butCT"] = "over" |
| | | } else if (val.type == 2) { |
| | | //不是队长-开始任务 |
| | | val["butCT"] = "over" |
| | | } else { |
| | | //不是队长-完成任务任务 |
| | | val["butCT"] = "over" |
| | | } |
| | | } |
| | | console.log(val) |
| | | // return |
| | | uni.navigateTo({ |
| | | url: "./map?data=" + JSON.stringify(val), |
| | | }) |
| | | }, |
| | | getGrabOrders (val = 0) { |
| | | //获取全部的数据 |
| | | let that = this, |
| | | d = { |
| | | serid: uni.getStorageSync("ids"), |
| | | type: val + "", |
| | | } |
| | | }, |
| | | mounted() { |
| | | // this.getGrabOrders(this.current); |
| | | let type = uni.getSystemInfoSync().platform; |
| | | if (type == "android") { |
| | | this.useHeight = "100vh"; |
| | | } |
| | | }, |
| | | computed: { |
| | | change() { |
| | | return this.$store.state.gotuGrabOrders; |
| | | }, |
| | | }, |
| | | onLoad: function(options) { |
| | | // debugger |
| | | // console.log(options) |
| | | if (options.detailData == 0) { |
| | | this.current = 0; |
| | | this.swiperCurrent = 0; |
| | | } else { |
| | | this.current = 1; |
| | | this.swiperCurrent = 1; |
| | | } |
| | | this.getGrabOrders(this.current); |
| | | |
| | | if (val == 1) { |
| | | d.jurisdiction = this.$store.state.UserData.jurisdiction |
| | | } |
| | | if (options.from == "feedback") { |
| | | that.useWebScoketApi(item.id, item.serid, "stop"); |
| | | } |
| | | }, |
| | | methods: { |
| | | //实时位置传递 |
| | | setNowposition(rid, jd, wd) { |
| | | console.log(uni.getStorageSync("ids"), rid, jd, wd); |
| | | }, |
| | | // tabs通知swiper切换 |
| | | tabsChange(index) { |
| | | this.swiperCurrent = index; |
| | | }, |
| | | // swiper-item左右移动,通知tabs的滑块跟随移动 |
| | | transition(e) { |
| | | let dx = e.detail.dx; |
| | | this.$refs.uTabs.setDx(dx); |
| | | }, |
| | | // 由于swiper的内部机制问题,快速切换swiper不会触发dx的连续变化,需要在结束时重置状态 |
| | | // swiper滑动结束,分别设置tabs和swiper的状态 |
| | | animationfinish(e) { |
| | | let current = e.detail.current; |
| | | this.$refs.uTabs.setFinishCurrent(current); |
| | | this.swiperCurrent = current; |
| | | this.current = current; |
| | | }, |
| | | // scroll-view到底部加载更多 |
| | | onreachBottom() {}, |
| | | openOnce(val) { |
| | | //打开地图 |
| | | // console.log(this.swiperCurrent) |
| | | val["buttype"] = this.swiperCurrent; //tab标识,0正在进行,1可参与 |
| | | val["serid"] = uni.getStorageSync("ids") + ","; |
| | | val["appenUrl"] = this.$store.state.piAPI; |
| | | //打开地图 |
| | | |
| | | uni.request({ |
| | | url: this.$store.state.piAPI + "taskqd/selectLi", |
| | | method: "POST", |
| | | data: d, |
| | | header: { |
| | | "content-type": "application/x-www-form-urlencoded", |
| | | }, |
| | | success (res) { |
| | | const data = res.data.data |
| | | // console.log(data); |
| | | if (val == 1) { |
| | | that.rightdata = data |
| | | } else { |
| | | let no = [], |
| | | ok = [], |
| | | bigin = [], |
| | | no1 = [], |
| | | ok1 = [], |
| | | bigin1 = [] |
| | | for (var k in data) { |
| | | if (data[k].iscation == 1) { |
| | | if (data[k].type == 0) { |
| | | //是队长-上传反馈 |
| | | no1.push(data[k]) |
| | | } else if (data[k].type == 2) { |
| | | //是队长-开始任务 |
| | | bigin1.push(data[k]) //是队长-上传反馈 |
| | | } else { |
| | | //是队长-完成任务任务 |
| | | ok1.push(data[k]) |
| | | } |
| | | } else { |
| | | if (data[k].type == 0) { |
| | | //不是队长-上传反馈 |
| | | no.push(data[k]) |
| | | } else if (data[k].type == 2) { |
| | | //不是队长-开始任务 |
| | | bigin.push(data[k]) |
| | | } else { |
| | | //不是队长-完成任务任务 |
| | | ok.push(data[k]) |
| | | } |
| | | } |
| | | } |
| | | if (val.iscation == 1) { |
| | | if (val.type == 0) { |
| | | //是队长-上传反馈 |
| | | val["butCT"] = "beginUp"; |
| | | } else if (val.type == 2) { |
| | | //是队长-开始任务 |
| | | val["butCT"] = "begin"; |
| | | } else { |
| | | //是队长-完成任务任务 |
| | | val["butCT"] = "over"; |
| | | } |
| | | } else { |
| | | if (val.type == 0) { |
| | | //不是队长-上传反馈 |
| | | val["butCT"] = "over"; |
| | | } else if (val.type == 2) { |
| | | //不是队长-开始任务 |
| | | val["butCT"] = "over"; |
| | | } else { |
| | | //不是队长-完成任务任务 |
| | | val["butCT"] = "over"; |
| | | } |
| | | } |
| | | console.log(val); |
| | | // return |
| | | uni.navigateTo({ |
| | | url: "./map?data=" + JSON.stringify(val), |
| | | }); |
| | | }, |
| | | getGrabOrders(val = 0) { |
| | | //获取全部的数据 |
| | | let that = this, |
| | | d = { |
| | | serid: uni.getStorageSync("ids"), |
| | | type: val + "", |
| | | }; |
| | | |
| | | that.leftdata = [...bigin1, ...bigin, ...no1, ...no, ...ok1, ...ok] |
| | | } |
| | | }, |
| | | }) |
| | | }, |
| | | getOrders (b) { |
| | | let val = b.val, |
| | | item = b.item |
| | | // console.log(val, item) |
| | | let that = this |
| | | if (val != 0) { |
| | | //接单 |
| | | this.appdetitle = "是否参与任务:" + item.rname |
| | | this.showPopup = true |
| | | this.popupData = item |
| | | // return; |
| | | } else { |
| | | //反馈 |
| | | // |
| | | uni.navigateTo({ |
| | | url: "./feedback?data=" + JSON.stringify(item), |
| | | // url: "./feedback" |
| | | }) |
| | | } |
| | | }, |
| | | confirms () { |
| | | let that = this |
| | | this.popupData["serid"] = uni.getStorageSync("ids") + "," |
| | | this.popupData["captain"] = uni.getStorageSync("name") |
| | | // console.log(item) |
| | | // return; |
| | | uni.request({ |
| | | url: this.$store.state.piAPI + "taskqd/Graborder", |
| | | method: "POST", |
| | | // data: { |
| | | // securityId: this.$store.state.puserID, |
| | | // status: tab |
| | | // }, |
| | | header: { |
| | | "content-type": "application/json", |
| | | }, |
| | | data: this.popupData, |
| | | success (res) { |
| | | const data = res.data.msg |
| | | // console.log(data); |
| | | if (data == "抢单成功") { |
| | | uni.showToast({ |
| | | title: data, |
| | | duration: 2000, |
| | | }) |
| | | } |
| | | // that.listData = data; |
| | | // that.getGrabOrders(this.); |
| | | that.$store.commit("changegotuGrabOrders") |
| | | }, |
| | | }) |
| | | }, |
| | | }, |
| | | }; |
| | | if (val == 1) { |
| | | d.jurisdiction = this.$store.state.UserData.jurisdiction; |
| | | } |
| | | |
| | | uni.request({ |
| | | url: this.$store.state.piAPI + "taskqd/selectLi", |
| | | method: "POST", |
| | | data: d, |
| | | header: { |
| | | "content-type": "application/x-www-form-urlencoded", |
| | | }, |
| | | success(res) { |
| | | const data = res.data.data; |
| | | // console.log(data); |
| | | if (val == 1) { |
| | | that.rightdata = data; |
| | | } else { |
| | | let no = [], |
| | | ok = [], |
| | | begin = [], |
| | | no1 = [], |
| | | ok1 = [], |
| | | begin1 = []; |
| | | for (var k in data) { |
| | | data[k].type = data[k].rtype; |
| | | if (data[k].iscation == 1) { |
| | | if (data[k].type == 0) { |
| | | //是队长-上传反馈 |
| | | no1.push(data[k]); |
| | | } else if (data[k].type == 2) { |
| | | //是队长-开始任务 |
| | | begin1.push(data[k]); //是队长-上传反馈 |
| | | } else { |
| | | //是队长-完成任务任务 |
| | | ok1.push(data[k]); |
| | | } |
| | | } else { |
| | | if (data[k].type == 0) { |
| | | //不是队长-上传反馈 |
| | | no.push(data[k]); |
| | | } else if (data[k].type == 2) { |
| | | //不是队长-开始任务 |
| | | begin.push(data[k]); |
| | | } else { |
| | | //不是队长-完成任务任务 |
| | | ok.push(data[k]); |
| | | } |
| | | } |
| | | } |
| | | |
| | | that.leftdata = [...begin1, ...begin, ...no1, ...no, ...ok1, ...ok]; |
| | | // console.log(that.leftdata) |
| | | // for (let k in begin) { |
| | | // let id = begin[k].id; |
| | | // that.isBeginTask[id] = { |
| | | // id: id, |
| | | // // position: that.createPosition(id) |
| | | // } |
| | | // } |
| | | // for (let k in begin1) { |
| | | // let id = begin1[k].id; |
| | | // that.isBeginTask[id] = { |
| | | // id: id, |
| | | // // position: that.createPosition(id) |
| | | // } |
| | | // } |
| | | // for (let k in no1) { |
| | | // let id = no1[k].id; |
| | | // that.$store.commit("addTask", id) |
| | | // } |
| | | // for (let k in no) { |
| | | // let id = no[k].id; |
| | | // that.$store.commit("addTask", id) |
| | | // } |
| | | // that.isOnTask[44].position.continuedTime(); |
| | | } |
| | | }, |
| | | }); |
| | | }, |
| | | createPosition(id) { |
| | | return new $getPositions({ |
| | | id: id, |
| | | fn: function(res) { |
| | | console.log(res); |
| | | // that.setNowposition(re) |
| | | } |
| | | }) |
| | | }, |
| | | // tips(type, title) { |
| | | // this.$refs.uTips.show({ |
| | | // title: title, |
| | | // type: type, |
| | | // duration: '2300' |
| | | // }) |
| | | // this.getGrabOrders(this.current); //重获取数据 |
| | | // }, |
| | | // useWebScoketApi(rid, serid, type) { |
| | | // let that = this; |
| | | // uni.request({ |
| | | // url: this.$store.state.piAPI + "taskqd/startTask?" + `rid=${rid}&serid=${serid}&type=${type}`, |
| | | // method: "GET", |
| | | // success(res) { |
| | | // let type = res.data.data.type; |
| | | // if (type == 'start') { //开启成功 |
| | | // that.tips('success', '开启任务成功') |
| | | // return; |
| | | // } |
| | | // if (type == 'stop') { //开启成功 |
| | | // that.tips('success', '反馈任务成功') |
| | | // return; |
| | | // } |
| | | // }, |
| | | // }); |
| | | // }, |
| | | getOrders(b) { |
| | | let val = b.val, |
| | | item = b.item, |
| | | that = this; |
| | | console.log(val, item) |
| | | |
| | | if (val == 0) { //正在进行 |
| | | if (item.type == "2") { //开始任务按钮 |
| | | // that.useWebScoketApi(item.id, item.serid, "start"); |
| | | let d = { |
| | | rid: item.id, |
| | | serid: item.serid, |
| | | type: "start", |
| | | that: that, |
| | | fn: () => { |
| | | that.getGrabOrders(that.current); //重获取数据 |
| | | } |
| | | } |
| | | that.$store.commit('useWebScoketApi', d); |
| | | } |
| | | if (item.type == "0") { //上传反馈 |
| | | //反馈 |
| | | uni.navigateTo({ |
| | | url: "./feedback?data=" + JSON.stringify(item), |
| | | // url: "./feedback" |
| | | }); |
| | | } |
| | | } else { //可参与 |
| | | //接单 |
| | | this.appdetitle = "是否参与任务:" + item.rname; |
| | | this.showPopup = true; |
| | | this.popupData = item; |
| | | } |
| | | }, |
| | | confirms() { |
| | | let that = this; |
| | | this.popupData["serid"] = uni.getStorageSync("ids") + ","; |
| | | this.popupData["captain"] = uni.getStorageSync("name"); |
| | | // console.log(item) |
| | | // return; |
| | | uni.request({ |
| | | url: this.$store.state.piAPI + "taskqd/Graborder", |
| | | method: "POST", |
| | | // data: { |
| | | // securityId: this.$store.state.puserID, |
| | | // status: tab |
| | | // }, |
| | | header: { |
| | | "content-type": "application/json", |
| | | }, |
| | | data: this.popupData, |
| | | success(res) { |
| | | const data = res.data.msg; |
| | | // console.log(data); |
| | | if (data == "抢单成功") { |
| | | uni.showToast({ |
| | | title: data, |
| | | duration: 2000, |
| | | }); |
| | | } |
| | | // that.listData = data; |
| | | // that.getGrabOrders(this.); |
| | | that.current = 0; |
| | | that.swiperCurrent = 0; |
| | | that.$store.commit("changegotuGrabOrders"); |
| | | |
| | | }, |
| | | }); |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style scoped lang="scss"> |
| | | page, |
| | | .grabOrders { |
| | | height: 100% !important; |
| | | width: 100% !important; |
| | | } |
| | | page, |
| | | .grabOrders { |
| | | height: 100% !important; |
| | | width: 100% !important; |
| | | } |
| | | |
| | | page { |
| | | overflow: hidden !important; |
| | | } |
| | | page { |
| | | overflow: hidden !important; |
| | | } |
| | | |
| | | // .uni-scroll-view{ |
| | | // height: 100% !important; |
| | | // border: 1px solid red |
| | | // } |
| | | // .uni-scroll-view{ |
| | | // height: 100% !important; |
| | | // border: 1px solid red |
| | | // } |
| | | </style> |
| | |
| | | </view> |
| | | </view> |
| | | <view class="onve-right"> |
| | | <u-button :class="[swiperCurrent == 0?'orange':'green',item.type == 0?'greens':'']" size="mini" :disabled="true" |
| | | <u-button :class="[item.type == 1?'':item.type == 0?'blues':'greens']" size="mini" :disabled="true" |
| | | v-if="item.iscation == 0" @click="getOrders(swiperCurrent,item)"> |
| | | <span class="Cation notCation">队员</span>{{item.type == 1?"完成反馈":item.type == 0?"正在进行":"还未开始"}} |
| | | </u-button> |
| | | <u-button :class="[swiperCurrent == 0?'orange':'green']" size="mini" :disabled="item.type == 1" |
| | | v-if="item.iscation == 1" @click="getOrders(swiperCurrent,item)"> |
| | | <u-button :class="[item.type == 1?'':item.type == 0?'blues':'greens']" size="mini" |
| | | :disabled="item.type == 1" v-if="item.iscation == 1" @click="getOrders(swiperCurrent,item)"> |
| | | <span class="Cation">队长</span>{{item.type == 1?"完成反馈":item.type == 0?"上传反馈":"开始任务"}} |
| | | </u-button> |
| | | <view class="o-r-$"> |
| | |
| | | } |
| | | |
| | | .orange { |
| | | color: orange; |
| | | color: #FF7B15; |
| | | } |
| | | |
| | | .green { |
| | | color: #00e713; |
| | | } |
| | | |
| | | .greens { |
| | | color: #18a655 !important; |
| | | } |
| | | |
| | | .blues { |
| | | color: #2680F0 !important; |
| | | } |
| | | |
| | | .Cation { |
| | | display: inline-block; |
| | | position: absolute; |
| New file |
| | |
| | | <template> |
| | | <view class="content"> |
| | | <web-view :src="urls" @message="message"></web-view> |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | data() { |
| | | return { |
| | | urls: '', |
| | | // dataList: [], |
| | | } |
| | | }, |
| | | methods: { |
| | | message(event) { |
| | | console.log(event.detail.data) |
| | | } |
| | | }, |
| | | mounted() {}, |
| | | onLoad: function(options) { |
| | | var data = []; |
| | | // console.log(options.data); |
| | | if (options.data == undefined) { |
| | | data = JSON.stringify({ |
| | | appenUrl: "http://192.168.0.108:83/", |
| | | butCT: "begin", |
| | | buttype: 0, |
| | | captain: "我", |
| | | city: "南昌市", |
| | | content: "测试", |
| | | district: "西湖区", |
| | | id: 37, |
| | | integral: "222", |
| | | iscation: "1", |
| | | jnum: 3, |
| | | line: "LINESTRING(115.8995839881188 28.687205773173343,115.89391916267935 28.678966027079593,115.90404718391959 28.673644524394046,115.91211526863638 28.681369286356936)", |
| | | num: 1, |
| | | nums: 0, |
| | | province: "江西省", |
| | | publisher: "管理", |
| | | raddress: null, |
| | | rname: "测试1", |
| | | rtype: "0", |
| | | serid: "1123598821738675201,", |
| | | team: "你,他,它", |
| | | time: "2022-02-18 14:15:52", |
| | | type: "2", |
| | | url: "http://223.82.109.183:2081/zhba/upload/20220218/67f0c8bf3e7b5024c64133691f265072.ico", |
| | | }) |
| | | |
| | | } else { |
| | | data = options.data; |
| | | } |
| | | // console.log(data); |
| | | // return |
| | | // console.log(options.html) |
| | | // var a = options.html != undefined ? options.html : "xcxMapJQ/xcxmap.html"; |
| | | // console.log(a) |
| | | // let a = "grabOrdersMap/xcxmap.html"; |
| | | // this.urls = "http://223.82.109.183:2082/" + a + "?data=" + data; |
| | | let name = 1; //1是本地 2是服务器 |
| | | // let name = 1; |
| | | let b = this.$store.state.piAPI; |
| | | if (b == '/api') { |
| | | name = 1; |
| | | } |
| | | let a = name == 1 ? "http://127.0.0.1:8848/qfqk-android/leafletMapOur/" : b.slice(0, b.indexOf('api')); |
| | | // this.urls = a + "grabOrdersMap/xcxmap.html?data=" + data; |
| | | // a = a.slice(0, a.indexOf('api')); |
| | | this.urls = a + "grabOrdersMap/xcxmap.html?data=" + data; |
| | | // http://127.0.0.1:8848/qfqk-android/grabOrdersMap/xcxmap.html |
| | | // this.dataList = data; |
| | | // console.log(this.urls); |
| | | }, |
| | | beforeDestroy() { |
| | | this.$store.commit("changegotuGrabOrders"); |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style> |
| | | </style> |
| | |
| | | <template> |
| | | <view class="content"> |
| | | <u-top-tips ref="uTips"></u-top-tips> |
| | | <web-view :src="urls"></web-view> |
| | | </view> |
| | | </template> |
| | |
| | | // dataList: [], |
| | | } |
| | | }, |
| | | methods: {}, |
| | | methods: { |
| | | |
| | | }, |
| | | mounted() {}, |
| | | onReady() { |
| | | let that = this; |
| | | window.hBackMsg = (val) => { |
| | | let d = { |
| | | rid: val.data.id, |
| | | serid: val.data.serid, |
| | | type: val.type, |
| | | that: that, |
| | | fn: () => { |
| | | // that.getGrabOrders(that.current); //重获取数据 |
| | | val.fn(); |
| | | } |
| | | } |
| | | that.$store.commit('useWebScoketApi', d); |
| | | } |
| | | }, |
| | | onLoad: function(options) { |
| | | var data = []; |
| | | // console.log(options.data); |
| | | if (options.data == undefined) { |
| | | data = |
| | | '{"id":7,"rname":"无数据","content":"无数据","time":"2021-11-02 16:31:47","province":"江西省","city":"南昌市","district":"青山湖区","jnum":2,"line":"LINESTRING(115.95983713142935 28.674674492655765,115.96086709969107 28.7012820060835,115.97254007332388 28.701625328837405,115.97305505745474 28.68875072556592,115.96704690926138 28.68274257737256,115.96739023201529 28.674674492655765,115.9600087928063 28.674846154032718,115.95983713142935 28.674846154032718)","raddress":null,"rtype":"0","serid":"1416311615662448641,1123598821738675201","num":2,"integral":"100","url":"http://223.82.109.183:2081/zhba/upload/20211102/7050fe68e5d1e9921a3e93329996a943.png","current":0,"buttype":0}' |
| | | data = JSON.stringify({ |
| | | appenUrl: "http://192.168.0.108:83/", |
| | | butCT: "begin", |
| | | buttype: 0, |
| | | captain: "我", |
| | | city: "南昌市", |
| | | content: "测试", |
| | | district: "西湖区", |
| | | id: 37, |
| | | integral: "222", |
| | | iscation: "1", |
| | | jnum: 3, |
| | | line: "LINESTRING(115.8995839881188 28.687205773173343,115.89391916267935 28.678966027079593,115.90404718391959 28.673644524394046,115.91211526863638 28.681369286356936)", |
| | | num: 1, |
| | | nums: 0, |
| | | province: "江西省", |
| | | publisher: "管理", |
| | | raddress: null, |
| | | rname: "测试1", |
| | | rtype: "0", |
| | | serid: "1123598821738675201,", |
| | | team: "你,他,它", |
| | | time: "2022-02-18 14:15:52", |
| | | type: "2", |
| | | url: "http://223.82.109.183:2081/zhba/upload/20220218/67f0c8bf3e7b5024c64133691f265072.ico", |
| | | }) |
| | | |
| | | } else { |
| | | data = options.data; |
| | | } |
| | |
| | | let name = 2; //1是本地 2是服务器 |
| | | // let name = 1; |
| | | let b = this.$store.state.piAPI; |
| | | if( b == '/api'){ |
| | | if (b == '/api') { |
| | | name = 1; |
| | | } |
| | | let a = name == 1 ? "http://127.0.0.1:8848/qfqk-android/leafletMapOur/" :b.slice(0, b.indexOf('api')); |
| | | let a = name == 1 ? "http://127.0.0.1:8848/qfqk-android/leafletMapOur/" : b.slice(0, b.indexOf('api')); |
| | | // this.urls = a + "grabOrdersMap/xcxmap.html?data=" + data; |
| | | // a = a.slice(0, a.indexOf('api')); |
| | | this.urls = a + "grabOrdersMap/xcxmap.html?data=" + data; |
| | |
| | | </script> |
| | | |
| | | <style> |
| | | .content { |
| | | flex: 1; |
| | | height: 100%; |
| | | } |
| | | </style> |
| | |
| | | import md5 from 'js-md5' |
| | | import axios from 'axios' |
| | | |
| | | import websocket from "./websocket.js" |
| | | import positions from "./positions.js" |
| | | const actions = { |
| | | loging(store, data) { |
| | | var user = [{ |
| | |
| | | // // dataType: 'JSON', |
| | | success: (res) => { |
| | | if (res.statusCode == 200) { |
| | | if(res.data.error_code == "400"){ |
| | | if (res.data.error_code == "400") { |
| | | uni.hideNavigationBarLoading(); |
| | | uni.showToast({ |
| | | title: '密码错误,请重试', |
| | | icon:'none', |
| | | icon: 'none', |
| | | duration: 2000 |
| | | }); |
| | | return; |
| | | } |
| | | store.commit('getUserData',res.data) |
| | | store.commit('getUserData', res.data) |
| | | // console.log(res.data,123542); |
| | | data.isit = true; |
| | | data.userName = res.data.nick_name; //警袁姓名 |
| | |
| | | data.pass = data.pass; |
| | | // data.userPhon = res.user_id; |
| | | store.commit('login', data); |
| | | |
| | | } |
| | | |
| | | } |
| | | }, |
| | | fail: (res) => { |
| | | console.log('失去连接 请稍等'); |
| | |
| | | // store.commit('login', data); |
| | | // }, 2000) |
| | | |
| | | } |
| | | }, |
| | | ...websocket.actions, |
| | | ...positions.actions |
| | | } |
| | | |
| | | export default actions |
| New file |
| | |
| | | class $getPositions { |
| | | constructor(arg) { |
| | | this.id = arg.id || 0; //任务id |
| | | this.fn = arg.fn ? function(data) { |
| | | arg.fn(data); |
| | | } : function(data) { |
| | | console.log("未设置输出回调") |
| | | return data; |
| | | }; |
| | | this.ourPosition = []; //全部位置 |
| | | this.nowPosition = []; //当前位置 |
| | | this.onceNowPosition = []; //当前一次位置 |
| | | this.getOnceSPosition = null; |
| | | this.state = false; |
| | | this.isContinued = false; |
| | | this.isContinuedTimeInt = null; |
| | | this.isContinuedTimeOut = null; |
| | | return this; |
| | | } |
| | | //开始获取 |
| | | init() { |
| | | //判断权限 |
| | | return this; |
| | | |
| | | } |
| | | continued() { |
| | | //开始持续获取定位 |
| | | console.log("开始持续定位") |
| | | let that = this; |
| | | this.isContinued = true; |
| | | if (this.isContinuedTimeInt) { |
| | | console.log("重复开始持续定位") |
| | | return; |
| | | } else { |
| | | that.once(function(res) { |
| | | if (res.state == false) { |
| | | console.log(res.intlat) |
| | | } |
| | | }) |
| | | this.isContinuedTimeInt = setInterval(() => { |
| | | that.once(function(res) { |
| | | if (res.state == false) { |
| | | console.log(res.intlat) |
| | | } |
| | | }) |
| | | }, 5000) |
| | | } |
| | | } |
| | | continuedTime(val) { |
| | | //开始持续获取定位 |
| | | let that = this; |
| | | if (val != 1) { |
| | | // console.log(that.id,"开始持续定位") |
| | | this.isContinued = true; |
| | | that.once(function(res) { |
| | | if (res.state == false) { |
| | | // console.log(res.intlat) |
| | | that.outData(); |
| | | } |
| | | }) |
| | | if (this.isContinuedTimeOut) { |
| | | // console.log("重复开始持续定位") |
| | | return; |
| | | } |
| | | } |
| | | this.isContinuedTimeOut = setTimeout(() => { |
| | | that.once(function(res) { |
| | | if (res.state == false) { |
| | | // console.log(res.intlat) |
| | | that.outData(); |
| | | if (res.ok) { |
| | | //返回成功 |
| | | that.continuedTime(1); |
| | | } else { |
| | | //返回失败 |
| | | that.continuedTime(1); |
| | | } |
| | | } |
| | | }) |
| | | }, 3000) |
| | | |
| | | } |
| | | overContinued() { |
| | | // console.log("结束持续定位") |
| | | let that = this; |
| | | if (this.isContinued) { |
| | | this.isContinued = false; |
| | | if (this.isContinuedTimeInt) { |
| | | clearInterval(that.isContinuedTimeInt); |
| | | this.isContinuedTimeInt = null; |
| | | } |
| | | if (this.isContinuedTimeOut) { |
| | | clearTimeout(that.isContinuedTimeOut); |
| | | this.isContinuedTimeOut = null; |
| | | } |
| | | } |
| | | this.isContinued = false; |
| | | that.outData('out'); |
| | | } |
| | | once(fn) { |
| | | // console.log("开始获取一次定位"); |
| | | this.state = true; |
| | | let ok = true; |
| | | let that = this, |
| | | fns = fn || '', |
| | | outit = function() { |
| | | if (fns) { |
| | | fns({ |
| | | state: that.state, |
| | | intlat: that.onceNowPosition, |
| | | ok: ok |
| | | }) |
| | | } else { |
| | | that.outData(); |
| | | } |
| | | }; |
| | | outit(); |
| | | let success = function(position) { |
| | | // console.log(position); |
| | | var lat = position.coords.latitude; |
| | | var lon = position.coords.longitude; |
| | | // console.log("成功返回经纬度信息"); |
| | | // console.log(lon, lat, "成功"); |
| | | that.onceNowPosition = [lat, lon]; |
| | | that.state = false; |
| | | ok = true; |
| | | outit(); |
| | | }; |
| | | let error = function(error) { |
| | | // console.log(error, "失败"); |
| | | let msg = "none"; |
| | | switch (error.code) { |
| | | case error.PERMISSION_DENIED: |
| | | msg = "User denied the request for Geolocation."; |
| | | break; |
| | | case error.POSITION_UNAVAILABLE: |
| | | msg = "Location information is unavailable."; |
| | | break; |
| | | case error.TIMEOUT: |
| | | msg = "The request to get user location timed out."; |
| | | break; |
| | | case error.UNKNOWN_ERROR: |
| | | msg = "An unknown error occurred."; |
| | | break; |
| | | } |
| | | that.onceNowPosition = msg; |
| | | that.state = false; |
| | | ok = false; |
| | | outit(); |
| | | }; |
| | | let options = { |
| | | enableHighAccuracy: true, |
| | | // timeout: 5000, |
| | | timeout: Infinity, |
| | | maximumAge: 0, |
| | | }; |
| | | this.getOnceSPosition = navigator.geolocation.getCurrentPosition( |
| | | success, |
| | | error, |
| | | options |
| | | ); |
| | | } |
| | | //结束获取 |
| | | outInit() { |
| | | |
| | | } |
| | | //抛出数据 |
| | | outData(val) { |
| | | let d = { |
| | | state: this.state, |
| | | intlat: this.onceNowPosition |
| | | } |
| | | if (val) { |
| | | d[val] = val |
| | | } |
| | | this.fn(d) |
| | | } |
| | | } |
| | | |
| | | export default $getPositions; |
| New file |
| | |
| | | // uniapp版本websocket总控制 |
| | | |
| | | function Wst(url) { |
| | | this.url = url || ""; |
| | | this.ws = ""; |
| | | this.ourControl = true; //总控 |
| | | this.state = false; |
| | | this.timeIntval = false; |
| | | this.timeIntvalTime = 5000; |
| | | this.WebSocketValue = ""; |
| | | this.backValue = function(res) { |
| | | console.log(res, "未设置msg返回函数"); |
| | | }; |
| | | this.getws = ""; |
| | | this.Data = ""; |
| | | this.heartBeat = ""; |
| | | this.loginData = ""; |
| | | |
| | | this.ids = ''; |
| | | return this; |
| | | } |
| | | |
| | | Wst.prototype.$callBack = function(getValue, getState, getws, ids) { |
| | | this.backValue = function(res) { |
| | | if (!getValue && !getState) { |
| | | console.log(res, "未设置msg返回函数"); |
| | | } else { |
| | | if (getValue) { |
| | | getValue(res); |
| | | } |
| | | if (getState) { |
| | | getState(this.state); |
| | | } |
| | | } |
| | | }; |
| | | this.getws = getws; |
| | | this.ids = ids; |
| | | return this; |
| | | }; |
| | | |
| | | Wst.prototype.$connect = function(Data) { |
| | | this.ourControl = true; |
| | | let that = this; |
| | | this.Data = Data; |
| | | this.loginData = { |
| | | id: this.ids, |
| | | type: 'login' |
| | | }; |
| | | this.heartBeat = 'ping'; |
| | | this.ws = uni.connectSocket({ |
| | | url: that.url, |
| | | success(data) { |
| | | // console.log(data, "websocket连接成功"); |
| | | }, |
| | | }); |
| | | // console.log(that.url) |
| | | this.ws.onOpen((res) => { |
| | | // 注:只有连接正常打开中 ,才能正常成功发送消息 |
| | | that.ws.send({ |
| | | data: JSON.stringify(that.loginData), |
| | | async success(res) { |
| | | // console.log(res, "登入成功"); //设置登入成功状态 并开启心跳 |
| | | that.state = true; |
| | | that.$heartbeat(); |
| | | }, |
| | | }); |
| | | // 注:只有连接正常打开中 ,才能正常收到消息 |
| | | that.ws.onMessage((res) => { |
| | | // console.log("收到服务器内容:", JSON.parse(res.data)); |
| | | let d = res.data; |
| | | try { |
| | | d = JSON.parse(res.data); |
| | | } catch (e) {} |
| | | that.WebSocketValue = d; |
| | | // that.state = true; |
| | | // this.$heartbeat(); |
| | | that.backValue(d); |
| | | }); |
| | | }); |
| | | // this.ws.onClose((e) => { |
| | | // console.log(11111111111111111) |
| | | // that.state = false; |
| | | // that.backValue(e); |
| | | // }); |
| | | // this.$heartbeat(); |
| | | this.getws(this.ws); |
| | | return this; |
| | | }; |
| | | |
| | | Wst.prototype.$heartbeat = function() { |
| | | let that = this; |
| | | let open = function() { |
| | | // console.log('开启心跳'); |
| | | |
| | | that.ws.send({ |
| | | data: that.heartBeat, |
| | | }); |
| | | }; |
| | | let rel = function() { |
| | | console.log('重新连接'); |
| | | that.$connect(that.Data); |
| | | }; |
| | | if (that.timeIntval) { |
| | | clearInterval(that.timeIntval); |
| | | } |
| | | that.timeIntval = setInterval(() => { |
| | | if (!this.ourControl) { |
| | | return; |
| | | } |
| | | // console.log(that.state) |
| | | if (that.state) { |
| | | open(); |
| | | } else { |
| | | rel(); |
| | | } |
| | | }, that.timeIntvalTime); |
| | | }; |
| | | |
| | | Wst.prototype.$outws = function() { |
| | | this.ourControl = false; |
| | | clearInterval(this.timeIntval); |
| | | this.timeIntval = false; |
| | | this.WebSocketValue = {}; |
| | | this.state = false; |
| | | // this.backValue({}); |
| | | }; |
| | | |
| | | export default Wst; |
| | |
| | | import WxStorage from "../static/lib/wxStorage.js" //微信Storage |
| | | import websocket from "./websocket.js" |
| | | import positions from "./positions.js" |
| | | |
| | | |
| | | import $store from './index.js' |
| | | const mutations = { |
| | | login(state, data) { |
| | | // console.log(data); |
| | |
| | | state.puserID = data.userID; |
| | | state.avatar = data.avatar; |
| | | } |
| | | $store.dispatch("connectws"); |
| | | //储存用户 |
| | | WxStorage.set("init", "true"); |
| | | WxStorage.set("name", data.userName); |
| | |
| | | changegotuGrabOrders(state, data) { |
| | | // console.log(2123131) |
| | | state.gotuGrabOrders = !state.gotuGrabOrders; |
| | | } |
| | | }, |
| | | ...websocket.mutations, |
| | | ...positions.mutations |
| | | } |
| | | |
| | | export default mutations |
| New file |
| | |
| | | // import $store from '../index.js' |
| | | // import vueconfig from '../../vue.config.js' |
| | | import $getPositions from './lid/getPosition.js' |
| | | import WxStorage from "../static/lib/wxStorage.js" //微信Storage |
| | | import $store from './index.js' |
| | | |
| | | let positions = { |
| | | state: { |
| | | isBeginTask: {}, |
| | | isOnTask: {}, |
| | | }, |
| | | actions: { |
| | | // connectws({ |
| | | // state, |
| | | // commit |
| | | // }) { |
| | | // console.log("开启websocket") |
| | | // }, |
| | | }, |
| | | mutations: { |
| | | addTask(state, value) { |
| | | let id = value; |
| | | state.isOnTask[id] = { |
| | | id: id, |
| | | position: new $getPositions({ |
| | | id: id, |
| | | fn: function(res) { |
| | | // console.log(res); |
| | | $store.commit("setMsg", { |
| | | id: id, |
| | | intlat: res.intlat |
| | | }) |
| | | } |
| | | }) |
| | | } |
| | | setTimeout(() => { |
| | | $store.commit("startTask", id) |
| | | }, 1000) |
| | | }, |
| | | startTask(state, value) { |
| | | if (!state.isOnTask[value]) { |
| | | console.log("未创建该任务:", value) |
| | | return |
| | | } |
| | | if (!state.isOnTask[value].position.isContinued) { |
| | | state.isOnTask[value].position.continuedTime(); |
| | | } |
| | | }, |
| | | stopTask(state, value) { |
| | | if (!state.isOnTask[value]) { |
| | | console.log("未创建该任务:", value) |
| | | return |
| | | } |
| | | if (state.isOnTask[value].position.isContinued) { |
| | | state.isOnTask[value].position.overContinued(); |
| | | } |
| | | }, |
| | | setMsg(state, value) { |
| | | //发送任务位置 |
| | | //uid ;自己id,rid: 任务id,jd,wd经度纬度 |
| | | // console.log(value) |
| | | let d = { |
| | | uid: WxStorage.get("ids"), |
| | | rid: value.id, |
| | | jd: value.intlat[0], |
| | | wd: value.intlat[1], |
| | | } |
| | | uni.request({ |
| | | url: $store.state.piAPI + "trar/submit", |
| | | method: "POST", |
| | | data: d, |
| | | success(res) { |
| | | // console.log(res.data.msg); |
| | | }, |
| | | }); |
| | | }, |
| | | useWebScoketApi(state, val) { |
| | | let rid = val.rid, |
| | | serid = val.serid, |
| | | type = val.type, |
| | | that = val.that, |
| | | tips = (type, title) => { |
| | | that.$refs.uTips.show({ |
| | | title: title, |
| | | type: type, |
| | | duration: '2300' |
| | | }) |
| | | // that.getGrabOrders(that.current); //重获取数据 |
| | | } |
| | | uni.request({ |
| | | url: $store.state.piAPI + "taskqd/startTask?" + |
| | | `rid=${rid}&serid=${serid}&type=${type}`, |
| | | method: "GET", |
| | | success(res) { |
| | | let type = res.data.data.type; |
| | | if (val.fn) { |
| | | val.fn(); |
| | | } |
| | | if (type == 'start') { //开启成功 |
| | | tips('success', '开启任务成功') |
| | | return; |
| | | } |
| | | if (type == 'stop') { //开启成功 |
| | | tips('success', '反馈任务成功') |
| | | return; |
| | | } |
| | | }, |
| | | }); |
| | | }, |
| | | } |
| | | } |
| | | |
| | | export default positions |
| | |
| | | import websocket from "./websocket.js" |
| | | import positions from "./positions.js" |
| | | const state = { |
| | | loging: false, |
| | | message: { |
| | |
| | | avatar: "../../static/logo.png", |
| | | UserData: {}, |
| | | tabbar: [{ |
| | | pagePath: "/pages/home/home", |
| | | text: "首页", |
| | | iconPath: "/static/tabbar/index01.png", |
| | | selectedIconPath: "/static/tabbar/index02.png" |
| | | }, |
| | | { |
| | | pagePath: "/pages/article/article", |
| | | text: "资讯", |
| | | iconPath: "/static/tabbar/article.png", |
| | | selectedIconPath: "/static/tabbar/articleH.png" |
| | | }, |
| | | { |
| | | pagePath: "/pages/issue/issue", |
| | | iconPath: "/static/tabbar/addIcon.png", |
| | | selectedIconPath: "/static/tabbar/addSelectedIcon.png", |
| | | text: "发布", |
| | | midButton: true, |
| | | }, |
| | | { |
| | | pagePath: "/pages/business/business", |
| | | text: "工作台", |
| | | iconPath: "/static/tabbar/workbench.png", |
| | | selectedIconPath: "/static/tabbar/workbenchH.png" |
| | | }, |
| | | { |
| | | pagePath: "/pages/myself/myself", |
| | | text: "我的", |
| | | iconPath: "/static/tabbar/my.png", |
| | | selectedIconPath: "/static/tabbar/my-blue.png" |
| | | } |
| | | pagePath: "/pages/home/home", |
| | | text: "首页", |
| | | iconPath: "/static/tabbar/index01.png", |
| | | selectedIconPath: "/static/tabbar/index02.png" |
| | | }, |
| | | { |
| | | pagePath: "/pages/article/article", |
| | | text: "资讯", |
| | | iconPath: "/static/tabbar/article.png", |
| | | selectedIconPath: "/static/tabbar/articleH.png" |
| | | }, |
| | | { |
| | | pagePath: "/pages/issue/issue", |
| | | iconPath: "/static/tabbar/addIcon.png", |
| | | selectedIconPath: "/static/tabbar/addSelectedIcon.png", |
| | | text: "发布", |
| | | midButton: true, |
| | | }, |
| | | { |
| | | pagePath: "/pages/business/business", |
| | | text: "工作台", |
| | | iconPath: "/static/tabbar/workbench.png", |
| | | selectedIconPath: "/static/tabbar/workbenchH.png" |
| | | }, |
| | | { |
| | | pagePath: "/pages/myself/myself", |
| | | text: "我的", |
| | | iconPath: "/static/tabbar/my.png", |
| | | selectedIconPath: "/static/tabbar/my-blue.png" |
| | | } |
| | | ], |
| | | gotuGrabOrders: false |
| | | gotuGrabOrders: false, |
| | | ...websocket.state, |
| | | ...positions.state |
| | | } |
| | | |
| | | export default state |
| New file |
| | |
| | | // import $store from '../index.js' |
| | | // import vueconfig from '../../vue.config.js' |
| | | import Wst from './lid/websocketL.js' |
| | | import WxStorage from "../static/lib/wxStorage.js" //微信Storage |
| | | |
| | | // var url = 'ws://' + vueconfig.devServer.proxy["/cloud"].target.substring(5) + '/websocket'; |
| | | |
| | | let url = 'ws://192.168.0.108:9034/websocket'; |
| | | |
| | | const webSockets = new Wst(url); |
| | | |
| | | let websocket = { |
| | | state: { |
| | | webSockets: webSockets, //websocket实例 |
| | | socket: '', //websoclet主体 |
| | | socketValue: '', //接收的数据 |
| | | socketState: false, // 当前连接websocket状态 |
| | | socketInterval: false, //心跳 |
| | | socketTimeout: false, //检测服务器是否连接成功timeout |
| | | socketInterTime: 5000, //心跳时间 秒*1000 |
| | | socketStateMY: true, //总控 在退出登入时,强行关闭心跳 |
| | | }, |
| | | actions: { |
| | | connectws({ |
| | | state, |
| | | commit |
| | | }) { |
| | | console.log("开启websocket") |
| | | var getValue = function(res) { // 消息回调 |
| | | commit("setSocketValue", res); |
| | | } |
| | | var getState = function(res) { // 状态回调 |
| | | commit("setState", res); |
| | | } |
| | | var getws = function(res) { // 主体回调 |
| | | commit("setSocket", res); |
| | | } |
| | | let equipmentInformation = navigator.userAgent; |
| | | // var Data = { |
| | | // router: "share", |
| | | // res: { |
| | | // ...$store.state.logs.user, |
| | | // equipmentInformation: equipmentInformation |
| | | // }, |
| | | // } |
| | | var ws = webSockets.$callBack(getValue, getState, getws, state.puserID || WxStorage.get("ids")) |
| | | .$connect(); |
| | | |
| | | }, |
| | | }, |
| | | mutations: { |
| | | wsOut(state, value) { |
| | | webSockets.$outws(); |
| | | }, |
| | | setSocket(state, value) { //websocket主体 |
| | | state.socket = value; |
| | | }, |
| | | setSocketValue(state, value) { |
| | | // console.log(value) |
| | | // if (value.router) { //正常数据返回 |
| | | // //去除心跳数据 |
| | | // if (value.router == 'share/heartbeat') { |
| | | // return; |
| | | // } |
| | | state.socketValue = value; |
| | | // console.log(value, 'websocket信息') |
| | | // } else { //异常数据返回 |
| | | // console.log(value, '异常') |
| | | // } |
| | | }, |
| | | //本地建造数据传递 |
| | | setMyvalue(state, value) { |
| | | state.socketValue = value; |
| | | }, |
| | | setsocketStateMY(state, value) { |
| | | state.socketStateMY = value; |
| | | }, |
| | | setState(state, value) { |
| | | state.socketState = value; |
| | | }, |
| | | } |
| | | } |
| | | |
| | | export default websocket |