Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
E
enterprise-platform
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
赵啸非
enterprise-platform
Commits
364c2fbd
Commit
364c2fbd
authored
Dec 17, 2024
by
姬鋆屾
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fixed:修复token过期无法回到登录页的问题
parent
33ed8a80
Changes
9
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
350 additions
and
320 deletions
+350
-320
enterprise-manager-ui/admin/src/assets/mixins/form.js
enterprise-manager-ui/admin/src/assets/mixins/form.js
+56
-50
enterprise-manager-ui/admin/src/assets/mixins/formdialog.js
enterprise-manager-ui/admin/src/assets/mixins/formdialog.js
+3
-0
enterprise-manager-ui/admin/src/assets/mixins/table.js
enterprise-manager-ui/admin/src/assets/mixins/table.js
+4
-1
enterprise-manager-ui/admin/src/assets/utils/ajax.js
enterprise-manager-ui/admin/src/assets/utils/ajax.js
+55
-51
enterprise-manager-ui/admin/src/assets/utils/httpErrorHandler.js
...ise-manager-ui/admin/src/assets/utils/httpErrorHandler.js
+48
-48
enterprise-manager-ui/admin/src/assets/utils/index.js
enterprise-manager-ui/admin/src/assets/utils/index.js
+151
-137
enterprise-manager-ui/admin/src/assets/utils/queue.js
enterprise-manager-ui/admin/src/assets/utils/queue.js
+33
-30
enterprise-manager-ui/admin/src/components/FormField.vue
enterprise-manager-ui/admin/src/components/FormField.vue
+0
-1
enterprise-manager-ui/admin/src/views/bussinesscard/record/drawershow.vue
...er-ui/admin/src/views/bussinesscard/record/drawershow.vue
+0
-2
No files found.
enterprise-manager-ui/admin/src/assets/mixins/form.js
View file @
364c2fbd
...
...
@@ -8,15 +8,13 @@ export default {
methods
:
{
// 渲染前置处理
beforeRender
(
data
)
{
return
data
return
data
;
},
// 渲染后置处理
afterRender
(
data
)
{
},
afterRender
(
data
)
{},
// 提交表单的前置处理
beforeSubmit
(
data
)
{
return
data
return
data
;
},
// 提交表单的后置处理, 会阻断默认的回退行为
afterSubmit
(
data
)
{
...
...
@@ -38,16 +36,18 @@ export default {
this
.
dict
=
Object
.
assign
({},
this
.
dict
,
res
.
dict
);
this
.
afterRender
(
res
);
})
.
catch
(
error
=>
{
console
.
error
(
error
)
.
catch
((
error
)
=>
{
this
.
$message
.
error
(
error
.
message
);
error
.
message
.
indexOf
(
"
过期
"
)
>
-
1
?
(
window
.
location
=
"
/#/login
"
)
:
""
;
})
.
then
(
data
=>
{
.
then
(
(
data
)
=>
{
clearTimeout
(
this
.
loadingTimer
);
this
.
loadingTimer
=
setTimeout
(()
=>
{
this
.
loading
=
false
;
},
300
);
})
})
;
},
// 提交表单
submitForm
(
ref
)
{
...
...
@@ -55,72 +55,81 @@ export default {
el
.
validate
((
valid
)
=>
{
if
(
!
valid
)
return
;
this
.
loading
=
true
;
this
.
$post
(
this
.
urls
.
saveUrl
||
this
.
pageInfo
.
saveUrl
,
this
.
beforeSubmit
(
this
.
form
)
this
.
$post
(
this
.
urls
.
saveUrl
||
this
.
pageInfo
.
saveUrl
,
this
.
beforeSubmit
(
this
.
form
)
)
.
then
(
res
=>
{
.
then
(
(
res
)
=>
{
this
.
$message
.
success
(
res
.
msg
);
this
.
afterSubmit
(
res
);
})
.
catch
(
error
=>
{
.
catch
(
(
error
)
=>
{
this
.
$message
.
error
(
error
.
message
);
})
.
then
(
data
=>
{
.
then
(
(
data
)
=>
{
clearTimeout
(
this
.
loadingTimer
);
this
.
loadingTimer
=
setTimeout
(()
=>
{
this
.
loading
=
false
;
},
200
);
})
})
;
});
},
// 复制一个数组或对象
util_copy
(
data
)
{
return
JSON
.
parse
(
JSON
.
stringify
(
data
))
return
JSON
.
parse
(
JSON
.
stringify
(
data
))
;
},
// 工具方法,把数字转化为字符串
util_toString
(
data
,
array
)
{
//原始数据
const
dataCopy
=
Object
.
assign
({},
data
);
array
.
forEach
(
item
=>
{
array
.
forEach
(
(
item
)
=>
{
//如果相等做操作
dataCopy
[
item
]
=
dataCopy
[
item
]
===
undefined
?
''
:
dataCopy
[
item
]
+
''
;
})
dataCopy
[
item
]
=
dataCopy
[
item
]
===
undefined
?
""
:
dataCopy
[
item
]
+
""
;
});
return
dataCopy
;
},
// 工具方法,把字符串转化为数组
util_toArrays
(
data
,
array
)
{
const
dataCopy
=
Object
.
assign
({},
data
);
array
.
forEach
(
item
=>
{
dataCopy
[
item
]
=
dataCopy
[
item
]
===
undefined
?
[]
:
dataCopy
[
item
].
split
(
"
,
"
);
})
array
.
forEach
((
item
)
=>
{
dataCopy
[
item
]
=
dataCopy
[
item
]
===
undefined
?
[]
:
dataCopy
[
item
].
split
(
"
,
"
);
});
return
dataCopy
;
},
// 工具方法,把字符串转化为格式化日期
util_toDateStr
(
data
,
array
)
{
const
dataCopy
=
Object
.
assign
({},
data
);
array
.
forEach
(
item
=>
{
dataCopy
[
item
]
=
dataCopy
[
item
]
===
undefined
?
''
:
this
.
util_formatterDate
(
dataCopy
[
item
]);
})
array
.
forEach
((
item
)
=>
{
dataCopy
[
item
]
=
dataCopy
[
item
]
===
undefined
?
""
:
this
.
util_formatterDate
(
dataCopy
[
item
]);
});
return
dataCopy
;
},
util_formatterDate
(
time
)
{
let
date
=
new
Date
(
Number
(
time
));
let
Y
=
date
.
getFullYear
()
+
'
-
'
;
let
M
=
(
date
.
getMonth
()
+
1
<
10
?
'
0
'
+
(
date
.
getMonth
()
+
1
)
:
date
.
getMonth
()
+
1
)
+
'
-
'
;
let
D
=
this
.
panLeft
(
date
.
getDate
())
+
'
'
;
let
h
=
this
.
panLeft
(
date
.
getHours
())
+
'
:
'
;
let
m
=
this
.
panLeft
(
date
.
getMinutes
())
+
'
:
'
;
let
Y
=
date
.
getFullYear
()
+
"
-
"
;
let
M
=
(
date
.
getMonth
()
+
1
<
10
?
"
0
"
+
(
date
.
getMonth
()
+
1
)
:
date
.
getMonth
()
+
1
)
+
"
-
"
;
let
D
=
this
.
panLeft
(
date
.
getDate
())
+
"
"
;
let
h
=
this
.
panLeft
(
date
.
getHours
())
+
"
:
"
;
let
m
=
this
.
panLeft
(
date
.
getMinutes
())
+
"
:
"
;
let
s
=
this
.
panLeft
(
date
.
getSeconds
());
return
Y
+
M
+
D
+
h
+
m
+
s
;
return
Y
+
M
+
D
+
h
+
m
+
s
;
},
panLeft
(
num
){
return
num
<
10
?
'
0
'
+
num
:
num
;
panLeft
(
num
)
{
return
num
<
10
?
"
0
"
+
num
:
num
;
},
// 从dict字段暴力取值,取不到则返回原值
util_formatter
(
key
,
val
)
{
try
{
return
this
.
dict
[
key
][
val
]
return
this
.
dict
[
key
][
val
]
;
}
catch
(
error
)
{
return
val
;
}
...
...
@@ -133,24 +142,24 @@ export default {
}
});
},
0
);
}
}
,
},
computed
:
{
pageInfo
()
{
let
currUrl
=
this
.
$route
.
path
;
let
urlArray
=
currUrl
.
split
(
'
/
'
);
let
urlArray
=
currUrl
.
split
(
"
/
"
);
let
type
=
urlArray
.
pop
();
urlArray
.
push
(
'
save
'
);
let
saveUrl
=
urlArray
.
join
(
'
/
'
);
urlArray
.
push
(
"
save
"
);
let
saveUrl
=
urlArray
.
join
(
"
/
"
);
urlArray
.
pop
();
urlArray
.
push
(
'
edit
'
);
let
editUrl
=
urlArray
.
join
(
'
/
'
);
urlArray
.
push
(
"
edit
"
);
let
editUrl
=
urlArray
.
join
(
"
/
"
);
urlArray
.
pop
();
urlArray
.
push
(
'
add
'
);
let
addUrl
=
urlArray
.
join
(
'
/
'
);
urlArray
.
push
(
"
add
"
);
let
addUrl
=
urlArray
.
join
(
"
/
"
);
urlArray
.
pop
();
urlArray
.
push
(
'
view
'
);
let
viewUrl
=
urlArray
.
join
(
'
/
'
);
urlArray
.
push
(
"
view
"
);
let
viewUrl
=
urlArray
.
join
(
"
/
"
);
return
{
type
,
currUrl
,
...
...
@@ -174,9 +183,6 @@ export default {
toString
:
[],
// 需要把number转化为string的表单字段name数组
toArrays
:
[],
// 需要把number转化为arrays的表单字段name数组
toDate
:
[],
// 需要把number转化为date的表单字段name数组
}
}
}
};
},
};
enterprise-manager-ui/admin/src/assets/mixins/formdialog.js
View file @
364c2fbd
...
...
@@ -51,6 +51,9 @@ export default {
})
.
catch
((
error
)
=>
{
this
.
$message
.
error
(
error
.
message
);
error
.
message
.
indexOf
(
"
过期
"
)
>
-
1
?
(
window
.
location
=
"
/#/login
"
)
:
""
;
throw
error
;
})
.
then
((
data
)
=>
{
...
...
enterprise-manager-ui/admin/src/assets/mixins/table.js
View file @
364c2fbd
...
...
@@ -64,7 +64,6 @@ export default {
return
;
}
this
.
tableData
.
loading
=
true
;
console
.
log
(
this
.
query
);
if
(
this
.
$route
.
path
==
"
/user/list
"
)
{
this
.
query
.
userType
?
(
this
.
query
.
userTypeList
=
[])
...
...
@@ -82,8 +81,12 @@ export default {
this
.
afterRender
(
this
.
tableData
);
})
.
catch
((
error
)
=>
{
console
.
log
(
error
);
if
(
error
.
message
==
"
自动取消ajax操作
"
)
return
;
this
.
$message
.
error
(
error
.
message
);
error
.
message
.
indexOf
(
"
过期
"
)
>
-
1
?
(
window
.
location
=
"
/#/login
"
)
:
""
;
})
.
then
((
data
)
=>
{
clearTimeout
(
this
.
loadingTimer
);
...
...
enterprise-manager-ui/admin/src/assets/utils/ajax.js
View file @
364c2fbd
import
axios
from
'
axios
'
;
import
Qs
from
'
qs
'
;
const
JSONbig
=
require
(
'
json-bigint
'
)({
"
storeAsString
"
:
true
});
import
cookie
from
'
./cookie
'
;
import
httpErrorHandler
from
'
./httpErrorHandler
'
;
import
axios
from
"
axios
"
;
import
Qs
from
"
qs
"
;
const
JSONbig
=
require
(
"
json-bigint
"
)({
storeAsString
:
true
});
import
cookie
from
"
./cookie
"
;
import
httpErrorHandler
from
"
./httpErrorHandler
"
;
const
instance
=
axios
.
create
({
baseURL
:
'
/enterprise
'
,
baseURL
:
"
/enterprise
"
,
headers
:
{
post
:
{
'
Content-Type
'
:
'
application/json;charset=UTF-8
'
,
'
dataType
'
:
'
json
'
,
}
"
Content-Type
"
:
"
application/json;charset=UTF-8
"
,
dataType
:
"
json
"
,
}
,
},
transformResponse
:
[
data
=>
{
try
{
JSON
.
parse
(
data
);
return
JSONbig
.
parse
(
data
);
}
catch
(
error
)
{
return
data
;
}
}],
transformResponse
:
[
(
data
)
=>
{
try
{
JSON
.
parse
(
data
);
return
JSONbig
.
parse
(
data
);
}
catch
(
error
)
{
return
data
;
}
},
],
});
instance
.
interceptors
.
request
.
use
(
(
config
)
=>
{
//config.data = Qs.stringify(config.data, {arrayFormat: 'repeat', allowDots: true});
//config.data = Qs.stringify(config.data, {arrayFormat: 'indices', allowDots: true});
//brackets
// 也可以在这里给请求添加token之类的字段
// config.headers['Content-Type'] = 'application/json;charset=UTF-8'
// config.headers.timestamp = Math.floor(new Date().getTime() / 1000)
// console.log("sessionStorage",window.sessionStorage)
config
.
headers
.
Authorization
=
window
.
sessionStorage
.
getItem
(
"
token
"
)
||
""
;
//console.log("request config and session",config,window.sessionStorage);
instance
.
interceptors
.
request
.
use
(
config
=>
{
//config.data = Qs.stringify(config.data, {arrayFormat: 'repeat', allowDots: true});
//config.data = Qs.stringify(config.data, {arrayFormat: 'indices', allowDots: true});
//brackets
// 也可以在这里给请求添加token之类的字段
// config.headers['Content-Type'] = 'application/json;charset=UTF-8'
// config.headers.timestamp = Math.floor(new Date().getTime() / 1000)
// console.log("sessionStorage",window.sessionStorage)
config
.
headers
.
Authorization
=
window
.
sessionStorage
.
getItem
(
'
token
'
)
||
''
//console.log("request config and session",config,window.sessionStorage);
return
config
;
},
err
=>
{
return
Promise
.
reject
(
err
);
});
return
config
;
},
(
err
)
=>
{
return
Promise
.
reject
(
err
);
}
);
instance
.
interceptors
.
response
.
use
(
response
=>
{
return
response
.
data
},
httpErrorHandler
);
instance
.
interceptors
.
response
.
use
(
(
response
)
=>
{
return
response
.
data
;
},
httpErrorHandler
);
/**
* 封装后的axios post方法
...
...
@@ -52,9 +57,9 @@ instance.interceptors.response.use(response=>{
*/
export
function
post
(
url
,
option
,
config
=
{})
{
const
data
=
Object
.
assign
({},
option
,
{
// __mortals_token__: cookie.getItem('__mortals_token__'),
})
return
instance
.
post
(
url
,
data
,
config
)
// __mortals_token__: cookie.getItem('__mortals_token__'),
})
;
return
instance
.
post
(
url
,
data
,
config
,
httpErrorHandler
);
}
/**
...
...
@@ -68,24 +73,23 @@ export function post(url, option, config = {}) {
export
function
get
(
url
,
option
,
config
=
{})
{
const
data
=
Object
.
assign
({},
option
,
{
//__mortals_token__: cookie.getItem('__mortals_token__'),
})
return
instance
.
get
(
url
,
{
params
:
data
},
config
)
})
;
return
instance
.
get
(
url
,
{
params
:
data
},
config
,
httpErrorHandler
);
}
// 文件上传
const
uploadInstance
=
axios
.
create
({
baseURL
:
'
/m
'
,
baseURL
:
"
/m
"
,
headers
:
{
post
:
{
'
Content-Type
'
:
'
multipart/form-data
'
,
}
}
"
Content-Type
"
:
"
multipart/form-data
"
,
}
,
}
,
});
uploadInstance
.
interceptors
.
response
.
use
(
response
=>
{
return
response
.
data
},
httpErrorHandler
);
uploadInstance
.
interceptors
.
response
.
use
(
(
response
)
=>
{
return
response
.
data
;
},
httpErrorHandler
);
/**
* 封装后的axios upload方法
...
...
@@ -97,8 +101,8 @@ uploadInstance.interceptors.response.use(response=>{
*/
export
function
upload
(
url
,
option
,
config
=
{})
{
let
formdata
=
new
FormData
();
Object
.
keys
(
option
).
forEach
(
key
=>
{
formdata
.
append
(
key
,
option
[
key
])
})
return
uploadInstance
.
post
(
url
,
formdata
,
config
)
Object
.
keys
(
option
).
forEach
(
(
key
)
=>
{
formdata
.
append
(
key
,
option
[
key
])
;
})
;
return
uploadInstance
.
post
(
url
,
formdata
,
config
)
;
}
enterprise-manager-ui/admin/src/assets/utils/httpErrorHandler.js
View file @
364c2fbd
export
default
(
error
)
=>
{
if
(
error
.
message
===
'
自动取消ajax操作
'
)
return
Promise
.
reject
(
error
);
if
(
!
error
.
response
)
{
console
.
error
(
error
);
return
Promise
.
reject
({
message
:
'
未知错误
'
,
error
,
});
};
let
tip
=
''
;
const
status
=
error
.
response
.
status
;
switch
(
status
)
{
case
400
:
tip
=
'
错误的请求参数
'
;
break
;
case
401
:
tip
=
'
没有该操作权限
'
;
break
;
case
403
:
tip
=
'
用户未登录或登录失效,请重新登录
'
;
break
;
case
404
:
tip
=
'
错误的请求地址
'
;
break
;
case
405
:
tip
=
'
请修改当前密码(原因:首次登录或超过期限未修改密码)
'
;
break
;
case
500
:
case
501
:
case
502
:
case
503
:
case
504
:
tip
=
'
服务器错误
'
;
break
;
default
:
tip
=
'
未知错误
'
+
status
;
}
if
(
status
===
405
){
window
.
location
=
'
/#/login/updatePwd
'
;
}
else
{
tip
+=
'
,将自动返回主页
'
;
window
.
location
=
'
/#/
'
;
}
if
(
error
.
message
===
"
自动取消ajax操作
"
)
return
Promise
.
reject
(
error
);
if
(
!
error
.
response
)
{
console
.
error
(
error
);
return
Promise
.
reject
({
message
:
tip
,
message
:
"
未知错误
"
,
error
,
status
,
});
}
\ No newline at end of file
let
tip
=
""
;
const
status
=
error
.
response
.
status
;
switch
(
status
)
{
case
400
:
tip
=
"
错误的请求参数
"
;
break
;
case
401
:
tip
=
"
没有该操作权限
"
;
break
;
case
403
:
tip
=
"
用户未登录或登录失效,请重新登录
"
;
break
;
case
404
:
tip
=
"
错误的请求地址
"
;
break
;
case
405
:
tip
=
"
请修改当前密码(原因:首次登录或超过期限未修改密码)
"
;
break
;
case
500
:
case
501
:
case
502
:
case
503
:
case
504
:
tip
=
"
服务器错误
"
;
break
;
default
:
tip
=
"
未知错误
"
+
status
;
}
if
(
status
===
405
)
{
window
.
location
=
"
/#/login/updatePwd
"
;
}
else
{
tip
+=
"
,将自动返回主页
"
;
window
.
location
=
"
/#/
"
;
}
return
Promise
.
reject
({
message
:
tip
,
error
,
status
,
});
};
enterprise-manager-ui/admin/src/assets/utils/index.js
View file @
364c2fbd
import
Qs
from
'
qs
'
;
import
{
post
,
get
,
upload
}
from
'
./ajax
'
;
import
queue
from
'
./queue
'
;
import
axios
from
'
axios
'
;
import
cookie
from
'
./cookie
'
;
import
httpErrorHandler
from
'
./httpErrorHandler
'
;
import
Qs
from
"
qs
"
;
import
{
post
,
get
,
upload
}
from
"
./ajax
"
;
import
queue
from
"
./queue
"
;
import
axios
from
"
axios
"
;
import
cookie
from
"
./cookie
"
;
import
httpErrorHandler
from
"
./httpErrorHandler
"
;
/**
* 获取参数的类型
...
...
@@ -12,17 +12,17 @@ import httpErrorHandler from './httpErrorHandler';
* @returns {string} 参数类型
*/
export
const
type
=
(
data
)
=>
{
return
Object
.
prototype
.
toString
.
call
(
data
).
replace
(
/
(\[
object |
\])
/g
,
''
)
return
Object
.
prototype
.
toString
.
call
(
data
).
replace
(
/
(\[
object |
\])
/g
,
""
);
};
/**
* 获取登录状态
*
* @returns
*
* @returns
*/
export
const
getLoginStatus
=
()
=>
{
return
window
.
sessionStorage
.
isLogin
;
}
}
;
/**
* 解析url参数
...
...
@@ -30,19 +30,18 @@ export const getLoginStatus = () => {
* @returns {object} localtion的query对象
*/
export
const
query
=
()
=>
{
return
Qs
.
parse
(
window
.
location
.
href
.
split
(
'
?
'
)[
1
])
}
return
Qs
.
parse
(
window
.
location
.
href
.
split
(
"
?
"
)[
1
]);
};
/**
* 编码url参数
* 编码url参数
*
* @param {object} data 参数对象
* @returns string
*/
export
const
encodeURI
=
(
data
)
=>
{
return
Qs
.
stringify
(
data
,
{
arrayFormat
:
'
repeat
'
,
allowDots
:
true
});
}
return
Qs
.
stringify
(
data
,
{
arrayFormat
:
"
repeat
"
,
allowDots
:
true
});
}
;
/**
* formatterDate
...
...
@@ -51,16 +50,19 @@ export const encodeURI = (data) => {
* @returns {string} val 解析后的结果
*/
export
function
formatterDate
(
time
)
{
if
(
!
time
)
return
''
;
if
(
!
time
)
return
""
;
let
date
=
new
Date
(
Number
(
time
));
let
Y
=
date
.
getFullYear
()
+
'
-
'
;
let
M
=
(
date
.
getMonth
()
+
1
<
10
?
'
0
'
+
(
date
.
getMonth
()
+
1
)
:
date
.
getMonth
()
+
1
)
+
'
-
'
;
let
D
=
panLeft
(
date
.
getDate
())
+
'
'
;
let
h
=
panLeft
(
date
.
getHours
())
+
'
:
'
;
let
m
=
panLeft
(
date
.
getMinutes
())
+
'
:
'
;
let
Y
=
date
.
getFullYear
()
+
"
-
"
;
let
M
=
(
date
.
getMonth
()
+
1
<
10
?
"
0
"
+
(
date
.
getMonth
()
+
1
)
:
date
.
getMonth
()
+
1
)
+
"
-
"
;
let
D
=
panLeft
(
date
.
getDate
())
+
"
"
;
let
h
=
panLeft
(
date
.
getHours
())
+
"
:
"
;
let
m
=
panLeft
(
date
.
getMinutes
())
+
"
:
"
;
let
s
=
panLeft
(
date
.
getSeconds
());
return
Y
+
M
+
D
+
h
+
m
+
s
;
}
;
}
/**
* formatterDate
*
...
...
@@ -88,10 +90,10 @@ export function formatterDateDay(datetime) {
return
Y
+
M
+
D
;
}
return
datetime
;
}
;
}
/**
* 当前日期加天数后得到的相应日期
* @param {*} day
* @param {*} day
*/
export
function
getAddDay
(
day
)
{
var
today
=
new
Date
();
...
...
@@ -114,10 +116,9 @@ function doHandleMonth(month) {
}
function
panLeft
(
num
)
{
return
num
<
10
?
'
0
'
+
num
:
num
;
return
num
<
10
?
"
0
"
+
num
:
num
;
}
/**
* call方法
*
...
...
@@ -129,23 +130,24 @@ function panLeft(num) {
*/
const
call
=
(
callMethod
,
url
,
formData
,
config
=
{})
=>
{
return
new
Promise
((
resolve
,
reject
)
=>
{
callMethod
(
url
,
formData
,
config
).
then
(
res
=>
{
const
{
code
,
msg
,
data
}
=
res
;
if
(
code
!==
1
)
{
reject
({
message
:
msg
||
''
});
return
;
}
resolve
(
res
);
})
.
catch
(
error
=>
{
callMethod
(
url
,
formData
,
config
)
.
then
((
res
)
=>
{
const
{
code
,
msg
,
data
}
=
res
;
if
(
code
!==
1
)
{
reject
({
message
:
msg
||
""
,
});
return
;
}
resolve
(
res
);
})
.
catch
((
error
)
=>
{
if
(
error
.
status
===
403
)
{
window
.
location
.
href
=
'
/#/login
'
window
.
location
.
href
=
"
/#/login
"
;
}
reject
(
error
);
})
})
})
;
})
;
};
/**
...
...
@@ -173,10 +175,10 @@ export const normalCallGet = (url, formData, config = {}) => {
};
const
mimeMap
=
{
xlsx
:
'
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
'
,
zip
:
'
application/zip
'
,
doc
:
'
application/msword
'
}
xlsx
:
"
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
"
,
zip
:
"
application/zip
"
,
doc
:
"
application/msword
"
,
}
;
/**
* 普通的ajax download请求
...
...
@@ -189,90 +191,107 @@ const mimeMap = {
export
const
download
=
(
url
,
formData
,
config
=
{})
=>
{
return
new
Promise
(
async
(
resolve
,
reject
)
=>
{
const
option
=
Object
.
assign
({},
config
,
{
responseType
:
'
blob
'
})
responseType
:
"
blob
"
,
})
;
try
{
const
data
=
await
post
(
url
,
formData
,
option
)
const
link
=
document
.
createElement
(
'
a
'
)
let
blob
let
extName
const
data
=
await
post
(
url
,
formData
,
option
)
;
const
link
=
document
.
createElement
(
"
a
"
);
let
blob
;
let
extName
;
if
(
option
.
type
==
"
zip
"
)
{
blob
=
new
Blob
([
data
],
{
type
:
mimeMap
.
zip
})
extName
=
"
zip
"
blob
=
new
Blob
([
data
],
{
type
:
mimeMap
.
zip
})
;
extName
=
"
zip
"
;
}
else
if
(
option
.
type
==
"
excel
"
)
{
blob
=
new
Blob
([
data
],
{
type
:
mimeMap
.
xlsx
})
extName
=
"
xlsx
"
blob
=
new
Blob
([
data
],
{
type
:
mimeMap
.
xlsx
})
;
extName
=
"
xlsx
"
;
}
else
if
(
option
.
type
==
"
doc
"
)
{
blob
=
new
Blob
([
data
],
{
type
:
mimeMap
.
doc
})
extName
=
"
doc
"
blob
=
new
Blob
([
data
],
{
type
:
mimeMap
.
doc
})
;
extName
=
"
doc
"
;
}
else
{
extName
=
"
xlsx
"
extName
=
"
xlsx
"
;
}
let
fileName
=
"
导出
"
let
fileName
=
"
导出
"
;
if
(
option
.
fileName
)
{
fileName
=
option
.
fileName
fileName
=
option
.
fileName
;
}
link
.
href
=
URL
.
createObjectURL
(
blob
)
link
.
setAttribute
(
'
download
'
,
`
${
fileName
}
.
${
extName
}
`
)
// 设置下载文件名称
document
.
body
.
appendChild
(
link
)
link
.
click
()
document
.
body
.
appendChild
(
link
)
link
.
href
=
URL
.
createObjectURL
(
blob
)
;
link
.
setAttribute
(
"
download
"
,
`
${
fileName
}
.
${
extName
}
`
);
// 设置下载文件名称
document
.
body
.
appendChild
(
link
)
;
link
.
click
()
;
document
.
body
.
appendChild
(
link
)
;
resolve
();
}
catch
(
error
)
{
reject
(
error
);
}
})
})
;
};
export
const
downloadWithCustName
=
(
url
,
formData
,
config
=
{})
=>
{
return
new
Promise
(
async
(
resolve
,
reject
)
=>
{
const
option
=
Object
.
assign
({},
config
,
{
responseType
:
'
blob
'
,
baseURL
:
'
/m
'
,
responseType
:
"
blob
"
,
baseURL
:
"
/m
"
,
headers
:
{
post
:
{
'
Content-Type
'
:
'
application/x-www-form-urlencoded;charset=UTF-8
'
}
}
})
"
Content-Type
"
:
"
application/x-www-form-urlencoded;charset=UTF-8
"
,
}
,
}
,
})
;
try
{
const
params
=
Object
.
assign
({},
formData
,
{
__mortals_token__
:
cookie
.
getItem
(
'
__mortals_token__
'
),
})
var
requestData
=
Qs
.
stringify
(
params
,
{
arrayFormat
:
'
repeat
'
,
allowDots
:
true
});
axios
.
post
(
url
,
requestData
,
option
)
.
then
(
response
=>
{
if
(
response
.
data
.
type
==
'
application/json
'
)
{
var
reader
=
new
FileReader
();
reader
.
onload
=
function
(
event
)
{
var
content
=
reader
.
result
;
reject
(
content
);
};
reader
.
readAsText
(
response
.
data
);
return
;
__mortals_token__
:
cookie
.
getItem
(
"
__mortals_token__
"
),
});
var
requestData
=
Qs
.
stringify
(
params
,
{
arrayFormat
:
"
repeat
"
,
allowDots
:
true
,
});
axios
.
post
(
url
,
requestData
,
option
)
.
then
(
(
response
)
=>
{
if
(
response
.
data
.
type
==
"
application/json
"
)
{
var
reader
=
new
FileReader
();
reader
.
onload
=
function
(
event
)
{
var
content
=
reader
.
result
;
reject
(
content
);
};
reader
.
readAsText
(
response
.
data
);
return
;
}
const
filename
=
decodeURI
(
response
.
headers
[
"
content-disposition
"
]
.
split
(
"
;
"
)[
1
]
.
split
(
"
=
"
)[
1
]
)
||
`
${
url
.
substr
(
1
)
.
replace
(
/
\/
/g
,
"
_
"
)}
_
${
new
Date
().
getTime
()}
.xls`
;
let
downloadUrl
=
window
.
URL
.
createObjectURL
(
new
Blob
([
response
.
data
])
);
let
link
=
document
.
createElement
(
"
a
"
);
link
.
style
.
display
=
"
none
"
;
link
.
href
=
downloadUrl
;
link
.
setAttribute
(
"
download
"
,
filename
);
document
.
body
.
appendChild
(
link
);
link
.
click
();
document
.
body
.
removeChild
(
link
);
resolve
();
},
(
err
)
=>
{
reject
(
err
);
}
const
filename
=
decodeURI
(
response
.
headers
[
'
content-disposition
'
].
split
(
'
;
'
)[
1
].
split
(
'
=
'
)[
1
])
||
`
${
url
.
substr
(
1
).
replace
(
/
\/
/g
,
'
_
'
)}
_
${
new
Date
().
getTime
()}
.xls`
let
downloadUrl
=
window
.
URL
.
createObjectURL
(
new
Blob
([
response
.
data
]))
let
link
=
document
.
createElement
(
'
a
'
)
link
.
style
.
display
=
'
none
'
;
link
.
href
=
downloadUrl
;
link
.
setAttribute
(
'
download
'
,
filename
);
document
.
body
.
appendChild
(
link
);
link
.
click
();
document
.
body
.
removeChild
(
link
);
resolve
();
},
err
=>
{
reject
(
err
);
}).
catch
((
error
)
=>
{
reject
(
error
)
})
)
.
catch
((
error
)
=>
{
reject
(
error
);
});
}
catch
(
error
)
{
reject
(
error
);
}
})
})
;
};
/**
...
...
@@ -306,16 +325,15 @@ export async function getUserListByQuery(query) {
try
{
/* //下拉只获取正常状态数据:status{0: "停用", 1: "正常", 2: "冻结", 3: "销户", 4: "离职"}
query["query.status"] = 1;*/
const
data
=
await
normalCallPost
(
'
/user/list
'
,
query
);
const
data
=
await
normalCallPost
(
"
/user/list
"
,
query
);
const
list
=
data
.
data
.
result
.
map
(({
id
,
loginName
,
realName
,
mobile
})
=>
{
return
{
id
,
loginName
,
realName
,
mobile
}
return
{
id
,
loginName
,
realName
,
mobile
}
;
});
return
list
;
}
catch
(
error
)
{
return
[];
}
};
}
/**
* 构造树型结构数据
...
...
@@ -326,40 +344,47 @@ export async function getUserListByQuery(query) {
* @param {*} rootId 根Id 默认 0
*/
export
function
handleTree
(
data
,
id
,
parentId
,
children
,
rootId
)
{
id
=
id
||
'
id
'
parentId
=
parentId
||
'
parentId
'
children
=
children
||
'
children
'
rootId
=
rootId
||
Math
.
min
.
apply
(
Math
,
data
.
map
(
item
=>
{
return
item
[
parentId
]
}))
||
0
id
=
id
||
"
id
"
;
parentId
=
parentId
||
"
parentId
"
;
children
=
children
||
"
children
"
;
rootId
=
rootId
||
Math
.
min
.
apply
(
Math
,
data
.
map
((
item
)
=>
{
return
item
[
parentId
];
})
)
||
0
;
//对源数据深度克隆
const
cloneData
=
JSON
.
parse
(
JSON
.
stringify
(
data
))
const
cloneData
=
JSON
.
parse
(
JSON
.
stringify
(
data
))
;
//循环所有项
console
.
log
(
"
11111
"
,
cloneData
)
const
treeData
=
cloneData
.
filter
(
father
=>
{
let
branchArr
=
cloneData
.
filter
(
child
=>
{
console
.
log
(
"
11111
"
,
cloneData
)
;
const
treeData
=
cloneData
.
filter
(
(
father
)
=>
{
let
branchArr
=
cloneData
.
filter
(
(
child
)
=>
{
//返回每一项的子级数组
return
father
[
id
]
===
child
[
parentId
]
return
father
[
id
]
===
child
[
parentId
]
;
});
branchArr
.
length
>
0
?
father
.
children
=
branchArr
:
''
;
branchArr
.
length
>
0
?
(
father
.
children
=
branchArr
)
:
""
;
//返回第一层
return
father
[
parentId
]
===
rootId
;
});
console
.
log
(
"
treeData
"
,
treeData
)
return
treeData
!=
''
?
treeData
:
data
;
};
console
.
log
(
"
treeData
"
,
treeData
);
return
treeData
!=
""
?
treeData
:
data
;
}
/**
* 下载文件
* @param {String} path - 下载地址/下载请求地址。
* @param {String} name - 下载文件的名字/重命名(考虑到兼容性问题,最好加上后缀名)
*/
* 下载文件
* @param {String} path - 下载地址/下载请求地址。
* @param {String} name - 下载文件的名字/重命名(考虑到兼容性问题,最好加上后缀名)
*/
export
function
downloadFile
(
path
,
name
)
{
if
(
path
&&
name
)
{
const
xhr
=
new
XMLHttpRequest
();
xhr
.
open
(
"
get
"
,
path
);
xhr
.
responseType
=
"
blob
"
;
xhr
.
send
();
xhr
.
onload
=
function
()
{
xhr
.
onload
=
function
()
{
if
(
this
.
status
===
200
||
this
.
status
===
304
)
{
// 如果是IE10及以上,不支持download属性,采用msSaveOrOpenBlob方法,但是IE10以下也不支持msSaveOrOpenBlob
if
(
"
msSaveOrOpenBlob
"
in
navigator
)
{
...
...
@@ -380,10 +405,8 @@ export function downloadFile(path, name) {
}
};
}
}
// 当元素滚动条被滚动时运行的脚本
export
function
handleScroll
()
{
let
scrollbarEl
=
this
.
$refs
[
"
scroll
"
].
wrap
;
...
...
@@ -442,13 +465,4 @@ export function jump(index) {
_this
.
$refs
[
"
scroll
"
].
wrap
.
scrollTop
=
distance
;
}
}
};
}
enterprise-manager-ui/admin/src/assets/utils/queue.js
View file @
364c2fbd
import
axios
from
'
axios
'
;
import
Qs
from
'
qs
'
;
import
cookie
from
'
./cookie
'
;
import
httpErrorHandler
from
'
./httpErrorHandler
'
;
import
axios
from
"
axios
"
;
import
Qs
from
"
qs
"
;
import
cookie
from
"
./cookie
"
;
import
httpErrorHandler
from
"
./httpErrorHandler
"
;
const
isDev
=
process
.
env
.
NODE_ENV
===
'
development
'
;
const
isDev
=
process
.
env
.
NODE_ENV
===
"
development
"
;
const
queue
=
[];
const
cancelToken
=
axios
.
CancelToken
;
const
token
=
(
config
)
=>
{
return
`
${
config
.
url
}
_
${
config
.
method
}
`
}
const
token
=
(
config
)
=>
{
return
`
${
config
.
url
}
_
${
config
.
method
}
`
;
}
;
const
instance
=
axios
.
create
({
baseURL
:
'
/m
'
,
baseURL
:
"
/m
"
,
headers
:
{
token
:
cookie
.
getItem
(
'
fe_t
'
),
token
:
cookie
.
getItem
(
"
fe_t
"
),
post
:
{
'
Content-Type
'
:
'
application/x-www-form-urlencoded;charset=UTF-8
'
,
'
dataType
'
:
'
json
'
,
}
}
"
Content-Type
"
:
"
application/x-www-form-urlencoded;charset=UTF-8
"
,
dataType
:
"
json
"
,
}
,
}
,
});
const
removeQueue
=
(
config
)
=>
{
for
(
let
i
=
0
,
size
=
queue
.
length
;
i
<
size
;
i
++
)
{
for
(
let
i
=
0
,
size
=
queue
.
length
;
i
<
size
;
i
++
)
{
const
task
=
queue
[
i
];
if
(
task
.
token
===
token
(
config
))
{
if
(
task
.
token
===
token
(
config
))
{
task
.
cancel
();
queue
.
splice
(
i
,
1
);
}
}
}
}
;
//添加请求拦截器
instance
.
interceptors
.
request
.
use
(
config
=>
{
removeQueue
(
config
);
//在一个ajax发送前执行一下取消操作
config
.
cancelToken
=
new
cancelToken
((
c
)
=>
{
queue
.
push
({
token
:
token
(
config
),
cancel
:
c
});
});
return
config
;
},
error
=>
{
return
Promise
.
reject
(
error
);
});
instance
.
interceptors
.
request
.
use
(
(
config
)
=>
{
removeQueue
(
config
);
//在一个ajax发送前执行一下取消操作
config
.
cancelToken
=
new
cancelToken
((
c
)
=>
{
queue
.
push
({
token
:
token
(
config
),
cancel
:
c
});
});
return
config
;
},
(
error
)
=>
{
return
Promise
.
reject
(
error
);
}
);
//添加响应拦截器
instance
.
interceptors
.
response
.
use
(
response
=>
{
instance
.
interceptors
.
response
.
use
(
(
response
)
=>
{
removeQueue
(
response
.
config
);
return
response
.
data
return
response
.
data
;
},
httpErrorHandler
);
/**
...
...
@@ -56,5 +59,5 @@ instance.interceptors.response.use(response=>{
* @returns
*/
export
default
(
url
,
data
,
config
=
{})
=>
{
return
instance
.
post
(
url
,
data
,
config
)
}
return
instance
.
post
(
url
,
data
,
config
)
;
}
;
enterprise-manager-ui/admin/src/components/FormField.vue
View file @
364c2fbd
...
...
@@ -202,7 +202,6 @@ export default {
emit
()
{
this
.
$emit
(
"
input
"
,
this
.
newVal
);
this
.
$emit
(
"
change
"
,
this
.
newVal
);
console
.
log
(
this
.
newVal
);
},
},
computed
:
{
...
...
enterprise-manager-ui/admin/src/views/bussinesscard/record/drawershow.vue
View file @
364c2fbd
...
...
@@ -103,8 +103,6 @@ export default {
},
beforeSubmit
(
data
)
{
data
.
companyIds
=
data
.
companyIds
.
join
(
"
,
"
);
return
data
;
},
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment