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
09d8c01a
Commit
09d8c01a
authored
May 21, 2018
by
杨柠瑞
Browse files
Options
Browse Files
Download
Plain Diff
coding
parents
88aec90a
ee1f7772
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
302 additions
and
192 deletions
+302
-192
HmFullCalendar.vue
src/views/haomo/components/calendar/HmFullCalendar.vue
+41
-45
index.vue
src/views/haomo/components/calendar/index.vue
+11
-8
HmComplexForm.vue
src/views/haomo/components/forms/HmComplexForm.vue
+216
-105
index.vue
src/views/haomo/components/forms/index.vue
+23
-18
HmComplexTable.vue
src/views/haomo/components/tables/HmComplexTable.vue
+11
-16
No files found.
src/views/haomo/components/calendar/HmFullCalendar.vue
View file @
09d8c01a
<
template
>
<
template
>
<div
class=
"calendarlist"
>
<div
class=
"calendarlist"
>
<i
class=
"el-icon-date"
@
click=
"dialogTableVisible = true"
></i>
<i
class=
"el-icon-date"
@
click=
"dialogTableVisible = true"
:style=
"demoEvent.iconStyle"
></i>
<el-dialog
:visible
.
sync=
"dialogTableVisible"
>
<el-dialog
:visible
.
sync=
"dialogTableVisible"
>
<div
class=
"datebook-root"
:style=
'componentW?"width:"+componentW+";":""'
>
<div
class=
"datebook-root"
:style=
'componentW?"width:"+componentW+";":""'
>
<div
class=
'top-panel'
>
<div
class=
'top-panel'
>
...
@@ -44,6 +44,7 @@
...
@@ -44,6 +44,7 @@
box-sizing
:
border-box
;
box-sizing
:
border-box
;
width
:
280px
;
width
:
280px
;
border
:
1px
solid
#ececec
;
border
:
1px
solid
#ececec
;
display
:
inline-block
;
}
}
.datebook-root
.top-panel
{
.datebook-root
.top-panel
{
padding-top
:
10px
;
padding-top
:
10px
;
...
@@ -177,24 +178,25 @@
...
@@ -177,24 +178,25 @@
background
:
#2db7f5
;
background
:
#2db7f5
;
}
}
.incident
{
.incident
{
top
:
-350px
;
vertical-align
:
top
;
left
:
27
0px
;
width
:
30
0px
;
display
:
inline-block
;
display
:
inline-block
;
position
:
relative
;
background-color
:
#202020
;
background-color
:
#202020
;
width
:
180px
;
height
:
428px
;
height
:;
position
:
relative
;
padding
:
20px
;
overflow
:
scroll
;
text-align
:
center
;
/*padding:20px;*/
color
:
#CCC
;
color
:
#CCC
;
text-align
:
center
;
/*text-align:center;*/
font-size
:
14px
;
/*font-size:14px;*/
font-family
:
微软雅黑
;
/*font-family:微软雅黑;*/
border-radius
:
10px
;
/*border-radius:10px;*/
margin
:
50px
;
/*margin:50px;*/
box-shadow
:
1px
1px
2px
#202020
;
/*box-shadow:1px 1px 2px #202020;*/
-o-box-shadow
:
1px
1px
2px
#202020
;
/*-o-box-shadow:1px 1px 2px #202020;*/
-moz-box-shadow
:
1px
1px
2px
#202020
;
/*-moz-box-shadow:1px 1px 2px #202020;*/
-webkit-border-shadow
:
1px
1px
2px
#202020
;
/*-webkit-border-shadow:1px 1px 2px #202020;*/
}
}
.close
{
.close
{
position
:
absolute
;
position
:
absolute
;
...
@@ -203,20 +205,21 @@
...
@@ -203,20 +205,21 @@
right
:
0
;
right
:
0
;
}
}
.incident
span
{
.incident
span
{
color
:
white
;
font-size
:
10px
;
font-size
:
10px
;
padding
:
10px
20px
;
padding
:
10px
20px
;
}
}
.incident
:before
{
.incident
:before
{
content
:
''
;
/*content:'';*/
position
:
absolute
;
/*position:absolute;*/
width
:
0
;
/*width:0;*/
height
:
0
;
/*height:0;*/
border
:
15px
solid
;
/*border:15px solid;*/
color
:
transparent
;
/*color:transparent;*/
border-right-color
:
#202020
;
/*border-right-color:#202020;*/
left
:
-30px
;
/*left:-30px;*/
top
:
50%
;
/*top:50%;*/
margin-top
:
-15px
;
/*margin-top:-15px;*/
}
}
</
style
>
</
style
>
<
script
>
<
script
>
...
@@ -266,20 +269,12 @@
...
@@ -266,20 +269,12 @@
type
:
Object
,
type
:
Object
,
required
:
true
required
:
true
},
},
width
:
{
type
:
String
,
required
:
false
},
initTime
:
{
initTime
:
{
required
:
false
required
:
false
},
},
title
:
{
demoEvent
:
{
required
:
false
type
:
Object
,
},
events
:
{
required
:
false
},
date
:
{
required
:
false
required
:
false
}
}
},
},
...
@@ -399,7 +394,7 @@
...
@@ -399,7 +394,7 @@
},
},
dateChange
(
dateItem
)
{
dateChange
(
dateItem
)
{
this
.
show
=
true
this
.
show
=
true
console
.
log
(
dateItem
,
'-=-=-=-=-=-=-=-=-'
)
//
console.log(dateItem, '-=-=-=-=-=-=-=-=-')
var
dateObj
=
new
Date
(
this
.
showTimeData
)
var
dateObj
=
new
Date
(
this
.
showTimeData
)
var
year
=
dateObj
.
getFullYear
()
var
year
=
dateObj
.
getFullYear
()
var
month
=
dateObj
.
getMonth
()
var
month
=
dateObj
.
getMonth
()
...
@@ -448,7 +443,7 @@
...
@@ -448,7 +443,7 @@
dateItem
.
active
=
!
dateItem
.
active
dateItem
.
active
=
!
dateItem
.
active
}
}
// 向上发送本次点击的行程数据
// 向上发送本次点击的行程数据
console
.
log
(
result
,
'--------------------'
)
//
console.log(result, '--------------------')
if
(
result
.
schedule
)
{
if
(
result
.
schedule
)
{
const
currentTime
=
this
.
timestampToTime
(
result
.
schedule
.
date
)
const
currentTime
=
this
.
timestampToTime
(
result
.
schedule
.
date
)
this
.
currentDate
=
currentTime
this
.
currentDate
=
currentTime
...
@@ -487,15 +482,16 @@
...
@@ -487,15 +482,16 @@
getDailyEvent
()
{
getDailyEvent
()
{
const
self
=
this
const
self
=
this
var
saveTime
=
''
var
saveTime
=
''
var
filterparams
=
self
.
demoEvent
.
filterparams
request
(
self
.
schema
.
modelUnderscorePlural
,
{
request
(
self
.
schema
.
modelUnderscorePlural
,
{
params
:
{
'sortItem'
:
'create_time'
,
'pageSize'
:
10000
}
params
:
{
'sortItem'
:
self
.
demoEvent
.
timeOrder
,
'pageSize'
:
10000
,
filters
:
filterparams
}
}).
then
(
resp
=>
{
}).
then
(
resp
=>
{
console
.
log
(
resp
.
data
,
'========='
)
console
.
log
(
resp
.
data
,
'========='
)
_
.
each
(
resp
.
data
,
function
(
item
)
{
_
.
each
(
resp
.
data
,
function
(
item
)
{
item
.
time
=
moment
(
item
[
self
.
date
]).
format
(
'YYYY-MM-DD'
)
item
.
time
=
moment
(
item
[
self
.
d
emoEvent
.
d
ate
]).
format
(
'YYYY-MM-DD'
)
item
.
date
=
moment
(
item
[
self
.
date
]).
format
(
'X'
)
*
1000
item
.
date
=
moment
(
item
[
self
.
d
emoEvent
.
d
ate
]).
format
(
'X'
)
*
1000
item
.
title
=
item
[
self
.
title
]
item
.
title
=
item
[
self
.
demoEvent
.
title
]
item
.
allEvents
=
item
[
self
.
events
]
item
.
allEvents
=
item
[
self
.
demoEvent
.
events
]
if
(
saveTime
===
item
.
time
)
{
if
(
saveTime
===
item
.
time
)
{
self
.
schedules
[
self
.
schedules
.
length
-
1
].
allEvents
.
push
(
item
.
allEvents
)
self
.
schedules
[
self
.
schedules
.
length
-
1
].
allEvents
.
push
(
item
.
allEvents
)
}
else
{
}
else
{
...
@@ -508,7 +504,7 @@
...
@@ -508,7 +504,7 @@
}
}
})
})
})
})
console
.
log
(
self
.
schedules
,
'+++++最终+++++++++'
)
//
console.log(self.schedules, '+++++最终+++++++++')
}
}
},
},
created
()
{
created
()
{
...
...
src/views/haomo/components/calendar/index.vue
View file @
09d8c01a
<
template
>
<
template
>
<div
class=
"app-container calendar-list-container"
>
<div
class=
"app-container calendar-list-container"
>
<hm-full-calendar
<hm-full-calendar
:width=
"width"
:schema=
"schema['HmUser']"
:schema=
"schema['HmUser']"
:title=
"title"
:demoEvent=
"demoEvent"
:events=
"events"
:date=
"date"
@
dateChange=
"datechange"
@
dateChange=
"datechange"
@
monthChange=
"monthchange"
@
monthChange=
"monthchange"
></hm-full-calendar>
></hm-full-calendar>
...
@@ -26,11 +23,17 @@
...
@@ -26,11 +23,17 @@
data
()
{
data
()
{
return
{
return
{
show
:
false
,
show
:
false
,
width
:
'300px'
,
demoEvent
:
{
width
:
'300px'
,
title
:
'loginid'
,
date
:
'createTime'
,
events
:
'email'
,
timeOrder
:
'create_time'
,
filterparams
:
''
,
iconStyle
:
'color: #00BF8B'
}
// title为需要传入的事件名所对应的的字段名,date为时间所对应的字段,events为事件所对应的字段,都不是必传
// title为需要传入的事件名所对应的的字段名,date为时间所对应的字段,events为事件所对应的字段,都不是必传
title
:
'loginid'
,
// timeOrder为所有所有事件按照数据库的哪个字段排序,为下划线格式
date
:
'createTime'
,
events
:
'email'
}
}
},
},
filters
:
{
filters
:
{
...
...
src/views/haomo/components/forms/HmComplexForm.vue
View file @
09d8c01a
<
template
>
<
template
>
<!--class="app-container documentation-container"-->
<!--
1
class="app-container documentation-container"-->
<div>
<div>
<!--v-loading="Loading"-->
<!--v-loading="Loading"-->
<el-row
type=
"flex"
class=
"hm-form"
style=
"margin-top: 12px"
>
<el-row
type=
"flex"
class=
"hm-form"
style=
"margin-top: 12px"
>
...
@@ -13,7 +13,7 @@
...
@@ -13,7 +13,7 @@
element-loading-text=
"加载中"
element-loading-text=
"加载中"
:label-width=
"formStyle && formStyle.formOptions && formStyle.formOptions.labelWidth || '163px'"
:label-width=
"formStyle && formStyle.formOptions && formStyle.formOptions.labelWidth || '163px'"
:model=
"formModel"
:model=
"formModel"
:rules=
"
r
ules"
:rules=
"
myR
ules"
:style=
" formStyle && formStyle.formOptions && formStyle.formOptions.style ||
{width:'100%'}">
:style=
" formStyle && formStyle.formOptions && formStyle.formOptions.style ||
{width:'100%'}">
<el-form-item
v-for=
"column in showUserColumns"
<el-form-item
v-for=
"column in showUserColumns"
v-show=
"!column.hide"
v-show=
"!column.hide"
...
@@ -41,6 +41,7 @@
...
@@ -41,6 +41,7 @@
:ref=
"column.ref || ''"
:ref=
"column.ref || ''"
v-model=
"formModel[column.codeCamel]"
v-model=
"formModel[column.codeCamel]"
@
change=
"column.change && column.change($event, formModel)"
@
change=
"column.change && column.change($event, formModel)"
@
focus=
"column.focus && column.focus($event, formModel)"
:style=
"formStyle && formStyle.select && formStyle.select.style ||
{width: '70%'}"
:style=
"formStyle && formStyle.select && formStyle.select.style ||
{width: '70%'}"
:multiple="column.multiple"
:multiple="column.multiple"
:disabled="column.disabled"
:disabled="column.disabled"
...
@@ -85,7 +86,7 @@
...
@@ -85,7 +86,7 @@
:ref=
"column.ref || ''"
: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:'70%'}"
:style=
"formStyle && formStyle.quillEditor && formStyle.quillEditor.style ||
{width:'70%'}"
:options="editorOption"
:options="
column.options ||
editorOption"
@blur="onEditorBlur($event)"
@blur="onEditorBlur($event)"
@focus="onEditorFocus($event)"
@focus="onEditorFocus($event)"
@change="column.change
&&
column.change($event)"
@change="column.change
&&
column.change($event)"
...
@@ -94,6 +95,7 @@
...
@@ -94,6 +95,7 @@
<!-- 6 单选框 -->
<!-- 6 单选框 -->
<el-radio-group
v-else-if=
"column.widgetType === 7"
<el-radio-group
v-else-if=
"column.widgetType === 7"
:disabled=
"column.disabled"
:disabled=
"column.disabled"
:readonly=
"column.readonly"
@
change=
"column.change && column.change($event, formModel)"
@
change=
"column.change && column.change($event, formModel)"
v-model=
"formModel[column.codeCamel]"
>
v-model=
"formModel[column.codeCamel]"
>
<el-radio
v-for=
"option in column.options"
<el-radio
v-for=
"option in column.options"
...
@@ -110,31 +112,35 @@
...
@@ -110,31 +112,35 @@
:file-list=
"fileList"
:file-list=
"fileList"
ref=
"upload"
ref=
"upload"
:on-success=
"uploadSuccess"
>
:on-success=
"uploadSuccess"
>
<el-button
slot=
"trigger"
size=
"small"
type=
"primary"
<el-button
slot=
"trigger"
size=
"small"
type=
"primary"
@
click=
"currentFile = column.codeCamel"
:disabled=
"column.disabled"
>
选取文件
</el-button>
:disabled=
"column.disabled"
>
选取文件
</el-button>
</el-upload>
</el-upload>
<!-- 8树形图 -->
<!-- 8树形图 -->
<!--:default-expanded-keys="[2, 3]"-->
<!--:default-expanded-keys="[2, 3]"-->
<!--:default-checked-keys="[5]"-->
<!--:default-checked-keys="[5]"-->
<div
@
click=
"currentTree = column.codeCamel"
v-else-if=
"column.widgetType === 9"
<div
class=
"hm-form_form_div"
@
mouseenter=
"currentTree = column.codeCamel;treeComponent = column.ref"
v-else-if=
"column.widgetType === 9"
:style=
"formStyle && formStyle.elTree && formStyle.elTree.style ||
{width: '70%'}">
>
<el-tree
:data=
"column.options"
<el-tree
:data=
"column.options"
@
click=
"currentTree = column.codeCamel"
:ref=
"column.ref || 'tree'"
ref=
"tree"
show-checkbox
show-checkbox
node-key=
"id"
node-key=
"id"
accordion
@
node-click=
"handleNodeChange"
@
node-click=
"handleNodeChange"
@
check-change=
"handleCheckChange"
@
check-change=
"handleCheckChange"
:props=
"defaultProps"
>
:default-checked-keys=
"defaultKeys || formModel[column.codeCamel]"
:props=
"column.props || treeProps"
>
</el-tree>
</el-tree>
</div>
</div>
<!-- 9 级联下拉框v-model="formModel[column.codeCamel]"-->
<!-- 9 级联下拉框v-model="formModel[column.codeCamel]"-->
<el-cascader
v-else-if=
"column.widgetType === 10"
<el-cascader
v-else-if=
"column.widgetType === 10"
expand-trigger=
"hover"
expand-trigger=
"hover"
placeholder=
"搜索"
:options=
"column.options"
:options=
"column.options"
filterable
clearable
:show-all-levels=
"false"
v-model=
"formModel[column.codeCamel]"
v-model=
"formModel[column.codeCamel]"
:props=
"column.props || cascaderProps"
:style=
"formStyle && formStyle.cascader && formStyle.cascader.style ||
{width: '70%'}"
:style=
"formStyle && formStyle.cascader && formStyle.cascader.style ||
{width: '70%'}"
@change="column.change
&&
column.change($event)">
@change="column.change
&&
column.change($event
, formModel
)">
</el-cascader>
</el-cascader>
<!-- 10 普通input ||
{width:'65%'}-->
<!-- 10 普通input ||
{width:'65%'}-->
<el-input
v-else-if=
"column.widgetType === 1 && column.rule && column.rule.type && column.rule.type === 'number'"
<el-input
v-else-if=
"column.widgetType === 1 && column.rule && column.rule.type && column.rule.type === 'number'"
...
@@ -153,7 +159,7 @@
...
@@ -153,7 +159,7 @@
@change="column.change
&&
column.change($event,formModel)">
</el-input>
@change="column.change
&&
column.change($event,formModel)">
</el-input>
</el-form-item>
</el-form-item>
<!--按钮-->
<!--按钮-->
<el-form-item
v-if=
"buttons && buttons.length > 0"
style=
"margin-top: 40px"
>
<el-form-item
v-if=
"buttons && buttons.length > 0"
class=
"hm-form_btn"
style=
"margin-top: 40px"
>
<el-col
:span=
"24/buttons.length"
v-for=
"(btn,key) in buttons"
:key=
"key"
>
<el-col
:span=
"24/buttons.length"
v-for=
"(btn,key) in buttons"
:key=
"key"
>
<el-button
v-if=
"btn.type === 1"
<el-button
v-if=
"btn.type === 1"
type=
"primary"
type=
"primary"
...
@@ -214,9 +220,10 @@
...
@@ -214,9 +220,10 @@
* change属性可选,值为函数类型,表示input的change事件的执行方法,参数即为input输入内容
* change属性可选,值为函数类型,表示input的change事件的执行方法,参数即为input输入内容
* default属性可选(复选框不支持),设置默认值,取值规范参考form/videoconferencing.vue
* default属性可选(复选框不支持),设置默认值,取值规范参考form/videoconferencing.vue
* hide属性可选,设置该表单字段是否显示,值为boolean
* hide属性可选,设置该表单字段是否显示,值为boolean
* ref属性可选,用来获取当前表单dom节点
* ref属性
树形控件必传,其他
可选,用来获取当前表单dom节点
* param属性可选,当表单类型为文件类型时,可传入param字段,值为后台规定必传参数,默认值为picture
* param属性可选,当表单类型为文件类型时,可传入param字段,值为后台规定必传参数,默认值为picture
* accept属性可选,当表单类型为文件类型时,可传入accept字段,限制限制上传文件类型,取值规范参考w3c
* accept属性可选,当表单类型为文件类型时,可传入accept字段,限制限制上传文件类型,取值规范参考w3c
* fileData属性可选,当表单类型为文件类型时,取值为all(表示返回路径+文件名),取值为filePath(表示只返回路径),取值fileName(表示只返回文件名),如果不传,默认只返回路径
* widgetType属性可选,表示该字段要显示的表单类型(普通输入框、文本域、富文本、下拉框...),不传默认为普通input
* widgetType属性可选,表示该字段要显示的表单类型(普通输入框、文本域、富文本、下拉框...),不传默认为普通input
* 取值1-10(1表示普通输入框,2表示普通下拉框,3表示复选框,4表示文本域,5表示富文本,6表示日期,7表示单选框,8表示文件上传,
* 取值1-10(1表示普通输入框,2表示普通下拉框,3表示复选框,4表示文本域,5表示富文本,6表示日期,7表示单选框,8表示文件上传,
* 9表示树状控件,10表示级联下拉框),
* 9表示树状控件,10表示级联下拉框),
...
@@ -433,6 +440,25 @@
...
@@ -433,6 +440,25 @@
formStyle
:
{
formStyle
:
{
type
:
Object
,
type
:
Object
,
required
:
false
required
:
false
},
/**
* 自定义验证规则的第二种方式(第一种是在column数组的对象中传rule)
* 格式为:
* userRules: {
* pass: [
* { validator: validatePass, trigger: 'blur' }
* ],
* checkPass: [
* { validator: validatePass2, trigger: 'blur' }
* ],
* age: [
* { validator: checkAge, trigger: 'blur' }
* ]
* }
*/
rules
:
{
type
:
Object
,
required
:
false
}
}
},
},
data
()
{
data
()
{
...
@@ -470,8 +496,9 @@
...
@@ -470,8 +496,9 @@
// }
// }
// }
// }
return
{
return
{
currentFile
:
''
,
// 上传文件时当前选中的codeComel值
currentFile
:
''
,
// 上传文件时当前选中的codeCamel值
currentTree
:
''
,
// 当前选中的树形菜单
currentTree
:
''
,
// 当前选中的树形菜单的codeCamel值
treeComponent
:
''
,
// 当前的树形菜单组件
foreignArray
:
[],
// 批量创建或删除的多条外表数据
foreignArray
:
[],
// 批量创建或删除的多条外表数据
nativeFormModel
:
{},
// 有外表时 本表数据 从formModel中提取
nativeFormModel
:
{},
// 有外表时 本表数据 从formModel中提取
foreighId
:
''
,
// 外表id即 与本表某个id对应
foreighId
:
''
,
// 外表id即 与本表某个id对应
...
@@ -482,9 +509,12 @@
...
@@ -482,9 +509,12 @@
relateData
:
{},
// 中间表数据
relateData
:
{},
// 中间表数据
Loading
:
true
,
// 加载等待
Loading
:
true
,
// 加载等待
form
:
null
,
form
:
null
,
formModel
:
{},
// 双向绑定的数据变量
defaultKeys
:
[],
// 默认选中项
formModel
:
{},
// 双向绑定的数据对象
formModelDeal
:
{},
// 新建或编辑时,提交之前用户对formModel处理之后的数据对象。原因:以级联表单为例,
// 级联表单v-model绑定的是数组,而往数据库中存储的是数组中的某一个字符串,如果把v-model的值经processData处理之后(数组--->字符串),仍然用formModel接收,Vue监听会报错(expected Array,got string),此时需要用formModealDeal接收并提交,不改变表单绑定的数据对象formModel
showUserColumns
:
[],
// 要显示的字段
showUserColumns
:
[],
// 要显示的字段
r
ules
:
{
myR
ules
:
{
// username: [
// username: [
// { validator: validateUsername, trigger: 'change' }
// { validator: validateUsername, trigger: 'change' }
// { required: true, message: '请输入用户名', trigger: 'blur' },
// { required: true, message: '请输入用户名', trigger: 'blur' },
...
@@ -517,41 +547,46 @@
...
@@ -517,41 +547,46 @@
]
]
}
}
},
},
data2
:
[{
// 树形选项配置
id
:
1
,
treeProps
:
{
label
:
'一级 1'
,
label
:
'label'
,
children
:
[{
// value: 'value',
id
:
4
,
children
:
'children'
label
:
'二级 1-1'
,
},
children
:
[{
// 级联下拉选项配置
id
:
9
,
cascaderProps
:
{
label
:
'三级 1-1-1'
label
:
'label'
,
},
{
value
:
'value'
,
id
:
10
,
children
:
'children'
label
:
'三级 1-1-2'
},
}]
data2
:
[
}]
{
},
{
id
:
1
,
id
:
2
,
label
:
'公诉处'
,
label
:
'一级 2'
,
children
:
[
children
:
[{
{
id
:
5
,
id
:
4
,
label
:
'二级 2-1'
label
:
'刘云山'
},
{
}
id
:
6
,
]
label
:
'二级 2-2'
},
}]
{
},
{
id
:
2
,
id
:
3
,
label
:
'监察部'
,
label
:
'一级 3'
,
children
:
[
children
:
[{
{
id
:
5
,
label
:
'毛晓东'
},
id
:
7
,
{
id
:
6
,
label
:
'方建国'
}
label
:
'二级 3-1'
]
},
{
},
id
:
8
,
{
label
:
'二级 3-2'
id
:
3
,
}]
label
:
'办公室'
,
}],
children
:
[
{
id
:
7
,
label
:
'司马南'
},
{
id
:
8
,
label
:
'褚随山'
}
]
}
],
defaultProps
:
{
defaultProps
:
{
children
:
'children'
,
children
:
'children'
,
label
:
'label'
label
:
'label'
...
@@ -601,14 +636,10 @@
...
@@ -601,14 +636,10 @@
},
},
created
()
{
created
()
{
// this.validate()
// this.validate()
// this.$set(this.defaultKeys, 0, 161)
this
.
init
()
this
.
init
()
this
.
getData
()
this
.
getData
()
this
.
getList
()
this
.
getList
()
// setTimeout(function() {
// var url = _.keys(self.refers)[0] + 's' + '/create/batch'
// console.log(url)
// }, 3000)
// console.log(this.buttons)
},
},
methods
:
{
methods
:
{
// 上传文件成功的回调函数
// 上传文件成功的回调函数
...
@@ -617,8 +648,8 @@
...
@@ -617,8 +648,8 @@
console
.
log
(
'上传成功'
)
console
.
log
(
'上传成功'
)
console
.
log
(
response
)
console
.
log
(
response
)
// console.log(self.currentFile)
// console.log(self.currentFile)
//
console.log(file)
console
.
log
(
file
)
//
console.log('fileList', fileList)
console
.
log
(
'fileList'
,
fileList
)
console
.
log
(
'formModel'
,
self
.
formModel
)
console
.
log
(
'formModel'
,
self
.
formModel
)
for
(
var
i
=
0
,
len
=
self
.
showUserColumns
.
length
;
i
<
len
;
i
++
)
{
for
(
var
i
=
0
,
len
=
self
.
showUserColumns
.
length
;
i
<
len
;
i
++
)
{
// && !self.showUserColumns[i].edited
// && !self.showUserColumns[i].edited
...
@@ -630,7 +661,19 @@
...
@@ -630,7 +661,19 @@
// 张家口
// 张家口
// self.formModel[key] = response.visitName + response.fileName
// self.formModel[key] = response.visitName + response.fileName
// 通用
// 通用
self
.
formModel
[
key
]
=
response
.
visitName
+
'/'
+
response
.
saveName
if
(
response
.
visitName
&&
response
.
saveName
)
{
// 如果fileData值为all 则存路径+名称
if
(
self
.
showUserColumns
[
i
].
fileData
===
'all'
)
{
self
.
formModel
[
key
]
=
response
.
visitName
+
''
+
response
.
fileName
+
'_'
+
response
.
saveName
}
else
if
(
self
.
showUserColumns
[
i
].
fileData
===
'fileName'
)
{
self
.
formModel
[
key
]
=
response
.
saveName
}
else
{
self
.
formModel
[
key
]
=
response
.
visitName
+
''
+
response
.
fileName
}
}
else
if
(
response
.
message
)
{
self
.
formModel
[
key
]
=
file
.
name
+
'_'
+
response
.
message
// self.formModel[key].push(file.name + '_' + response.message)
}
break
break
}
}
}
}
...
@@ -641,14 +684,36 @@
...
@@ -641,14 +684,36 @@
self
.
funObject
.
uploadFun
(
response
,
self
.
formModel
)
self
.
funObject
.
uploadFun
(
response
,
self
.
formModel
)
}
}
},
},
// 删除文件时的回调函数
handleRemove
(
file
,
fileList
)
{
const
self
=
this
console
.
log
(
'文件删除'
,
file
,
fileList
)
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
]
=
''
console
.
log
(
'删除后'
,
self
.
formModel
)
},
// 文件状态改变时的回调函数
handleChange
(
file
,
fileList
)
{
// console.log('文件状态改变', file, fileList)
// console.log('自己的')
},
// 树形选择器
// 树形选择器
handleCheckChange
(
data
,
checked
,
indeterminate
)
{
handleCheckChange
(
data
,
checked
,
indeterminate
)
{
// console.log(data, checked, indeterminate)
// console.log(data, checked, indeterminate)
const
self
=
this
const
self
=
this
console
.
log
(
1
)
console
.
log
(
'handleCheckChange函数'
)
console
.
log
(
this
.
$refs
.
tree
[
0
].
getCheckedNodes
(
true
))
// console.log(this.$refs.tree[0].getCheckedNodes(true))
console
.
log
(
this
.
$refs
.
tree
[
0
].
getCheckedKeys
(
true
))
// console.log('当前选择的codecamel:', self.currentTree)
console
.
log
(
self
.
currentTree
)
// console.log('当前选择的tree组件', self.treeComponent)
console
.
log
(
self
.
$refs
[
self
.
treeComponent
][
0
].
getCheckedKeys
(
true
))
// console.log('默认选中', self.defaultKeys)
for
(
var
i
=
0
,
len
=
self
.
showUserColumns
.
length
;
i
<
len
;
i
++
)
{
for
(
var
i
=
0
,
len
=
self
.
showUserColumns
.
length
;
i
<
len
;
i
++
)
{
// && !self.showUserColumns[i].edited
// && !self.showUserColumns[i].edited
if
(
self
.
showUserColumns
[
i
].
widgetType
===
9
)
{
if
(
self
.
showUserColumns
[
i
].
widgetType
===
9
)
{
...
@@ -659,7 +724,7 @@
...
@@ -659,7 +724,7 @@
// 张家口
// 张家口
// self.formModel[key] = response.visitName + response.fileName
// self.formModel[key] = response.visitName + response.fileName
// org
// org
self
.
formModel
[
key
]
=
self
.
$refs
.
tree
[
0
].
getCheckedKeys
(
true
)
self
.
formModel
[
key
]
=
self
.
$refs
[
self
.
treeComponent
]
[
0
].
getCheckedKeys
(
true
)
break
break
}
}
}
}
...
@@ -671,6 +736,9 @@
...
@@ -671,6 +736,9 @@
handleNodeChange
(
data
,
node
,
com
)
{
handleNodeChange
(
data
,
node
,
com
)
{
console
.
log
(
com
)
console
.
log
(
com
)
},
},
treeCheck
(
data1
,
data2
)
{
console
.
log
(
this
.
currentTree
)
},
// inputChange(val) {
// inputChange(val) {
// // console.log(event)
// // console.log(event)
// // console.log(val)
// // console.log(val)
...
@@ -708,13 +776,6 @@
...
@@ -708,13 +776,6 @@
onEditorReady
(
val
)
{
onEditorReady
(
val
)
{
// console.log('editor ready!')
// console.log('editor ready!')
},
},
handleRemove
(
file
,
fileList
)
{
// console.log(self.formModel)
},
handleChange
(
file
,
fileList
)
{
// console.log(file, fileList)
// console.log('自己的')
},
cascaderChange
(
value
)
{
cascaderChange
(
value
)
{
console
.
log
(
value
)
console
.
log
(
value
)
},
},
...
@@ -819,6 +880,8 @@
...
@@ -819,6 +880,8 @@
const
filters
=
{}
const
filters
=
{}
const
params
=
{}
const
params
=
{}
filters
[
self
.
schema
.
modelUnderscore
]
=
{
'id'
:
{
'equalTo'
:
self
.
tableId
}}
filters
[
self
.
schema
.
modelUnderscore
]
=
{
'id'
:
{
'equalTo'
:
self
.
tableId
}}
// self.$set(filters, self.schema.modelUnderscore, { 'id': { 'equalTo': self.tableId }})
params
.
filters
=
filters
// 主查外
// 主查外
if
(
self
.
refers
&&
!
self
.
isEmptyObject
(
self
.
refers
))
{
if
(
self
.
refers
&&
!
self
.
isEmptyObject
(
self
.
refers
))
{
params
.
refers
=
self
.
refers
params
.
refers
=
self
.
refers
...
@@ -827,8 +890,7 @@
...
@@ -827,8 +890,7 @@
if
(
self
.
includes
&&
!
self
.
isEmptyObject
(
self
.
includes
))
{
if
(
self
.
includes
&&
!
self
.
isEmptyObject
(
self
.
includes
))
{
params
.
includes
=
self
.
includes
params
.
includes
=
self
.
includes
}
}
params
.
filters
=
filters
console
.
log
(
'params'
,
params
)
// console.log('params', params)
// 获取数据 + '/' + self.tableId
// 获取数据 + '/' + self.tableId
request
(
self
.
schema
.
modelUnderscorePlural
,
{
request
(
self
.
schema
.
modelUnderscorePlural
,
{
params
:
params
params
:
params
...
@@ -836,8 +898,15 @@
...
@@ -836,8 +898,15 @@
self
.
Loading
=
false
self
.
Loading
=
false
// console.log(self.formModel)
// console.log(self.formModel)
// console.log('获取成功', resp.data)
// console.log('获取成功', resp.data)
// 如果是外查主
// 如果是既有外查主又有主查外
if
(
resp
.
data
.
length
>
0
&&
resp
.
data
[
0
].
superior
!==
undefined
&&
!
self
.
isEmptyObject
(
resp
.
data
[
0
].
superior
)
&&
resp
.
data
[
0
].
includes
!==
undefined
&&
!
self
.
isEmptyObject
(
resp
.
data
[
0
].
includes
))
{
if
(
resp
.
data
.
length
>
0
&&
resp
.
data
[
0
].
superior
!==
undefined
&&
!
self
.
isEmptyObject
(
resp
.
data
[
0
].
superior
)
&&
resp
.
data
[
0
].
refers
!==
undefined
&&
!
self
.
isEmptyObject
(
resp
.
data
[
0
].
refers
)
&&
resp
.
data
[
0
].
includes
!==
undefined
&&
!
self
.
isEmptyObject
(
resp
.
data
[
0
].
includes
))
{
console
.
log
(
'主外联查'
,
resp
.
data
)
// 渲染之前执行用户的beforeRender方法对数据进行处理
if
(
self
.
funObject
&&
!
self
.
isEmptyObject
(
self
.
funObject
))
{
self
.
formModel
=
self
.
funObject
.
beforeRender
(
resp
.
data
,
self
.
formModel
)
}
// 如果是外查主
}
else
if
(
resp
.
data
.
length
>
0
&&
resp
.
data
[
0
].
superior
!==
undefined
&&
!
self
.
isEmptyObject
(
resp
.
data
[
0
].
superior
)
&&
resp
.
data
[
0
].
includes
!==
undefined
&&
!
self
.
isEmptyObject
(
resp
.
data
[
0
].
includes
))
{
console
.
log
(
'外查主'
,
resp
.
data
)
console
.
log
(
'外查主'
,
resp
.
data
)
self
.
foreighId
=
resp
.
data
[
0
].
includes
[
_
.
keys
(
self
.
includes
)[
0
]].
id
self
.
foreighId
=
resp
.
data
[
0
].
includes
[
_
.
keys
(
self
.
includes
)[
0
]].
id
// 渲染之前执行用户的beforeRender方法对数据进行处理
// 渲染之前执行用户的beforeRender方法对数据进行处理
...
@@ -853,7 +922,9 @@
...
@@ -853,7 +922,9 @@
}
}
// 如果只是单表
// 如果只是单表
}
else
if
(
resp
.
data
.
length
>
0
)
{
}
else
if
(
resp
.
data
.
length
>
0
)
{
// console.log('获取成功', resp.data)
console
.
log
(
'单表查询'
,
resp
.
data
)
self
.
defaultKeys
.
push
(
parseInt
(
resp
.
data
[
0
].
departmentId
))
console
.
log
(
self
.
defaultKeys
)
var
formArray
=
_
.
keys
(
self
.
formModel
)
// 提取formModel的属性到数组
var
formArray
=
_
.
keys
(
self
.
formModel
)
// 提取formModel的属性到数组
if
(
resp
.
data
[
0
].
superior
&&
!
self
.
isEmptyObject
(
resp
.
data
[
0
].
superior
))
{
if
(
resp
.
data
[
0
].
superior
&&
!
self
.
isEmptyObject
(
resp
.
data
[
0
].
superior
))
{
self
.
formModel
=
_
.
pick
(
resp
.
data
[
0
].
superior
,
formArray
)
// 根据数组中的属性提取出data中对应的数据
self
.
formModel
=
_
.
pick
(
resp
.
data
[
0
].
superior
,
formArray
)
// 根据数组中的属性提取出data中对应的数据
...
@@ -861,11 +932,12 @@
...
@@ -861,11 +932,12 @@
self
.
formModel
=
_
.
pick
(
resp
.
data
[
0
],
formArray
)
self
.
formModel
=
_
.
pick
(
resp
.
data
[
0
],
formArray
)
}
}
// 渲染之前执行用户的beforeRender方法对数据进行处理
// 渲染之前执行用户的beforeRender方法对数据进行处理
if
(
self
.
funObject
&&
!
self
.
isEmptyObject
(
self
.
funObject
)
)
{
if
(
self
.
funObject
&&
typeof
(
self
.
funObject
.
beforeRender
)
===
'function'
)
{
self
.
formModel
=
self
.
funObject
.
beforeRender
(
resp
.
data
,
self
.
formModel
)
self
.
formModel
=
self
.
funObject
.
beforeRender
(
resp
.
data
,
self
.
formModel
)
}
}
// console.log('获取到数据', self.formModel)
// console.log('获取到数据', self.formModel)
// 处理返回来的数据
// 处理返回来的数据
console
.
log
(
'getList处理多选前'
,
self
.
formModel
)
_
.
each
(
self
.
columns
,
function
(
item
,
index
)
{
_
.
each
(
self
.
columns
,
function
(
item
,
index
)
{
// 下拉框多选时将字符串转为数组 column.widgetType === 3 && !column.options
// 下拉框多选时将字符串转为数组 column.widgetType === 3 && !column.options
if
(
item
.
widgetType
===
2
&&
item
.
multiple
===
true
)
{
if
(
item
.
widgetType
===
2
&&
item
.
multiple
===
true
)
{
...
@@ -895,6 +967,15 @@
...
@@ -895,6 +967,15 @@
}
}
})
})
}
}
// 树形控件,将请求回来的字符串放数组中
if
(
item
.
widgetType
===
9
)
{
_
.
forEach
(
self
.
formModel
,
function
(
value
,
key
)
{
if
(
item
.
codeCamel
===
key
)
{
// console.log(11111, self.formModel[key])
self
.
formModel
[
key
]
=
self
.
formModel
[
key
].
split
(
','
)
}
})
}
})
})
}
}
console
.
log
(
'getList'
,
self
.
formModel
)
console
.
log
(
'getList'
,
self
.
formModel
)
...
@@ -906,9 +987,8 @@
...
@@ -906,9 +987,8 @@
init
()
{
init
()
{
const
self
=
this
const
self
=
this
if
(
self
.
columns
&&
self
.
columns
.
length
)
{
if
(
self
.
columns
&&
self
.
columns
.
length
)
{
self
.
showUserColumns
=
_
.
cloneDeep
(
self
.
columns
)
// self.showUserColumns = _.cloneDeep(self.columns)
// console.log(504, self.showUserColumns)
self
.
showUserColumns
=
self
.
columns
// console.log(514, self.formModel)
// 处理传来的表单字段
// 处理传来的表单字段
_
.
each
(
self
.
showUserColumns
,
function
(
column
,
index
)
{
_
.
each
(
self
.
showUserColumns
,
function
(
column
,
index
)
{
if
(
typeof
column
===
'string'
)
{
if
(
typeof
column
===
'string'
)
{
...
@@ -931,13 +1011,13 @@
...
@@ -931,13 +1011,13 @@
// console.log('self.showUserColumns', self.showUserColumns)
// console.log('self.showUserColumns', self.showUserColumns)
// 提取v-model绑定的变量
// 提取v-model绑定的变量
_
.
each
(
self
.
showUserColumns
,
function
(
item
)
{
_
.
each
(
self
.
showUserColumns
,
function
(
item
)
{
if
(
item
.
widgetType
===
8
||
(
item
.
widgetType
===
3
&&
item
.
options
&&
item
.
options
.
length
>
0
))
{
if
(
item
.
widgetType
===
8
||
item
.
widgetType
===
10
||
item
.
widgetType
===
9
||
(
item
.
widgetType
===
3
&&
item
.
options
&&
item
.
options
.
length
>
0
))
{
self
.
$set
(
self
.
formModel
,
item
.
codeCamel
,
[])
self
.
$set
(
self
.
formModel
,
item
.
codeCamel
,
[])
}
else
{
}
else
{
item
.
default
?
self
.
$set
(
self
.
formModel
,
item
.
codeCamel
,
item
.
default
)
:
self
.
$set
(
self
.
formModel
,
item
.
codeCamel
,
''
)
item
.
default
?
self
.
$set
(
self
.
formModel
,
item
.
codeCamel
,
item
.
default
)
:
self
.
$set
(
self
.
formModel
,
item
.
codeCamel
,
''
)
}
}
})
})
// console.log('
self.formModel', self.formModel)
console
.
log
(
'初始化
self.formModel'
,
self
.
formModel
)
if
(
!
request
.
defaults
.
baseURL
)
{
if
(
!
request
.
defaults
.
baseURL
)
{
request
.
defaults
.
baseURL
=
'/org/api'
request
.
defaults
.
baseURL
=
'/org/api'
}
}
...
@@ -970,9 +1050,10 @@
...
@@ -970,9 +1050,10 @@
})
})
return
return
}
}
// 对表单数据进行处理
// 提交之前对表单数据进行处理
self
.
formModel
=
processData
?
processData
(
self
.
formModel
,
self
.
isCancel
)
:
self
.
formModel
self
.
formModelDeal
=
processData
?
processData
(
self
.
formModel
,
self
.
isCancel
)
:
self
.
formModel
// console.log(self.formModel)
console
.
log
(
'表单数据经过了处理'
,
self
.
formModel
)
debugger
// 如果在processData中禁止提交了,显示提示信息
// 如果在processData中禁止提交了,显示提示信息
if
(
self
.
isCancel
.
cancelSubmit
)
{
if
(
self
.
isCancel
.
cancelSubmit
)
{
console
.
log
(
'取消提交'
)
console
.
log
(
'取消提交'
)
...
@@ -982,9 +1063,9 @@
...
@@ -982,9 +1063,9 @@
type
:
'error'
type
:
'error'
})
})
}
}
self
.
isCancel
.
cancelSubmit
=
false
return
return
}
}
// 验证、提交
// 验证、提交
self
.
$refs
.
form
.
validate
((
valid
)
=>
{
self
.
$refs
.
form
.
validate
((
valid
)
=>
{
if
(
valid
)
{
if
(
valid
)
{
...
@@ -992,22 +1073,33 @@
...
@@ -992,22 +1073,33 @@
// 存在tableId 则修改信息
// 存在tableId 则修改信息
if
(
self
.
tableId
)
{
if
(
self
.
tableId
)
{
// 外查主 从formModel中分离本表、外表数据
// 外查主 从formModel中分离本表、外表数据
_
.
each
(
self
.
formModel
,
function
(
val
,
idx
)
{
if
(
self
.
includes
&&
!
self
.
isEmptyObject
(
self
.
includes
))
{
if
(
idx
.
slice
(
-
1
)
===
'C'
)
{
_
.
each
(
self
.
formModel
,
function
(
val
,
idx
)
{
idx
=
idx
.
slice
(
0
,
idx
.
length
-
1
)
// 后缀带O是非本表 连带查出来的表 并非就是指外表
self
.
nativeFormModel
[
idx
]
=
val
// if (idx.slice(-1) === 'O') {
}
else
{
// idx = idx.slice(0, idx.length - 1)
idx
=
idx
.
slice
(
0
,
idx
.
length
-
1
)
// self.foreignFormModel[idx] = val
self
.
foreignFormModel
[
idx
]
=
val
// } else {
}
// // 不带后缀是本表
})
// idx = idx.slice(0, idx.length - 1)
// self.nativeFormModel[idx] = val
// }
if
(
idx
.
slice
(
-
1
)
===
'C'
)
{
idx
=
idx
.
slice
(
0
,
idx
.
length
-
1
)
self
.
nativeFormModel
[
idx
]
=
val
}
else
{
idx
=
idx
.
slice
(
0
,
idx
.
length
-
1
)
self
.
foreignFormModel
[
idx
]
=
val
}
})
}
console
.
log
(
879
,
self
.
nativeFormModel
)
console
.
log
(
879
,
self
.
nativeFormModel
)
console
.
log
(
880
,
self
.
foreignFormModel
)
console
.
log
(
880
,
self
.
foreignFormModel
)
// 修改本表数据
// 修改本表数据
request
(
self
.
schema
.
modelUnderscorePlural
+
'/'
+
self
.
tableId
+
'/edit'
,
{
request
(
self
.
schema
.
modelUnderscorePlural
+
'/'
+
self
.
tableId
+
'/edit'
,
{
method
:
'post'
,
method
:
'post'
,
headers
:
{
'Content-Type'
:
'application/x-www-form-urlencoded;charset=UTF-8'
},
headers
:
{
'Content-Type'
:
'application/x-www-form-urlencoded;charset=UTF-8'
},
data
:
self
.
isEmptyObject
(
self
.
nativeFormModel
)
?
self
.
formModel
:
self
.
nativeFormModel
,
data
:
self
.
isEmptyObject
(
self
.
nativeFormModel
)
?
self
.
formModel
Deal
:
self
.
nativeFormModel
,
transformRequest
:
transformRequest
:
function
(
obj
)
{
function
(
obj
)
{
var
str
=
[]
var
str
=
[]
...
@@ -1032,7 +1124,7 @@
...
@@ -1032,7 +1124,7 @@
// 修改成功执行用户回调
// 修改成功执行用户回调
if
(
typeof
(
callback
)
===
'function'
)
{
if
(
typeof
(
callback
)
===
'function'
)
{
callback
(
resp
.
data
)
callback
(
resp
.
data
,
self
.
formModelDeal
)
}
}
}).
catch
(
err
=>
{
}).
catch
(
err
=>
{
console
.
log
(
err
)
console
.
log
(
err
)
...
@@ -1119,7 +1211,7 @@
...
@@ -1119,7 +1211,7 @@
request
(
self
.
schema
.
modelUnderscorePlural
+
'/new'
,
{
request
(
self
.
schema
.
modelUnderscorePlural
+
'/new'
,
{
method
:
'post'
,
method
:
'post'
,
headers
:
{
'Content-Type'
:
'application/x-www-form-urlencoded;charset=UTF-8'
},
headers
:
{
'Content-Type'
:
'application/x-www-form-urlencoded;charset=UTF-8'
},
data
:
self
.
isEmptyObject
(
self
.
refers
)
?
self
.
formModel
:
self
.
nativeFormModel
,
data
:
self
.
isEmptyObject
(
self
.
refers
)
?
self
.
formModel
Deal
:
self
.
nativeFormModel
,
transformRequest
:
transformRequest
:
function
(
obj
)
{
function
(
obj
)
{
var
str
=
[]
var
str
=
[]
...
@@ -1217,7 +1309,7 @@
...
@@ -1217,7 +1309,7 @@
}
}
// 新建成功执行用户回调
// 新建成功执行用户回调
if
(
typeof
(
callback
)
===
'function'
)
{
if
(
typeof
(
callback
)
===
'function'
)
{
callback
(
resp
.
data
)
callback
(
resp
.
data
,
self
.
formModelDeal
)
}
}
// 清空上传文件和树形菜单的codeComel
// 清空上传文件和树形菜单的codeComel
self
.
currentFile
=
''
self
.
currentFile
=
''
...
@@ -1232,6 +1324,7 @@
...
@@ -1232,6 +1324,7 @@
}
}
})
})
}
}
// self.close()
}
else
{
}
else
{
console
.
log
(
'提交失败!!'
)
console
.
log
(
'提交失败!!'
)
self
.
$message
({
self
.
$message
({
...
@@ -1265,13 +1358,18 @@
...
@@ -1265,13 +1358,18 @@
if
(
typeof
(
callback
)
===
'function'
)
{
if
(
typeof
(
callback
)
===
'function'
)
{
callback
()
callback
()
}
}
// this.close()
},
},
// 取消的回调函数
// 取消的回调函数
cancel
(
callback
)
{
cancel
(
callback
)
{
const
self
=
this
const
self
=
this
if
(
typeof
(
callback
)
===
'function'
)
{
if
(
typeof
(
callback
)
===
'function'
)
{
callback
(
self
.
formModel
)
callback
(
self
.
formModel
Deal
)
}
}
// self.close()
},
close
()
{
this
.
$emit
(
'formVisible'
)
}
}
}
}
...
@@ -1290,12 +1388,25 @@
...
@@ -1290,12 +1388,25 @@
.hm-form
.ql-toolbar.ql-snow
{
.hm-form
.ql-toolbar.ql-snow
{
padding
:
7px
;
padding
:
7px
;
}
}
.hm-form
.el-input__inner
:hover
{
.hm-form
.el-input__inner
:hover
{
border-color
:
rgba
(
153
,
153
,
153
,
0.6
);
border-color
:
rgba
(
153
,
153
,
153
,
0.6
);
}
}
.hm-form
.el-tree
{
.hm-form
.hm-form_form_div
{
border
:
1px
solid
red
;
border-radius
:
4px
;
height
:
150px
;
border
:
1px
solid
#dcdfe6
;
overflow-y
:
auto
;
max-height
:
134px
;
overflow-y
:
scroll
;
}
.hm-form
.hm-form_form_div
:hover
{
border-color
:
rgba
(
153
,
153
,
153
,
0.6
);
}
.hm-form
.hm-form_form_div
::-webkit-scrollbar
{
display
:
none
;
}
}
/*.hm-form .el-tree{*/
/*border-radius: 4px;*/
/*border: 1px solid red;*/
/*height: 150px;*/
/*overflow-y: auto;*/
/*}*/
</
style
>
</
style
>
src/views/haomo/components/forms/index.vue
View file @
09d8c01a
...
@@ -31,12 +31,17 @@
...
@@ -31,12 +31,17 @@
// widgetType值 1:普通input 2:下拉框 (如果是下拉框 再传一个options表示下拉框选项)3:复选框 4:文本域 5:富文本 6:日期 7:单选框 8: 文件上传
// widgetType值 1:普通input 2:下拉框 (如果是下拉框 再传一个options表示下拉框选项)3:复选框 4:文本域 5:富文本 6:日期 7:单选框 8: 文件上传
showUserColumns
:
[
showUserColumns
:
[
// 1普通input
// 1普通input
{
name
:
'选择类型'
,
codeCamel
:
'type'
,
widgetType
:
1
,
disabled
:
false
,
{
name
:
'选择类型'
,
codeCamel
:
'type'
,
widgetType
:
9
,
ref
:
'type'
,
options
:
[]
change
:
this
.
inputChange
// rule: { required: true, message: '用户名不能为空', trigger: 'blur' }
// rule: { required: true, message: '用户名不能为空', trigger: 'blur' }
// hide: true
// hide: true
// default: '默认值',
// default: '默认值',
},
},
// { name: '选择类型', codeCamel: 'type', widgetType: 1, disabled: false,
// change: this.inputChange
// // rule: { required: true, message: '用户名不能为空', trigger: 'blur' }
// // hide: true
// // default: '默认值',
// },
// 5富文本
// 5富文本
{
name
:
'电子邮件'
,
codeCamel
:
'email'
,
widgetType
:
5
,
disabled
:
false
,
{
name
:
'电子邮件'
,
codeCamel
:
'email'
,
widgetType
:
5
,
disabled
:
false
,
change
:
this
.
inputChange
,
hide
:
false
change
:
this
.
inputChange
,
hide
:
false
...
@@ -46,16 +51,16 @@
...
@@ -46,16 +51,16 @@
// ]
// ]
},
},
// 2下拉框
// 2下拉框
//
{ name: '用户名称', codeCamel: 'username', widgetType: 2, multiple: false,
{
name
:
'用户名称'
,
codeCamel
:
'username'
,
widgetType
:
2
,
multiple
:
false
,
//
change: this.selectChange, // default: [1], 如果开启多选,默认选中项用数组[1]、[1,2,3]
change
:
this
.
selectChange
,
// default: [1], 如果开启多选,默认选中项用数组[1]、[1,2,3]
//
allowCreate: true,
allowCreate
:
true
,
//
options: [
options
:
[
//
{ value: '1', label: '企业' }, // 下拉框的label是选项文字,value是选中值
{
value
:
'1'
,
label
:
'企业'
},
// 下拉框的label是选项文字,value是选中值
//
{ value: '2', label: '代理商' },
{
value
:
'2'
,
label
:
'代理商'
},
//
{ value: '3', label: '会员' },
{
value
:
'3'
,
label
:
'会员'
},
//
{ value: '4', label: '访客' }
{
value
:
'4'
,
label
:
'访客'
}
//
]
]
//
},
},
// 3多选 不支持默认值
// 3多选 不支持默认值
{
name
:
'部门ID'
,
codeCamel
:
'departmentId'
,
widgetType
:
3
,
options
:
[
'美女'
,
'帅哥'
],
change
:
this
.
inputChange
},
{
name
:
'部门ID'
,
codeCamel
:
'departmentId'
,
widgetType
:
3
,
options
:
[
'美女'
,
'帅哥'
],
change
:
this
.
inputChange
},
// 4密码
// 4密码
...
@@ -75,8 +80,7 @@
...
@@ -75,8 +80,7 @@
change
:
this
.
inputChange
change
:
this
.
inputChange
},
},
// 8文件 change: this.uploadChange
// 8文件 change: this.uploadChange
{
name
:
'选择头像'
,
codeCamel
:
'avatar'
,
widgetType
:
8
,
url
:
'/api/upload'
,
param
:
'picture'
},
// url是后台接口地址
{
name
:
'选择头像'
,
codeCamel
:
'avatar'
,
widgetType
:
8
,
url
:
'/api/upload'
,
param
:
'picture'
}
// url是后台接口地址
{
name
:
'用户名称'
,
codeCamel
:
'username'
,
widgetType
:
8
,
url
:
'/api/upload'
,
param
:
'picture'
}
// url是后台接口地址
],
],
// CcSubject示例
// CcSubject示例
showUserColumns2
:
[
showUserColumns2
:
[
...
@@ -147,6 +151,7 @@
...
@@ -147,6 +151,7 @@
input
:
{
style
:
{
width
:
'60%'
}},
input
:
{
style
:
{
width
:
'60%'
}},
select
:
{
style
:
{
width
:
'60%'
}},
select
:
{
style
:
{
width
:
'60%'
}},
cascader
:
{
style
:
{
width
:
'60%'
}},
cascader
:
{
style
:
{
width
:
'60%'
}},
elTree
:
{
style
:
{
width
:
'60%'
}},
textarea
:
{
textarea
:
{
style
:
{
width
:
'60%'
},
style
:
{
width
:
'60%'
},
resize
:
'none'
,
resize
:
'none'
,
...
@@ -183,8 +188,8 @@
...
@@ -183,8 +188,8 @@
},
},
methods
:
{
methods
:
{
inputChange
(
val
,
formModel
)
{
inputChange
(
val
,
formModel
)
{
//
console.log(val)
console
.
log
(
val
)
//
console.log(formModel)
console
.
log
(
formModel
)
// formModel.email = val.length
// formModel.email = val.length
},
},
selectChange
(
val
,
formModel
)
{
selectChange
(
val
,
formModel
)
{
...
@@ -220,8 +225,8 @@
...
@@ -220,8 +225,8 @@
return
formModel
return
formModel
},
},
uploadFun
:
function
(
response
,
formModel
)
{
uploadFun
:
function
(
response
,
formModel
)
{
//
console.log(215, response)
console
.
log
(
215
,
response
)
//
console.log(216, formModel)
console
.
log
(
216
,
formModel
)
// 修改其他表单的值
// 修改其他表单的值
formModel
.
email
=
response
.
visitName
formModel
.
email
=
response
.
visitName
}
}
...
...
src/views/haomo/components/tables/HmComplexTable.vue
View file @
09d8c01a
...
@@ -82,7 +82,7 @@
...
@@ -82,7 +82,7 @@
</el-date-picker>
</el-date-picker>
</el-form-item>
</el-form-item>
</span>
</span>
<!--预定义按钮-->
<!--预定义按钮-->
<el-button-group
v-if=
"buttonGroup"
>
<el-button-group
v-if=
"buttonGroup"
>
<el-button
class=
"filter-item"
:style=
"titleButtonStyle"
type=
"primary"
v-waves
icon=
"el-icon-search"
v-if=
"isShowSearch"
@
click=
"handleFilter"
>
搜索
</el-button>
<el-button
class=
"filter-item"
:style=
"titleButtonStyle"
type=
"primary"
v-waves
icon=
"el-icon-search"
v-if=
"isShowSearch"
@
click=
"handleFilter"
>
搜索
</el-button>
...
@@ -91,7 +91,7 @@
...
@@ -91,7 +91,7 @@
<el-button
class=
"filter-item"
:style=
"titleButtonStyle"
type=
"primary"
v-waves
icon=
"el-icon-refresh"
v-if=
"isShowRefresh"
@
click=
"refreshList"
>
刷新
</el-button>
<el-button
class=
"filter-item"
:style=
"titleButtonStyle"
type=
"primary"
v-waves
icon=
"el-icon-refresh"
v-if=
"isShowRefresh"
@
click=
"refreshList"
>
刷新
</el-button>
<el-button
class=
"filter-item"
:style=
"titleButtonStyle"
type=
"primary"
v-waves
icon=
"el-icon-close"
v-if=
"multipleSelection.length"
@
click=
"BatchRemove"
>
批量删除
</el-button>
<el-button
class=
"filter-item"
:style=
"titleButtonStyle"
type=
"primary"
v-waves
icon=
"el-icon-close"
v-if=
"multipleSelection.length"
@
click=
"BatchRemove"
>
批量删除
</el-button>
</el-button-group>
</el-button-group>
<span
v-if=
"!buttonGroup"
>
<span
v-if=
"!buttonGroup"
>
<el-button
class=
"filter-item"
:style=
"titleButtonStyle"
type=
"primary"
v-waves
icon=
"el-icon-search"
v-if=
"isShowSearch"
@
click=
"handleFilter"
>
搜索
</el-button>
<el-button
class=
"filter-item"
:style=
"titleButtonStyle"
type=
"primary"
v-waves
icon=
"el-icon-search"
v-if=
"isShowSearch"
@
click=
"handleFilter"
>
搜索
</el-button>
<el-button
class=
"filter-item"
:style=
"titleButtonStyle"
type=
"primary"
:loading=
"downloadLoading"
v-waves
icon=
"el-icon-download"
v-if=
"isShowExport"
@
click=
"handleDownload"
>
导出
</el-button>
<el-button
class=
"filter-item"
:style=
"titleButtonStyle"
type=
"primary"
:loading=
"downloadLoading"
v-waves
icon=
"el-icon-download"
v-if=
"isShowExport"
@
click=
"handleDownload"
>
导出
</el-button>
...
@@ -99,12 +99,11 @@
...
@@ -99,12 +99,11 @@
<el-button
class=
"filter-item"
:style=
"titleButtonStyle"
type=
"primary"
v-waves
icon=
"el-icon-refresh"
v-if=
"isShowRefresh"
@
click=
"refreshList"
>
刷新
</el-button>
<el-button
class=
"filter-item"
:style=
"titleButtonStyle"
type=
"primary"
v-waves
icon=
"el-icon-refresh"
v-if=
"isShowRefresh"
@
click=
"refreshList"
>
刷新
</el-button>
<el-button
class=
"filter-item"
:style=
"titleButtonStyle"
type=
"primary"
v-waves
icon=
"el-icon-close"
v-if=
"multipleSelection.length"
@
click=
"BatchRemove"
>
批量删除
</el-button>
<el-button
class=
"filter-item"
:style=
"titleButtonStyle"
type=
"primary"
v-waves
icon=
"el-icon-close"
v-if=
"multipleSelection.length"
@
click=
"BatchRemove"
>
批量删除
</el-button>
</span>
</span>
<hm-full-calendar
style=
"display: inline;margin-left: 10px;"
:schema=
"HmFullCalendar.calendarSchema"
:demoEvent=
"HmFullCalendar.demoEvents"
v-if=
"HmFullCalendar.calendarSchema"
></hm-full-calendar>
<hm-full-calendar
style=
"display: inline;margin-left: 10px;"
:schema=
"HmFullCalendar.calendarSchema"
:demoEvents=
"HmFullCalendar.demoEvents"
v-if=
"HmFullCalendar.calendarSchema"
></hm-full-calendar>
</el-form>
</el-form>
</div>
</div>
<!-- end 过滤 -->
<!-- end 过滤 -->
<!-- 表格 -->
<!-- 表格 -->
<el-table
:data=
"list"
v-loading=
"listLoading"
element-loading-text=
"给我一点时间"
border
fit
highlight-current-row
:cell-style=
"cellStyle"
ref=
"multipleTable"
<el-table
:data=
"list"
v-loading=
"listLoading"
element-loading-text=
"给我一点时间"
border
fit
highlight-current-row
:cell-style=
"cellStyle"
ref=
"multipleTable"
:style=
"tableStyle"
@
selection-change=
"handleSelectionChange"
@
sort-change=
"sortChange"
@
current-change=
"tableCurrentChange"
>
:style=
"tableStyle"
@
selection-change=
"handleSelectionChange"
@
sort-change=
"sortChange"
@
current-change=
"tableCurrentChange"
>
...
@@ -130,7 +129,7 @@
...
@@ -130,7 +129,7 @@
</el-table-column>
</el-table-column>
</el-table>
</el-table>
<!-- end 表格 -->
<!-- end 表格 -->
<!-- 翻页 -->
<!-- 翻页 -->
<div
class=
"pagination-container"
v-if=
"isShowPagination"
>
<div
class=
"pagination-container"
v-if=
"isShowPagination"
>
<el-pagination
background
@
size-change=
"handleSizeChange"
@
current-change=
"handleCurrentChange"
:current-page
.
sync=
"listQuery.pageNo"
<el-pagination
background
@
size-change=
"handleSizeChange"
@
current-change=
"handleCurrentChange"
:current-page
.
sync=
"listQuery.pageNo"
...
@@ -138,7 +137,7 @@
...
@@ -138,7 +137,7 @@
</el-pagination>
</el-pagination>
</div>
</div>
<!-- end翻页 -->
<!-- end翻页 -->
<!-- 弹窗 -->
<!-- 弹窗 -->
<!-- @TODO 补充详情弹窗 -->
<!-- @TODO 补充详情弹窗 -->
<el-dialog
:title=
"dialogName"
<el-dialog
:title=
"dialogName"
...
@@ -161,9 +160,9 @@
...
@@ -161,9 +160,9 @@
:rules=
"HmComplexForm.rules"
>
:rules=
"HmComplexForm.rules"
>
</hm-complex-form>
</hm-complex-form>
</el-dialog>
</el-dialog>
<!-- end 弹窗 -->
<!-- end 弹窗 -->
</div>
</div>
</template>
</template>
...
@@ -176,7 +175,7 @@
...
@@ -176,7 +175,7 @@
import
{
Button
,
Table
,
TableColumn
,
Pagination
,
Loading
}
from
'element-ui'
import
{
Button
,
Table
,
TableColumn
,
Pagination
,
Loading
}
from
'element-ui'
import
HmComplexForm
from
'../forms/HmComplexForm.vue'
import
HmComplexForm
from
'../forms/HmComplexForm.vue'
import
HmFullCalendar
from
'../calendar/HmFullCalendar.vue'
import
HmFullCalendar
from
'../calendar/HmFullCalendar.vue'
/**
/**
* 毫末科技的表格组件.
* 毫末科技的表格组件.
*
*
...
@@ -447,14 +446,12 @@
...
@@ -447,14 +446,12 @@
}
}
})
})
})
})
_
.
each
(
Object
.
keys
(
ret
[
self
.
schema
[
'modelUnderscore'
]]),
function
(
column
)
{
_
.
each
(
Object
.
keys
(
ret
[
self
.
schema
[
'modelUnderscore'
]]),
function
(
column
)
{
const
operValue
=
ret
[
self
.
schema
[
'modelUnderscore'
]][
column
]
const
operValue
=
ret
[
self
.
schema
[
'modelUnderscore'
]][
column
]
if
(
Object
.
keys
(
operValue
)[
0
]
===
'like'
)
{
if
(
Object
.
keys
(
operValue
)[
0
]
===
'like'
)
{
ret
[
self
.
schema
[
'modelUnderscore'
]][
column
][
'like'
]
=
'%'
+
ret
[
self
.
schema
[
'modelUnderscore'
]][
column
][
'like'
]
+
'%'
ret
[
self
.
schema
[
'modelUnderscore'
]][
column
][
'like'
]
=
'%'
+
ret
[
self
.
schema
[
'modelUnderscore'
]][
column
][
'like'
]
+
'%'
}
}
})
})
return
ret
return
ret
}
}
},
},
...
@@ -485,7 +482,6 @@
...
@@ -485,7 +482,6 @@
if
(
!
item
)
{
if
(
!
item
)
{
return
0
return
0
}
}
if
(
typeof
item
!==
'string'
&&
typeof
item
!==
'object'
)
{
if
(
typeof
item
!==
'string'
&&
typeof
item
!==
'object'
)
{
console
.
error
(
`传入的columns不符合要求,数组元素必须是字符串或对象`
)
console
.
error
(
`传入的columns不符合要求,数组元素必须是字符串或对象`
)
}
}
...
@@ -497,7 +493,6 @@
...
@@ -497,7 +493,6 @@
}
}
})
})
},
},
init
()
{
init
()
{
const
self
=
this
const
self
=
this
self
.
operationWidth
=
20
self
.
operationWidth
=
20
...
@@ -526,7 +521,7 @@
...
@@ -526,7 +521,7 @@
item
.
isSort
=
item
.
isSort
===
undefined
?
false
:
item
.
isSort
===
true
?
'custom'
:
false
item
.
isSort
=
item
.
isSort
===
undefined
?
false
:
item
.
isSort
===
true
?
'custom'
:
false
})
})
}
}
// 处理过滤条件
// 处理过滤条件
if
(
self
.
filters
)
{
if
(
self
.
filters
)
{
const
tableName
=
self
.
schema
[
'modelUnderscore'
]
const
tableName
=
self
.
schema
[
'modelUnderscore'
]
...
@@ -551,7 +546,7 @@
...
@@ -551,7 +546,7 @@
if
(
self
.
userDefined
)
{
if
(
self
.
userDefined
)
{
self
.
setDefinedOperate
()
self
.
setDefinedOperate
()
}
}
console
.
log
(
request
.
defaults
)
console
.
log
(
request
.
defaults
)
console
.
log
(
`request.defaults.baseURL:
${
request
.
defaults
.
baseURL
}
`
)
console
.
log
(
`request.defaults.baseURL:
${
request
.
defaults
.
baseURL
}
`
)
},
},
...
...
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