日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

Vue實現(xiàn)動態(tài)查詢規(guī)則生成組件

瀏覽:27日期:2022-09-29 11:36:51
1. 動態(tài)查詢規(guī)則

動態(tài)查詢規(guī)則,大致如下圖所示。是可以按照用戶的自定義進行組織查詢語句的一種復(fù)雜組件,大致可以實現(xiàn)SQL查詢的where條件,下面是摘自mongodb的某一軟件。

Vue實現(xiàn)動態(tài)查詢規(guī)則生成組件

2.組件構(gòu)建思路

按照規(guī)則組件的組織形式,可以把其視為一棵樹,有樹干和樹葉,這樣看起來就不難了。

2.1 組件屬性 data: 是樹結(jié)構(gòu)的內(nèi)容,我們定義為:

{condition: ’AND’,rules: [],}

fieldList: 字段列表數(shù)組,可供選擇的字段集合;

operatorList: 操作列表數(shù)組,可供選擇的操作集合,定義如下:

{ label: ’包含’, value: ’⊂’,},2.2 組件html

這里采用ElementUI構(gòu)建,因此可以方便的組合各類ui控件來進行構(gòu)建需要的界面。當(dāng)然該組件既然被看作樹,因此其也是個遞歸組件,因此還涉及到自己調(diào)用自己。

<template> <div class='rules-group-container'><div class='rules-group-header'> <el-radio-group v-model='data.condition' size='mini'><el-radio-button label='AND'></el-radio-button><el-radio-button label='OR'></el-radio-button> </el-radio-group> <div><el-button size='mini' @click='addRule(data)'>添加規(guī)則</el-button><el-button size='mini' @click='addGroup(data)'>添加分組</el-button><el-button v-if='parent' size='mini' @click='delGroup(data, parent)'>刪除</el-button> </div></div><div class='rules-group-body'> <div class='rules-list'><template v-for='(rule, index) in data.rules'> <div :key='index' v-if='!rule.condition' class='rule-container'><!-- 字段 --><wt-dropdown v-model='rule.FilterField' :data='getFieldList(rule.FilterTable)' @change='handleFieldChange(rule)'></wt-dropdown><!-- 操作符 --><wt-dropdown v-model='rule.Operator' :disabled='inputStatus && rule.FilterField === ’CommunityId’' :data='getRule(rule.FilterTable, rule.FilterField)'></wt-dropdown><!-- 值 --><wt-multi-dropdown v-if='rule.type === ’Dropdown’' :disabled='inputStatus && rule.FilterField === ’CommunityId’' v-model='rule.FilterValue' :data='getData(rule.FilterTable, rule.FilterField)'></wt-multi-dropdown><wt-number :disabled='inputStatus && rule.FilterField === ’CommunityId’' v-else-if='[’DateTime’, ’Number’, ’Decimal’].includes(rule.type)' v-model='rule.FilterValue'></wt-number><wt-text v-else v-model='rule.FilterValue' :disabled='inputStatus && rule.FilterField === ’CommunityId’'></wt-text><el-button size='mini' @click='delRule(index)'>刪除</el-button> </div> <CreateRule:key='index'v-else:data='rule':parent='data':fieldList='fieldList':operatorList='operatorList' ></CreateRule></template> </div></div> </div></template>2.3 對不同數(shù)據(jù)類型的字段定義不同的條件

const rules = { string: [{ value: ’==’, label: ’等于’,},{ value: ’<>’, label: ’不等于’,},{ value: ’⊂’, label: ’包含’,},{ value: ’⊄’, label: ’不包含’,},{ value: ’in’, label: ’其中之一’,},{ value: ’ni’, label: ’非其中之一’,},{ value: ’mc’, label: ’多包含’,}, ], number: [{ value: ’==’, label: ’等于’,},{ value: ’<>’, label: ’不等于’,},{ value: ’≥’, label: ’大于等于’,},{ value: ’≤’, label: ’小于等于’,}, ], dict: [{ value: ’in’, label: ’其中之一’,},{ value: ’ni’, label: ’非其中之一’,}, ], date: [{ value: ’sdiff’, label: ’幾天前’,},{ value: ’ediff’, label: ’幾天后’,}, ],}2.4 定義方法操作組規(guī)則

