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) => {
|
||||||
|
|
|
@ -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,19 +37,39 @@ 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;
|
|
||||||
appStore.setAddress({
|
|
||||||
areaCode: appStore.address.appStore,
|
|
||||||
streetCode: res.data[0].code
|
|
||||||
})
|
})
|
||||||
info.address = res.data[0].name
|
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({
|
||||||
|
areaCode: appStore.address.areaCode,
|
||||||
|
streetCode: appStore.address.streetCode
|
||||||
|
})
|
||||||
|
} 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,11 +25,14 @@ 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(() => {
|
||||||
window.removeEventListener('mousemove', startReLoad);
|
window.removeEventListener('mousemove', startReLoad);
|
||||||
|
@ -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
|
||||||
}
|
}
|
||||||
})
|
})
|
|
@ -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;
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
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…
Reference in New Issue