IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> AJ-Report项目源码分析(2) -> 正文阅读

[JavaScript知识库]AJ-Report项目源码分析(2)

2021SC@SDUSC

本次分析的是src/views/accessAuthority/index.vue的部分源码,这是权限管理模块页面的源码,页面如下:

下面开始源码分析

  <anji-crud ref="listPage" :option="crudOption">
    <template v-slot:buttonLeftOnTable> </template>

  </anji-crud>

这段代码是页面展示的关键,template是vue中组件注册的关键字,此组件没有使用id来指定展示哪个组件,而是使用具名插槽v-slot来指定内容。anji-crud 是自定义的的组件名称,:option属性指定了下面代码中data()属性的crudOption数据。

?这个页面所有数据都来源于crudOption中的数据。

anji-crud所在路径为src/components/AnjiPlus/anji-crud/anji-crud.vue,这个组件很重要,是很多页面的基础框架,我们来看一下anji-crud.vue的源码:

<template>
  <div :class="[hasTreeFieldInQueryForm ? 'page-container' : 'app-container']">
    

这里使用了三目表达式,hasTreeFieldInQueryForm是一个方法,用于检查查询条件(在本文开始的截图中有根据条件查询的按钮)里面是否有树形控件,如果有就使用class为page-container的css属性,如果没有就使用名称为app-container的css样式,此方法具体如下:

  hasTreeFieldInQueryForm() {
      return this.isNotBlank(this.queryFormTreeField)
    },

?isNotBlank方法源码如下:

 isNotBlank (val) {
      return !this.isBlank(val)
    },

isBlank方法源码如下:

   isBlank (val) {
      if (typeof val === 'undefined') {
        return true
      }
      if (val == null || val === '') {
        return true
      }
      return false
    },

连续调用三个方法,我们可以看出来最终目的是为了判断this.queryFormTreeFiled是否为空,为空则代表没有树形控件。

接下来代码如下:

 <div v-if="hasTreeFieldInQueryForm" class="left-container">
      <AnjiTree ref="queryFormTree" v-model.trim="queryParams[queryFormTreeField.field]"
                :is-open="queryFormTreeField.anjiTreeOption.isOpen"
                :enable-filter="queryFormTreeField.anjiTreeOption.enableFilter"
                :label-name="queryFormTreeField.label" :url="queryFormTreeField.anjiTreeOption.url"
                @node-click="handleTreeNodeCheck" />
</div>

这个div通过v-if来控制自己是否显示,在queryFormTreeFiled不为空的时候才会显示。

接下来的代码就是查询表单的开始了,我们在页面截图中也可以看出来。按钮和input输入框没什么好说的,但是代码中的下拉框没有使用element-ui自带的下拉框,而是使用了自定义的一个组件,如下:

?anji-select源码中很多数据都是空数据:

?此下拉列表属性源码如下:

  <el-select
      v-model="selectValue"
      :clearable="clearable"
      :collapse-tags="collapseTags"
      filterable
      class="filter-item"
      :placeholder="placeholder"
      :disabled="disabled"
      :multiple="multiple == null ? false : true"
      :remote="remoteFilter"
      :remote-method="remoteQuery"
      @change="change"
    >

?属性与数据url含义如下:

    1.url:要显示的下拉列表数据来源
    2.v-model数据的双向绑定,绑定父组件中的字段
    3.option自定义select的value对应的字段
    4.label自定义select的label对应的字段
    5.placeholder下拉列表提示
    6.multiple是否是多选
    7.localOptions使用本地的数据,不用请求远程数据,注意:使用该属性时Url属性不能要,不然无效

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-10-13 11:21:44  更:2021-10-13 11:22:12 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 23:30:28-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码