给你看的文章

<div class="app-container">
    <el-row :gutter="20">
      <el-col :span="6" :xs="24">
        <el-card class="box-card">
          <div slot="header" class="clearfix">
            <span>个人信息</span>
          </div>
          <div>
            <div class="text-center">
              <userAvatar :user="user" />
            </div>
            <ul class="list-group list-group-striped">
              <li class="list-group-item">
                <svg-icon icon-class="user" />用户名称
                <div class="pull-right">{{ user.userName }}</div>
              </li>
              <li class="list-group-item">
                <svg-icon icon-class="phone" />手机号码
                <div class="pull-right">{{ user.phonenumber }}</div>
              </li>
              <li class="list-group-item">
                <svg-icon icon-class="email" />用户邮箱
                <div class="pull-right">{{ user.email }}</div>
              </li>
              <li class="list-group-item">
                <svg-icon icon-class="tree" />所属部门
                <div class="pull-right" v-if="user.dept">{{ user.dept.deptName }} / {{ postGroup }}</div>
              </li>
              <li class="list-group-item">
                <svg-icon icon-class="peoples" />所属角色
                <div class="pull-right">{{ roleGroup }}</div>
              </li>
              <li class="list-group-item">
                <svg-icon icon-class="date" />创建日期
                <div class="pull-right">{{ user.createTime }}</div>
              </li>
            </ul>
          </div>
        </el-card>
      </el-col>
      <el-col :span="18" :xs="24">
        <el-card>
          <div slot="header" class="clearfix">
            <span>基本资料</span>
          </div>
          <el-tabs v-model="activeTab">
            <el-tab-pane label="基本资料" name="userinfo">
              <userInfo :user="user" @getUser="getUser"/>
            </el-tab-pane>
            <el-tab-pane label="修改密码" name="resetPwd">
              <resetPwd />
            </el-tab-pane>
          </el-tabs>
        </el-card>
      </el-col>
    </el-row>
  </div>


<div>
    <el-form ref="form" :model="user" :rules="rules" label-width="80px">
      <el-form-item label="用户昵称" prop="nickName">
        <el-input v-model="user.nickName" maxlength="30" />
      </el-form-item>
      <el-form-item label="手机号码" prop="phonenumber">
        <el-input v-model="user.phonenumber" maxlength="11" />
      </el-form-item>
      <el-form-item label="邮箱" prop="email">
        <el-input v-model="user.email" maxlength="50" />
      </el-form-item>
      <el-form-item label="性别">
        <el-radio-group v-model="user.sex">
          <el-radio label="0"></el-radio>
          <el-radio label="1"></el-radio>
        </el-radio-group>
      </el-form-item>
      <el-form-item label="账户余额">
        <span style="color:rgb(245,108,108) ">¥{{user.money}}元</span>
        <el-button style="color: white;margin-left: 10px;border-radius: 20px;background-color: rgb(245,108,108)" @click="chongzhi">充值</el-button>
        <!--      <el-radio-group v-model="user.sex">-->
        <!--        <el-radio label="0">男</el-radio>-->
        <!--        <el-radio label="1">女</el-radio>-->
        <!--      </el-radio-group>-->
      </el-form-item>
      <el-form-item>
        <el-button type="primary" size="mini" @click="submit">保存</el-button>
        <el-button type="danger" size="mini" @click="close">关闭</el-button>
      </el-form-item>
    </el-form>
    <el-dialog title="充值" :visible.sync="open" width="500px" append-to-body>
      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
        <el-form-item label="充值金额" prop="money">
          <el-input v-model="form.money" placeholder="请输入充值金额" />
        </el-form-item>
        <el-form-item label="充值方式" prop="type">
          <el-select v-model="form.type" placeholder="请选择充值方式" style="width: 100%">
            <el-option
              v-for="dict in dict.type.money_type"
              :key="dict.value"
              :label="dict.label"
              :value="dict.value"
            ></el-option>
          </el-select>
        </el-form-item>
      </el-form>
      <div slot="footer" class="dialog-footer">
        <el-button type="primary" @click="submitForm">确 定</el-button>
        <el-button @click="cancel">取 消</el-button>
      </div>
    </el-dialog>
  </div>
<div style="display: flex;justify-content: space-around;">
    <div style="width: 1120px;padding: 10px;">
      <div style="background-color: white;padding: 10px;display:flex;justify-content: space-between;">
        <div style="text-align: initial">
          <h2 style="display: contents;">{{licai.productName}}</h2>
        </div>
      </div>
      <div style="background-color: white;padding: 10px;">
        <div style="display: flex;justify-content: space-around;">
          <div style="width: 55%;">
            <img :src="'http://localhost:8083'+licai.coverPhoto" style="width: 100%;height: 400px;"/>
          </div>
          <div class="blog-message">
            <div>
              <p><i class="el-icon-time blog-icon"></i>风险等级: {{licai.riskLevel}}</p>
            </div>
            <div>
              <p><i class="el-icon-location-outline blog-icon"></i>描述: {{licai.productDescription}}</p>
            </div>
            <div>
              <p><i class="el-icon-c-scale-to-original blog-icon"></i>收益率: {{licai.benefitProfile}}</p>
            </div>
            <div>
              <p><i class="el-icon-user blog-icon"></i>销售数: {{licai.num}}</p>
            </div>
            <div>
              <p><i class="el-icon-phone blog-icon"></i>产品起投价: {{licai.productPrice}}</p>
            </div>
<!--            <div>-->
<!--              <p><i class="el-icon-phone blog-icon"></i>是否打疫苗: {{pet.isvaccine===1?'是':'否'}}</p>-->
<!--            </div>-->
<!--            <div>-->
<!--              <p><i class="el-icon-phone blog-icon"></i>宠物是否有伤人风险: {{pet.hasrisk===1?'是':'否'}}</p>-->
<!--            </div>-->
<!--            <div>-->
<!--              <p><i class="el-icon-phone blog-icon"></i>是否绝育: {{pet.iscut===1?'是':'否'}}</p>-->
<!--            </div>-->
            <div>
              <p><i class="el-icon-phone blog-icon"></i>发布时间: {{licai.createTime}}</p>
            </div>
          </div>
        </div>
        <div style="margin-top: 40px">
          <el-divider content-position="left"><h3>理财产品介绍</h3></el-divider>
          <div style="text-align: start;">
            <p>{{licai.productDescription}}</p>
          </div>
        </div>
        <div>
          <el-button type="success" @click="dialogFormVisibles()" round v-if="hasRole==false">购买</el-button>
        </div>
      </div>
    </div>
    <el-dialog title="" :visible.sync="dialogFormVisible">
      <el-form :model="ruleForm" :rules="rules1" ref="ruleForm" label-width="100px" class="demo-ruleForm">
        <el-form-item label="购买的价格" prop="productPrice">
          <el-input
            placeholder="输入您需要购买的价格"
            v-model="ruleForm.productPrice">
          </el-input>
        </el-form-item>
        <el-form-item>
          <el-button type="primary" @click="onSubmit('ruleForm')" round>保存</el-button>
        </el-form-item>
      </el-form>
    </el-dialog>
  </div>

### 浏览器插件功能概述 为了提升文章阅读体验,可以设计一款基于浏览器扩展的插件。该插件的主要目标是优化用户的阅读环境,提供诸如字体调整、背景颜色更改、夜间模式切换等功能[^1]。此外,还可以集成一些高级特性,例如文章摘要生成、关键词高亮显示以及内容过滤等。 以下是关于如何实现此类插件的核心技术和逻辑: --- ### 插件架构设计 #### 1. **前端交互** 通过 Vue.js 构建用户界面,允许用户自定义设置。例如: - 字体大小调节滑块。 - 背景主题选择下拉菜单。 - 文章摘要按钮触发事件。 ```javascript // 示例代码:Vue组件用于控制字体大小 <template> <div> <label>Font Size:</label> <input type="range" v-model="fontSize" min="10" max="24"> </div> </template> <script> export default { data() { return { fontSize: 16, }; }, watch: { fontSize(newSize) { document.body.style.fontSize = `${newSize}px`; }, }, }; </script> ``` 此部分的设计灵感来源于 Spring Boot 和 Vue 的组合开发经验。 --- #### 2. **后端服务接口** 利用 Spring Boot 提供 RESTful API 接口来处理数据请求。例如,当用户点击“生成摘要”按钮时,可以通过调用 `ArticleService` 中的方法加载指定的文章内容并返回摘要信息。 ```java @RestController @RequestMapping("/api/article") public class ArticleController { @Autowired private ArticleService articleService; @GetMapping("/{id}/summary") public String getSummary(@PathVariable Long id) { // 假设这里有一个方法可以从数据库获取文章正文并生成摘要 return generateSummary(articleService.loadPage(id)); } private String generateSummary(PageInfo<Article> pageInfo) { StringBuilder summary = new StringBuilder(); List<String> keySentences = extractKeySentences(pageInfo.getList()); for (String sentence : keySentences) { summary.append(sentence).append(" "); } return summary.toString().trim(); } } ``` 上述代码片段展示了如何从服务器端提取关键句作为文章摘要的一部分。 --- #### 3. **跨平台兼容性** 考虑到不同操作系统上的浏览器可能存在差异,在开发过程中需特别关注 CSS 渲染效果的一致性和 JavaScript 行为的表现一致性[^3]。同时还需要测试各种类型的文档(PDF、Word、Excel),确保它们都能被正确解析和展示给最终用户查看。 对于 PDF 文件的支持,可采用第三方库如 pdf.js;而对于 Word/Excel,则可能需要用到 Office Online 或其他类似的解决方案来进行转换后再呈现出来。 --- ### 总结 综上所述,构建这样一个增强型阅读体验的浏览器插件涉及多个方面的知识和技术栈的应用,包括但不限于前后端分离式的应用程序搭建方式、REST APIs 设计原则以及多格式文件处理技巧等方面的内容。希望这些信息对你有所帮助! ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值