.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 { .content { 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 { 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; } } } } } margin-top: 30px; width: 100%; .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>