冯诚 3 лет назад
Родитель
Сommit
b00864cc56
5 измененных файлов с 165 добавлено и 6 удалено
  1. 25 6
      src/pages/login/index.vue
  2. 26 0
      src/service/order.ts
  3. 18 0
      src/service/repair.ts
  4. 63 0
      src/service/types/user.d.ts
  5. 33 0
      src/service/user.ts

+ 25 - 6
src/pages/login/index.vue

@@ -6,15 +6,22 @@
       <div class="ptc-form">
         <div class="title">Sign in to PTC Care Plus</div>
         <div class="ptc-form-item">
-          <input class="ptc-input" placeholder="email address" />
+          <input
+            v-model="loginData.email"
+            class="ptc-input"
+            placeholder="email address"
+          />
         </div>
         <div class="ptc-form-item">
-          <input class="ptc-input" type="password" placeholder="password" />
+          <input
+            v-model="loginData.password"
+            class="ptc-input"
+            type="password"
+            placeholder="password"
+          />
         </div>
         <div class="ptc-form-item">
-          <button class="ptc-button" @click="showSurprise = true">
-            SIGN IN
-          </button>
+          <button class="ptc-button" @click="handleLogin">SIGN IN</button>
         </div>
         <div class="ptc-form-item">
           <p class="tip">
@@ -67,10 +74,22 @@
 </template>
 
 <script setup lang="ts">
-import { ref } from 'vue'
+import { ref, reactive } from 'vue'
+import { useRouter } from 'vue-router'
 import NavBar from '@/components/nav-bar/index.vue'
+import { login } from '@/service/user'
 
+const router = useRouter()
 const showSurprise = ref(false)
+const loginData = reactive<ApiUser.Login.Request>({
+  email: '',
+  password: '',
+})
+
+async function handleLogin() {
+  await login(loginData)
+  router.push('/')
+}
 </script>
 
 <style lang="scss">

+ 26 - 0
src/service/order.ts

@@ -0,0 +1,26 @@
+import request from './request'
+
+export function getOrderList() {
+  return request.get('/order/list')
+}
+
+export function cancelOrder(id: number) {
+  return request.post('/order/cancel', { id })
+}
+
+export function deleteOrder(id: number) {
+  return request.post('/order/delete', { id })
+}
+
+export function getOrderInfo(id: number) {
+  return request.get('/order/info?id=' + id)
+}
+
+/** 礼品寄送-填写邮寄地址 */
+export function applyPost(data: any) {
+  return request.post('/order/post/apply', data)
+}
+
+export function getPostInfo(member_right_id: string) {
+  return request.get('/order/post/info', { params: { member_right_id } })
+}

+ 18 - 0
src/service/repair.ts

@@ -0,0 +1,18 @@
+import request from './request'
+
+/** 获取零售店列表 */
+export function getShopList(params: any) {
+  return request.get('/shop/list', { params })
+}
+
+/** 获取店铺可预约的时间段 */
+export function getShopPeriods(params: any) {
+  const { date, ...rest } = params
+  return request.get('/igeektek', {
+    params: { ...rest, api: `v2/repair/appointment/${date}` },
+  })
+}
+
+export function getRepairPhone() {
+  return request.get<string>('/repair/phone')
+}

+ 63 - 0
src/service/types/user.d.ts

@@ -0,0 +1,63 @@
+declare namespace ApiUser {
+  namespace Register {
+    interface Request {
+      name: string
+      email: string
+      password: string
+      password_confirmation: string
+    }
+  }
+
+  namespace Login {
+    interface Request {
+      email: string
+      password: string
+    }
+  }
+
+  namespace PasswordReset {
+    interface Request {
+      email: string
+      password: string
+      password_confirmation: string
+    }
+  }
+
+  namespace PasswordChange {
+    interface Request {
+      old_password: string
+      new_password: string
+      new_password_confirmation: string
+    }
+  }
+
+  namespace Update {
+    interface Request {
+      name: string
+      mobile: string
+    }
+  }
+
+  namespace Info {
+    interface Response {
+      id: number
+      name: string
+      email: string
+      mobile: string
+      address: string
+      /** 注册来源:1邮箱;2Facebook;3Google;4Apple */
+      from: number
+      num_gift_card: number
+      num_order: number
+      num_repair: number
+      orders: {
+        id: number
+        phone_info: string
+        phone_imei: string
+        product_name: string
+        start_time: string
+        end_time: string
+      }[]
+    }
+  }
+}

+ 33 - 0
src/service/user.ts

@@ -0,0 +1,33 @@
+import request from './request'
+
+export function register(data: ApiUser.Register.Request) {
+  return request.post('/user/register', data)
+}
+
+export function login(data: ApiUser.Login.Request) {
+  return request.post('/user/login', data)
+}
+
+export function logout() {
+  return request.post('/user/logout')
+}
+
+export function sendPasswordEmail(email: string) {
+  return request.post('/user/password/email', { email })
+}
+
+export function resetPassword(data: ApiUser.PasswordReset.Request) {
+  return request.post('/user/password/reset', data)
+}
+
+export function changePassword(data: ApiUser.PasswordChange.Request) {
+  return request.post('/user/password/change', data)
+}
+
+export function updateUserInfo(data: ApiUser.Update.Request) {
+  return request.post('/user/update', data)
+}
+
+export function getUserInfo() {
+  return request.get<ApiUser.Info.Response>('/user/info')
+}