1 | import Vue from 'vue'
|
2 | import VueQueryBuilder from './VueQueryBuilder.vue'
|
3 |
|
4 | Vue.config.productionTip = false
|
5 |
|
6 | let rules = [
|
7 | {
|
8 | type: "text",
|
9 | id: "first-name",
|
10 | label: "First Name",
|
11 | },
|
12 | {
|
13 | type: "text",
|
14 | id: "last-name",
|
15 | label: "Last Name",
|
16 | },
|
17 | {
|
18 | type: "radio",
|
19 | id: "plan-type",
|
20 | label: "Plan Type",
|
21 | choices: [
|
22 | {label: "Standard", value: "standard"},
|
23 | {label: "Premium", value: "premium"}
|
24 | ]
|
25 | },
|
26 | {
|
27 | type: "checkbox",
|
28 | id: "sizes",
|
29 | label: "Sizes",
|
30 | choices: [
|
31 | {label: "Small", value: "small"},
|
32 | {label: "Medium", value: "medium"},
|
33 | {label: "Large", value: "large"}
|
34 | ]
|
35 | },
|
36 | {
|
37 | type: "text",
|
38 | id: "date",
|
39 | inputType:"date",
|
40 | label: "Date",
|
41 | operands: ['Start Date', 'End Date']
|
42 | },
|
43 | {
|
44 | type: "select",
|
45 | id: 'select',
|
46 | label: 'Color',
|
47 | operators: ['=', '<>'],
|
48 | choices: [
|
49 | {label: "red", value: 'Red'},
|
50 | {label: "orange", value: 'Orange'},
|
51 | {label: "yellow", value: 'Yellow'},
|
52 | {label: "green", value: 'Green'},
|
53 | {label: "blue", value: 'Blue'},
|
54 | {label: "indigo", value: 'Indigo'},
|
55 | {label: "violet", value: 'Violet'},
|
56 | ]
|
57 | },
|
58 | ];
|
59 |
|
60 | new Vue({
|
61 | el: '#app',
|
62 |
|
63 | components: { VueQueryBuilder },
|
64 |
|
65 | data: {
|
66 | rules: rules,
|
67 | output: {},
|
68 | },
|
69 |
|
70 | computed: {
|
71 | outputFormatted: function() {
|
72 | return JSON.stringify(this.output, null, 2);
|
73 | }
|
74 | },
|
75 |
|
76 | methods: {
|
77 | updateQuery: function(value){
|
78 | this.output = value;
|
79 | }
|
80 | }
|
81 | });
|