zhuzhen 9 месяцев назад
Родитель
Сommit
22c22444fe

+ 142 - 137
src/renderer/src/api/FetchRequest.ts

@@ -2,147 +2,152 @@ import Auth from '@renderer/api/Auth'
 import { ElMessage } from 'element-plus'
 import vimConfig from '@renderer/config/VimConfig'
 import VimConfig from '@renderer/config/VimConfig'
-
+import showShop from '@renderer/components/web-modal/index'
 /**
  * 请求类,支持无感刷新token
  * @author 乐天
  */
 class FetchRequest {
-  isRefreshing: boolean
-  private static instance: FetchRequest
-
-  private constructor() {
-    this.isRefreshing = false
-  }
-
-  /**
-   * 单例构造方法,构造一个广为人知的接口,供用户对该类进行实例化
-   * @returns {FetchRequest}
-   */
-  static getInstance() {
-    if (!this.instance) {
-      this.instance = new FetchRequest()
-    }
-    return this.instance
-  }
-
-  /**
-   * 请求方法
-   * @param url 请求路径
-   * @param params 参数
-   * @param method 方法
-   * @param isNeedToken 是否需要token
-   */
-  request = (url: string, params: string, method: string, isNeedToken = false) => {
-    const header: HeadersInit = {
-      Accept: 'application/json',
-      'Content-Type': 'application/json'
-    }
-
-    const token = Auth.getToken()
-    if (isNeedToken && token) {
-      header.Authorization = 'Bearer ' + token
-    }
-
-    const config: RequestInit = {
-      method: method,
-      mode: 'cors',
-      headers: header
-    }
-
-    if (method !== 'GET') {
-      config.body = params
-    }
-
-    return fetch(this.getHost() + url, config).then((response) => {
-      return this.check(response)
-    })
-  }
-
-  /**
-   * upload请求方法
-   */
-  upload = (file: File) => {
-    const token = Auth.getToken()
-    const header: HeadersInit = {
-      'Access-Control-Allow-Origin': '*',
-      Authorization: 'Bearer ' + token
-    }
-    const formData = new FormData()
-    formData.append('file', file)
-    const config: RequestInit = {
-      method: 'POST',
-      mode: 'cors',
-      headers: header,
-      body: formData
-    }
-
-    return fetch(`${this.getHost()}/${VimConfig.uploadType}/upload`, config).then((response) => {
-      return this.check(response)
-    })
-  }
-
-  /**
-   * 检查请求返回值,如果token失效,执行刷新方法
-   * @param response 请求响应数据
-   */
-  check = (response: Response) => {
-    //token 失效
-    if (response.status === 200) {
-      return response
-        .json()
-        .then((res) => {
-          if (res.code === 401) {
-            Auth.logout()
-            return Promise.reject(res)
-          } else if (res.code !== 200) {
-            ElMessage.error(res.msg)
-            return Promise.reject(res)
-          } else {
-            return Promise.resolve(res)
-          }
-        })
-        .catch((err) => {
-          return Promise.reject(err)
-        })
-    } else {
-      ElMessage.error('请求出错,状态码:' + response.status)
-      return Promise.reject('请求出错')
-    }
-  }
-
-  /**
-   * 获取有效的ip
-   */
-  getEffectiveIp = (): string => {
-    return Auth.getIp().length > 0 ? Auth.getIp() : VimConfig.host
-  }
-
-  getHost = (): string => {
-    //return `${vimConfig.httProtocol}://${Auth.getIp()}:${vimConfig.httPort}`
-	return `${vimConfig.httProtocol}://${Auth.getIp()}`
-  }
-
-  // 有些 api 并不需要用户授权使用,则无需携带 access_token;默认不携带,需要传则设置第三个参数为 true
-  get = (url: string, isNeedToken = false) => {
-    return this.request(url, '', 'GET', isNeedToken)
-  }
-
-  post = (url: string, params: string, isNeedToken = false) => {
-    return this.request(url, params, 'POST', isNeedToken)
-  }
-
-  put = (url: string, params: string, isNeedToken = false) => {
-    return this.request(url, params, 'PUT', isNeedToken)
-  }
-
-  del = (url: string, params: string, isNeedToken = false) => {
-    return this.request(url, params, 'DELETE', isNeedToken)
-  }
-
-  patch = (url: string, params: string, isNeedToken = false) => {
-    return this.request(url, params, 'PATCH', isNeedToken)
-  }
+	isRefreshing : boolean
+	private static instance : FetchRequest
+
+	private constructor() {
+		this.isRefreshing = false
+	}
+
+	/**
+	 * 单例构造方法,构造一个广为人知的接口,供用户对该类进行实例化
+	 * @returns {FetchRequest}
+	 */
+	static getInstance() {
+		if (!this.instance) {
+			this.instance = new FetchRequest()
+		}
+		return this.instance
+	}
+
+	/**
+	 * 请求方法
+	 * @param url 请求路径
+	 * @param params 参数
+	 * @param method 方法
+	 * @param isNeedToken 是否需要token
+	 */
+	request = (url : string, params : string, method : string, isNeedToken = false) => {
+		const header : HeadersInit = {
+			Accept: 'application/json',
+			'Content-Type': 'application/json'
+		}
+
+		const token = Auth.getToken()
+		if (isNeedToken && token) {
+			header.Authorization = 'Bearer ' + token
+		}
+
+		const config : RequestInit = {
+			method: method,
+			mode: 'cors',
+			headers: header
+		}
+
+		if (method !== 'GET') {
+			config.body = params
+		}
+
+		return fetch(this.getHost() + url, config).then((response) => {
+			
+			return this.check(response)
+		})
+	}
+
+	/**
+	 * upload请求方法
+	 */
+	upload = (file : File) => {
+		const token = Auth.getToken()
+		const header : HeadersInit = {
+			'Access-Control-Allow-Origin': '*',
+			Authorization: 'Bearer ' + token
+		}
+		const formData = new FormData()
+		formData.append('file', file)
+		const config : RequestInit = {
+			method: 'POST',
+			mode: 'cors',
+			headers: header,
+			body: formData
+		}
+
+		return fetch(`${this.getHost()}/${VimConfig.uploadType}/upload`, config).then((response) => {
+			
+			return this.check(response)
+		})
+	}
+
+	/**
+	 * 检查请求返回值,如果token失效,执行刷新方法
+	 * @param response 请求响应数据
+	 */
+	check = (response : Response) => {
+		//token 失效
+		if (response.status === 200) {
+			return response
+				.json()
+				.then((res) => {
+					if (res.code === 401) {
+						Auth.logout()
+						return Promise.reject(res)
+					} else if (res.code == 4100) {
+						showShop("1", false)
+						return;
+					} else if (res.code !== 200) {
+						ElMessage.error(res.msg)
+						return Promise.reject(res)
+					} else {
+						return Promise.resolve(res)
+					}
+				})
+				.catch((err) => {
+					return Promise.reject(err)
+				})
+		} else {
+			ElMessage.error('请求出错,状态码:' + response.status)
+			return Promise.reject('请求出错')
+		}
+	}
+
+	/**
+	 * 获取有效的ip
+	 */
+	getEffectiveIp = () : string => {
+		return Auth.getIp().length > 0 ? Auth.getIp() : VimConfig.host
+	}
+
+	getHost = () : string => {
+		//return `${vimConfig.httProtocol}://${Auth.getIp()}:${vimConfig.httPort}`
+		return `${vimConfig.httProtocol}://${Auth.getIp()}`
+	}
+
+	// 有些 api 并不需要用户授权使用,则无需携带 access_token;默认不携带,需要传则设置第三个参数为 true
+	get = (url : string, isNeedToken = false) => {
+		return this.request(url, '', 'GET', isNeedToken)
+	}
+
+	post = (url : string, params : string, isNeedToken = false) => {
+		return this.request(url, params, 'POST', isNeedToken)
+	}
+
+	put = (url : string, params : string, isNeedToken = false) => {
+		return this.request(url, params, 'PUT', isNeedToken)
+	}
+
+	del = (url : string, params : string, isNeedToken = false) => {
+		return this.request(url, params, 'DELETE', isNeedToken)
+	}
+
+	patch = (url : string, params : string, isNeedToken = false) => {
+		return this.request(url, params, 'PATCH', isNeedToken)
+	}
 }
 
