SEO基础

SEO基础

Products

当前位置:首页 > SEO基础 >

室内设计者联盟网站如何在广州建立专业网站?

96SEO 2026-02-20 09:21 0


2.2

优化一将表格的状态列这里是是否显示列修改为开关同时在修改页新增可显示修改开关

室内设计者联盟网站如何在广州建立专业网站?

2.6.2

之前的分类管理的前端部分基本上是手写的增删改查虽然部分是直接使用的elementUI提供的组件只是稍作修改但是还是需要自己去找对应的组件组件写数据域自己写方法自己绑定等其实要写的还是比较多的。

但其实仔细一想的话其实这些组件都差不多都是一些列表提供一些按钮一些文本框然后进行增删改查代码都差不多。

既然差不多没什么技术含量的东西只是比较繁琐。

那么应该就能自动生成的能给我们直接使用是的若依也提供了前端部分的逆向代码。

ps兄弟们真的要努力的学了这些基本的增删改查代码都不需要我们写了如果你还只会这些简单的会被淘汰的

二、前端部分

实现找到前端逆向生成的代码部分其实就是和main同级的里面放着在网页所选择的很多张表所对应的前端代码

2.1

这个没什么好说的在之前的创建分类管理的时候已经操作过一遍了只是部分属性修改一下就行了

其实还可以选择在数据库中创建之后可以使用数据库进行批量创建其实都差不多

2.2

看着好像挺好的基本上我们自己去写也就是写这些东西现在都帮我们已经写好了极大的提升了开发效率但是这一般来说不能这样就OK了还需要优化或者是需要根据一定的需求做调整。

修改状态列为开关修改页同理

像这种是否显示的这种或是其他字段使用01来表示状态的一般来说我们不希望直接这么突兀的直接显示主要是看着不美观最重要的是不好直接修改还需要到修改弹窗那里手动的输入0或者1进行修改这样不方便如果在这个列表中这一个属性使用开关进行替换的话就可以不打开修改弹窗也不需要手动的去输入状态值了而是直接点击一下就能直接的修改了很方面。

修改图片地址列为真实图片

这个直接放置图片地址的方式肯定不可取根本就不知道图片长什么样子我们只需要使用elementUI为我们提供的图片组件将其进行替换即可。

主要也就是这三部分在其他组件页面其实大致都是这些地方需要进行修改。

2.6

优化一将表格的状态列这里是是否显示列修改为开关同时在修改页新增可显示修改开关

其实很简单既然这里是要替换表格中的一列那么势必就得参考elementUI中的表格组件如何进行替换要有这种意识哪个组件上面进行修改就查看哪个组件的文档ps像是废话但很重要思路就是这样产生的。

找到这个自定义模板。

我们照葫芦画瓢直接复制这个template到我们自己的组件中去

在表格列处

这只是一个模板就和组件文件中三大件中的模板一样其实就是规定了组件写的位置具体还是要在里面写好组件例如现在需要放开关组件而之后的表格的logo地址的那一列则需要放图片组件。

现在的任务就是继续到官网里面去找修改状态开关组件

最重要的就是将决定开关是否开还是闭与数据域中的数据进行关联使用v-model指令进行动态的绑定

但是这里会发现一个问题就是无论我的数据库中值无论是0还是1也就是无论是

显示还是不显示开关都是闭合的状态那这是怎么回事呢其实要有这么一种意识那就是这个开关开与闭肯定是受到一个值也就是我这里绑定的form.showStatus对应数据库中对象的这一列值。

我们知道数据库中这一列值只会是0或者是1其实啊这个开关组件并不知道0代表关1代表开它默认自己是根据布尔值决定开还是关的false代表关true代表开默认是这样。

那肯定我们的数据库中一般不存布尔值是吧所以肯定也得换elementUI也知道肯定也会有这样的需求所以也就提供了相应的参数去自己指定开是什么值关又是什么值。

elememtUI官网已经说的很明白了

这里因为是需要动态和数据域中的属性进行绑定因此需要使用在参数前加上

冒号进行指定

最终的样子长这样ps这里已经是将每一步都讲得很细节了如果还不明白的话请私信我

不要忘记修改页面同样得记得加上。

都一样的东西只是绑定的值不一样

el-table-column

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

propshowStatusel-switchv-modelform.showStatusactive-color#13ce66inactive-color#ff4949:active-value1:inactive-value0/el-switch/el-form-item

到这里这项优化工作就已经完成了其实很简单就是在你想要更换的那一列加个模板然后放一个开关的组件只是需要注意修改开关的开关规则。

2.6.2

这里是我需要花大功夫讲的地方主要就是使用oss进行文件上传这里的前端部分的话主要就是懂得加上一个文件上传按钮然后这个按钮关联的许多参数得注意一下就行了。

这里采用的oss上传方式为携带好凭证然后文件直传到阿里云服务器的方式。

