vue使用纪要

news2024/11/27 12:32:54

一、基础总结

1、构成

1)位置目录

如下图所示:
一个页面一个vue文件,位置在src下边的views里边;
在这里插入图片描述
如下图:
一个vue文件,对应一个或多个js文件,js放在src下边的api中;
在这里插入图片描述

2)页面组成

如图:一个vue,主要由和

template组件示例

template中又包含以下组成部分:
a、表单
放查询条件,格式可以参考下面代码

<el-form :model="this.queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch">
      <el-form-item label="用户名" prop="userName">
        <el-input
          v-model="queryParams.userName"
          placeholder="请输入用户名"
          clearable
          style="width: 240px"
          @keyup.enter.native="handleQuery"
        />
      </el-form-item>
      <el-form-item label="申请编号" prop="applyId">
        <el-input
          v-model="queryParams.applyId"
          placeholder="请输申请编号"
          clearable
          style="width: 240px"
          @keyup.enter.native="handleQuery"
        />
      </el-form-item>
      <el-form-item label="状态" prop="recordStat">
        <el-select v-model="queryParams.recordStat" placeholder="请选择状态" clearable>
          <el-option label="全部" value="0"></el-option>
          <el-option label="未传输" value="1"></el-option>
          <el-option label="传输失败" value="2"></el-option>
          <el-option label="已传输未申请" value="3"></el-option>
          <el-option label="已传输已申请" value="4"></el-option>
          <el-option label="已传输申请失败" value="5"></el-option>
        </el-select>
      </el-form-item>
      <el-form-item>
        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
      </el-form-item>
</el-form>

b、独立行
用来另起一行放一些按钮,并不是必要的,代码如下:

<el-row :gutter="10" class="mb8">
      <el-col :span="1.5">
        <el-button 
        type="primary" 
        plain 
        icon="el-icon-plus" 
        size="mini" 
        @click="handleImport"
        > 导入 </el-button>
      </el-col>
      <right-toolbar @queryTable="getList"></right-toolbar>
      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>

c、列表
放数据列表,包含多个列组件,代码如下:

<el-table v-loading="loading" :data="tableListData">
      <el-table-column type="index" width="100" label="序号" align="center"></el-table-column>
      <el-table-column label="申请编号" prop="applyId" width="200" align="center"/>
      <el-table-column label="用户id" prop="userId" width="200" align="center"/>
      <el-table-column label="用户名" prop="userName" width="200" align="center"/>
      <el-table-column label="卡号" prop="creditCardNo" width="200" align="center"/>
      <el-table-column label="卡密" prop="creditCardPwd" width="200" align="center"/>
      <el-table-column label="传输状态" width="200" align="center">
        <template slot-scope="scope">
          <span v-if="scope.row.transferStat==0" style="color:#000000">未传输</span>
					<span v-if="scope.row.transferStat==1" style="color:#00FF00">已传输</span>
          <span v-if="scope.row.transferStat==-1" style="color:#FF0000">传输失败</span>
        </template>
      </el-table-column>
      <el-table-column label="申请状态" prop="applyCreditStat" width="200" align="center">
        <template slot-scope="scope">
          <span v-if="scope.row.applyCreditStat==0" style="color:#000000">未申请</span>
					<span v-if="scope.row.applyCreditStat==1" style="color:#00FF00">已申请</span>
          <span v-if="scope.row.applyCreditStat==-1" style="color:#FF0000">申请失败</span>
        </template>
      </el-table-column>
</el-table>

d、分页
分页组件,代码如下:

<pagination
      v-show="total>0"
      :total="total"
      :page.sync="queryParams.pageNum"
      :limit.sync="queryParams.pageSize"
      @pagination="getList"
    />

script示例代码

<script>
import { applyCreditLogList } from "@/api/course/transferAndApply";
import { getToken } from "@/utils/auth";
export default {
  name: "ApplyCredit",
  data() {
    return {
      // 用户导入参数
      upload: {
        // 是否显示弹出层(用户导入)
        open: false,
        // 弹出层标题
        title: "申请用户导入",
        // 是否禁用上传
        isUploading: false,
        // 是否更新已经存在的用户数据
        updateSupport: 0,
        // 设置上传的请求头部
        headers: { Authorization: "Bearer " + getToken() },
        // 上传的地址
        url: process.env.VUE_APP_BASE_API + "/system/credit/uuApplyUserInfo?isModi=1"
      },

      showSearch: true,
      queryParams: {
        pageNum: 1,
        pageSize: 20,
        userName: undefined,
        applyId: "",
        recordStat: "0",
      },
      total: 0,
      loading: false,
      tableListData: [],
      open: false,
      title: "",
      form: {},
    }
  },
  created() {
    this.getList();
  },
  methods: {
    getList() {
      let formData = new FormData();
      formData.append('pageSize', this.queryParams.pageSize)
      formData.append('pageNum', this.queryParams.pageNum)
      if(this.queryParams.userName) formData.append('userName', this.queryParams.userName)
      if(this.queryParams.applyId) formData.append('applyId', this.queryParams.applyId)
      if(this.queryParams.recordStat) formData.append('recordStat', this.queryParams.recordStat)
      this.loading = true;
      applyCreditLogList(formData).then(response => {
        this.tableListData = response.records;
        this.total = response.total;
        this.loading = false;
      })
    },
    handleQuery() {
      this.queryParams.pageNum = 1;
      this.getList();
    },
    reset() {
      this.form = {
        name: "",
        sort: 0
      };
      this.resetForm("form");
    },
    /** 导入按钮操作 */
    handleImport() {
      this.upload.title = "用户导入";
      this.upload.open = true;
    },
    /** 下载模板操作 */
    importTemplate() {
      this.download('/system/credit/getTemplate/applyCredit', {
      }, `import_template_${new Date().getTime()}.xls`)
    },
    // 文件上传中处理
    handleFileUploadProgress(event, file, fileList) {
      this.upload.isUploading = true;
    },
    // 文件上传成功处理
    handleFileSuccess(response, file, fileList) {
      this.upload.open = false;
      this.upload.isUploading = false;
      this.$refs.upload.clearFiles();
      this.$alert("<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" + response.msg + "</div>", "导入结果", { dangerouslyUseHTMLString: true });
      this.getList();
    },
    // 提交上传文件
    submitFileForm() {
      this.$refs.upload.submit();
    }
  }
}
</script>

二、常用技巧补充

1、vue根据参数值不同,显示不同内容

在这里插入图片描述

<el-table-column label="传输状态" width="200" align="center">
        <template slot-scope="scope">
          <span v-if="scope.row.transferStat==0" style="color:#000000">未传输</span>
					<span v-if="scope.row.transferStat==1" style="color:#00FF00">已传输</span>
          <span v-if="scope.row.transferStat==-1" style="color:#FF0000">传输失败</span>
        </template>
</el-table-column>

其中template标签不能省略,其属性slot-scope="scope"是关键设置,设置完成后scope.row是固定搭配,取的是当前数据行;其后可取该行的所有字段。
还可以通过设置标签的style属性,给字体配置属性;color开头是配置字体颜色,background开头是配置背景颜色。
几种比较常用的颜色编码,其他的可以网上搜
白色 #FFFFFF
黑色 #000000
蓝色 #0000FF
红色 #FF0000
黄色 #FFFF00
绿色 #00FF00

2、

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/620825.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

开源杀毒引擎库libclamav的使用方法

《开源杀毒引擎ClamAV的源码编译安装》中我们讲了ClamAV的安装和使用方法&#xff0c;可以很方便的使用ClamAV提供的工具进行病毒扫描&#xff0c;当然我们也可以在我们的程序中集成它提供的libclamav开发库来实现病毒扫描&#xff0c;libclamav是一个功能强大的病毒扫描库&…

代码随想录刷题第46天|LeetCode139单词拆分、多重背包

1、LeetCode139单词拆分 题目链接&#xff1a;139单词拆分 1、dp[i] : 字符串长度为i的话&#xff0c;dp[i]为true&#xff0c;表示可以拆分为一个或多个在字典中出现的单词。 2、递推公式&#xff1a;如果确定dp[j] 是true&#xff0c;且 [j, i] 这个区间的子串出现在字典里…

Using index Using where和 Using where Using index有何区别

先把结论呈现出来&#xff1a; 1、Using index : 查询的列被索引覆盖&#xff0c;并且where筛选条件是索引的是前导列&#xff0c;Extra中为Using index 2、 Using index &#xff0c;Using where&#xff1a;查询的列被索引覆盖&#xff0c;数据都是先通过索引查询出来的…

语法篇JS基础

一、初识JavaScript 1.1前景 CSS 预处理器 CSS 预处理器定义了一种新的语言&#xff0c;其基本思想是&#xff0c;用一种专门的编程语言&#xff0c;为 CSS 增加了一些 编程的特性&#xff0c;将 CSS 作为目标生成文件&#xff0c;然后开发者就只要使用这种语言进行 CSS 的编码…

cookies介绍

cookies介绍 Cookies概述 Cookies是网络浏览器中用于存储用户信息的小文本文件。Cookie的大小通常限制在4KB以内&#xff08;不同浏览器内核可能有细微差异或有单域名更高的限制&#xff09;。当你访问某个网站时&#xff0c;该网站可能会在你的计算机上创建一个cookie&#…

PDB Database - ESM Atlas PDB 数据集的多维度分析与整理 (3)

欢迎关注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://blog.csdn.net/caroline_wendy/article/details/131095395 PDB 三大数据集的多维度分析与整理&#xff1a; 人工提交 - RCSB PDB&#xff1a;PDB Database - RCSB PDB 数据集的多维度分…

YUV4:2:0是什么意思

我们经常看到YUV中4&#xff1a;2&#xff1a;0&#xff0c;看着好像懂&#xff0c;仔细看又不懂。 比例&#xff0c;N1:N2:N3里面的数字指水平方向上的相对采样率&#xff0c;N1表示在奇数行和偶数行里Y样本的个数&#xff0c;N2表示奇数行里Cb和Cr样本的个数&#xff0c;N3…

