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

您的位置:首頁技術文章
文章詳情頁

Vue實現動態查詢規則生成組件

瀏覽:24日期:2022-09-29 11:36:51
1. 動態查詢規則

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

Vue實現動態查詢規則生成組件

2.組件構建思路

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

2.1 組件屬性 data: 是樹結構的內容,我們定義為:

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

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

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

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

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

<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)'>添加規則</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 對不同數據類型的字段定義不同的條件

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 定義方法操作組規則

主要的操作涉及到添加刪除 規則

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},// 添加規則addRule(data) { let rule = {type: ’Text’,FilterTable: this.firstTable,FilterField: this.firstField,Operator: ’==’,FilterValue: ’’, } data.rules.push(rule)},// 刪除規則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, },}

模板內增加引用

<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實現動態查詢規則生成組件

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

5.小結

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

到此這篇關于Vue實現動態查詢規則生成組件的文章就介紹到這了,更多相關Vue 動態查詢規則生成組件內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Vue
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
精品久久影院| 日韩成人av影视| 国产a久久精品一区二区三区| 欧美日韩一区二区三区不卡视频| 日韩激情一二三区| 久久国际精品| 久久这里只有精品一区二区| 给我免费播放日韩视频| 精品一区二区三区四区五区| 精品久久久久久久| 精品亚洲美女网站| 在线一区免费观看| 日产欧产美韩系列久久99| 日本麻豆一区二区三区视频| 欧美亚洲人成在线| 国产一区二区三区不卡视频网站| 国产精品原创| 怡红院精品视频在线观看极品| 国产精品丝袜xxxxxxx| 蜜桃一区二区三区在线观看| 青青草伊人久久| 精品国产网站| 亚洲天堂久久| 亚洲区第一页| 蜜桃久久久久| 激情五月综合| 日韩激情啪啪| 最近高清中文在线字幕在线观看1| 激情丁香综合| 亚洲三级av| 精品久久精品| 伊人久久婷婷| 青青青国产精品| 91亚洲国产高清| 亚洲激情av| 国产日韩亚洲欧美精品| 中文字幕在线高清| 免费看日韩精品| 美女性感视频久久| 欧美日韩在线观看视频小说| 亚洲免费毛片| 福利片在线一区二区| 午夜久久一区| 国产乱人伦丫前精品视频 | 欧美成人综合| 日韩精品一区二区三区免费视频| 国产成年精品| 性欧美精品高清| 精品理论电影在线| 老色鬼久久亚洲一区二区| 国产精品中文| 日本视频在线一区| 亚洲天堂久久| 久久福利在线| 红桃视频欧美| 久久中文字幕导航| 99在线|亚洲一区二区| 久久超级碰碰| 久久国产精品亚洲77777| 久久影视三级福利片| 西西人体一区二区| 国产精选在线| 久久精品97| 免费久久99精品国产自在现线| 国产aa精品| 男女男精品网站| 成人日韩在线| 欧美国产中文高清| 亚洲欧美视频| 日韩欧美二区| 国产乱码精品一区二区三区四区 | 亚洲一区二区三区免费在线观看| 国产极品嫩模在线观看91精品| 黄色亚洲大片免费在线观看| 精品欧美视频| 91麻豆精品激情在线观看最新| 蜜臀91精品国产高清在线观看 | 日韩avvvv在线播放| 欧美大黑bbbbbbbbb在线| 成人免费一区| 国产欧美日韩亚洲一区二区三区| 亚洲尤物在线| 91一区二区| 国产精品mm| 欧美日韩一区自拍| 在线日韩成人| 午夜久久久久| 精精国产xxxx视频在线野外| 麻豆视频一区| 国产亚洲久久| 日本成人手机在线| 免播放器亚洲一区| 亚洲成人av观看| 久久精品一区二区国产| 涩涩涩久久久成人精品| 午夜久久tv| 亚洲国产影院| 亚洲精品.com| 午夜精品久久久久久久久久蜜桃| 国产精品超碰| 国产欧美日韩一级| 欧美亚洲二区| 欧美影院精品| 日韩国产成人精品| 亚洲精品伦理| 伊人国产精品| 亚洲理论在线| 国产精品毛片在线看| 国产精品av久久久久久麻豆网| 欧美羞羞视频| 欧洲一区二区三区精品| 日韩国产专区| 免费在线小视频| 欧洲一级精品| 久久裸体视频| 免费国产自久久久久三四区久久| 日韩不卡在线| 久久精品91| 欧美手机在线| 一区久久精品| 男人操女人的视频在线观看欧美| 久久夜色精品| 中文字幕av亚洲精品一部二部 | 欧美在线观看视频一区| 久久美女精品| 日韩午夜免费| 亚洲男人在线| 国产精品亚洲产品| 国产精品黄色片| 麻豆视频观看网址久久| 国产一区一一区高清不卡| 成人三级高清视频在线看| 亚洲国产福利| 国产专区一区| 日韩午夜免费| 亚洲精品影视| 国产精品久久久久久久久久妞妞| 九九久久国产| 国产亚洲一区二区手机在线观看| 91精品亚洲| 久久av在线| 日韩av中文在线观看| 国产精品自拍区| 日韩不卡一区| 五月天激情综合网| 亚洲精品无播放器在线播放| 国产精品久久久久av蜜臀| 精品精品久久| 亚洲成人三区| 亚洲性视频在线| 国产精品久久乐| 日韩国产一区| 久久亚洲图片| 嫩草伊人久久精品少妇av杨幂| 成人在线丰满少妇av| 欧美 日韩 国产一区二区在线视频 | 欧美精品羞羞答答| 久久99伊人| 乱人伦精品视频在线观看| 国产午夜精品一区在线观看| 激情视频网站在线播放色 | 蜜臀国产一区| 红桃视频国产精品| 欧美一区成人| 日韩一区二区在线免费| 亚洲专区一区| 久久不见久久见免费视频7| 精品精品久久| 伊人精品一区| 日本欧美大码aⅴ在线播放| 久久国产精品色av免费看| 麻豆国产精品| 久久婷婷激情| 亚洲精品第一| 国产一区国产二区国产三区 | 日本不卡视频在线| 丝袜诱惑一区二区| 综合干狼人综合首页| 黄色精品视频| 综合干狼人综合首页| 国产不卡人人| 日韩精品一区二区三区免费视频| av在线最新| 日本午夜精品一区二区三区电影 | 国产h片在线观看| 免费人成精品欧美精品| 免费在线观看一区| 免费观看久久av| 你懂的国产精品永久在线| 一区福利视频| 久久精品色播| 免费看日韩精品| 另类专区亚洲| 国产日韩欧美中文在线| 国户精品久久久久久久久久久不卡| 国产美女精品视频免费播放软件| av一区二区高清| 精品久久久久中文字幕小说| 亚洲精品一级| 免费黄色成人|