上传文件组件从哪里来

这个可以用谷粒商城中老师已经写好了的文件上传组件直接用就行了单文件的多文件的都有

单文件上传组件

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

classel-upload__tip只能上传jpg/png文件且不超过10MB/div/el-uploadel-dialog

width100%

this.value.substr(this.value.lastIndexOf(/)

1);}

{this.emitInput();},handlePreview(file)

{this.dialogVisible

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,

this.dataObj.key.replace(${filename},file.name)

});this.emitInput(this.fileList[0].url);}}}

/script

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

width100%

{value.push(fileList[i].url);}this.$emit(input,

fileList)

{this.emitInput(fileList);},handlePreview(file)

{this.dialogVisible

{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.dataObj.key.replace(${filename},file.name)});this.emitInput(this.fileList);},handleExceed(files,

fileList)

还有最终服务器中文件存储时的文件名所包含的uuid的工具类来生成UUID的

export

xxxxxxxx-xxxx-xxxx-yxxx-xxxxxxxxxxxx.replace(/[xy]/g,

{const

其实简单来说就是在真正的文件上传之前有一个前序方法这个方法的目的就是向后端发送请求获得直传的凭证只有获得了这个凭证才可以进行直传至于到底如何获取的那是后端的事情了。

然后获取到这个凭证之后就会携带这个凭证并带上文件直接向阿里云服务器发请求直接保存到了阿里云服务器。

上面其实还是修改组件下面是真正的将组件用到我们的项目中去还是那几步

引组件

展示出来了也就代表这项工作成功的完成了。

其实也很简单就是在我们的前端项目中直接引入好老师直接提供好的前端文件上传所需的一些文件然后改一下桶路径然后在项目中引入直接使用即可。

2.6.3

这里有着之前改成开关的例子之后就变得很简单了也是一样的既然是在表格中要修改表格列就只需要在那一列使用template然后在里面放上图片组件即可。

el-table-column

slot-scopescopeel-imagestylewidth:

50px;

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这样就是将方法更加封装起来了可以拿来直接使用一些参数只需要到配置文件中配好就行了

这里这个第三方服务的pom服务我直接给出这里我也还是直接引入的comment模块其实也可以直接引入的但是我这种方式还得注意排除掉一些依赖比如说MP和security的依赖这是不需要的

?xml

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

配置文件

falsenacos:discovery:server-addr:

localhost:8848

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

主要在这里bucke和dir需要自己配一下其他AK和endpoint从nacos配置中心中读取

public

SimpleDateFormat(yyyy/MM/dd).format(new

Date());//

Date(expireEndTime);PolicyConditions

policyConds

PolicyConditions();policyConds.addConditionItem(PolicyConditions.COND_CONTENT_LENGTH_RANGE,

1048576000);policyConds.addConditionItem(MatchMode.StartWith,

dir);String

ossClient.generatePostPolicy(expiration,

policyConds);byte[]

postPolicy.getBytes(utf-8);String

encodedPolicy

BinaryUtil.toBase64String(binaryData);String

postSignature

ossClient.calculatePostSignature(postPolicy);respMap

new

encodedPolicy);respMap.put(signature,

postSignature);respMap.put(dir,

1000));}

{System.out.println(e.getMessage());}return

接口完整代码

RequestMapping(/thirdparty/oss)

public

${spring.cloud.alicloud.oss.endpoint})private

String

${spring.cloud.alicloud.access-key})private

String

accessKey;RequestMapping(/policy)public

AjaxResult

SimpleDateFormat(yyyy/MM/dd).format(new

Date());//

Date(expireEndTime);PolicyConditions

policyConds

PolicyConditions();policyConds.addConditionItem(PolicyConditions.COND_CONTENT_LENGTH_RANGE,

1048576000);policyConds.addConditionItem(MatchMode.StartWith,

dir);String

ossClient.generatePostPolicy(expiration,

policyConds);byte[]

postPolicy.getBytes(utf-8);String

encodedPolicy

BinaryUtil.toBase64String(binaryData);String

postSignature

ossClient.calculatePostSignature(postPolicy);respMap

new

encodedPolicy);respMap.put(signature,

postSignature);respMap.put(dir,

1000));}

{System.out.println(e.getMessage());}return

AjaxResult.success(respMap);}}4.

在网关中进行注册配置

最后一步很重要这里又新增了一个服务在前端都只会像网关发请求至于需要网关发到我们的服务中去就需要到网关中配置好这个第三方服务的“关键信息”是thirdparty因此在网关中配置上即可。

id:

注意这里之前前端那里需要请求这个接口在那个前端api文件中的请求路径得与后端路径保持一致

四、总结

这次其实任务量还挺大的但是仔细一想其实还是简单的使用逆向生成的前端代码已经帮我们省去了百分之80的内容。

将状态列改成开关



SEO优化服务概述

作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。

