import Vue from 'vue' import dayjs from 'dayjs' import { assign, concat, takeRight } from 'lodash-es' const locationKey = 'gaode_location_data' import * as taskService from '@/service/task.js' export default { state: { locationDataSource: {}, ratio: 60000, }, getters: { currentLocationList(state) { const locationDataKey = dayjs().format('YYYYMMDD'); return takeRight(state.locationDataSource[locationDataKey] || [], 5) } }, mutations: { refreshLocationInfo(state) { uni.getStorage({ key: locationKey, success(res) { console.log(res, 'success') Vue.set(state, 'locationDataSource', res.data) }, fail(err) { console.log(err, 'fail ---------------222') } }) }, updateLocationData(state, payload) { const locationDataKey = payload.taskID + dayjs().format('YYYYMMDD'); console.log(locationDataKey, 'update location data 1') if (!state.locationDataSource[locationDataKey]) { console.log(locationDataKey, 'update location data 2') Vue.set(state.locationDataSource, locationDataKey, [payload]) } else { Vue.set(state.locationDataSource, locationDataKey, concat(state.locationDataSource[locationDataKey] || [], payload)) } uni.setStorage({ key: locationKey, data: state.locationDataSource, }) }, updateTaskRecordRatio(state, value) { state.ratio = value * 60 * 1000; } }, actions: { addLocationData({ commit, dispatch }, data) { const payload = { task_id: data.taskID, lng: data.longitude, lat: data.latitude } commit('updateLocationData', data); console.warn('add record location', payload) taskService.addTaskRecordLocation(payload) }, updateTaskRecordRatio({ commit, dispatch }, ) { taskService.fetchTaskRecordRatio().then(res=>{ console.warn('task record ratio',res) commit('updateTaskRecordRatio', res.upload_rate); // console.warn('add record location', payload) }) } } }