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
黄瑜
VueElementTemplate
Commits
2dea04e7
Commit
2dea04e7
authored
Apr 09, 2018
by
杨柠瑞
Browse files
Options
Browse Files
Download
Plain Diff
coding
parents
69a51d5e
579533ff
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
105 additions
and
25 deletions
+105
-25
index.css
src/assets/custom-theme/index.css
+1
-1
HmComplexForm.vue
src/views/haomo/components/forms/HmComplexForm.vue
+17
-6
index.vue
src/views/haomo/components/forms/index.vue
+3
-2
HmComplexTable.vue
src/views/haomo/components/tables/HmComplexTable.vue
+3
-3
HmTab.vue
src/views/haomo/components/tabs/HmTab.vue
+79
-13
index.vue
src/views/haomo/components/tabs/index.vue
+2
-0
No files found.
src/assets/custom-theme/index.css
View file @
2dea04e7
This source diff could not be displayed because it is too large. You can
view the blob
instead.
src/views/haomo/components/forms/HmComplexForm.vue
View file @
2dea04e7
...
@@ -28,6 +28,8 @@
...
@@ -28,6 +28,8 @@
<el-date-picker
v-if=
"column.widgetType === 6 || column.type === 'datetime' || column.type === 'date'"
<el-date-picker
v-if=
"column.widgetType === 6 || column.type === 'datetime' || column.type === 'date'"
v-model=
"formModel[column.codeCamel]"
v-model=
"formModel[column.codeCamel]"
:style=
"formStyle && formStyle.datePicker && formStyle.datePicker.style ||
{width: '65%'}"
:style=
"formStyle && formStyle.datePicker && formStyle.datePicker.style ||
{width: '65%'}"
:ref="column.ref || ''"
:readonly="column.readonly"
:type="column.dateType || 'date'"
:type="column.dateType || 'date'"
align="right" :disabled="column.disabled"
align="right" :disabled="column.disabled"
@change="column.change
&&
column.change($event)"
@change="column.change
&&
column.change($event)"
...
@@ -36,6 +38,7 @@
...
@@ -36,6 +38,7 @@
</el-date-picker>
</el-date-picker>
<!-- 3 下拉框 -->
<!-- 3 下拉框 -->
<el-select
v-else-if=
"column.widgetType === 2"
<el-select
v-else-if=
"column.widgetType === 2"
:ref=
"column.ref || ''"
v-model=
"formModel[column.codeCamel]"
v-model=
"formModel[column.codeCamel]"
@
change=
"column.change && column.change($event)"
@
change=
"column.change && column.change($event)"
:style=
"formStyle && formStyle.select && formStyle.select.style ||
{width: '65%'}"
:style=
"formStyle && formStyle.select && formStyle.select.style ||
{width: '65%'}"
...
@@ -51,6 +54,8 @@
...
@@ -51,6 +54,8 @@
</el-select>
</el-select>
<!-- 4 文本域 -->
<!-- 4 文本域 -->
<el-input
v-else-if=
"column.widgetType === 4"
<el-input
v-else-if=
"column.widgetType === 4"
:ref=
"column.ref || ''"
:readonly=
"column.readonly"
:style=
"formStyle && formStyle.textarea && formStyle.textarea.style ||
{width: '65%'}"
:style=
"formStyle && formStyle.textarea && formStyle.textarea.style ||
{width: '65%'}"
v-model="formModel[column.codeCamel]"
v-model="formModel[column.codeCamel]"
type="textarea" :disabled="column.disabled"
type="textarea" :disabled="column.disabled"
...
@@ -61,11 +66,13 @@
...
@@ -61,11 +66,13 @@
<!-- 5 复选框 -->
<!-- 5 复选框 -->
<el-checkbox
v-else-if=
"column.widgetType === 3 && !column.options"
<el-checkbox
v-else-if=
"column.widgetType === 3 && !column.options"
v-model=
"formModel[column.codeCamel]"
v-model=
"formModel[column.codeCamel]"
:ref=
"column.ref || ''"
:disabled=
"column.disabled"
:disabled=
"column.disabled"
@
change=
"column.change && column.change($event)"
@
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"
<el-checkbox-group
v-else-if=
"column.widgetType === 3 && column.options"
v-model=
"formModel[column.codeCamel]"
v-model=
"formModel[column.codeCamel]"
:ref=
"column.ref || ''"
:disabled=
"column.disabled"
:disabled=
"column.disabled"
@
change=
"column.change && column.change($event)"
>
@
change=
"column.change && column.change($event)"
>
<el-checkbox
v-for=
"option in column.options"
<el-checkbox
v-for=
"option in column.options"
...
@@ -73,7 +80,7 @@
...
@@ -73,7 +80,7 @@
</el-checkbox-group>
</el-checkbox-group>
<!-- 6 富文本 -->
<!-- 6 富文本 -->
<quill-editor
v-else-if=
"column.widgetType === 5"
<quill-editor
v-else-if=
"column.widgetType === 5"
ref=
"textEditor
"
:disabled=
"column.disabled"
:ref=
"column.ref || ''
"
:disabled=
"column.disabled"
v-model=
"formModel[column.codeCamel]"
v-model=
"formModel[column.codeCamel]"
:style=
"formStyle && formStyle.quillEditor && formStyle.quillEditor.style ||
{width:'65%'}"
:style=
"formStyle && formStyle.quillEditor && formStyle.quillEditor.style ||
{width:'65%'}"
:options="editorOption"
:options="editorOption"
...
@@ -97,7 +104,7 @@
...
@@ -97,7 +104,7 @@
:on-remove=
"handleRemove"
:on-remove=
"handleRemove"
:file-list=
"fileList"
:file-list=
"fileList"
:multiple=
"column.multiple"
:multiple=
"column.multiple"
ref=
"upload
"
:ref=
"column.ref || ''
"
:on-success=
"uploadSuccess"
>
:on-success=
"uploadSuccess"
>
<el-button
slot=
"trigger"
size=
"small"
type=
"primary"
<el-button
slot=
"trigger"
size=
"small"
type=
"primary"
:disabled=
"column.disabled"
>
选取文件
</el-button>
:disabled=
"column.disabled"
>
选取文件
</el-button>
...
@@ -107,7 +114,9 @@
...
@@ -107,7 +114,9 @@
:style=
"formStyle && formStyle.input && formStyle.input.style ||
{width:'65%'}"
:style=
"formStyle && formStyle.input && formStyle.input.style ||
{width:'65%'}"
v-model="formModel[column.codeCamel]"
v-model="formModel[column.codeCamel]"
:disabled="column.disabled"
:disabled="column.disabled"
@change="column.change
&&
column.change($event)">
</el-input>
:readonly="column.readonly"
:ref="column.ref || ''"
@change="column.change
&&
column.change($event,formModel)">
</el-input>
</el-form-item>
</el-form-item>
<!--按钮-->
<!--按钮-->
<el-form-item
v-if=
"buttons && buttons.length > 0"
>
<el-form-item
v-if=
"buttons && buttons.length > 0"
>
...
@@ -172,6 +181,7 @@
...
@@ -172,6 +181,7 @@
* change属性可选,值为函数类型,表示input的change事件的执行方法,参数即为input输入内容
* change属性可选,值为函数类型,表示input的change事件的执行方法,参数即为input输入内容
* default属性可选(复选框不支持),设置默认值,取值规范参考form/index.vue
* default属性可选(复选框不支持),设置默认值,取值规范参考form/index.vue
* hide属性可选,设置该表单字段是否显示,值为boolean
* hide属性可选,设置该表单字段是否显示,值为boolean
* ref属性可选,用来获取当前表单dom节点
* widgetType属性可选,表示该字段要显示的表单类型(普通输入框、文本域、富文本、下拉框...),不传默认为普通input
* widgetType属性可选,表示该字段要显示的表单类型(普通输入框、文本域、富文本、下拉框...),不传默认为普通input
* 取值1-8(1表示普通输入框,2表示下拉框,3表示复选框,4表示文本域,5表示富文本,6表示日期,7表示单选框,8表示文件上传),
* 取值1-8(1表示普通输入框,2表示下拉框,3表示复选框,4表示文本域,5表示富文本,6表示日期,7表示单选框,8表示文件上传),
* 若表单类型为下拉框/复选框/单选框,还需传入options字段,值为数组(数组元素是下拉框/复选框/单选框的选项),
* 若表单类型为下拉框/复选框/单选框,还需传入options字段,值为数组(数组元素是下拉框/复选框/单选框的选项),
...
@@ -464,7 +474,7 @@
...
@@ -464,7 +474,7 @@
// 上传成功的回调函数
// 上传成功的回调函数
uploadSuccess
(
response
,
file
,
fileList
)
{
uploadSuccess
(
response
,
file
,
fileList
)
{
const
self
=
this
const
self
=
this
console
.
log
(
'上传成功'
)
//
console.log('上传成功')
// console.log(response)
// console.log(response)
// console.log('fileList', fileList)
// console.log('fileList', fileList)
// console.log(self.fileList)
// console.log(self.fileList)
...
@@ -472,12 +482,13 @@
...
@@ -472,12 +482,13 @@
if
(
item
.
widgetType
===
8
)
{
if
(
item
.
widgetType
===
8
)
{
_
.
forEach
(
self
.
formModel
,
function
(
value
,
key
)
{
_
.
forEach
(
self
.
formModel
,
function
(
value
,
key
)
{
if
(
item
.
codeCamel
===
key
)
{
if
(
item
.
codeCamel
===
key
)
{
self
.
formModel
[
key
]
=
response
.
message
||
response
.
visitName
// self.formModel[key] = response.message || response.visitName
self
.
formModel
[
key
]
=
response
.
visitName
+
'/'
+
response
.
saveName
}
}
})
})
}
}
})
})
// console.log(404
, self.formModel)
console
.
log
(
'formModel'
,
self
.
formModel
)
},
},
// inputChange(val) {
// inputChange(val) {
// // console.log(event)
// // console.log(event)
...
...
src/views/haomo/components/forms/index.vue
View file @
2dea04e7
...
@@ -171,9 +171,10 @@
...
@@ -171,9 +171,10 @@
this
.
tableId
=
'b08d2220d2574bf2ac09ec4f470ed999'
this
.
tableId
=
'b08d2220d2574bf2ac09ec4f470ed999'
},
},
methods
:
{
methods
:
{
inputChange
(
val
)
{
inputChange
(
val
,
formModel
)
{
// console.log(event)
console
.
log
(
val
)
console
.
log
(
val
)
console
.
log
(
formModel
)
// formModel.email = val.length
},
},
processData
(
object
,
isCancel
)
{
processData
(
object
,
isCancel
)
{
isCancel
.
cancelSubmit
=
false
// 如果要取消提交,设为true
isCancel
.
cancelSubmit
=
false
// 如果要取消提交,设为true
...
...
src/views/haomo/components/tables/HmComplexTable.vue
View file @
2dea04e7
...
@@ -108,11 +108,11 @@
...
@@ -108,11 +108,11 @@
<el-table-column
type=
"selection"
width=
"55"
v-if=
"isShowSelection"
></el-table-column>
<el-table-column
type=
"selection"
width=
"55"
v-if=
"isShowSelection"
></el-table-column>
<el-table-column
v-for=
"(column,index) in showColumns"
:key=
"index"
align=
"center"
:label=
"column.name"
<el-table-column
v-for=
"(column,index) in showColumns"
:key=
"index"
align=
"center"
:label=
"column.name"
:prop=
"column.codeCamel"
:sortable=
"column.isSort"
:width=
"column.width"
:show-overflow-tooltip=
"showOverflowTooltip"
>
:prop=
"column.codeCamel"
:sortable=
"column.isSort"
:width=
"column.width"
:show-overflow-tooltip=
"showOverflowTooltip"
>
<template
slot-scope=
"scope"
>
<template
slot-scope=
"scope"
>
<span
v-if=
"(scope.row[column.codeCamel] !== false && scope.row[column.codeCamel] !== true )&& !column.render"
>
{{
scope
.
row
[
column
.
codeCamel
]
}}
</span>
<span
v-if=
"(scope.row[column.codeCamel] !== false && scope.row[column.codeCamel] !== true )&& !column.render"
>
{{
scope
.
row
[
column
.
codeCamel
]
}}
</span>
<el-checkbox
v-if=
"(scope.row[column.codeCamel] === false || scope.row[column.codeCamel] === true) && !column.render"
v-model=
"scope.row[column.codeCamel]"
></el-checkbox>
<el-checkbox
v-if=
"(scope.row[column.codeCamel] === false || scope.row[column.codeCamel] === true) && !column.render"
v-model=
"scope.row[column.codeCamel]"
></el-checkbox>
<span
v-if=
'column.render'
v-html=
"column.render(scope)"
></span>
<span
v-if=
'column.render'
v-html=
"column.render(scope)"
></span>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
fixed=
"right"
label=
"操作"
:width=
"operationWidth"
v-if=
"isShowEditDataButton || isShowDeleteButton || definedOperation.length"
>
<el-table-column
fixed=
"right"
label=
"操作"
:width=
"operationWidth"
v-if=
"isShowEditDataButton || isShowDeleteButton || definedOperation.length"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
...
@@ -290,7 +290,7 @@
...
@@ -290,7 +290,7 @@
* "sortItem": "create_time", // 默认为create_time字段的desc排序
* "sortItem": "create_time", // 默认为create_time字段的desc排序
* "sortOrder": "desc",
* "sortOrder": "desc",
* "isShowPagination": true, //默认显示分页
* "isShowPagination": true, //默认显示分页
i * "
sShowSearch": true, //默认显示搜索按钮
* "i
sShowSearch": true, //默认显示搜索按钮
* "showRefresh": false, //默认不显示刷新按钮
* "showRefresh": false, //默认不显示刷新按钮
* "showDeleteButton": false, //默认不显示删除按钮
* "showDeleteButton": false, //默认不显示删除按钮
* "buttonGroup": false //默认不以按钮组的方式呈现button
* "buttonGroup": false //默认不以按钮组的方式呈现button
...
...
src/views/haomo/components/tabs/HmTab.vue
View file @
2dea04e7
...
@@ -14,15 +14,22 @@
...
@@ -14,15 +14,22 @@
</el-col>
</el-col>
</div>
</div>
</el-row>
-->
</el-row>
-->
<swiper
:options=
"swiperOption"
style=
"padding:
20px
30px 0"
>
<swiper
:options=
"swiperOption"
style=
"padding:
0
30px 0"
>
<swiper-slide
v-for=
"(
column,index) in schema['columns']
"
:key=
"index"
>
<swiper-slide
v-for=
"(
tab,index) in tabData
"
:key=
"index"
>
<el-tabs
v-model=
"activeName"
@
tab-click=
"handleClick"
type=
"border-card"
>
<el-tabs
v-model=
"activeName"
@
tab-click=
"handleClick"
type=
"border-card"
>
<el-tab-pane
:label=
"column.name"
name=
"first"
>
<!--
<el-tab-pane
:label=
"tab.title"
name=
"first"
style=
"min-height: 54px"
>
-->
<ul
style=
"list-style: none;margin: 0;padding: 0;"
>
<!--
<ul
style=
"list-style: none;margin: 0;padding: 0;"
>
-->
<li>
第1条数据
</li>
<!--
<li
v-for=
"data in tab.column"
class=
"clearfix"
>
-->
<li>
第2条数据
</li>
<!--
<span
style=
"float: left;"
>
{{
data
.
title
}}
</span>
-->
<li>
第3条数据
</li>
<!--
<span
style=
"float: right;"
>
{{
data
.
createTime
}}
</span>
-->
</ul>
<!--
</li>
-->
<!--
</ul>
-->
<!--
</el-tab-pane>
-->
<el-tab-pane
:label=
"tab.title"
name=
"first"
style=
"height: 440px"
>
<hm-complex-table
:schema=
"schema[tab.tableName]"
:columns=
"tab.showUserColumns"
:options=
"tab.userOptions"
>
</hm-complex-table>
</el-tab-pane>
</el-tab-pane>
</el-tabs>
</el-tabs>
</swiper-slide>
</swiper-slide>
...
@@ -32,9 +39,10 @@
...
@@ -32,9 +39,10 @@
</
template
>
</
template
>
<
script
>
<
script
>
// import _ from 'lodash'
import
_
from
'lodash'
// import request from '@/utils/request'
import
request
from
'@/utils/request'
// import schema from '../../schemas/hm_org_schema'
// import schema from '../haomo/schemas/hm_org_schema'
import
HmComplexTable
from
'../tables/HmComplexTable.vue'
/**
/**
* 毫末科技的选项卡组件.
* 毫末科技的选项卡组件.
...
@@ -47,7 +55,9 @@
...
@@ -47,7 +55,9 @@
// 集成其他组件
// 集成其他组件
extends
:
{},
extends
:
{},
// 使用其它组件
// 使用其它组件
components
:
{},
components
:
{
'hm-complex-table'
:
HmComplexTable
},
// 混入公共对象
// 混入公共对象
mixins
:
[],
mixins
:
[],
/**
/**
...
@@ -57,7 +67,11 @@
...
@@ -57,7 +67,11 @@
props
:
{
props
:
{
schema
:
{
schema
:
{
type
:
Object
,
type
:
Object
,
required
:
true
required
:
false
},
tabData
:
{
type
:
Array
,
required
:
false
}
}
},
},
data
()
{
data
()
{
...
@@ -73,18 +87,70 @@
...
@@ -73,18 +87,70 @@
nextEl
:
'.swiper-button-next'
,
nextEl
:
'.swiper-button-next'
,
prevEl
:
'.swiper-button-prev'
prevEl
:
'.swiper-button-prev'
}
}
},
listQuery
:
{
pageNo
:
1
,
pageSize
:
3
,
sortItem
:
'create_time'
,
sortOrder
:
'desc'
,
filters
:
{}
}
}
}
}
},
},
created
()
{
created
()
{
// this.validate()
// this.validate()
// console.log(this.schema)
// console.log(this.schema)
// this.getList()
},
},
methods
:
{
methods
:
{
handleClick
(
tab
,
event
)
{
handleClick
(
tab
,
event
)
{
console
.
log
(
tab
,
event
)
console
.
log
(
tab
,
event
)
console
.
log
(
this
.
schema
)
console
.
log
(
this
.
schema
)
},
// 获取数据
getList
()
{
const
self
=
this
// 处理过滤条件
const
params
=
JSON
.
parse
(
JSON
.
stringify
(
self
.
listQuery
))
// if (self.includes) {
// params.includes = self.includes
// }
// if (self.refers) {
// params.refers = self.refers
// }
// self.schema.modelUnderscorePlural
_
.
each
(
self
.
tabData
,
function
(
item
,
i
)
{
request
(
item
.
table
,
{
params
:
params
}).
then
(
resp
=>
{
console
.
log
(
resp
.
data
)
self
.
$set
(
item
,
'column'
,
resp
.
data
)
})
})
setTimeout
(
function
()
{
console
.
log
(
self
.
tabData
)
},
3000
)
// request('cc_meetings', {
// params: params
// }).then(resp => {
// // if (resp.data.length !== 0 && resp.data[0].superior !== undefined && resp.data[0].includes !== undefined &&
// // resp.data[0].refers !== undefined && resp.data[0].relates !== undefined) {
// // self.list = []
// // _.each(resp.data, function(item, index) {
// // self.list.push(item.superior)
// // })
// // } else {
// // self.list = resp.data
// // }
// // self.list = resp.data
// console.log(resp.data)
// // 数据库字段转化显示
// // if (self.options && self.options.changeValue) {
// // self.list = self.changeValue(self.list)
// // }
// })
}
}
}
}
}
}
</
script
>
</
script
>
...
...
src/views/haomo/components/tabs/index.vue
View file @
2dea04e7
...
@@ -17,6 +17,8 @@
...
@@ -17,6 +17,8 @@
},
},
data
()
{
data
()
{
return
{
return
{
// 会议、通知通报、公文、会议请假、调班申请、议题征集申请
//
}
}
},
},
computed
:
{
computed
:
{
...
...
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