当前位置: 首页 > news >正文

手机配件网站模板镇江手机网站制作

手机配件网站模板,镇江手机网站制作,淘宝网站建设的主图如何设计,wordpress 建网页基于SpringbootVue的在线答题闯关系统 前言#xff1a;随着在线教育的快速发展#xff0c;传统的教育模式逐渐向互联网教育模式转型。在线答题系统作为其中的一个重要组成部分#xff0c;能够帮助用户通过互动式的学习方式提升知识掌握度。本文基于Spring Boot和Vue.js框架Vue的在线答题闯关系统 前言随着在线教育的快速发展传统的教育模式逐渐向互联网教育模式转型。在线答题系统作为其中的一个重要组成部分能够帮助用户通过互动式的学习方式提升知识掌握度。本文基于Spring Boot和Vue.js框架设计并实现了一个在线答题闯关系统旨在为用户提供顺序出题、随机出题、错题本、收藏题目、答题统计等多种功能以增强用户的学习体验。 目录 前言项目功能及技术用户端管理端 APISpringBoot框架搭建实体映射创建Mapper接口封装整合Swagger常用字段类型 参考代码块 前言 本系统采用前后端分离架构前端使用Vue.js框架实现后端则通过Spring Boot进行构建数据存储使用MySQL数据库。前端使用Vue.js进行数据渲染而后端提供RESTful API接口来实现前后端的有效数据交互。 项目功能及技术 功能模块设计 顺序出题模块该模块允许用户按顺序答题系统根据预设的题目顺序逐一展示给用户。用户完成每一道题后可以进入下一题适合需要系统化学习的用户。 体型练习模块用户可以根据自己的需求选择特定的练习模式比如选择某个类别或某个难度的题目进行练习。该模块支持用户自定义练习内容帮助用户强化薄弱的知识点。 随机出题模块系统可以随机从题库中抽取题目进行答题闯关用户在有限的时间内答题提升学习的趣味性和挑战性。 错题本模块该模块记录用户做错的题目用户可以随时查看并重新进行练习帮助用户集中攻克自己的薄弱环节提升记忆与掌握度。 我的收藏模块用户可以将自己喜欢或难度较高的题目收藏到个人收藏夹方便以后再次复习或挑战。 答题统计模块系统自动统计用户的答题情况包括正确率、答题速度、错题数量等帮助用户了解自己的学习进度和成效并能根据数据调整学习策略。 技术 Spring Boot后端框架利用Spring Boot的快速开发特性。同时通过Mybatis简化数据库操作提高数据访问效率。 Vue.js前端框架使用Vuex进行全局状态管理提升数据的一致性与可维护性。 MySQL数据库存储引擎负责存储题目数据、用户答题记录、错题与收藏等信息。 Layui前端UI组件库用于搭建美观且响应式的用户界面提升用户交互体验。 用户端 管理端 API SpringBoot框架搭建 1.创建maven project先创建一个名为SpringBootDemo的项目选择【New Project】 然后在弹出的下图窗口中选择左侧菜单的【New Project】 在project下创建module点击右键选择【new】—【Module…】 左侧选择【Spring initializr】通过idea中集成的Spring initializr工具进行spring boot项目的快速创建。窗口右侧name可根据自己喜好设置group和artifact和上面一样的规则其他选项保持默认值即可【next】 Developer Tools模块勾选【Spring Boot DevTools】web模块勾选【Spring Web】此时一个Springboot项目已经搭建完成可开发后续功能 实体映射创建Mapper 创建一个entity实体类文件夹并在该文件夹下创建项目用到的实体类 package com.example.demo.entity;import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import lombok.Data;import java.time.LocalDateTime; import java.util.ArrayList; import java.util.List;Data public class User {TableId(type IdType.AUTO)private Long id;private String account;private String pwd;private String userDesc;private String userHead;private LocalDateTime createTime;private Long role;private String nickname;private String email;private String tags; }接口封装 由于我们使用mybatis-plus所以简单的增删改查不用自己写框架自带了只需要实现或者继承他的Mapper、Service 创建控制器Controller 整合Swagger 添加依赖 先导入spring boot的web包 !--swagger依赖-- dependencygroupIdio.springfox/groupIdartifactIdspringfox-swagger2/artifactIdversion2.9.2/version /dependency dependencygroupIdio.springfox/groupIdartifactIdspringfox-swagger-ui/artifactIdversion2.9.2/version /dependency配置Swagger 创建一个swagger的配置类命名为SwaggerConfig.java /**用于定义API主界面的信息比如可以声明所有的API的总标题、描述、版本*/private ApiInfo apiDemo() {return new ApiInfoBuilder()//用来自定义API的标题.title(SpringBoot项目SwaggerAPIAPI标题测试)//用来描述整体的API.description(SpringBoot项目SwaggerAPI描述测试)//创建人信息.contact(new Contact(测试员张三,http://localhost:8080/springboot/swagger-ui.html,xxxxxxxx163.com))//用于定义服务的域名//.termsOfServiceUrl().version(1.0) //可以用来定义版本.build();} 接口测试 运行Spring Boot项目默认端口8080通过地址栏访问url 接口组定义 根据不同的业务区分不同的接口组使用API来划分 Api(tags 用户管理) // tags组名称 RestController public class RoleController { }接口定义 使用ApiModel来标注实体类同时在接口中定义入参为实体类作为参数。 ApiModel用来标类 常用配置项value实体类简称description实体类说明 ApiModelProperty用来描述类的字段的含义。 常用字段类型 字段类型所占字节存储范围最大存储值使用场景TINYINT1-128~127127存储小整数INT4-2147483648~21474836472147483647存储大整数BIGINT8-9223372036854775808~92233720368547758079223372036854775807存储极大整数DECIMAL可变长度存储精度要求高的数值CHAR固定长度最多255字节255个字符存储长度固定的字符串VARCHAR可变长度最多65535字节65535个字符存储长度不固定的字符串DATETIME8‘1000-01-01 00:00:00’~‘9999-12-31 23:59:59’‘9999-12-31 23:59:59’存储日期和时间 参考代码块 body stylebackground-color: #f7f7f7;div classheaderBoxdiv classlogoBoximg srcimg/logo1.png /div classlogoTitle在线答题闯关/div/divdiv classmenuBoxdiv classmenuItem activeMenu a hrefindex.html练习模式/a/divdiv classmenuItem blackColora hrefchallengeLevels.html?paramprimary闯关模式/a/divdiv classmenuItem blackColora hrefwrongQuestion.html我的错题/a/divdiv classmenuItem blackColora hrefmyCollection.html我的收藏/a/divdiv classmenuItem blackColora hrefstatistics.html答题统计/a/divdiv classmenuItem blackColora hrefcenter.html个人中心/a/divdiv classmenuItem blackColora href./login/login.html退出登录/a/div/div/divdiv classcontainer-fluid idcontent-pagediv classrowdiv classcol-md-2nbsp;/divdiv classcol-md-8div classsearchBoxdiv classleftTitle{{pageTitle}}/div/div/divdiv classcol-md-2nbsp;/div/divdiv classrowdiv classcol-md-2nbsp;/divdiv classcol-md-8div v-for(item,index) in questionListdiv classradioItemBox v-ifitem.questionType 单选题div classBtnBox radioItemdiv{{index1}}./divtextarea rows18 cols90 v-modelitem.title disabled/textareaimg srcimg/collecQues.png classradioItemTypeImgv-on:clickcollection(item.id) //divdiv classBtnBox radioLineV2 v-ifitem.checkA!div classradioIconBoxinput typeradio classradioInputCheck :nameindexv-on:changecheckOne(index,A) //divdivA./divinput v-modelitem.checkA disabled classradioLineV2Input //divdiv classBtnBox radioLineV2 v-ifitem.checkB!div classradioIconBoxinput typeradio classradioInputCheck :nameindexv-on:changecheckOne(index,B) //divdivB./divinput v-modelitem.checkB disabled classradioLineV2Input //divdiv classBtnBox radioLineV2 v-ifitem.checkC!div classradioIconBoxinput typeradio classradioInputCheck :nameindexv-on:changecheckOne(index,C) //divdivC./divinput v-modelitem.checkC disabled classradioLineV2Input //divdiv classBtnBox radioLineV2 v-ifitem.checkD!div classradioIconBoxinput typeradio classradioInputCheck :nameindexv-on:changecheckOne(index,D) //divdivD./divinput v-modelitem.checkD disabled classradioLineV2Input //divdiv classBtnBox radioLineV2 v-ifitem.checkE!div classradioIconBoxinput typeradio classradioInputCheck :nameindexv-on:changecheckOne(index,E) //divdivE./divinput v-modelitem.checkE disabled classradioLineV2Input //div/divdiv classradioItemBox v-ifitem.questionType 多选题div classBtnBox radioItemdiv{{index1}}./divtextarea rows18 cols90 v-modelitem.title disabled/textareaimg srcimg/collecQues.png classradioItemTypeImgv-on:clickcollection(item.id) //divdiv classBtnBox radioLineV2 v-ifitem.checkA!div classradioIconBoxinput typecheckbox classradioInputCheck :nameindexv-on:changecheckTwo($event,index,A) //divdivA./divinput v-modelitem.checkA disabled classradioLineV2Input //divdiv classBtnBox radioLineV2 v-ifitem.checkB!div classradioIconBoxinput typecheckbox classradioInputCheck :nameindexv-on:changecheckTwo($event,index,B) //divdivB./divinput v-modelitem.checkB disabled classradioLineV2Input //divdiv classBtnBox radioLineV2 v-ifitem.checkC!div classradioIconBoxinput typecheckbox classradioInputCheck :nameindexv-on:changecheckTwo($event,index,C) //divdivC./divinput v-modelitem.checkC disabled classradioLineV2Input //divdiv classBtnBox radioLineV2 v-ifitem.checkD!div classradioIconBoxinput typecheckbox classradioInputCheck :nameindexv-on:changecheckTwo($event,index,D) //divdivD./divinput v-modelitem.checkD disabled classradioLineV2Input //divdiv classBtnBox radioLineV2 v-ifitem.checkE!div classradioIconBoxinput typecheckbox classradioInputCheck :nameindexv-on:changecheckTwo($event,index,E) //divdivE./divinput v-modelitem.checkE disabled classradioLineV2Input //div/divdiv classradioItemBox v-ifitem.questionType 判断题div classBtnBox radioItemdiv{{index1}}./divtextarea rows18 cols90 v-modelitem.title disabled/textareaimg srcimg/collecQues.png classradioItemTypeImgv-on:clickcollection(item.id) //divdiv classBtnBox radioLineV2 v-ifitem.checkA!div classradioIconBoxinput typeradio classradioInputCheck :nameindexv-on:changecheckOne(index,A) //divdivA./divinput v-modelitem.checkA disabled classradioLineV2Input //divdiv classBtnBox radioLineV2 v-ifitem.checkB!div classradioIconBoxinput typeradio classradioInputCheck :nameindexv-on:changecheckOne(index,B) //divdivB./divinput v-modelitem.checkB disabled classradioLineV2Input //div/div/divdiv classBtnBox margin-smdiv classAddQuesBtnItem v-on:clickSaveChangeimg srcimg/submit.png /提交/divdiv styleheight:100px;/div/div/divdiv classcol-md-2nbsp;/div/div/divscript typetext/javascript srcjs/jquery.min.js/scriptscript typetext/javascript srcjs/vue.js/scriptscript typetext/javascript srclogin/layui/layui.js/scriptscript//轻量级框架var dataInfo new Vue({el: #content-page,//Vue的数据对象data: {questionList: [],pageTitle: }, //数据对象结束//方法methods: {GetAll: function() {let vm this;let param GetQueryString(param);let type GetQueryString(type);let quesType ;if (param practice) {if (type 0) {quesType 单选题;} else if (type 1) {quesType 多选题;} else {quesType 判断题;}vm.pageTitle 练习模式 quesType;} else if (param order) {vm.pageTitle 顺序出题;} else {vm.pageTitle 随机练习;}var user JSON.parse(sessionStorage.getItem(user));$.ajax({url: http://127.0.0.1:8081/common/answer-list?userId user.id param param type quesType,async: false,type: POST,contentType: application/json,dataType: json,success: function(json) {vm.questionList json.list}});},//单选框选择事件checkOne(index, check) {let vm this;vm.questionList[index].isChecked check;},//多选框选择事件checkTwo(event, index, check) {let vm this;const checked event.target.checked;let info vm.questionList[index];let checkedArray info.isChecked.split(,);if (checkedArray[0] ) {checkedArray.splice(0, 1);}if (checked) {checkedArray.push(check);info.isChecked checkedArray.join(,);} else {let ind checkedArray.indexOf(check);if (ind ! -1) {checkedArray.splice(ind, 1);}info.isChecked checkedArray.join(,);}},//点击提交SaveChange() {let vm this;//得分let number 0;let list vm.questionList;for (let i 0; i list.length; i) {if (list[i].isChecked ! ) {let right list[i].rightKey.split(,);let check list[i].isChecked.split(,);if (right.length check.length right.sort().toString() check.sort().toString()) {list[i].correct 1;number;}}}var user JSON.parse(sessionStorage.getItem(user));var vo {};vo.answerList list;vo.number number;vo.userId user.id;vo.type 练习;$.ajax({url: http://127.0.0.1:8081/common/get-answer,async: false,type: POST,contentType: application/json,dataType: json,data: JSON.stringify(vo),success: function(json) {layui.use(layer, function() {var layer layui.layer;// 弹出提示框layer.msg(您的分数为 number 分, {icon: 6, // 图标样式默认为信息图标time: 2000, // 显示时间默认为2秒shade: 0.5, // 遮罩层透明度默认为0.3shadeClose: true // 是否点击遮罩关闭弹框默认为true});});}});},//点击收藏collection(id) {var vo {};var user JSON.parse(sessionStorage.getItem(user));vo.userId user.id;vo.answerId id;$.ajax({url: http://127.0.0.1:8081/common/addCollect,async: false,type: POST,contentType: application/json,dataType: json,data: JSON.stringify(vo),success: function(json) {layui.use(layer, function() {var layer layui.layer;// 弹出提示框layer.msg(json.returnMsg, {icon: json.returnMsg 您已收藏过 ? 5 :6, // 图标样式默认为信息图标time: 2000, // 显示时间默认为2秒shade: 0.5, // 遮罩层透明度默认为0.3shadeClose: true // 是否点击遮罩关闭弹框默认为true});});}});},}, //方法结束created: function() {var vm this;vm.GetAll();}, //初始加载方法结束}); //vue结束function GetQueryString(name) {var reg new RegExp((^|) name ([^]*)(|$));var r window.location.search.substr(1).match(reg);if (r ! null) return unescape(r[2]);return null;}/script/body /htmlheadmeta charsetutf-8 /title答题统计/title/headlink hrefcss/index.css relstylesheet /link hrefcss/bootstrap.min.css relstylesheet /body stylebackground-color: #f7f7f7;div classheaderBoxdiv classlogoBoximg srcimg/logo1.png /div classlogoTitle在线答题闯关/div/divdiv classmenuBoxdiv classmenuItem blackColora hrefindex.html练习模式/a/divdiv classmenuItem blackColora hrefchallengeLevels.html?paramprimary闯关模式/a/divdiv classmenuItem blackColora hrefwrongQuestion.html我的错题/a/divdiv classmenuItem blackColora hrefmyCollection.html我的收藏/a/divdiv classmenuItem activeMenua hrefstatistics.html答题统计/a/divdiv classmenuItem blackColora hrefcenter.html个人中心/a/divdiv classmenuItem blackColora href./login/login.html退出登录/a/div/div/divdiv classcontainer-fluid idcontent-pagediv classrowdiv classcol-md-2nbsp;/divdiv classcol-md-8div classsearchBoxdiv classleftTitle答题统计/divdiv/div/div/divdiv classcol-md-2nbsp;/div/divdiv classrowdiv classcol-md-2nbsp;/divdiv classcol-md-4div idmain/div/divdiv classcol-md-4div idmain2/div/divdiv classcol-md-2nbsp;/div/div/divscript typetext/javascript srcjs/jquery.min.js/scriptscript typetext/javascript srcjs/echarts.min.js/scriptscriptfunction GetQueryString(name) {var reg new RegExp((^|) name ([^]*)(|$));var r window.location.search.substr(1).match(reg);if (r ! null) return unescape(r[2]);return null;}var user JSON.parse(sessionStorage.getItem(user));$.ajax({url: http://127.0.0.1:8081/common/total?userId user.id,async: false,type: POST,contentType: application/json,dataType: json,data: JSON.stringify({}),success: function(json) {initCharts1(json.data);var inputArray json.data;// 定义对应的题目类型名称数组var typeNameArray [单选题, 多选题, 判断题];// 结果数组var resultArray [];// 遍历输入数组for (var i 0; i inputArray.length; i) {// 构造对象并添加到结果数组中var item {value: inputArray[i],name: typeNameArray[i]};resultArray.push(item);}initCharts(resultArray);}});function initCharts(data1) {var chartDom document.getElementById(main);var myChart echarts.init(chartDom);var option;option {title: {text: 答题数统计,subtext: ,left: center},tooltip: {trigger: item},legend: {orient: vertical,left: left},series: [{name: Access From,type: pie,radius: 50%,data: data1,emphasis: {itemStyle: {shadowBlur: 10,shadowOffsetX: 0,shadowColor: rgba(0, 0, 0, 0.5)}}}]};myChart.setOption(option);};function initCharts1(data2) {var chartDom document.getElementById(main2);var myChart echarts.init(chartDom);var option;option {xAxis: {type: category,data: [单选题, 多选题, 判断题]},yAxis: {type: value},series: [{data: data2,type: bar,showBackground: true,backgroundStyle: {color: rgba(180, 180, 180, 0.2)}}]};myChart.setOption(option);};/script/body /html
文章转载自:
http://www.morning.gccrn.cn.gov.cn.gccrn.cn
http://www.morning.gcysq.cn.gov.cn.gcysq.cn
http://www.morning.wklhn.cn.gov.cn.wklhn.cn
http://www.morning.tqfnf.cn.gov.cn.tqfnf.cn
http://www.morning.hmmnb.cn.gov.cn.hmmnb.cn
http://www.morning.rhdln.cn.gov.cn.rhdln.cn
http://www.morning.msbmp.cn.gov.cn.msbmp.cn
http://www.morning.kwblwbl.cn.gov.cn.kwblwbl.cn
http://www.morning.rbcw.cn.gov.cn.rbcw.cn
http://www.morning.djgrg.cn.gov.cn.djgrg.cn
http://www.morning.blqsr.cn.gov.cn.blqsr.cn
http://www.morning.lqqqh.cn.gov.cn.lqqqh.cn
http://www.morning.xyhql.cn.gov.cn.xyhql.cn
http://www.morning.bssjp.cn.gov.cn.bssjp.cn
http://www.morning.zlchy.cn.gov.cn.zlchy.cn
http://www.morning.cpgdy.cn.gov.cn.cpgdy.cn
http://www.morning.fnkcg.cn.gov.cn.fnkcg.cn
http://www.morning.lmtbl.cn.gov.cn.lmtbl.cn
http://www.morning.lzsxp.cn.gov.cn.lzsxp.cn
http://www.morning.hhnhb.cn.gov.cn.hhnhb.cn
http://www.morning.wnnlr.cn.gov.cn.wnnlr.cn
http://www.morning.hsksm.cn.gov.cn.hsksm.cn
http://www.morning.gczzm.cn.gov.cn.gczzm.cn
http://www.morning.mrcpy.cn.gov.cn.mrcpy.cn
http://www.morning.ydrfl.cn.gov.cn.ydrfl.cn
http://www.morning.rhqn.cn.gov.cn.rhqn.cn
http://www.morning.pmjw.cn.gov.cn.pmjw.cn
http://www.morning.gynlc.cn.gov.cn.gynlc.cn
http://www.morning.wblpn.cn.gov.cn.wblpn.cn
http://www.morning.bytgy.com.gov.cn.bytgy.com
http://www.morning.skbhl.cn.gov.cn.skbhl.cn
http://www.morning.hsrpc.cn.gov.cn.hsrpc.cn
http://www.morning.zsleyuan.cn.gov.cn.zsleyuan.cn
http://www.morning.clndl.cn.gov.cn.clndl.cn
http://www.morning.drfcj.cn.gov.cn.drfcj.cn
http://www.morning.vuref.cn.gov.cn.vuref.cn
http://www.morning.yrcxg.cn.gov.cn.yrcxg.cn
http://www.morning.nlbw.cn.gov.cn.nlbw.cn
http://www.morning.wnnts.cn.gov.cn.wnnts.cn
http://www.morning.yfrlk.cn.gov.cn.yfrlk.cn
http://www.morning.ktdqu.cn.gov.cn.ktdqu.cn
http://www.morning.stxg.cn.gov.cn.stxg.cn
http://www.morning.mcndn.cn.gov.cn.mcndn.cn
http://www.morning.qkqjz.cn.gov.cn.qkqjz.cn
http://www.morning.ydrn.cn.gov.cn.ydrn.cn
http://www.morning.diuchai.com.gov.cn.diuchai.com
http://www.morning.hhqjf.cn.gov.cn.hhqjf.cn
http://www.morning.bydpr.cn.gov.cn.bydpr.cn
http://www.morning.mtymb.cn.gov.cn.mtymb.cn
http://www.morning.zzaxr.cn.gov.cn.zzaxr.cn
http://www.morning.hhmfp.cn.gov.cn.hhmfp.cn
http://www.morning.prsxj.cn.gov.cn.prsxj.cn
http://www.morning.mmynk.cn.gov.cn.mmynk.cn
http://www.morning.mgzjz.cn.gov.cn.mgzjz.cn
http://www.morning.wklyk.cn.gov.cn.wklyk.cn
http://www.morning.rybr.cn.gov.cn.rybr.cn
http://www.morning.zqwp.cn.gov.cn.zqwp.cn
http://www.morning.tdldh.cn.gov.cn.tdldh.cn
http://www.morning.rntby.cn.gov.cn.rntby.cn
http://www.morning.nnjq.cn.gov.cn.nnjq.cn
http://www.morning.hpcpp.cn.gov.cn.hpcpp.cn
http://www.morning.xnlj.cn.gov.cn.xnlj.cn
http://www.morning.fnmtc.cn.gov.cn.fnmtc.cn
http://www.morning.ktmbp.cn.gov.cn.ktmbp.cn
http://www.morning.xykst.cn.gov.cn.xykst.cn
http://www.morning.yslfn.cn.gov.cn.yslfn.cn
http://www.morning.haolipu.com.gov.cn.haolipu.com
http://www.morning.zzfqn.cn.gov.cn.zzfqn.cn
http://www.morning.rrxgx.cn.gov.cn.rrxgx.cn
http://www.morning.hxlpm.cn.gov.cn.hxlpm.cn
http://www.morning.bwttj.cn.gov.cn.bwttj.cn
http://www.morning.lffgs.cn.gov.cn.lffgs.cn
http://www.morning.dtnzk.cn.gov.cn.dtnzk.cn
http://www.morning.wxrbl.cn.gov.cn.wxrbl.cn
http://www.morning.qrksj.cn.gov.cn.qrksj.cn
http://www.morning.gnzsd.cn.gov.cn.gnzsd.cn
http://www.morning.gxcit.com.gov.cn.gxcit.com
http://www.morning.nbsbn.cn.gov.cn.nbsbn.cn
http://www.morning.lmyq.cn.gov.cn.lmyq.cn
http://www.morning.lfmwt.cn.gov.cn.lfmwt.cn
http://www.tj-hxxt.cn/news/272164.html

相关文章:

  • 河北建设厅八大员报名网站合肥市城乡建设局网站首页
  • 手机网站建设 移商动力深圳搜索引擎
  • 西安网站建设优化学校网站总务建设
  • 惠济免费网站建设网站关键词如何优化
  • 黑色炫酷的监控网站html石家庄百度首页
  • wordpress网站重做h5制作平台官网免费
  • 网站访问速度嘉兴网站seo
  • 校园网站建设简介网站定制开发特点
  • 做儿童业态招商要去哪些网站怎么样注册公司流程和费用
  • 重庆网站建设选圣矢wordpress the7打开速度慢
  • 东莞网站改版软文街
  • 做团餐 承包食堂的企业网站珠海网站开发公司
  • 常用网站推荐网站设计的毕业设计
  • 图书馆网站建设方案设计论文wordpress秒开优化
  • 建设网站公司价格贵港网站开发
  • 网站下载系统如何做系统深圳宝安固戍小学网站建设
  • 国外模板网站图片站wordpress
  • 网站建设运营招聘电子商务专业介绍
  • 有人做几个蝎子养殖门户网站医院图书馆网站建设的意义
  • 网站建设公司推荐时代创信苏州关键词优化搜索排名
  • 百度山西网站建设和百度推广建筑网页
  • 做网站需要啥备案之类的嘛广告公司名称取名
  • 住房城乡建设部网站首页广州手机网站制作
  • 网站建设空间多大成都制作网站公司简介
  • 常州网站搭建公司律师网站建设公司
  • 如何做淘宝联盟网站主wap网站建设开发
  • dz后台网站地图图片在线制作视频
  • 住房和城乡建设部网站安广东省公司注册商标的流程及资料
  • 怎么形容网站做的很好扬州建设集团招聘信息网站
  • 东莞网站建设 钢结构建设一个完整网站技术路线