主要的操作涉及到添加刪除 規(guī)則

getRule(table, field) { let data = (rules && rules.string) || [] let theField = this.getCurrentField(table, field) if (theField && theField.ControlType) {if ([’Dropdown’].includes(theField.ControlType)) { return rules.dict} else if ([’DateTime’].includes(theField.ControlType)) { return rules.date} else if ([’Number’, ’Decimal’].includes(theField.ControlType)) { return rules.number} else { return rules.string} } return data},// 添加規(guī)則addRule(data) { let rule = {type: ’Text’,FilterTable: this.firstTable,FilterField: this.firstField,Operator: ’==’,FilterValue: ’’, } data.rules.push(rule)},// 刪除規(guī)則delRule(index) { this.data.rules.splice(index, 1)},// 添加分組addGroup(data) { let group = {condition: ’OR’,rules: [ {type: ’Text’,FilterTable: this.firstTable,FilterField: ’’,Operator: ’’,FilterValue: ’’, },], } data.rules.push(group)},// 刪除分組delGroup(data, parent) { let index = parent.rules.findIndex((item) => item === data) parent.rules.splice(index, 1)},2.5 定義組件名

該組件命名為 CreateRule,定義代碼很簡單了。

export default { name: ’CreateRule’, props: {parent: { type: Object,},data: { type: Object,},fieldList: { type: Array, default() {return [] },},operatorList: { type: Array, default() {return [] },}, }, }3.使用組件

vue中使用組件只需引用并增加到組件列表中即可。

import CreateRule from ’./CreateRule’export default { name: ’NewRuleForm’, components: {CreateRule, },}

模板內(nèi)增加引用

<template> <div class='new-rule-form'><CreateRule v-if='!loading' :data='data' :fieldList='FilterTable' :operatorList='operatorList'></CreateRule><div v-if='!loading' v-html='discription'></div> </div></template>4.效果展示

這是截取的實際效果.

Vue實現(xiàn)動態(tài)查詢規(guī)則生成組件

在界面中,作為搜索條件或過濾條件效果均不錯,可以做到非常靈活。

5.小結(jié)

在vue開發(fā)應(yīng)用中,可以多參考下windows軟件的某些界面,偶爾能給我們很大的靈感和啟發(fā)的。

