ss
jiangping
2025-07-07 9e1e058b057fc6ef0a9baf636f230c21f1282797
ss
已添加14个文件
已修改19个文件
2825 ■■■■■ 文件已修改
.idea/libraries/Maven__org_freemarker_freemarker_2_3_29.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_freemarker_2_2_5_RELEASE.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/api/business/static.js 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/components/business/OperaInformationWindow.vue 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/index.vue 236 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/pom.xml 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/java/com/doumee/api/business/CarouselController.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/java/com/doumee/api/business/StaticController.java 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/java/com/doumee/api/common/PublicCloudController.java 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/java/com/doumee/biz/system/SystemDictDataBiz.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/java/com/doumee/biz/system/impl/SystemDictDataBizImpl.java 172 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/java/com/doumee/biz/system/impl/SystemJobTriggerBizImpl.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/java/com/doumee/core/annotation/pr/PreventRepeatInterceptor.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/java/com/doumee/core/constants/Constants.java 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/java/com/doumee/core/job/JobParam.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/java/com/doumee/core/utils/Secure.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/java/com/doumee/core/utils/qiyeweixin/model/response/QywxBaseResponse.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/java/com/doumee/core/utils/qiyeweixin/model/response/QywxBaseSingleResponse.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/java/com/doumee/core/utils/qiyeweixin/model/response/QywxUserAttrInfoResponse.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/java/com/doumee/dao/dto/CreatePageDTO.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/java/com/doumee/dao/vo/FootDataVO.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/java/com/doumee/service/business/impl/CarouselServiceImpl.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/java/com/doumee/service/system/impl/SystemDictServiceImpl.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/resources/application.yml 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/resources/templates/about.html 284 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/resources/templates/alot.html 450 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/resources/templates/components/footer.html 334 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/resources/templates/components/nav.html 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/resources/templates/dynamics.html 137 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/resources/templates/dynamics_details.html 93 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/resources/templates/intelligent_system.html 489 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/resources/templates/operation.html 186 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/resources/templates/solution.html 209 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.idea/libraries/Maven__org_freemarker_freemarker_2_3_29.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.freemarker:freemarker:2.3.29">
    <CLASSES>
      <root url="jar://$PROJECT_DIR$/../../../maven/repository/org/freemarker/freemarker/2.3.29/freemarker-2.3.29.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$PROJECT_DIR$/../../../maven/repository/org/freemarker/freemarker/2.3.29/freemarker-2.3.29-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$PROJECT_DIR$/../../../maven/repository/org/freemarker/freemarker/2.3.29/freemarker-2.3.29-sources.jar!/" />
    </SOURCES>
  </library>
</component>
.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_freemarker_2_2_5_RELEASE.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,13 @@
<component name="libraryTable">
  <library name="Maven: org.springframework.boot:spring-boot-starter-freemarker:2.2.5.RELEASE">
    <CLASSES>
      <root url="jar://$PROJECT_DIR$/../../../maven/repository/org/springframework/boot/spring-boot-starter-freemarker/2.2.5.RELEASE/spring-boot-starter-freemarker-2.2.5.RELEASE.jar!/" />
    </CLASSES>
    <JAVADOC>
      <root url="jar://$PROJECT_DIR$/../../../maven/repository/org/springframework/boot/spring-boot-starter-freemarker/2.2.5.RELEASE/spring-boot-starter-freemarker-2.2.5.RELEASE-javadoc.jar!/" />
    </JAVADOC>
    <SOURCES>
      <root url="jar://$PROJECT_DIR$/../../../maven/repository/org/springframework/boot/spring-boot-starter-freemarker/2.2.5.RELEASE/spring-boot-starter-freemarker-2.2.5.RELEASE-sources.jar!/" />
    </SOURCES>
  </library>
</component>
admin/src/api/business/static.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,9 @@
import request from '../../utils/request'
// æŸ¥è¯¢
export function create (data) {
  return request.post('/business/static/create', data, {
    trim: true
  })
}
admin/src/components/business/OperaInformationWindow.vue
@@ -15,7 +15,7 @@
          <el-option :value="0" label="行业资讯"/>
          <el-option :value="1" label="运营经验"/>
          <el-option :value="2" label="功能介绍"/>
          <el-option :value="3" label="市场信息"/>
          <el-option :value="3" label="市场信息"/>index
        </el-select>
      </el-form-item>
      <el-form-item label="列表图" prop="imgurl" >
@@ -45,7 +45,6 @@
    </el-form>
  </GlobalWindow>
</template>
<script>
import BaseOpera from '@/components/base/BaseOpera'
import GlobalWindow from '@/components/common/GlobalWindow'
admin/src/views/index.vue
@@ -5,36 +5,38 @@
      <div class="fs13">
        ä»Šå¤©æ˜¯ {{ nowDate }} {{ nowWeek }},欢迎访问豆米跳跳官网后台管理平台
      </div>
      <div class="content">
        <el-button class="btn" :loading="loading[0]"  type="primary" @click="staticPage(0)">首页静态化</el-button>
        <el-button class="btn" :loading="loading[6]"  type="primary"  @click="staticPage(6)">Alot物联静态化</el-button>
        <el-button class="btn" :loading="loading[5]"  type="primary" @click="staticPage(5)">最新动态静态化</el-button>
        <el-button class="btn" :loading="loading[3]"  type="primary" @click="staticPage(3)">关于我们静态化</el-button>
        <el-button class="btn" :loading="loading[4]"  type="primary" @click="staticPage(4)">渠道合作静态化</el-button>
      </div>
      <div class="content">
        <el-button class="btn" :loading="loading[7]"   type="primary" @click="staticPage(7)">最新动态详情静态化</el-button>
        <el-button class="btn" :loading="loading[9]"  type="primary" @click="staticPage(9)">客户案例详情作静态化</el-button>
      </div>
      <div class="content">
        <el-button class="btn" :loading="loading[1]"  type="primary" @click="staticPage(1)">智慧系统静态化</el-button>
      </div>
      <div class="content">
        <el-button class="btn" :loading="loading[8]"  type="primary" @click="staticPage(8)">解决方案静态化</el-button>
      </div>
    </div>
  </div>