-export default FetchRequest.getInstance()
+export default FetchRequest.getInstance()

+ 1 - 1
src/renderer/src/api/WsRequest.ts

@@ -55,7 +55,7 @@ class WsRequest {
 
   public init(): void {
     this.closeByUser = false
-    this.url = `${vimConfig.wsProtocol}://${Auth.getIp()}:${
+    this.url = `${vimConfig.wsProtocol}://${Auth.getIpwx()}:${
       vimConfig.wsPort
     }?token=${Auth.getToken()}&client=${vimConfig.client}&uuid=${this.uuid}`
     this.socket = new WebSocket(this.url)

+ 65 - 0
src/renderer/src/components/web-modal/WebModal.vue

@@ -0,0 +1,65 @@
+<template>
+  <el-dialog
+    v-model="open"
+    width="40rem"
+    center
+    :show-close="true"
+    :close-on-click-modal="false"
+    @close="close"
+  >
+    <div  class="info">
+      <iframe src="http://ytjy.tv" frameborder="0" height="500" width="100%" scrolling="no"></iframe>
+    </div>
+ 
+  </el-dialog>
+</template>
+
+<script setup lang="ts">
+import { onMounted, ref } from 'vue'
+
+const open = ref(false)
+
+const props = defineProps({
+  userId: {
+    type: String,
+    required: true,
+    default: null
+  },
+  showSend: {
+    type: Boolean,
+    required: false,
+    default: false
+  },
+  closeDialog: {
+    type: Function,
+    default: null
+  }
+})
+
+const getIsFriend = () => {
+
+}
+
+
+onMounted(() => {
+	open.value = true
+    getIsFriend()
+})
+
+const close = () => {
+	props.closeDialog()
+}
+
+</script>
+
+<style scoped lang="less">
+.info {
+  width: 375px;
+  
+}
+
+.description {
+  padding: 20px 20px 0 20px;
+  background-color: #ffffff;
+}
+</style>

+ 28 - 0
src/renderer/src/components/web-modal/index.ts

@@ -0,0 +1,28 @@
+import { createApp } from 'vue'
+import ElementPlus from 'element-plus'
+import WebModal from '@renderer/components/web-modal/WebModal.vue'
+import router from '@renderer/router'
+import store from '@renderer/store'
+
+/**
+ * 函数方式调用日志
+ * @param userId userId
+ * @param showSend showSend
+ */
+const showShop = (userId: string, showSend: boolean): void => {
+  const instance = createApp(WebModal, { userId, showSend, closeDialog })
+  instance.use(router)
+  instance.use(store)
+
+  // 使用element-plus 并且设置全局的大小
+  instance.use(ElementPlus)
+  const node = document.createElement('div')
+  document.body.appendChild(node)
+  instance.mount(node)
+  function closeDialog() {
+    instance.unmount()
+    document.body.removeChild(node)
+  }
+}
+
+export default showShop

+ 2 - 2
src/renderer/src/config/VimConfig.ts

@@ -15,8 +15,8 @@ interface VimConfig {
 
 const vimConfig: VimConfig = {
   name: '信息通',
-  host: 'sup.workervip.com',
-  hostwx: '47.115.48.242',
+  host: 'sup.abjyfutuvip.top:8080',
+  hostwx: 'sup.abjyfutuvip.top',
   httProtocol: 'http',
   wsProtocol: 'ws',
   httPort: 8080,

+ 2 - 2
src/renderer/src/views/Login.vue

@@ -21,9 +21,9 @@
       </el-form-item>
 
       <div class="el-row">
-        <!-- <div class="el-col-12">
+        <div class="el-col-12">
           <el-button type="info" @click="router.push('/register')">注册</el-button>
-        </div> -->
+        </div>
         <div class="el-col-12">
           <div class="text-right">
             <el-button type="primary" @click="submit">登录</el-button>