ciscn_2019_s_4-栈迁移

1&#xff0c;三连 程序功能&#xff1a;两次输入 题目类型猜测&#xff1a;栈溢出&#xff0c;栈迁移 2&#xff0c;ida分析 溢出点&#xff1a; system_plt地址: 思路&#xff1a;由于无直接getshell的利用函数&#xff0c;溢出空间只有8字节&#xff08;ebpret占用无法继续…

数据结构与算法脑图

数据结构 非受限线性表 顺序结构 数组 支持 O(1) 的随机访问平均为 O(n) 的插入和删除警惕越界错误,导致 Stack Over Flow链式结构 单链表 不支持随机访问,需要遍历去访问结点插入和删除只需要移动指针,时间复杂度为 O(1)每个结点需要额外的空间存储指针,需要的内存比数组…

控制视图内容的位置

文本域中的提示内容在默认情况下是垂直居中的&#xff0c;要改变文本在文本域中的位置&#xff0c;可以使用android:gravity来实现。 利用android:gravity可以指定如何在视图中放置视图内容&#xff0c;例如&#xff0c;如何在文本域中放置文本。 如果希望视图文本显示在上方&a…

RocketMQ 学习社区重磅上线!AI 互动,一秒了解 RocketMQ 功能源码

作者&#xff1a;RocketMQ学习社区 RocketMQ 背景 Apache RocketMQ 诞生至今&#xff0c;一直服务于 100% 阿里集团内部业务、阿里云以及开源社区数以万计的企业客户。 历经十多年双十一严苛流量验证的 RocketMQ&#xff0c;承载了超过万亿级消息规模的洪峰压力。2021 年 Ap…

大数据权限与安全

大数据权限与安全 1、权限概述 1.1、大数据平台权限管控现状 权限的管控&#xff0c;历来是大数据平台中最让人头疼的问题之一。管得严了&#xff0c;业务不流畅&#xff0c;用户不开心&#xff0c;放得宽了&#xff0c;安全没有底。而且大数据平台组件&#xff0c;服务众多…

InnoDB - 页结构

InnoDB - 页结构 文章目录 InnoDB - 页结构1. InnoDB页简介2. InnoDB页结构2.1 User Records&#xff08;数据&#xff09;2.2 Page Directory&#xff08;页目录&#xff09;2.3 Page Header&#xff08;页头部信息&#xff09;2.4 File Header&#xff08;文件头&#xff09;…

ByteBuddy

JavaAgent是在JDK5之后提供的新特性&#xff0c;也可以叫java代理。 开发者通过这种机制(Instrumentation)可以在加载class文件之前修改方法的字节码(此时字节码尚未加入JVM)&#xff0c;动态更改类方法实现AOP&#xff0c;提供监控服务如&#xff1b;方法调用时长、可用率、内…

RocketMQ详解

介绍 ​ RocketMQ作为一款纯Java、分布式、队列模型的开源消息中间件&#xff0c;支持事务消息、顺序消息、批量消息、定时消息、消息回溯等。 RocketMQ 特点 支持发布/订阅&#xff08;Pub/Sub&#xff09;和点对点&#xff08;P2P&#xff09;消息模型 ​ 在一个队列中可…

ASEMI代理英飞凌SPW47N60C3功率MOS管的性能与应用

编辑-Z 本文将对SPW47N60C3功率MOSFET的性能与应用进行分析。我们将介绍SPW47N60C3的基本性能参数&#xff0c;然后从四个方面对其性能进行详细阐述&#xff0c;包括电气性能、热性能、封装与可靠性以及应用领域。 1、SPW47N60C3的基本性能参数 SPW47N60C3是一款高性能的功率…

Python 和 C++ 混合编程:pybind11 使用

Python 和 C 混合编程&#xff1a;pybind11 使用 1. 目的需求2. pybind 11 简介3. 使用实践3.1 开发环境3.2 准备工作3.3 建立工程 test3.4 编译工程 test 库3.5 Python 调用 工程 test 库 4. 实线小结5. 参考资料 1. 目的需求 我们通常在 Python 上进行算法开发&#xff0c;因…

【数据结构】——树的相关习题

目录 一、选择填空判断题题1题2题3题4题5题6题7题8题9 二、应用题题10&#xff08;遍历序列&#xff09;题11&#xff08;存储结构&#xff09;题12 13&#xff08;二叉树/树、森林之间的转换&#xff09;题14&#xff08;线索二叉树&#xff09; 一、选择填空判断题 题1 1、设…

Java的包装类(装箱和拆箱面试题)

1.为什么要有包装类(或封装类&#xff09; 为了使基本数据类型的变量具有类的特征&#xff0c;引入包装类。 2.基本数据类型与对应的包装类&#xff1a; 3.装箱和拆箱 基本数据类型包装成 包装类的实例—装箱 通过包装类的构造器实现&#xff1a; int i 500; Integer t ne…

案例34:基于Springboot在线互动学习网站开题报告设计

博主介绍&#xff1a;✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专…