</template>
<script>
import dayjs from 'dayjs'
import * as echarts from 'echarts'
import { weeks } from '@/utils/config'
const colors = ['#52a4f7', '#7678f7', '#5fc6d5']
import { create as createPage } from '@/api/business/static'
export default {
  components: {
  },
  data () {
    return {
      searchForm: {
        timeType: null,
        timeName: '全部'
      },
      colors,
      nowDate: '',
      nowWeek: '',
      headerData: {},
      headerData1: {},
      staticData0: {},
      staticData01: {},
      staticData1: {},
      staticData2: {},
      staticData3: {},
      staticData4: {},
      manningRatio: []
      loading:[false,false,false,false,false,false,false,false,false,false]
    }
  },
  computed: {
@@ -49,6 +51,16 @@
    // this.initData()
  },
  methods: {
    staticPage (index) {
      this.loading[index] = true
      createPage({ pageIndex: index }).then(res => {
        this.$message.success('操作成功')
      }).catch(e => {
        this.$tip.apiFailed(e)
      }).finally(() => {
        this.loading[index] = false
      })
    },
    updateDate () {
      this.nowDate = dayjs().format('YYYYå¹´M月D日')
      this.nowWeek = weeks[new Date().getDay()]
@@ -59,10 +71,6 @@
<style lang="scss" scoped>
::v-deep .el-input--small .el-input__inner {
  height: 30px !important; // è¿™é‡Œå°±æ˜¯ä¿®æ”¹é»˜è®¤é«˜åº¦
  width: 120px;
}
div {
  box-sizing: border-box;
}
@@ -73,187 +81,15 @@
  color: #222222;
  line-height: 22px;
}
.mb50{
  margin-bottom: 50px;
}
.main {
  display: flex;
  position: relative;
  z-index: 99;
  .app_content {
    flex: 1;
    .static_card {
      height: 187px;
      color: #fff;
      display: flex;
      justify-content: space-between;
      .card {
        flex: 1;
        height: 187px;
        background: linear-gradient(270deg, #29aeff 0%, #207ff7 100%);
        box-shadow: 0px 2px 10px 0px rgba(32, 127, 247, 0.4);
        border-radius: 8px;
        margin-right: 14px;
        &:nth-of-type(2) {
          background: linear-gradient(270deg, #8383ff 0%, #6b6eff 100%);
        }
        &:nth-of-type(3) {
          background: linear-gradient(270deg, #42d49d 0%, #12bb8b 100%);
        }
        &:nth-of-type(4) {
          margin-right: 0;
          background: linear-gradient(270deg, #c430dee3 0%, #cd04b9cf 100%);
        //linear-gradient(270deg, #de3049b8 0%, #cd0421d4 100%);
          //background: linear-gradient(270deg, #30d3de 0%, #04b7cd 100%);
        }
        .header {
          height: 103px;
          display: flex;
          justify-content: space-between;
          align-items: center;
          padding: 20px 20px 12px;
          border-bottom: 1px solid rgba(255, 255, 255, 0.2);
          img {
            width: 40px;
            height: 40px;
          }
          .num {
            font-weight: 600;
            font-size: 30px;
            margin-top: 12px;
          }
        }
        .content {
          height: 82px;
          display: flex;
          flex-direction: column;
          justify-content: space-between;
          font-size: 13px;
          padding: 15px 20px 20px;
        }
      }
    }
    .funcs {
      height: 149px;
      padding: 20px;
      background: #fff;
      margin: 10px 0;
      .list {
        display: flex;
        padding-top: 20px;
        .item {
          display: flex;
          flex-direction: column;
          align-items: center;
          justify-content: center;
          margin-right: 24px;
          cursor: pointer;
          img {
            width: 44px;
            height: 44px;
          }
        }
      }
    }
  }
  .static_wrap {
    .wrap {
      background: #fff;
      padding: 20px 20px 10px;
      border-radius: 2px;
      border: 1px solid #eeeeee;
      height: 280px;
      flex: 1;
      margin-top: 10px;
      margin-bottom: 20px;
      &:nth-of-type(2n) {
        //margin-left: 10px;
      }
      .echart {
  margin-top: 30px;
        width: 100%;
        height: 190px;
        position: relative;
        display: flex;
        div{
          flex: 1;
          height: 190px;
        }
      }
      .header {
        display: flex;
        justify-content: space-between;
        align-items: center;
        margin-bottom: 30px;
        .more {
          font-size: 13px;
          color: #999999;
        }
      }
    }
    .static1 {
      .content {
        display: flex;
        justify-content: center;
        align-items: center;
        height: 100%;
        .echart_wrap {
          position: relative;
          .pie_text {
            position: absolute;
            left: 50%;
            top: 50%;
            transform: translate(-50%, -50%);
            z-index: 999;
          }
        }
        .echart {
          width: 150px;
          height: 150px;
        }
        .list {
          margin-left: 36px;
          .item {
            display: flex;
            align-items: center;
            margin: 8px 0;
            .icon {
              width: 16px;
              height: 16px;
              border-radius: 50%;
              margin-right: 6px;
              background: linear-gradient(270deg, #29aeff 0%, #207ff7 100%);
            }
            .text {
              margin-right: 6px;
            }
          }
        }
      }
    }
  .btn{
    width: 18%;
    height: 60px;
    margin: 10px;
    font-size: 20px;
  }
}
server/pom.xml
@@ -226,8 +226,11 @@
      <artifactId>azure-storage-blob</artifactId>
      <version>12.14.1</version>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-freemarker</artifactId>
    </dependency>
  </dependencies>
  <build>
    <finalName>dmttwebsite</finalName>
    <resources>
server/src/main/java/com/doumee/api/business/CarouselController.java
@@ -1,7 +1,5 @@
package com.doumee.api.business;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.doumee.api.BaseController;
import com.doumee.core.annotation.excel.ExcelExporter;
import com.doumee.core.annotation.pr.PreventRepeat;
server/src/main/java/com/doumee/api/business/StaticController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,39 @@
package com.doumee.api.business;
import com.doumee.api.BaseController;
import com.doumee.biz.system.SystemDictDataBiz;
import com.doumee.core.annotation.excel.ExcelExporter;
import com.doumee.core.annotation.pr.PreventRepeat;
import com.doumee.core.model.ApiResponse;
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.dao.business.model.Seo;
import com.doumee.dao.dto.CreatePageDTO;
import com.doumee.service.business.SeoService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
/**
 * @author æ±Ÿè¹„蹄
 * @since 2025/07/02 11:35
 */
@Api(tags = "网站页面静态化")
@RestController
@RequestMapping("/business/static")
public class StaticController extends BaseController {
    @Autowired
    private SystemDictDataBiz systemDictDataBiz;
    @PreventRepeat
    @ApiOperation("静态化页面")
    @PostMapping("/create")
    public ApiResponse create(@RequestBody CreatePageDTO param) {
        return ApiResponse.success(systemDictDataBiz.createPage(param.getPageIndex()));
    }
}
server/src/main/java/com/doumee/api/common/PublicCloudController.java
@@ -1,23 +1,11 @@
package com.doumee.api.common;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.doumee.api.BaseController;
import com.doumee.biz.system.SystemDictDataBiz;
import com.doumee.config.annotation.EncryptionReq;
import com.doumee.config.annotation.EncryptionResp;
import com.doumee.core.annotation.trace.Trace;
import com.doumee.core.constants.Constants;
import com.doumee.core.constants.ResponseStatus;
import com.doumee.core.exception.BusinessException;
import com.doumee.core.model.ApiResponse;
import com.doumee.core.utils.DateUtil;
import com.doumee.core.utils.FtpUtil;
import com.doumee.core.utils.azure.AzureBlobUtil;
import com.doumee.core.utils.qiyeweixin.QywxUtil;
import com.doumee.core.utils.qiyeweixin.model.response.QywxUploadMediaResponse;
import com.doumee.dao.system.model.SystemDictData;
import com.doumee.service.common.EmailService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
@@ -25,20 +13,22 @@
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.multipart.MultipartRequest;
import org.springframework.web.multipart.commons.CommonsMultipartResolver;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.util.*;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.UUID;
/**
 * @author Eva.Caesar Liu
server/src/main/java/com/doumee/biz/system/SystemDictDataBiz.java
@@ -51,4 +51,6 @@
     */
    String getPreFixPath(String resourceCode, String targetCode);
    void updateByDicId(List<SystemDictData> list);
    String createPage(Integer pageIndex);
}
server/src/main/java/com/doumee/biz/system/impl/SystemDictDataBizImpl.java
@@ -1,28 +1,47 @@
package com.doumee.biz.system.impl;
import com.alibaba.fastjson.JSONArray;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.doumee.biz.system.SystemDictDataBiz;
import com.doumee.core.constants.Constants;
import com.doumee.core.exception.BusinessException;
import com.doumee.core.constants.ResponseStatus;
import com.doumee.core.model.LoginUserInfo;
import com.doumee.core.utils.qiyeweixin.QywxUtil;
import com.doumee.dao.business.CarouselMapper;
import com.doumee.dao.business.InformationMapper;
import com.doumee.dao.business.SeoMapper;
import com.doumee.dao.business.model.Carousel;
import com.doumee.dao.business.model.Information;
import com.doumee.dao.business.model.Seo;
import com.doumee.dao.common.dto.UpdateSortDTO;
import com.doumee.dao.system.model.SystemDict;
import com.doumee.dao.system.model.SystemDictData;
import com.doumee.dao.vo.FootDataVO;
import com.doumee.service.system.SystemDictDataService;
import com.doumee.service.system.SystemDictService;
import freemarker.template.Configuration;
import freemarker.template.Template;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.io.*;
import java.util.*;
@Service
public class SystemDictDataBizImpl implements SystemDictDataBiz {
    @Autowired
    private FreeMarkerConfigurer freeMarkerConfigurer;
    @Autowired
    private InformationMapper informationMapper;
    @Autowired
    private CarouselMapper carouselMapper;
    @Autowired
    private SeoMapper seoMapper;
    @Autowired
    private SystemDictDataService systemDictDataService;
    @Autowired
@@ -184,6 +203,7 @@
        return list;
    }
    @Override
    public void updateByDicId(List<SystemDictData> list) {
        LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
@@ -214,4 +234,150 @@
        return resourcePath+targetPath;
    }
    @Override
    public String createPage(Integer pageIndex) {
        Constants.PageIndex objIndex  = Constants.PageIndex.getObj(pageIndex);
        if(objIndex == null){
            throw new BusinessException(ResponseStatus.BAD_REQUEST);
        }
        String flt = objIndex.getTemplate();//模版名称
        String html = objIndex.getHtml();//页面名称
        String domain = queryByCode(Constants.SYSTEM,Constants.WEB_DOMAIN).getCode();
        String htmlPath = queryByCode(Constants.SYSTEM,Constants.STATIC_PAGES_PATH).getCode();
        File docFile = new File( htmlPath);
        if(!docFile.exists()){
            docFile.mkdirs();
        }
        Map<String,Object> dataMap = new HashMap<>();
        dataMap.put("webDomain",domain);
        List<Seo> seoList = seoMapper.selectList(new LambdaQueryWrapper<Seo>().eq(Seo::getIsdeleted,Constants.ZERO));
        dataMap.put("seo",getSeoByHtml(Constants.PageIndex.getObj(pageIndex).getHtml(),seoList));
        initDataMapByPage(objIndex,dataMap);
        if(objIndex.getKey() == Constants.PageIndex.dynamicsDetail.getKey() || objIndex.getKey() == Constants.PageIndex.dynamicsDetail.getKey() ){
            List<Information> dataList =getInfomationListByType(objIndex.getKey() == Constants.PageIndex.dynamics.getKey() ?Constants.ZERO:Constants.ONE,null);
            generateDetailsHtml(dataList,dataMap,flt,htmlPath+html);//单文件数据
        }else{
            if(objIndex.getKey() == Constants.PageIndex.dynamics.getKey() || objIndex.getKey() == Constants.PageIndex.casesDetail.getKey() ){
                dataMap.put("dataList", getInfomationListByType(objIndex.getKey() == Constants.PageIndex.dynamics.getKey() ?Constants.ZERO:Constants.ONE,null));
            }
            if(objIndex.getKey() == Constants.PageIndex.index.getKey()){
                //如果是首页
                dataMap.put("bannerList",  carouselMapper.selectList(new LambdaQueryWrapper<Carousel>()
                        .eq(Carousel::getIsdeleted,Constants.ZERO)
                        .orderByDesc(Carousel::getSortnum ,Carousel::getCreateDate)));
                dataMap.put("caseList", getInfomationListByType( Constants.ONE,12));
                dataMap.put("zixunList", getInfomationListByType( Constants.ZERO,12));
            }
            generateSingleHtml(dataMap,flt,htmlPath+html);//单文件数据
        }
       return  null;
    }
    private Seo getSeoByHtml(String html, List<Seo> seoList) {
        if(seoList==null || seoList.size()==0){
            return new Seo();
        }
        for(Seo s :seoList){
            if(StringUtils.equalsIgnoreCase(s.getPageAddr(),html)){
                return s;
            }
        }
        return new Seo();
    }
    private List<Information> getInfomationListByType(Integer type,Integer limit) {
        List<Information> dataList =informationMapper.selectList(new LambdaQueryWrapper<Information>()
                .eq(Information::getType,type)
                .eq(Information::getIsdeleted,Constants.ZERO)
                .last(limit!=null,"limit "+limit)
                .orderByDesc(Information::getSortnum ,Information::getCreateDate) );//查询全部资讯
        return dataList;
    }
    private void generateDetailsHtml(List<Information> dataList, Map<String, Object> dataMap, String flt, String htmlPath) {
        if(dataList== null){
            return;
        }
        for(Information data :dataList){
            dataMap.put("data",data);
            generateSingleHtml(dataMap,flt,htmlPath.replace("${id}",data.getId()+""));//单文件数据
        }
    }
    private void generateSingleHtml(Map<String, Object> dataMap, String flt, String htmlPath)   {
        try {
            Configuration configuration = freeMarkerConfigurer.getConfiguration();
            Writer out = null;
            // åŠ è½½æ¨¡ç‰ˆæ–‡ä»¶
            Template template = configuration.getTemplate(flt);
            // ç”Ÿæˆæ•°æ®
            File docFile = new File( htmlPath);
            out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(docFile)));
            // è¾“出文件
            template.process(dataMap,out);
        } catch (Exception e) {
            e.printStackTrace();
            throw  new BusinessException(ResponseStatus.SERVER_ERROR);
        }
    }
    private void initDataMapByPage(Constants.PageIndex objIndex, Map<String, Object> dataMap) {
        dataMap.put("bottom", getFoodDataVO());//网站底部信息
    }
    public FootDataVO getFoodDataVO(){
        FootDataVO footDataVO = new FootDataVO();
        SystemDict d = new SystemDict();
        d.setCode(Constants.SYSTEM);
        d.setDeleted(Boolean.FALSE);
        d = systemDictService.findOne(d);
        if(d ==null){
            return footDataVO;
        }
        SystemDictData param = new SystemDictData();
        param.setDictId(d.getId());
        param.setDeleted(Boolean.FALSE);
        List<SystemDictData> dictDataList = systemDictDataService.findList(param);
        String path = findDictDataByLabel(dictDataList,Constants.FILE_DIR);
        footDataVO.setFileDir(path);
        footDataVO.setFootWords(findDictDataByLabel(dictDataList,Constants.FOOT_WORDS));
        footDataVO.setFootImgUrl(findDictDataByLabel(dictDataList,Constants.FOOT_IMGURL));
        footDataVO.setFootFullImgUrl(path+ footDataVO.getFootImgUrl());
        footDataVO.setFootImgUrl2(findDictDataByLabel(dictDataList,Constants.FOOT_IMGURL2));
        footDataVO.setFootFullImgUrl2(path + footDataVO.getFootImgUrl2());
        footDataVO.setAddress(findDictDataByLabel(dictDataList,Constants.ADDRESS));
        footDataVO.setLinkPhone(findDictDataByLabel(dictDataList,Constants.LINK_PHONE));
        footDataVO.setLinkMobile(findDictDataByLabel(dictDataList,Constants.LINK_MOBILE));
        String solveScheme =  findDictDataByLabel(dictDataList,Constants.SOLVE_SCHEME);
        if(Objects.nonNull(solveScheme) & org.apache.commons.lang3.StringUtils.isNotBlank(solveScheme)){
            footDataVO.setSolveScheme(JSONArray.parseArray(solveScheme));
        }
        String wisdomSystem = findDictDataByLabel(dictDataList,Constants.WISDOM_SYSTEM);
        if(Objects.nonNull(wisdomSystem) & org.apache.commons.lang3.StringUtils.isNotBlank(wisdomSystem )){
            footDataVO.setWisdomSystem(JSONArray.parseArray(wisdomSystem ));
        }
        String honors = findDictDataByLabel(dictDataList,Constants.HONORS);
        if(Objects.nonNull(wisdomSystem) & org.apache.commons.lang3.StringUtils.isNotBlank(honors)){
            footDataVO.setHonors(JSONArray.parseArray(honors));
        }
        footDataVO.setServerTime(findDictDataByLabel(dictDataList,Constants.SERVER_TIME));
        return footDataVO;
    }
    private String findDictDataByLabel(List<SystemDictData> dictDataList, String footWords) {
        if(dictDataList!=null){
            for(SystemDictData data:dictDataList){
                if(StringUtils.equals(footWords,data.getLabel())){
                    return data.getCode();
                }
            }
        }
        return "";
    }
}
server/src/main/java/com/doumee/biz/system/impl/SystemJobTriggerBizImpl.java
@@ -17,7 +17,6 @@
import com.doumee.dao.system.model.SystemJob;
import com.doumee.dao.system.model.SystemJobLog;
import com.doumee.dao.system.model.SystemJobSnippet;
import com.doumee.service.system.SystemJobLogService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.RandomStringUtils;
import org.apache.commons.lang3.StringUtils;
server/src/main/java/com/doumee/core/annotation/pr/PreventRepeatInterceptor.java
@@ -1,8 +1,8 @@
package com.doumee.core.annotation.pr;
import com.alibaba.fastjson.JSON;
import com.doumee.core.model.ApiResponse;
import com.doumee.core.constants.ResponseStatus;
import com.doumee.core.model.ApiResponse;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.annotation.Autowired;
server/src/main/java/com/doumee/core/constants/Constants.java
@@ -53,6 +53,8 @@
    public static final Integer FOUR = 4;
    public static final Integer SIX = 6;
    public static final Integer FIVE = 5;
    public static final String WEB_DOMAIN = "WEB_DOMAIN";
    public static final String STATIC_PAGES_PATH ="STATIC_PAGES_PATH" ;
    public static boolean WORKORDER_SHE_EMAIL_SENDING = false;
    public static  boolean DEALING_COMPANY_SYNC = false ;
    public static  boolean DEALING_MEMBER_SYNC = false ;
@@ -60,6 +62,45 @@
    public static final String WORKORDER_LOG_FILE_PATH ="WORKORDER_LOG_FILE_PATH" ;
    public static final String REDIS_TOKEN_KEY = "token_";
    /**
     * åˆ†ç‰‡çŠ¶æ€
     */
    @Getter
    public enum PageIndex {
        defaultPage(  -1, "默认页","default.html","default.html"),
        index(  0, "首页","index.html","index.html"),
        zhxt(  1, "智慧系统一级页","intelligent_system.html","intelligent_system.html"),
        zhxt2(  2, "智慧场馆二级页","index.html","index.html"),
        about(  3, "关于我们","about.html","about.html"),
        operation(  4, "渠道合作","operation.html","operation.html"),
        dynamics(  5, "最新动态","dynamics.html","dynamics.html"),
        alot(  6, "alot物联","alot.html","alot.html"),
        dynamicsDetail(  7, "最新动态详情","dynamics_details.html","dynamics/${id}.html"),
        solution(  8, "解决方案","solution.html","solution.html"),
        casesDetail(  9, "客户案例详情页","case_details.html","cases/${id}.html");
        private int key;
        private String name;
        private  String template;
        private  String html;
        PageIndex(int key, String name,String template,String html) {
            this.html = html;
            this.key = key;
            this.name = name;
            this.template = template;
        }
        public static PageIndex getObj(int index) {
            for (PageIndex c : PageIndex.values()) {
                if (c.getKey() == index) {
                    return c;
                }
            }
            return defaultPage;
        }
    }
    public interface   uploadType{
        String blob = "blob";
        String ftp = "ftp";
@@ -152,7 +193,6 @@
            private int code;
            private String remark;
        }
        /**
         * åˆ†ç‰‡çŠ¶æ€
         */
server/src/main/java/com/doumee/core/job/JobParam.java
@@ -1,9 +1,10 @@
package com.doumee.core.job;
import com.alibaba.fastjson.JSON;
import com.doumee.core.constants.Constants;
import java.util.*;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
/**
 * JOB入参
server/src/main/java/com/doumee/core/utils/Secure.java
@@ -1,13 +1,8 @@
package com.doumee.core.utils;
import com.alibaba.fastjson.JSON;
import com.doumee.core.model.ApiResponse;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import org.springframework.util.DigestUtils;
import javax.servlet.http.HttpServletRequest;
/**
 * å®‰å…¨å¤„理工具类
server/src/main/java/com/doumee/core/utils/qiyeweixin/model/response/QywxBaseResponse.java
@@ -5,8 +5,6 @@
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
 * @author æ±Ÿè¹„蹄
 * @date 2023/11/23 14:03
server/src/main/java/com/doumee/core/utils/qiyeweixin/model/response/QywxBaseSingleResponse.java
@@ -1,6 +1,5 @@
package com.doumee.core.utils.qiyeweixin.model.response;
import com.alibaba.fastjson.annotation.JSONField;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
server/src/main/java/com/doumee/core/utils/qiyeweixin/model/response/QywxUserAttrInfoResponse.java
@@ -1,11 +1,8 @@
package com.doumee.core.utils.qiyeweixin.model.response;
import com.alibaba.fastjson.JSONObject;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
 * @author æ±Ÿè¹„蹄
server/src/main/java/com/doumee/dao/dto/CreatePageDTO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
package com.doumee.dao.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
 * Created by IntelliJ IDEA.
 *
 * @Author : Rk
 * @create 2025/4/8 9:20
 */
@Data
public class CreatePageDTO {
    @ApiModelProperty(value = "页面地址标识")
    private  Integer pageIndex;
}
server/src/main/java/com/doumee/dao/vo/FootDataVO.java
@@ -4,8 +4,6 @@
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
 * Created by IntelliJ IDEA.
 *
@@ -15,6 +13,8 @@
@Data
public class FootDataVO {
    @ApiModelProperty(value = "文件存访问前缀")
    private String fileDir;
    @ApiModelProperty(value = "foot二维码")
    private String footImgUrl;
server/src/main/java/com/doumee/service/business/impl/CarouselServiceImpl.java
@@ -1,7 +1,6 @@
package com.doumee.service.business.impl;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.doumee.biz.system.SystemDictDataBiz;
import com.doumee.core.constants.Constants;
import com.doumee.core.constants.ResponseStatus;
server/src/main/java/com/doumee/service/system/impl/SystemDictServiceImpl.java
@@ -73,7 +73,8 @@
    @Override
    public SystemDict findOne(SystemDict systemDict) {
        Wrapper<SystemDict> wrapper = new QueryWrapper<>(systemDict);
        QueryWrapper<SystemDict> wrapper = new QueryWrapper<>(systemDict);
        wrapper.lambda().last(" limit 1");
        return systemDictMapper.selectOne(wrapper);
    }
server/src/main/resources/application.yml
@@ -26,6 +26,13 @@
    multipart:
      max-file-size: 50MB
      max-request-size: 50MB
  freemarker:
    cache: false  #关闭模板缓存,方便测试
    settings:
      template_update_delay: 0 #检查模板更新延迟时间,设置为0表示立即检查,如果时间大于0会有缓存不方便进行模板测试
    suffix: .html             #指定Freemarker模板文件的后缀名
#    template-loader-path: classpath:/templates #指定模板文件所在的路径
    template-loader-path: file:D:/static/templates #指定模板文件所在的路径
# MyBatis配置
mybatis-plus:
server/src/main/resources/templates/about.html
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,284 @@
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>关于我们</title>
    <link rel="stylesheet" href="./assets/common.css">
    <link rel="stylesheet" href="./assets/about.css">
    <link rel="stylesheet" href="./assets/animate.css">
    <link rel="stylesheet" href="./assets/animate.min.css">
    <link rel="stylesheet" href="./assets/swiper.css">
    <link rel="stylesheet" href="./assets/selectFilter.css">
    <script src="./js/jquery.js"></script>
    <script src="./js/swiper.js"></script>
    <script src="./js/about.js"></script>
    <script src="./js/selectFilter.js"></script>
</head>
<body>
    <div class="index">
        <div id="back-to-top">
            <img src="./assets/icon/bottom_ic_top@2x.png" alt="" />
        </div>
        <div id="header">
            <div class="nav">
                <div class="nav-logo">
                    <img src="./assets/images/top_logo@2x.png" alt="logo">
                </div>
                <ul>
                    <li>
                        <a href="./index.html">首页</a>
                    </li>
                    <li>
                        <a href="./intelligent_system.html">智慧系统</a>
                    </li>
                    <li>
                        <a href="./solution.html">解决方案</a>
                    </li>
                    <li>
                        <a href="./alot.html">Alot物联</a>
                    </li>
                    <li>
                        <a href="./dynamics.html">最新动态</a>
                    </li>
                    <li id="a">
                        <a href="./about.html" onclick="dingwei('a')">关于我们</a>
                    </li>
                    <li id="b">
                        <a href="./about.html#section1" onclick="dingwei('b')">渠道合作</a>
                    </li>
                </ul>
                <a href="./about.html#section1" class="nav-btn" onclick="dingwei('b')">免费试用</a>
            </div>
        </div>
        <div style="width: 100%; height: 70px;"></div>
        <div class="index-banner">
            <div class="index-banner-c">
                <div class="index-banner-c-a">关于我们 è±†ç±³ç§‘技</div>
                <div class="index-banner-c-b">智慧场馆营销SaaS系统+数智解决方案服务</div>
                <div class="index-banner-c-c">
                    <span>咨询详情</span>
                    <img src="./assets/images/btn_ar@2x.png" alt="">
                </div>
            </div>
        </div>
        <div class="index-y">
            <div class="title">公司介绍</div>
            <div class="info">专业文体旅数智化解决方案服务商</div>
            <div class="index-y-c">
                <div class="index-y-c-img">
                    <img src="./assets/images/aboutus_img1@2x.png" alt="">
                </div>
                <div class="index-y-c-info">
                    <img class="logo" src="./assets/images/aboutus_ic_logo@2x.png" alt="">
                    <span>安徽豆米科技有限公司,成立于2014年,总部位于合肥市,是国家高新技术企业、双软认证企业、科创板挂牌企业。公司专注大数据、互联网、物联网及AI深度学习等领域技术的创新研发,持续聚焦数智体育平台、智慧体育场馆、24H无人值守、景区游乐园、空间智慧管理五大业务方向。
十多年来以源头技术创新,引领产业融合应用,构建起"云+大数据+5G+物联网+AIoT"五位一体的空间智慧化运营管理体系,致力为文体旅行业提供整套软硬件及智慧场景解决方案,助力场馆实现全场景智能化升级改造,目前已为3000+客户提供服务。</span>
                    <img class="icon" src="./assets/images/aboutus_ic_1@2x.png" alt="">
                </div>
            </div>
            <div class="index-y-l">
                <div class="index-y-l-item">
                    <img src="./assets/images/aboutus_ic_yuanjing@2x.png" alt="">
                    <span>成为全球领先的文体旅数智化服务商,引领智慧空间新生态。</span>
                </div>
                <div class="index-y-l-item">
                    <img src="./assets/images/aboutus_ic_shiming@2x.png" alt="">
                    <span>构建以赋能场馆为核心的智慧化运营管理体系,致力于为全球客户提供具有前瞻性、创造性、针对性和易实施的解决方案!</span>
                </div>
                <div class="index-y-l-item">
                    <img src="./assets/images/aboutus_ic_jiazhiguan@2x.png" alt="">
                    <span>数智创新,追求体验。</span>
                </div>
            </div>
        </div>
        <div class="index-y" style="background: linear-gradient( 134deg, #FFFFFF 0%, #FFF7F0 100%);">
            <div class="title">公司资质</div>
            <div class="info">目前公司已经荣获国家高新技术企业、国家科技型中小企业、安徽省双软认证企业,拥有资质认证60+,软件著作100+</div>
            <div class="index-y-img">
                <img src="./assets/images/aboutus_img_zizhi@2x.png" alt="">
            </div>
        </div>
        <div class="index-y" id="section1">
            <div class="title">渠道合作</div>
            <div class="info">留下您的信息,我们将尽快联系您</div>
            <div class="index-y-from">
                <div class="from-item">
                    <div class="from-item-label"><b>*</b>产品名称:</div>
                    <div class="from-item-val">
                        <div class="filter-box">
                            <div class="filter-text">
                                <input class="filter-title" type="text" readonly placeholder="请选择智慧系统" />
                                <i class="icon icon-filter-arrow"></i>
                            </div>
                            <select name="filter" id="options"></select>
                        </div>
                    </div>
                </div>
                <div class="from-item">
                    <div class="from-item-label"><b>*</b>姓 åï¼š</div>
                    <div class="from-item-val">
                        <input type="text" id="name" placeholder="请输入您的姓名">
                    </div>
                </div>
                <div class="from-item">
                    <div class="from-item-label"><b>*</b>电 è¯ï¼š</div>
                    <div class="from-item-val">
                        <input type="text" id="phone" placeholder="请输入您的电话">
                    </div>
                </div>
                <div class="from-item">
                    <div class="from-item-label">邮 ç®±ï¼š</div>
                    <div class="from-item-val">
                        <input type="text" id="email" placeholder="请输入您的邮箱">
                    </div>
                </div>
                <div class="from-item">
                    <div class="from-item-label">单位名称:</div>
                    <div class="from-item-val">
                        <input type="text" id="unit" placeholder="请输入您的单位名称">
                    </div>
                </div>
            </div>
            <div class="index-y-btn" id="btnSub">提交合作</div>
        </div>
        <div class="footer">
            <div class="footer-c">
                <div class="footer-c-logo">
                    <div class="footer-c-logo-c">
                        <img src="./assets/images/bottom_logo@2x.png" alt="" />
                    </div>
                </div>
                <div class="footer-c-n">
                    <div class="footer-c-n-box">
                        <div class="footer-c-n-item" id="zhihui">
                            <div class="footer-c-n-item-label">智慧系统</div>
                        </div>
                        <div class="footer-c-n-item" id="fangan">
                            <div class="footer-c-n-item-label">解决方案</div>
                        </div>
                        <div class="footer-c-n-item">
                            <div class="footer-c-n-item-label">联系我们</div>
                            <div class="footer-c-n-item-row" style="color: #FF7900; font-size: 30px;" id="linkPhone"></div>
                            <div class="footer-c-n-item-row" id="phone"></div>
                            <div class="footer-c-n-item-row" id="serviceDate"></div>
                            <div class="footer-c-n-item-row" id="companyAddr"></div>
                        </div>
                        <div class="footer-c-n-item">
                            <div class="footer-c-n-item-qrcode">
                                <img src="" id="qrcode" />
                                <span>微信扫码免费试用</span>
                            </div>
                        </div>
                    </div>
                </div>
                <div class="footer-c-info" id="footerInfo">
                    <!--                Copyright Â© 2022-2027 | å®‰å¾½è±†ç±³ç§‘技有限公司 | <a href="/">皖ICP备14008319号-2 | çš–ICP备14008319号-5</a>-->
                </div>
            </div>
        </div>
    </div>
    <script type="text/javascript">
        let url = 'http://121.41.112.139:8099'
        function dingwei(id) {
            $('.underline').remove()
            $(`#${id}`).append('<div class="underline"></div>')
        }
        // èŽ·å–foot配置
        $.ajax({
            async: false,
            url: url + '/dmttwebsite/web/api/getFoodDataVO',
            type: 'GET',
            success: function (res) {
                console.log(res)
                $('#companyAddr').text('公司地址:' + res.data.address)
                $('#serviceDate').text('服务时间:' + res.data.serverTime)
                $('#phone').text('联系手机:' + res.data.linkMobile)
                $('#linkPhone').text(res.data.linkPhone)
                $('#footerInfo').text(res.data.footWords)
                $('#qrcode').attr('src', res.data.footFullImgUrl)
                for (const item of res.data.solveScheme) {
                    $('#fangan').append('<div class="footer-c-n-item-row"><a href="' + item.address + '">' + item.name + '</a></div>')
                }
                for (const item of res.data.wisdomSystem) {
                    $('#zhihui').append('<div class="footer-c-n-item-row"><a href="' + item.address + '">' + item.name + '</a></div>')
                }
            }
        })
        $.ajax({
            async: false,
            url: 'http://www.dmtt.run:81/web/productList',
            type: 'POST',
            success: function (res) {
                let options = document.getElementById('options')
                for (const item of res.data) {
                    options.append(new Option(item.name, item.id))
                }
            },
            error: function (error) {
                console.log(error)
            }
        })
        var product = null
        //这里是初始化
        $('.filter-box').selectFilter({
            callBack : function (val){
                console.log(val)
                product = val
            }
        });
        $('#btnSub').click(() => {
            let name = $('#name').val()
            let phone = $('#phone').val()
            let email = $('#email').val()
            let unit = $('#unit').val()
            if (!product) {
                alert('请选择产品名称')
                return
            }
            if (!name) {
                alert('请输入姓名')
                return
            }
            if (!phone) {
                alert('请输入电话')
                return
            }
            $.ajax({
                url: 'http://www.dmtt.run:81/web/createCustomer',
                data: JSON.stringify({
                    productId: product,
                    name: name,
                    phone: phone,
                    email: email,
                    company: unit
                }),
                type: "post",
                dataType: "json",
                crossDomain: true,
                contentType: "application/json",
                success: function (res) {
                    if (res.code !== 200) {
                        alert(res.message)
                        return
                    }
                    alert('您好,您的数据已提交,我们会尽快回复您!')
                    $('#name').val('');
                    $('#phone').val('');
                    $('#email').val('');
                    $('#unit').val('');
                    $('.filter-title').val('')
                    product = null
                },
                error: function (error) {
                    alert('提交失败!')
                }
            });
        })
    </script>
</body>
</html>
server/src/main/resources/templates/alot.html
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,450 @@
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>alot物联</title>
    <link rel="stylesheet" href="./assets/common.css">
    <link rel="stylesheet" href="./assets/alot.css">
    <link rel="stylesheet" href="./assets/animate.css">
    <link rel="stylesheet" href="./assets/animate.min.css">
    <link rel="stylesheet" href="./assets/swiper.css">
    <script src="./js/jquery.js"></script>
    <script src="./js/swiper.js"></script>
    <script src="./js/alot.js"></script>
    <script src="./js/selectFilter.js"></script>
    <link rel="stylesheet" href="./assets/selectFilter.css">
</head>
<body>
<div class="index">
    <div id="back-to-top">
        <img src="./assets/icon/bottom_ic_top@2x.png" alt="" />
    </div>
    <div id="header">
        <div class="nav">
            <div class="nav-logo">
                <img src="./assets/images/top_logo@2x.png" alt="logo">
            </div>
            <ul>
                <li>
                    <a href="./index.html">首页</a>
                </li>
                <li>
                    <a href="./intelligent_system.html">智慧系统</a>
                </li>
                <li>
                    <a href="./solution.html">解决方案</a>
                </li>
                <li>
                    <a href="./alot.html">Alot物联</a>
                    <div class="underline"></div>
                </li>
                <li>
                    <a href="./dynamics.html">最新动态</a>
                </li>
                <li>
                    <a href="./about.html">关于我们</a>
                </li>
                <li>
                    <a href="./about.html#section1">渠道合作</a>
                </li>
            </ul>
            <a href="./about.html#section1" class="nav-btn">免费试用</a>
        </div>
    </div>
    <div style="width: 100%; height: 70px;"></div>
    <div class="index-banner">
        <div class="index-banner-c">
            <div class="index-banner-c-a">智慧物联、万物互联</div>
            <div class="index-banner-c-b">专业的智慧场馆运营管理系统平台</div>
            <div class="index-banner-c-c">
                <span>咨询详情</span>
                <img src="./assets/images/btn_ar@2x.png" alt="">
            </div>
        </div>
    </div>
    <div class="index-y">
        <div class="title">AIoT,让智慧场馆与科技融合</div>
        <div class="info">智能物联</div>
        <div class="index-y-list">
            <div class="index-y-list-item">
                <img src="./assets/icon/wulian_ic1@2x.png" alt="">
                <span>智能闸机&门禁</span>
            </div>
            <div class="index-y-list-item">
                <img src="./assets/icon/wulian_ic2@2x.png" alt="">
                <span>智能体温核查</span>
            </div>
            <div class="index-y-list-item">
                <img src="./assets/icon/wulian_ic3@2x.png" alt="">
                <span>智能客流统计</span>
            </div>
            <div class="index-y-list-item">
                <img src="./assets/icon/wulian_ic4@2x.png" alt="">
                <span>智能自助售取票</span>
            </div>
            <div class="index-y-list-item">
                <img src="./assets/icon/wulian_ic5@2x.png" alt="">
                <span>智能储物&租赁柜锁</span>
            </div>
            <div class="index-y-list-item">
                <img src="./assets/icon/wulian_ic6@2x.png" alt="">
                <span>无人售货机</span>
            </div>
            <div class="index-y-list-item">
                <img src="./assets/icon/wulian_ic7@2x.png" alt="">
                <span>智能手环自助</span>
            </div>
            <div class="index-y-list-item">
                <img src="./assets/icon/wulian_ic8@2x.png" alt="">
                <span>智能灯控</span>
            </div>
            <div class="index-y-list-item">
                <img src="./assets/icon/wulian_ic9@2x.png" alt="">
                <span>AI运动抓拍</span>
            </div>
            <div class="index-y-list-item">
                <img src="./assets/icon/wulian_ic10@2x.png" alt="">
                <span>智能停车场</span>
            </div>
            <div class="index-y-list-item">
                <img src="./assets/icon/wulian_ic11@2x.png" alt="">
                <span>智能节水淋浴</span>
            </div>
            <div class="index-y-list-item">
                <img src="./assets/icon/wulian_ic12@2x.png" alt="">
                <span>大数据分析展示</span>
            </div>
        </div>
        <div class="index-fa-btn">
            <span>了解详情</span>
            <img src="./assets/images/btn_ar@2x.png" alt="" />
        </div>
    </div>
    <div class="index-x">
        <div class="index-x-list">
            <div class="index-x-list-item">
                <div class="hz">
                    <div class="hz-info">
                        <div class="hz-info-label">智能闸机通道&门禁系统</div>
                        <div class="hz-info-row">
                            <img src="./assets/icon/ic_gou@2x.png" alt="">
                            <span>支持人脸/二维码/指纹/身份证/IC卡/手环/指静脉识别</span>
                        </div>
                        <div class="hz-info-row">
                            <img src="./assets/icon/ic_gou@2x.png" alt="">
                            <span>闸机支持自动计时/扣费/扣次等进出场馆的消费</span>
                        </div>
                        <div class="hz-info-row">
                            <img src="./assets/icon/ic_gou@2x.png" alt="">
                            <span>25-30人/分钟,快速通行 </span>
                        </div>
                        <div class="hz-info-row">
                            <img src="./assets/icon/ic_gou@2x.png" alt="">
                            <span>直流无刷电机免维护,全新数字定位,电子防撞机芯</span>
                        </div>
                        <div class="hz-info-row">
                            <img src="./assets/icon/ic_gou@2x.png" alt="">
                            <span>户外防水,可直接露天使用</span>
                        </div>
                    </div>
                    <div class="hz-img">
                        <img src="./assets/images/wulian_img_zhaji@2x.png" alt="">
                    </div>
                </div>
            </div>
            <div class="index-x-list-item">
                <div class="hz">
                    <div class="hz-img">
                        <img src="./assets/images/wulian_img_tiwenhecha@2x.png" alt="">
                    </div>
                    <div class="hz-info">
                        <div class="hz-info-label">智能体温核查系统</div>
                        <div class="hz-info-row">
                            <img src="./assets/icon/ic_gou@2x.png" alt="">
                            <span>8英寸IPS触摸屏</span>
                        </div>
                        <div class="hz-info-row">
                            <img src="./assets/icon/ic_gou@2x.png" alt="">
                            <span>50000张面部大容量,1:N人脸识别</span>
                        </div>
                        <div class="hz-info-row">
                            <img src="./assets/icon/ic_gou@2x.png" alt="">
                            <span>0.3S极速识别,快速通行</span>
                        </div>
                        <div class="hz-info-row">
                            <img src="./assets/icon/ic_gou@2x.png" alt="">
                            <span>多光谱宽动态人脸识别</span>
                        </div>
                        <div class="hz-info-row">
                            <img src="./assets/icon/ic_gou@2x.png" alt="">
                            <span>双目活体识别,防假体攻击</span>
                        </div>
                    </div>
                </div>
            </div>
            <div class="index-x-list-item">
                <div class="hz">
                    <div class="hz-info">
                        <div class="hz-info-label">智能客流统计系统</div>
                        <div class="hz-info-row">
                            <img src="./assets/icon/ic_gou@2x.png" alt="">
                            <span>双目立体视觉技术</span>
                        </div>
                        <div class="hz-info-row">
                            <img src="./assets/icon/ic_gou@2x.png" alt="">
                            <span>内嵌深度学习算法,AI智能客流摄像机</span>
                        </div>
                        <div class="hz-info-row">
                            <img src="./assets/icon/ic_gou@2x.png" alt="">
                            <span>400万像素 CMOS传感器</span>
                        </div>
                        <div class="hz-info-row">
                            <img src="./assets/icon/ic_gou@2x.png" alt="">
                            <span>内置WiFi天线,无线传输距离不低于80ç±³</span>
                        </div>
                        <div class="hz-info-row">
                            <img src="./assets/icon/ic_gou@2x.png" alt="">
                            <span>客流统计准确率不小于99%</span>
                        </div>
                        <div class="hz-info-row">
                            <img src="./assets/icon/ic_gou@2x.png" alt="">
                            <span>支持徘徊排除功能</span>
                        </div>
                    </div>
                    <div class="hz-img">
                        <img src="./assets/images/wulian_img_keliutongji@2x.png" alt="">
                    </div>
                </div>
            </div>
            <div class="index-x-list-item">
                <div class="hz">
                    <div class="hz-img">
                        <img src="./assets/images/wulian_img_qupiao@2x.png" alt="">
                    </div>
                    <div class="hz-info">
                        <div class="hz-info-label">智能自助售取票系统</div>
                        <div class="hz-info-row">
                            <img src="./assets/icon/ic_gou@2x.png" alt="">
                            <span>32.5寸液晶触摸屏,分辨率1920*1080</span>
                        </div>
                        <div class="hz-info-row">
                            <img src="./assets/icon/ic_gou@2x.png" alt="">
                            <span>自助购票、出票</span>
                        </div>
                        <div class="hz-info-row">
                            <img src="./assets/icon/ic_gou@2x.png" alt="">
                            <span>支持人脸、二维码、刷卡自助购票</span>
                        </div>
                        <div class="hz-info-row">
                            <img src="./assets/icon/ic_gou@2x.png" alt="">
                            <span>会员自助办卡,查询、充值</span>
                        </div>
                    </div>
                </div>
            </div>
            <div class="index-x-list-item">
                <div class="hz">
                    <div class="hz-info">
                        <div class="hz-info-label">智能无人零售售货系统</div>
                        <div class="hz-info-row">
                            <img src="./assets/icon/ic_gou@2x.png" alt="">
                            <span>21.5寸触屏至臻体验</span>
                        </div>
                        <div class="hz-info-row">
                            <img src="./assets/icon/ic_gou@2x.png" alt="">
                            <span>刷脸支付、方便快捷</span>
                        </div>
                        <div class="hz-info-row">
                            <img src="./assets/icon/ic_gou@2x.png" alt="">
                            <span>强劲动力,持续恒温</span>
                        </div>
                        <div class="hz-info-row">
                            <img src="./assets/icon/ic_gou@2x.png" alt="">
                            <span>云平台远程管理</span>
                        </div>
                    </div>
                    <div class="hz-img">
                        <img src="./assets/images/wulian_img_wurenshouhuo@2x.png" alt="">
                    </div>
                </div>
            </div>
            <div class="index-x-list-item">
                <div class="hz">
                    <div class="hz-img">
                        <img src="./assets/images/wulian_img_chuwu@2x.png" alt="">
                    </div>
                    <div class="hz-info">
                        <div class="hz-info-label">智能储物&租赁柜锁系统</div>
                        <div class="hz-info-row">
                            <img src="./assets/icon/ic_gou@2x.png" alt="">
                            <span>支持人脸,智能运动手环,刷卡、二维码、指纹等多种识别方式</span>
                        </div>
                        <div class="hz-info-row">
                            <img src="./assets/icon/ic_gou@2x.png" alt="">
                            <span>智能化识别,快速开关储物柜&租赁柜</span>
                        </div>
                        <div class="hz-info-row">
                            <img src="./assets/icon/ic_gou@2x.png" alt="">
                            <span>体育器械快速租赁,轻松运动</span>
                        </div>
                        <div class="hz-info-row">
                            <img src="./assets/icon/ic_gou@2x.png" alt="">
                            <span>柜锁状态查看,物品丢失快速定位</span>
                        </div>
                        <div class="hz-info-row">
                            <img src="./assets/icon/ic_gou@2x.png" alt="">
                            <span>豆米跳跳系统集成,运营管理更加高效</span>
                        </div>
                    </div>
                </div>
            </div>
            <div class="index-x-list-item">
                <div class="hz">
                    <div class="hz-info">
                        <div class="hz-info-label">智能灯控系统</div>
                        <div class="hz-info-row">
                            <img src="./assets/icon/ic_gou@2x.png" alt="">
                            <span>无人化控制,入场自动开灯,离场自动关灯</span>
                        </div>
                        <div class="hz-info-row">
                            <img src="./assets/icon/ic_gou@2x.png" alt="">
                            <span>手机/PC端远程控制,高效管理</span>
                        </div>
                        <div class="hz-info-row">
                            <img src="./assets/icon/ic_gou@2x.png" alt="">
                            <span>人工智能与物联网技术融合,智慧场馆系统高度集成</span>
                        </div>
                    </div>
                    <div class="hz-img">
                        <img src="./assets/images/wulian_img_dengkong@2x.png" alt="">
                    </div>
                </div>
            </div>
            <div class="index-x-list-item">
                <div class="hz">
                    <div class="hz-img">
                        <img src="./assets/images/wulian_img_jieshui@2x.png" alt="">
                    </div>
                    <div class="hz-info">
                        <div class="hz-info-label">智能节水淋浴系统</div>
                        <div class="hz-info-row">
                            <img src="./assets/icon/ic_gou@2x.png" alt="">
                            <span>支持刷卡、扫码、密码、蓝牙等消费场景,方便选择</span>
                        </div>
                        <div class="hz-info-row">
                            <img src="./assets/icon/ic_gou@2x.png" alt="">
                            <span>智慧场馆系统高度集成,会员卡消费绑定,财务数据一目了然</span>
                        </div>
                        <div class="hz-info-row">
                            <img src="./assets/icon/ic_gou@2x.png" alt="">
                            <span>有效避免水资源浪费问题,为场馆节省成本</span>
                        </div>
                    </div>
                </div>
            </div>
            <div class="index-x-list-item">
                <div class="hz">
                    <div class="hz-info">
                        <div class="hz-info-label">智能手环自助系统</div>
                        <div class="hz-info-row">
                            <img src="./assets/icon/ic_gou@2x.png" alt="">
                            <span>监测身体各项指标,如心率,心跳,血氧,血压,步数等数据</span>
                        </div>
                        <div class="hz-info-row">
                            <img src="./assets/icon/ic_gou@2x.png" alt="">
                            <span>智能手环与会员卡的高度集成,实现刷卡进出和消费等场景</span>
                        </div>
                        <div class="hz-info-row">
                            <img src="./assets/icon/ic_gou@2x.png" alt="">
                            <span>用户小程序个人运动数据自动生成,运动情况一目了然</span>
                        </div>
                    </div>
                    <div class="hz-img">
                        <img src="./assets/images/wulian_img_shouhuan@2x.png" alt="">
                    </div>
                </div>
            </div>
            <div class="index-x-list-item">
                <div class="hz">
                    <div class="hz-img">
                        <img src="./assets/images/wulian_img_zhuapai@2x.png" alt="">
                    </div>
                    <div class="hz-info">
                        <div class="hz-info-label">智能AI运动抓拍系统</div>
                        <div class="hz-info-row">
                            <img src="./assets/icon/ic_gou@2x.png" alt="">
                            <span>特有的AI人脸识别技术,自动捕捉运动精彩瞬间</span>
                        </div>
                        <div class="hz-info-row">
                            <img src="./assets/icon/ic_gou@2x.png" alt="">
                            <span>会员精彩瞬间自动生成,支持分享</span>
                        </div>
                    </div>
                </div>
            </div>
            <div class="index-x-list-item">
                <div class="hz">
                    <div class="hz-info">
                        <div class="hz-info-label">智能体测分析系统</div>
                        <div class="hz-info-row">
                            <img src="./assets/icon/ic_gou@2x.png" alt="">
                            <span>通过体质健康数据采集终端AI算法和身体数据测量设备,完成对身体30余项身体指标的数据采集和分析</span>
                        </div>
                        <div class="hz-info-row">
                            <img src="./assets/icon/ic_gou@2x.png" alt="">
                            <span>体重分析、BMI分析</span>
                        </div>
                        <div class="hz-info-row">
                            <img src="./assets/icon/ic_gou@2x.png" alt="">
                            <span>体脂率分析、肌肉分析</span>
                        </div>
                        <div class="hz-info-row">
                            <img src="./assets/icon/ic_gou@2x.png" alt="">
                            <span>肥胖度分析、体型分析</span>
                        </div>
                        <div class="hz-info-row">
                            <img src="./assets/icon/ic_gou@2x.png" alt="">
                            <span>体重控制、大屏展示</span>
                        </div>
                    </div>
                    <div class="hz-img">
                        <img src="./assets/images/wulian_img_tice@2x.png" alt="">
                    </div>
                </div>
            </div>
            <div class="index-x-list-item">
                <div class="hz">
                    <div class="hz-img">
                        <img src="./assets/images/wulian_img_budao@2x.png" alt="">
                    </div>
                    <div class="hz-info">
                        <div class="hz-info-label">智能健身步道系统</div>
                        <div class="hz-info-row">
                            <img src="./assets/icon/ic_gou@2x.png" alt="">
                            <span>通过蓝牙定位、人脸识别、射频识别等物联网技术,以智慧互动大屏、沿途数据采集站为主要载体,实现对运动人群群覆盖服务。</span>
                        </div>
                        <div class="hz-info-row">
                            <img src="./assets/icon/ic_gou@2x.png" alt="">
                            <span>步道信息数据统计</span>
                        </div>
                        <div class="hz-info-row">
                            <img src="./assets/icon/ic_gou@2x.png" alt="">
                            <span>运动信息和运动排行展示</span>
                        </div>
                        <div class="hz-info-row">
                            <img src="./assets/icon/ic_gou@2x.png" alt="">
                            <span>可视化管理</span>
                        </div>
                        <div class="hz-info-row">
                            <img src="./assets/icon/ic_gou@2x.png" alt="">
                            <span>多种数据接口</span>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
    <div id="footer"></div>
</div>
</body>
</html>
server/src/main/resources/templates/components/footer.html
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,334 @@
    <style>
        .footer {
            width: 100%;
            display: flex;
            flex-direction: column;
        }
        .footer-form {
            width: 100%;
            height: 106px;
            background: #ffffff;
            display: flex;
            align-items: center;
            justify-content: center;
            box-shadow: inset 0 1px 0 0 #DFE2E8;
        }
        .footer-form-list {
            width: 1200px;
            height: 100%;
            display: flex;
            align-items: center;
            justify-content: space-between;
        }
        .footer-form-list-title {
            display: flex;
            align-items: center;
        }
        .footer-form-list-title span:nth-child(1) {
            font-weight: 600;
            font-size: 26px;
            color: #191B1F;
            margin-right: 20px;
        }
        .footer-form-list-title span:nth-child(2) {
            font-weight: 400;
            font-size: 16px;
            color: #7B7F87;
        }
        .footer-form-list-i {
            display: flex;
            align-items: center;
        }
        .filter-text {
            background: #FAFBFF;
            border-radius: 30px;
        }
        .footer-form-list-i .items {
            width: 200px;
            height: 46px;
            margin-right: 20px;
            background: #FAFBFF;
            border-radius: 30px;
        }
        .items input {
            width: 100%;
            height: 100%;
            font-weight: 400;
            font-size: 15px;
            color: #222222;
            text-align: center;
            outline: none;
            margin-right: 15px;
        }
        .footer-form-list-i-btn {
            width: 124px;
            height: 46px;
            line-height: 46px;
            text-align: center;
            background: #FF7900;
            border-radius: 30px;
            font-weight: 500;
            font-size: 16px;
            color: #FFFFFF;
            cursor: pointer;
            transition: .5s;
        }
        .footer-form-list-i-btn:hover {
            background: #FF8C24;
        }
        .footer-c {
            width: 100%;
            display: flex;
            flex-direction: column;
            background: #2E333A;
        }
        .footer-c-logo {
            width: 100%;
            height: 130px;
            display: flex;
            align-items: center;
            justify-content: center;
            border-bottom: 1px solid #393F48;
        }
        .footer-c-logo-c {
            width: 1200px;
            height: 100%;
            display: flex;
            align-items: center;
        }
        .footer-c-logo-c img {
            width: 160px;
            height: 52px;
        }
        .footer-c-n {
            width: 100%;
            padding: 40px 0;
            box-sizing: border-box;
            border-bottom: 1px solid #393F48;
        }
        .footer-c-n-box {
            width: 1200px;
            margin: 0 auto;
            display: flex;
            align-items: start;
            justify-content: space-between;
        }
        .footer-c-n-item {
            display: flex;
            flex-direction: column;
        }
        .footer-c-n-item-label {
            font-weight: 500;
            font-size: 16px;
            color: #E5E5E5;
            margin-bottom: 24px;
        }
        .footer-c-n-item-row {
            font-weight: 400;
            font-size: 14px;
            color: #9196A1;
            margin-bottom: 15px;
        }
        .footer-c-n-item-row a {
            font-weight: 400;
            font-size: 14px;
            color: #9196A1;
        }
        .footer-c-n-item-row a:hover {
            color: #FF7900;
        }
        .footer-c-n-item-row:last-child {
            margin: 0 !important;
        }
        .footer-c-n-item-qrcode {
            width: 120px;
            display: flex;
            flex-direction: column;
        }
        .footer-c-n-item-qrcode img {
            width: 120px;
            height: 120px;
        }
        .footer-c-n-item-qrcode span {
            width: 100%;
            text-align: center;
            font-weight: 400;
            font-size: 13px;
            color: #E5E5E5;
            margin-top: 18px;
        }
        .footer-c-info {
            width: 100%;
            height: 79px;
            line-height: 79px;
            text-align: center;
            font-weight: 400;
            font-size: 14px;
            color: #7B7F87;
        }
        .footer-c-info a {
            font-weight: 400;
            font-size: 14px;
            color: #7B7F87;
        }
    </style>
    <div class="footer">
        <div class="footer-form">
            <div class="footer-form-list">
                <div class="footer-form-list-title">
                    <span>渠道合作</span>
                    <span>开启智联生态,携手共赢未来</span>
                </div>
                <div class="footer-form-list-i">
                    <div class="items">
                        <div class="filter-box">
                            <div class="filter-text">
                                <input class="filter-title" type="text" readonly placeholder="请选择智慧系统" />
                                <i class="icon icon-filter-arrow"></i>
                            </div>
                            <select name="filter" id="options"></select>
                        </div>
                    </div>
                    <div class="items">
                        <input type="text" id="name" placeholder="请输入您的称呼" />
                    </div>
                    <div class="items">
                        <input type="text" id="phone" maxlength="11" placeholder="请输入您的手机号" />
                    </div>
                    <div class="footer-form-list-i-btn" id="btnSub">申请合作</div>
                </div>
            </div>
        </div>
        <div class="footer-c">
            <div class="footer-c-logo">
                <div class="footer-c-logo-c">
                    <img src="./assets/images/bottom_logo@2x.png" alt="" />
                </div>
            </div>
            <div class="footer-c-n">
                <div class="footer-c-n-box">
                    <div class="footer-c-n-item" id="zhihui">
                        <div class="footer-c-n-item-label">智慧系统</div>
                        <#if bottom.wisdomSystem ??>
                            <#list bottom.wisdomSystem as item>
                                <div class="footer-c-n-item-row"><a href="${item.address!''}">${item.name!''}</a></div>
                            </#list>
                        </#if>
                    </div>
                    <div class="footer-c-n-item" id="fangan">
                        <div class="footer-c-n-item-label">解决方案</div>
                        <#if bottom.solveScheme ??>
                            <#list bottom.solveScheme as item>
                            <div class="footer-c-n-item-row"><a href="${item.address!''}">${item.name!''}</a></div>
                             </#list>
                        </#if>
                    </div>
                    <div class="footer-c-n-item" id="fangan1">
                        <div class="footer-c-n-item-label">荣誉资质</div>
                        <#if bottom.honors ??>
                            <#list bottom.honors as item>
                            <div class="footer-c-n-item-row"><a href="${item.address!''}">${item.name!''}</a></div>
                             </#list>
                        </#if>
                    </div>
                    <div class="footer-c-n-item">
                        <div class="footer-c-n-item-label">联系我们</div>
                        <div class="footer-c-n-item-row" style="color: #FF7900; font-size: 30px;" id="linkPhone">${bottom.linkPhone!''}</div>
                        <div class="footer-c-n-item-row" id="phone">联系手机:${bottom.linkMobile!''}</div>
                        <div class="footer-c-n-item-row" id="serviceDate">服务时间:${bottom.serverTime!''}</div>
                        <div class="footer-c-n-item-row" id="companyAddr">公司地址:${bottom.address!''}</div>
                    </div>
                    <div class="footer-c-n-item">
                        <div class="footer-c-n-item-qrcode">
                            <img src="${bottom.footFullImgUrl!''}" id="qrcode" />
                            <span>微信扫码免费试用</span>
                        </div>
                    </div>
                    <div class="footer-c-n-item">
                        <div class="footer-c-n-item-qrcode">
                            <img src="${bottom.footFullImgUrl2!''}"   />
                            <span>联系客服</span>
                        </div>
                    </div>
                </div>
            </div>
            <div class="footer-c-info" id="footerInfo">${bottom.footWords!''}</div>
        </div>
    </div>
    <script>
        $(document).ready(function() {
            let url = 'http://121.41.112.139:8099'
            var product = null
            $.ajax({
                async: false,
                url: 'http://www.dmtt.run:81/web/productList',
                type: 'POST',
                success: function (res) {
                    console.log(res)
                    let options = document.getElementById('options')
                    for (const item of res.data) {
                        $('#options').append(new Option(item.name, item.id))
                    }
                },
                error: function (error) {
                    console.log(error)
                }
            })
            $('.filter-box').selectFilter({
                callBack : function (val){
                    console.log(val)
                    product = val
                }
            });
            $('#btnSub').click(() => {
                let name = $('#name').val()
                let phone = $('#phone').val()
                let email = $('#email').val()
                if (!product) {
                    alert('请选择产品名称')
                    return
                }
                if (!name) {
                    alert('请输入姓名')
                    return
                }
                if (!phone) {
                    alert('请输入电话')
                    return
                }
                $.ajax({
                    url: 'http://www.dmtt.run:81/web/createCustomer',
                    data: JSON.stringify({
                        productId: product,
                        name: name,
                        phone: phone,
                        email: email
                    }),
                    type: "post",
                    dataType: "json",
                    crossDomain: true,
                    contentType: "application/json",
                    success: function (res) {
                        if (res.code !== 200) {
                            alert(res.message)
                            return
                        }
                        alert('您好,您的数据已提交,我们会尽快回复您!')
                        $('#name').val('');
                        $('#phone').val('');
                        $('#email').val('');
                        $('.filter-title').val('')
                        product = null
                    },
                    error: function (error) {
                        alert('提交失败!')
                    }
                });
            })
        });
    </script>
server/src/main/resources/templates/components/nav.html
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,30 @@
<div class="nav">
    <div class="nav-logo">
        <img src="${webDomain}/assets/images/top_logo@2x.png" alt="logo">
    </div>
    <ul>
        <li>
            <a href="${webDomain}/index.html">首页</a>
            <div class="underline"></div>
        </li>
        <li>
            <a href="${webDomain}/intelligent_system.html">智慧系统</a>
        </li>
        <li>
            <a href="${webDomain}/solution.html">解决方案</a>
        </li>
        <li>
            <a href="${webDomain}/alot.html">Alot物联</a>
        </li>
        <li>
            <a href="${webDomain}/dynamics.html">最新动态</a>
        </li>
        <li>
            <a href="${webDomain}/about.html">关于我们</a>
        </li>
        <li>
            <a href="${webDomain}/about.html#section1">渠道合作</a>
        </li>
    </ul>
    <a href="${webDomain}/about.html#section1" class="nav-btn">免费试用</a>
</div>
server/src/main/resources/templates/dynamics.html
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,137 @@
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>最新动态</title>
    <link rel="stylesheet" href="./assets/common.css">
    <link rel="stylesheet" href="./assets/dynamics.css">
    <link rel="stylesheet" href="./assets/animate.css">
    <link rel="stylesheet" href="./assets/zxf_page.css">
    <link rel="stylesheet" href="./assets/animate.min.css">
    <link rel="stylesheet" href="./assets/swiper.css">
    <script src="./js/jquery.js"></script>
    <script src="./js/swiper.js"></script>
    <script src="./js/dynamics.js"></script>
    <script src="./js/zxf_page.js"></script>
    <script src="./js/selectFilter.js"></script>
    <link rel="stylesheet" href="./assets/selectFilter.css">
</head>
<body>
    <div class="index">
        <div id="back-to-top">
            <img src="./assets/icon/bottom_ic_top@2x.png" alt="" />
        </div>
        <div id="header">
            <div class="nav">
                <div class="nav-logo">
                    <img src="./assets/images/top_logo@2x.png" alt="logo">
                </div>
                <ul>
                    <li>
                        <a href="./index.html">首页</a>
                    </li>
                    <li>
                        <a href="./intelligent_system.html">智慧系统</a>
                    </li>
                    <li>
                        <a href="./solution.html">解决方案</a>
                    </li>
                    <li>
                        <a href="./alot.html">Alot物联</a>
                    </li>
                    <li>
                        <a href="./dynamics.html">最新动态</a>
                        <div class="underline"></div>
                    </li>
                    <li>
                        <a href="./about.html">关于我们</a>
                    </li>
                    <li>
                        <a href="./about.html#section1">渠道合作</a>
                    </li>
                </ul>
                <a href="./about.html#section1" class="nav-btn">免费试用</a>
            </div>
        </div>
        <div style="width: 100%; height: 70px;"></div>
        <div class="index-banner">
            <div class="index-banner-c">
                <div class="index-banner-c-a">最新动态 ä¸Žæ‚¨åˆ†äº«</div>
                <div class="index-banner-c-b">智慧场馆运营运维系统+数智解决方案服务</div>
                <div class="index-banner-c-c">
                    <span>咨询详情</span>
                    <img src="./assets/images/btn_ar@2x.png" alt="">
                </div>
            </div>
        </div>
        <div class="index-y">
            <div class="index-y-list" id="list"></div>
        </div>
        <div class="fenye">
            <div class="fenye-hz">
                <div class="zxf_pagediv"></div>
            </div>
        </div>
        <div id="footer"></div>
    </div>
    <script type="text/javascript">
        let url = 'http://121.41.112.139:8099'
        function getParameterByName(name, url) {
            if (!url) url = window.location.href;
            name = name.replace(/[\[\]]/g, "\\$&");
            var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),
                results = regex.exec(url);
            if (!results) return null;
            if (!results[2]) return '';
            return decodeURIComponent(results[2].replace(/\+/g, " "));
        }
        // èŽ·å–é¦–é¡µè½®æ’­å›¾
        $.ajax({
            async: false,
            url: url + '/dmttwebsite/web/api/informationPage',
            type: 'post',
            data: JSON.stringify({
                capacity: 4,
                page: getParameterByName('page') || 1,
                model: {}
            }),
            contentType: "application/json",
            success: function (res) {
                res.data.records.forEach(function (item) {
                    var html = `
                    <a href="./dynamics_details.html?id=${item.id}">
                        <div class="item1">
                            <div class="item-img">
                                <img src="${item.fullImgurl}" alt="">
                            </div>
                            <div class="item-info">
                                <div class="item-info-top">
                                    <span>${item.title}</span>
                                    <span>${item.detail}</span>
                                </div>
                                <div class="item-info-bottom">
                                    ${item.releaseDate}
                                </div>
                            </div>
                        </div>
                    </a>
                    `
                    $('#list').append(html);
                })
                //翻页
                $(".zxf_pagediv").createPage({
                    pageNum: res.data.pageCount,
                    current: getParameterByName('page') || 1,
                    total: res.data.total,
                    backfun: function(e) {
                        console.log(e.current);
                        window.location.href = './dynamics.html?page=' + e.current;
                    }
                });
            }
        })
    </script>
</body>
</html>
server/src/main/resources/templates/dynamics_details.html
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,93 @@
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>动态详情</title>
    <link rel="stylesheet" href="./assets/common.css">
    <link rel="stylesheet" href="./assets/dynamics_details.css">
    <link rel="stylesheet" href="./assets/animate.css">
    <link rel="stylesheet" href="./assets/animate.min.css">
    <link rel="stylesheet" href="./assets/swiper.css">
    <script src="./js/jquery.js"></script>
    <script src="./js/swiper.js"></script>
    <script src="./js/dynamics_details.js"></script>
    <script src="./js/selectFilter.js"></script>
    <link rel="stylesheet" href="./assets/selectFilter.css">
</head>
<body>
    <div class="index">
        <div id="header">
            <div class="nav">
                <div class="nav-logo">
                    <img src="./assets/images/top_logo@2x.png" alt="logo">
                </div>
                <ul>
                    <li>
                        <a href="./index.html">首页</a>
                    </li>
                    <li>
                        <a href="./intelligent_system.html">智慧系统</a>
                    </li>
                    <li>
                        <a href="./solution.html">解决方案</a>
                    </li>
                    <li>
                        <a href="./alot.html">Alot物联</a>
                    </li>
                    <li>
                        <a href="./dynamics.html">最新动态</a>
                        <div class="underline"></div>
                    </li>
                    <li>
                        <a href="./about.html">关于我们</a>
                    </li>
                    <li>
                        <a href="./about.html#section1">渠道合作</a>
                    </li>
                </ul>
                <a href="./about.html#section1" class="nav-btn">免费试用</a>
            </div>
        </div>
        <div style="width: 100%; height: 70px;"></div>
        <div class="index-a">
            <span class="index-a-tips">最新动态</span>
            <span class="index-a-go"> > </span>
            <span class="index-a-tips1">文章详情</span>
        </div>
        <div class="index-a-info">
            <div class="index-a-info-title"></div>
            <div class="index-a-info-date"></div>
            <div class="index-a-info-x"></div>
            <div class="index-a-info-content"></div>
        </div>
        <div id="footer"></div>
    </div>
    <script type="text/javascript">
        let url = 'http://121.41.112.139:8099'
        function getParameterByName(name, url) {
            if (!url) url = window.location.href;
            name = name.replace(/[\[\]]/g, "\\$&");
            var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),
                results = regex.exec(url);
            if (!results) return null;
            if (!results[2]) return '';
            return decodeURIComponent(results[2].replace(/\+/g, " "));
        }
        // èŽ·å–é¦–é¡µè½®æ’­å›¾
        $.ajax({
            async: false,
            url: url + '/dmttwebsite/web/api/informationDetail?id=' + getParameterByName('id'),
            type: 'get',
            contentType: "application/json",
            success: function (res) {
                console.log(res)
                $('.index-a-info-title').text(res.data.title)
                $('.index-a-info-date').text(res.data.releaseDate)
                $('.index-a-info-content').html(res.data.content)
            }
        })
    </script>
</body>
</html>
server/src/main/resources/templates/intelligent_system.html
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,489 @@
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>智慧系统</title>
    <link rel="stylesheet" href="./assets/common.css">
    <link rel="stylesheet" href="./assets/intelligent_system.css">
    <link rel="stylesheet" href="./assets/animate.css">
    <link rel="stylesheet" href="./assets/animate.min.css">
    <link rel="stylesheet" href="./assets/swiper.css">
    <script src="./js/jquery.js"></script>
    <script src="./js/swiper.js"></script>
    <script src="./js/intelligent_system.js"></script>
    <script src="./js/selectFilter.js"></script>
    <link rel="stylesheet" href="./assets/selectFilter.css">
</head>
<body>
    <div class="index">
        <div id="back-to-top">
            <img src="./assets/icon/bottom_ic_top@2x.png" alt="" />
        </div>
        <div id="header">
            <div class="nav">
                <div class="nav-logo">
                    <img src="./assets/images/top_logo@2x.png" alt="logo">
                </div>
                <ul>
                    <li>
                        <a href="./index.html">首页</a>
                    </li>
                    <li>
                        <a href="./intelligent_system.html">智慧系统</a>
                        <div class="underline"></div>
                    </li>
                    <li>
                        <a href="./solution.html">解决方案</a>
                    </li>
                    <li>
                        <a href="./alot.html">Alot物联</a>
                    </li>
                    <li>
                        <a href="./dynamics.html">最新动态</a>
                    </li>
                    <li>
                        <a href="./about.html">关于我们</a>
                    </li>
                    <li>
                        <a href="./about.html#section1">渠道合作</a>
                    </li>
                </ul>
                <a href="./about.html#section1" class="nav-btn">免费试用</a>
            </div>
        </div>
        <div style="width: 100%; height: 70px;"></div>
        <div class="index-banner">
            <div class="index-banner-c">
                <div class="index-banner-c-a" style="color: #191B1F;">智慧场馆运营系统</div>
                <div class="index-banner-c-b" style="color: #191B1F;">智慧场馆运营运维系统+数智解决方案服务</div>
                <div class="index-banner-c-c">
                    <span>咨询详情</span>
                    <img src="./assets/images/btn_ar@2x.png" alt="">
                </div>
            </div>
        </div>
        <div class="index-b">
            <div class="index-b-title">多服务端口,满足场馆多场景服务需求</div>
            <div class="index-b-info">多端口管理服务平台,实现运营服务全场景覆盖,满足多元化业务场景需求</div>
            <div class="index-b-img">
                <img src="./assets/images/guanli_img_duankou@2x.png" alt="" />
            </div>
            <div class="index-b-list">
                <div class="index-b-list-item">
                    <img src="./assets/images/guanli_ic_yuding@2x.png" alt="" />
                    <span>用户/教练小程序</span>
                </div>
                <div class="index-b-list-item">
                    <img src="./assets/images/guanli_ic_yunyingxcx@2x.png" alt="" />
                    <span>场馆运管小程序</span>
                </div>
                <div class="index-b-list-item">
                    <img src="./assets/images/guanli_ic_guanlipc@2x.png" alt="" />
                    <span>场馆运管PC端</span>
                </div>
                <div class="index-b-list-item">
                    <img src="./assets/images/guanli_ic_shanghupc@2x.png" alt="" />
                    <span>自助端APP</span>
                </div>
                <div class="index-b-list-item">
                    <img src="./assets/images/ic_pda@2x.png" alt="" />
                    <span>移动PDA</span>
                </div>
                <div class="index-b-list-item">
                    <img src="./assets/images/guanli_ic_daping@2x.png" alt="" />
                    <span>经营数据大屏</span>
                </div>
            </div>
            <div class="index-fa-btn">
                <span>了解详情</span>
                <img src="./assets/images/btn_ar@2x.png" alt="" />
            </div>
        </div>
        <div class="index-c">
            <div class="index-b-title">操作便捷,运营轻松无忧</div>
            <div class="index-b-info">我们一直持续提升每一个操作细节的使用体验,通过不断的创新尝试与产品迭代,我们在丰富系统功能的同时扩展系统的适用场景方案,最终才能使我们的客户运营轻松无忧、经营更加成功</div>
            <div class="index-c-list">
                <div class="index-c-list-item">
                    <div class="index-c-list-item-top">
                        <span>3</span>
                        <span>秒</span>
                    </div>
                    <div class="index-c-list-item-title">极速签到</div>
                </div>
                <div class="index-c-list-item">
                    <div class="index-c-list-item-top">
                        <span>5</span>
                        <span>秒</span>
                    </div>
                    <div class="index-c-list-item-title">极速开卡</div>
                </div>
                <div class="index-c-list-item">
                    <div class="index-c-list-item-top">
                        <span>8</span>
                        <span>秒</span>
                    </div>
                    <div class="index-c-list-item-title">门票售卖</div>
                </div>
                <div class="index-c-list-item">
                    <div class="index-c-list-item-top">
                        <span>15</span>
                        <span>秒</span>
                    </div>
                    <div class="index-c-list-item-title">场地预约</div>
                </div>
                <div class="index-c-list-item">
                    <div class="index-c-list-item-top">
                        <span>30</span>
                        <span>秒</span>
                    </div>
                    <div class="index-c-list-item-title">套餐办理</div>
                </div>
            </div>
            <div class="index-c-bg"></div>
        </div>
        <div class="index-a">
            <div class="index-b-title">权限细分 ä¸“业更专注</div>
            <div class="index-b-info">系统权限智能分管,馆内成员各司其职,提升运营效率和体验</div>
            <div class="index-a-c">
                <div class="index-a-c-item">BOSS端</div>
                <div class="index-a-c-item">运营端</div>
                <div class="index-a-c-item">前台端</div>
                <div class="index-a-c-item">会员端</div>
                <div class="index-a-c-item">教练端</div>
                <div class="index-a-c-item">财务端</div>
            </div>
            <div id="index-a-1" class="index-a-nr animate__animated animate__slideInUp">
                <div class="index-a-nr-left">
                    <div class="index-a-nr-left-title">BOSS端</div>
                    <div class="index-a-nr-left-info">场馆管理和统计分析</div>
                    <div class="index-a-nr-left-list">
                        <div class="index-a-nr-left-list_item">
                            <img src="./assets/icon/场馆管理@2x.png" alt="">
                            <span>场馆管理</span>
                        </div>
                        <div class="index-a-nr-left-list_item">
                            <img src="./assets/icon/统计管理@2x.png" alt="">
                            <span>统计管理</span>
                        </div>
                        <div class="index-a-nr-left-list_item">
                            <img src="./assets/icon/财务管理@2x.png" alt="">
                            <span>财务管理</span>
                        </div>
                        <div class="index-a-nr-left-list_item">
                            <img src="./assets/icon/配置管理@2x.png" alt="">
                            <span>配置管理</span>
                        </div>
                        <div class="index-a-nr-left-list_item">
                            <img src="./assets/icon/短信管理@2x.png" alt="">
                            <span>短信管理</span>
                        </div>
                        <div class="index-a-nr-left-list_item">
                            <img src="./assets/icon/通知公告@2x.png" alt="">
                            <span>通知公告</span>
                        </div>
                        <div class="index-a-nr-left-list_item">
                            <img src="./assets/icon/账号配置@2x.png" alt="">
                            <span>账号配置</span>
                        </div>
                        <div class="index-a-nr-left-list_item">
                            <img src="./assets/icon/日志管理@2x.png" alt="">
                            <span>日志管理</span>
                        </div>
                    </div>
                    <div class="index-fa-btn" style="margin: 0;">
                        <span>咨询详情</span>
                        <img src="./assets/images/btn_ar@2x.png" alt="" />
                    </div>
                </div>
                <div class="index-a-nr-right">
                    <img src="./assets/images/yunying_img2@2x.png" alt="" />
                </div>
            </div>
            <div id="index-a-2" class="index-a-nr animate__animated animate__slideInUp">
                <div class="index-a-nr-left">
                    <div class="index-a-nr-left-title">运营端</div>
                    <div class="index-a-nr-left-info">场馆管理和统计分析</div>
                    <div class="index-a-nr-left-list" style="width: 340px; margin-bottom: 40px;">
                        <div class="index-a-nr-left-list_item" style="width: 20%;">
                            <img src="./assets/icon/会员管理@2x.png" alt="">
                            <span>会员管理</span>
                        </div>
                        <div class="index-a-nr-left-list_item" style="width: 20%;">
                            <img src="./assets/icon/套餐配置@2x.png" alt="">
                            <span>套餐配置</span>
                        </div>
                        <div class="index-a-nr-left-list_item" style="width: 20%;">
                            <img src="./assets/icon/伴游卡@2x.png" alt="">
                            <span>伴游卡</span>
                        </div>
                        <div class="index-a-nr-left-list_item" style="width: 20%;">
                            <img src="./assets/icon/专项卡@2x.png" alt="">
                            <span>专项卡</span>
                        </div>
                        <div class="index-a-nr-left-list_item" style="width: 20%;">
                            <img src="./assets/icon/课程管理@2x.png" alt="">
                            <span>课程管理</span>
                        </div>
                        <div class="index-a-nr-left-list_item" style="width: 20%;">
                            <img src="./assets/icon/器材租赁@2x.png" alt="">
                            <span>器材租赁</span>
                        </div>
                        <div class="index-a-nr-left-list_item" style="width: 20%;">
                            <img src="./assets/icon/商品管理@2x.png" alt="">
                            <span>商品管理</span>
                        </div>
                        <div class="index-a-nr-left-list_item" style="width: 20%;">
                            <img src="./assets/icon/营销政策@2x.png" alt="">
                            <span>营销政策</span>
                        </div>
                        <div class="index-a-nr-left-list_item" style="width: 20%;">
                            <img src="./assets/icon/积分商城@2x.png" alt="">
                            <span>积分商城</span>
                        </div>
                        <div class="index-a-nr-left-list_item" style="width: 20%;">
                            <img src="./assets/icon/场区场地@2x.png" alt="">
                            <span>场区场地</span>
                        </div>
                        <div class="index-a-nr-left-list_item" style="width: 20%;">
                            <img src="./assets/icon/活动管理@2x.png" alt="">
                            <span>活动管理</span>
                        </div>
                        <div class="index-a-nr-left-list_item" style="width: 20%;">
                            <img src="./assets/icon/财务管理@2x.png" alt="">
                            <span>财务管理</span>
                        </div>
                        <div class="index-a-nr-left-list_item" style="width: 20%;">
                            <img src="./assets/icon/统计分析@2x.png" alt="">
                            <span>统计分析</span>
                        </div>
                        <div class="index-a-nr-left-list_item" style="width: 20%;">
                            <img src="./assets/icon/通知公告@2x.png" alt="">
                            <span>通知公告</span>
                        </div>
                        <div style="width: 20%; height: 0;"></div>
                        <div style="width: 20%; height: 0;"></div>
                    </div>
                    <div class="index-fa-btn" style="margin: 0;">
                        <span>咨询详情</span>
                        <img src="./assets/images/btn_ar@2x.png" alt="" />
                    </div>
                </div>
                <div class="index-a-nr-right">
                    <img src="./assets/images/yunying_img3@2x.png" alt="" />
                </div>
            </div>
            <div id="index-a-3" class="index-a-nr animate__animated animate__slideInUp">
                <div class="index-a-nr-left">
                    <div class="index-a-nr-left-title">前台端</div>
                    <div class="index-a-nr-left-info">前台快捷操作管理</div>
                    <div class="index-a-nr-left-list">
                        <div class="index-a-nr-left-list_item">
                            <img src="./assets/icon/会员开卡@2x.png" alt="">
                            <span>会员开卡</span>
                        </div>
                        <div class="index-a-nr-left-list_item">
                            <img src="./assets/icon/场地预定@2x.png" alt="">
                            <span>场地预定</span>
                        </div>
                        <div class="index-a-nr-left-list_item">
                            <img src="./assets/icon/门票售卖@2x.png" alt="">
                            <span>门票售卖</span>
                        </div>
                        <div class="index-a-nr-left-list_item">
                            <img src="./assets/icon/套餐管理@2x.png" alt="">
                            <span>套餐管理</span>
                        </div>
                        <div class="index-a-nr-left-list_item">
                            <img src="./assets/icon/会员充值@2x.png" alt="">
                            <span>会员充值</span>
                        </div>
                        <div class="index-a-nr-left-list_item">
                            <img src="./assets/icon/商品售卖@2x.png" alt="">
                            <span>商品售卖</span>
                        </div>
                        <div class="index-a-nr-left-list_item">
                            <img src="./assets/icon/器材租赁@2x.png" alt="">
                            <span>器材租赁</span>
                        </div>
                        <div class="index-a-nr-left-list_item">
                            <img src="./assets/icon/财务结算@2x.png" alt="">
                            <span>财务结算</span>
                        </div>
                    </div>
                    <div class="index-fa-btn" style="margin: 0;">
                        <span>咨询详情</span>
                        <img src="./assets/images/btn_ar@2x.png" alt="" />
                    </div>
                </div>
                <div class="index-a-nr-right">
                    <img src="./assets/images/yunying_img4@2x.png" alt="" />
                </div>
            </div>
            <div id="index-a-4" class="index-a-nr animate__animated animate__slideInUp">
                <div class="index-a-nr-left">
                    <div class="index-a-nr-left-title">会员端</div>
                    <div class="index-a-nr-left-info">会员信息维护和管理</div>
                    <div class="index-a-nr-left-list" style="width: 412px;">
                        <div class="index-a-nr-left-list_item" style="width: 16%;">
                            <img src="./assets/icon/场地预定@2x.png" alt="">
                            <span>场地预定</span>
                        </div>
                        <div class="index-a-nr-left-list_item" style="width: 16%;">
                            <img src="./assets/icon/在线购票@2x.png" alt="">
                            <span>在线购票</span>
                        </div>
                        <div class="index-a-nr-left-list_item" style="width: 16%;">
                            <img src="./assets/icon/套餐服务@2x.png" alt="">
                            <span>套餐服务</span>
                        </div>
                        <div class="index-a-nr-left-list_item" style="width: 16%;">
                            <img src="./assets/icon/开卡充值@2x.png" alt="">
                            <span>开卡充值</span>
                        </div>
                        <div class="index-a-nr-left-list_item" style="width: 16%;">
                            <img src="./assets/icon/领券中心@2x.png" alt="">
                            <span>领券中心</span>
                        </div>
                        <div class="index-a-nr-left-list_item" style="width: 16%;">
                            <img src="./assets/icon/进出场@2x.png" alt="">
                            <span>进出场</span>
                        </div>
                        <div class="index-a-nr-left-list_item" style="width: 16%;">
                            <img src="./assets/icon/运动排行@2x.png" alt="">
                            <span>运动排行</span>
                        </div>
                        <div class="index-a-nr-left-list_item" style="width: 16%;">
                            <img src="./assets/icon/团购验券@2x.png" alt="">
                            <span>团购验券</span>
                        </div>
                        <div class="index-a-nr-left-list_item" style="width: 16%;">
                            <img src="./assets/icon/打卡签到@2x.png" alt="">
                            <span>打卡签到</span>
                        </div>
                        <div class="index-a-nr-left-list_item" style="width: 16%;">
                            <img src="./assets/icon/线上商城@2x.png" alt="">
                            <span>线上商城</span>
                        </div>
                        <div class="index-a-nr-left-list_item" style="width: 16%;">
                            <img src="./assets/icon/秒杀活动@2x.png" alt="">
                            <span>秒杀活动</span>
                        </div>
                        <div class="index-a-nr-left-list_item" style="width: 16%;">
                            <img src="./assets/icon/我的卡包@2x.png" alt="">
                            <span>我的卡包</span>
                        </div>
                        <div class="index-a-nr-left-list_item" style="width: 16%;">
                            <img src="./assets/icon/积分商城@2x.png" alt="">
                            <span>积分商城</span>
                        </div>
                        <div class="index-a-nr-left-list_item" style="width: 16%;">
                            <img src="./assets/icon/课程表@2x.png" alt="">
                            <span>课程表</span>
                        </div>
                        <div class="index-a-nr-left-list_item" style="width: 16%;">
                            <img src="./assets/icon/我的约球@2x.png" alt="">
                            <span>我的约球</span>
                        </div>
                        <div style="width: 16%; height: 0;"></div>
                        <div style="width: 16%; height: 0;"></div>
                        <div style="width: 16%; height: 0;"></div>
                    </div>
                    <div class="index-fa-btn" style="margin: 0;">
                        <span>咨询详情</span>
                        <img src="./assets/images/btn_ar@2x.png" alt="" />
                    </div>
                </div>
                <div class="index-a-nr-right">
                    <img src="./assets/images/yunying_img5@2x.png" alt="" />
                </div>
            </div>
            <div id="index-a-5" class="index-a-nr animate__animated animate__slideInUp">
                <div class="index-a-nr-left">
                    <div class="index-a-nr-left-title">教练端</div>
                    <div class="index-a-nr-left-info">教练排课消课</div>
                    <div class="index-a-nr-left-list">
                        <div class="index-a-nr-left-list_item">
                            <img src="./assets/icon/排课管理@2x.png" alt="">
                            <span>排课管理</span>
                        </div>
                        <div class="index-a-nr-left-list_item">
                            <img src="./assets/icon/学员管理@2x.png" alt="">
                            <span>学员管理</span>
                        </div>
                        <div class="index-a-nr-left-list_item">
                            <img src="./assets/icon/日常管理@2x.png" alt="">
                            <span>日常管理</span>
                        </div>
                        <div class="index-a-nr-left-list_item">
                            <img src="./assets/icon/缺课补课@2x.png" alt="">
                            <span>缺课补课</span>
                        </div>
                        <div class="index-a-nr-left-list_item">
                            <img src="./assets/icon/课堂表现@2x.png" alt="">
                            <span>课堂表现</span>
                        </div>
                        <div class="index-a-nr-left-list_item">
                            <img src="./assets/icon/课时记录@2x.png" alt="">
                            <span>课时记录</span>
                        </div>
                        <div class="index-a-nr-left-list_item">
                            <img src="./assets/icon/打卡签到@2x.png" alt="">
                            <span>打卡签到</span>
                        </div>
                        <div style="width: 55px; height: 0;"></div>
                    </div>
                    <div class="index-fa-btn" style="margin: 0;">
                        <span>咨询详情</span>
                        <img src="./assets/images/btn_ar@2x.png" alt="" />
                    </div>
                </div>
                <div class="index-a-nr-right">
                    <img src="./assets/images/yunying_img6@2x.png" alt="" />
                </div>
            </div>
            <div id="index-a-6" class="index-a-nr animate__animated animate__slideInUp">
                <div class="index-a-nr-left">
                    <div class="index-a-nr-left-title">财务端</div>
                    <div class="index-a-nr-left-info">财务统计报表</div>
                    <div class="index-a-nr-left-list" style="width: 285px;">
                        <div class="index-a-nr-left-list_item" style="width: 70px;">
                            <img src="./assets/icon/财务结算@2x.png" alt="">
                            <span>财务结算</span>
                        </div>
                        <div class="index-a-nr-left-list_item" style="width: 70px;">
                            <img src="./assets/icon/资金流水@2x.png" alt="">
                            <span>资金流水</span>
                        </div>
                        <div class="index-a-nr-left-list_item" style="width: 70px;">
                            <img src="./assets/icon/通用消费@2x.png" alt="">
                            <span>通用消费</span>
                        </div>
                        <div class="index-a-nr-left-list_item" style="width: 70px;">
                            <img src="./assets/icon/手续费订单@2x.png" alt="">
                            <span>手续费订单</span>
                        </div>
                        <div class="index-a-nr-left-list_item" style="width: 70px;">
                            <img src="./assets/icon/退款记录@2x.png" alt="">
                            <span>退款记录</span>
                        </div>
                        <div class="index-a-nr-left-list_item" style="width: 70px;">
                            <img src="./assets/icon/统计分析@2x.png" alt="">
                            <span>统计分析</span>
                        </div>11
                        <div style="width: 70px; height: 0;"></div>
                        <div style="width: 70px; height: 0;"></div>
                    </div>
                    <div class="index-fa-btn" style="margin: 0;">
                        <span>咨询详情</span>
                        <img src="./assets/images/btn_ar@2x.png" alt="" />
                    </div>
                </div>
                <div class="index-a-nr-right">
                    <img src="./assets/images/yunying_img7@2x.png" alt="" />
                </div>
            </div>
        </div>
        <div id="footer"></div>
    </div>
</body>
</html>
server/src/main/resources/templates/operation.html
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,186 @@
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>智慧运维</title>
    <link rel="stylesheet" href="./assets/common.css">
    <link rel="stylesheet" href="./assets/operation.css">
    <link rel="stylesheet" href="./assets/animate.css">
    <link rel="stylesheet" href="./assets/animate.min.css">
    <link rel="stylesheet" href="./assets/swiper.css">
    <script src="./js/jquery.js"></script>
    <script src="./js/swiper.js"></script>
    <script src="./js/operation.js"></script>
    <script src="./js/selectFilter.js"></script>
    <link rel="stylesheet" href="./assets/selectFilter.css">
</head>
<body>
    <div class="index">
        <div id="back-to-top">
            <img src="./assets/icon/bottom_ic_top@2x.png" alt="" />
        </div>
        <div id="header">
            <div class="nav">
                <div class="nav-logo">
                    <img src="./assets/images/top_logo@2x.png" alt="logo">
                </div>
                <ul>
                    <li>
                        <a href="./index.html">首页</a>
                    </li>
                    <li>
                        <a href="./intelligent_system.html">智慧系统</a>
                        <div class="underline"></div>
                    </li>
                    <li>
                        <a href="./solution.html">解决方案</a>
                    </li>
                    <li>
                        <a href="./alot.html">Alot物联</a>
                    </li>
                    <li>
                        <a href="./dynamics.html">最新动态</a>
                    </li>
                    <li>
                        <a href="./about.html">关于我们</a>
                    </li>
                    <li>
                        <a href="./about.html#section1">渠道合作</a>
                    </li>
                </ul>
                <a href="./about.html#section1" class="nav-btn">免费试用</a>
            </div>
        </div>
        <div style="width: 100%; height: 70px;"></div>
        <div class="index-banner">
            <div class="index-banner-c">
                <div class="index-banner-c-a">数智场馆运维系统</div>
                <div class="index-banner-c-b">智慧场馆运营运维系统+数智解决方案服务</div>
                <div class="index-banner-c-c">
                    <span>咨询详情</span>
                    <img src="./assets/images/btn_ar@2x.png" alt="">
                </div>
            </div>
        </div>
        <div class="index-a">
            <div class="index-b-title">“全栈式”运维方案,一站解决运维难题</div>
            <div class="index-b-info">应用场景</div>
            <div class="index-a-c">
                <div class="index-a-c-item" name="资产管理">
                    <img src="./assets/icon/yunwei_ic_zichan@2x.png" alt="" />
                    <div class="index-a-c-item-b">
                        <span>资产管理</span>
                        <span>通过数字化手段对场馆设备设施进行全生命周期管控与价值评估</span>
                    </div>
                </div>
                <div class="index-a-c-item" name="巡检运维">
                    <img src="./assets/icon/yunwei_ic_xunjian@2x.png" alt="" />
                    <div class="index-a-c-item-b">
                        <span>巡检运维</span>
                        <span>利用智慧系统和loT设备实现自动化巡检、故障预警及标准化维修管理</span>
                    </div>
                </div>
                <div class="index-a-c-item" name="仓储管理">
                    <img src="./assets/icon/yunwei_ic_cangchu@2x.png" alt="" />
                    <div class="index-a-c-item-b">
                        <span>仓储管理</span>
                        <span>依托智能仓储系统实现物资动态库存监控、自动化出入库及耗材预测补给</span>
                    </div>
                </div>
                <div class="index-a-c-item" name="商户管理">
                    <img src="./assets/icon/yunwei_ic_shanghu@2x.png" alt="" />
                    <div class="index-a-c-item-b">
                        <span>商户管理</span>
                        <span>通过平台整合场地状态、商户合同、能耗情况、服务质量评估及数据分析</span>
                    </div>
                </div>
            </div>
            <div class="index-fa-btn">
                <span>了解详情</span>
                <img src="./assets/images/btn_ar@2x.png" alt="" />
            </div>
        </div>
        <div class="index-a" style="background: #ffffff;">
            <div class="index-b-title">IOC可视化大屏</div>
            <div class="index-b-info">数字孪生技术支撑场馆可视化,集监测、控制、维护、安保、应急、巡检和管理功能于一体,实现对场馆的实时控制管理</div>
            <div class="index-a-image">
                <img src="./assets/images/yunwei_img1@2x.png" alt="" />
            </div>
        </div>
        <div class="index-a" style="background: linear-gradient( 134deg, #FFFFFF 0%, #FFF7F0 100%);">
            <div class="index-b-title">产品功能</div>
            <div class="index-b-info">多种解决方案提升场馆运维能力,可根据场景需求灵活组合</div>
            <div class="index-a-nr">
                <div class="index-a-nr-left">
                    <div class="index-a-nr-left-title">智慧运维</div>
                    <div class="index-a-nr-left-info">灵活构建,快速部署</div>
                    <div class="index-a-nr-left-list">
                        <div class="index-a-nr-left-list_item">
                            <img src="./assets/icon/场馆管理@2x.png" alt="">
                            <span>房态管理</span>
                        </div>
                        <div class="index-a-nr-left-list_item">
                            <img src="./assets/icon/统计管理@2x.png" alt="">
                            <span>设备巡检</span>
                        </div>
                        <div class="index-a-nr-left-list_item">
                            <img src="./assets/icon/财务管理@2x.png" alt="">
                            <span>设备运维</span>
                        </div>
                        <div class="index-a-nr-left-list_item">
                            <img src="./assets/icon/配置管理@2x.png" alt="">
                            <span>库存管理</span>
                        </div>
                        <div class="index-a-nr-left-list_item">
                            <img src="./assets/icon/短信管理@2x.png" alt="">
                            <span>员工资料</span>
                        </div>
                        <div class="index-a-nr-left-list_item">
                            <img src="./assets/icon/通知公告@2x.png" alt="">
                            <span>客户资料</span>
                        </div>
                        <div class="index-a-nr-left-list_item">
                            <img src="./assets/icon/账号配置@2x.png" alt="">
                            <span>项目资料</span>
                        </div>
                        <div class="index-a-nr-left-list_item">
                            <img src="./assets/icon/日志管理@2x.png" alt="">
                            <span>合同管理</span>
                        </div>
                        <div class="index-a-nr-left-list_item">
                            <img src="./assets/icon/场馆管理@2x.png" alt="">
                            <span>财务管理</span>
                        </div>
                        <div class="index-a-nr-left-list_item">
                            <img src="./assets/icon/场馆管理@2x.png" alt="">
                            <span>工单服务</span>
                        </div>
                        <div class="index-a-nr-left-list_item">
                            <img src="./assets/icon/场馆管理@2x.png" alt="">
                            <span>能耗管理</span>
                        </div>
                        <div class="index-a-nr-left-list_item">
                            <img src="./assets/icon/场馆管理@2x.png" alt="">
                            <span>数据分析</span>
                        </div>
                        <div style="width: 20%; height: 0;"></div>
                        <div style="width: 20%; height: 0;"></div>
                        <div style="width: 20%; height: 0;"></div>
                    </div>
                    <div class="index-fa-btn" style="margin: 0;">
                        <span>咨询详情</span>
                        <img src="./assets/images/btn_ar@2x.png" alt="" />
                    </div>
                </div>
                <div class="index-a-nr-right">
                    <img src="./assets/images/yunwei_img2@2x.png" alt="" />
                </div>
            </div>
        </div>
        <div id="footer"></div>
    </div>
</body>
</html>
server/src/main/resources/templates/solution.html
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,209 @@
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>解决方案</title>
    <link rel="stylesheet" href="./assets/common.css">
    <link rel="stylesheet" href="./assets/solution.css">
    <link rel="stylesheet" href="./assets/animate.css">
    <link rel="stylesheet" href="./assets/animate.min.css">
    <link rel="stylesheet" href="./assets/swiper.css">
    <script src="./js/jquery.js"></script>
    <script src="./js/swiper.js"></script>
    <script src="./js/solution.js"></script>
    <script src="./js/selectFilter.js"></script>
    <link rel="stylesheet" href="./assets/selectFilter.css">
</head>
<body>
    <div class="index">
        <div id="back-to-top">
            <img src="./assets/icon/bottom_ic_top@2x.png" alt="" />
        </div>
        <div id="header">
            <div class="nav">
                <div class="nav-logo">
                    <img src="./assets/images/top_logo@2x.png" alt="logo">
                </div>
                <ul>
                    <li>
                        <a href="./index.html">首页</a>
                    </li>
                    <li>
                        <a href="./intelligent_system.html">智慧系统</a>
                    </li>
                    <li>
                        <a href="./solution.html">解决方案</a>
                        <div class="underline"></div>
                    </li>
                    <li>
                        <a href="./alot.html">Alot物联</a>
                    </li>
                    <li>
                        <a href="./dynamics.html">最新动态</a>
                    </li>
                    <li>
                        <a href="./about.html">关于我们</a>
                    </li>
                    <li>
                        <a href="./about.html#section1">渠道合作</a>
                    </li>
                </ul>
                <a href="./about.html#section1" class="nav-btn">免费试用</a>
            </div>
        </div>
        <div style="width: 100%; height: 70px;"></div>
        <div class="index-banner">
            <div class="index-banner-c">
                <div class="index-banner-c-a">科技赋能管理 æ™ºæ…§ç²¾ç®€è¿è¥</div>
                <div class="index-banner-c-b">AI赋能、开启场馆数智新时代</div>
                <div class="index-banner-c-c">
                    <span>咨询详情</span>
                    <img src="./assets/images/btn_ar@2x.png" alt="">
                </div>
            </div>
        </div>
        <div class="index-y">
            <div class="title">AI赋能 å¼€å¯åœºé¦†æ•°æ™ºæ–°æ—¶ä»£</div>
            <div class="info">豆米跳跳以物联网为基础,依托AI算法和大数据等技术领域的深度融合,实现运动场馆数字化、智能化、智慧化改造升级   è¿è¥æˆæœ¬ï¼Œä¼˜åŒ–服务体验,形成线上线下融合互动、立体覆盖的服务供给体系,扩大场馆商业价值,重塑数智场馆运营生态。</div>
            <div class="index-y-img">
                <img src="./assets/images/solution_img1@2x.png" alt="" />
            </div>
        </div>
        <div class="index-y" style="background: linear-gradient( 134deg, #FFFFFF 0%, #FFF7F0 100%);">
            <div class="title">智慧场馆系统应用场景</div>
            <div class="info">行业细分,为多种运动场景提供更垂直的场馆智改解决方案</div>
            <div class="index-y-l">
                <div class="index-y-l-item" style="background-image: url('./assets/images/矩形@2x.png')">
                    <div class="l-item-box">
                        <div class="index-y-l-item-title">综合体育场馆</div>
                        <div class="index-y-l-item-x"></div>
                        <div class="index-y-l-item-info">提供软硬件一体化解决方案,适合大中型综合体育场馆进行智慧管理</div>
                    </div>
                    <div class="l-item-zz"></div>
                </div>
                <div class="index-y-l-item" style="background-image: url('./assets/images/solution_img_3@2x.png')">
                    <div class="l-item-box">
                        <div class="index-y-l-item-title">全民健身中心</div>
                        <div class="index-y-l-item-x"></div>
                        <div class="index-y-l-item-info">提供软硬件一体化解决方案,适合大中型综合体育场馆进行智慧管理</div>
                    </div>
                    <div class="l-item-zz"></div>
                </div>
                <div class="index-y-l-item" style="background-image: url('./assets/images/solution_img_4@2x.png')">
                    <div class="l-item-box">
                        <div class="index-y-l-item-title">校园体育场馆</div>
                        <div class="index-y-l-item-x"></div>
                        <div class="index-y-l-item-info">提供软硬件一体化解决方案,适合大中型综合体育场馆进行智慧管理</div>
                    </div>
                    <div class="l-item-zz"></div>
                </div>
                <div class="index-y-l-item" style="background-image: url('./assets/images/solution_img_5@2x.png')">
                    <div class="l-item-box">
                        <div class="index-y-l-item-title">冰雪体育场馆</div>
                        <div class="index-y-l-item-x"></div>
                        <div class="index-y-l-item-info">提供软硬件一体化解决方案,适合大中型综合体育场馆进行智慧管理</div>
                    </div>
                    <div class="l-item-zz"></div>
                </div>
                <div class="index-y-l-item" style="background-image: url('./assets/images/solution_img_6@2x.png')">
                    <div class="l-item-box">
                        <div class="index-y-l-item-title">游泳体育场馆</div>
                        <div class="index-y-l-item-x"></div>
                        <div class="index-y-l-item-info">提供软硬件一体化解决方案,适合大中型综合体育场馆进行智慧管理</div>
                    </div>
                    <div class="l-item-zz"></div>
                </div>
                <div class="index-y-l-item" style="background-image: url('./assets/images/solution_img_7@2x.png')">
                    <div class="l-item-box">
                        <div class="index-y-l-item-title">智慧体育公园</div>
                        <div class="index-y-l-item-x"></div>
                        <div class="index-y-l-item-info">提供软硬件一体化解决方案,适合大中型综合体育场馆进行智慧管理</div>
                    </div>
                    <div class="l-item-zz"></div>
                </div>
            </div>
        </div>
        <div class="index-y">
            <div class="title">智慧场馆系统解决方案</div>
            <div class="info">提供上百种功能应用,打造智能一体化平台,助力场馆智慧管理和营销转化</div>
            <div class="index-a-nr">
                <div class="index-a-nr-left">
                    <div class="index-a-nr-left-list">
                        <div class="index-a-nr-left-list_item">
                            <img src="./assets/icon/会员管理@2x.png" alt="">
                            <span>会员管理</span>
                        </div>
                        <div class="index-a-nr-left-list_item">
                            <img src="./assets/icon/场地预定@2x.png" alt="">
                            <span>场地预定</span>
                        </div>
                        <div class="index-a-nr-left-list_item">
                            <img src="./assets/icon/门票售卖@2x.png" alt="">
                            <span>门票管理</span>
                        </div>
                        <div class="index-a-nr-left-list_item">
                            <img src="./assets/icon/套餐管理@2x.png" alt="">
                            <span>套餐管理</span>
                        </div>
                        <div class="index-a-nr-left-list_item">
                            <img src="./assets/icon/专项卡@2x.png" alt="">
                            <span>专项卡</span>
                        </div>
                        <div class="index-a-nr-left-list_item">
                            <img src="./assets/icon/伴游卡@2x.png" alt="">
                            <span>伴游卡</span>
                        </div>
                        <div class="index-a-nr-left-list_item">
                            <img src="./assets/icon/商品管理@2x.png" alt="">
                            <span>商品管理</span>
                        </div>
                        <div class="index-a-nr-left-list_item">
                            <img src="./assets/icon/课程管理@2x.png" alt="">
                            <span>课程管理</span>
                        </div>
                        <div class="index-a-nr-left-list_item">
                            <img src="./assets/icon/器材租赁@2x.png" alt="">
                            <span>器材租赁</span>
                        </div>
                        <div class="index-a-nr-left-list_item">
                            <img src="./assets/icon/活动管理@2x.png" alt="">
                            <span>活动管理</span>
                        </div>
                        <div class="index-a-nr-left-list_item">
                            <img src="./assets/icon/财务管理@2x.png" alt="">
                            <span>财务管理</span>
                        </div>
                        <div class="index-a-nr-left-list_item">
                            <img src="./assets/icon/统计分析@2x.png" alt="">
                            <span>统计分析</span>
                        </div>
                        <div class="index-a-nr-left-list_item">
                            <img src="./assets/icon/积分商城@2x.png" alt="">
                            <span>积分商城</span>
                        </div>
                        <div class="index-a-nr-left-list_item">
                            <img src="./assets/icon/设备管理@2x.png" alt="">
                            <span>设备管理</span>
                        </div>
                        <div class="index-a-nr-left-list_item">
                            <img src="./assets/icon/通知公告@2x.png" alt="">
                            <span>通知公告</span>
                        </div>
                        <div style="width: 20%; height: 0;"></div>
                        <div style="width: 20%; height: 0;"></div>
                        <div style="width: 20%; height: 0;"></div>
                    </div>
                    <div class="index-fa-btn" style="margin: 0;">
                        <span>咨询详情</span>
                        <img src="./assets/images/btn_ar@2x.png" alt="" />
                    </div>
                </div>
                <div class="index-a-nr-right">
                    <img src="./assets/images/solution_img_8@2x.png" alt="" />
                </div>
            </div>
        </div>
        <div id="footer"></div>
    </div>
</body>
</html>