百度官方合作伙伴 白帽SEO技术 数据驱动优化 效果长期稳定

SEO优化核心服务

网站技术SEO

  • 网站结构优化 - 提升网站爬虫可访问性
  • 页面速度优化 - 缩短加载时间,提高用户体验
  • 移动端适配 - 确保移动设备友好性
  • HTTPS安全协议 - 提升网站安全性与信任度
  • 结构化数据标记 - 增强搜索结果显示效果

内容优化服务

  • 关键词研究与布局 - 精准定位目标关键词
  • 高质量内容创作 - 原创、专业、有价值的内容
  • Meta标签优化 - 提升点击率和相关性
  • 内容更新策略 - 保持网站内容新鲜度
  • 多媒体内容优化 - 图片、视频SEO优化

外链建设策略

  • 高质量外链获取 - 权威网站链接建设
  • 品牌提及监控 - 追踪品牌在线曝光
  • 行业目录提交 - 提升网站基础权威
  • 社交媒体整合 - 增强内容传播力
  • 链接质量分析 - 避免低质量链接风险

SEO服务方案对比

服务项目 基础套餐 标准套餐 高级定制
关键词优化数量 10-20个核心词 30-50个核心词+长尾词 80-150个全方位覆盖
内容优化 基础页面优化 全站内容优化+每月5篇原创 个性化内容策略+每月15篇原创
技术SEO 基本技术检查 全面技术优化+移动适配 深度技术重构+性能优化
外链建设 每月5-10条 每月20-30条高质量外链 每月50+条多渠道外链
数据报告 月度基础报告 双周详细报告+分析 每周深度报告+策略调整
效果保障 3-6个月见效 2-4个月见效 1-3个月快速见效

SEO优化实施流程

我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:

1

网站诊断分析

全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。

2

关键词策略制定

基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。

3

技术优化实施

解决网站技术问题,优化网站结构,提升页面速度和移动端体验。

4

内容优化建设

创作高质量原创内容,优化现有页面,建立内容更新机制。

5

外链建设推广

获取高质量外部链接,建立品牌在线影响力,提升网站权威度。

6

数据监控调整

持续监控排名、流量和转化数据,根据效果调整优化策略。

SEO优化常见问题

SEO优化一般需要多长时间才能看到效果?
SEO是一个渐进的过程,通常需要3-6个月才能看到明显效果。具体时间取决于网站现状、竞争程度和优化强度。我们的标准套餐一般在2-4个月内开始显现效果,高级定制方案可能在1-3个月内就能看到初步成果。
你们使用白帽SEO技术还是黑帽技术?
我们始终坚持使用白帽SEO技术,遵循搜索引擎的官方指南。我们的优化策略注重长期效果和可持续性,绝不使用任何可能导致网站被惩罚的违规手段。作为百度官方合作伙伴,我们承诺提供安全、合规的SEO服务。
SEO优化后效果能持续多久?
通过我们的白帽SEO策略获得的排名和流量具有长期稳定性。一旦网站达到理想排名,只需适当的维护和更新,效果可以持续数年。我们提供优化后维护服务,确保您的网站长期保持竞争优势。
你们提供SEO优化效果保障吗?
我们提供基于数据的SEO效果承诺。根据服务套餐不同,我们承诺在约定时间内将核心关键词优化到指定排名位置,或实现约定的自然流量增长目标。所有承诺都会在服务合同中明确约定,并提供详细的KPI衡量标准。

SEO优化效果数据

基于我们服务的客户数据统计,平均优化效果如下:

+85%
自然搜索流量提升
+120%
关键词排名数量
+60%
网站转化率提升
3-6月
平均见效周期

行业案例 - 制造业

  • 优化前:日均自然流量120,核心词无排名
  • 优化6个月后:日均自然流量950,15个核心词首页排名
  • 效果提升:流量增长692%,询盘量增加320%

行业案例 - 电商

  • 优化前:月均自然订单50单,转化率1.2%
  • 优化4个月后:月均自然订单210单,转化率2.8%
  • 效果提升:订单增长320%,转化率提升133%

行业案例 - 教育

  • 优化前:月均咨询量35个,主要依赖付费广告
  • 优化5个月后:月均咨询量180个,自然流量占比65%
  • 效果提升:咨询量增长414%,营销成本降低57%

为什么选择我们的SEO服务

专业团队

  • 10年以上SEO经验专家带队
  • 百度、Google认证工程师
  • 内容创作、技术开发、数据分析多领域团队
  • 持续培训保持技术领先

数据驱动

  • 自主研发SEO分析工具
  • 实时排名监控系统
  • 竞争对手深度分析
  • 效果可视化报告

透明合作

  • 清晰的服务内容和价格
  • 定期进展汇报和沟通
  • 效果数据实时可查
  • 灵活的合同条款

我们的SEO服务理念

我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。

提交需求或反馈

Demand feedback