Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
F
front-backend
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
framework
front-backend
Commits
23105943
Commit
23105943
authored
Feb 27, 2020
by
Moxun1639
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
解决多crud,对inject修改造成注入混乱,弃用Vue注入方式
parent
0c771b34
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
32 additions
and
76 deletions
+32
-76
src/components/Crud/crud.js
+32
-76
No files found.
src/components/Crud/crud.js
View file @
23105943
...
@@ -12,7 +12,7 @@ import Vue from 'vue'
...
@@ -12,7 +12,7 @@ import Vue from 'vue'
*/
*/
function
CRUD
(
options
)
{
function
CRUD
(
options
)
{
const
defaultOptions
=
{
const
defaultOptions
=
{
tag
:
''
,
tag
:
'
default
'
,
// 标题
// 标题
title
:
''
,
title
:
''
,
// 请求数据的url
// 请求数据的url
...
@@ -36,7 +36,7 @@ function CRUD(options) {
...
@@ -36,7 +36,7 @@ function CRUD(options) {
// CRUD Method
// CRUD Method
crudMethod
:
{
crudMethod
:
{
add
:
(
form
)
=>
{},
add
:
(
form
)
=>
{},
del
ete
:
(
id
)
=>
{},
del
:
(
id
)
=>
{},
edit
:
(
form
)
=>
{},
edit
:
(
form
)
=>
{},
get
:
(
id
)
=>
{}
get
:
(
id
)
=>
{}
},
},
...
@@ -564,46 +564,35 @@ function mergeOptions(src, opts) {
...
@@ -564,46 +564,35 @@ function mergeOptions(src, opts) {
return
optsRet
return
optsRet
}
}
function
getCrudPiName
(
crudTag
)
{
return
'crud'
+
(
crudTag
?
'$'
+
crudTag
:
''
)
}
/**
/**
*
根据tag修正注入crud时from值
*
查找crud
* @param {*} vm
* @param {*} vm
* @param {string} tag
*/
*/
function
reviseInject
(
vm
)
{
function
lookupCrud
(
vm
,
tag
)
{
if
(
vm
.
$attrs
[
'crud-tag'
])
{
tag
=
tag
||
vm
.
$attrs
[
'crud-tag'
]
||
'default'
const
inject
=
vm
.
$options
.
inject
// function lookupCrud(vm, tag) {
for
(
const
k
in
inject
)
{
if
(
vm
.
$crud
)
{
const
v
=
inject
[
k
]
const
ret
=
vm
.
$crud
[
tag
]
const
from
=
v
.
from
if
(
ret
)
{
if
(
from
===
'crud'
||
from
.
startsWith
(
'crud.'
))
{
return
ret
v
.
from
=
from
.
replace
(
'crud'
,
getCrudPiName
(
vm
.
$attrs
[
'crud-tag'
]))
}
}
}
}
}
return
vm
.
$parent
?
lookupCrud
(
vm
.
$parent
,
tag
)
:
undefined
}
}
/**
/**
* crud主页
* crud主页
*/
*/
function
presenter
(
crud
)
{
function
presenter
(
crud
)
{
const
crudPiName
=
getCrudPiName
(
crud
.
tag
)
return
{
return
{
inject
:
{
crud
:
{
from
:
crudPiName
}
},
beforeCreate
()
{
beforeCreate
()
{
// 由于initInjections在initProvide之前执行,如果该组件自己就需要crud,需要在initInjections前准备好crud
this
.
$crud
=
this
.
$crud
||
{}
this
.
_provided
=
Object
.
assign
(
this
.
_provided
||
{},
{
if
(
this
.
$crud
[
crud
.
tag
])
{
[
crudPiName
]:
crud
,
console
.
error
(
'[CRUD error]: '
+
'crud with tag ['
+
crud
.
tag
+
' is already exist'
)
[
crudPiName
+
'.query'
]:
crud
.
query
,
}
[
crudPiName
+
'.page'
]:
crud
.
page
,
this
.
$crud
[
crud
.
tag
]
=
crud
[
crudPiName
+
'.form'
]:
crud
.
form
crud
.
registerVM
(
'presenter'
,
this
,
0
)
})
},
},
data
()
{
data
()
{
return
{
return
{
...
@@ -614,13 +603,12 @@ function presenter(crud) {
...
@@ -614,13 +603,12 @@ function presenter(crud) {
parseTime
parseTime
},
},
created
()
{
created
()
{
this
.
crud
.
registerVM
(
'presenter'
,
this
,
0
)
if
(
crud
.
queryOnPresenterCreated
)
{
if
(
crud
.
queryOnPresenterCreated
)
{
crud
.
toQuery
()
crud
.
toQuery
()
}
}
},
},
beforeDestroy
()
{
destroyed
()
{
this
.
crud
.
unregisterVM
(
this
)
crud
.
unregisterVM
(
this
)
},
},
mounted
()
{
mounted
()
{
const
columns
=
[]
const
columns
=
[]
...
@@ -647,21 +635,12 @@ function presenter(crud) {
...
@@ -647,21 +635,12 @@ function presenter(crud) {
*/
*/
function
header
()
{
function
header
()
{
return
{
return
{
inject
:
{
crud
:
{
from
:
'crud'
},
query
:
{
from
:
'crud.query'
}
},
beforeCreate
()
{
beforeCreate
()
{
reviseInject
(
this
)
this
.
crud
=
lookupCrud
(
this
)
},
this
.
query
=
this
.
crud
.
query
created
()
{
this
.
crud
.
registerVM
(
'header'
,
this
,
1
)
this
.
crud
.
registerVM
(
'header'
,
this
,
1
)
},
},
beforeDestroy
()
{
destroyed
()
{
this
.
crud
.
unregisterVM
(
this
)
this
.
crud
.
unregisterVM
(
this
)
}
}
}
}
...
@@ -672,21 +651,12 @@ function header() {
...
@@ -672,21 +651,12 @@ function header() {
*/
*/
function
pagination
()
{
function
pagination
()
{
return
{
return
{
inject
:
{
crud
:
{
from
:
'crud'
},
page
:
{
from
:
'crud.page'
}
},
beforeCreate
()
{
beforeCreate
()
{
reviseInject
(
this
)
this
.
crud
=
lookupCrud
(
this
)
},
this
.
page
=
this
.
crud
.
page
created
()
{
this
.
crud
.
registerVM
(
'pagination'
,
this
,
2
)
this
.
crud
.
registerVM
(
'pagination'
,
this
,
2
)
},
},
beforeDestroy
()
{
destroyed
()
{
this
.
crud
.
unregisterVM
(
this
)
this
.
crud
.
unregisterVM
(
this
)
}
}
}
}
...
@@ -697,23 +667,16 @@ function pagination() {
...
@@ -697,23 +667,16 @@ function pagination() {
*/
*/
function
form
(
defaultForm
)
{
function
form
(
defaultForm
)
{
return
{
return
{
inject
:
{
crud
:
{
from
:
'crud'
},
form
:
{
from
:
'crud.form'
}
},
beforeCreate
()
{
beforeCreate
()
{
reviseInject
(
this
)
this
.
crud
=
lookupCrud
(
this
)
this
.
form
=
this
.
crud
.
form
this
.
crud
.
registerVM
(
'form'
,
this
,
3
)
},
},
created
()
{
created
()
{
this
.
crud
.
registerVM
(
'form'
,
this
,
3
)
this
.
crud
.
defaultForm
=
defaultForm
this
.
crud
.
defaultForm
=
defaultForm
this
.
crud
.
resetForm
()
this
.
crud
.
resetForm
()
},
},
beforeDestroy
()
{
destroyed
()
{
this
.
crud
.
unregisterVM
(
this
)
this
.
crud
.
unregisterVM
(
this
)
}
}
}
}
...
@@ -728,18 +691,11 @@ function crud(options = {}) {
...
@@ -728,18 +691,11 @@ function crud(options = {}) {
}
}
options
=
mergeOptions
(
defaultOptions
,
options
)
options
=
mergeOptions
(
defaultOptions
,
options
)
return
{
return
{
inject
:
{
crud
:
{
from
:
'crud'
}
},
beforeCreate
()
{
beforeCreate
()
{
reviseInject
(
this
)
this
.
crud
=
lookupCrud
(
this
)
},
created
()
{
this
.
crud
.
registerVM
(
options
.
type
,
this
)
this
.
crud
.
registerVM
(
options
.
type
,
this
)
},
},
beforeDestroy
()
{
destroyed
()
{
this
.
crud
.
unregisterVM
(
this
)
this
.
crud
.
unregisterVM
(
this
)
}
}
}
}
...
...
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