diff --git a/src/api/index.js b/src/api/index.js index e832123..7d5ee4e 100644 --- a/src/api/index.js +++ b/src/api/index.js @@ -123,6 +123,14 @@ export const getStoreDetail = (id) => get('/store/get', { id }) // 更新店铺 export const updateStore = (data) => put('/store/update', data) +// 门店日程(某日预约 + 手动占用) +export const getScheduleDay = (storeId, date) => get('/schedule/day', { storeId, date }) + +/** blockType: walk_in | blocked;slotStart: ISO 本地时间 */ +export const createScheduleBlock = (data) => post('/schedule/block', data) + +export const deleteScheduleBlock = (id) => del(`/schedule/block?id=${id}`) + // 上传图片(uniapp 版:使用 uni.uploadFile) export const uploadImage = (filePath) => new Promise((resolve, reject) => { diff --git a/src/components/AppIcon.vue b/src/components/AppIcon.vue index 6e4113f..7f6a874 100644 --- a/src/components/AppIcon.vue +++ b/src/components/AppIcon.vue @@ -40,6 +40,12 @@ const ICON_MAP = { pin: [ 'M15 10.5a3 3 0 11-6 0 3 3 0 016 0z', 'M19.5 10.5c0 7.142-7.5 11.25-7.5 11.25S4.5 17.642 4.5 10.5a7.5 7.5 0 1115 0z' + ], + calendar: [ + 'M7.5 4H16.5C17.33 4 18 4.67 18 5.5V18.5C18 19.33 17.33 20 16.5 20H7.5C6.67 20 6 19.33 6 18.5V5.5C6 4.67 6.67 4 7.5 4Z', + 'M8 2.5V5', + 'M16 2.5V5', + 'M6 9H18' ] } diff --git a/src/pages.json b/src/pages.json index 152c649..129ea9a 100644 --- a/src/pages.json +++ b/src/pages.json @@ -9,6 +9,7 @@ {"path": "pages/mine/Staff"}, {"path": "pages/mine/ServiceType"}, {"path": "pages/mine/Store"}, + {"path": "pages/mine/Schedule"}, {"path": "pages/mine/MyReports"}, {"path": "pages/mine/MyOrders"}, {"path": "pages/mine/MyPets"}, diff --git a/src/pages/mine/Mine.vue b/src/pages/mine/Mine.vue index 808ee3c..46c8cc7 100644 --- a/src/pages/mine/Mine.vue +++ b/src/pages/mine/Mine.vue @@ -34,6 +34,11 @@ 店铺设置 + + + 门店日程 + + @@ -46,6 +51,11 @@ 店铺设置 + + + 门店日程 + + @@ -91,6 +101,7 @@ const { goPage, openAppPage } = useNavigator() const goStaffPage = () => uni.navigateTo({ url: '/pages/mine/Staff' }) const goServiceTypePage = () => uni.navigateTo({ url: '/pages/mine/ServiceType' }) const goStorePage = () => uni.navigateTo({ url: '/pages/mine/Store' }) +const goSchedulePage = () => uni.navigateTo({ url: '/pages/mine/Schedule' }) const openProfile = () => uni.navigateTo({ url: '/pages/mine/Profile' }) const goMyPetsPage = () => uni.navigateTo({ url: '/pages/mine/MyPets' }) const goMyOrdersPage = () => uni.navigateTo({ url: '/pages/mine/MyOrders' }) diff --git a/src/pages/mine/Schedule.vue b/src/pages/mine/Schedule.vue new file mode 100644 index 0000000..3a83ec1 --- /dev/null +++ b/src/pages/mine/Schedule.vue @@ -0,0 +1,450 @@ + + + + + diff --git a/src/utils/globalState.js b/src/utils/globalState.js index 2b8e612..fa2a2d4 100644 --- a/src/utils/globalState.js +++ b/src/utils/globalState.js @@ -13,7 +13,8 @@ const SUB_ROUTE_MAP = { profile: '/pages/mine/Profile', myReports: '/pages/mine/MyReports', myOrders: '/pages/mine/MyOrders', - myPets: '/pages/mine/MyPets' + myPets: '/pages/mine/MyPets', + schedule: '/pages/mine/Schedule' } /**