Commit f5908581 authored by 罗超's avatar 罗超

1

parent 17b724aa
...@@ -6,66 +6,66 @@ import { Notify } from 'quasar' ...@@ -6,66 +6,66 @@ import { Notify } from 'quasar'
/** /**
* get status code * get status code
* @param {AxiosResponse} response Axios response object * @param {AxiosResponse} response Axios response object
*/ */
const getErrorCode2text = (response: AxiosResponse): string => { const getErrorCode2text = (response: AxiosResponse): string => {
/** http status code */ /** http status code */
const code = response.status const code = response.status
/** notice text */ /** notice text */
let message = 'Request Error' let message = 'Request Error'
switch (code) { switch (code) {
case 400: case 400:
message = 'Request Error' message = 'Request Error'
break break
case 401: case 401:
message = 'Unauthorized, please login' message = 'Unauthorized, please login'
break break
case 403: case 403:
message = '拒绝访问' message = '拒绝访问'
break break
case 404: case 404:
message = '访问资源不存在' message = '访问资源不存在'
break break
case 408: case 408:
message = '请求超时' message = '请求超时'
break break
case 500: case 500:
message = '位置错误' message = '位置错误'
break break
case 501: case 501:
message = '承载服务未实现' message = '承载服务未实现'
break break
case 502: case 502:
message = '网关错误' message = '网关错误'
break break
case 503: case 503:
message = '服务暂不可用' message = '服务暂不可用'
break break
case 504: case 504:
message = '网关超时' message = '网关超时'
break break
case 505: case 505:
message = '暂不支持的 HTTP 版本' message = '暂不支持的 HTTP 版本'
break break
default: default:
message = '位置错误' message = '位置错误'
} }
return message return message
} }
/** /**
* @returns {AxiosResponse} result * @returns {AxiosResponse} result
* @tutorial see more:https://github.com/onlyling/some-demo/tree/master/typescript-width-axios * @tutorial see more:https://github.com/onlyling/some-demo/tree/master/typescript-width-axios
* @example * @example
* service.get<{data: string; code: number}>('/test').then(({data}) => { console.log(data.code) }) * service.get<{data: string; code: number}>('/test').then(({data}) => { console.log(data.code) })
*/ */
const service = Axios.create({ const service = Axios.create({
baseURL: process.env.BASE_APP_API, baseURL: process.env.BASE_APP_API,
timeout: 10000, timeout: 10000,
headers: { headers: {
'User-Type': 'bus', 'User-Type': 'bus',
'Content-Type': 'application/json;charset=UTF-8' 'Content-Type': 'application/json;charset=UTF-8'
} }
}) })
/** /**
...@@ -73,32 +73,32 @@ const service = Axios.create({ ...@@ -73,32 +73,32 @@ const service = Axios.create({
* @returns {AxiosRequestConfig} config * @returns {AxiosRequestConfig} config
*/ */
service.interceptors.request.use( service.interceptors.request.use(
async (config: AxiosRequestConfig) => { async (config: AxiosRequestConfig) => {
// 如果是获取token接口: // 如果是获取token接口:
if (config.url === '/auth/oauth/token') { if (config.url === '/auth/oauth/token') {
//TODO:用户登录的特殊处理, //TODO:用户登录的特殊处理,
} else { } else {
// 如果保存有token,则取,否则不添加Authorization // 如果保存有token,则取,否则不添加Authorization
if (localStorage.vuex && JSON.parse(localStorage.vuex).user?.token) { if (localStorage.vuex && JSON.parse(localStorage.vuex).user?.token) {
//TODO:Access_TOKEN 的获取,需要根据实际业务情况进行调整 //TODO:Access_TOKEN 的获取,需要根据实际业务情况进行调整
const token = Store.state.user?.token const token = Store.state.user?.token
// const tokenType = token.token_type // const tokenType = token.token_type
const accessToken = token.access_token const accessToken = token.access_token
config.headers.Token = `${accessToken}` config.headers.Token = `${accessToken}`
} }
//TODO:包装一层MSG,但是微服务应该去掉此步骤 //TODO:包装一层MSG,但是微服务应该去掉此步骤
config.data = { config.data = {
Msg: config.data Msg: config.data
} }
} }
return config return config
}, },
error => { error => {
//TODO: 新增网络请求异常处理业务 //TODO: 新增网络请求异常处理业务
return Promise.reject(error) return Promise.reject(error)
} }
) )
/** /**
...@@ -106,46 +106,48 @@ service.interceptors.request.use( ...@@ -106,46 +106,48 @@ service.interceptors.request.use(
* @returns {} * @returns {}
*/ */
service.interceptors.response.use( service.interceptors.response.use(
/** 请求有响应 */ /** 请求有响应 */
async (response: AxiosResponse) => { async (response: AxiosResponse) => {
if (response.status === 200) { if (response.status === 200) {
return Promise.resolve(response) if (response.data.Code === 1) {
} else { return Promise.resolve(response)
const __text = getErrorCode2text(response) }
return Promise.reject(new Error(__text)) } else {
} const __text = getErrorCode2text(response)
}, return Promise.reject(new Error(__text))
/** 请求无响应 */ }
(error: AxiosError) => { },
let __emsg: string = error.message || '' /** 请求无响应 */
(error: AxiosError) => {
let __emsg: string = error.message || ''
if (error.message) { if (error.message) {
__emsg = error.message __emsg = error.message
} }
if (error.response) { if (error.response) {
__emsg = error.response.data.message ? error.response.data.message : error.response.data.data __emsg = error.response.data.message ? error.response.data.message : error.response.data.data
} }
// timeout // timeout
if (__emsg.indexOf('timeout') >= 0) { if (__emsg.indexOf('timeout') >= 0) {
__emsg = 'timeout' __emsg = 'timeout'
} }
//TODO: 结合接口实际情况进行权限判断 //TODO: 结合接口实际情况进行权限判断
if (error?.response?.status === 401) { if (error?.response?.status === 401) {
if (router.currentRoute.value.path !== '/entry/login') { if (router.currentRoute.value.path !== '/entry/login') {
Notify.create({ Notify.create({
message: '登录凭证已过期,请重新登录', message: '登录凭证已过期,请重新登录',
color: 'warning', color: 'warning',
textColor: 'dark', textColor: 'dark',
icon: 'announcement' icon: 'announcement'
}) })
router.push('/entry/login') router.push('/entry/login')
} }
return Promise.reject(new Error('401')) return Promise.reject(new Error('401'))
} }
return Promise.reject(new Error(__emsg)) return Promise.reject(new Error(__emsg))
} }
) )
export default service export default service
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
<tr v-if="data && data.length==0"> <tr v-if="data && data.length==0">
<td :colspan="8" align="center">暂无数据</td> <td :colspan="8" align="center">暂无数据</td>
</tr> </tr>
<draggable v-model="data" tag="tbody" item-key="Id" @update="datadragEnd"> <draggable v-model="data" tag="tbody" item-key="Id" @update="datadragEnd" :clone="cloneFun">
<template #item="{ element }"> <template #item="{ element }">
<tr> <tr>
<td><span>{{element.Name}}</span></td> <td><span>{{element.Name}}</span></td>
...@@ -57,88 +57,21 @@ ...@@ -57,88 +57,21 @@
</div> </div>
</template> </template>
<script lang="ts"> <script lang="ts">
import { defineComponent , onMounted } from 'vue' import { defineComponent ,ref, onMounted } from 'vue'
import customerService from '@/api/customer' import customerService from '@/api/customer'
import draggable from "vuedraggable"; import draggable from "vuedraggable";
export default defineComponent({ export default defineComponent({
components: { draggable }, components: { draggable },
setup() { setup() {
const data = [{ const data =ref([]);
DeptId: 0,
DeptName: "-",
Digits: 0,
Enable: 1,
Id: 21,
InputType: "2",
IsDefault: 0,
IsLock: 0,
IsSystem: 0,
Name: "姓名",
Options: "[\r\n {\r\n \"Id\": 0,\r\n \"Name\": \"\"\r\n }\r\n]",
OptionsList: [{ Id: 0, Name: "" }],
Required: 1,
Sort: 1,
Type: 1,
TypeName: "单行文本",
UpdateBy: 1,
UpdateByName: "管理员",
UpdateTime: "2021-09-28 11:06:00",
WordNum: 11,
}, {
DeptId: 0,
DeptName: "-",
Digits: 0,
Enable: 1,
Id: 15,
InputType: "1",
IsDefault: 0,
IsLock: 0,
IsSystem: 0,
Name: "性别",
Options: "[\r\n {\r\n \"Id\": 1,\r\n \"Name\": \"\"\r\n },\r\n {\r\n \"Id\": 2,\r\n \"Name\": \"\"\r\n }\r\n]",
OptionsList: [{ Id: 1, Name: "男" }, { Id: 2, Name: "女" }],
Required: 1,
Sort: 5,
Type: 3,
TypeName: "单选",
UpdateBy: 1,
UpdateByName: "管理员",
UpdateTime: "2021-09-28 11:08:19",
WordNum: 1,
},{
DeptId: 0,
DeptName: "-",
Digits: 0,
Enable: 1,
Id: 13,
InputType: "1",
IsDefault: 0,
IsLock: 0,
IsSystem: 0,
Name: "性别2",
Options: "[\r\n {\r\n \"Id\": 1,\r\n \"Name\": \"\"\r\n },\r\n {\r\n \"Id\": 2,\r\n \"Name\": \"\"\r\n }\r\n]",
OptionsList: [{ Id: 1, Name: "男" }, { Id: 2, Name: "女" }],
Required: 1,
Sort: 5,
Type: 3,
TypeName: "单选2",
UpdateBy: 1,
UpdateByName: "管理员2",
UpdateTime: "2021-09-28 11:08:19",
WordNum: 1,
}];
const changePage = () => { const changePage = () => {
customerService.getCustomerFiledList({ Enable: -1 }).then((res) => { customerService.getCustomerFiledList({ Enable: -1 }).then((res) => {
console.log(res) console.log(132,res)
data.value=res.data.Data
}) })
} }
// const getdata = (e) => { const datadragEnd = (e:any) => {
// console.log(e,'拖动中的元素') console.log('拖动结束',e)
// }
const datadragEnd = () => {
console.log('拖动结束')
} }
onMounted(() => { onMounted(() => {
...@@ -148,7 +81,7 @@ ...@@ -148,7 +81,7 @@
return { return {
data, data,
changePage, changePage,
datadragEnd datadragEnd,
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment