联动规则组件-KOV场景梳理&技术方案

这篇具有很好参考价值的文章主要介绍了联动规则组件-KOV场景梳理&技术方案。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、背景:

多场景使用到kov类型组件,但是实现上不统一,各个场景的协议都比较定制,且开发的时候难度较大。所以将组件进行抽离

目标:支撑所有逻辑场景

什么是kov?如下图:

联动规则组件-KOV场景梳理&技术方案,vue,JavaScript,vue.js,kov,联动规则,自定义组件联动规则组件-KOV场景梳理&技术方案,vue,JavaScript,vue.js,kov,联动规则,自定义组件

 难点:

       1、不同类型组件对应的操作符有哪些 ???

       2、value组件展示形式,如何确定 ???

       3、如何定制operator的内容以及value组件 ??

       等。。。。。。。

   组件收益:

        1、统一协议&场景

        2、快速接入

二、KOV组件实现方案

1、基本组件key与逻辑操作符的场景确 

联动规则组件-KOV场景梳理&技术方案,vue,JavaScript,vue.js,kov,联动规则,自定义组件

2、逻辑操作符的映射

操作符含义

操作符

NOT_EMPTY 有值
EMPTY 无值
NOT_EQ 不等于
EQ 等于
GT 大于
GE 大于等于
LE 小于等于
LT 小于
INCLUDE 包含
NOT_INCLUDE 不包含
BETWEEN 属于范围
NOT_BETWEEN 不属于范围

3、基本组件&逻辑   推算   联动组件 

联动规则组件-KOV场景梳理&技术方案,vue,JavaScript,vue.js,kov,联动规则,自定义组件

4、 条件转换逻辑表达式

联动规则组件-KOV场景梳理&技术方案,vue,JavaScript,vue.js,kov,联动规则,自定义组件

三、kov组件使用文档 &demo

<Kov v-model="test" :schema="schema" :disabledKeys="[]" class="v-flex-fill">
      <template #cyl>
        <el-input v-model="test.params"></el-input>
      </template>
 </Kov>
 
test:{ "field": "", "function": "", "params":  }
 
 
 schema = [
  {
    value: 'silentShipperActionType', // 字段名
    label: '选择器',
    type:'SELECT',  // 组件类型
    disabledKeys:[''], // field 中需要禁用的选项
    (
    该部分如果传入的“逻辑表达式”不在默认范围内,会进行合并,如果在则会进行覆盖
    该逻辑下,以传入的type类型为准
    )
    operators:[ // 自定义内容
     {
      label:"等于",
      value:'EQ', // 逻辑表达式
      type: 'SELECT',
      options:[{}],
    }],
    attrs:{
    },
    options:[{
    label:'测试1',
    value:1
     },
    {
    label:'测试2',
    value: 2
    }]
}
]

1、props

属性名

含义

类型

默认值

必填

schema 组件渲染的schema 数组 []
v-model 对象 {}
disabledKeys 代表field中禁选的项 数组 []

2、v-model对象字段解释

字段

含义

类型

key

字段(第一个下拉框内容) string

op

逻辑关系 string

value

string/array(包含/非包含条件/attrs中multiple为true并生效的情况下为array)

3、Schema中对象字段解释

字段

含义

类型

是否必传

key 字段 String
label 字段名 String
type   字段对应的类型 String
attrs 针对联动组件的属性设置 对象
options 联动组件的选项 数组 否 (联动组件为select场景必填)

operators 

自定义逻辑组件内容&联动组件 数组

4、type类型:

type值

含义

NUMBER

数字

SELECT

选择器

CHECKBOX

多选框

RADIO

单选框

TEXT

文本

CITY

城市

DATE

日期

TIME

时间

DATETIME

日期时间

5、operators    

中对象字段解释

字段

含义

类型

是否必传

label 逻辑组件选项名 必传
value 逻辑组件选项值(即key,若与已存在的逻辑重复,则对应type会进行覆盖该逻辑对应的联动组件) 必传
type

组件类型

插槽名

(若传入的类型不在提供的组件范围内,则视为插槽)

必传
options 选项 否(type为slect/checkbox/radio等必传)

demo:

<Kov v-model="test" :schema="schema" :disabledKeys="[]" class="v-flex-fill">
      <template #cyl>
        <el-input v-model="test.params"></el-input>
      </template>
 </Kov>
 
test:{ "field": "", "function": "", "params":  }
 
 
 schema = [
  {
    value: 'select', // 字段名
    label: '选择器',
    type:'SELECT',  // 组件类型
    operators:[ // 自定义内容
     {
      label:"等于",
      value:'EQ', // 逻辑表达式
      type: 'SELECT',
      options:[{}],
    }],
    attrs:{
    },
    options:[{
    label:'测试1',
    value:1
     },
    {
    label:'测试2',
    value: 2
    }]
}
]
<Kov v-model="test" :schema="schema" :disabledKeys="[]" class="v-flex-fill">
      <template #cyl>
        <el-input v-model="test.params"></el-input>
      </template>
 </Kov>
 
test:{ "field": "", "function": "", "params":  }
 
 
 schema = [
  {
    value: 'select', // 字段名
    label: '选择器',
    type:'TEAX',  // 组件类型
    operators:[ // 自定义内容
     {
      label:"匹配开头(自定义)",
      value:'MATCHHEAD', // 逻辑表达式
      type: 'TEXT'
    }]
   
}
]

四、ConditionKov组件(条件关系kov)

<template>
    <div>
      <ConditionKov v-model="test.a" :schema="schema" class="v-flex-fill">
      </ConditionKov>
    </div>
  </template>
   
  <script>
  import {ConditionKov} from '@meta-vue/kov'
  export default {
    name: 'kov',
    componentName: 'kov组件',
    components: { ConditionKov },
    data() {
      return {
        test: {},
        schema: {},
      }
    },
    created() {
      this.schema = [
      {
        key: 'select',
        label: '选择器',
        type:'SELECT',
        attrs:{
          multiple: false,
          required: true
        },
        options:[{
          label:'测试1',
          value:1
        },{
          label:'测试2',
          value: 2
        }]
      },
      {
        key: 'text',
        label: '文本',
        type:'TEXT',
      }
 
    ]
    },
    methods: {},
  }
  </script>
   
  <style lang="stylus" scoped></style>

props:

属性

含义

默认值

是否必填

schema 组件渲染的schema  是(格式如上)

hiddenDeleteBtn

隐藏删除按钮 false false

disabledKeys

禁用项 【】 false

成品展示

联动规则组件-KOV场景梳理&技术方案,vue,JavaScript,vue.js,kov,联动规则,自定义组件

以上就是全部内容,感兴趣的可以私聊代码哈~~~~文章来源地址https://www.toymoban.com/news/detail-583785.html

到了这里,关于联动规则组件-KOV场景梳理&技术方案的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 若依vue框架+element ui 组件路由跳转与菜单联动

    在后台管理系统中当点击某一按钮时,页面发生跳转(路由发生跳转,跳转到与按钮对应的页面),在跳转的同时在侧边栏中打开与之对应模块的菜单项 1.点击按钮跳转到/pay/PayIndex页面 2.在后台管理系统中侧边栏使用的是element ui 中的NavMenu导航菜单组件,在后台管理系统 src/l

    2024年02月14日
    浏览(37)
  • Vue:将以往的JQ页面,重构成Vue组件页面的大致思路梳理(组件化编码大致流程)

    组件要按照功能点拆分,命名不要与 HTML元 素冲突。 1、根据 UI 提供的原型图,进行结构设计,结构设计的粒度以是否方便给组件起名字为依据。并梳理好对应组件的层级依赖关系。 2、设计好结构后,开始写对应的组件,并根据梳理好的层级关系,对应引入组件。 3、根据

    2024年01月15日
    浏览(45)
  • 激光雷达技术路线及产业链梳理:OPA+FMCW或成为未来激光雷达终极解决方案

    前言:本文对激光雷达产业进行梳理,从上游器件、中下游终端厂商等几个部分来剖析激光雷达产业链。 激光雷达:自动驾驶的核心传感器 激光雷达是通过发射激光束作为来探测目标位置、速度、结构等特征的雷达系统。与其他雷达系统的原理类似,激光雷达是向目标发射

    2024年02月07日
    浏览(24)
  • 《基于 Vue 组件库 的 Webpack5 配置》2.模块规则 module.rule

    配置 module.rules ,创建模块时,匹配请求的规则数组; 可参考 webpack5 指南-管理资源; vue 可参考上述配置; js 使用 webpack babel-loader; css 参考 webpack 加载 CSS。注意 style-loader 和 vue-style-loader 选一个即可,两者的功能基本一致,只是 vue-style-loader 可用于服务端渲染 SSR; stylus

    2024年02月11日
    浏览(29)
  • 元宇宙文旅ar技术方案及场景

    元宇宙是虚拟世界与现实社会交互的重要平台,作为全新的产业,正以新理念、新业态、新模式与多行业发展深度结合,逐渐成为重组全球要素资源、重塑全球产业结构、改变全球产业发展的关键力量,被称为“万亿级虚拟蓝海”。 文旅作为元宇宙在具体领域的应用入口,除

    2024年02月08日
    浏览(29)
  • Vue组件通信原理及应用场景解析

    🌷🍁 博主 libin9iOak带您 Go to New World.✨🍁 🦄 个人主页——libin9iOak的博客🎐 🐳 《面试题大全》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 🌊 《IDEA开发秘籍》学会IDEA常用操作,工作效率翻倍~💐 🪁🍁 希望本文能够给您带来一定的帮助🌸文章粗浅,敬

    2024年02月15日
    浏览(28)
  • K8s 场景下 Logtail 组件可观测方案升级-Logtail 事件监控发布

    随着K8s和云的普及,越来越多的公司将业务系统部署到云上,并且使用K8s来部署应用。Logtail是SLS提供的日志采集Agent,能够非常好的适应K8s下各种场景的日志采集,支持通过DaemonSet方式和Sidecar方式采集Kubernetes集群的容器标准输出或者文件日志。Logtail作为一个K8s场景下非常重

    2024年01月17日
    浏览(29)
  • AI视频智能识别技术在智慧农业大棚升级改造管理场景中的应用方案

    随着科技的进步和农业现代化的推进,智能化技术逐渐成为现代农业发展的重要支撑。农业大棚作为现代农业的重要组成部分,其智能化改造对于提高农业生产效率、降低成本、增加收益具有重要意义。利用先进的信息化手段来对农业大棚进行管理,采集和掌握作物的生长状

    2024年02月21日
    浏览(42)
  • 梳理 Web Worker 及实战场景

    有一些前端技术点,即使以前用过,但没有自己动手归纳总结过,许久还是要回过头来还是需要重新梳理。于是,本文就来梳理一下 Web Worker。 由于JavaScript语言采用的是单线程,同一时刻只能做一件事,如果有多个同步计算任务执行,则在这段同步计算逻辑执行完之前,它下

    2024年02月14日
    浏览(29)
  • Jmeter(二十九):Jmeter常用场景梳理

    如果想控制每秒发送请求数量,仅仅通过线程数与循环次数是不够的,因为这只能控制发送总数,而要控制每秒发送数量,需要线程数与常数吞吐量控制器的搭配使用,这种场景在性能测试中使用不多。 例如每秒钟调用30次接口,那么把线程数设置为30,将常数吞吐量控制器

    2024年02月11日
    浏览(25)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包