xt-element-ui 2.1.5 → 2.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/docs/components/base/xt-date-picker.md +127 -37
- package/docs/components/base/xt-form-schema.md +358 -0
- package/docs/components/base/xt-grid-box.md +4 -4
- package/docs/components/base/xt-input.md +204 -42
- package/docs/components/base/xt-list.md +458 -458
- package/docs/components/base/xt-text.md +1 -0
- package/docs/components/utils/config.md +285 -0
- package/docs/components/utils/format.md +445 -0
- package/lib/index.common.js +2303 -8625
- package/lib/index.css +1 -1
- package/lib/index.umd.js +2303 -8625
- package/lib/index.umd.min.js +1 -1
- package/package.json +4 -2
- package/src/components/xt-date-picker/component/Picker.vue +196 -0
- package/src/components/xt-date-picker/component/RangeDate.vue +136 -0
- package/src/components/xt-date-picker/index.vue +164 -144
- package/src/components/xt-flex-box/index.vue +1 -1
- package/src/components/xt-form-schema/index.js +8 -0
- package/src/components/xt-form-schema/index.vue +328 -0
- package/src/components/xt-grid-item/index.vue +2 -2
- package/src/components/xt-input/index.vue +224 -28
- package/src/components/xt-input/style/index.scss +10 -0
- package/src/components/xt-list/index.js +7 -7
- package/src/components/xt-list/index.vue +885 -885
- package/src/components/xt-transfer-tree/index.js +7 -7
- package/src/components/xt-transfer-tree/index.vue +493 -493
- package/src/index.js +5 -2
- package/src/components/xt-date-picker/SearchDate.vue +0 -45
- package/src/components/xt-date-picker/quarter.vue +0 -154
- package/src/components/xt-table/index copy.vue +0 -663
package/src/index.js
CHANGED
|
@@ -47,6 +47,7 @@ import XtPage from './components/xt-page'
|
|
|
47
47
|
import XtSelectTree from './components/xt-select-tree'
|
|
48
48
|
import XtUpload from './components/xt-upload'
|
|
49
49
|
import XtTransferTree from './components/xt-transfer-tree' // XtTransferTree 组件(树形穿梭框)
|
|
50
|
+
import XtFormSchema from './components/xt-form-schema' // XtFormSchema 组件(表单配置化搜索)
|
|
50
51
|
|
|
51
52
|
|
|
52
53
|
const components = [
|
|
@@ -80,7 +81,8 @@ const components = [
|
|
|
80
81
|
XtPage,
|
|
81
82
|
XtSelectTree,
|
|
82
83
|
XtUpload,
|
|
83
|
-
XtTransferTree
|
|
84
|
+
XtTransferTree,
|
|
85
|
+
XtFormSchema
|
|
84
86
|
]
|
|
85
87
|
|
|
86
88
|
const install = function (Vue, options = {}) {
|
|
@@ -159,7 +161,8 @@ export default {
|
|
|
159
161
|
XtPage,
|
|
160
162
|
XtSelectTree,
|
|
161
163
|
XtUpload,
|
|
162
|
-
XtTransferTree
|
|
164
|
+
XtTransferTree,
|
|
165
|
+
XtFormSchema
|
|
163
166
|
}
|
|
164
167
|
|
|
165
168
|
// XtChart 组件按需导出(使用时需自行安装 echarts 依赖)
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<el-form-item label="日期类型">
|
|
3
|
-
<el-select v-model="params.SearchCondition" style="width:120px;">
|
|
4
|
-
<el-option label="建档日期" value="建档日期"></el-option>
|
|
5
|
-
<el-option label="更新日期" value="更新日期"></el-option>
|
|
6
|
-
</el-select>
|
|
7
|
-
<el-select v-model="params.SearchType" style="width:120px;">
|
|
8
|
-
<el-option v-for="item in searchList" :key="item.value" :label="item.name" :value="item.value"></el-option>
|
|
9
|
-
</el-select>
|
|
10
|
-
<el-date-picker v-model="params.SearchValue" :style="'width:'+txtInputWidth+'px;'" value-format="yyyy-MM-dd" placeholder=""></el-date-picker>
|
|
11
|
-
</el-form-item>
|
|
12
|
-
</template>
|
|
13
|
-
<script>
|
|
14
|
-
export default {
|
|
15
|
-
name: "SearchDate",
|
|
16
|
-
props: {
|
|
17
|
-
searchList: {
|
|
18
|
-
type: Array,
|
|
19
|
-
default() {
|
|
20
|
-
return [];
|
|
21
|
-
}
|
|
22
|
-
},
|
|
23
|
-
params: {
|
|
24
|
-
type: Object,
|
|
25
|
-
default() {
|
|
26
|
-
return {
|
|
27
|
-
SearchType: "",
|
|
28
|
-
SearchCondition: "建档日期",
|
|
29
|
-
SearchValue: ""
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
|
-
},
|
|
33
|
-
/** 查询文本输入框宽度 */
|
|
34
|
-
txtInputWidth: {
|
|
35
|
-
type: Number,
|
|
36
|
-
default: 130
|
|
37
|
-
}
|
|
38
|
-
},
|
|
39
|
-
created() {
|
|
40
|
-
if (this.searchList.length > 0 && !this.params.SearchType) {
|
|
41
|
-
this.params.SearchType = this.searchList[0].value;
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
};
|
|
45
|
-
</script>
|
|
@@ -1,154 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
<template>
|
|
4
|
-
<el-popover v-model="popoverVisible" trigger="click" :disabled="disabled" transition="el-zoom-in-top" :placement="placement" :width="popoverWidth" @hide="handleBlur">
|
|
5
|
-
<div class="quarter-wrapper">
|
|
6
|
-
<BaseFlexBox content="between">
|
|
7
|
-
<i class="el-icon-d-arrow-left" @click="prev"></i>
|
|
8
|
-
<span>{{ selectYear }}</span>
|
|
9
|
-
<i class="el-icon-d-arrow-right" @click="after"></i>
|
|
10
|
-
</BaseFlexBox>
|
|
11
|
-
<BaseFlexBox content="between" style="margin-top: 10px">
|
|
12
|
-
<el-button v-for="item in quarterList" :key="item.value" :disabled="getDisable(item)" :type="currentyear==selectYear&&item.value == currentQuarter ?'primary':''" size="mini" round @click="setCurrent(item)">{{ item.label }}</el-button>
|
|
13
|
-
</BaseFlexBox>
|
|
14
|
-
</div>
|
|
15
|
-
<el-input slot="reference" ref="reference" size="small" :value="quarterLabel" readonly :title="value" :placeholder="placeholder" prefix-icon="el-icon-date" clearable />
|
|
16
|
-
</el-popover>
|
|
17
|
-
</template>
|
|
18
|
-
|
|
19
|
-
<script>
|
|
20
|
-
import BaseFlexBox from "../xt-flex-box/index.vue";
|
|
21
|
-
import dateFns from "date-fns";
|
|
22
|
-
export default {
|
|
23
|
-
name: "DateQuarter",
|
|
24
|
-
components: {
|
|
25
|
-
BaseFlexBox
|
|
26
|
-
},
|
|
27
|
-
model: {
|
|
28
|
-
props: "value",
|
|
29
|
-
event: "change"
|
|
30
|
-
},
|
|
31
|
-
props: {
|
|
32
|
-
value: {},
|
|
33
|
-
quarterType: { // value绑定值类型 1.quarter为时返回当前时间 2.quarter-start时返回季的开始时间 3. quarter-end时返回季的结束时间
|
|
34
|
-
type: String,
|
|
35
|
-
default: "quarter"
|
|
36
|
-
},
|
|
37
|
-
placement: {
|
|
38
|
-
type: String,
|
|
39
|
-
default: "bottom-start"
|
|
40
|
-
},
|
|
41
|
-
// valueFormat: {
|
|
42
|
-
// type: String,
|
|
43
|
-
// default: "yyyy-Qq"
|
|
44
|
-
// },
|
|
45
|
-
format: { // 同时支持字符串 "yyyy-Qq" 使用小写q进行格式化数据
|
|
46
|
-
type: String,
|
|
47
|
-
default: "yy-Qq"
|
|
48
|
-
},
|
|
49
|
-
popoverWidth: Number,
|
|
50
|
-
placeholder: {},
|
|
51
|
-
pickerOptions: {
|
|
52
|
-
type: Object,
|
|
53
|
-
default: () => {
|
|
54
|
-
return {
|
|
55
|
-
disabledDate: () => {
|
|
56
|
-
return false;
|
|
57
|
-
}
|
|
58
|
-
};
|
|
59
|
-
}
|
|
60
|
-
},
|
|
61
|
-
disabled: {}
|
|
62
|
-
},
|
|
63
|
-
data() {
|
|
64
|
-
const dateVal = this.getQuarterDate(this.value);
|
|
65
|
-
const currentyear = dateVal ? dateVal.getFullYear() : "";
|
|
66
|
-
const month = dateVal ? dateVal.getMonth() : "";
|
|
67
|
-
const selectYear = dateVal ? dateVal.getFullYear() : new Date().getFullYear();
|
|
68
|
-
return {
|
|
69
|
-
dateVal: dateVal,
|
|
70
|
-
currentyear: currentyear,
|
|
71
|
-
currentQuarter: dateFns.getQuarter(dateVal),
|
|
72
|
-
selectYear: selectYear,
|
|
73
|
-
currentMonth: month,
|
|
74
|
-
popoverVisible: false,
|
|
75
|
-
quarterList: [
|
|
76
|
-
{ label: "Q1", value: 1 },
|
|
77
|
-
{ label: "Q2", value: 2 },
|
|
78
|
-
{ label: "Q3", value: 3 },
|
|
79
|
-
{ label: "Q4", value: 4 }
|
|
80
|
-
]
|
|
81
|
-
};
|
|
82
|
-
},
|
|
83
|
-
computed: {
|
|
84
|
-
diffQuarter() {
|
|
85
|
-
return (this.selectYear - this.currentyear) * 4 - this.currentQuarter;
|
|
86
|
-
},
|
|
87
|
-
quarterLabel: {
|
|
88
|
-
get() {
|
|
89
|
-
if (!this.currentyear || !this.currentQuarter) {
|
|
90
|
-
return "";
|
|
91
|
-
}
|
|
92
|
-
return this.getFormatVal();
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
},
|
|
96
|
-
methods: {
|
|
97
|
-
getQuarterDate(val) {
|
|
98
|
-
if (!val) return null;
|
|
99
|
-
if (this.quarterType == "quarter-start") {
|
|
100
|
-
return dateFns.startOfQuarter(val);
|
|
101
|
-
} else if (this.quarterType == "quarter-end") {
|
|
102
|
-
return dateFns.endOfQuarter(val);
|
|
103
|
-
} else {
|
|
104
|
-
const currentQuarter = dateFns.getQuarter(val);
|
|
105
|
-
return dateFns.setQuarter(this.value, currentQuarter);
|
|
106
|
-
}
|
|
107
|
-
},
|
|
108
|
-
getDisable(it) {
|
|
109
|
-
},
|
|
110
|
-
handleChangeVal(v) {
|
|
111
|
-
},
|
|
112
|
-
getFormatVal() {
|
|
113
|
-
if (!this.format) {
|
|
114
|
-
return `${this.currentyear}-Q${this.currentQuarter}`;
|
|
115
|
-
}
|
|
116
|
-
const formatMap = {
|
|
117
|
-
y: this.currentyear,
|
|
118
|
-
q: this.currentQuarter
|
|
119
|
-
};
|
|
120
|
-
const val = this.format.replace(/(y|q)+/g, (result, key) => {
|
|
121
|
-
const value = formatMap[key];
|
|
122
|
-
return value || "";
|
|
123
|
-
});
|
|
124
|
-
return val;
|
|
125
|
-
},
|
|
126
|
-
setCurrent(item) {
|
|
127
|
-
if (!this.dateVal) {
|
|
128
|
-
this.dateVal = new Date();
|
|
129
|
-
}
|
|
130
|
-
this.dateVal.setFullYear(this.selectYear);
|
|
131
|
-
this.dateVal = dateFns.setQuarter(this.dateVal, item.value);
|
|
132
|
-
this.$emit("change", this.dateVal);
|
|
133
|
-
this.currentQuarter = item.value;
|
|
134
|
-
this.currentyear = this.selectYear;
|
|
135
|
-
this.popoverVisible = false;
|
|
136
|
-
},
|
|
137
|
-
after() {
|
|
138
|
-
this.dateVal.setFullYear(this.dateVal.getFullYear() + 1);
|
|
139
|
-
this.selectYear = this.dateVal.getFullYear();
|
|
140
|
-
},
|
|
141
|
-
prev() {
|
|
142
|
-
this.dateVal.setFullYear(this.dateVal.getFullYear() - 1);
|
|
143
|
-
this.selectYear = this.dateVal.getFullYear();
|
|
144
|
-
},
|
|
145
|
-
handleBlur() {
|
|
146
|
-
this.$refs.reference.blur();
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
};
|
|
150
|
-
</script>
|
|
151
|
-
|
|
152
|
-
<style>
|
|
153
|
-
|
|
154
|
-
</style>
|