Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
uuai
test_git
比较版本
c9209f45ae0c9396eefa492f7293373d553c6480...8718a9cbafaf8746ed03dba49c4e2500d2e4f45b
T
test_git
项目概览
uuai
/
test_git
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
test_git
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
源分支
8718a9cbafaf8746ed03dba49c4e2500d2e4f45b
选择Git版本
...
目标分支
c9209f45ae0c9396eefa492f7293373d553c6480
选择Git版本
比较
Commits (2)
https://gitcode.net/qq_39019768/test_git/-/commit/a1d9301e3dcdeae54fbfa51f227c19272b787fef
vue3
2022-04-26T18:24:42+08:00
wuyb@phxg.cn
wuyb@phxg.cn
https://gitcode.net/qq_39019768/test_git/-/commit/8718a9cbafaf8746ed03dba49c4e2500d2e4f45b
jsx
2022-04-29T17:29:50+08:00
wuyb@phxg.cn
wuyb@phxg.cn
隐藏空白更改
内联
并排
Showing
12 changed file
with
228 addition
and
47 deletion
+228
-47
vite-demo/src/components/popups/drawer.vue
vite-demo/src/components/popups/drawer.vue
+50
-0
vite-demo/src/components/popups/modal.vue
vite-demo/src/components/popups/modal.vue
+59
-0
vite-demo/src/components/popups/popups.js
vite-demo/src/components/popups/popups.js
+9
-0
vite-demo/src/hook/useModal.js
vite-demo/src/hook/useModal.js
+2
-2
vite-demo/src/hook/useTableMdal.js
vite-demo/src/hook/useTableMdal.js
+25
-19
vite-demo/src/views/antd/table/components/fromModal.vue
vite-demo/src/views/antd/table/components/fromModal.vue
+14
-4
vite-demo/src/views/skills/components/jsx/btn1.vue
vite-demo/src/views/skills/components/jsx/btn1.vue
+6
-3
vite-demo/src/views/skills/components/jsx/btn2.vue
vite-demo/src/views/skills/components/jsx/btn2.vue
+5
-3
vite-demo/src/views/skills/components/jsx/index.vue
vite-demo/src/views/skills/components/jsx/index.vue
+11
-6
vite-demo/src/views/skills/components/jsx/renderFn.js
vite-demo/src/views/skills/components/jsx/renderFn.js
+18
-10
vite-demo/src/views/skills/components/jsx/vnode.js
vite-demo/src/views/skills/components/jsx/vnode.js
+17
-0
vite-demo/src/views/skills/components/jsx/vue2JSX.vue
vite-demo/src/views/skills/components/jsx/vue2JSX.vue
+12
-0
未找到文件。
vite-demo/src/components/popups/drawer.vue
0 → 100644
浏览文件 @
8718a9cb
<
template
>
<a-drawer
:title=
"drawerTitle"
:placement=
"drawerPlacement"
:closable=
"drawerClosable"
v-model:visible=
"isShow"
@
close=
"onClose"
>
<slot></slot>
</a-drawer>
</
template
>
<
script
>
export
default
{
name
:
"
drawerIndex
"
,
props
:
{
isShow
:
{
type
:
Boolean
,
default
:
false
},
// 标题
drawerTitle
:
{
type
:
String
,
default
:
''
},
// 方向
drawerPlacement
:
{
type
:
String
,
default
:
'
right
'
},
// 是否显示右上方按钮
drawerClosable
:
{
type
:
Boolean
,
default
:
true
}
},
setup
(
props
,
{
emit
})
{
const
onClose
=
()
=>
{
emit
(
'
update:isShow
'
,
false
)
}
return
{
onClose
}
}
}
</
script
>
<
style
scoped
>
</
style
>
\ No newline at end of file
vite-demo/src/components/popups/modal.vue
0 → 100644
浏览文件 @
8718a9cb
<
template
>
<a-modal
:width=
"800"
:title=
"title"
:visible=
"isShow"
:maskClosable=
"false"
:confirmLoading=
"confirmLoading"
@
ok=
"handleOk"
@
cancel=
"handleCancel"
>
<slot></slot>
</a-modal>
</
template
>
<
script
>
import
{
ref
,
watch
}
from
'
vue
'
export
default
{
name
:
"
modalIndex
"
,
props
:
{
title
:
{
type
:
String
,
default
:
'
模态框
'
},
isShow
:
{
type
:
Boolean
,
default
:
false
},
},
setup
(
props
,
content
)
{
console
.
log
(
'
props - modal
'
,
props
);
let
confirmLoading
=
ref
(
false
)
const
handleOk
=
(
e
)
=>
{
confirmLoading
.
value
=
true
content
.
emit
(
'
modalOk
'
);
handleCancel
()
setTimeout
(()
=>
{
confirmLoading
.
value
=
false
},
300
)
}
const
handleCancel
=
()
=>
{
content
.
emit
(
'
modalCancel
'
);
content
.
emit
(
'
update:isShow
'
,
false
);
}
return
{
handleOk
,
handleCancel
,
confirmLoading
}
}
}
</
script
>
<
style
scoped
>
</
style
>
\ No newline at end of file
vite-demo/src/components/popups/popups.js
0 → 100644
浏览文件 @
8718a9cb
import
drawer
from
'
./drawer.vue
'
import
modal
from
'
./modal.vue
'
import
{
h
}
from
'
vue
'
export
const
renderPopups
=
function
(
props
,
{
slots
})
{
console
.
log
(
'
renderPopups
'
,
props
);
return
props
.
type
===
'
modal
'
?
h
(
modal
,
slots
.
default
())
:
h
(
drawer
,
slots
.
default
())
}
vite-demo/src/hook/useModal.js
浏览文件 @
8718a9cb
...
...
@@ -8,7 +8,6 @@ export function useModal() {
const
onModalShow
=
()
=>
{
isShow
.
value
=
true
}
const
modalOk
=
()
=>
{
console
.
log
(
'
确认
'
)
}
...
...
@@ -23,7 +22,8 @@ export function useModal() {
onModalShow
,
isShow
}
};
}
// 设置select可以本地搜索
...
...
vite-demo/src/hook/useTableMdal.js
浏览文件 @
8718a9cb
...
...
@@ -3,7 +3,7 @@
* useTable 表格查询,分页, 删除
* @modalMixin 弹窗新增,修改,详情
*/
import
{
ref
,
reactive
,
computed
,
nextTick
}
from
'
vue
'
import
{
ref
,
reactive
,
computed
}
from
'
vue
'
import
{
message
,
confirm
}
from
'
ant-design-vue
'
// import { postAction, putAction, deleteAction, httpAction } from 'api/commonApi/index';
let
postAction
,
putAction
,
deleteAction
,
httpAction
;
...
...
@@ -346,7 +346,6 @@ export function useModal() {
confirmLoading
:
false
,
form
:
this
.
$form
.
createForm
(
this
)
}
const
disableSubmit
=
computed
({
get
:
()
=>
{
if
(
type
===
'
detail
'
)
{
...
...
@@ -354,29 +353,33 @@ export function useModal() {
}
return
false
;
},
set
:
()
=>
{
}
// 查看详情,禁用所有表单
}
)
}
methods
:
{
// 回填数据
const
backfillData
=
()
=>
{
resetScreenSize
();
backfillData
()
{
this
.
resetScreenSize
();
// 回填数据
nextTick
().
finally
(()
=>
{
this
.
$
nextTick
().
finally
(()
=>
{
this
.
form
.
resetFields
();
// 日期处理
if
(
type
!==
'
add
'
)
{
data
=
parseDate
(
data
);
if
(
t
his
.
t
ype
!==
'
add
'
)
{
this
.
data
=
parseDate
(
this
.
data
);
setTimeout
(()
=>
{
form
.
setFieldsValue
(
data
);
this
.
form
.
setFieldsValue
(
this
.
data
);
}
)
}
});
})
;
}
const
handleOk
=
(
otherValues
=
{},
path
,
dateFormat
=
'
YYYY-MM-DD
'
)
=>
{
,
handleOk
(
otherValues
=
{},
path
,
dateFormat
=
'
YYYY-MM-DD
'
)
{
this
.
confirmLoading
=
true
;
// 触发表单验证
this
.
form
.
validateFields
((
err
,
values
)
=>
{
...
...
@@ -419,16 +422,18 @@ export function useModal() {
}
})
}
const
close
=
()
=>
{
,
close
()
{
this
.
confirmLoading
=
false
;
this
.
disableSubmit
=
false
;
emit
(
'
close
'
);
emit
(
'
update:show
'
,
false
);
this
.
$
emit
(
'
close
'
);
this
.
$
emit
(
'
update:show
'
,
false
);
}
,
// 根据屏幕变化,设置抽屉尺寸
const
resetScreenSize
=
()
=>
{
resetScreenSize
()
{
const
screenWidth
=
document
.
body
.
clientWidth
;
if
(
screenWidth
<
500
)
{
this
.
drawerWidth
=
screenWidth
;
...
...
@@ -436,6 +441,7 @@ export function useModal() {
this
.
drawerWidth
=
700
;
}
}
,
}
}
}
;
vite-demo/src/views/antd/table/components/fromModal.vue
浏览文件 @
8718a9cb
<
template
>
<modal
>
<div>
1232
</div>
</modal>
<!--
<modal
>
-->
<!--
<div>
1232
</div>
-->
<!--
</modal>
-->
<renderPopups
:isShow=
"isShow"
:type=
"2"
>
<template>
drawer
</
template
>
</renderPopups>
</template>
<
script
>
import
modal
from
'
@c/modal/index.vue
'
import
{
renderPopups
}
from
'
@c/popups/popups
'
export
default
{
name
:
"
fromModal
"
,
props
:
{
isShow
:
Boolean
},
components
:
{
modal
modal
,
renderPopups
},
setup
()
{
...
...
vite-demo/src/views/skills/components/jsx/btn1.vue
浏览文件 @
8718a9cb
<
template
>
<div>
这是btn1
<p>
{{
num
}}
</p>
这是btn1组件
<p>
组件内部值:
{{
num
}}
</p>
<p>
props - type:
{{
type
}}
</p>
<slot></slot>
<slot
name=
"name"
></slot>
</div>
...
...
@@ -11,7 +12,9 @@
export
default
defineComponent
({
name
:
'
btn1
'
,
setup
()
{
setup
(
props
)
{
console
.
log
(
'
props - btn
'
,
props
);
const
num
=
ref
(
1
)
return
{
num
}
}
...
...
vite-demo/src/views/skills/components/jsx/btn2.vue
浏览文件 @
8718a9cb
<
template
>
<div>
这是btn2
{{
num
}}
<p>
这是btn2
</p>
<p>
num:
{{
num
}}
</p>
<slot></slot>
</div>
</
template
>
<
script
>
import
{
ref
,
defineComponent
}
from
'
vue
'
import
{
ref
,
defineComponent
}
from
'
vue
'
export
default
defineComponent
({
name
:
'
btn2
'
,
setup
()
{
const
num
=
ref
(
2
)
return
{
num
}
return
{
num
}
}
})
</
script
>
\ No newline at end of file
vite-demo/src/views/skills/components/jsx/index.vue
浏览文件 @
8718a9cb
<
template
>
<renderFn
:type=
"1"
>
<p>
默认插槽: 111111
</p>
<template
#name
="
{type}">
<span>
具名插槽
</span>
name
<span>
使用子组件属性
{{
type
}}
</span>
</
template
>
<div
default=
"
{text}">
<p>
默认插槽: 111111
</p>
</div>
<!--
<template
#name
="
{type}">-->
<!--
<span>
具名插槽
</span>
name-->
<!--
<span>
使用子组件属性
{{
type
}}
</span>
-->
<!--
</
template
>
-->
</renderFn>
</template>
<
script
>
import
{
renderFn
}
from
'
./renderFn.js
'
import
renderFn
from
'
./renderFn.js
'
import
vnode
from
"
./vnode
"
export
default
{
name
:
"
index
"
,
components
:
{
renderFn
,
vnode
},
}
</
script
>
...
...
vite-demo/src/views/skills/components/jsx/renderFn.js
浏览文件 @
8718a9cb
...
...
@@ -2,14 +2,22 @@ import btn1 from './btn1.vue'
import
btn2
from
'
./btn2.vue
'
import
{
h
}
from
'
vue
'
export
const
renderFn
=
function
(
props
,
{
slots
})
{
console
.
log
(
'
renderFn
'
,
props
);
console
.
log
(
'
renderFn
'
,
slots
);
// 加载组件
// return props.type == 1 ? h(btn1) : h(btn2)
// 加载默认插槽 - 具名插槽
return
props
.
type
==
1
?
h
(
btn1
,
[
slots
.
default
(),
slots
.
name
({
type
:
props
.
type
})])
:
h
(
btn2
)
}
// export const renderFn = function (props, {slots}) {
//
// // 加载组件
// // return props.type == 1 ? h(btn1) : h(btn2)
// // 加载默认插槽 - 具名插槽
// return props.type == 1 ? h(btn1, [slots.default(), slots.name()]) : h(btn2)
//
// }
export
default
{
props
:
[
'
type
'
],
setup
(
props
,
{
slots
})
{
console
.
log
(
'
props
'
,
props
);
return
()
=>
[
props
.
type
===
1
?
h
(
btn1
,
slots
.
default
())
:
h
(
btn2
)
]
}
}
\ No newline at end of file
vite-demo/src/views/skills/components/jsx/vnode.js
0 → 100644
浏览文件 @
8718a9cb
import
{
ref
,
h
}
from
'
vue
'
export
default
{
props
:
{
/* ... */
},
setup
(
props
)
{
const
count
=
ref
(
1
)
// 返回渲染函数
return
()
=>
[
h
(
'
div
'
),
h
(
'
div
'
),
h
(
'
div
'
)
]
}
}
\ No newline at end of file
vite-demo/src/views/skills/components/jsx/vue2JSX.vue
0 → 100644
浏览文件 @
8718a9cb
<
template
>
</
template
>
<
script
>
import
{
h
}
from
'
vue
'
export
default
{
name
:
"
item
"
,
setup
(){
}
}
</
script
>
\ No newline at end of file