Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
M
mes-ui
Project
Project
Details
Activity
Releases
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
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
周远喜
mes-ui
Commits
f142a1c0
Commit
f142a1c0
authored
Oct 23, 2020
by
骆瑛
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改对象管理页面
parent
736da3b1
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
885 additions
and
609 deletions
+885
-609
add.vue
pages/system/project/atom/add.vue
+116
-123
index.vue
pages/system/project/atom/dtos/index.vue
+72
-26
inputDto.vue
pages/system/project/atom/dtos/inputDto.vue
+196
-0
outDto.vue
pages/system/project/atom/dtos/outDto.vue
+319
-0
edit.vue
pages/system/project/atom/edit.vue
+176
-454
index.vue
pages/system/project/atom/index.vue
+6
-6
No files found.
pages/system/project/atom/add.vue
View file @
f142a1c0
...
@@ -106,8 +106,9 @@
...
@@ -106,8 +106,9 @@
</Modal>
-->
</Modal>
-->
</Tabs>
</Tabs>
</Row>
</Row>
<Row>
<component
:is=
"detail"
:list=
"checkList"
/>
<Row
style=
"margin-bottom: 10px"
:gutter=
"10"
>
<!--
<Row>
-->
<!--
<Row
style=
"margin-bottom: 10px"
:gutter=
"10"
>
<Col
:span=
"6"
>
<Col
:span=
"6"
>
<AutoComplete
<AutoComplete
v-model=
"completeValue"
v-model=
"completeValue"
...
@@ -134,8 +135,8 @@
...
@@ -134,8 +135,8 @@
<Col
:span=
"2"
>
<Col
:span=
"2"
>
<Button
type=
"primary"
@
click=
"importColumns"
>
导入
</Button>
<Button
type=
"primary"
@
click=
"importColumns"
>
导入
</Button>
</Col>
</Col>
</Row>
</Row>
-->
<Table
<
!--
<
Table
:columns=
"columns1"
:columns=
"columns1"
:data=
"checkList"
:data=
"checkList"
border
border
...
@@ -206,15 +207,6 @@
...
@@ -206,15 +207,6 @@
placeholder=
"请输入"
placeholder=
"请输入"
/>
/>
</
template
>
</
template
>
<!-- <template slot-scope="{ row, index }" slot="link">
<Input
v-model="row.link"
@on-change="setRow(row, index)"
placeholder="请输入"
number
/>
</template> -->
<
template
slot-scope=
"{ row, index }"
slot=
"systemName"
>
<
template
slot-scope=
"{ row, index }"
slot=
"systemName"
>
<state
code=
"project.main.systemName"
:value=
"row.systemName"
/>
<state
code=
"project.main.systemName"
:value=
"row.systemName"
/>
</
template
>
</
template
>
...
@@ -246,8 +238,8 @@
...
@@ -246,8 +238,8 @@
</Table>
</Table>
<Button
type=
"dashed"
long
@
click=
"addNew(0, '{}')"
class=
"mt10"
<Button
type=
"dashed"
long
@
click=
"addNew(0, '{}')"
class=
"mt10"
>
新增属性
</Button
>
新增属性
</Button
>
>
-->
<
/Row
>
<
!-- </Row> --
>
</Col>
</Col>
<Col
:span=
"24"
class=
"tr mt10"
>
<Col
:span=
"24"
class=
"tr mt10"
>
<FormItem>
<FormItem>
...
@@ -268,6 +260,7 @@ export default {
...
@@ -268,6 +260,7 @@ export default {
name
:
"Add"
,
name
:
"Add"
,
data
()
{
data
()
{
return
{
return
{
detail
:
null
,
iconType
:
"ios-arrow-up"
,
iconType
:
"ios-arrow-up"
,
textUp
:
"收起"
,
textUp
:
"收起"
,
upDrop
:
true
,
upDrop
:
true
,
...
@@ -415,20 +408,22 @@ export default {
...
@@ -415,20 +408,22 @@ export default {
upId
:
null
,
upId
:
null
,
level
:
null
,
level
:
null
,
tenantId
:
null
,
tenantId
:
null
,
type
:
null
,
type
:
0
,
englishFullName
:
""
,
englishFullName
:
""
,
englishName
:
""
,
englishName
:
""
,
status
:
null
,
status
:
null
,
description
:
""
,
description
:
""
,
inheritCategoryId
:
null
,
inheritCategoryId
:
null
,
code
:
""
,
code
:
""
,
dtos
:
""
,
module
:
""
,
module
:
""
,
version
:
null
,
version
:
null
,
projectId
:
null
,
projectId
:
null
,
},
},
rules
:
{
rules
:
{
name
:
[{
required
:
true
,
message
:
"必填"
,
trigger
:
"blur"
}],
name
:
[{
required
:
true
,
message
:
"请填写名称"
,
trigger
:
"blur"
}],
code
:
[{
required
:
true
,
message
:
"必填"
,
trigger
:
"blur"
}],
code
:
[{
required
:
true
,
message
:
"请填写编码"
,
trigger
:
"blur"
}],
// type:[{ required: true, message: '请选择类别', trigger: 'change' }]
},
},
// content:{
// content:{
// base:[]
// base:[]
...
@@ -436,37 +431,35 @@ export default {
...
@@ -436,37 +431,35 @@ export default {
dtos
:[]
dtos
:[]
};
};
},
},
components
:{
Dtos
},
props
:
{
props
:
{
v
:
Object
,
v
:
Object
,
eid
:
Number
,
eid
:
Number
,
},
},
mounted
()
{
mounted
()
{
this
.
seachChange
();
//
this.seachChange();
if
(
this
.
eid
>
0
)
{
if
(
this
.
eid
>
0
)
{
this
.
load
(
this
.
eid
);
this
.
load
(
this
.
eid
);
}
}
this
.
detail
=
()
=>
import
(
'./dtos'
)
},
},
methods
:
{
methods
:
{
onDragDrop
(
a
,
b
)
{
//
onDragDrop(a, b) {
this
.
checkList
.
splice
(
b
,
0
,
...
this
.
checkList
.
splice
(
a
,
1
));
//
this.checkList.splice(b, 0, ...this.checkList.splice(a, 1));
},
//
},
importColumns
()
{
//
importColumns() {
//导入
//
//导入
let
changeId
=
{};
//
let changeId = {};
if
(
this
.
completeList
.
length
>
0
)
{
//
if (this.completeList.length > 0) {
this
.
completeList
.
map
((
e
,
index
)
=>
{
//
this.completeList.map((e, index) => {
if
(
e
.
name
==
this
.
completeValue
)
{
//
if (e.name == this.completeValue) {
changeId
=
e
;
//
changeId = e;
this
.
completeList
.
splice
(
index
,
1
);
//
this.completeList.splice(index, 1);
this
.
completeValue
=
""
;
//
this.completeValue = "";
}
//
}
});
//
});
this
.
addNew
(
1
,
changeId
);
//
this.addNew(1, changeId);
}
//
}
},
//
},
upClick
(
value
)
{
upClick
(
value
)
{
this
.
upDrop
=
!
value
;
this
.
upDrop
=
!
value
;
if
(
value
)
{
if
(
value
)
{
...
@@ -477,90 +470,90 @@ export default {
...
@@ -477,90 +470,90 @@ export default {
this
.
iconType
=
"ios-arrow-up"
;
this
.
iconType
=
"ios-arrow-up"
;
}
}
},
},
seachChange
()
{
//
seachChange() {
let
data
=
{
//
let data = {
conditions
:
[],
//
conditions: [],
pageSize
:
20
,
//
pageSize: 20,
};
//
};
Api
.
list
(
data
).
then
((
r
)
=>
{
//
Api.list(data).then((r) => {
if
(
r
.
success
)
{
//
if (r.success) {
this
.
completeList
=
r
.
result
;
//
this.completeList = r.result;
}
else
{
//
} else {
}
//
}
});
//
});
},
//
},
remove
(
index
,
row
)
{
//
remove(index, row) {
if
(
row
.
add
==
0
)
{
//
if (row.add == 0) {
//新增的删除,直接删
//
//新增的删除,直接删
this
.
checkList
.
splice
(
index
,
1
);
//
this.checkList.splice(index, 1);
// let objArr = {
//
// let objArr = {
// name: row.columnDescription,
//
// name: row.columnDescription,
// code: row.code,
//
// code: row.code,
// id: row.id,
//
// id: row.id,
// };
//
// };
// this.completeList.push(objArr);
//
// this.completeList.push(objArr);
}
else
{
//
} else {
row
.
action
=
2
;
//返回的默认删除,删除后保存在arr数组中,添加标识action = 2,然后点击保存的时候,一起传给后台
//
row.action = 2; //返回的默认删除,删除后保存在arr数组中,添加标识action = 2,然后点击保存的时候,一起传给后台
this
.
$set
(
this
.
checkList
,
index
,
row
);
//
this.$set(this.checkList, index, row);
this
.
arr
.
push
(
row
);
//
this.arr.push(row);
this
.
checkList
.
splice
(
index
,
1
);
//
this.checkList.splice(index, 1);
}
//
}
},
//
},
setRow
(
row
,
index
)
{
//
setRow(row, index) {
if
(
row
.
dataType
==
0
||
row
.
dataType
==
8
)
{
//
if (row.dataType == 0 || row.dataType == 8) {
row
.
length
=
50
;
//
row.length = 50;
}
else
{
//
}else{
row
.
length
=
0
;
//
row.length = 0;
}
//
}
if
(
row
.
dbColumnName
==
""
)
{
//
if (row.dbColumnName=="") {
row
.
propertyName
=
row
.
dbColumnName
;
//
row.propertyName = row.dbColumnName;
}
//
}
this
.
$set
(
this
.
checkList
,
index
,
row
);
//
this.$set(this.checkList, index, row);
},
//
},
addNew
(
index
,
e
)
{
//
addNew(index, e) {
let
name
=
""
,
//
let name = "",
flag
=
false
;
//
flag = false;
if
(
index
==
0
&&
e
==
"{}"
)
{
//
if (index == 0 && e == "{}") {
this
.
checkList
.
forEach
((
s
,
index
)
=>
{
//
this.checkList.forEach((s, index) => {
if
(
s
.
columnDescription
==
""
)
{
//
if (s.columnDescription == "") {
this
.
$Message
.
warning
(
"请填写表格名称!"
);
//
this.$Message.warning("请填写表格名称!");
return
(
flag
=
true
);
//
return (flag = true);
}
//
}
if
(
s
.
propertyName
==
""
)
{
//
if (s.propertyName == "") {
this
.
$Message
.
warning
(
"请填写表格属性!"
);
//
this.$Message.warning("请填写表格属性!");
return
(
flag
=
true
);
//
return (flag = true);
}
//
}
});
//
});
if
(
flag
==
true
)
{
//
if (flag == true) {
return
;
//
return;
}
//
}
let
obj
=
{
//
let obj = {
dbColumnName
:
""
,
//
dbColumnName: "",
systemName
:
this
.
systemValue
,
//
systemName: this.systemValue,
columnDescription
:
name
,
//
columnDescription: name,
defaultValue
:
""
,
//
defaultValue: "",
isNullable
:
false
,
//
isNullable: false,
unit
:
0
,
//
unit: 0,
link
:
0
,
//
link: 0,
dataType
:
0
,
//
dataType: 0,
isKey
:
false
,
// 是否主键
//
isKey: false, // 是否主键
length
:
50
,
//
length: 50,
propertyName
:
""
,
//程序中的字段名称
//
propertyName: "", //程序中的字段名称
propertyType
:
""
,
// 程序中的字段类型
//
propertyType: "", // 程序中的字段类型
fieldType
:
3
,
//
fieldType: 3,
action
:
1
,
//
action: 1,
add
:
0
,
//新增标识
//
add: 0, //新增标识
};
//
};
this
.
checkList
.
push
(
obj
);
//
this.checkList.push(obj);
}
else
if
(
index
==
1
&&
JSON
.
stringify
(
e
)
!=
"{}"
)
{
//
} else if (index == 1 && JSON.stringify(e) != "{}") {
JSON
.
parse
(
e
.
content
).
map
((
item
)
=>
{
//
JSON.parse(e.content).map((item) => {
this
.
checkList
.
push
(
item
);
//
this.checkList.push(item);
});
//
});
}
else
{
//
} else {
this
.
$Message
.
warning
(
"请选择导入字段!"
);
//
this.$Message.warning("请选择导入字段!");
return
;
//
return;
}
//
}
},
//
},
handleSubmit
()
{
handleSubmit
()
{
let
keys
=
false
;
let
keys
=
false
;
let
name
=
""
;
let
name
=
""
;
...
...
pages/system/project/atom/dtos/index.vue
View file @
f142a1c0
...
@@ -97,15 +97,7 @@
...
@@ -97,15 +97,7 @@
placeholder=
"请输入"
placeholder=
"请输入"
/>
/>
</
template
>
</
template
>
<!--
<template slot-scope="{ row, index }" slot="link">
<Input
v-model="row.link"
@on-change="setRow(row, index)"
placeholder="请输入"
number
/>
</template> -->
<
template
slot-scope=
"{ row, index }"
slot=
"systemName"
>
<
template
slot-scope=
"{ row, index }"
slot=
"systemName"
>
<state
code=
"project.main.systemName"
:value=
"row.systemName"
/>
<state
code=
"project.main.systemName"
:value=
"row.systemName"
/>
</
template
>
</
template
>
...
@@ -141,6 +133,7 @@
...
@@ -141,6 +133,7 @@
</template>
</template>
<
script
>
<
script
>
import
Api
from
"../api"
;
export
default
{
export
default
{
// name: '',
// name: '',
data
()
{
data
()
{
...
@@ -281,18 +274,40 @@ export default {
...
@@ -281,18 +274,40 @@ export default {
align
:
"center"
,
align
:
"center"
,
},
},
],
],
dtos
:
[],
};
};
},
},
props
:
{
props
:
{
dtosList
:
Array
,
default
:
()
=>
{
return
[];
},
list
:
Array
,
list
:
Array
,
default
:()
=>
{
default
:
()
=>
{
return
[]
return
[];
}
},
},
mounted
()
{
this
.
seachChange
();
},
},
created
(
)
{
async
fetch
({
store
,
params
}
)
{
await
store
.
dispatch
(
"loadDictionary"
);
// 加载数据字典
},
},
methods
:
{
methods
:
{
seachChange
()
{
let
data
=
{
conditions
:
[],
pageSize
:
20
,
};
Api
.
list
(
data
)
.
then
((
r
)
=>
{
if
(
r
.
success
)
{
this
.
completeList
=
r
.
result
;
}
else
{
}
})
.
catch
((
err
)
=>
{});
},
importColumns
()
{
importColumns
()
{
//导入
//导入
let
changeId
=
{};
let
changeId
=
{};
...
@@ -328,17 +343,45 @@ export default {
...
@@ -328,17 +343,45 @@ export default {
}
}
},
},
setRow
(
row
,
index
)
{
setRow
(
row
,
index
)
{
console
.
log
(
row
.
list
);
if
(
row
.
list
==
true
)
{
if
(
row
.
list
==
true
)
{
this
.
dtos
[
0
].
list
.
push
(
row
);
this
.
dtos
.
forEach
((
e
,
index
)
=>
{
}
else
{
console
.
log
(
e
)
this
.
dtos
[
0
].
list
.
map
((
q
,
i
)
=>
{
if
(
e
.
code
==
"list"
)
{
if
(
q
.
propertyName
==
row
.
propertyName
)
{
this
.
dtos
[
index
].
list
.
push
(
row
);
this
.
dtos
[
0
].
list
.
splice
(
i
,
1
);
}
});
}
else
if
(
row
.
add
==
true
)
{
this
.
dtos
.
forEach
((
e
,
index
)
=>
{
if
(
e
.
code
==
"add"
)
{
this
.
dtos
[
index
].
list
.
push
(
row
);
}
});
}
else
if
(
row
.
list
==
false
)
{
this
.
dtos
.
forEach
((
e
,
index
)
=>
{
if
(
e
.
code
==
"list"
&&
this
.
dtos
[
index
].
list
.
length
>
0
)
{
this
.
dtos
[
index
].
list
.
map
((
q
,
i
)
=>
{
if
(
q
.
propertyName
==
row
.
propertyName
)
{
this
.
dtos
[
index
].
list
.
splice
(
i
,
1
);
}
});
}
});
}
else
if
(
row
.
add
==
false
)
{
this
.
dtos
.
forEach
((
e
,
index
)
=>
{
if
(
e
.
code
==
"add"
&&
this
.
dtos
[
index
].
list
.
length
>
0
)
{
this
.
dtos
[
index
].
list
.
map
((
q
,
i
)
=>
{
if
(
q
.
propertyName
==
row
.
propertyName
)
{
this
.
dtos
[
index
].
list
.
splice
(
i
,
1
);
}
});
}
}
});
});
}
}
console
.
log
(
this
.
dtos
[
0
].
list
);
console
.
log
(
"11111"
);
console
.
log
(
this
.
dtos
);
this
.
$emit
(
"dtos"
,
this
.
dtos
);
this
.
checkList
[
index
].
dtos
=
JSON
.
stringify
(
this
.
dtos
);
this
.
$emit
(
"oncheckList"
,
this
.
checkList
);
if
(
row
.
dataType
==
0
||
row
.
dataType
==
8
)
{
if
(
row
.
dataType
==
0
||
row
.
dataType
==
8
)
{
row
.
length
=
50
;
row
.
length
=
50
;
}
else
{
}
else
{
...
@@ -394,11 +437,14 @@ export default {
...
@@ -394,11 +437,14 @@ export default {
}
}
},
},
},
},
watch
:{
watch
:
{
list
(
v
){
list
(
v
)
{
this
.
checkList
=
v
;
this
.
checkList
=
v
;
}
},
}
dtosList
(
v
)
{
this
.
dtos
=
v
;
},
},
};
};
</
script
>
</
script
>
...
...
pages/system/project/atom/dtos/inputDto.vue
View file @
f142a1c0
<
template
>
<div>
<h1>
输入页面
</h1>
<Row>
<Table
:columns=
"inputColumns"
:data=
"data"
>
<template
slot-scope=
"
{ row, index }" slot="columnDescription">
<div
v-if=
"row.columnDescription != ''"
>
{{
row
.
columnDescription
}}
</div>
<Input
v-else
@
on-change=
"setRow(row, index)"
v-model=
"row.columnDescription"
placeholder=
"请输入"
/>
</
template
>
<
template
slot-scope=
"{ row, index }"
slot=
"propertyName"
>
<div
v-if=
"row.propertyName != ''"
>
{{
row
.
propertyName
}}
</div>
<Input
v-else
@
on-change=
"setRow(row, index)"
v-model=
"row.propertyName"
placeholder=
"请输入"
/>
</
template
>
<
template
slot-scope=
"{ row, index }"
slot=
"type"
>
<Dictionary
@
on-change=
"setRow(row, index)"
v-model=
"row.type"
code=
"base.project_atom.inputDtos"
:value=
"row.type"
:key=
"row.type"
></Dictionary>
</
template
>
<
template
slot-scope=
"{ row, index }"
slot=
"children"
>
<Checkbox
v-model=
"row.children"
@
on-change=
"setRow(row, index)"
></Checkbox>
</
template
>
<
template
slot-scope=
"{ row, index }"
slot=
"action"
>
<a
@
click=
"remove(index, row)"
style=
"color: #ff7a8b"
v-if=
"row.action == 0"
>
删除
</a
>
</
template
>
</Table>
<Button
type=
"dashed"
long
@
click=
"addNew(0, '{}')"
class=
"mt10"
>
新增属性
</Button
>
</Row>
</div>
</template>
<
script
>
export
default
{
// name: '',
data
()
{
return
{
data
:
[],
inputColumns
:
[
{
title
:
"名称"
,
align
:
"center"
,
key
:
"columnDescription"
,
slot
:
"columnDescription"
,
},
{
title
:
"列类型"
,
key
:
"type"
,
align
:
"center"
,
slot
:
"type"
,
high
:
true
,
},
{
title
:
"属性"
,
key
:
"propertyName"
,
align
:
"center"
,
slot
:
"propertyName"
,
high
:
true
,
},
{
title
:
"表头分组"
,
align
:
"center"
,
key
:
"children"
,
slot
:
"children"
,
high
:
false
,
},
{
width
:
80
,
title
:
"操作"
,
slot
:
"action"
,
align
:
"center"
,
},
],
};
},
props
:
{
changeTabs
:
String
,
dtosList
:
Array
,
default
:
()
=>
{
return
[];
},
},
mounted
()
{
this
.
data
=
[];
console
.
log
(
"进入页面"
,
this
.
dtosList
);
let
arr
=
this
.
dtosList
.
filter
((
v
)
=>
v
.
code
==
this
.
changeTabs
);
console
.
log
(
arr
);
if
(
arr
[
0
].
list
.
length
>
0
)
{
arr
[
0
].
list
.
map
((
e
)
=>
{
let
obj
=
{
columnDescription
:
e
.
columnDescription
,
type
:
e
.
type
,
propertyName
:
e
.
propertyName
,
children
:
e
.
children
,
action
:
1
,
//不可删除项
};
this
.
data
.
push
(
obj
);
});
}
else
{
let
obj
=
{
columnDescription
:
e
.
columnDescription
,
type
:
""
,
propertyName
:
e
.
propertyName
,
children
:
""
,
action
:
1
,
//不可删除项
};
this
.
data
.
push
(
obj
);
}
},
methods
:
{
setRow
(
row
,
index
)
{
this
.
$set
(
this
.
data
,
index
,
row
);
this
.
dtosList
.
forEach
((
v
)
=>
{
if
(
v
.
code
==
this
.
changeTabs
)
{
v
.
list
=
this
.
data
;
}
});
console
.
log
(
"提交"
,
this
.
dtosList
);
this
.
$emit
(
"dtos"
,
this
.
dtosList
);
},
remove
(
index
,
row
)
{
if
(
row
.
action
==
0
)
{
//新增的删除,直接删
this
.
data
.
splice
(
index
,
1
);
}
},
addNew
(
index
,
e
)
{
let
name
=
""
,
flag
=
false
;
if
(
index
==
0
&&
e
==
"{}"
)
{
this
.
checkList
.
forEach
((
s
,
index
)
=>
{
if
(
s
.
columnDescription
==
""
)
{
this
.
$Message
.
warning
(
"请填写表格名称!"
);
return
(
flag
=
true
);
}
if
(
s
.
propertyName
==
""
)
{
this
.
$Message
.
warning
(
"请填写表格属性!"
);
return
(
flag
=
true
);
}
});
if
(
flag
==
true
)
{
return
;
}
let
obj
=
{
columnDescription
:
""
,
type
:
""
,
propertyName
:
""
,
children
:
""
,
action
:
1
,
//不可删除项
};
this
.
checkList
.
push
(
obj
);
}
// else if (index == 1 && JSON.stringify(e) != "{}") {
// JSON.parse(e.content).map((item) => {
// this.checkList.push(item);
// });
// } else {
// this.$Message.warning("请选择导入字段!");
// return;
// }
},
},
watch
:
{
dtosList
(
v
)
{
this
.
data
=
v
;
},
},
};
</
script
>
\ No newline at end of file
pages/system/project/atom/dtos/outDto.vue
View file @
f142a1c0
<
template
>
<div>
<h1>
输出页面
</h1>
<Row>
<Table
:columns=
"columns"
:data=
"data1"
>
<template
slot-scope=
"
{ row, index }" slot="columnDescription">
<div
v-if=
"row.action != 0"
>
{{
row
.
columnDescription
}}
</div>
<Input
v-else
v-model=
"row.columnDescription"
@
on-change=
"setRow(row, index)"
placeholder=
"请输入"
/>
</
template
>
<
template
slot-scope=
"{ row, index }"
slot=
"propertyName"
>
<div
v-if=
"row.action != 0"
>
{{
row
.
propertyName
}}
</div>
<Input
v-else
v-model=
"row.propertyName"
@
on-change=
"setRow(row, index)"
placeholder=
"请输入"
/>
</
template
>
<
template
slot-scope=
"{ row, index }"
slot=
"type"
>
<Dictionary
@
on-change=
"setRow(row, index)"
v-model=
"row.type"
code=
"base.project_atom.inputDtos"
:value=
"row.type"
:key=
"row.type"
></Dictionary>
</
template
>
<
template
slot-scope=
"{ row, index }"
slot=
"width"
>
<Input
v-model=
"row.width"
@
on-change=
"setRow(row, index)"
placeholder=
"请输入"
/>
</
template
>
<
template
slot-scope=
"{ row, index }"
slot=
"align"
>
<Dictionary
@
on-change=
"setRow(row, index)"
v-model=
"row.align"
code=
"base.project_atom.align"
:value=
"row.align"
:key=
"row.align"
></Dictionary>
</
template
>
<
template
slot-scope=
"{ row, index }"
slot=
"fixed"
>
<Dictionary
@
on-change=
"setRow(row, index)"
v-model=
"row.fixed"
code=
"base.project_atom.fixed"
:value=
"row.fixed"
:key=
"row.fixed"
></Dictionary>
</
template
>
<
template
slot-scope=
"{ row, index }"
slot=
"ellipsis"
>
<Checkbox
@
on-change=
"setRow(row, index)"
v-model=
"row.ellipsis"
></Checkbox>
</
template
>
<
template
slot-scope=
"{ row, index }"
slot=
"tooltip"
>
<Checkbox
@
on-change=
"setRow(row, index)"
v-model=
"row.tooltip"
></Checkbox>
</
template
>
<
template
slot-scope=
"{ row, index }"
slot=
"render"
>
<Checkbox
@
on-change=
"setRow(row, index)"
v-model=
"row.render"
></Checkbox>
</
template
>
<
template
slot-scope=
"{ row, index }"
slot=
"sortable"
>
<Checkbox
@
on-change=
"setRow(row, index)"
v-model=
"row.sortable"
></Checkbox>
</
template
>
<
template
slot-scope=
"{ row, index }"
slot=
"resizable"
>
<Input
@
on-change=
"setRow(row, index)"
v-model=
"row.resizable"
placeholder=
"请输入"
/>
</
template
>
<
template
slot-scope=
"{ row, index }"
slot=
"action"
>
<a
@
click=
"remove(index, row)"
style=
"color: #ff7a8b"
v-if=
"row.action == 0"
>
删除
</a
>
</
template
>
</Table>
<Button
type=
"dashed"
long
@
click=
"addNew(0, '{}')"
class=
"mt10"
>
新增属性
</Button
>
</Row>
</div>
</template>
<
script
>
import
{
values
}
from
"lodash"
;
export
default
{
data
()
{
return
{
data1
:
[],
columns
:
[
{
title
:
"名称"
,
align
:
"center"
,
key
:
"columnDescription"
,
slot
:
"columnDescription"
,
},
{
title
:
"列类型"
,
key
:
"type"
,
align
:
"center"
,
slot
:
"type"
,
high
:
true
,
},
{
title
:
"属性"
,
key
:
"propertyName"
,
align
:
"center"
,
slot
:
"propertyName"
,
high
:
true
,
},
{
title
:
"列宽"
,
align
:
"center"
,
key
:
"width"
,
slot
:
"width"
,
high
:
false
,
},
{
title
:
"对齐方式"
,
align
:
"center"
,
key
:
"align"
,
slot
:
"align"
,
high
:
false
,
},
{
title
:
"列固定方位"
,
align
:
"center"
,
key
:
"fixed"
,
slot
:
"fixed"
,
high
:
false
,
},
{
title
:
"是否为省略号"
,
align
:
"center"
,
key
:
"ellipsis"
,
slot
:
"ellipsis"
,
high
:
false
,
},
{
title
:
"Tooltip 组件使用"
,
align
:
"center"
,
key
:
"tooltip"
,
slot
:
"tooltip"
,
high
:
false
,
},
{
title
:
"渲染render"
,
align
:
"center"
,
key
:
"render"
,
slot
:
"render"
,
high
:
false
,
},
{
title
:
"排序"
,
align
:
"center"
,
key
:
"sortable"
,
slot
:
"sortable"
,
high
:
false
,
},
{
title
:
"列宽度调整"
,
align
:
"center"
,
key
:
"resizable"
,
slot
:
"resizable"
,
high
:
false
,
},
{
width
:
80
,
title
:
"操作"
,
slot
:
"action"
,
align
:
"center"
,
},
],
};
},
props
:
{
changeTabs
:
String
,
dtosList
:
Array
,
default
:
()
=>
{
return
[];
},
},
mounted
()
{
this
.
data1
=
[];
console
.
log
(
"进入页面"
,
this
.
dtosList
)
let
arr
=
this
.
dtosList
.
filter
((
v
)
=>
v
.
code
==
this
.
changeTabs
);
if
(
arr
[
0
].
list
.
length
>
0
)
{
arr
[
0
].
list
.
map
((
e
)
=>
{
let
obj
=
{
columnDescription
:
e
.
columnDescription
,
type
:
e
.
type
,
propertyName
:
e
.
propertyName
,
width
:
e
.
width
,
align
:
e
.
align
,
fixed
:
e
.
fixed
,
ellipsis
:
e
.
ellipsis
,
tooltip
:
e
.
tooltip
,
render
:
e
.
render
,
sortable
:
e
.
sortable
,
resizable
:
e
.
resizable
,
action
:
1
,
//不可删除项
};
this
.
data1
.
push
(
obj
);
});
}
else
{
arr
[
0
].
list
.
map
((
e
)
=>
{
let
obj
=
{
columnDescription
:
e
.
columnDescription
,
type
:
""
,
propertyName
:
e
.
propertyName
,
width
:
""
,
align
:
""
,
fixed
:
""
,
ellipsis
:
""
,
tooltip
:
""
,
render
:
""
,
sortable
:
""
,
resizable
:
""
,
action
:
1
,
//不可删除项
};
this
.
data1
.
push
(
obj
);
});
}
},
methods
:
{
setRow
(
row
,
index
)
{
this
.
$set
(
this
.
data1
,
index
,
row
);
this
.
dtosList
.
forEach
((
v
)
=>
{
if
(
v
.
code
==
this
.
changeTabs
){
v
.
list
=
this
.
data1
;
}
});
console
.
log
(
"提交"
,
this
.
dtosList
)
this
.
$emit
(
"dtos"
,
this
.
dtosList
);
},
addNew
(
index
,
e
)
{
let
name
=
""
,
flag
=
false
;
if
(
index
==
0
&&
e
==
"{}"
)
{
this
.
data1
.
forEach
((
s
,
index
)
=>
{
if
(
s
.
columnDescription
==
""
)
{
this
.
$Message
.
warning
(
"请填写表格名称!"
);
return
(
flag
=
true
);
}
if
(
s
.
propertyName
==
""
)
{
this
.
$Message
.
warning
(
"请填写表格属性!"
);
return
(
flag
=
true
);
}
});
if
(
flag
==
true
)
{
return
;
}
let
obj
=
{
columnDescription
:
""
,
type
:
""
,
propertyName
:
""
,
width
:
null
,
align
:
null
,
fixed
:
null
,
ellipsis
:
null
,
tooltip
:
null
,
render
:
null
,
sortable
:
null
,
resizable
:
null
,
action
:
0
,
//可删除项
};
this
.
data1
.
push
(
obj
);
}
},
remove
(
index
,
row
)
{
if
(
row
.
action
==
0
)
{
//新增的删除,直接删
this
.
data1
.
splice
(
index
,
1
);
}
// else {
// // row.action = 2; //返回的默认删除,删除后保存在arr数组中,添加标识action = 2,然后点击保存的时候,一起传给后台
// this.$set(this.data1, index, row);
// // this.arr.push(row);
// this.data1.splice(index, 1);
// }
},
},
watch
:
{
dtosList
(
v
)
{
this
.
data1
=
v
;
},
},
};
</
script
>
\ No newline at end of file
pages/system/project/atom/edit.vue
View file @
f142a1c0
This diff is collapsed.
Click to expand it.
pages/system/project/atom/index.vue
View file @
f142a1c0
...
@@ -159,12 +159,12 @@ export default {
...
@@ -159,12 +159,12 @@ export default {
this
.
detail
=
()
=>
import
(
"./add"
);
this
.
detail
=
()
=>
import
(
"./add"
);
this
.
modal
=
true
;
this
.
modal
=
true
;
},
},
copy
(
id
)
{
//
copy(id) {
this
.
curId
=
id
;
//
this.curId = id;
this
.
title
=
"克隆"
;
//
this.title = "克隆";
this
.
detail
=
()
=>
import
(
"./add"
);
//
this.detail = () => import("./add");
this
.
modal
=
true
;
//
this.modal = true;
},
//
},
view
(
id
)
{
view
(
id
)
{
this
.
curId
=
id
;
this
.
curId
=
id
;
this
.
title
=
"详情"
;
this
.
title
=
"详情"
;
...
...
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