到此這篇關(guān)于Vue實現(xiàn)動態(tài)查詢規(guī)則生成組件的文章就介紹到這了,更多相關(guān)Vue 動態(tài)查詢規(guī)則生成組件內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Vue
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
视频在线观看一区| 四虎精品一区二区免费| 亚洲深夜福利在线观看| 免费久久99精品国产自在现线| 成人羞羞视频播放网站| 亚洲国产成人二区| 激情自拍一区| 国精品一区二区| 蜜桃视频一区二区三区| 视频一区欧美日韩| 国产精品99一区二区| av不卡在线看| 午夜亚洲精品| 国产精品地址| 久久99久久久精品欧美| 午夜精品久久久久久久久久蜜桃| 国产91精品对白在线播放| 夜夜嗨网站十八久久| 日韩av影院| 电影天堂国产精品| 日日摸夜夜添夜夜添国产精品| 国产乱人伦丫前精品视频| 蜜臀国产一区| 亚欧洲精品视频在线观看| 国产精品theporn| 亚洲国产影院| 欧美欧美黄在线二区| 欧洲av不卡| 亚洲+小说+欧美+激情+另类| 777久久精品| 欧美色图一区| 国产精品亚洲人成在99www| 日韩不卡免费高清视频| 日本中文字幕一区二区视频| 97欧美在线视频| 亚洲在线观看| 久久电影tv| 日韩av中文在线观看| 91精品久久久久久久久久不卡| 亚洲精品自拍| 欧美一级精品| 美女久久久精品| 亚洲视频电影在线| 欧美成a人国产精品高清乱码在线观看片在线观看久 | 国产h片在线观看| 亚洲黄色在线| 久久精品国产成人一区二区三区| 水蜜桃久久夜色精品一区的特点 | 日本va欧美va欧美va精品| 亚洲女同av| 国产精品一在线观看| 久久福利影视| 国产精品久久久免费| 日韩视频一区| 伊人久久高清| 美女久久99| 亚洲欧洲av| 欧美日韩激情在线一区二区三区| 美日韩一区二区三区| 另类激情亚洲| a日韩av网址| 久久99青青| 日韩av在线免费观看不卡| 好看的av在线不卡观看| 国产粉嫩在线观看| 美女av一区| 国产精品男女| 蜜桃av一区二区在线观看| 欧美aa在线观看| 精品国产鲁一鲁****| 国产欧美日韩| 日韩国产欧美在线视频| 日韩亚洲在线| 国产一区清纯| 99精品视频在线| 中文在线а√天堂| 久久精品一区二区三区中文字幕| 日韩欧美久久| 亚洲五月综合| 男人的天堂亚洲一区| 免费精品国产的网站免费观看| 一区二区三区四区日本视频| 日本色综合中文字幕| 免费国产亚洲视频| 亚洲在线网站| 一区视频在线| 亚洲精品2区| 香蕉久久精品| 欧美精选一区二区三区| 免费av一区| 欧美日韩免费观看视频| 国产成人精品一区二区三区视频 | 久久在线91| 久久黄色影视| 欧美激情亚洲| 国产精品18| 精品视频久久| 色一区二区三区四区| 日韩欧美一区二区三区在线视频 | 9色国产精品| 2023国产精品久久久精品双| 亚洲国产专区| 性色一区二区| 日韩三级一区| 亚洲永久精品唐人导航网址| 中文字幕一区二区三区四区久久| 一级欧美视频| 国产欧美自拍一区| 久久精品一本| 99久久亚洲精品蜜臀| 精品一区欧美| 免费欧美在线视频| 日韩一二三区在线观看| 欧美三级第一页| 国产成人在线中文字幕| 欧美一区二区三区高清视频| 香蕉久久国产| 欧美日韩va| 国产成人精品一区二区免费看京 | 在线亚洲一区| 亚洲精品乱码久久久久久蜜桃麻豆 | 免费久久99精品国产自在现线| 亚洲男人在线| 免费精品一区| 久久高清精品| 蜜桃视频第一区免费观看| 国产亚洲一区二区三区不卡| 国内精品美女在线观看| 激情欧美一区| 四虎精品一区二区免费| 美女视频黄久久| 亚洲国产一区二区在线观看| 日韩不卡在线观看日韩不卡视频 | 国产情侣一区在线| 韩国三级一区| 久久精品一区二区不卡| 亚久久调教视频| 国内在线观看一区二区三区| 亚洲成人免费| 欧美激情综合| 国产婷婷精品| 麻豆久久久久久| 日韩一区二区免费看| 国产精品一在线观看| 欧美日中文字幕| 欧美日韩精品一区二区三区视频 | 欧美日韩午夜电影网| 久久超碰99| 午夜国产精品视频免费体验区| 欧美日韩中出| 欧美日韩国产一区二区三区不卡| 国产精品亲子伦av一区二区三区 | 91精品推荐| 日本午夜精品久久久| 久久国产直播| 国产精品a久久久久| 9国产精品视频| 国产精品久久久久久久久久10秀| 视频一区免费在线观看| 精品久久电影| 亚洲毛片视频| 久久久久久网| 日韩av电影一区| 亚洲精品网址| 红杏一区二区三区| 日韩免费精品| 中文一区二区| 中文字幕在线官网| 奇米777国产一区国产二区| 国产精品99一区二区| 麻豆传媒一区二区三区| 久热精品在线| 日韩激情一区| 精品国产亚洲一区二区三区在线| 一二三区精品| 欧美午夜不卡| 精品国产乱码久久久久久樱花| 亚洲综合中文| 欧美日韩国产亚洲一区| 国产福利电影在线播放| 国产精品一页| 四虎成人精品一区二区免费网站| 99久久夜色精品国产亚洲1000部| 免费看久久久| 欧美日本精品| 亚洲欧洲日韩精品在线| 夜夜嗨一区二区三区| 久久亚洲专区| 日韩黄色大片| 四季av一区二区凹凸精品| 国产精品2区| 91精品国产自产观看在线| 亚洲午夜国产成人| 蜜桃一区二区三区在线观看| 国产精品毛片在线看| 欧美日韩一二三四| 国内亚洲精品| 亚洲视频综合| 国产尤物精品| 精品一区免费|