Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
N
najiu-admin-template
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
najiu-frontend
najiu-admin-template
Commits
35d2bfc5
Commit
35d2bfc5
authored
Nov 01, 2020
by
vben
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix: fix message type error
parent
f645680a
Changes
6
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
78 additions
and
16 deletions
+78
-16
CHANGELOG.zh_CN.md
CHANGELOG.zh_CN.md
+1
-0
CollapseHeader.vue
src/components/Container/src/collapse/CollapseHeader.vue
+2
-9
asyncComputed.ts
src/hooks/core/asyncComputed.ts
+56
-0
types.ts
src/hooks/core/types.ts
+2
-2
useMessage.tsx
src/hooks/web/useMessage.tsx
+13
-5
index.ts
src/utils/index.ts
+4
-0
No files found.
CHANGELOG.zh_CN.md
View file @
35d2bfc5
...
...
@@ -23,6 +23,7 @@
-
修复表格开启搜索表单折叠问题
-
修复表格 size 为 samll 时候,fixed 列样式问题
-
修复多标签页关闭报错问题
-
修复 message 类型错误
## 2.0.0-rc.7 (2020-10-31)
...
...
src/components/Container/src/collapse/CollapseHeader.vue
View file @
35d2bfc5
...
...
@@ -11,22 +11,15 @@
<div
class=
"collapse-container__action"
>
<slot
name=
"action"
/>
<BasicArrow
v-if=
"$attrs.canExpan"
:expand=
"$attrs.show"
@
click=
"
handleExpand
"
/>
<BasicArrow
v-if=
"$attrs.canExpan"
:expand=
"$attrs.show"
@
click=
"
$emit('expand')
"
/>
</div>
</div>
</template>
<
script
lang=
"ts"
>
import
{
defineComponent
}
from
'
vue
'
;
import
{
BasicArrow
}
from
'
/@/components/Basic
'
;
import
{
BasicTitle
}
from
'
/@/components/Basic
'
;
import
{
BasicArrow
,
BasicTitle
}
from
'
/@/components/Basic
'
;
export
default
defineComponent
({
inheritAttrs
:
false
,
components
:
{
BasicArrow
,
BasicTitle
},
setup
(
_
,
{
emit
})
{
function
handleExpand
()
{
emit
(
'
expand
'
);
}
return
{
handleExpand
};
},
});
</
script
>
src/hooks/core/asyncComputed.ts
0 → 100644
View file @
35d2bfc5
import
{
ref
,
watchEffect
,
Ref
}
from
'
vue
'
;
/**
* Handle overlapping async evaluations
*
* @param cancelCallback The provided callback is invoked when a re-evaluation of the computed value is triggered before the previous one finished
*/
export
type
AsyncComputedOnCancel
=
(
cancelCallback
:
()
=>
void
)
=>
void
;
/**
* A two-item tuple with the first item being a ref to the computed value and the second item holding a boolean ref, indicating whether the async computed value is currently (re-)evaluated
*/
export
type
AsyncComputedResult
<
T
>
=
[
Ref
<
T
>
,
Ref
<
boolean
>
];
/**
* Create an asynchronous computed dependency
*
* @param evaluationCallback The promise-returning callback which generates the computed value
* @param defaultValue A default value, used until the first evaluation finishes
*/
export
function
asyncComputed
<
T
>
(
evaluationCallback
:
(
onCancel
:
AsyncComputedOnCancel
)
=>
T
|
Promise
<
T
>
,
defaultValue
?:
T
):
AsyncComputedResult
<
T
>
{
let
counter
=
0
;
const
current
=
ref
(
defaultValue
)
as
Ref
<
T
>
;
const
evaluating
=
ref
<
boolean
>
(
false
);
watchEffect
(
async
(
onInvalidate
:
Fn
)
=>
{
counter
++
;
const
counterAtBeginning
=
counter
;
let
hasFinished
=
false
;
try
{
// Defer initial setting of `evaluating` ref
// to avoid having it as a dependency
Promise
.
resolve
().
then
(()
=>
{
evaluating
.
value
=
true
;
});
const
result
=
await
evaluationCallback
((
cancelCallback
)
=>
{
onInvalidate
(()
=>
{
evaluating
.
value
=
false
;
if
(
!
hasFinished
)
cancelCallback
();
});
});
if
(
counterAtBeginning
===
counter
)
current
.
value
=
result
;
}
finally
{
evaluating
.
value
=
false
;
hasFinished
=
true
;
}
});
return
[
current
,
evaluating
];
}
src/hooks/core/types.ts
View file @
35d2bfc5
import
type
{
VNode
,
Ref
}
from
'
vue
'
;
import
type
{
Modal
Options
}
from
'
ant-design-vue/types/modal
'
;
import
type
{
Modal
FuncProps
}
from
'
ant-design-vue/lib/modal/index
'
;
export
type
Fn
<
T
>
=
()
=>
T
;
export
type
AnyFn
<
T
>
=
(...
arg
:
any
)
=>
T
;
...
...
@@ -86,7 +86,7 @@ export interface MessageOptions {
/** Set the distance to the top of viewport. Default is 20 px. */
offset
?:
number
;
}
export
interface
ModalOptionsEx
extends
Omit
<
Modal
Option
s
,
'
iconType
'
>
{
export
interface
ModalOptionsEx
extends
Omit
<
Modal
FuncProp
s
,
'
iconType
'
>
{
iconType
:
'
warning
'
|
'
success
'
|
'
error
'
|
'
info
'
;
}
export
type
ModalOptionsPartial
=
Partial
<
ModalOptionsEx
>
&
Pick
<
ModalOptionsEx
,
'
content
'
>
;
src/hooks/web/useMessage.tsx
View file @
35d2bfc5
import
type
{
ModalOptionsEx
,
ModalOptionsPartial
}
from
'
/@/hooks/core/types
'
;
import
type
{
ModalFunc
,
ModalFuncProps
}
from
'
ant-design-vue/lib/modal/Modal
'
;
import
{
Modal
,
message
as
Message
,
notification
}
from
'
ant-design-vue
'
;
import
{
InfoCircleFilled
,
CheckCircleFilled
,
CloseCircleFilled
}
from
'
@ant-design/icons-vue
'
;
import
{
ModalOptions
,
ModalConfirm
}
from
'
ant-design-vue/types/modal
'
;
import
{
useSetting
}
from
'
/@/hooks/core/useSetting
'
;
interface
ConfirmOptions
{
info
:
ModalFunc
;
success
:
ModalFunc
;
error
:
ModalFunc
;
warn
:
ModalFunc
;
warning
:
ModalFunc
;
}
const
{
projectSetting
}
=
useSetting
();
function
getIcon
(
iconType
:
string
)
{
...
...
@@ -20,22 +28,22 @@ function getIcon(iconType: string) {
}
}
function
renderContent
({
content
}:
Pick
<
ModalOptionsEx
,
'
content
'
>
)
{
return
<
div
innerHTML=
{
`<div>${content}</div>`
}
></
div
>;
return
<
div
innerHTML=
{
`<div>${content
as string
}</div>`
}
></
div
>;
}
/**
* @description: Create confirmation box
*/
function
createConfirm
(
options
:
ModalOptionsEx
):
ModalConfirm
{
function
createConfirm
(
options
:
ModalOptionsEx
):
ConfirmOptions
{
const
iconType
=
options
.
iconType
||
'
warning
'
;
Reflect
.
deleteProperty
(
options
,
'
iconType
'
);
const
opt
:
Modal
Option
s
=
{
const
opt
:
Modal
FuncProp
s
=
{
centered
:
true
,
icon
:
getIcon
(
iconType
),
...
projectSetting
.
messageSetting
,
...
options
,
};
return
Modal
.
confirm
(
opt
);
return
Modal
.
confirm
(
opt
)
as
any
;
}
const
baseOptions
=
{
okText
:
'
确定
'
,
...
...
src/utils/index.ts
View file @
35d2bfc5
export
const
timestamp
=
()
=>
+
Date
.
now
();
export
const
clamp
=
(
n
:
number
,
min
:
number
,
max
:
number
)
=>
Math
.
min
(
max
,
Math
.
max
(
min
,
n
));
export
const
noop
=
()
=>
{};
export
const
now
=
()
=>
Date
.
now
();
/**
* @description: Set ui mount node
*/
...
...
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