Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
gk
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
micro_app
gk
Commits
cee3fd80
Commit
cee3fd80
authored
Jun 04, 2025
by
daniel
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix(cmpt): banner优化
parent
9ca4dd6e
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
749 additions
and
15 deletions
+749
-15
PartnerBanner.java
...va/com/dlbridge/jadp/plugins/cmpt/bean/PartnerBanner.java
+5
-1
BannerMapper.java
...m/dlbridge/jadp/plugins/cmpt/dao/mapper/BannerMapper.java
+2
-0
BannerMapper.xml
...om/dlbridge/jadp/plugins/cmpt/dao/mapper/BannerMapper.xml
+16
-4
BannerService.java
...com/dlbridge/jadp/plugins/cmpt/service/BannerService.java
+11
-3
BannerController.java
.../com/dlbridge/jadp/plugins/cmpt/web/BannerController.java
+28
-6
partnerBanner.jsp
src/main/webapp/WEB-INF/views/cmpt/partnerBanner.jsp
+679
-0
menu.jsp
src/main/webapp/WEB-INF/views/common/menu.jsp
+8
-1
No files found.
src/main/java/com/dlbridge/jadp/plugins/cmpt/bean/PartnerBanner.java
View file @
cee3fd80
...
@@ -13,7 +13,11 @@ public class PartnerBanner {
...
@@ -13,7 +13,11 @@ public class PartnerBanner {
private
String
description
;
private
String
description
;
private
String
imgUrl
;
private
String
imgUrl
;
private
String
outUrl
;
private
String
outUrl
;
@JsonIgnore
// 类型配置(1 网页 2 小程序(appId,path) 3 短连接(#小程序://) 4 页面(小程序) 5文档word,pdf 6 图片 png 7 打开定位)
private
String
type
;
// appId
private
String
appId
;
private
Integer
status
;
private
Integer
seq
;
private
Integer
seq
;
@JsonIgnore
@JsonIgnore
private
String
createDate
;
private
String
createDate
;
...
...
src/main/java/com/dlbridge/jadp/plugins/cmpt/dao/mapper/BannerMapper.java
View file @
cee3fd80
...
@@ -38,4 +38,6 @@ public interface BannerMapper {
...
@@ -38,4 +38,6 @@ public interface BannerMapper {
PartnerBanner
getPartnerBannerById
(
Integer
id
);
PartnerBanner
getPartnerBannerById
(
Integer
id
);
Partner
getPartnerIdByCmptId
(
Integer
cmptId
);
Partner
getPartnerIdByCmptId
(
Integer
cmptId
);
void
updatePartnerBanner
(
@Param
(
"banner"
)
PartnerBanner
banner
);
}
}
src/main/java/com/dlbridge/jadp/plugins/cmpt/dao/mapper/BannerMapper.xml
View file @
cee3fd80
...
@@ -42,16 +42,28 @@
...
@@ -42,16 +42,28 @@
</insert>
</insert>
<insert
id=
"insertPartnerBanner"
>
<insert
id=
"insertPartnerBanner"
>
insert into banner_partner(partner_id, name, description, img_url, out_url, create_date, seq)
insert into banner_partner(partner_id, name, description, img_url, out_url, create_date, seq
,type,app_id,status
)
values (#{banner.partnerId}, #{banner.name}, #{banner.description}, #{banner.imgUrl}, #{banner.outUrl}, now(),#{banner.seq})
values (#{banner.partnerId}, #{banner.name}, #{banner.description}, #{banner.imgUrl}, #{banner.outUrl}, now(),#{banner.seq}
,#{banner.type},#{banner.appId},#{banner.status}
)
</insert>
</insert>
<update
id=
"delPartnerBanner"
>
<update
id=
"delPartnerBanner"
>
update banner_partner set del_flag=1 where id=#{id}
update banner_partner set del_flag=1 where id=#{id}
</update>
</update>
<update
id=
"updatePartnerBanner"
>
update banner_partner
set name=#{banner.name},
description=#{banner.description},
img_url=#{banner.imgUrl},
out_url=#{banner.outUrl},
seq=#{banner.seq},
type=#{banner.type},
app_id=#{banner.appId},
status=#{banner.status}
where id=#{banner.id}
</update>
<select
id=
"queryAllPartnerBanner"
resultType=
"com.dlbridge.jadp.plugins.cmpt.bean.PartnerBanner"
>
<select
id=
"queryAllPartnerBanner"
resultType=
"com.dlbridge.jadp.plugins.cmpt.bean.PartnerBanner"
>
select id, partner_id partnerId, seq, name, description, img_url imgUrl, out_url outUrl
select id, partner_id partnerId, seq, name, description, img_url imgUrl, out_url outUrl
,app_id appId,type,status
from banner_partner
from banner_partner
where partner_id = #{partnerId}
where partner_id = #{partnerId}
and del_flag = 0
and del_flag = 0
...
@@ -64,7 +76,7 @@
...
@@ -64,7 +76,7 @@
</select>
</select>
<select
id=
"getPartnerBannerById"
resultType=
"com.dlbridge.jadp.plugins.cmpt.bean.PartnerBanner"
>
<select
id=
"getPartnerBannerById"
resultType=
"com.dlbridge.jadp.plugins.cmpt.bean.PartnerBanner"
>
select id, partner_id partnerId, seq, name, description, img_url imgUrl, out_url outUrl
select id, partner_id partnerId, seq, name, description, img_url imgUrl, out_url outUrl
,app_id appId,type,status
from banner_partner
from banner_partner
where id = #{id} and del_flag = 0
where id = #{id} and del_flag = 0
</select>
</select>
...
...
src/main/java/com/dlbridge/jadp/plugins/cmpt/service/BannerService.java
View file @
cee3fd80
...
@@ -76,10 +76,14 @@ public class BannerService {
...
@@ -76,10 +76,14 @@ public class BannerService {
if
(
partner
!=
null
&&
StringUtils
.
isNotBlank
(
partner
.
getPartnerId
())){
if
(
partner
!=
null
&&
StringUtils
.
isNotBlank
(
partner
.
getPartnerId
())){
partnerId
=
partner
.
getPartnerId
();
partnerId
=
partner
.
getPartnerId
();
}
}
Integer
maxSeq
=
bannerMapper
.
getMaxSeqPartnerBanner
(
partnerId
);
//
Integer maxSeq = bannerMapper.getMaxSeqPartnerBanner(partnerId);
banner
.
setSeq
(
maxSeq
==
null
?
1
:
++
maxSeq
);
//
banner.setSeq(maxSeq == null ? 1 : ++maxSeq);
banner
.
setPartnerId
(
partnerId
);
banner
.
setPartnerId
(
partnerId
);
bannerMapper
.
insertPartnerBanner
(
banner
);
if
(
banner
.
getId
()
==
null
){
bannerMapper
.
insertPartnerBanner
(
banner
);
}
else
{
bannerMapper
.
updatePartnerBanner
(
banner
);
}
return
bannerMapper
.
getPartnerBannerById
(
banner
.
getId
());
return
bannerMapper
.
getPartnerBannerById
(
banner
.
getId
());
}
}
...
@@ -90,4 +94,8 @@ public class BannerService {
...
@@ -90,4 +94,8 @@ public class BannerService {
public
void
delPartnerBanner
(
Integer
id
)
{
public
void
delPartnerBanner
(
Integer
id
)
{
bannerMapper
.
delPartnerBanner
(
id
);
bannerMapper
.
delPartnerBanner
(
id
);
}
}
public
List
<
PartnerBanner
>
queryAllPartnerBannerByPartnerId
(
String
partnerId
)
{
return
bannerMapper
.
queryAllPartnerBanner
(
partnerId
);
}
}
}
src/main/java/com/dlbridge/jadp/plugins/cmpt/web/BannerController.java
View file @
cee3fd80
...
@@ -95,25 +95,47 @@ public class BannerController {
...
@@ -95,25 +95,47 @@ public class BannerController {
@RequestMapping
(
"partner/{cmptId}"
)
@RequestMapping
(
"partner/{cmptId}"
)
@PageView
@PageView
public
ModelAndView
queryAllPartnerBanner
(
@PathVariable
(
"cmptId"
)
Integer
cmptId
,
ModelAndView
mv
)
{
public
ModelAndView
queryAllPartnerBanner
(
@PathVariable
(
"cmptId"
)
Integer
cmptId
,
ModelAndView
mv
)
{
List
<
PartnerBanner
>
banners
=
bannerService
.
queryAllPartnerBanner
(
cmptId
);
//
List<PartnerBanner> banners = bannerService.queryAllPartnerBanner(cmptId);
Cmpt
cmpt
=
cmptService
.
queryCmptBycmptId
(
cmptId
);
Cmpt
cmpt
=
cmptService
.
queryCmptBycmptId
(
cmptId
);
mv
.
addObject
(
"cmpt"
,
cmpt
);
mv
.
addObject
(
"cmpt"
,
cmpt
);
mv
.
addObject
(
"banners"
,
banners
);
//
mv.addObject("banners", banners);
mv
.
setViewName
(
"cmpt/
b
anner"
);
mv
.
setViewName
(
"cmpt/
partnerB
anner"
);
return
mv
;
return
mv
;
}
}
/**
* 查询组委会轮播图列表
* @param cmptId
* @return
*/
@RequestMapping
(
"partner/list/{cmptId}"
)
@ResponseBody
public
Result
queryAllPartnerBanner
(
@PathVariable
(
"cmptId"
)
Integer
cmptId
)
{
List
<
PartnerBanner
>
banners
=
bannerService
.
queryAllPartnerBanner
(
cmptId
);
return
Result
.
success
().
setContent
(
banners
);
}
/**
* 查询组委会轮播图列表
* @param partnerId
* @return
*/
@RequestMapping
(
"partner/query/{partnerId}"
)
@ResponseBody
public
Result
queryAllPartnerBannerByPartnerId
(
@PathVariable
(
"partnerId"
)
String
partnerId
)
{
List
<
PartnerBanner
>
banners
=
bannerService
.
queryAllPartnerBannerByPartnerId
(
partnerId
);
return
Result
.
success
().
setContent
(
banners
);
}
/**
/**
* 组委会轮播图保存
* 组委会轮播图保存
* @param banner
* @param banner
* @param mv
* @return
* @return
*/
*/
@RequestMapping
(
"savePartnerBanner"
)
@RequestMapping
(
"savePartnerBanner"
)
@ResponseBody
@ResponseBody
public
Result
savePartnerBanner
(
@RequestBody
PartnerBanner
banner
,
ModelAndView
mv
)
{
public
Result
savePartnerBanner
(
@RequestBody
PartnerBanner
banner
)
{
if
(
banner
.
getCmptId
()
==
null
){
if
(
banner
.
getCmptId
()
==
null
){
return
com
.
neusoft
.
www
.
utils
.
web
.
Result
.
fail
().
setMsg
(
"赛事ID不能为空!"
).
setCode
(
403
);
return
Result
.
fail
().
setMsg
(
"赛事ID不能为空!"
).
setCode
(
403
);
}
}
banner
=
bannerService
.
saveOrUpdatePartnerBanner
(
banner
);
banner
=
bannerService
.
saveOrUpdatePartnerBanner
(
banner
);
return
Result
.
success
().
setContent
(
banner
);
return
Result
.
success
().
setContent
(
banner
);
...
...
src/main/webapp/WEB-INF/views/cmpt/partnerBanner.jsp
0 → 100644
View file @
cee3fd80
<%@ page
language=
"java"
contentType=
"text/html; charset=utf-8"
pageEncoding=
"utf-8"
%>
<%@ include
file=
"/WEB-INF/views/include/taglib.jsp"
%>
<%@ taglib
prefix=
"fn"
uri=
"http://java.sun.com/jsp/jstl/functions"
%>
<%@ taglib
prefix=
"c"
uri=
"http://java.sun.com/jsp/jstl/core"
%>
<%@ taglib
prefix=
"fmt"
uri=
"http://java.sun.com/jsp/jstl/fmt"
%>
<!doctype html>
<html>
<head>
<title>
轮播图
</title>
<!-- Bootstrap CSS-->
<link
rel=
"stylesheet"
href=
"${ctxStatic}/newdermon/vendor/bootstrap/css/bootstrap.min.css"
>
<!-- Font Awesome CSS-->
<link
rel=
"stylesheet"
href=
"${ctxStatic}/newdermon/vendor/font-awesome/css/font-awesome.min.css"
>
<!-- Fontastic Custom icon font-->
<link
rel=
"stylesheet"
href=
"${ctxStatic}/newdermon/css/fontastic.css"
>
<!-- Google fonts - Poppins -->
<link
rel=
"stylesheet"
href=
"${ctxStatic}/newdermon/css/font-css.css"
>
<!-- theme stylesheet-->
<link
rel=
"stylesheet"
href=
"${ctxStatic}/newdermon/css/style.default.css?v=
<%=
System
.
currentTimeMillis
()
%>
"
id=
"theme-stylesheet"
>
<!-- Custom stylesheet - for your changes-->
<link
rel=
"stylesheet"
href=
"${ctxStatic}/newdermon/css/custom.css?v=
<%=
System
.
currentTimeMillis
()
%>
"
>
<link
rel=
"stylesheet"
href=
"${ctxStatic}/newdermon/css/juery-ui-1.12.css"
>
<!-- Favicon-->
<link
rel=
"shortcut icon"
href=
"https://img.geexek.com/files/home/favicon.ico"
>
<link
rel=
"stylesheet"
href=
"${ctxStatic}/newdermon/css/custom.css?v=
<%=
System
.
currentTimeMillis
()
%>
"
>
<link
rel=
"stylesheet"
href=
"${ctxStatic}/newdermon/css/main.css?v=
<%=
System
.
currentTimeMillis
()
%>
"
>
<link
rel=
"stylesheet"
href=
"${ctxStatic}/cmpt/setting.css?v=
<%=
System
.
currentTimeMillis
()
%>
"
>
<link
rel=
"stylesheet"
href=
"${ctxStatic}/leaflet/css/leaflet.css?v=
<%=
System
.
currentTimeMillis
()
%>
"
/>
<link
rel=
"stylesheet"
href=
"${ctxStatic}/leaflet/css/leaflet_label.css"
/>
<script
src=
"${ctxStatic}/My97DatePicker/WdatePicker.js"
type=
"text/javascript"
></script>
<script
src=
"${ctxStatic}/newdermon/vendor/jquery/jquery.min.js"
></script>
<script
type=
"text/javascript"
charset=
"utf-8"
src=
"${ctxStatic}/layer/layer.js"
></script>
<link
rel=
"stylesheet"
href=
"${ctxStatic}/layer/skin/layer.css"
>
<script
src=
"https://enroll.geexek.com/js/ueditor/ueditor.config-zs.js?v=
<%=
System
.
currentTimeMillis
()
%>
"
></script>
<script
src=
"https://enroll.geexek.com/js/ueditor/ueditor.all.js?v=
<%=
System
.
currentTimeMillis
()
%>
"
></script>
<link
rel=
"stylesheet"
href=
"/static/cmpt/score.css?
<%=
System
.
currentTimeMillis
()
%>
"
>
<style>
.action
{
display
:
flex
;
flex-direction
:
row
;
align-items
:
center
;
justify-content
:
space-around
;
}
.action
div
{
display
:
flex
;
flex-direction
:
row
;
align-items
:
center
;
justify-content
:
center
;
user-select
:
none
;
}
.submit
{
display
:
inline-block
;
width
:
120px
;
height
:
45px
;
text-align
:
center
;
line-height
:
45px
;
color
:
white
;
background
:
#ce3939
;
border-radius
:
4px
;
letter-spacing
:
1px
;
cursor
:
pointer
;
font-size
:
16px
;
}
.cancel
{
width
:
120px
;
height
:
45px
;
background
:
#949494
;
border-radius
:
4px
;
font-size
:
16px
;
color
:
#FFFFFF
;
line-height
:
45px
;
text-align
:
center
;
margin-right
:
20px
;
}
.input
{
width
:
100%
;
height
:
40px
!important
;
line-height
:
40px
!important
;
;
border
:
2px
solid
#F4F4F4
;
border-radius
:
4px
;
margin-right
:
30px
;
margin-left
:
0px
;
padding-left
:
12px
;
background
:
rgba
(
247
,
247
,
247
,
1
);
border-radius
:
4px
;
border
:
1px
solid
rgba
(
229
,
229
,
229
,
1
);
}
.title
{
font-size
:
24px
;
font-weight
:
500
;
color
:
rgba
(
51
,
51
,
51
,
1
);
}
.title-new
{
font-size
:
20px
;
color
:
rgba
(
51
,
51
,
51
,
1
);
margin-right
:
15px
;
margin-bottom
:
15px
;
}
.section
{
display
:
flex
;
background
:
rgba
(
255
,
255
,
255
,
1
);
border-radius
:
4px
;
flex-direction
:
column
;
}
.func
{
display
:
flex
;
flex-direction
:
column
;
/* height: 90px; */
padding
:
5px
0
;
}
.tip
{
font-size
:
16px
;
color
:
rgba
(
51
,
51
,
51
,
1
);
position
:
absolute
;
right
:
45px
;
top
:
10px
;
}
.saveDiv
{
display
:
flex
;
justify-content
:
flex-end
;
margin
:
0
20px
;
padding-top
:
10px
;
}
label
{
/* width: auto; */
/* width: 200px; */
display
:
flex
;
flex-direction
:
row
;
align-items
:
center
;
}
.label-box
{
display
:
flex
;
flex-direction
:
row
;
align-items
:
center
;
}
.dialog
input
{
width
:
100%
!important
;
}
.dialog
label
input
{
width
:
20px
!important
;
height
:
20px
!important
;
margin
:
0
10px
!important
;
}
.cover
{
width
:
100%
;
height
:
100px
;
background
:
rgba
(
247
,
247
,
247
,
1
);
border-radius
:
4px
;
border
:
1px
solid
rgba
(
238
,
238
,
238
,
1
);
display
:
flex
;
justify-content
:
center
;
align-items
:
center
;
}
.cover-img
{
width
:
300px
;
cursor
:
pointer
;
background-repeat
:
no-repeat
;
background-position
:
center
;
background-size
:
cover
;
height
:
300px
;
}
.icon-cover
{
width
:
34px
;
height
:
34px
;
background-image
:
url("/static/images/icon_cover.png")
;
background-size
:
100%
;
background-repeat
:
no-repeat
;
}
.section
{
width
:
100%
!important
;
display
:
flex
;
flex-direction
:
column
;
}
.section-box
{
width
:
100%
!important
;
display
:
flex
;
flex-direction
:
row
;
align-items
:
center
;
}
.rule-field
tbody
tr
td
:first-child
{
padding-left
:
0
!important
;
height
:
auto
!important
;
}
tbody
tr
td
{
font-size
:
15px
!important
;
}
input
[
type
=
checkbox
]
::before
{
border
:
none
!important
;
background
:
none
!important
;
}
input
[
type
=
checkbox
]
:checked::before
{
border
:
none
!important
;
background
:
none
!important
;
}
input
[
type
=
checkbox
]
{
top
:
0
;
left
:
0
;
}
</style>
</head>
<body>
<jsp:include
page=
"../common/header.jsp"
></jsp:include>
<div
class=
"page-content d-flex align-items-stretch main-body"
>
<jsp:include
page=
"../common/menu.jsp"
></jsp:include>
<div
class=
"rght"
id=
"partnerBanner"
>
<div
class=
"section"
>
<div>
<h3
class=
"title"
>
banner
</h3>
<div
class=
"add-btn"
@
click=
"addBanner"
>
<span>
+
</span>
<span>
添加
</span>
</div>
</div>
</div>
<div
style=
"margin-top: -10px;margin-bottom: 50px"
>
<table
style=
"width: 100%"
class=
"rule-field"
>
<colgroup>
<col
style=
"width:15%;"
>
<col
style=
"width:35%;"
>
<col
style=
"width:10%;"
>
<col
style=
"width:10%;"
>
<col
style=
"width:10%;"
>
<col
style=
"width:20%;"
>
</colgroup>
<thead>
<tr>
<th
style=
"text-align: center"
>
封面
</th>
<th
style=
"text-align: left"
>
名称
</th>
<th
style=
"text-align: center"
>
类型
</th>
<th
style=
"text-align: center"
>
状态
</th>
<th
style=
"text-align: center"
>
排序
</th>
<th
style=
"text-align: center"
>
操作
</th>
</tr>
</thead>
<tbody>
<tr
v-if=
""
v-for=
"item in list"
:data-id=
"item.id"
>
<td
style=
"text-align: center"
>
<img
:src=
"item.imgUrl"
style=
"width:80px;height:80px;object-fit:cover;"
/>
</td>
<td
class=
"name"
style=
"text-align: left;"
>
<span
v-text=
"item.name"
></span>
</td>
<td
style=
"text-align: center"
>
<span
v-if=
"item.type"
v-text=
"typeDesc[item.type].label"
></span>
<span
v-else
>
未设置
</span>
</td>
<td
style=
"text-align: center"
>
<span
class=
"badge badge-pill"
:class=
"[item.status==1?'badge-success':'badge-danger']"
v-text=
"statusType[item.status]"
></span>
</td>
<td
class=
"name"
style=
"text-align: center;"
>
<span
v-text=
"item.seq"
></span>
</td>
<td
style=
"text-align: center"
>
<div
class=
"action"
>
<div
class=
"opt edit.opt"
@
click=
"showEdit(item)"
>
<span
class=
"icon-edit"
></span>
<span
class=
"edit"
>
编辑
</span>
</div>
<div
class=
"opt del"
@
click=
"delBanner(item)"
>
<span
class=
"icon-del"
></span>
<span
class=
"del"
>
删除
</span>
</div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<div
class=
"dialog"
v-show=
"dialog"
style=
"width:auto;height: 80vh; z-index: 99;display: flex;flex-direction: column;left: 50%;
transform: translateX(-50%);margin-left:0;"
>
<div>
<span
class=
"title"
style=
"margin-bottom: 10px; color: #CE3939"
>
{{title}}
</span>
</div>
<div
style=
"display: flex;flex-direction: column;flex:1;overflow-y: auto;"
>
<div
class=
"func"
>
<div>
<span
class=
"title-new"
>
名称
</span>
</div>
<div>
<input
class=
"input"
type=
"text"
v-model=
"service.name"
placeholder=
"请输入banner名称"
>
</div>
</div>
<!-- 类型 (type) -->
<div
class=
"func"
>
<span
class=
"title-new"
>
跳转类型
</span>
<div
class=
"label-box"
>
<label
v-for=
"item in typeOptions"
:key=
"item.value"
>
<input
type=
"radio"
v-model=
"service.type"
:value=
"item.value"
>
{{item.name}}
</label>
</div>
</div>
<div
class=
"func"
v-if=
"service.type == 2"
>
<span
class=
"title-new"
>
appId
</span>
<div>
<input
class=
"input"
type=
"text"
v-model=
"service.appId"
placeholder=
"请输入小程序appId"
>
</div>
</div>
<div
class=
"func"
>
<span
class=
"title-new"
>
{{typeDesc[service.type].label}}
</span>
<div>
<input
class=
"input"
type=
"text"
v-model=
"service.outUrl"
:placeholder=
"typeDesc[service.type].placeholder"
>
</div>
</div>
<!-- 待定 -->
<!-- <div class="func" v-if="service.type==7">
<span class="title-new">地址</span>
<div>
<input class="input" type="text" v-model="service.address"
placeholder="请输入地址">
</div>
</div>
<div class="func" v-if="service.type==7">
<span class="title-new">经度</span>
<div>
<input class="input" type="number" v-model="service.lng"
placeholder="请输入经度(如:106.639824000000000)">
</div>
</div>
<div class="func" v-if="service.type==7">
<span class="title-new">纬度</span>
<div>
<input class="input" type="number" v-model="service.lat"
placeholder="请输入纬度(如:26.672005000000000)">
</div>
</div> -->
<div
class=
"func"
>
<span
class=
"title-new"
>
banner图
</span>
<span
style=
"font-size: 16px;color: #ce3939;margin:10px 0;"
>
<span
style=
"font-size: 12px;display: inline-block;border-radius: 50%;height: 18px;width: 18px;background: #ce3939;color: white;text-align: center;"
>
注
</span>
<span
style=
"display: inline"
>
建议分辨率1000*800
</span>
</span>
<div>
<label
for=
"file"
>
<div
v-if=
"!service.imgUrl"
class=
"cover"
>
<span
class=
"icon-cover"
></span>
</div>
<img
v-else
class=
"cover cover-img"
:src=
"service.imgUrl"
/>
</label>
<input
id=
"file"
type=
"file"
style=
"display: none"
@
change=
"uploadFile"
>
</div>
</div>
<div
class=
"func"
>
<span
class=
"title-new"
>
描述
</span>
<div
id=
"container"
></div>
</div>
<div
class=
"func"
>
<span
class=
"title-new"
>
排序
</span>
<div>
<input
class=
"input"
type=
"number"
v-model=
"service.seq"
placeholder=
"请输入排序"
>
</div>
</div>
<div
class=
"func"
>
<span
class=
"title-new"
>
状态
</span>
<div
class=
"label-box"
>
<label>
<input
type=
"radio"
v-model=
"service.status"
value=
"0"
>
禁用
</label>
<label>
<input
type=
"radio"
v-model=
"service.status"
value=
"1"
>
发布
</label>
</div>
</div>
</div>
<div
class=
"saveDiv"
>
<span
@
click=
"cancel"
class=
"cancel"
>
取消
</span>
<span
@
click=
"submit"
class=
"submit"
>
保存
</span>
</div>
</div>
<div
v-if=
"dialog"
style=
"position: fixed;height: 100%;width: 100%;background: black;z-index: 10;opacity: 0.5;top:0px;left:0px"
>
</div>
</div>
<script
src=
"${ctxStatic}/vue/vue.js"
></script>
<script>
var
app
=
new
Vue
({
el
:
'#partnerBanner'
,
data
:
{
editor
:
null
,
list
:
[],
dialog
:
false
,
title
:
'新增Banner'
,
service
:
{
id
:
null
,
cmptId
:
getCId
(),
// 赛事id
type
:
4
,
// 类型配置(1 网页 2 小程序(appId,path) 3 短链接(#小程序://) 4 页面(小程序) 5文档word,pdf 6 图片 png 7 定位)
name
:
null
,
// 标题
description
:
null
,
// 描述
seq
:
100
,
// 排序
imgUrl
:
null
,
// 图片地址
outUrl
:
null
,
// 图片地址
status
:
1
,
// 状态(0:禁用 1:发布)
appId
:
null
,
// 小程序appid
},
// 子类目 类型配置(1 网页 2 小程序(appId,path) 3 短链接(#小程序://) 4 页面(小程序) 5文档word,pdf 6 图片 png)
typeDesc
:
{
1
:
{
label
:
'网页'
,
placeholder
:
'请输入网页地址'
,
},
2
:
{
label
:
'小程序'
,
placeholder
:
'请输入小程序地址'
,
},
3
:
{
label
:
'短链接'
,
placeholder
:
'请输入短链接地址'
,
},
4
:
{
label
:
'页面'
,
placeholder
:
'请输入页面地址'
,
},
5
:
{
label
:
'文档'
,
placeholder
:
'请输入文档地址'
,
},
6
:
{
label
:
'图片'
,
placeholder
:
'请输入图片地址'
,
},
7
:
{
label
:
'地图'
,
placeholder
:
'请输入地址和经纬度'
,
}
},
typeOptions
:
[
{
name
:
'H5'
,
value
:
1
,
},
{
name
:
'小程序'
,
value
:
2
,
},
{
name
:
'短链接'
,
value
:
3
,
},
{
name
:
'内部页面'
,
value
:
4
,
},
{
name
:
'文档'
,
value
:
5
,
},
{
name
:
'图片'
,
value
:
6
,
},
{
name
:
'地图'
,
value
:
7
,
}
],
statusType
:
{
0
:
'禁用'
,
1
:
'发布'
}
},
mounted
()
{
const
editor
=
UE
.
getEditor
(
'container'
);
this
.
editor
=
editor
this
.
queryAll
()
},
methods
:
{
// 展示dialog
addBanner
()
{
this
.
dialog
=
!
this
.
dialog
;
this
.
resetForm
();
},
// 重置表单
resetForm
()
{
this
.
service
=
{
id
:
null
,
cmptId
:
getCId
(),
// 赛事id
type
:
4
,
// 类型配置(1 网页 2 小程序(appId,path) 3 短链接(#小程序://) 4 页面(小程序) 5文档word,pdf 6 图片 png 7 定位)
name
:
null
,
// 标题
description
:
null
,
// 描述
seq
:
100
,
// 排序
imgUrl
:
null
,
// 图片地址
outUrl
:
null
,
// 图片地址
status
:
1
,
// 状态(0:禁用 1:发布)
appId
:
null
,
// 小程序appid
};
},
// 编辑
showEdit
(
data
)
{
this
.
resetForm
();
console
.
log
(
this
.
service
)
this
.
service
=
{
...
data
,
cmptId
:
getCId
(),
// 赛事id
};
console
.
log
(
this
.
service
)
this
.
editor
.
setContent
(
data
.
description
)
this
.
dialog
=
!
this
.
dialog
;
},
// 删除
delBanner
(
data
)
{
layer
.
confirm
(
"确认要删除吗?"
,
function
()
{
$
.
ajax
({
url
:
"/gk/banner/delPartnerBanner/"
+
data
.
id
,
type
:
'post'
,
contentType
:
'application/json'
,
beforeSend
:
()
=>
{
layer
.
load
()
},
success
:
()
=>
{
layer
.
msg
(
'删除成功!'
);
},
complete
:
()
=>
{
layer
.
closeAll
()
app
.
queryAll
();
}
});
});
},
// 保存
submit
()
{
const
description
=
this
.
editor
.
getContent
();
const
service
=
{
...
this
.
service
,
description
}
// 假设 service 对象已经定义并初始化
if
(
!
service
.
name
)
{
layer
.
msg
(
"标题不能为空!"
,
{
icon
:
5
,
duration
:
1500
});
return
;
}
if
(
!
service
.
imgUrl
)
{
layer
.
msg
(
"banner图不能为空!"
,
{
icon
:
5
,
duration
:
1500
});
return
;
}
const
url
=
"/gk/banner/savePartnerBanner"
$
.
ajax
({
url
:
url
,
data
:
JSON
.
stringify
(
service
),
// 将 data 转换为 JSON 字符串
type
:
'post'
,
contentType
:
'application/json'
,
beforeSend
:
()
=>
{
layer
.
load
()
},
success
:
(
data
)
=>
{
if
(
data
.
code
==
200
)
{
layer
.
msg
(
'保存成功!'
);
app
.
$data
.
dialog
=
false
;
app
.
queryAll
();
}
else
{
layer
.
msg
(
data
.
msg
);
}
},
complete
:
()
=>
{
layer
.
closeAll
()
}
})
},
// 返回
cancel
()
{
this
.
dialog
=
false
;
},
// 查询所有
queryAll
()
{
if
(
!
getCId
())
return
const
url
=
"/gk/banner/partner/list/"
+
getCId
()
$
.
ajax
({
type
:
'POST'
,
contentType
:
'application/json'
,
url
,
beforeSend
:
()
=>
{
layer
.
load
()
},
complete
:
()
=>
{
layer
.
closeAll
()
},
success
:
(
data
)
=>
{
this
.
list
=
data
.
content
}
})
},
//文件上传处理
uploadFile
(
obj
)
{
logoFile
=
obj
.
target
.
files
[
0
];
if
(
logoFile
.
type
&&
logoFile
.
type
.
indexOf
(
"image"
)
==
-
1
)
{
return
layer
.
msg
(
'请上传图片'
,
{
icon
:
5
})
}
var
reads
=
new
FileReader
();
reads
.
readAsDataURL
(
logoFile
);
reads
.
onload
=
function
()
{
//将处理完的图片文件上传到阿里云服务器
//上传LOGO图片
var
formData
=
new
FormData
();
formData
.
append
(
"uploadImg"
,
logoFile
);
$
.
ajax
({
url
:
'https://event.geexek.com/upload/file.do'
,
/*接口域名地址*/
type
:
'post'
,
data
:
formData
,
contentType
:
false
,
processData
:
false
,
success
:
function
(
res
)
{
if
(
res
.
code
==
"1"
)
{
layer
.
msg
(
'上传成功'
,
{
icon
:
1
,
time
:
1500
});
app
.
$data
.
service
.
imgUrl
=
res
.
result
}
},
beforeSend
:
()
=>
{
layer
.
load
()
},
complete
:
()
=>
{
layer
.
closeAll
()
},
})
};
},
}
});
</script>
</body>
</html>
\ No newline at end of file
src/main/webapp/WEB-INF/views/common/menu.jsp
View file @
cee3fd80
...
@@ -341,6 +341,13 @@
...
@@ -341,6 +341,13 @@
<span
class=
"menu-txt"
>
分类管理
</span>
<span
class=
"menu-txt"
>
分类管理
</span>
</a>
</a>
</li>
</li>
<li
class=
"parnterBanner menu-sub-item"
>
<a
href=
"/gk/banner/partner/${cmpt.cmptId}?uId=${uId}&cId=${cId}×tamp=${timestamp}&sign=${sign}"
>
<span
class=
"left-arrow"
></span>
<span
class=
"menu-txt"
>
轮播图管理
</span>
</a>
</li>
</ul>
</ul>
</li>
</li>
</ul>
</ul>
...
@@ -403,7 +410,7 @@
...
@@ -403,7 +410,7 @@
var
classes
=
[
'cmptSetting'
,
'nameList'
,
'manual'
,
'contact'
,
'manage'
,
var
classes
=
[
'cmptSetting'
,
'nameList'
,
'manual'
,
'contact'
,
'manage'
,
'route'
,
'road'
,
'equip'
,
'photo'
,
'news'
,
'cert'
,
'data'
,
'route'
,
'road'
,
'equip'
,
'photo'
,
'news'
,
'cert'
,
'data'
,
'banner'
,
'score'
,
'auto'
,
'scan'
,
'review'
,
'customer'
,
'rule'
,
'banner'
,
'score'
,
'auto'
,
'scan'
,
'review'
,
'customer'
,
'rule'
,
'outter-link'
,
'sure-letter'
,
'rankSetting'
,
'service'
,
"module"
];
'outter-link'
,
'sure-letter'
,
'rankSetting'
,
'service'
,
"module"
,
"parnterBanner"
];
let
url
=
document
.
location
.
href
;
let
url
=
document
.
location
.
href
;
var
done
=
false
;
var
done
=
false
;
for
(
var
i
in
classes
)
{
for
(
var
i
in
classes
)
{
...
...
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