Commit 52119ae9 authored by yangshuxing's avatar yangshuxing

添加菜单、外部链接、确认函

parent 88965029
......@@ -19,9 +19,18 @@ public class Func {
"4:参赛手册 5:我的照片 6:联系检录" +
"7:路线下载8:强制装备9:路线导入" +
"10:我的成绩", allowableValues = "1~12")
private String nameWeb;
private String appId;
private String url;
private Integer type;
@ApiModelProperty(value = "可见性")
private Integer visibility;
@ApiModelProperty(value = "序列")
private Integer seq;
......
package com.dlbridge.jadp.plugins.cmpt.dao.mapper;
import java.util.List;
import java.util.Map;
import com.dlbridge.jadp.plugins.cmpt.bean.CmptSettingTemplate;
import com.dlbridge.jadp.plugins.cmpt.bean.Func;
import com.dlbridge.jadp.plugins.cmpt.bean.SettingTemplate;
import com.dlbridge.jadp.plugins.cmpt.dao.model.CmptSetting;
import org.apache.ibatis.annotations.Param;
import com.dlbridge.jadp.plugins.cmpt.dao.model.CmptSetting;
import java.util.List;
import java.util.Map;
/**
* 赛事活动接口
......@@ -21,7 +20,7 @@ public interface CmptSettingMapper {
List<Map<String, Object>> queryHomePageSettingByCmptId(@Param(value = "cmptId") String cmptId);
public void updateById(CmptSetting cmptSetting);
void updateById(CmptSetting cmptSetting);
List<Func> queryFuncs(int cmpId);
......@@ -48,4 +47,8 @@ public interface CmptSettingMapper {
* @return
*/
int getCmptSettingsVisibilityByCmptIdAndType(int cmptId,int type);
Func getCmptSettingsByCmptIdAndType(@Param("cmptId") int cmptId,@Param("type") int type);
void update(@Param("func") Func func);
}
......@@ -56,6 +56,7 @@
id,
cmptid,
name,
name_web,
type,
status,
visibility,
......@@ -67,6 +68,7 @@
#{id},
#{cmptId},
#{name},
#{name},
#{type},
#{status},
#{visibility},
......@@ -78,20 +80,25 @@
</insert>
<update id="update">
UPDATE gk_cmptsetting SET
id = #{id},
cmptid = #{cmptId},
name = #{name},
type = #{type},
status = #{status},
visibility = #{visibility},
seq = #{seq},
create_by = #{createBy},
create_date = #{createDate},
update_by = #{updateBy},
update_date = #{updateDate},
del_flag = #{delFlag}
WHERE id = #{id}
UPDATE gk_cmptsetting
<set>
<if test="func.nameWeb != null">
name_web = #{func.nameWeb},
</if>
<if test="func.seq != null">
seq = #{func.seq},
</if>
<if test="func.visibility != null">
visibility = #{func.visibility},
</if>
<if test="func.appId != null">
app_id = #{func.appId},
</if>
<if test="func.url != null">
url = #{func.url}
</if>
</set>
WHERE id = #{func.id}
</update>
......@@ -113,7 +120,7 @@
</update>
<select id="queryFuncs" resultType="com.dlbridge.jadp.plugins.cmpt.bean.Func">
select id,cmptid cmptId,name,type,visibility,seq
select id,cmptid cmptId,name,type,visibility,seq,app_id appId,url,name_web nameWeb
from gk_cmptsetting
where cmptid = #{cmptId} and visibility=1 and del_flag=0 and status>0
order by seq
......@@ -121,7 +128,7 @@
</select>
<select id="queryAllFuncs" resultType="com.dlbridge.jadp.plugins.cmpt.bean.Func">
select id,cmptid cmptId,name,type,visibility,seq
select id,cmptid cmptId,name,type,visibility,seq,app_id appId,url,name_web nameWeb
from gk_cmptsetting
where cmptid = #{cmptId} and visibility=1 and del_flag=0 and status=1
order by seq
......@@ -134,8 +141,8 @@
</update>
<insert id="initCmptSettings">
insert into gk_cmptsetting (id,cmptid,name, type,visibility,status,style,seq,create_date)
select MD5(UUID()),#{cmptId},name, type,visibility,status,style,seq,now() from gk_cmptsetting_template
insert into gk_cmptsetting (id,cmptid,name,name_web, type,visibility,status,style,seq,create_date)
select MD5(UUID()),#{cmptId},name,name, type,visibility,status,style,seq,now() from gk_cmptsetting_template
</insert>
<select id="getCommonEnrollCmptId" resultType="java.lang.Integer">
......@@ -167,5 +174,10 @@
WHERE cmptid = #{cmptId} and type=#{type} and del_flag=0 limit 1
</select>
<select id="getCmptSettingsByCmptIdAndType" resultType="com.dlbridge.jadp.plugins.cmpt.bean.Func">
select id,cmptid cmptId,name,type,visibility,seq,app_id appId,url,name_web nameWeb
from gk_cmptsetting
where cmptid = #{cmptId} and type=#{type}
limit 1
</select>
</mapper>
\ No newline at end of file
package com.dlbridge.jadp.plugins.cmpt.dao.model;
import com.dlbridge.jadp.plugins.cmpt.bean.Func;
import org.hibernate.validator.constraints.Length;
import com.dlbridge.jadp.common.persistence.JaapRecord;
import java.util.List;
import org.hibernate.validator.constraints.Length;
public class CmptSetting extends JaapRecord<CmptSetting> {
......@@ -15,12 +11,21 @@ public class CmptSetting extends JaapRecord<CmptSetting> {
private String id; // 活动ID
private String cmptId; // 赛事ID
private String name; // 活动名字
private String nameWeb; // 活动名字
private String visibility; // 是否启用 0:不启用 1:启用
private Integer type;
private String seq; // 顺序
private String style;
private int status;
public String getNameWeb() {
return nameWeb;
}
public void setNameWeb(String nameWeb) {
this.nameWeb = nameWeb;
}
public String getId() {
return id;
}
......
package com.dlbridge.jadp.plugins.cmpt.service;
import java.util.List;
import java.util.Map;
import com.dlbridge.jadp.plugins.cmpt.bean.CmptSettingTemplate;
import com.dlbridge.jadp.plugins.cmpt.bean.Func;
import com.dlbridge.jadp.plugins.cmpt.bean.SettingTemplate;
import com.dlbridge.jadp.plugins.cmpt.dao.mapper.CmptSettingMapper;
import com.dlbridge.jadp.plugins.cmpt.dao.model.CmptSetting;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.dlbridge.jadp.plugins.cmpt.dao.model.CmptSetting;
import javax.annotation.Resource;
import java.util.List;
import java.util.Map;
/**
* 赛事活动
......@@ -92,4 +91,13 @@ public class CmptSettingService {
return cmptSettingMapper.getCmptSettingsVisibilityByCmptIdAndType(cmptId,type);
}
public Func getCmptSettingsByCmptIdAndType(int cmptId, int type) {
return cmptSettingMapper.getCmptSettingsByCmptIdAndType(cmptId,type);
}
public void saveOrUpdate(Func func) {
if(StringUtils.isNotBlank(func.getId())){
cmptSettingMapper.update(func);
}
}
}
......@@ -115,6 +115,7 @@ public class CmptSettingController {
setting.setCmptId(item.getCmptId()+"");
setting.setId(UUID.randomUUID().toString().replace("-",""));
setting.setName(it.getName()+"");
setting.setNameWeb(it.getName()+"");
setting.setSeq(it.getSeq()+"");
setting.setStatus(it.getStatus());
setting.setStyle(it.getStyle());
......
package com.dlbridge.jadp.plugins.cmpt.web;
import com.dlbridge.jadp.common.interceptor.PageView;
import com.dlbridge.jadp.plugins.cmpt.dao.model.Cmpt;
import com.dlbridge.jadp.plugins.cmpt.service.CmptService;
import com.dlbridge.jadp.plugins.cmpt.service.RemoteService;
import lombok.extern.log4j.Log4j2;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import springfox.documentation.annotations.ApiIgnore;
import javax.annotation.Resource;
@Controller
@Log4j2
@RequestMapping("gk/outter-link/")
@ApiIgnore
public class OutterLinkController {
@Resource
private CmptService cmptService;
@Resource
private RemoteService remoteService;
@RequestMapping("index/{cmptId}")
@PageView
public ModelAndView getAlbumCounts(@PathVariable("cmptId") Integer cmptId, ModelAndView mv) {
Cmpt cmpt = cmptService.queryCmptBycmptId(cmptId);
mv.addObject("cmpt", cmpt);
mv.setViewName("cmpt/outter-link");
return mv;
}
}
package com.dlbridge.jadp.plugins.cmpt.web;
import com.dlbridge.jadp.common.interceptor.PageView;
import com.dlbridge.jadp.plugins.cmpt.bean.Func;
import com.dlbridge.jadp.plugins.cmpt.dao.model.Cmpt;
import com.dlbridge.jadp.plugins.cmpt.service.CmptService;
import com.dlbridge.jadp.plugins.cmpt.service.CmptSettingService;
import com.neusoft.www.utils.web.Result;
import lombok.extern.log4j.Log4j2;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
import springfox.documentation.annotations.ApiIgnore;
import javax.annotation.Resource;
@Controller
@Log4j2
@RequestMapping("gk/sure-letter/")
@ApiIgnore
public class SureLetterController {
@Resource
private CmptService cmptService;
@Resource
private CmptSettingService cmptSettingService;
@RequestMapping("index/{cmptId}")
@PageView
public ModelAndView getAlbumCounts(@PathVariable("cmptId") Integer cmptId, ModelAndView mv) {
Cmpt cmpt = cmptService.queryCmptBycmptId(cmptId);
mv.addObject("cmpt", cmpt);
mv.setViewName("cmpt/sure-letter");
return mv;
}
@RequestMapping("/getFunc")
@ResponseBody
public Result getFunc(@RequestParam("type") int type,
@RequestParam("cmptId") int cmptId) {
Func func = cmptSettingService.getCmptSettingsByCmptIdAndType(cmptId,type);
return Result.success().setContent(func);
}
@RequestMapping("/updateName")
@ResponseBody
public Result updateName(Func func) {
cmptSettingService.saveOrUpdate(func);
return Result.success().setContent(1);
}
}
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.password=mysql_master_geexek_408
spring.datasource.username=mysql_master
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://rm-bp15ojs1ys1eur32z.mysql.rds.aliyuncs.com:3306/gksite?autoReconnect=true&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true
mybatis.typeAliasesPackage=com.dlbridge.jadp.plugins
mybatis.mapperLocations=classpath:com/dlbridge/jadp/**/**.xml
mybatis.configuration.map-underscore-to-camel-case=true
mybatis.configuration.jdbc-type-for-null=null
server.port=9801
charset_name=UTF-8
#\u8BBE\u7F6E\u73AF\u5883\u914D\u7F6E
#spring.profiles.active=dev
#http encoding
spring.http.encoding.charset=UTF-8
spring.http.encoding.enabled=true
spring.http.encoding.force=true
logging.file=./logs/gksite.log
#\u5173\u95ED\u542F\u52A8Logo
spring.main.banner-mode=off
#\u4ea7\u54c1\u4fe1\u606f\u8bbe\u7f6e
productName=jBridge\u5feb\u901f\u5f00\u53d1\u5e73\u53f0
#\u8BBE\u7F6Emvc\u9875\u9762\u8DF3\u8F6C
spring.mvc.view.prefix=/WEB-INF/views/
spring.mvc.view.suffix=.jsp
spring.freemarker.template-loader-path=classpath:/templates
spring.resources.static-locations=/static/
spring.mvc.static-path-pattern=/**
security.basic.enabled=false
management.security.enabled=false
##scheduler
spring.task.scheduler.pool=10
spring.task.thread=spring-task-thread
#\u542F\u52A8\u62A5\u9519class path resource [processes/] cannot be resolved to URL because it does not exist
spring.activiti.check-process-definitions=false
#\u5206\u9875\u914d\u7f6e
page.pageSize=30
#pagehelper\u5206\u9875\u63D2\u4EF6\u914D\u7F6E
pagehelper.helperDialect=mysql
pagehelper.reasonable=true
pagehelper.supportMethodsArguments=true
pagehelper.params=count=countSql
weixin.micro.appid=wx96ce27826f39cdb3
weixin.micro.secret=11bfc4902e7c992b57a2cdcfeded623f
geexek.user.url=https://test.geexek.com.cn/
geexek.cmpt.url=https://testtimerbackend.geexek.cn/
geexek.shamus.url=http://shamus.geexek.com.cn/
timer.url=http://testtimer.geexek.cn/
server.url=http://testzs.geexek.com.cn/
server.url.https=https://testzs.geexek.com.cn/
spring.redis.cluster.max-redirects=3
spring.redis.cluster.nodes=172.16.214.235:7001,172.16.214.235:7002,172.16.214.235:7003
spring.servlet.multipart.max-file-size=10Mb
spring.servlet.multipart.enabled=true
spring.servlet.multipart.max-request-size=50Mb
spring.application.name=micro-gksite
ribbon.eureka.enable=true
#feign调用连接超时时间
feign.client.config.default.connect-timeout=2000
#feign调用读取超时时间
feign.client.config.default.readTimeout=2000
#feign调用的log 等级
feign.client.config.default.loggerLevel=basic
feign.okhttp.enabled=true
feign.hystrix.enabled=true
#feign.compression.request.enabled=true
#feign.compression.request.mime-types=text/xml,application/xml,application/json
#feign.compression.request.min-request-size=2048
hystrix.metrics.enabled=true
hystrix.command.default.execution.timeout.enabled=true
hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds=2000
hystrix.threadpool.default.coreSize=200
hystrix.threadpool.default.maxQueueSize=1000
hystrix.threadpool.default.queueSizeRejectionThreshold=800
logging.level.com.dlbridge.feign.NewsService=info
logging.level.org.springframework.cloud.openfeign=info
spring.zipkin.base-url=http://10.29.116.151:9001
spring.sleuth.sampler.probability=0.1
spring.zipkin.sender.type=web
swagger.enable=false
base.url=http://testzs.geexek.com.cn/
spring.cloud.nacos.server-addr=https://nacos.geexek.com
spring.cloud.nacos.discovery.group=production
#spring.cloud.sentinel.servlet.blockPage=test
spring.cloud.sentinel.transport.dashboard=https://nacos.geexek.com
spring.cloud.sentinel.transport.port=8719
spring.cloud.sentinel.eager=true
spring.cloud.sentinel.filter.enabled=false
spring.cloud.sentinel.skip-keys=cmptId
spring.cloud.sentinel.exclude-urls=/static/**,**.css,**.js
## nacos 地址
spring.cloud.sentinel.datasource.ds.nacos.server-addr=https://nacos.geexek.com
spring.cloud.sentinel.datasource.ds.nacos.dataId=micro-gksite-sentinel
spring.cloud.sentinel.datasource.ds.nacos.data-type=json
spring.cloud.sentinel.datasource.ds.nacos.groupId=production
#spring.cloud.sentinel.datasource.ds1.nacos.namespace=fad8a39-a3e7-49a1-ae96-0f7aaf39136b
#
## 规则类型
spring.cloud.sentinel.datasource.ds.nacos.rule-type=flow
<%@ 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="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="img/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"/>
<link rel="stylesheet" href="${ctxStatic}/cmpt/road.css?v=<%=System.currentTimeMillis()%>"/>
<link rel="stylesheet" href="${ctxStatic}/cmpt/road-new.css?v=<%=System.currentTimeMillis()%>"/>
<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">
<style>
.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;
}
.input{
width:377px;
height:45px;
line-height: 50px;
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;
width: 300px;
margin: 30px 0px 0px 30px;
font-weight: 500;
color: rgba(51,51,51,1);
}
.title-new{
font-size:20px;
color:rgba(51,51,51,1);
margin-right: 15px;
width: 110px;
}
.section{
display: flex;
height: 530px;
background: rgba(255,255,255,1);
box-shadow: 0px 0px 10px 0px rgba(238,235,235,1);
border-radius: 4px;
flex-direction: column;
}
.func{
display: flex;
/* justify-content: center; */
align-items: center;
margin-top: 50px;
margin-left: 42px;
}
.tip{
font-size: 16px;
color: rgba(51,51,51,1);
position: absolute;
right: 45px;
top: 10px;
}
.road-notice{
position: absolute;
top: 16px;
height: 15px;
width: 15px;
}
.road-notice-txt{
color: rgb(206, 57, 57);
font-size: 16px;
margin-left: 25px;
width: 400px;
display: inline-block;
}
.saveDiv{
display: flex;
justify-content: center;
margin: 80px;
}
</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="letter">
<div class="section">
<div class="title-new" style="">
<span class="title">打开第三方小程序</span>
</div>
<div class="func">
<span class="title-new">功能名称</span>
<div style="position: relative;">
<input @input="count" class="input" type="text" v-model="letter.nameWeb" placeholder="请输入功能名称,最多五个字符">
<span class="tip">{{letter.nameWeb.length}}/5</span>
</div>
<div style="position: relative;">
<span class="road-notice"></span>
<span class="road-notice-txt">
此名称用于展示给选手,只能使用中文,<br/>且不能超过5个字。
</span>
</div>
</div>
<div class="func">
<span class="title-new">APP ID</span>
<div style="position: relative;width: 400px">
<input class="input" type="text" v-model="letter.appId" placeholder="请输入目标小程序的ID">
</div>
<div style="position: relative;width: 440px">
</span>
</div>
</div>
<div class="func">
<span class="title-new" style="line-height: 20px;">
<span>PATH</span>
<br>
<span style="font-size:14px;color: #999">(选填)</span>
</span>
<div style="position: relative;width: 400px">
<input class="input" type="text" v-model="letter.url" placeholder="请输入目标页面的达到路径">
</div>
<div style="position: relative;width: 440px"></div>
</div>
<div class="saveDiv">
<span v-on:click="save" class="submit">保存</span>
</div>
</div>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script>
var customerV = new Vue({
el : '#letter',
data : {
letter : {id:'',nameWeb:'',cmptId:getCId()}
},
methods:{
count:function(){
if(customerV.$data.letter.nameWeb.length > 5){
customerV.$data.letter.nameWeb = customerV.$data.letter.nameWeb.substr(0,5)
}
},
save : function () {
$.ajax({
url : '/gk/sure-letter/updateName',
data : customerV.$data.letter,
type:'post',
beforeSend:function(){
var index = layer.load()
setTimeout(function () {
layer.close(index);
},1500)
},
success:function (data) {
layer.msg('保存成功!')
}
})
}
}
});
function getSureLetter(){
$.ajax({
url : '/gk/sure-letter/getFunc?cmptId='+getCId()+"&type=19",
success:function (data) {
if(data.content){
customerV.$data.letter = data.content;
}
}
});
}
getSureLetter();
</script>
</body>
</html>
......@@ -135,8 +135,8 @@
<div class="score-item" v-on:click="showDetail(score.cmptScoreRuleScoreinfoId,$event,score.markNo)" v-for="score in scores" :data-id="score.cmptScoreRuleScoreinfoId">
<template v-if="score.save">
<div class="score-info">
<template v-if="score.save">
<div class="score-info">
<span class="check"><input v-on:click.stop="" type="checkbox" :value="score.cmptScoreRuleScoreinfoId" :checked="checked?'true':'' "></span>
<span v-text="score.name"></span>
<span v-text="score.markNo"></span>
......@@ -149,31 +149,31 @@
<span class="icon-score-edit"></span>
<span class="score-edit">编辑</span>
</span>
</div>
</template>
</div>
</template>
<template v-else>
<div class="score-info">
<span class="check"><input v-on:click.stop="" type="checkbox" :value="score.cmptScoreRuleScoreinfoId" :checked="checked?'true':'' "></span>
<span v-text="score.name"></span>
<span v-text="score.markNo"></span>
<span>{{score.insertTime | substr(10)}}</span>
<span><input v-on:click.stop="" class="score-input doneTime" type="text"
onclick="WdatePicker({skin:'whyGreen',dateFmt:'yyyy-MM-dd'})"
:value="score.subsectionTime | substrDate(10)"></span>
<span><input v-on:click.stop="" class="score-input miles" type="text"
:value="Number(score.subsectionMileage/1000).toFixed(3)"></span>
<span><input v-on:click.stop="" class="score-input duration" type="text"
onclick="WdatePicker({skin:'whyGreen',dateFmt:'HH:mm:ss'})"
:value="score.subsectionscore | date_format"></span>
<span>{{score.cmptPace | pace(Number(score.subsectionMileage/1000).toFixed(3),score.subsectionscore) }}</span>
<span style="cursor: pointer;"
v-on:click.stop="" v-on:click="saveScoreDetail(score,$event)">
<template v-else>
<div class="score-info">
<span class="check"><input v-on:click.stop="" type="checkbox" :value="score.cmptScoreRuleScoreinfoId" :checked="checked?'true':'' "></span>
<span v-text="score.name"></span>
<span v-text="score.markNo"></span>
<span>{{score.insertTime | substr(10)}}</span>
<span><input v-on:click.stop="" class="score-input doneTime" type="text"
onclick="WdatePicker({skin:'whyGreen',dateFmt:'yyyy-MM-dd'})"
:value="score.subsectionTime | substrDate(10)"></span>
<span><input v-on:click.stop="" class="score-input miles" type="text"
:value="Number(score.subsectionMileage/1000).toFixed(3)"></span>
<span><input v-on:click.stop="" class="score-input duration" type="text"
onclick="WdatePicker({skin:'whyGreen',dateFmt:'HH:mm:ss'})"
:value="score.subsectionscore | date_format"></span>
<span>{{score.cmptPace | pace(Number(score.subsectionMileage/1000).toFixed(3),score.subsectionscore) }}</span>
<span style="cursor: pointer;"
v-on:click.stop="" v-on:click="saveScoreDetail(score,$event)">
<span class="icon-score-save"></span>
<span class="score-edit">保存</span>
</span>
</div>
</template>
</div>
</template>
<template v-if="score.save">
<div class="flex score-img" v-on:click.stop="">
......@@ -236,11 +236,11 @@
</div>
<div id="dialog" v-show="dialog" >
<div style="position: relative;" class="preview">
<video v-if="previewItem.fieldType==2" v-bind:src="previewItem.previewImg" controls name="media" preload="none"></video>
<img v-else width="auto" height="100%" v-bind:src="previewItem.previewImg" alt="">
<span v-on:click="closeDialog" class="iconClose"></span>
</div>
<div style="position: relative;" class="preview">
<video v-if="previewItem.fieldType==2" v-bind:src="previewItem.previewImg" controls name="media" preload="none"></video>
<img v-else width="auto" height="100%" v-bind:src="previewItem.previewImg" alt="">
<span v-on:click="closeDialog" class="iconClose"></span>
</div>
</div>
</div>
</div>
......
<%@ 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="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="img/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"/>
<link rel="stylesheet" href="${ctxStatic}/cmpt/road.css?v=<%=System.currentTimeMillis()%>"/>
<link rel="stylesheet" href="${ctxStatic}/cmpt/road-new.css?v=<%=System.currentTimeMillis()%>"/>
<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">
<style>
.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;
}
.input{
width:377px;
height:45px;
line-height: 50px;
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-new{
font-size:20px;
color:rgba(51,51,51,1);
margin-right: 15px;
}
.section{
display: flex;
height: 330px;
background: rgba(255,255,255,1);
box-shadow: 0px 0px 10px 0px rgba(238,235,235,1);
border-radius: 4px;
flex-direction: column;
}
.func{
display: flex;
justify-content: center;
align-items: center;
margin-top: 50px;
}
.tip{
font-size: 16px;
color: rgba(51,51,51,1);
position: absolute;
right: 45px;
top: 10px;
}
.road-notice{
position: absolute;
top: 16px;
height: 15px;
width: 15px;
}
.road-notice-txt{
color: rgb(206, 57, 57);
font-size: 16px;
margin-left: 25px;
width: 400px;
display: inline-block;
}
.saveDiv{
display: flex;
justify-content: center;
margin: 80px;
}
</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="letter">
<div class="section">
<div class="func">
<span class="title-new">功能名称</span>
<div style="position: relative;">
<input @input="count" class="input" type="text" v-model="letter.nameWeb" placeholder="请输入功能名称,最多五个字符">
<span class="tip">{{letter.nameWeb.length}}/5</span>
</div>
<div style="position: relative;">
<span class="road-notice"></span>
<span class="road-notice-txt">
此名称用于展示给选手,只能使用中文,<br/>且不能超过5个字。
</span>
</div>
</div>
<div class="saveDiv">
<span v-on:click="save" class="submit">保存</span>
</div>
</div>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script>
var customerV = new Vue({
el : '#letter',
data : {
letter : {id:'',nameWeb:'',cmptId:getCId()}
},
methods:{
count:function(){
if(customerV.$data.letter.nameWeb.length > 5){
customerV.$data.letter.nameWeb = customerV.$data.letter.nameWeb.substr(0,5)
}
},
save : function () {
$.ajax({
url : '/gk/sure-letter/updateName',
data : customerV.$data.letter,
type:'post',
beforeSend:function(){
var index = layer.load()
setTimeout(function () {
layer.close(index);
},1500)
},
success:function (data) {
layer.msg('保存成功!')
}
})
}
}
});
function getSureLetter(){
$.ajax({
url : '/gk/sure-letter/getFunc?cmptId='+getCId()+"&type=18",
success:function (data) {
if(data.content){
customerV.$data.letter = data.content;
}
}
});
}
getSureLetter();
</script>
</body>
</html>
......@@ -198,6 +198,20 @@
<span class="menu-txt">赛事客服</span>
</a>
</li>
<li class="outter-link menu-sub-item">
<a href="/gk/outter-link/index/${cmpt.cmptId}?uId=${uId}&cId=${cId}&timestamp=${timestamp}&sign=${sign}">
<span class="left-arrow"></span>
<span class="menu-txt">外链功能</span>
</a>
</li>
<li class="sure-letter menu-sub-item">
<a href="/gk/sure-letter/index/${cmpt.cmptId}?uId=${uId}&cId=${cId}&timestamp=${timestamp}&sign=${sign}">
<span class="left-arrow"></span>
<span class="menu-txt">确认函</span>
</a>
</li>
</ul>
</li>
</ul>
......@@ -210,12 +224,6 @@
</a>
</li>
<ul style="padding: 0px">
<%-- <li class="route menu-sub-item">
<a href="/gk/route/index/${cmpt.cmptId}?uId=${uId}&cId=${cId}&timestamp=${timestamp}&sign=${sign}">
<span class="left-arrow"></span>
<span class="menu-txt">路线下载</span>
</a>
</li>--%>
<li class="road menu-sub-item">
<a href="/gk/road/index/${cmpt.cmptId}?uId=${uId}&cId=${cId}&timestamp=${timestamp}&sign=${sign}">
<span class="left-arrow"></span>
......@@ -257,7 +265,8 @@
<script>
var classes = ['cmptSetting', 'nameList', 'manual', 'contact','manage',
'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'];
let url = document.location.href;
var done = false;
for (var i in classes) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment