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

dedecms 旅游网站模板媒体网络推广价格优惠

dedecms 旅游网站模板,媒体网络推广价格优惠,wordpress布局切换功能,国际最新局势最新消息目录 一、总述 二、前端部分 2.1 创建好品牌管理菜单 2.2 复制组件 ​编辑2.3 复制api ​​​编辑 2.4 查看效果 ​编辑2.5 需要优化的地方 2.6 具体优化实现 2.6.1 优化一#xff1a;将表格的状态列#xff08;这里是是否显示列#xff09;修改为开关#xff…目录 一、总述 二、前端部分 2.1 创建好品牌管理菜单 2.2 复制组件  ​编辑2.3 复制api ​​​编辑  2.4 查看效果 ​编辑2.5 需要优化的地方  2.6 具体优化实现 2.6.1 优化一将表格的状态列这里是是否显示列修改为开关同时在修改页新增可显示修改开关 2.6.2 优化二在修改页将logo地址文本框改为文件上传按钮 2.6.3 优化三将表格列表的logo地址列改为显示图片 三、后端部分 四、总结 一、总述 之前的分类管理的前端部分基本上是手写的增删改查虽然部分是直接使用的elementUI提供的组件只是稍作修改但是还是需要自己去找对应的组件组件写数据域自己写方法自己绑定等其实要写的还是比较多的。但其实仔细一想的话其实这些组件都差不多都是一些列表提供一些按钮一些文本框然后进行增删改查代码都差不多。既然差不多没什么技术含量的东西只是比较繁琐。那么应该就能自动生成的能给我们直接使用是的若依也提供了前端部分的逆向代码。ps兄弟们真的要努力的学了这些基本的增删改查代码都不需要我们写了如果你还只会这些简单的会被淘汰的 现在要干的就是直接使用然后根据自己的需求修改部分即可。 二、前端部分 实现找到前端逆向生成的代码部分其实就是和main同级的目录一个vue目录里面放着在网页所选择的很多张表所对应的前端代码 2.1 创建好品牌管理菜单 这个没什么好说的在之前的创建分类管理的时候已经操作过一遍了只是部分属性修改一下就行了 其实还可以选择在数据库中创建之后可以使用数据库进行批量创建其实都差不多 2.2 复制组件  2.3 复制api ​​  2.4 查看效果 效果就是下图这样子 我们发现其实这种逆向生成的前端样子大致是以下的这三部分 2.5 需要优化的地方  看着好像挺好的基本上我们自己去写也就是写这些东西现在都帮我们已经写好了极大的提升了开发效率但是这一般来说不能这样就OK了还需要优化或者是需要根据一定的需求做调整。 那哪些部分需要我们去调整优化的呢 1. 修改状态列为开关修改页同理 像这种是否显示的这种或是其他字段使用01来表示状态的一般来说我们不希望直接这么突兀的直接显示主要是看着不美观最重要的是不好直接修改还需要到修改弹窗那里手动的输入0或者1进行修改这样不方便如果在这个列表中这一个属性使用开关进行替换的话就可以不打开修改弹窗也不需要手动的去输入状态值了而是直接点击一下就能直接的修改了很方面。 2. 修改图片地址列为真实图片 这个直接放置图片地址的方式肯定不可取根本就不知道图片长什么样子我们只需要使用elementUI为我们提供的图片组件将其进行替换即可。 3. 修改页面的品牌logo地址肯定要换成文件上传按钮 主要也就是这三部分在其他组件页面其实大致都是这些地方需要进行修改。 2.6 具体优化实现 2.6.1 优化一将表格的状态列这里是是否显示列修改为开关同时在修改页新增可显示修改开关 现在表格的这一列已经是文本呢如何替换呢 其实很简单既然这里是要替换表格中的一列那么势必就得参考elementUI中的表格组件如何进行替换要有这种意识哪个组件上面进行修改就查看哪个组件的文档ps像是废话但很重要思路就是这样产生的。 好现在就到官网中查看表格组件的文档看到底如何替换列值 找到这个自定义模板。我们照葫芦画瓢直接复制这个template到我们自己的组件中去 在表格列处 这只是一个模板就和组件文件中三大件中的模板一样其实就是规定了组件写的位置具体还是要在里面写好组件例如现在需要放开关组件而之后的表格的logo地址的那一列则需要放图片组件。现在的任务就是继续到官网里面去找修改状态开关组件 放到那个模板中就可以在网页中 是否显示的那一列就能够显示 一个开关了。 最重要的就是将决定开关是否开还是闭与数据域中的数据进行关联使用v-model指令进行动态的绑定 这里关键要懂得这一列在数据域中如何表示其实很简单  但是这里会发现一个问题就是无论我的数据库中值无论是0还是1也就是无论是 显示还是不显示开关都是闭合的状态那这是怎么回事呢其实要有这么一种意识那就是这个开关开与闭肯定是受到一个值也就是我这里绑定的form.showStatus对应数据库中对象的这一列值。 我们知道数据库中这一列值只会是0或者是1其实啊这个开关组件并不知道0代表关1代表开它默认自己是根据布尔值决定开还是关的false代表关true代表开默认是这样。那肯定我们的数据库中一般不存布尔值是吧所以肯定也得换elementUI也知道肯定也会有这样的需求所以也就提供了相应的参数去自己指定开是什么值关又是什么值。elememtUI官网已经说的很明白了 这里因为是需要动态和数据域中的属性进行绑定因此需要使用在参数前加上 冒号进行指定 最终的样子长这样ps这里已经是将每一步都讲得很细节了如果还不明白的话请私信我 不要忘记修改页面同样得记得加上。都一样的东西只是绑定的值不一样 下面我直接给出这两处地方的代码 el-table-column label显示状态 aligncenter propshowStatustemplate slot-scopescopeel-switchchangechangeStatus(scope.row)v-modelscope.row.showStatusactive-color#13ce66inactive-color#ff4949:active-value1:inactive-value0/el-switch/template/el-table-column el-form-item label是否显示 propshowStatusel-switchv-modelform.showStatusactive-color#13ce66inactive-color#ff4949:active-value1:inactive-value0/el-switch/el-form-item 到这里这项优化工作就已经完成了其实很简单就是在你想要更换的那一列加个模板然后放一个开关的组件只是需要注意修改开关的开关规则。  2.6.2 优化二在修改页将logo地址文本框改为文件上传按钮 这里是我需要花大功夫讲的地方主要就是使用oss进行文件上传这里的前端部分的话主要就是懂得加上一个文件上传按钮然后这个按钮关联的许多参数得注意一下就行了。 这里采用的oss上传方式为携带好凭证然后文件直传到阿里云服务器的方式。 这里的关键在于两点 1. 上传文件组件从哪里来 这个可以用谷粒商城中老师已经写好了的文件上传组件直接用就行了单文件的多文件的都有 这里我先贴上老师的代码等下需要注意的地方再说一下 单文件上传组件 template divel-uploadactionhttp://sq-bucket-02.oss-cn-hangzhou.aliyuncs.com:datadataObjlist-typepicture:multiplefalse :show-file-listshowFileList:file-listfileList:before-uploadbeforeUpload:on-removehandleRemove:on-successhandleUploadSuccess:on-previewhandlePreviewel-button sizesmall typeprimary点击上传/el-buttondiv slottip classel-upload__tip只能上传jpg/png文件且不超过10MB/div/el-uploadel-dialog :visible.syncdialogVisibleimg width100% :srcfileList[0].url alt/el-dialog/div /template scriptimport {policy} from ./policyimport { getUUID } from /utils/getUUIDexport default {name: singleUpload,props: {value: String},computed: {imageUrl() {return this.value;},imageName() {if (this.value ! null this.value ! ) {return this.value.substr(this.value.lastIndexOf(/) 1);} else {return null;}},fileList() {return [{name: this.imageName,url: this.imageUrl}]},showFileList: {get: function () {return this.value ! null this.value ! this.value!undefined;},set: function (newValue) {}}},data() {return {dataObj: {policy: ,signature: ,key: ,ossaccessKeyId: ,dir: ,host: },dialogVisible: false};},methods: {emitInput(val) {this.$emit(input, val)},handleRemove(file, fileList) {this.emitInput();},handlePreview(file) {this.dialogVisible true;},beforeUpload(file) {const crypto require(crypto);let _self this;return new Promise((resolve, reject) {policy().then(response {_self.dataObj.policy response.data.policy;_self.dataObj.signature response.data.signature;_self.dataObj.ossaccessKeyId response.data.accessid;_self.dataObj.key response.data.dir /getUUID()_${filename};_self.dataObj.dir response.data.dir;_self.dataObj.host response.data.host;console.log(_self.dataObj,_self.dataObj);resolve(true)}).catch(err {reject(false)})})},handleUploadSuccess(res, file) {console.log(上传成功...)this.showFileList true;this.fileList.pop();this.fileList.push({name: file.name, url: this.dataObj.host / this.dataObj.key.replace(${filename},file.name) });this.emitInput(this.fileList[0].url);}}} /script style/style 多文件上传组件 templatedivel-uploadactionhttp://oss-cn-hangzhou.aliyuncs.com:datadataObjlist-typepicture-card:file-listfileList:before-uploadbeforeUpload:on-removehandleRemove:on-successhandleUploadSuccess:on-previewhandlePreview:limitmaxCount:on-exceedhandleExceedi classel-icon-plus/i/el-uploadel-dialog :visible.syncdialogVisibleimg width100% :srcdialogImageUrl alt //el-dialog/div /template script import { policy } from ./policy; import { getUUID } from /utils export default {name: multiUpload,props: {//图片属性数组value: Array,//最大上传图片数量maxCount: {type: Number,default: 30}},data() {return {dataObj: {policy: ,signature: ,key: ,ossaccessKeyId: ,dir: ,host: ,uuid: },dialogVisible: false,dialogImageUrl: null};},computed: {fileList() {let fileList [];for (let i 0; i this.value.length; i) {fileList.push({ url: this.value[i] });}return fileList;}},mounted() {},methods: {emitInput(fileList) {let value [];for (let i 0; i fileList.length; i) {value.push(fileList[i].url);}this.$emit(input, value);},handleRemove(file, fileList) {this.emitInput(fileList);},handlePreview(file) {this.dialogVisible true;this.dialogImageUrl file.url;},beforeUpload(file) {let _self this;return new Promise((resolve, reject) {policy().then(response {console.log(这是什么${filename});_self.dataObj.policy response.data.policy;_self.dataObj.signature response.data.signature;_self.dataObj.ossaccessKeyId response.data.accessid;_self.dataObj.key response.data.dir /getUUID()_${filename};_self.dataObj.dir response.data.dir;_self.dataObj.host response.data.host;resolve(true);}).catch(err {console.log(出错了...,err)reject(false);});});},handleUploadSuccess(res, file) {this.fileList.push({name: file.name,// url: this.dataObj.host / this.dataObj.dir / file.name 替换${filename}为真正的文件名url: this.dataObj.host / this.dataObj.key.replace(${filename},file.name)});this.emitInput(this.fileList);},handleExceed(files, fileList) {this.$message({message: 最多只能上传 this.maxCount 张图片,type: warning,duration: 1000});}} }; /script style /style 请求后端获取凭证的api js文件 import request from /utils/request export function policy() {return request({url: /thirdparty/oss/policy,method: get}); } 还有最终服务器中文件存储时的文件名所包含的uuid的工具类来生成UUID的 export function getUUID() {return xxxxxxxx-xxxx-xxxx-yxxx-xxxxxxxxxxxx.replace(/[xy]/g, c {const r (Math.random() * 32) | 0;const v c x ? r : (r 0x3) | 0x8;return v.toString(32).replace(-,);}); } 下面我简单的介绍一下这个文件上传组件文件 其实简单来说就是在真正的文件上传之前有一个前序方法这个方法的目的就是向后端发送请求获得直传的凭证只有获得了这个凭证才可以进行直传至于到底如何获取的那是后端的事情了。然后获取到这个凭证之后就会携带这个凭证并带上文件直接向阿里云服务器发请求直接保存到了阿里云服务器。  2. 在我们的项目中具体如何使用这个文件上传 这里才是真正需要注意的地方其他其实都不重要 1. 修改单文件上传组件中的阿里云的桶地址文件夹地址 改成自己的地址就行了地址可以在阿里云官网进行查看在这个位置 上面其实还是修改组件下面是真正的将组件用到我们的项目中去还是那几步 1. 引组件 2. 在vue实例中声明好组件 3. 在模板的所需位置使用组件 完成了这些步骤文件上传的组件也就在修改页展现出来了 展示出来了也就代表这项工作成功的完成了。其实也很简单就是在我们的前端项目中直接引入好老师直接提供好的前端文件上传所需的一些文件然后改一下桶路径然后在项目中引入直接使用即可。 2.6.3 优化三将表格列表的logo地址列改为显示图片 这里有着之前改成开关的例子之后就变得很简单了也是一样的既然是在表格中要修改表格列就只需要在那一列使用template然后在里面放上图片组件即可。 el-table-column label品牌logo aligncenter proplogotemplate slot-scopescopeel-imagestylewidth: 50px; height: 50px:srcscope.row.logofitcontain/el-image/template/el-table-column 三、后端部分 总的来说后端这里很单纯总是哈哈哈当然只是需要业务简单反正写到目前为止前端都相较于后端反而要繁琐一点。 在这里后端的话其实就一个接口获取文件上传凭证接口。 在说这个接口之前我先说一下这里文件上传的解决方案 文件上传我们其实比较熟悉了就是上传到服务器嘛这里使用的是oss文件上传技术oss文件上传常用的有两种上传方式 第一种很简洁明了的方式直接将文件发送到我们项目的后端服务器上面然后后后端服务器再调用oss的api实现文件的上传也就是说这里其实文件是直接到了我们的后端服务器上面去的给我们的后端服务器一定的压力。 第二种携带凭证的方式直接将文件上传到阿里云服务器这种方式就是先携带文件的一些信息比如说文件名bucket名bucket域名等信息发送到我们的后端服务器然后后端服务器调用oss的api获得凭证然后发给前端然后前端再携带上这个凭证以及文件然后直接发到oss服务器。也就是说这种方式其实是并没有将文件直接上传到我们自己的服务器上面去的减轻了我们自己的服务器的压力。 好现在oss的上传方式大致理解了我们现在采用第二种方式进行上传。 既然知道了方案实施起来难不难呢其实不难其实这里后端的工作就是获取凭证这里的凭证获取归根结底其实并不是我们直接获取的还是调用oss的api进行获取的那这个api到底是什么呢这里就需要访问阿里云的官网到官网中oss对象存储的文档那里去查看了这里我就不查看了其实不重要我这里直接贴代码能用就行了。 对了这里的话因为是oss文件上传其实不是业务模块了这里是第三方服务了因此我新建一个第三方服务以后的所有的第三方服务全放到这里比如说还有短信服务金融服务物流服务等。 这个服务的创建简单说一下 这并非业务服务因此并不需要像业务服务那样需要依赖那么多的依赖只需要简单的几个依赖就行了像这也是一个服务以后使用网关路由到这里因此得注册到nacos注册中心去因此那cos注册中心的依赖少不了还有现在是需要oss服务因此oss服务依赖少不了这里我并不是直接导入原生的oss依赖了而是导入对应的starter这样就是将方法更加封装起来了可以拿来直接使用一些参数只需要到配置文件中配好就行了 1. pom文件的创建 这里这个第三方服务的pom服务我直接给出这里我也还是直接引入的comment模块其实也可以直接引入的但是我这种方式还得注意排除掉一些依赖比如说MP和security的依赖这是不需要的 ?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersionparentgroupIdcom.sq/groupIdartifactIdgulimall/artifactIdversion1.0-SNAPSHOT/version/parentartifactIdthirdparty/artifactIdpropertiesmaven.compiler.source8/maven.compiler.sourcemaven.compiler.target8/maven.compiler.targetproject.build.sourceEncodingUTF-8/project.build.sourceEncoding/propertiesdependenciesdependencygroupIdcom.sq/groupIdartifactIdgulimall-common/artifactIdversion1.0-SNAPSHOT/versionexclusionsexclusiongroupIdcom.baomidou/groupIdartifactIdmybatis-plus-boot-starter/artifactId/exclusionexclusiongroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-security/artifactId/exclusion/exclusions/dependencydependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-alicloud-oss/artifactIdversion0.9.0.RELEASE/version/dependency/dependencies/project 2. 配置文件 application.yml: server:port: 8081 spring:cloud:util:enabled: falsenacos:discovery:server-addr: localhost:8848 # alicloud: # access-key: # secret-key: # oss: # endpoint:application:name: thirdpartyautoconfigure:exclude: org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration这里由于使用了nacos配置中心bootstrap.properties引导文件也是少不了的里面主要写好文件的位置文件的namespece命名空间分组等信息这里的话使用的是项目中的常用用法就是配置中心中配的方式是采用配置分离的方式也就是将原本在Java程序配置文件中的application.yml文件进行拆解拆解成多个文件比如说数据源可以拆开一个文件注册中心又是一个文件其他配置又是一个文件等等拆解成若干个文件这样更加方便管理。 话不多说这里直接给上bootstrap.properties里面的内容其实就只需要注意一下这种多文件怎么配置就行了 spring.cloud.nacos.config.server-addrlocalhost:8848 spring.application.namethirdpartyspring.cloud.nacos.config.namespace30366fc8-9ac7-44ef-846d-3ec8009fce8b spring.cloud.nacos.config.ext-config[0].data-idoss.yaml spring.cloud.nacos.config.ext-config[0].groupDEFAULT_GROUP spring.cloud.nacos.config.ext-config[0].refreshtrue 配置中心的样子长这样 3. 接口 也就是直接复制阿里云oss官网中给的样例改一下就行了 核心文件从阿里云官网oss文档荡下来的 主要在这里bucke和dir需要自己配一下其他AK和endpoint从nacos配置中心中读取 public AjaxResult policy(){String bucket sq-bucket-02; // 请填写您的 bucketname 。String host http:// bucket . endpoint; // host的格式为 bucketname.endpointString dir new SimpleDateFormat(yyyy/MM/dd).format(new Date());// 用户上传文件时指定的前缀。MapString, String respMap new HashMap();try {long expireTime 30;long expireEndTime System.currentTimeMillis() expireTime * 1000;Date expiration new Date(expireEndTime);PolicyConditions policyConds new PolicyConditions();policyConds.addConditionItem(PolicyConditions.COND_CONTENT_LENGTH_RANGE, 0, 1048576000);policyConds.addConditionItem(MatchMode.StartWith, PolicyConditions.COND_KEY, dir);String postPolicy ossClient.generatePostPolicy(expiration, policyConds);byte[] binaryData postPolicy.getBytes(utf-8);String encodedPolicy BinaryUtil.toBase64String(binaryData);String postSignature ossClient.calculatePostSignature(postPolicy);respMap new LinkedHashMapString, String();respMap.put(accessid, accessKey);respMap.put(policy, encodedPolicy);respMap.put(signature, postSignature);respMap.put(dir, dir);respMap.put(host, host);respMap.put(expire, String.valueOf(expireEndTime / 1000));} catch (Exception e) {System.out.println(e.getMessage());}return AjaxResult.success(respMap);} 接口完整代码 RestController RequestMapping(/thirdparty/oss) public class OssController {Autowiredprivate OSS ossClient;Value(value ${spring.cloud.alicloud.oss.endpoint})private String endpoint;Value(value ${spring.cloud.alicloud.access-key})private String accessKey;RequestMapping(/policy)public AjaxResult policy(){String bucket sq-bucket-02; // 请填写您的 bucketname 。String host http:// bucket . endpoint; // host的格式为 bucketname.endpointString dir new SimpleDateFormat(yyyy/MM/dd).format(new Date());// 用户上传文件时指定的前缀。MapString, String respMap new HashMap();try {long expireTime 30;long expireEndTime System.currentTimeMillis() expireTime * 1000;Date expiration new Date(expireEndTime);PolicyConditions policyConds new PolicyConditions();policyConds.addConditionItem(PolicyConditions.COND_CONTENT_LENGTH_RANGE, 0, 1048576000);policyConds.addConditionItem(MatchMode.StartWith, PolicyConditions.COND_KEY, dir);String postPolicy ossClient.generatePostPolicy(expiration, policyConds);byte[] binaryData postPolicy.getBytes(utf-8);String encodedPolicy BinaryUtil.toBase64String(binaryData);String postSignature ossClient.calculatePostSignature(postPolicy);respMap new LinkedHashMapString, String();respMap.put(accessid, accessKey);respMap.put(policy, encodedPolicy);respMap.put(signature, postSignature);respMap.put(dir, dir);respMap.put(host, host);respMap.put(expire, String.valueOf(expireEndTime / 1000));} catch (Exception e) {System.out.println(e.getMessage());}return AjaxResult.success(respMap);}}4. 在网关中进行注册配置 最后一步很重要这里又新增了一个服务在前端都只会像网关发请求至于需要网关发到我们的服务中去就需要到网关中配置好这个第三方服务的“关键信息”是thirdparty因此在网关中配置上即可。 - id: thirdparty_path_routeuri: lb://thirdpartypredicates:- Path/thirdparty/** 注意这里之前前端那里需要请求这个接口在那个前端api文件中的请求路径得与后端路径保持一致 四、总结 这次其实任务量还挺大的但是仔细一想其实还是简单的使用逆向生成的前端代码已经帮我们省去了百分之80的内容。 这里前端就干了三件事 1. 将状态列改成开关 2. 在修改页将logo地址改成文件上传按钮 3. 在表格列表中logo列改成图片 后端就干了一件事获取凭证。
文章转载自:
http://www.morning.qcdtzk.cn.gov.cn.qcdtzk.cn
http://www.morning.tpqzs.cn.gov.cn.tpqzs.cn
http://www.morning.cqwb25.cn.gov.cn.cqwb25.cn
http://www.morning.zlhzd.cn.gov.cn.zlhzd.cn
http://www.morning.hjwxm.cn.gov.cn.hjwxm.cn
http://www.morning.wjjsg.cn.gov.cn.wjjsg.cn
http://www.morning.pnbls.cn.gov.cn.pnbls.cn
http://www.morning.dmnqh.cn.gov.cn.dmnqh.cn
http://www.morning.bchfp.cn.gov.cn.bchfp.cn
http://www.morning.mnygn.cn.gov.cn.mnygn.cn
http://www.morning.i-bins.com.gov.cn.i-bins.com
http://www.morning.zymgs.cn.gov.cn.zymgs.cn
http://www.morning.lkbyq.cn.gov.cn.lkbyq.cn
http://www.morning.wckrl.cn.gov.cn.wckrl.cn
http://www.morning.ntzfl.cn.gov.cn.ntzfl.cn
http://www.morning.rpzth.cn.gov.cn.rpzth.cn
http://www.morning.fzlk.cn.gov.cn.fzlk.cn
http://www.morning.hxbjt.cn.gov.cn.hxbjt.cn
http://www.morning.kfwqd.cn.gov.cn.kfwqd.cn
http://www.morning.pfntr.cn.gov.cn.pfntr.cn
http://www.morning.jbmsp.cn.gov.cn.jbmsp.cn
http://www.morning.fwcjy.cn.gov.cn.fwcjy.cn
http://www.morning.langlaitech.cn.gov.cn.langlaitech.cn
http://www.morning.qlhkx.cn.gov.cn.qlhkx.cn
http://www.morning.kysport1102.cn.gov.cn.kysport1102.cn
http://www.morning.sqyjh.cn.gov.cn.sqyjh.cn
http://www.morning.bnlkc.cn.gov.cn.bnlkc.cn
http://www.morning.ykqbs.cn.gov.cn.ykqbs.cn
http://www.morning.fchkc.cn.gov.cn.fchkc.cn
http://www.morning.jlxld.cn.gov.cn.jlxld.cn
http://www.morning.4r5w91.cn.gov.cn.4r5w91.cn
http://www.morning.nqyzg.cn.gov.cn.nqyzg.cn
http://www.morning.jwncx.cn.gov.cn.jwncx.cn
http://www.morning.fbbpj.cn.gov.cn.fbbpj.cn
http://www.morning.nkkpp.cn.gov.cn.nkkpp.cn
http://www.morning.fgwzl.cn.gov.cn.fgwzl.cn
http://www.morning.nwjzc.cn.gov.cn.nwjzc.cn
http://www.morning.wxccm.cn.gov.cn.wxccm.cn
http://www.morning.ffcsr.cn.gov.cn.ffcsr.cn
http://www.morning.pqjpw.cn.gov.cn.pqjpw.cn
http://www.morning.pqryw.cn.gov.cn.pqryw.cn
http://www.morning.rlxnc.cn.gov.cn.rlxnc.cn
http://www.morning.rpzqk.cn.gov.cn.rpzqk.cn
http://www.morning.qsmch.cn.gov.cn.qsmch.cn
http://www.morning.wpxfk.cn.gov.cn.wpxfk.cn
http://www.morning.ngpdk.cn.gov.cn.ngpdk.cn
http://www.morning.rdqzl.cn.gov.cn.rdqzl.cn
http://www.morning.bfnbn.cn.gov.cn.bfnbn.cn
http://www.morning.cfccp.cn.gov.cn.cfccp.cn
http://www.morning.rnfwx.cn.gov.cn.rnfwx.cn
http://www.morning.fmgwx.cn.gov.cn.fmgwx.cn
http://www.morning.bxrqf.cn.gov.cn.bxrqf.cn
http://www.morning.mtzyr.cn.gov.cn.mtzyr.cn
http://www.morning.xsbhg.cn.gov.cn.xsbhg.cn
http://www.morning.wzyfk.cn.gov.cn.wzyfk.cn
http://www.morning.wbysj.cn.gov.cn.wbysj.cn
http://www.morning.ngcsh.cn.gov.cn.ngcsh.cn
http://www.morning.xjqrn.cn.gov.cn.xjqrn.cn
http://www.morning.btqrz.cn.gov.cn.btqrz.cn
http://www.morning.nqgff.cn.gov.cn.nqgff.cn
http://www.morning.trzzm.cn.gov.cn.trzzm.cn
http://www.morning.mqxrx.cn.gov.cn.mqxrx.cn
http://www.morning.gwqcr.cn.gov.cn.gwqcr.cn
http://www.morning.qxmys.cn.gov.cn.qxmys.cn
http://www.morning.ppghc.cn.gov.cn.ppghc.cn
http://www.morning.kpbn.cn.gov.cn.kpbn.cn
http://www.morning.tscsd.cn.gov.cn.tscsd.cn
http://www.morning.snmth.cn.gov.cn.snmth.cn
http://www.morning.sjsks.cn.gov.cn.sjsks.cn
http://www.morning.hcwjls.com.gov.cn.hcwjls.com
http://www.morning.qqrqb.cn.gov.cn.qqrqb.cn
http://www.morning.rlqml.cn.gov.cn.rlqml.cn
http://www.morning.tfwr.cn.gov.cn.tfwr.cn
http://www.morning.byshd.cn.gov.cn.byshd.cn
http://www.morning.pjftk.cn.gov.cn.pjftk.cn
http://www.morning.tqpr.cn.gov.cn.tqpr.cn
http://www.morning.ssjee.cn.gov.cn.ssjee.cn
http://www.morning.srbbh.cn.gov.cn.srbbh.cn
http://www.morning.ldgqh.cn.gov.cn.ldgqh.cn
http://www.morning.dhtdl.cn.gov.cn.dhtdl.cn
http://www.tj-hxxt.cn/news/256349.html

相关文章:

  • 株洲网站建设的企业二级学院网站制度建设
  • 网站开发名片怎么做付公司制作网站费怎么做凭证
  • 那网站做问答品牌策划公司招聘
  • 沈阳建站多少钱凡科建站网址
  • 深圳做积分商城网站公司40个界面ui外包多少钱
  • 做网站499泰安肥城网站建设
  • 北流网站建设wordpress加一个字段
  • 淮安汽车网站制作适合女生的长久职业
  • 请问做卖东西网站怎么wordpress div layer
  • 网站开发中网页之间的链接形式seo的推广技巧
  • 大家都在哪些网站做宣传wordpress get tags
  • 电子商务网站开发的预期目标网站在百度搜索不到
  • 静态html网址网站导航源码wordpress获取文章图片
  • 机械类产品网站做优化网络营销项目策划方案
  • 关于网站备案的公告做联轴器的网站
  • 企石镇做网站做网站的优化价格
  • 重庆建站公司价钱企业网站的基本内容
  • 城市建设的网站 政策法规重庆江北网站建设公司
  • 怀柔建设网站公司wordpress支持
  • 租车网站制作方案青海网站建设西宁网络科技公司
  • 站酷网下载企业网站只用静态页
  • 网站运营系统网上营销推广方案
  • 长春网站建设硕成传媒网站的系统建设方式有哪些
  • 如何运用网站模板上海网站建设咨询报价
  • 教人如何做吃的网站门户网站建设工作讲话
  • 国内p2p网站建设怎样做软件网站
  • 网站备案目的有没有专门招代理的网站
  • 微信商城网站怎么开发东莞网站建站服务公司
  • 做关于时尚网站的目的福州市工程建设监督站网站
  • 免费网站正能量软件2024最火的十大新闻有哪些