Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
VueElementTemplate
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
JIRA
JIRA
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
HireTest
VueElementTemplate
Commits
c3c6fd59
Commit
c3c6fd59
authored
7 years ago
by
王康
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
form
parent
09d8c01a
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
57 additions
and
34 deletions
+57
-34
HmComplexForm.vue
src/views/haomo/components/forms/HmComplexForm.vue
+50
-27
index.vue
src/views/haomo/components/forms/index.vue
+7
-7
No files found.
src/views/haomo/components/forms/HmComplexForm.vue
View file @
c3c6fd59
...
...
@@ -21,8 +21,6 @@
:label=
"column.name"
:rules=
"column.rule?column.rule:null"
:prop=
"column.codeCamel"
>
<!--el-input
<el-input
v-if=
"column.codeCamel==='password'"
type=
"password"
v-model=
"formModel[column.codeCamel]"
></el-input>
-->
<!-- 1 日期选择 -->
<!-- -->
<el-date-picker
v-if=
"column.widgetType === 6 || column.type === 'datetime' || column.type === 'date'"
...
...
@@ -32,9 +30,9 @@
:readonly="column.readonly"
:type="column.dateType || 'date'"
align="right" :disabled="column.disabled"
@change="column.change
&&
column.change($event)"
@change="column.change
&&
column.change($event
, formModel
)"
:value-format="column.dateFormate || 'yyyy-MM-dd'"
:picker-options="pickerOptions">
:picker-options="
column.pickerOptions ||
pickerOptions">
</el-date-picker>
<!-- 2 下拉框 -->
<el-select
v-else-if=
"column.widgetType === 2"
...
...
@@ -72,7 +70,8 @@
:ref=
"column.ref || ''"
:disabled=
"column.disabled"
@
change=
"column.change && column.change($event)"
true-label=
"1"
false-label=
"0"
></el-checkbox>
true-label=
"1"
false-label=
"0"
>
</el-checkbox>
<el-checkbox-group
v-else-if=
"column.widgetType === 3 && column.options"
v-model=
"formModel[column.codeCamel]"
:ref=
"column.ref || ''"
...
...
@@ -105,7 +104,7 @@
<el-upload
v-else-if=
"column.widgetType === 8"
:accept=
"column.accept || '*/*'"
:name=
"column.param || 'picture'"
:action=
"
column.url || '/api/upload'"
:action=
"column.url || '/api/upload'"
:on-remove=
"handleRemove"
:limit=
"column.limit || 3"
:on-change=
"column.change || handleChange"
...
...
@@ -142,21 +141,32 @@
:style=
"formStyle && formStyle.cascader && formStyle.cascader.style ||
{width: '70%'}"
@change="column.change
&&
column.change($event, formModel)">
</el-cascader>
<!-- 10 普通input ||
{width:'65%'}-->
<!--10 密码框-->
<el-input
v-else-if=
"column.widgetType === 11"
type=
"password"
@
change=
"column.change && column.change($event,formModel)"
:style=
"formStyle && formStyle.input && formStyle.input.style ||
{width:'70%'}"
:disabled="column.disabled"
:readonly="column.readonly"
v-model="formModel[column.codeCamel]">
</el-input>
<!-- 11 普通input ||
{width:'65%'}-->
<el-input
v-else-if=
"column.widgetType === 1 && column.rule && column.rule.type && column.rule.type === 'number'"
:style=
"formStyle && formStyle.input && formStyle.input.style ||
{width:'70%'}"
v-model.number="formModel[column.codeCamel]"
:disabled="column.disabled"
:readonly="column.readonly"
:ref="column.ref || ''"
@change="column.change
&&
column.change($event,formModel)">
</el-input>
@change="column.change
&&
column.change($event,formModel)">
</el-input>
<el-input
v-else
:style=
"formStyle && formStyle.input && formStyle.input.style ||
{width:'70%'}"
v-model="formModel[column.codeCamel]"
:disabled="column.disabled"
:readonly="column.readonly"
:ref="column.ref || ''"
@change="column.change
&&
column.change($event,formModel)">
</el-input>
@change="column.change
&&
column.change($event,formModel)">
</el-input>
</el-form-item>
<!--按钮-->
<el-form-item
v-if=
"buttons && buttons.length > 0"
class=
"hm-form_btn"
style=
"margin-top: 40px"
>
...
...
@@ -225,8 +235,8 @@
* accept属性可选,当表单类型为文件类型时,可传入accept字段,限制限制上传文件类型,取值规范参考w3c
* fileData属性可选,当表单类型为文件类型时,取值为all(表示返回路径+文件名),取值为filePath(表示只返回路径),取值fileName(表示只返回文件名),如果不传,默认只返回路径
* widgetType属性可选,表示该字段要显示的表单类型(普通输入框、文本域、富文本、下拉框...),不传默认为普通input
* 取值1-1
0
(1表示普通输入框,2表示普通下拉框,3表示复选框,4表示文本域,5表示富文本,6表示日期,7表示单选框,8表示文件上传,
* 9表示树状控件,10表示级联下拉框),
* 取值1-1
1
(1表示普通输入框,2表示普通下拉框,3表示复选框,4表示文本域,5表示富文本,6表示日期,7表示单选框,8表示文件上传,
* 9表示树状控件,10表示级联下拉框
,11b表示密码框
),
* 若表单类型为下拉框/复选框/单选框,还需传入options字段,值为数组(数组元素是下拉框/复选框/单选框的选项),
* 对于复选框,如果只有一个备选项则不必传options,
* 若表单类型为下拉框,还可传入multiple字段,取值boolean类型,true/false,表示是否多选,默认false
...
...
@@ -664,14 +674,18 @@
if
(
response
.
visitName
&&
response
.
saveName
)
{
// 如果fileData值为all 则存路径+名称
if
(
self
.
showUserColumns
[
i
].
fileData
===
'all'
)
{
self
.
formModel
[
key
]
=
response
.
visitName
+
''
+
response
.
fileName
+
'_'
+
response
.
saveName
// self.formModel[key] = response.visitName + '' + response.fileName + '_' + response.saveName
self
.
formModel
[
key
].
push
(
response
.
visitName
+
''
+
response
.
fileName
+
'_'
+
response
.
saveName
)
}
else
if
(
self
.
showUserColumns
[
i
].
fileData
===
'fileName'
)
{
self
.
formModel
[
key
]
=
response
.
saveName
// self.formModel[key] = response.saveName
self
.
formModel
[
key
].
push
(
response
.
saveName
)
}
else
{
self
.
formModel
[
key
]
=
response
.
visitName
+
''
+
response
.
fileName
// self.formModel[key] = response.visitName + '' + response.fileName
self
.
formModel
[
key
].
push
(
response
.
visitName
+
''
+
response
.
fileName
)
}
}
else
if
(
response
.
message
)
{
self
.
formModel
[
key
]
=
file
.
name
+
'_'
+
response
.
message
// self.formModel[key] = file.name + '_' + response.message
self
.
formModel
[
key
].
push
(
file
.
name
+
'_'
+
response
.
message
)
// self.formModel[key].push(file.name + '_' + response.message)
}
break
...
...
@@ -688,15 +702,26 @@
handleRemove
(
file
,
fileList
)
{
const
self
=
this
console
.
log
(
'文件删除'
,
file
,
fileList
)
console
.
log
(
'删除
后
前'
,
self
.
formModel
)
console
.
log
(
'删除前'
,
self
.
formModel
)
// var reg = new RegExp('^' + file.response.message + '$', 'g')
// console.log(reg)
// _.each(self.formModel[self.currentFile], function(item, index) {
// if (_.endsWith(item, file.response.message)) {
// self.$delete(self.formModel[self.currentFile], index)
// }
// })
self
.
formModel
[
self
.
currentFile
]
=
''
if
(
file
.
response
.
message
)
{
_
.
each
(
self
.
formModel
[
self
.
currentFile
],
function
(
item
,
index
)
{
if
(
_
.
endsWith
(
item
,
file
.
response
.
message
))
{
self
.
$delete
(
self
.
formModel
[
self
.
currentFile
],
index
)
}
})
}
else
if
(
file
.
response
.
fileName
)
{
_
.
each
(
self
.
formModel
[
self
.
currentFile
],
function
(
item
,
index
)
{
if
(
_
.
endsWith
(
item
,
file
.
response
.
fileName
))
{
self
.
$delete
(
self
.
formModel
[
self
.
currentFile
],
index
)
}
else
if
(
_
.
endsWith
(
item
,
file
.
response
.
saveName
))
{
self
.
$delete
(
self
.
formModel
[
self
.
currentFile
],
index
)
}
})
}
// self.formModel[self.currentFile] = ''
console
.
log
(
'删除后'
,
self
.
formModel
)
},
// 文件状态改变时的回调函数
...
...
@@ -706,7 +731,6 @@
},
// 树形选择器
handleCheckChange
(
data
,
checked
,
indeterminate
)
{
// console.log(data, checked, indeterminate)
const
self
=
this
console
.
log
(
'handleCheckChange函数'
)
// console.log(this.$refs.tree[0].getCheckedNodes(true))
...
...
@@ -967,8 +991,8 @@
}
})
}
// 树形控件,将请求回来的字符串放数组中
if
(
item
.
widgetType
===
9
)
{
// 树形控件
、文件上传
,将请求回来的字符串放数组中
if
(
item
.
widgetType
===
9
||
item
.
widgetType
===
8
||
item
.
widgetType
===
10
)
{
_
.
forEach
(
self
.
formModel
,
function
(
value
,
key
)
{
if
(
item
.
codeCamel
===
key
)
{
// console.log(11111, self.formModel[key])
...
...
@@ -1053,7 +1077,6 @@
// 提交之前对表单数据进行处理
self
.
formModelDeal
=
processData
?
processData
(
self
.
formModel
,
self
.
isCancel
)
:
self
.
formModel
console
.
log
(
'表单数据经过了处理'
,
self
.
formModel
)
debugger
// 如果在processData中禁止提交了,显示提示信息
if
(
self
.
isCancel
.
cancelSubmit
)
{
console
.
log
(
'取消提交'
)
...
...
@@ -1364,7 +1387,7 @@
cancel
(
callback
)
{
const
self
=
this
if
(
typeof
(
callback
)
===
'function'
)
{
callback
(
self
.
formModelDeal
)
callback
(
self
.
formModel
,
self
.
formModel
Deal
)
}
// self.close()
},
...
...
This diff is collapsed.
Click to expand it.
src/views/haomo/components/forms/index.vue
View file @
c3c6fd59
...
...
@@ -31,17 +31,17 @@
// widgetType值 1:普通input 2:下拉框 (如果是下拉框 再传一个options表示下拉框选项)3:复选框 4:文本域 5:富文本 6:日期 7:单选框 8: 文件上传
showUserColumns
:
[
// 1普通input
{
name
:
'选择类型'
,
codeCamel
:
'type'
,
widgetType
:
9
,
ref
:
'type'
,
options
:
[]
// rule: { required: true, message: '用户名不能为空', trigger: 'blur' }
// hide: true
// default: '默认值',
},
// { name: '选择类型', codeCamel: 'type', widgetType: 1, disabled: false,
// change: this.inputChange
// { name: '选择类型', codeCamel: 'type', widgetType: 9, ref: 'type', options: []
// // rule: { required: true, message: '用户名不能为空', trigger: 'blur' }
// // hide: true
// // default: '默认值',
// },
{
name
:
'选择类型'
,
codeCamel
:
'type'
,
widgetType
:
1
,
disabled
:
false
,
change
:
this
.
inputChange
,
rule
:
{
required
:
true
,
message
:
'用户名不能为空'
,
trigger
:
'blur'
}
// hide: true
// default: '默认值',
},
// 5富文本
{
name
:
'电子邮件'
,
codeCamel
:
'email'
,
widgetType
:
5
,
disabled
:
false
,
change
:
this
.
inputChange
,
hide
:
false
...
...
This diff is collapsed.
Click to expand it.
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