更新
This commit is contained in:
parent
32e3192e17
commit
99a42d4757
@ -1,5 +1,4 @@
|
|||||||
<script setup>
|
<script setup>
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
|
@ -1,11 +1,16 @@
|
|||||||
import axios from "@/utils/axios.js";
|
import axios from "@/utils/axios.js";
|
||||||
|
|
||||||
// 获取街道
|
// 登录
|
||||||
export const login = (data) => {
|
export const login = (data) => {
|
||||||
return axios.post('dataview/login', data);
|
return axios.post('dataview/login', data);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 获取街道
|
// 区县
|
||||||
|
export const getArea = (data) => {
|
||||||
|
return axios.get('city/get_area', { params: data });
|
||||||
|
}
|
||||||
|
|
||||||
|
// 乡镇
|
||||||
export const getStreet = (data) => {
|
export const getStreet = (data) => {
|
||||||
return axios.get('city/get_street', { params: data });
|
return axios.get('city/get_street', { params: data });
|
||||||
}
|
}
|
||||||
@ -15,6 +20,12 @@ export const orderList = (data) => {
|
|||||||
return axios.get('dataview/curr_order_info', { params: data });
|
return axios.get('dataview/curr_order_info', { params: data });
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 订单列表
|
||||||
|
export const logisticsList = (data) => {
|
||||||
|
return axios.get('dataview/logistics_list', { params: data });
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// 订单排行
|
// 订单排行
|
||||||
export const orderRanking = (data) => {
|
export const orderRanking = (data) => {
|
||||||
return axios.get('dataview/order_ranking', { params: data });
|
return axios.get('dataview/order_ranking', { params: data });
|
||||||
|
@ -11,22 +11,16 @@ const appStore = useAppStore();
|
|||||||
|
|
||||||
const route = useRouter()
|
const route = useRouter()
|
||||||
|
|
||||||
const ShwostoreType = ref(false)
|
|
||||||
const test = () => {
|
|
||||||
console.log(6)
|
|
||||||
}
|
|
||||||
|
|
||||||
const isShow = ref(false);
|
const isShow = ref(false);
|
||||||
|
|
||||||
const hdClick = (e) => {
|
const hdClick = (e) => {
|
||||||
// console.log(e)
|
// console.log(e)
|
||||||
if (e.columnIndex == 10) {
|
// if (e.columnIndex == 10) {
|
||||||
// alert(45)
|
// // alert(45)
|
||||||
route.replace('/storeLogin')
|
// route.replace('/storeLogin')
|
||||||
}
|
// }
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const initData = (data) => {
|
const initData = (data) => {
|
||||||
let arr = [];
|
let arr = [];
|
||||||
for (let i = 0; i < data.length; i++) {
|
for (let i = 0; i < data.length; i++) {
|
||||||
@ -78,7 +72,8 @@ const pages = ref({
|
|||||||
page: 1,
|
page: 1,
|
||||||
limit: 30,
|
limit: 30,
|
||||||
total: 0,
|
total: 0,
|
||||||
pageAll: 0
|
pageAll: 0,
|
||||||
|
type: '', //类型 1-待取货, 2-配送中, 3-已完成
|
||||||
})
|
})
|
||||||
|
|
||||||
const loadOrderList = (pramas) => {
|
const loadOrderList = (pramas) => {
|
||||||
|
198
src/components/Businesses2.vue
Normal file
198
src/components/Businesses2.vue
Normal file
@ -0,0 +1,198 @@
|
|||||||
|
<script setup>
|
||||||
|
// 102B3
|
||||||
|
import { ref, reactive, onMounted } from "vue"
|
||||||
|
import { useRouter } from 'vue-router'
|
||||||
|
import paging from "./paging.vue"
|
||||||
|
import mitt from "@/utils/mitt"
|
||||||
|
import { logisticsList } from "@/api/index.js"
|
||||||
|
import { useAppStore } from "@/store/app.js"
|
||||||
|
|
||||||
|
const appStore = useAppStore();
|
||||||
|
|
||||||
|
const route = useRouter()
|
||||||
|
|
||||||
|
const isShow = ref(false);
|
||||||
|
|
||||||
|
const hdClick = (e) => {
|
||||||
|
// console.log(e)
|
||||||
|
// if (e.columnIndex == 10) {
|
||||||
|
// // alert(45)
|
||||||
|
// route.replace('/storeLogin')
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
|
||||||
|
const initData = (data) => {
|
||||||
|
let arr = [];
|
||||||
|
for (let i = 0; i < data.length; i++) {
|
||||||
|
let calss = 'div';
|
||||||
|
if (i % 2 != 0) {
|
||||||
|
calss = 'div div2'
|
||||||
|
}
|
||||||
|
arr.push(
|
||||||
|
[
|
||||||
|
`<div class="${calss}">${data[i].order_sn || '-'}</div>`,
|
||||||
|
`<div class="${calss}">${data[i].real_name || '-'}</div>`,
|
||||||
|
`<div class="${calss}">${data[i].user_phone || '-'}</div>`,
|
||||||
|
`<div class="${calss}">${data[i].user_address || '-'}</div>`,
|
||||||
|
`<div class="${calss}">${data[i].store_name || '-'}</div>`,
|
||||||
|
`<div class="${calss}">${data[i].mer_name || '-'}</div>`,
|
||||||
|
`<div class="${calss}">${data[i].create_time || '-'}</div>`,
|
||||||
|
`<div class="${calss}">${data[i].status || '-'}</div>`,
|
||||||
|
`<div class="${calss}">${data[i].courier || '-'}</div>`,
|
||||||
|
]
|
||||||
|
)
|
||||||
|
}
|
||||||
|
configs.data = arr;
|
||||||
|
scrollBoardRef.value?.updateRows(configs.data);
|
||||||
|
}
|
||||||
|
const scrollBoardRef = ref(null);
|
||||||
|
const configs = reactive({
|
||||||
|
headerBGC: "linear-gradient(to right, #ff0000, #00ff00)",
|
||||||
|
oddRowBGC: '',
|
||||||
|
evenRowBGC: "",
|
||||||
|
rowNum: 20,
|
||||||
|
header: [
|
||||||
|
`<div style='width: 100%;text-align: center; height: 100%; color: aliceblue; background: linear-gradient(rgba(0, 168, 255, 0.76), rgba(0, 84, 128, 0.73));'>订单编号</div>`,
|
||||||
|
`<div style='width: 100%;text-align: center; height: 100%; color: aliceblue; background: linear-gradient(rgba(0, 168, 255, 0.76), rgba(0, 84, 128, 0.73));'>收货人</div>`,
|
||||||
|
`<div style='width: 100%;text-align: center; height: 100%; color: aliceblue; background: linear-gradient(rgba(0, 168, 255, 0.76), rgba(0, 84, 128, 0.73));'>收货人电话</div>`,
|
||||||
|
`<div style='width: 100%;text-align: center; height: 100%; color: aliceblue; background: linear-gradient(rgba(0, 168, 255, 0.76), rgba(0, 84, 128, 0.73));'>收货人地址</div>`,
|
||||||
|
`<div style='width: 100%;text-align: center; height: 100%; color: aliceblue; background: linear-gradient(rgba(0, 168, 255, 0.76), rgba(0, 84, 128, 0.73));'>商品名称</div>`,
|
||||||
|
`<div style='width: 100%;text-align: center; height: 100%; color: aliceblue; background: linear-gradient(rgba(0, 168, 255, 0.76), rgba(0, 84, 128, 0.73));'>店铺名称</div>`,
|
||||||
|
`<div style='width: 100%;text-align: center; height: 100%; color: aliceblue; background: linear-gradient(rgba(0, 168, 255, 0.76), rgba(0, 84, 128, 0.73));'>下单时间</div>`,
|
||||||
|
`<div style='width: 100%;text-align: center; height: 100%; color: aliceblue; background: linear-gradient(rgba(0, 168, 255, 0.76), rgba(0, 84, 128, 0.73));'>订单状态</div>`,
|
||||||
|
`<div style='width: 100%;text-align: center; height: 100%; color: aliceblue; background: linear-gradient(rgba(0, 168, 255, 0.76), rgba(0, 84, 128, 0.73));'>配送人员</div>`,
|
||||||
|
],
|
||||||
|
data: [
|
||||||
|
]
|
||||||
|
})
|
||||||
|
|
||||||
|
const pages = ref({
|
||||||
|
areaCode: appStore.address.areaCode,
|
||||||
|
streetCode: appStore.address.streetCode,
|
||||||
|
page: 1,
|
||||||
|
limit: 30,
|
||||||
|
total: 0,
|
||||||
|
pageAll: 0,
|
||||||
|
type: 1, //类型 1-待取货, 2-配送中, 3-已完成
|
||||||
|
})
|
||||||
|
|
||||||
|
const loadOrderList = (pramas) => {
|
||||||
|
logisticsList(pramas).then((res) => {
|
||||||
|
initData(res.data.currOrderList);
|
||||||
|
pages.value.total = res.data.currOrderCount;
|
||||||
|
pages.value.pageAll = Math.ceil(res.data.currOrderCount / pages.value.limit);
|
||||||
|
}).catch(err => {
|
||||||
|
console.error(err);
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
onMounted(() => {
|
||||||
|
// loadOrderList();
|
||||||
|
mitt.on('showBusinesses2', (e) => {
|
||||||
|
pages.type = e.type;
|
||||||
|
isShow.value = !isShow.value;
|
||||||
|
})
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<transition name="fade">
|
||||||
|
<div class="bus" v-if="isShow">
|
||||||
|
<div class="c-list-box">
|
||||||
|
<div class="c-l-top">
|
||||||
|
<div class="title">订单列表</div>
|
||||||
|
<div class="close" @click="isShow = false">关闭</div>
|
||||||
|
</div>
|
||||||
|
<dv-scroll-board
|
||||||
|
ref="scrollBoardRef"
|
||||||
|
:config="configs"
|
||||||
|
@click="hdClick"
|
||||||
|
style="width: 100%; height: 92%"
|
||||||
|
/>
|
||||||
|
<div class="c-l-bottom">
|
||||||
|
<paging :page="pages" @loadList="loadOrderList"></paging>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</transition>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.bus {
|
||||||
|
background-color: rgba(0, 0, 0, 0.5);
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
.c-list-box {
|
||||||
|
width: 94%;
|
||||||
|
height: 94%;
|
||||||
|
position: relative;
|
||||||
|
background-image: url(../assets/img/list-box.png);
|
||||||
|
background-size: 100% 100%;
|
||||||
|
background-color: rgba(0, 0, 0, 0.7);
|
||||||
|
box-sizing: border-box;
|
||||||
|
padding: 3rem;
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: center;
|
||||||
|
.c-l-top {
|
||||||
|
width: 100%;
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
|
.title {
|
||||||
|
font-size: 1.2rem;
|
||||||
|
font-family: "ifonts";
|
||||||
|
}
|
||||||
|
.close {
|
||||||
|
font-size: 0.8rem;
|
||||||
|
padding: 0.1rem 1.5rem;
|
||||||
|
background-color: rgba(0, 156, 255, 0.3);
|
||||||
|
border: 0.07rem solid rgba(91, 219, 246, 1);
|
||||||
|
border-radius: 0.2rem;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.c-l-bottom {
|
||||||
|
width: 100%;
|
||||||
|
display: flex;
|
||||||
|
justify-content: flex-end;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
:deep(.div) {
|
||||||
|
width: 100%;
|
||||||
|
text-align: center;
|
||||||
|
height: 100%;
|
||||||
|
color: aliceblue;
|
||||||
|
background: rgba(91, 219, 246, 0.2);
|
||||||
|
white-space: nowrap; /* 防止文本换行 */
|
||||||
|
overflow: hidden; /* 溢出部分隐藏 */
|
||||||
|
text-overflow: ellipsis; /* 显示省略号 */
|
||||||
|
}
|
||||||
|
|
||||||
|
:deep(.div2) {
|
||||||
|
background: rgba(0, 168, 255, 0.16);
|
||||||
|
}
|
||||||
|
|
||||||
|
:deep(.ceil) {
|
||||||
|
padding: 0 !important;
|
||||||
|
margin-bottom: 0.3rem;
|
||||||
|
margin-right: 0.1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
:deep(.header-item) {
|
||||||
|
padding: 0 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.fade-enter-active,
|
||||||
|
.fade-leave-active {
|
||||||
|
transition: opacity 0.5s;
|
||||||
|
}
|
||||||
|
.fade-enter,
|
||||||
|
.fade-leave-to {
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
</style>
|
@ -3,8 +3,9 @@ import { reactive, ref, provide, nextTick, onMounted, inject } from "vue";
|
|||||||
import areaList from "./areaList.vue";
|
import areaList from "./areaList.vue";
|
||||||
import { useRoute, useRouter } from "vue-router";
|
import { useRoute, useRouter } from "vue-router";
|
||||||
import mitt from "@/utils/mitt";
|
import mitt from "@/utils/mitt";
|
||||||
import { getStreet } from "@/api/index.js"
|
import { getStreet } from "@/api/index.js";
|
||||||
import { useAppStore } from "@/store/app.js";
|
import { useAppStore } from "@/store/app.js";
|
||||||
|
import { useUserStore } from "@/store/user.js";
|
||||||
|
|
||||||
const reload = inject('reload');
|
const reload = inject('reload');
|
||||||
|
|
||||||
@ -14,13 +15,14 @@ const info = reactive({
|
|||||||
})
|
})
|
||||||
|
|
||||||
const appStore = useAppStore();
|
const appStore = useAppStore();
|
||||||
|
const userSotre = useUserStore();
|
||||||
|
|
||||||
const areaListRef = ref(null);
|
const areaListRef = ref(null);
|
||||||
|
|
||||||
// 选择镇
|
// 选择镇
|
||||||
const choseArea = ref(null)
|
const choseArea = ref(null)
|
||||||
const open = () => {
|
const open = () => {
|
||||||
areaListRef.value.show();
|
if (list.value.length > 0) areaListRef.value.show();
|
||||||
}
|
}
|
||||||
// 关闭
|
// 关闭
|
||||||
const offAreaList = (e) => {
|
const offAreaList = (e) => {
|
||||||
@ -35,20 +37,40 @@ const offAreaList = (e) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const list = ref([])
|
const list = ref([])
|
||||||
const initList = () => {
|
const initList = async () => {
|
||||||
getStreet({
|
let street = appStore.street;
|
||||||
|
if (street?.length == 0) {
|
||||||
|
let { data } = await getStreet({
|
||||||
area_code: appStore.address.areaCode
|
area_code: appStore.address.areaCode
|
||||||
}).then(res => {
|
})
|
||||||
list.value = res.data;
|
street = data;
|
||||||
|
appStore.setStreet(street);
|
||||||
|
}
|
||||||
|
let area = appStore.area;
|
||||||
|
if (userSotre.userInfo.street_code) {
|
||||||
|
let data = street.find(item => item.code == appStore.address.streetCode);
|
||||||
|
info.address = data?.name;
|
||||||
|
list.value = [];
|
||||||
appStore.setAddress({
|
appStore.setAddress({
|
||||||
areaCode: appStore.address.appStore,
|
areaCode: appStore.address.areaCode,
|
||||||
streetCode: res.data[0].code
|
streetCode: appStore.address.streetCode
|
||||||
})
|
})
|
||||||
info.address = res.data[0].name
|
} else {
|
||||||
|
let data = area.find(item => item.code == appStore.address.areaCode);
|
||||||
|
info.address = data?.name;
|
||||||
|
list.value = [data, ...street];
|
||||||
|
if (appStore.address.streetCode) {
|
||||||
|
data = street.find(item => item.code == appStore.address.streetCode);
|
||||||
|
info.address = data?.name;
|
||||||
|
}
|
||||||
|
appStore.setAddress({
|
||||||
|
areaCode: appStore.address.areaCode,
|
||||||
|
streetCode: appStore.address.streetCode
|
||||||
})
|
})
|
||||||
|
}
|
||||||
|
mitt.emit('map_info', info);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
const router = useRouter()
|
const router = useRouter()
|
||||||
const route = useRoute()
|
const route = useRoute()
|
||||||
|
|
||||||
@ -84,9 +106,6 @@ const logout = () => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
|
|
||||||
mitt.emit('map_info', info);
|
|
||||||
|
|
||||||
initList();
|
initList();
|
||||||
|
|
||||||
// 每秒钟更新一次时间
|
// 每秒钟更新一次时间
|
||||||
|
@ -1,9 +1,11 @@
|
|||||||
<script setup>
|
<script setup>
|
||||||
import headView from "@/components/headView.vue";
|
import headView from "@/components/headView.vue";
|
||||||
import Businesses from "@/components/Businesses.vue";
|
import Businesses from "@/components/Businesses.vue";
|
||||||
import { ref, nextTick, provide, onMounted, onUnmounted } from "vue";
|
import Businesses2 from "@/components/Businesses2.vue";
|
||||||
|
import { ref, nextTick, provide, watch, onMounted, onUnmounted } from "vue";
|
||||||
|
import mitt from "@/utils/mitt";
|
||||||
|
|
||||||
const show = ref(true);
|
const show = ref(false);
|
||||||
const reload = () => {
|
const reload = () => {
|
||||||
show.value = false;
|
show.value = false;
|
||||||
nextTick(() => {
|
nextTick(() => {
|
||||||
@ -23,10 +25,13 @@ const startReLoad = () => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
|
mitt.on('map_info', e => {
|
||||||
|
reload();
|
||||||
startReLoad();
|
startReLoad();
|
||||||
window.addEventListener('mousemove', startReLoad);
|
window.addEventListener('mousemove', startReLoad);
|
||||||
window.addEventListener('keypress', startReLoad);
|
window.addEventListener('keypress', startReLoad);
|
||||||
window.addEventListener('click', startReLoad);
|
window.addEventListener('click', startReLoad);
|
||||||
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
onUnmounted(() => {
|
onUnmounted(() => {
|
||||||
@ -40,10 +45,15 @@ onUnmounted(() => {
|
|||||||
<template>
|
<template>
|
||||||
<dv-full-screen-container class="body">
|
<dv-full-screen-container class="body">
|
||||||
<headView></headView>
|
<headView></headView>
|
||||||
<div style="height: calc(100% - 3.75rem)">
|
<div style="height: calc(100% - 3.75rem)" v-if="show">
|
||||||
<router-view v-if="show"></router-view>
|
<router-view v-slot="{ Component }">
|
||||||
|
<transition name="fade">
|
||||||
|
<component :is="Component"></component>
|
||||||
|
</transition>
|
||||||
|
</router-view>
|
||||||
</div>
|
</div>
|
||||||
<Businesses class="businesses"></Businesses>
|
<Businesses class="businesses"></Businesses>
|
||||||
|
<Businesses2 class="businesses"></Businesses2>
|
||||||
</dv-full-screen-container>
|
</dv-full-screen-container>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@ -63,4 +73,14 @@ onUnmounted(() => {
|
|||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.fade-enter-active,
|
||||||
|
.fade-leave-active {
|
||||||
|
transition: opacity 0.5s;
|
||||||
|
}
|
||||||
|
|
||||||
|
.fade-enter,
|
||||||
|
.fade-leave-to {
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
import { defineStore } from "pinia"
|
import { defineStore } from "pinia"
|
||||||
import { ref } from "vue"
|
import { ref } from "vue"
|
||||||
|
import areaList from "@/utils/areaList.js"
|
||||||
|
|
||||||
export const useAppStore = defineStore('app', () => {
|
export const useAppStore = defineStore('app', () => {
|
||||||
const map_info = ref(localStorage.getItem('map_info') || 'luxian');
|
const map_info = ref(localStorage.getItem('map_info') || 'luxian');
|
||||||
@ -15,11 +16,12 @@ export const useAppStore = defineStore('app', () => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 测试使用的初始化配置
|
// 测试使用的初始化配置
|
||||||
address.value = { areaCode: 510524, streetCode: 510524100 };
|
// address.value = { areaCode: 510524, streetCode: 510524100 };
|
||||||
|
|
||||||
const setAddress = (e) => {
|
const setAddress = (e) => {
|
||||||
e.areaCode ? address.value.areaCode = e.areaCode : null;
|
console.log('更新', e);
|
||||||
e.streetCode ? address.value.streetCode = e.streetCode : null;
|
address.value.areaCode = e.areaCode;
|
||||||
|
address.value.streetCode = e.streetCode;
|
||||||
localStorage.setItem('address', JSON.stringify(e));
|
localStorage.setItem('address', JSON.stringify(e));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -39,23 +41,37 @@ export const useAppStore = defineStore('app', () => {
|
|||||||
|
|
||||||
const delivery_address = ref(JSON.parse(localStorage.getItem('delivery_address') || '{}'));
|
const delivery_address = ref(JSON.parse(localStorage.getItem('delivery_address') || '{}'));
|
||||||
|
|
||||||
if (!delivery_address.value.areaCode) {
|
// if (!delivery_address.value.areaCode) {
|
||||||
delivery_address.value = { areaCode: 510524, streetCode: 510524100 };
|
// delivery_address.value = { areaCode: 510524, streetCode: 510524100 };
|
||||||
}
|
// }
|
||||||
|
|
||||||
const setDeliveryAddress = (e) => {
|
const setDeliveryAddress = (e) => {
|
||||||
delivery_address.value = e;
|
delivery_address.value = e;
|
||||||
localStorage.setItem('delivery_address', JSON.stringify(e));
|
localStorage.setItem('delivery_address', JSON.stringify(e));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const area = ref(areaList);
|
||||||
|
const setArea = (data) => {
|
||||||
|
area.value = data;
|
||||||
|
}
|
||||||
|
|
||||||
|
const street = ref([]);
|
||||||
|
const setStreet = (data) => {
|
||||||
|
street.value = data;
|
||||||
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
map_info,
|
map_info,
|
||||||
address,
|
address,
|
||||||
delivery,
|
delivery,
|
||||||
delivery_address,
|
delivery_address,
|
||||||
|
area,
|
||||||
|
street,
|
||||||
setMapInfo,
|
setMapInfo,
|
||||||
setAddress,
|
setAddress,
|
||||||
setDelivery,
|
setDelivery,
|
||||||
setDeliveryAddress
|
setDeliveryAddress,
|
||||||
|
setArea,
|
||||||
|
setStreet
|
||||||
}
|
}
|
||||||
})
|
})
|
39
src/utils/areaList.js
Normal file
39
src/utils/areaList.js
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
const areaList = [
|
||||||
|
{
|
||||||
|
"id": 2043,
|
||||||
|
"code": "510502",
|
||||||
|
"name": "江阳区"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 2044,
|
||||||
|
"code": "510503",
|
||||||
|
"name": "纳溪区"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 2045,
|
||||||
|
"code": "510504",
|
||||||
|
"name": "龙马潭区"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 2046,
|
||||||
|
"code": "510521",
|
||||||
|
"name": "泸县"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 2047,
|
||||||
|
"code": "510522",
|
||||||
|
"name": "合江县"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 2048,
|
||||||
|
"code": "510524",
|
||||||
|
"name": "叙永县"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 2049,
|
||||||
|
"code": "510525",
|
||||||
|
"name": "古蔺县"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
||||||
|
export default areaList;
|
30
src/utils/jiangyang_geo.js
Normal file
30
src/utils/jiangyang_geo.js
Normal file
File diff suppressed because one or more lines are too long
54
src/utils/luxian_geo.js
Normal file
54
src/utils/luxian_geo.js
Normal file
File diff suppressed because one or more lines are too long
35
src/utils/xuyong_geo.js
Normal file
35
src/utils/xuyong_geo.js
Normal file
File diff suppressed because one or more lines are too long
@ -2,8 +2,10 @@
|
|||||||
import { onMounted, reactive, ref } from "vue"
|
import { onMounted, reactive, ref } from "vue"
|
||||||
import border from "@/components/border.vue";
|
import border from "@/components/border.vue";
|
||||||
import AMap from "./AMap.vue";
|
import AMap from "./AMap.vue";
|
||||||
|
import mitt from "@/utils/mitt";
|
||||||
import { useAppStore } from "@/store/app.js"
|
import { useAppStore } from "@/store/app.js"
|
||||||
import { logisticsMapCount } from "@/api/index.js";
|
import { logisticsMapCount } from "@/api/index.js";
|
||||||
|
import Businesses2 from "@/components/Businesses2.vue";
|
||||||
|
|
||||||
const appStore = useAppStore();
|
const appStore = useAppStore();
|
||||||
|
|
||||||
@ -28,6 +30,7 @@ const initInfo = () => {
|
|||||||
|
|
||||||
const clickItem = () => {
|
const clickItem = () => {
|
||||||
console.log('点击按钮');
|
console.log('点击按钮');
|
||||||
|
mitt.emit('showBusinesses2', { type: 1 })
|
||||||
}
|
}
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
@ -43,22 +46,23 @@ onMounted(() => {
|
|||||||
</div>
|
</div>
|
||||||
<div class="border"></div>
|
<div class="border"></div>
|
||||||
<div class="btn">
|
<div class="btn">
|
||||||
<div class="c-b" @click.stop="clickItem">
|
<div class="c-b" @click.stop="clickItem(1)">
|
||||||
<div class="text">
|
<div class="text">
|
||||||
待取货({{ appStore.delivery.pending_order_count }})单
|
待取货({{ appStore.delivery.pending_order_count }})单
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="c-b" @click.stop="clickItem">
|
<div class="c-b" @click.stop="clickItem(2)">
|
||||||
<div class="text">
|
<div class="text">
|
||||||
配送中({{ appStore.delivery.delivering_order_count }})单
|
配送中({{ appStore.delivery.delivering_order_count }})单
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="c-b" @click.stop="clickItem">
|
<div class="c-b" @click.stop="clickItem(3)">
|
||||||
<div class="text">
|
<div class="text">
|
||||||
已完成({{ appStore.delivery.finished_order_count }})单
|
已完成({{ appStore.delivery.finished_order_count }})单
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<Businesses2 :isShow="isShow"></Businesses2>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
@ -9,9 +9,14 @@ import gulin from "@/assets/json/gulin.json";
|
|||||||
import jiangyang from "@/assets/json/jiangyang.json";
|
import jiangyang from "@/assets/json/jiangyang.json";
|
||||||
import longma from "@/assets/json/longma.json";
|
import longma from "@/assets/json/longma.json";
|
||||||
import naxi from "@/assets/json/naxi.json";
|
import naxi from "@/assets/json/naxi.json";
|
||||||
|
import luxian_geo from "@/utils/luxian_geo.js";
|
||||||
|
import xuyong_geo from "@/utils/xuyong_geo.js";
|
||||||
|
import jiangyang_geo from "@/utils/jiangyang_geo.js";
|
||||||
import { useAppStore } from "@/store/app.js";
|
import { useAppStore } from "@/store/app.js";
|
||||||
|
import { useUserStore } from "@/store/user.js";
|
||||||
|
|
||||||
const appStore = useAppStore();
|
const appStore = useAppStore();
|
||||||
|
const userStore = useUserStore();
|
||||||
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
list: {
|
list: {
|
||||||
@ -88,6 +93,15 @@ const initMap = () => {
|
|||||||
|
|
||||||
let option = {
|
let option = {
|
||||||
animation: false,
|
animation: false,
|
||||||
|
title: {
|
||||||
|
text: mapType.name,
|
||||||
|
textStyle: {
|
||||||
|
color: '#fff',
|
||||||
|
fontSize: 20
|
||||||
|
},
|
||||||
|
top: '10%',
|
||||||
|
left: '10%'
|
||||||
|
},
|
||||||
//geo方式地理坐标系组件。
|
//geo方式地理坐标系组件。
|
||||||
geo: [
|
geo: [
|
||||||
{
|
{
|
||||||
@ -201,7 +215,7 @@ const initMap = () => {
|
|||||||
disabled: false,
|
disabled: false,
|
||||||
},
|
},
|
||||||
select: {
|
select: {
|
||||||
disabled: false
|
disabled: true
|
||||||
},
|
},
|
||||||
itemStyle: {
|
itemStyle: {
|
||||||
normal: {
|
normal: {
|
||||||
@ -227,19 +241,6 @@ const initMap = () => {
|
|||||||
position: "center",
|
position: "center",
|
||||||
show: false
|
show: false
|
||||||
},
|
},
|
||||||
// tooltip: {
|
|
||||||
// formatter (value) {
|
|
||||||
// console.log(value);
|
|
||||||
// return "";
|
|
||||||
// },
|
|
||||||
// show: true
|
|
||||||
// },
|
|
||||||
// encode: {
|
|
||||||
// value: 2
|
|
||||||
// },
|
|
||||||
// itemStyle: {
|
|
||||||
// color: "#0efacc"
|
|
||||||
// },
|
|
||||||
emphasis: {
|
emphasis: {
|
||||||
label: {
|
label: {
|
||||||
show: false
|
show: false
|
||||||
@ -252,18 +253,35 @@ const initMap = () => {
|
|||||||
chart.setOption(option);
|
chart.setOption(option);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const mapInfo = () => {
|
||||||
|
let area = appStore.area.find(item => item.code == appStore.address.areaCode);
|
||||||
|
let map;
|
||||||
|
if (area.name == "泸县") map = luxian_geo;
|
||||||
|
if (area.name == "江阳区") map = jiangyang_geo;
|
||||||
|
if (area.name == "叙永县") map = xuyong_geo;
|
||||||
|
map = JSON.parse(JSON.stringify(map));
|
||||||
|
|
||||||
|
if (appStore.address.streetCode) {
|
||||||
|
let street = appStore.street.find(item => item.code == appStore.address.streetCode);
|
||||||
|
initStreetMap(street, map);
|
||||||
|
} else {
|
||||||
|
mapType.name = area.name;
|
||||||
|
mapType.json = map;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const initStreetMap = (street, map) => {
|
||||||
|
map.features = map.features.filter(item => item.properties.name == street.name);
|
||||||
|
mapType.name = street.name;
|
||||||
|
mapType.json = map;
|
||||||
|
}
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
dataValue = props.list;
|
dataValue = props.list;
|
||||||
changeType('xuyong');
|
changeType('xuyong');
|
||||||
|
mapInfo();
|
||||||
initDataValue();
|
initDataValue();
|
||||||
initMap();
|
initMap();
|
||||||
nextTick(() => {
|
|
||||||
mitt.on('map_info', e => {
|
|
||||||
changeType(e.pinyin);
|
|
||||||
initDataValue();
|
|
||||||
initMap();
|
|
||||||
})
|
|
||||||
})
|
|
||||||
})
|
})
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
@ -2,7 +2,9 @@
|
|||||||
import { ref, reactive } from "vue"
|
import { ref, reactive } from "vue"
|
||||||
import { useRouter } from "vue-router";
|
import { useRouter } from "vue-router";
|
||||||
import { login } from "@/api/index.js";
|
import { login } from "@/api/index.js";
|
||||||
|
import { getArea, getStreet } from "@/api/index.js"
|
||||||
import { useUserStore } from "@/store/user.js";
|
import { useUserStore } from "@/store/user.js";
|
||||||
|
import { useAppStore } from "@/store/app.js";
|
||||||
const router = useRouter()
|
const router = useRouter()
|
||||||
const show = ref(false)
|
const show = ref(false)
|
||||||
const account = ref('叙永镇')
|
const account = ref('叙永镇')
|
||||||
@ -11,9 +13,9 @@ const isAccount = ref(false)
|
|||||||
const isPassword = ref(false)
|
const isPassword = ref(false)
|
||||||
|
|
||||||
const userStore = useUserStore();
|
const userStore = useUserStore();
|
||||||
|
const appStore = useAppStore();
|
||||||
|
|
||||||
const submit = () => {
|
const submit = () => {
|
||||||
|
|
||||||
if (!account.value) {
|
if (!account.value) {
|
||||||
isAccount.value = true;
|
isAccount.value = true;
|
||||||
return
|
return
|
||||||
@ -21,18 +23,24 @@ const submit = () => {
|
|||||||
else isAccount.value = false;
|
else isAccount.value = false;
|
||||||
if (!password.value) {
|
if (!password.value) {
|
||||||
isPassword.value = true;
|
isPassword.value = true;
|
||||||
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
else isPassword.value = false;
|
else isPassword.value = false;
|
||||||
|
|
||||||
|
|
||||||
login({
|
login({
|
||||||
account: account.value,
|
account: account.value,
|
||||||
password: password.value
|
password: password.value
|
||||||
}).then((res) => {
|
}).then(async (res) => {
|
||||||
userStore.setUserInfo(res.data.user);
|
userStore.setUserInfo(res.data.user);
|
||||||
userStore.setToken(res.data.token);
|
userStore.setToken(res.data.token);
|
||||||
|
appStore.setAddress({
|
||||||
|
areaCode: res.data.user.area_code,
|
||||||
|
streetCode: res.data.user.street_code
|
||||||
|
});
|
||||||
|
let street = await getStreet({
|
||||||
|
area_code: res.data.user.area_code
|
||||||
|
})
|
||||||
|
appStore.setStreet(street.data);
|
||||||
router.push('/');
|
router.push('/');
|
||||||
}).catch(e => {
|
}).catch(e => {
|
||||||
console.log(e);
|
console.log(e);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user