From 0613c968621665b0c0a8a525e5fd17db96d6f353 Mon Sep 17 00:00:00 2001 From: weipengfei <2187978347@qq.com> Date: Fri, 14 Jun 2024 18:26:43 +0800 Subject: [PATCH] 1 --- .env.development | 8 +- src/api/public.js | 31 +++ src/api/shop.js | 2 +- src/api/user.js | 21 ++ src/config/index.js | 1 + src/layout/myAside.vue | 7 + src/router/index.js | 6 + src/utils/EscPos.js | 2 +- src/utils/axiosAPI.js | 86 ++++++++ src/views/order/component/detail.vue | 28 ++- src/views/saleHome/component/classify.vue | 231 ++++++++++++---------- src/views/saleHome/index.vue | 4 +- src/views/user/component/add.vue | 164 +++++++++++++++ src/views/user/component/detail.vue | 151 ++++++++++++++ src/views/user/component/order.vue | 219 ++++++++++++++++++++ src/views/user/index.vue | 43 ++++ 16 files changed, 896 insertions(+), 108 deletions(-) create mode 100644 src/api/public.js create mode 100644 src/utils/axiosAPI.js create mode 100644 src/views/user/component/add.vue create mode 100644 src/views/user/component/detail.vue create mode 100644 src/views/user/component/order.vue create mode 100644 src/views/user/index.vue diff --git a/.env.development b/.env.development index e67f7bf..48add0d 100644 --- a/.env.development +++ b/.env.development @@ -1,10 +1,10 @@ VITE_NOW_TYPE = 'dist' -# VITE_PUSH_URL = 'ws://192.168.1.22:8787' -# VITE_BASE_URL = 'http://192.168.1.22:8545' +VITE_PUSH_URL = 'ws://192.168.1.22:8787' +VITE_BASE_URL = 'http://192.168.1.22:8545' -VITE_PUSH_URL ='wss://test-multi-store.lihaink.cn/pull' -VITE_BASE_URL = 'https://test-multi-store.lihaink.cn' +# VITE_PUSH_URL ='wss://test-multi-store.lihaink.cn/pull' +# VITE_BASE_URL = 'https://test-multi-store.lihaink.cn' # VITE_PUSH_URL ='wss://multi-store.lihaink.cn/pull' # VITE_BASE_URL = 'https://multi-store.lihaink.cn' \ No newline at end of file diff --git a/src/api/public.js b/src/api/public.js new file mode 100644 index 0000000..7990dd1 --- /dev/null +++ b/src/api/public.js @@ -0,0 +1,31 @@ +import request from '@/utils/axiosAPI.js' + +// 省 +export function apiProvince() { + return request.get('/province') +} + +// 市 +export function apiCity(data) { + return request.get('/city', { params: data }) +} + +// 区 +export function apiArea(data) { + return request.get('/area', { params: data }) +} + +// 街道 +export function apiStreet(data) { + return request.get('/street', { params: data }) +} + +// 村 +export function apiVillage(data) { + return request.get('/village', { params: data }) +} + +// 队 +export function apiBrigade(data) { + return request.get('/brigade', { params: data }) +} diff --git a/src/api/shop.js b/src/api/shop.js index 16fb3d2..9443b45 100644 --- a/src/api/shop.js +++ b/src/api/shop.js @@ -74,7 +74,7 @@ export function saleStoreListApi(data) { * @description 店铺商品分类 */ export function merchantCategoryListApi(data) { - return request.get(`goods/goodsclass/lists`, { params: data }) + return request.get(`/cate/cate/lists`, { params: data }) } diff --git a/src/api/user.js b/src/api/user.js index 8a0de44..9377d4f 100644 --- a/src/api/user.js +++ b/src/api/user.js @@ -26,3 +26,24 @@ export function info(data) { export function logout() { return request.post(`logout`) } + +/** + * @description 会员类型 + */ +export function userShipApi() { + return request.get(`/user/UserShip/lists`) + } + + /** + * @description 添加会员 + */ +export function userAddApi(data) { + return request.post(`/user/user/add`, data) + } + + /** + * @description 会员列表 + */ +export function userListsApi() { + return request.get(`/user/user/lists`) + } diff --git a/src/config/index.js b/src/config/index.js index 10da9e1..9e2be21 100644 --- a/src/config/index.js +++ b/src/config/index.js @@ -1,6 +1,7 @@ const config = { url: import.meta.env.VITE_BASE_URL + '/store', upload: import.meta.env.VITE_BASE_URL + '/store/upload/image/field', + api: import.meta.env.VITE_BASE_URL + '/api', } export default config; \ No newline at end of file diff --git a/src/layout/myAside.vue b/src/layout/myAside.vue index 73af1e2..9a7a9cc 100644 --- a/src/layout/myAside.vue +++ b/src/layout/myAside.vue @@ -43,6 +43,7 @@ const newOrder = (e) => { } catch (error) { console.error(error); isPlaying = false; + ElMessage.error('播放失败'); } }; @@ -82,6 +83,12 @@ const list = ref([ ico: "Van", count: 0, }, + { + name: "user", + title: "用户", + ico: "User", + count: 0, + }, // { name: "purchaseOrder", title: "采购订单", ico: "Van", count: 0 }, // { name: "orderCount", title: "订单统计", ico: "DocumentRemove", count: 0 }, // { name: "wallet", title: "余额提现", ico: "Wallet", count: 0 }, diff --git a/src/router/index.js b/src/router/index.js index 38a3af4..e820b9e 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -59,6 +59,12 @@ const routes = [ meta: { title: '入库登记' }, component: () => import('@/views/putStorage/index.vue'), }, + { + path: '/user', + name: 'user', + meta: { title: '用户' }, + component: () => import('@/views/user/index.vue'), + }, { path: '/test', name: 'test', diff --git a/src/utils/EscPos.js b/src/utils/EscPos.js index d461a0f..61206d9 100644 --- a/src/utils/EscPos.js +++ b/src/utils/EscPos.js @@ -116,7 +116,7 @@ export const printTicket = (obj = {}, test = false) => { if(!obj || !obj.order_id) obj = testObj; str += Esc.Size2(2) + Esc.Center() + Esc.boldFontOn() + obj.system_store_name + Esc.Size1() + "\n"; str += Esc.fillLine(" ") + Esc.boldFontOff() + "\n"; - if(obj.shipping_type == 2) str += Esc.Left() + "核销码: " + Esc.boldFontOn() + obj.verify_code + Esc.boldFontOff() + "\n"; + if(obj.shipping_type) str += Esc.Left() + "核销码: " + Esc.boldFontOn() + obj.verify_code + Esc.boldFontOff() + "\n"; str += Esc.Left() + "单号: " + obj.order_id + "\n"; str += Esc.Left() + "下单时间: " + obj.create_time + "\n"; diff --git a/src/utils/axiosAPI.js b/src/utils/axiosAPI.js new file mode 100644 index 0000000..a6d3902 --- /dev/null +++ b/src/utils/axiosAPI.js @@ -0,0 +1,86 @@ +import axios from "axios"; +import { ElMessage } from "element-plus"; +import router from "@/router/index.js"; +import { useUserStore } from "../store/user"; +import config from "@/config"; + +const request = axios.create({ + baseURL: config.api, + timeout: 60000 +}) + + +// 请求拦截器 +request.interceptors.request.use( + config => { + // 在发送请求之前做些什么,例如添加token、修改请求头等 + const token = localStorage.getItem('Token'); + if (token) { + config.headers['token'] = token; + } + + return config; + }, + error => { + // 处理请求错误 + console.error(error); + return Promise.reject(error); + } +); + +// 响应拦截器 +request.interceptors.response.use( + response => { + // 对响应数据做些什么,例如解析数据、统一处理错误等 + if (response.data.code === -1 && (response.data.msg == '登录过期' || response.data.msg == '登录超时,请重新登录')) { + ElMessage({ + message: response.data.msg, + type: 'error', + }) + setTimeout(() => { + const userStore = useUserStore(); + userStore.setUserInfo({}); + userStore.setToken(''); + router.push('/login'); + }, 500) + throw new Error(response.data.msg); + } + if (response.data.code === 400) { + ElMessage({ + message: response.data.msg, + type: 'error', + }) + throw new Error(response.data.msg); + } + if (response.data.show) { + ElMessage({ + message: response.data.msg, + type: 'error', + }) + } + if (response.data.code === 500) { + response.data.msg = JSON.parse(response.data.msg); + ElMessage({ + message: response.data.msg?.msg || response.data.msg, + type: 'error', + }) + throw new Error(response.data.msg); + } + // console.log(response.data); + if (response.data.code === 0) { + return Promise.reject(response.data) + } + return response.data; + }, + error => { + // 处理响应错误 + console.error(error); + ElMessage({ + message: error.response?.data?.msg || error, + type: 'error', + }) + return Promise.reject(error); + } +); + +export default request; \ No newline at end of file diff --git a/src/views/order/component/detail.vue b/src/views/order/component/detail.vue index eb8834f..be758f1 100644 --- a/src/views/order/component/detail.vue +++ b/src/views/order/component/detail.vue @@ -120,6 +120,11 @@ const getDetail = () => { }) } +// 备货 +const stockUp = () => { + console.log('备货'); +} + onMounted(() => { mitt.on("set-sale-order-detail", (res) => { console.log("===", res); @@ -204,6 +209,11 @@ onUnmounted(() => { +
@@ -221,13 +231,14 @@ onUnmounted(() => { overflow: hidden; .detail { - height: calc(100vh - 100px - 4rem); + height: 100%; box-sizing: border-box; position: relative; .table { padding: 1rem; padding-bottom: 6rem; + box-sizing: border-box; overflow-y: auto; height: 100%; @@ -260,6 +271,21 @@ onUnmounted(() => { } } } + + .footer { + position: absolute; + bottom: 0; + left: 0; + width: 100%; + height: 6rem; + box-sizing: border-box; + background-color: #fff; + display: flex; + justify-content: flex-end; + align-items: center; + padding: 0 2rem; + border-top: 1px solid #eee; + } } } diff --git a/src/views/saleHome/component/classify.vue b/src/views/saleHome/component/classify.vue index eb87a5e..49c2b1e 100644 --- a/src/views/saleHome/component/classify.vue +++ b/src/views/saleHome/component/classify.vue @@ -1,133 +1,166 @@ diff --git a/src/views/saleHome/index.vue b/src/views/saleHome/index.vue index 72ff3bb..f246072 100644 --- a/src/views/saleHome/index.vue +++ b/src/views/saleHome/index.vue @@ -202,8 +202,8 @@ onUnmounted(() => { @loadMore="loadMore" /> - + +
diff --git a/src/views/user/component/add.vue b/src/views/user/component/add.vue new file mode 100644 index 0000000..0afca64 --- /dev/null +++ b/src/views/user/component/add.vue @@ -0,0 +1,164 @@ + + + + + diff --git a/src/views/user/component/detail.vue b/src/views/user/component/detail.vue new file mode 100644 index 0000000..07be3b0 --- /dev/null +++ b/src/views/user/component/detail.vue @@ -0,0 +1,151 @@ + + + + + diff --git a/src/views/user/component/order.vue b/src/views/user/component/order.vue new file mode 100644 index 0000000..fb336ce --- /dev/null +++ b/src/views/user/component/order.vue @@ -0,0 +1,219 @@ + + + + + diff --git a/src/views/user/index.vue b/src/views/user/index.vue new file mode 100644 index 0000000..be5e477 --- /dev/null +++ b/src/views/user/index.vue @@ -0,0 +1,43 @@ + + + + +