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
4a7599b0
Commit
4a7599b0
authored
Oct 19, 2020
by
周远喜
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'product' of
http://git.mes123.com/zhouyx/mes-ui
into product
parents
12c8bc91
6b5b68d7
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
848 additions
and
524 deletions
+848
-524
henq.js
libs/henq.js
+225
-17
index.vue
pages/aps/plan/index.vue
+2
-2
add.vue
pages/mesPlan/add.vue
+318
-347
add.vue
pages/project/project/add.vue
+115
-72
test.vue
pages/test.vue
+35
-27
test1.vue
pages/test/test1.vue
+91
-0
index.vue
pages/test/view/index.vue
+62
-59
No files found.
libs/henq.js
View file @
4a7599b0
import
XLSX
from
'xlsx'
;
import
Api
from
'@/plugins/request'
let
henq
=
{};
let
pdfInfo
=
''
henq
.
clone
=
(
obj
)
=>
{
...
...
@@ -169,38 +170,37 @@ henq.findRoots = (arr1, id) => {
//省市县pacc转为list
henq
.
treeToList1
=
(
tree
)
=>
{
let
list
=
[];
function
treeToList1
(
data
)
{
data
.
map
(
u
=>
{
if
(
u
.
children
&&
u
.
level
!=
1
)
{
if
(
u
.
children
&&
u
.
level
!=
1
)
{
treeToList1
(
u
.
children
,
u
)
}
else
if
(
u
.
children
&&
u
.
level
==
1
)
{
list
=
list
.
concat
(
u
.
children
);
}
else
if
(
u
.
children
&&
u
.
level
==
1
)
{
list
=
list
.
concat
(
u
.
children
);
}
})
}
treeToList1
(
tree
,
null
)
return
list
;
}
//根据departId返出上级所有name
henq
.
getDepartAllName
=
(
list
,
id
)
=>
{
henq
.
getDepartAllName
=
(
list
,
id
)
=>
{
let
names
=
''
;
function
getDepartAllName
(
list
,
id
)
{
function
getDepartAllName
(
list
,
id
)
{
list
.
map
(
u
=>
{
if
(
id
==
u
.
id
)
{
names
=
u
.
name
+
"/"
+
names
if
(
u
.
parent_Id
>
0
)
{
getDepartAllName
(
list
,
u
.
parent_Id
)
if
(
id
==
u
.
id
)
{
names
=
u
.
name
+
"/"
+
names
if
(
u
.
parent_Id
>
0
)
{
getDepartAllName
(
list
,
u
.
parent_Id
)
}
}
}
})
}
getDepartAllName
(
list
,
id
)
return
names
.
slice
(
0
,
names
.
length
-
1
);
getDepartAllName
(
list
,
id
)
return
names
.
slice
(
0
,
names
.
length
-
1
);
}
//导出pdf
henq
.
outPdf
=
(
ele
,
fileName
)
=>
{
...
...
@@ -343,4 +343,212 @@ henq.dirCode = (code, v) => {
}
return
items
}
henq
.
makeRules
=
(
list
,
apiUrl
)
=>
{
//测试数据start
list
=
[{
//普通输入框
columnDescription
:
"测试列1"
,
// 中文名称
dbColumnName
:
"colums1"
,
// 字段名称
dataType
:
"varchar"
,
// 数据库中字段类型
propertyName
:
"colums1"
,
//程序中的字段名称
propertyType
:
"String"
,
// 程序中的字段类型
code
:
""
,
// 数据字典编码
isNullable
:
false
,
// 是否可空
isKey
:
false
,
// 是否主键
unit
:
""
,
// 单位
length
:
50
,
//
decimalDigits
:
0
,
// 精度
link
:
0
,
//外键 表的
defaultValue
:
""
,
// 默认值
control
:
0
,
uniqueness
:
0
,
// 唯一性 0 不限制 1 表内唯一 2 表内某条件下唯一
ruleType
:
""
,
// 邮箱 ,电话,等
},
{
//数据字典项
columnDescription
:
"测试列2"
,
dbColumnName
:
"colums2"
,
dataType
:
"int32"
,
propertyName
:
"colums2"
,
propertyType
:
"int"
,
code
:
"aps.plan.status"
,
isNullable
:
false
,
isKey
:
false
,
unit
:
""
,
length
:
50
,
decimalDigits
:
0
,
link
:
0
,
defaultValue
:
""
,
control
:
0
,
uniqueness
:
0
,
ruleType
:
""
,
},
{
//手机号码
columnDescription
:
"测试列3"
,
dbColumnName
:
"colums3"
,
dataType
:
"varchar"
,
propertyName
:
"colums3"
,
propertyType
:
"int"
,
code
:
""
,
isNullable
:
false
,
isKey
:
false
,
unit
:
""
,
length
:
50
,
decimalDigits
:
0
,
link
:
0
,
defaultValue
:
""
,
control
:
0
,
uniqueness
:
0
,
ruleType
:
"phone"
,
},
{
//电子邮件
columnDescription
:
"测试列4"
,
dbColumnName
:
"colums4"
,
dataType
:
"varchar"
,
propertyName
:
"colums4"
,
propertyType
:
"String"
,
code
:
""
,
isNullable
:
false
,
isKey
:
false
,
unit
:
""
,
length
:
50
,
decimalDigits
:
0
,
link
:
0
,
defaultValue
:
""
,
control
:
0
,
uniqueness
:
0
,
ruleType
:
"email"
,
},
{
//唯一性api接口校验
columnDescription
:
"测试列5"
,
dbColumnName
:
"colums5"
,
dataType
:
"varchar"
,
propertyName
:
"colums5"
,
propertyType
:
"String"
,
code
:
""
,
isNullable
:
false
,
isKey
:
false
,
unit
:
""
,
length
:
50
,
decimalDigits
:
0
,
link
:
0
,
defaultValue
:
""
,
control
:
0
,
uniqueness
:
1
,
//表内唯一验证
ruleType
:
""
,
},
{
//日期校验
columnDescription
:
"测试列6"
,
dbColumnName
:
"colums6"
,
dataType
:
"datetime"
,
propertyName
:
"colums6"
,
propertyType
:
"String"
,
code
:
""
,
isNullable
:
false
,
isKey
:
false
,
unit
:
""
,
length
:
50
,
decimalDigits
:
0
,
link
:
0
,
defaultValue
:
""
,
control
:
0
,
uniqueness
:
0
,
//表内唯一验证
ruleType
:
"datetime"
,
}
]
apiUrl
=
`
${
systemUrl
}
/user/list`
//测试数据end
//唯一性校验
const
validateCol
=
(
rule
,
value
,
callback
)
=>
{
if
(
!
value
)
{
return
callback
(
new
Error
(
"输入不能为空"
));
}
var
params1
=
{
"conditions"
:
[{
"fieldName"
:
"cardNo"
,
"fieldValue"
:
value
,
"conditionalType"
:
"Equal"
}],
"pageSize"
:
3
}
Api
.
post
(
apiUrl
,
params1
).
then
((
r
)
=>
{
if
(
r
.
result
.
length
>
0
)
{
return
callback
(
new
Error
(
"输入数据已经存在"
));
}
else
{
callback
();
}
})
};
//手机号验证
const
valideTel
=
(
rule
,
value
,
callback
)
=>
{
var
re
=
/^1
[
3-9
]{1}[
0-9
]{9}
/
;
if
(
value
===
""
||
value
===
null
)
{
callback
(
new
Error
(
"请输入手机号"
));
}
else
if
(
!
re
.
test
(
value
))
{
callback
(
new
Error
(
"请输入正确手机号"
));
}
else
{
callback
();
}
}
let
rules
=
{}
list
.
forEach
(
el
=>
{
if
(
!
el
.
isNullable
)
{
let
objInfo
=
{}
rules
[
el
.
propertyName
]
=
[]
if
(
el
.
code
==
''
)
{
//不能为空,必填文本或数字类型
if
(
el
.
ruleType
==
''
)
{
objInfo
=
{
required
:
true
,
message
:
"必填"
,
trigger
:
"blur"
}
if
(
el
.
uniqueness
!=
0
)
{
var
objUniqueness
=
{
validator
:
validateCol
,
trigger
:
"blur"
}
}
}
else
if
(
el
.
ruleType
==
'email'
)
{
objInfo
=
{
required
:
true
,
message
:
'必填'
,
trigger
:
'blur'
,
type
:
'email'
}
}
else
if
(
el
.
ruleType
==
'phone'
)
{
objInfo
=
{
validator
:
valideTel
,
required
:
true
,
trigger
:
"blur"
}
}
else
if
(
el
.
ruleType
==
'datetime'
)
{
objInfo
=
{
required
:
true
,
message
:
"请选择时间"
,
trigger
:
"change"
}
}
}
else
{
//数据字典
objInfo
=
{
required
:
true
,
message
:
"必选"
,
trigger
:
"change"
,
type
:
"number"
,
}
}
rules
[
el
.
propertyName
].
push
(
objInfo
)
if
(
el
.
uniqueness
!=
0
)
{
rules
[
el
.
propertyName
].
push
(
objUniqueness
)
}
}
})
return
rules
}
export
default
henq
;
pages/aps/plan/index.vue
View file @
4a7599b0
...
...
@@ -322,9 +322,9 @@ export default {
this
.
goMethod
(
params
.
row
)
:
null
,
},
},
params
.
row
.
mainRoutingSetStatus
==
0
?
params
.
row
.
mainRoutingSetStatus
==
0
&&
params
.
row
.
isPreschedule
==
0
?
"工艺派发"
:
params
.
row
.
mainRoutingSetStatus
==
1
?
params
.
row
.
mainRoutingSetStatus
==
1
&&
params
.
row
.
isPreschedule
==
0
?
"移入排产"
:
""
),
...
...
pages/mesPlan/add.vue
View file @
4a7599b0
This diff is collapsed.
Click to expand it.
pages/project/project/add.vue
View file @
4a7599b0
<
template
>
<Form
ref=
"form"
:model=
"entity"
:rules=
"rules"
:label-width=
"90"
>
<Row>
<!--
<Col
:span=
"12"
<Col
span=
"8"
>
<FormItem
:label=
"l('picture')"
prop=
"picture"
>
<inputFile
class=
"tphoto"
ref=
"refmovieFile1"
v-model=
"imgName"
:parms=
"parmsName"
/>
</FormItem>
<div
class=
"img-touxiang"
>
<img
:src=
"avatorPath"
v-if=
"imgName"
@
click=
"imgUrl"
class=
"img1"
/>
<img
src=
"@/assets/images/files_header.png"
v-else
width=
"100%"
height=
"100%"
/>
</div>
</Col>
<Col
span=
"16"
>
<!--
<Col
:span=
"12"
><FormItem
:label=
"l('creationTime')"
prop=
"creationTime"
>
<DatePicker
type=
"date"
v-model=
"entity.creationTime"
></DatePicker>
</FormItem
></Col>
-->
<!--
<Col
:span=
"12"
<!--
<Col
:span=
"12"
><FormItem
:label=
"l('creatorUserId')"
prop=
"creatorUserId"
>
<InputNumber
v-model=
"entity.creatorUserId"
></InputNumber>
</FormItem
></Col>
-->
<!--
<Col
:span=
"12"
<!--
<Col
:span=
"12"
><FormItem
:label=
"l('lastModificationTime')"
prop=
"lastModificationTime"
...
...
@@ -22,13 +42,13 @@
v-model=
"entity.lastModificationTime"
></DatePicker>
</FormItem
></Col>
-->
<!--
<Col
:span=
"12"
<!--
<Col
:span=
"12"
><FormItem
:label=
"l('lastModifierUserId')"
prop=
"lastModifierUserId"
>
<InputNumber
v-model=
"entity.lastModifierUserId"
></InputNumber>
</FormItem
></Col>
-->
<!--
<Col
:span=
"12"
<!--
<Col
:span=
"12"
><FormItem
:label=
"l('isDeleted')"
prop=
"isDeleted"
>
<InputNumber
v-model=
"entity.isDeleted"
></InputNumber>
</FormItem
></Col>
...
...
@@ -39,75 +59,74 @@
v-model=
"entity.deletionTime"
></DatePicker>
</FormItem
></Col>
-->
<!--
<Col
:span=
"12"
<!--
<Col
:span=
"12"
><FormItem
:label=
"l('deleterUserId')"
prop=
"deleterUserId"
>
<InputNumber
v-model=
"entity.deleterUserId"
></InputNumber>
</FormItem
></Col>
-->
<Col
:span=
"12"
><FormItem
:label=
"l('title')"
prop=
"title"
>
<Input
v-model=
"entity.title"
>
</Input>
</FormItem
></Col>
<Col
:span=
"12"
><FormItem
:label=
"l('title')"
prop=
"title"
>
<Input
v-model=
"entity.title"
>
</Input>
</FormItem
></Col>
<Col
:span=
"12"
><FormItem
:label=
"l('state')"
prop=
"state"
>
<Dictionary
code=
"mes.project_main.State"
v-model=
"entity.state"
></Dictionary>
</FormItem
></Col>
<Col
:span=
"12"
><FormItem
:label=
"l('type')"
prop=
"type"
>
<Dictionary
code=
"mes.project_main.Type"
v-model=
"entity.type"
></Dictionary>
</FormItem
></Col>
<Col
:span=
"12"
><FormItem
:label=
"l('picture')"
prop=
"picture"
>
<Input
v-model=
"entity.picture"
>
</Input>
</FormItem
></Col>
<Col
:span=
"12"
><FormItem
:label=
"l('attachment')"
prop=
"attachment"
>
<Input
v-model=
"entity.attachment"
>
</Input>
</FormItem
></Col>
<Col
:span=
"12"
><FormItem
:label=
"l('phase')"
prop=
"phase"
>
<Dictionary
code=
"mes.project_main.Phase"
v-model=
"entity.phase"
></Dictionary>
</FormItem
></Col>
<Col
:span=
"12"
><FormItem
:label=
"l('startDate')"
prop=
"startDate"
>
<DatePicker
type=
"date"
v-model=
"entity.startDate"
></DatePicker>
</FormItem
></Col>
<Col
:span=
"12"
><FormItem
:label=
"l('endDate')"
prop=
"endDate"
>
<DatePicker
type=
"date"
v-model=
"entity.endDate"
></DatePicker>
</FormItem
></Col>
<Col
:span=
"12"
><FormItem
:label=
"l('businessUnits')"
prop=
"businessUnits"
>
<Input
v-model=
"entity.businessUnits"
>
</Input>
</FormItem
></Col>
<Col
:span=
"24"
><FormItem
:label=
"l('note')"
prop=
"note"
>
<Input
v-model=
"entity.note"
type=
"textarea"
:rows=
"5"
></Input>
</FormItem
></Col>
<Col
:span=
"12"
><FormItem
:label=
"l('state')"
prop=
"state"
>
<Dictionary
code=
"project.main.state"
v-model=
"entity.state"
></Dictionary>
</FormItem
></Col>
<Col
:span=
"12"
><FormItem
:label=
"l('startDate')"
prop=
"startDate"
>
<DatePicker
type=
"date"
v-model=
"entity.startDate"
></DatePicker>
</FormItem
></Col>
<Col
:span=
"12"
><FormItem
:label=
"l('endDate')"
prop=
"endDate"
>
<DatePicker
type=
"date"
v-model=
"entity.endDate"
></DatePicker>
</FormItem
></Col>
<Col
:span=
"12"
><FormItem
:label=
"l('type')"
prop=
"type"
>
<Dictionary
code=
"project.main.type"
v-model=
"entity.type"
></Dictionary>
</FormItem
></Col>
<!--
<Col
:span=
"12"
><FormItem
:label=
"l('phase')"
prop=
"phase"
>
<Dictionary
code=
"mes.project_main.Phase"
v-model=
"entity.phase"
></Dictionary>
</FormItem
></Col>
-->
<!--
<Col
:span=
"12"
><FormItem
:label=
"l('businessUnits')"
prop=
"businessUnits"
>
<Input
v-model=
"entity.businessUnits"
>
</Input>
</FormItem
></Col>
-->
<Col
:span=
"24"
>
<FormItem
:label=
"l('attachment')"
prop=
"attachment"
>
<!--
<Input
v-model=
"entity.template"
type=
"textarea"
:rows=
"5"
></Input>
-->
<files
ref=
"refFile"
:parms=
"parms"
files
/>
</FormItem>
</Col>
<Col
:span=
"24"
><FormItem
:label=
"l('note')"
prop=
"note"
>
<Input
v-model=
"entity.note"
type=
"textarea"
:rows=
"5"
></Input>
</FormItem
></Col>
</Col>
</Row>
<FormItem>
<Button
type=
"primary"
@
click=
"handleSubmit"
:disabled=
"disabled"
>
保存
</Button
>
<Button
type=
"primary"
@
click=
"handleSubmit"
v-noClick
>
保存
</Button>
<Button
@
click=
"handleClose"
class=
"ml20"
>
取消
</Button>
</FormItem>
</Form>
...
...
@@ -119,6 +138,8 @@ export default {
data
()
{
return
{
disabled
:
false
,
imgName
:
""
,
avatorPath
:
""
,
entity
:
{
// creationTime: null,
creatorUserId
:
this
.
$store
.
state
.
userInfo
.
userId
,
...
...
@@ -141,6 +162,13 @@ export default {
rules
:
{
name
:
[{
required
:
true
,
message
:
"必填"
,
trigger
:
"blur"
}],
},
parmsName
:
"app=material&eid=1&name=ProjectMain"
,
parms
:
{
app
:
"material"
,
eid
:
null
,
name
:
""
,
field
:
""
,
},
};
},
props
:
{
...
...
@@ -148,15 +176,24 @@ export default {
eid
:
Number
,
},
mounted
()
{
if
(
this
.
eid
>
0
)
{
this
.
load
(
this
.
eid
);
}
// if (this.eid > 0) {
// this.load(this.eid);
// }
this
.
$refs
.
refmovieFile1
.
inputShow
=
false
;
this
.
parms
.
eid
=
this
.
$u
.
guid
();
},
methods
:
{
imgUrl
()
{
window
.
open
(
this
.
avatorPath
,
"_blank"
);
},
handleSubmit
()
{
this
.
$refs
.
form
.
validate
((
v
)
=>
{
if
(
v
)
{
this
.
disabled
=
true
;
if
(
this
.
$refs
.
refFile
.
nameList
.
length
>
0
)
{
this
.
entity
.
attachment
=
this
.
parms
.
eid
;
}
else
{
this
.
entity
.
attachment
=
""
;
}
Api
.
create
(
this
.
entity
)
.
then
((
r
)
=>
{
this
.
disabled
=
false
;
...
...
@@ -198,6 +235,12 @@ export default {
this
.
load
(
v
);
}
},
imgName
(
newName
,
oldName
)
{
console
.
log
(
newName
);
const
imgPathsArr
=
JSON
.
parse
(
newName
);
this
.
entity
.
picture
=
imgPathsArr
[
0
].
filePath
;
this
.
avatorPath
=
fileUrlDown
+
imgPathsArr
[
0
].
filePath
;
},
},
};
</
script
>
\ No newline at end of file
pages/test.vue
View file @
4a7599b0
<
style
lang=
"less"
>
.test_layout {
height: 100%;
.bg1 {
background: #fefefe;
}
// &.fg {
// // overflow: auto;
// }
height: 100%;
.bg1 {
background: #fefefe;
}
// &.fg {
// // overflow: auto;
// }
}
.layout-copy {
text-align: center;
padding: 10px 0 20px;
color: #9ea7b4;
text-align: center;
padding: 10px 0 20px;
color: #9ea7b4;
}
</
style
>
<
template
>
<div
class=
"flex fd test_layout"
>
<div
class=
"flex fd test_layout"
>
<div>
<Menu
mode=
"horizontal"
theme=
"light"
active-name=
"a0"
>
<div
class=
"layout-assistant"
>
<MenuItem
name=
"a0"
to=
"/test/example"
>
基础组件
</MenuItem>
<MenuItem
name=
"a1"
to=
"/test/user"
>
人员选择
</MenuItem>
<MenuItem
name=
"a2"
to=
"/test/com"
>
异步组件
</MenuItem>
<MenuItem
name=
"a4"
to=
"/test/resource"
>
资源选择
</MenuItem>
<MenuItem
name=
"a3"
to=
"/test/view"
>
详情拖拽排版
</MenuItem>
</div>
</Menu>
<Menu
mode=
"horizontal"
theme=
"light"
active-name=
"a0"
>
<div
class=
"layout-assistant"
>
<MenuItem
name=
"a0"
to=
"/test/example"
>
基础组件
</MenuItem>
<MenuItem
name=
"a1"
to=
"/test/user"
>
人员选择
</MenuItem>
<MenuItem
name=
"a2"
to=
"/test/com"
>
异步组件
</MenuItem>
<MenuItem
name=
"a4"
to=
"/test/resource"
>
资源选择
</MenuItem>
<MenuItem
name=
"a3"
to=
"/test/view"
>
详情拖拽排版
</MenuItem>
<MenuItem
name=
"a5"
to=
"/test/test1"
>
colum验证
</MenuItem>
</div>
</Menu>
</div>
<div
class=
"fg"
>
<nuxt-child></nuxt-child>
<nuxt-child></nuxt-child>
</div>
</div>
</div>
</
template
>
<
script
>
export
default
{
layout
:
"empty"
,
async
fetch
({
store
,
params
})
{
await
store
.
dispatch
(
"loadDictionary"
);
// 加载数据字典
}
layout
:
"empty"
,
async
fetch
({
store
,
params
})
{
await
store
.
dispatch
(
"loadDictionary"
);
// 加载数据字典
}
};
</
script
>
\ No newline at end of file
</
script
>
pages/test/test1.vue
0 → 100644
View file @
4a7599b0
<
template
>
<div
style=
"width:100%;"
>
<Form
:model=
"orderSearchForm"
:label-width=
"120"
:rules=
"ruleValidate"
ref=
"formValidate"
>
<Row>
<Col
span=
"8"
>
<FormItem
label=
"输入校验"
style=
"width:100%"
prop=
"colums1"
>
<Input
v-model=
"orderSearchForm.colums1"
style=
"width:240px"
/>
</FormItem>
</Col>
<Col
span=
"8"
>
<FormItem
label=
"数据字典"
style=
"width:100%"
prop=
"colums2"
>
<dictionary
code=
"plan.order.taskType"
v-model=
"orderSearchForm.colums2"
style=
"width:240px"
></dictionary>
</FormItem>
</Col>
<Col
span=
"8"
>
<FormItem
label=
"电话校验"
style=
"width:100%"
prop=
"colums3"
>
<Input
v-model=
"orderSearchForm.colums3"
style=
"width:240px"
/>
</FormItem>
</Col>
<Col
span=
"8"
>
<FormItem
label=
"email校验"
style=
"width:100%"
prop=
"colums4"
>
<Input
v-model=
"orderSearchForm.colums4"
style=
"width:240px"
/>
</FormItem>
</Col>
<Col
span=
"8"
>
<FormItem
label=
"唯一性校验(用户编号)"
style=
"width:100%"
prop=
"colums5"
>
<Input
v-model=
"orderSearchForm.colums5"
style=
"width:240px"
/>
</FormItem>
</Col>
<Col
span=
"8"
>
<FormItem
label=
"时间校验"
style=
"width:100%"
prop=
"colums6"
>
<DatePicker
v-model=
"orderSearchForm.colums6"
type=
"date"
placeholder=
"请选择日期"
@
on-change=
"getTime"
></DatePicker>
</FormItem>
</Col>
</Row>
<Row>
<Col
span=
"24"
>
<FormItem>
<Button
type=
"primary"
@
click=
"handleSubmit"
v-noClick
>
保存
</Button>
</FormItem>
</Col>
</Row>
</Form>
</div>
</
template
>
<
script
>
export
default
{
layout
:
'empty'
,
name
:
"Test1"
,
data
()
{
return
{
orderSearchForm
:
{
colums6
:
""
},
ruleValidate
:
this
.
$u
.
makeRules
(),
};
},
mounted
()
{
},
methods
:
{
handleSubmit
()
{
this
.
$refs
.
formValidate
.
validate
((
v
)
=>
{
if
(
v
)
{
this
.
$Message
.
success
(
'验证通过'
)
}
});
},
getTime
(
value
)
{
if
(
value
!=
''
)
{
this
.
orderSearchForm
.
colums6
=
this
.
getFormatDateEnd
(
value
);
}
},
getFormatDateEnd
(
dates
)
{
const
d
=
new
Date
(
dates
);
const
resDate
=
d
.
getFullYear
()
+
"-"
+
this
.
p
(
d
.
getMonth
()
+
1
)
+
"-"
+
this
.
p
(
d
.
getDate
())
+
" 23:59:59"
;
return
resDate
;
},
p
(
s
)
{
return
s
<
10
?
"0"
+
s
:
s
;
},
},
};
</
script
>
pages/test/view/index.vue
View file @
4a7599b0
<
template
>
<div
class=
"flex"
>
<div
class=
"flex"
>
<div
class=
"fg1"
>
<Form
ref=
"form"
:model=
"entity"
:rules=
"rules"
:label-width=
"110"
>
<Row
class=
"view"
>
<Col
:span=
"12"
class=
"item"
v-for=
"(li,i) in items"
:key=
"i"
v-dragging=
"
{ item: li, list: items}">
<FormItem
:label=
"li.key"
:prop=
"li.key"
>
<component
:is=
"li.control"
:value=
"entity[li.key]"
/>
</FormItem>
</Col>
</Row>
<div>
{{
<Form
ref=
"form"
:model=
"entity"
:rules=
"rules"
:label-width=
"110"
>
<Row
class=
"view"
>
<Col
:span=
"12"
class=
"item"
v-for=
"(li,i) in items"
:key=
"i"
v-dragging=
"
{ item: li, list: items}">
<FormItem
:label=
"li.key"
:prop=
"li.key"
>
<component
:is=
"li.control"
:value=
"entity[li.key]"
/>
</FormItem>
</Col>
</Row>
<div>
{{
entity
}}
<Button
type=
"primary"
@
click=
"con"
>
conso
</Button>
</div>
</Form>
<Button
type=
"primary"
@
click=
"con"
>
conso
</Button>
</div>
</Form>
</div>
<div
v-width=
"25"
>
<ul>
...
...
@@ -27,60 +27,63 @@
</li>
</ul>
</div>
</div>
</div>
</
template
>
<
script
>
export
default
{
name
:
""
,
data
()
{
return
{
items
:
[],
entity
:
{},
rules
:
null
};
},
created
()
{
this
.
init
();
},
methods
:
{
con
()
{
console
.
warn
(
"entity"
,
this
.
entity
);
name
:
""
,
data
()
{
return
{
items
:
[],
entity
:
{},
rules
:
null
};
},
created
()
{
this
.
init
();
},
init
()
{
let
items
=
[];
let
controls
=
[
"Input"
,
"InputNumber"
,
"Dictionary"
,
"DatePicker"
];
for
(
let
i
=
0
;
i
<
5
;
i
++
)
{
this
.
entity
[
"I"
+
i
]
=
i
;
items
.
push
({
key
:
"I"
+
i
,
name
:
"Item"
+
i
,
width
:
4
,
control
:
controls
[
i
%
4
],
height
:
1
});
}
this
.
items
=
items
;
methods
:
{
con
()
{
console
.
warn
(
"entity"
,
this
.
entity
);
},
init
()
{
let
items
=
[];
let
controls
=
[
"Input"
,
"InputNumber"
,
"Dictionary"
,
"DatePicker"
];
for
(
let
i
=
0
;
i
<
5
;
i
++
)
{
this
.
entity
[
"I"
+
i
]
=
i
;
items
.
push
({
key
:
"I"
+
i
,
name
:
"Item"
+
i
,
width
:
4
,
control
:
controls
[
i
%
4
],
height
:
1
});
}
this
.
items
=
items
;
}
}
}
};
</
script
>
<
style
lang=
"less"
>
<
style
lang=
"less"
>
@line-height: 40px;
@item-width: 12.5%;
.view {
margin: 30px;
border: 1px solid #ddd;
line-height: @line-height;
background-color: white;
.item {
border-right: 1px solid #ddd;
border-top: 1px solid #ddd;
margin-right: -1px;
margin-top: -1px;
border-bottom: 1px solid #ddd;
text-align: center;
box-sizing: border-box;
}
margin: 30px;
border: 1px solid #ddd;
line-height: @line-height;
background-color: white;
.item {
border-right: 1px solid #ddd;
border-top: 1px solid #ddd;
margin-right: -1px;
margin-top: -1px;
border-bottom: 1px solid #ddd;
text-align: center;
box-sizing: border-box;
}
}
</
style
>
\ No newline at end of file
</
style
>
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