Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
C
confucius
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
罗超
confucius
Commits
8db64d34
Commit
8db64d34
authored
Jun 29, 2021
by
罗超
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1
parent
b8b5662c
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
436 additions
and
105 deletions
+436
-105
App.vue
src/App.vue
+1
-1
common.js
src/api/common/common.js
+0
-1
active-item.vue
src/components/activity/active-item.vue
+0
-10
activeDetail-item.vue
src/components/activity/activeDetail-item.vue
+340
-0
activeDetail.vue
src/pages/activity/activeDetail.vue
+95
-93
No files found.
src/App.vue
View file @
8db64d34
...
...
@@ -12,7 +12,7 @@ export default {
<
style
>
@import
url('~assets/css/font.css')
;
@import
url('//at.alicdn.com/t/font_2077629_
w06lw9ydl0q
.css')
;
@import
url('//at.alicdn.com/t/font_2077629_
byb6agikplo
.css')
;
html
,
body
,
...
...
src/api/common/common.js
View file @
8db64d34
...
...
@@ -231,7 +231,6 @@ export function UploadFileToSystem(uploadConfig, fileFullPath, fileObj, uploadLo
xhr
.
onload
=
function
()
{
uploadLoadding
.
hide
();
var
jsonObj
=
JSON
.
parse
(
xhr
.
responseText
);
console
.
log
(
206
,
jsonObj
,
successCall
)
if
(
jsonObj
.
StatusCode
===
1
&&
successCall
)
{
var
tempArray
=
[];
if
(
jsonObj
.
OtherFile
&&
jsonObj
.
OtherFile
.
length
>
0
)
{
...
...
src/components/activity/active-item.vue
deleted
100644 → 0
View file @
b8b5662c
<
template
>
<div>
</div>
</
template
>
<
script
>
export
default
{
}
</
script
>
\ No newline at end of file
src/components/activity/activeDetail-item.vue
0 → 100644
View file @
8db64d34
<
template
>
<div
class=
" activeDetail-item"
>
<div
class=
"up"
>
<div
class=
"date"
>
第
{{
index
}}
天
<i
class=
"iconfont icon-xiala icon"
v-if=
"isDropdown"
@
click=
"taggleDown"
></i>
<i
class=
"iconfont icon-xiala1 icon"
v-if=
"!isDropdown"
@
click=
"taggleDown"
></i>
</div>
<div
class=
"title"
>
<q-input
ref=
"Title"
filled
stack-label
v-model=
"itemMsg.Title"
label=
"活动大标题"
:rules=
"[val => !!val || '请填写活动大标题']"
/>
</div>
</div>
<div
class=
"down"
v-if=
"isDropdown"
>
<div
v-for=
"(item,index) in itemMsg.ActivityPlanList"
:key=
"item.id"
class=
"down-item q-mb-lg"
>
<div
class=
"item1"
>
<div
class=
"circle"
></div>
<div
class=
"line"
></div>
<div
class=
"con"
>
<div
class=
"starttime"
>
<q-input
filled
v-model=
"item.StartTime"
stack-label
label=
"开始时间"
ref=
"StartTime"
:rules=
"[val => !!val || '请选择开始时间']"
>
<template
v-slot:append
>
<q-icon
name=
"access_time"
class=
"cursor-pointer"
>
<q-popup-proxy
ref=
"qDateProxy"
transition-show=
"scale"
transition-hide=
"scale"
>
<q-time
v-model=
"item.StartTime"
format24h
>
<div
class=
"row items-center justify-end"
>
<q-btn
v-close-popup
label=
"关闭"
color=
"primary"
flat
/>
</div>
</q-time>
</q-popup-proxy>
</q-icon>
</
template
>
</q-input>
</div>
<div
class=
"starttime"
>
<q-input
ref=
"long"
filled
stack-label
v-model
.
number=
"item.ActivityDuration"
type=
"number"
label=
"持续时长"
suffix=
"分钟"
:rules=
"[val => !!val || '请填写活动持续时长']"
/>
</div>
<div
style=
"flex-grow:2"
>
<q-input
ref=
"name"
filled
stack-label
v-model=
"item.TripTitle"
label=
"活动名称"
:rules=
"[val => !!val || '请填写活动名称']"
/>
</div>
</div>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"删除当前活动"
placement=
"top"
v-if=
"index>0"
>
<i
class=
"iconfont icon-img_delete_small q-ml-sm"
@
click=
"delCurActuve(index)"
></i>
</el-tooltip>
</div>
<div
class=
"item-name"
>
活动内容
<div
class=
"location"
@
click=
"getMapShow"
>
<i
class=
"iconfont icon-customer-visited"
></i>
<span
v-if=
"item.LocationName"
>
{{item.LocationName}}
</span>
<span
v-else
>
可设置活动定位
</span>
</div>
</div>
<!-- 地图选址 -->
<el-dialog
title=
"地图展示"
:visible
.
sync=
"isShowMap"
width=
"960px"
>
<Map
@
map-submit=
"mapEvent($event,index)"
:address=
"item.LocationName"
></Map>
</el-dialog>
<div
class=
"active-con"
>
<q-input
v-model=
"item.TripContent"
filled
type=
"textarea"
placeholder=
"输入活动内容..."
/>
</div>
<div
class=
"item-name"
>
活动图片
</div>
<div
class=
"active-con"
>
<div
style=
"display:flex;flex-wrap: wrap;"
>
<div
v-if=
"item.TripPicList&&item.TripPicList.length>0"
v-for=
"(_item,_index) in item.TripPicList"
>
<div
class=
"ItemImgDiv"
>
<q-img
:src=
"_item"
spinner-color=
"white"
style=
"height: 100%;height:100%"
/>
<q-btn
size=
"7px"
@
click=
"deleteItemImg(_index)"
style=
"position:absolute;right:-5px;top:-5px;"
round
color=
"red"
icon=
"iconfont icon-guanbi1"
/>
</div>
</div>
<el-upload
class=
"avatar-uploader addDutyMain"
action=
""
:http-request=
"(files)=>{uploadFile(files,index)}"
:show-file-list=
"false"
>
<i
class=
"el-icon-plus avatar-uploader-icon"
></i>
</el-upload>
</div>
</div>
</div>
<div
class=
" q-mt-lg q-mb-lg"
style=
"margin-left:28px"
>
<q-btn
color=
"accent"
size=
"sm"
class=
""
icon=
"add"
label=
"添加当日活动"
@
click=
"addCurActuve"
/>
</div>
</div>
</div>
</template>
<
script
>
import
Map
from
"./commonMap"
;
import
{
UploadSelfFile
,
}
from
'../../api/common/common'
export
default
{
components
:{
Map
},
props
:{
itemData
:{
type
:
Object
},
index
:{
type
:
Number
,
default
:
1
}
},
watch
:{
itemMsg
:{
handler
(
val
){
this
.
$emit
(
"success"
,
val
)
},
deep
:
true
},
},
data
()
{
return
{
isShowMap
:
false
,
//是否显示地图弹窗
isDropdown
:
true
,
//显示下拉
itemMsg
:{
Title
:
""
,
//活动大标题
TripSort
:
0
,
//活动排序
ActivityPlanList
:[
//活动安排
{
TripSort
:
0
,
//排序
StartTime
:
""
,
//开始时间
ActivityDuration
:
""
,
//活动时长(单位:分钟)
LonLat
:
""
,
//活动地址经纬度
LocationName
:
""
,
//活动地址
TripTitle
:
""
,
//安排标题
TripContent
:
""
,
//内容
TripPicList
:[]
//图片
}
]
},
}
},
mounted
()
{
this
.
itemMsg
=
this
.
itemData
},
methods
:
{
goBack
(){
this
.
$router
.
go
(
-
1
)
},
taggleDown
(){
this
.
isDropdown
=!
this
.
isDropdown
},
uploadFile
(
files
,
index
)
{
UploadSelfFile
(
'activeImg'
,
files
.
file
,
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
itemMsg
.
ActivityPlanList
[
index
].
TripPicList
.
push
(
res
.
FileUrl
);
}
})
},
//删除图片
deleteItemImg
(
index
,
_index
){
this
.
itemMsg
.
ActivityPlanList
[
index
].
TripPicList
.
splice
(
_index
,
1
);
},
//添加当日活动
addCurActuve
(){
this
.
itemMsg
.
ActivityPlanList
.
push
({
TripSort
:
this
.
itemMsg
.
ActivityPlanList
.
length
,
//排序
StartTime
:
""
,
//开始时间
ActivityDuration
:
""
,
//活动时长(单位:分钟)
LonLat
:
""
,
//活动地址经纬度
LocationName
:
""
,
//活动地址
TripTitle
:
""
,
//安排标题
TripContent
:
""
,
//内容
TripPicList
:[]
//图片
})
},
delCurActuve
(
index
){
this
.
itemMsg
.
ActivityPlanList
.
splice
(
index
,
1
)
},
//得到地图信息
mapEvent
(
e
,
index
)
{
this
.
itemMsg
.
ActivityPlanList
[
index
].
LonLat
=
e
.
lat
+
","
+
e
.
long
;
this
.
itemMsg
.
ActivityPlanList
[
index
].
LocationName
=
e
.
address
;
this
.
isShowMap
=
false
;
},
getMapShow
()
{
this
.
isShowMap
=
true
;
},
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
.activeDetail-item
{
.up
{
width
:
700px
;
// height: 55px;
display
:
flex
;
align-items
:
center
;
margin-bottom
:
20px
;
.date
{
font-size
:
16px
;
font-family
:
PingFang
SC
;
font-weight
:
bold
;
color
:
#2961FE
;
padding-bottom
:
20px
;
display
:
flex
;
align-items
:
center
;
margin-right
:
20px
;
}
.icon
{
width
:
20px
;
height
:
20px
;
font-size
:
12px
;
margin-left
:
20px
;
padding
:
10px
;
background-color
:
#C9DBFF
;
border-radius
:
4px
;
color
:
#2961FE
;
display
:
flex
;
justify-content
:
center
;
align-items
:
center
;
}
.title
{
flex-grow
:
2
;
}
}
.down
{
width
:
640px
;
margin-left
:
61px
;
// height: 100px;
border-left
:
1px
dashed
#DCDCDC
;
.down-item
{
.item1
{
height
:
55px
;
display
:
flex
;
align-items
:
center
;
.circle
{
width
:
8px
;
height
:
8px
;
background-color
:
#2961FE
;
border-radius
:
50%
;
}
.line
{
width
:
20px
;
height
:
2px
;
background-color
:
#2961FE
;
}
.con
{
height
:
100%
;
background-color
:
#F2F2F2
;
border-radius
:
4px
;
flex-grow
:
2
;
// padding: 10px 0;
display
:
flex
;
.starttime
{
width
:
140px
;
margin-right
:
10px
;
}
}
}
.item-name
{
height
:
55px
;
display
:
flex
;
align-items
:
center
;
font-size
:
14px
;
font-family
:
PingFang
SC
;
color
:
#2D2D2D
;
padding-left
:
28px
;
.location
{
margin-left
:
15px
;
font-size
:
14px
;
font-weight
:
500
;
color
:
#2961FE
;
}
}
.active-con
{
padding-left
:
28px
;
}
}
}
}
.avatar-uploader
.el-upload
{
border-radius
:
6px
;
cursor
:
pointer
;
width
:
100%
;
height
:
100%
;
color
:
#8c939d
;
position
:
relative
;
overflow
:
hidden
;
}
.addDutyMain
{
display
:inline-block
;
width
:
118px
;
height
:
118px
;
font-size
:
70px
;
border
:
1px
dashed
#d9d9d9
;
line-height
:
120px
;
text-align
:
center
;
}
.ItemImgDiv
{
width
:
118px
;
height
:
118px
;
position
:
relative
;
margin
:
0
10px
10px
0
;
display
:inline-block
;
}
</
style
>
src/pages/activity/activeDetail.vue
View file @
8db64d34
...
...
@@ -3,6 +3,7 @@
display
:
flex
;
align-items
:
center
;
justify-content
:
space-between
;
margin-bottom
:
40px
;
}
.p_title
{
color
:
#000000
;
...
...
@@ -11,6 +12,9 @@
display
:
flex
;
align-items
:
center
;
}
.activeDetail
{
overflow-y
:
scroll
;
}
</
style
>
<
template
>
<div
class=
"page-body activeDetail"
>
...
...
@@ -19,127 +23,125 @@
<q-btn
color=
"accent"
size=
"sm"
class=
"q-mr-md"
label=
"返回"
@
click=
"goBack"
/>
<span
class=
"p_title"
>
活动详情
</span>
</div>
<q-btn
color=
"accent"
size=
"sm"
class=
"q-mr-md"
label=
"新增活动"
@
click=
""
/>
<div>
<q-btn
color=
"accent"
size=
"sm"
class=
"q-mr-md"
label=
"新增活动"
@
click=
"addActiveList"
/>
<q-btn
color=
"accent"
size=
"sm"
label=
"保存"
@
click=
"save"
/>
</div>
</div>
<div
class=
"page-content"
>
<div
class=
""
>
<div
v-for=
"(item,index) in ActivityTitle"
:key=
"item.id"
class=
"flex "
>
<DetailItem
:itemData=
"item"
:index=
"index+1"
@
success=
"getItemData($event,index)"
/>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"删除当前活动"
placement=
"top"
v-if=
"index>0"
>
<i
class=
"iconfont icon-img_delete_small q-ml-sm"
style=
"color: #2961FE"
@
click=
"delActiveList(index)"
></i>
</el-tooltip>
</div>
</div>
</div>
</
template
>
<
script
>
import
DetailItem
from
"../../components/activity/activeDetail-item"
export
default
{
meta
:
{
title
:
"活动详情"
},
components
:
{
DetailItem
},
data
()
{
return
{
data
:
[],
loading
:
true
,
msg
:{
Id
:
0
,
ActivityTitle
:[]
},
ActivityTitle
:[
{
Title
:
""
,
//活动大标题
TripSort
:
0
,
//活动排序
ActivityPlanList
:[
//活动安排
{
TripSort
:
0
,
//排序
StartTime
:
""
,
//开始时间
ActivityDuration
:
""
,
//活动时长(单位:分钟)
LonLat
:
""
,
//活动地址经纬度
LocationName
:
""
,
//活动地址
TripTitle
:
""
,
//安排标题
TripContent
:
""
,
//内容
TripPicList
:[]
//图片
}
]
}
],
item
:{
}
}
},
mounted
()
{
},
mounted
(){
if
(
this
.
$route
.
query
.
Id
){
this
.
msg
.
Id
=
this
.
$route
.
query
.
Id
}
},
methods
:
{
goBack
(){
this
.
$router
.
go
(
-
1
)
},
//获取活动类型下拉
getActiveTypeList
(){
this
.
apipostDS
(
"/api/Education/GetCommerceActivityTypeList"
,{},(
res
)
=>
{
if
(
res
.
data
.
resultCode
===
1
){
this
.
activityTypeList
=
res
.
data
.
data
;
this
.
activityTypeList
.
unshift
({
Id
:
-
1
,
TypeName
:
"不限"
})
addActiveList
(){
let
obj
=
{
Title
:
""
,
//活动大标题
TripSort
:
this
.
ActivityTitle
.
length
,
//活动排序
ActivityPlanList
:[
//活动安排
{
TripSort
:
0
,
//排序
StartTime
:
""
,
//开始时间
ActivityDuration
:
""
,
//活动时长(单位:分钟)
LonLat
:
""
,
//活动地址经纬度
LocationName
:
""
,
//活动地址
TripTitle
:
""
,
//安排标题
TripContent
:
""
,
//内容
TripPicList
:[]
//图片
}
})
},
getList
(){
this
.
loading
=
true
;
this
.
apipostDS
(
"/api/Education/GetActivityPage"
,
this
.
msg
,(
res
)
=>
{
this
.
loading
=
false
if
(
res
.
data
.
resultCode
===
1
){
this
.
data
=
res
.
data
.
data
.
pageData
;
this
.
pageCount
=
res
.
data
.
data
.
pageCount
;
}
})
},
delActive
(
item
){
let
that
=
this
;
that
.
Confirm
(
"是否删除?"
,
function
()
{
that
.
apipostDS
(
"/api/Education/RemoveActivity"
,
{
Id
:
item
.
Id
,
Status
:
1
},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
that
.
Success
(
res
.
data
.
message
);
that
.
getList
();
}
else
{
that
.
Error
(
res
.
data
.
message
);
}
},
);
})
},
//刷新页面
refreshPage
()
{
this
.
showForm
=
false
;
this
.
getList
();
},
//显示修改
editQuotation
(
item
)
{
this
.
showForm
=
true
;
if
(
item
)
{
this
.
typeObj
=
item
;
}
else
{
this
.
typeObj
=
{};
]
}
this
.
ActivityTitle
.
push
(
obj
)
},
//重新查询
resetSearch
()
{
this
.
msg
.
pageIndex
=
1
;
this
.
getList
();
delActiveList
(
index
){
this
.
ActivityTitle
.
splice
(
index
,
1
)
},
//翻页
changePage
(
val
)
{
this
.
msg
.
pageIndex
=
val
;
this
.
getList
()
getItemData
(
val
,
index
){
console
.
log
(
'119'
,
val
,
index
)
},
//关闭弹窗
closeruleset
()
{
this
.
showForm
=
false
;
//保存信息
save
()
{
this
.
msg
.
ActivityTitle
=
this
.
ActivityTitle
// this.$refs.Name.validate();
// this.$refs.StartTime.validate();
// this.$refs.EndTime.validate();
// this.$refs.SignStartTime.validate();
// this.$refs.SignEndTime.validate();
// if (!this.$refs.Name.hasError &&
// !this.$refs.StartTime.hasError &&
// !this.$refs.EndTime.hasError &&
// !this.$refs.SignStartTime.hasError &&
// !this.$refs.SignEndTime.hasError) {
this
.
apipostDS
(
"/api/Education/GetSetActivityPlan"
,
this
.
msg
,
(
res
)
=>
{
console
.
log
(
136
,
res
)
if
(
res
.
data
.
resultCode
===
1
)
{
this
.
Success
(
res
.
data
.
message
);
}
else
{
this
.
Error
(
res
.
data
.
message
);
}
})
// }
},
goUrl
(
url
,
item
,
type
=
0
){
if
(
type
===
1
){
this
.
$router
.
push
({
path
:
url
,
query
:{
name
:
item
.
ActivityName
}
})
}
else
{
this
.
$router
.
push
({
path
:
url
,
query
:{
Id
:
item
.
Id
}
})
}
}
}
}
...
...
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