doway-coms 2.7.8 → 2.8.0
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/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
// 导入组件,组件必须声明 name
|
|
2
|
-
import BaseDateMonth from './src/index.vue';
|
|
3
|
-
// 为组件提供 install 安装方法,供按需引入
|
|
4
|
-
BaseDateMonth.install = function(Vue) {
|
|
5
|
-
Vue.component(BaseDateMonth.name, BaseDateMonth);
|
|
6
|
-
};
|
|
7
|
-
// 默认导出组件
|
|
1
|
+
// 导入组件,组件必须声明 name
|
|
2
|
+
import BaseDateMonth from './src/index.vue';
|
|
3
|
+
// 为组件提供 install 安装方法,供按需引入
|
|
4
|
+
BaseDateMonth.install = function(Vue) {
|
|
5
|
+
Vue.component(BaseDateMonth.name, BaseDateMonth);
|
|
6
|
+
};
|
|
7
|
+
// 默认导出组件
|
|
8
8
|
export default BaseDateMonth;
|
|
@@ -1,164 +1,164 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<div class="d-control-container">
|
|
3
|
-
<div class="d-control-label">
|
|
4
|
-
{{ label }}
|
|
5
|
-
<span v-if="rules && rules['required']" class="d-control-label-required"
|
|
6
|
-
>*</span
|
|
7
|
-
>
|
|
8
|
-
<Tooltip :title="tooltip" v-if="tooltip" style="margin: 0 2px">
|
|
9
|
-
<img src="../../styles/icon/help.png" alt="" style="width: 14px" />
|
|
10
|
-
</Tooltip>
|
|
11
|
-
</div>
|
|
12
|
-
<div class="d-control">
|
|
13
|
-
<ValidationProvider
|
|
14
|
-
:name="label"
|
|
15
|
-
v-slot="v"
|
|
16
|
-
:rules="rules"
|
|
17
|
-
v-if="edit === true"
|
|
18
|
-
>
|
|
19
|
-
<MonthPicker
|
|
20
|
-
:size="'small'"
|
|
21
|
-
placeholder="选择月"
|
|
22
|
-
v-model="currentValue"
|
|
23
|
-
value-format="YYYY-MM-DD"
|
|
24
|
-
style="width: 100%"
|
|
25
|
-
:class="{ 'd-error-input': v.errors.length > 0 }"
|
|
26
|
-
@change="change"
|
|
27
|
-
/>
|
|
28
|
-
<div class="d-error-msg">
|
|
29
|
-
{{ v.errors[0] }}
|
|
30
|
-
</div>
|
|
31
|
-
</ValidationProvider>
|
|
32
|
-
<Tooltip placement="topLeft" v-else>
|
|
33
|
-
<template slot="title">
|
|
34
|
-
{{ moment(currentValue).format("YYYY-MM") }}
|
|
35
|
-
</template>
|
|
36
|
-
<span @contextmenu.prevent="(event) => onContextmenu(event, currentValue)">
|
|
37
|
-
{{ moment(currentValue).format("YYYY-MM") }}
|
|
38
|
-
</span>
|
|
39
|
-
</Tooltip>
|
|
40
|
-
</div>
|
|
41
|
-
</div>
|
|
42
|
-
</template>
|
|
43
|
-
|
|
44
|
-
<script>
|
|
45
|
-
//VXETable插件
|
|
46
|
-
import VXETable from "vxe-table";
|
|
47
|
-
//轻量级剪贴板复制函数
|
|
48
|
-
import XEClipboard from "xe-clipboard";
|
|
49
|
-
import moment from "moment";
|
|
50
|
-
import { DatePicker } from "ant-design-vue";
|
|
51
|
-
import { ValidationProvider } from "vee-validate";
|
|
52
|
-
import { Tooltip } from "ant-design-vue";
|
|
53
|
-
export default {
|
|
54
|
-
name: "BaseDateMonth",
|
|
55
|
-
components: {
|
|
56
|
-
MonthPicker: DatePicker.MonthPicker,
|
|
57
|
-
ValidationProvider,
|
|
58
|
-
Tooltip,
|
|
59
|
-
},
|
|
60
|
-
data() {
|
|
61
|
-
return {
|
|
62
|
-
moment,
|
|
63
|
-
filterValue: "",
|
|
64
|
-
isInputChanged: false,
|
|
65
|
-
inputTimeout: null,
|
|
66
|
-
searchRows: [],
|
|
67
|
-
filterCols: [],
|
|
68
|
-
gridLoading: false,
|
|
69
|
-
gridPagerConfig: {
|
|
70
|
-
total: 0,
|
|
71
|
-
currentPage: 1,
|
|
72
|
-
pageSize: 10,
|
|
73
|
-
},
|
|
74
|
-
};
|
|
75
|
-
},
|
|
76
|
-
computed: {
|
|
77
|
-
currentValue: {
|
|
78
|
-
// 动态计算currentValue的值
|
|
79
|
-
get: function () {
|
|
80
|
-
return this.value; // 将props中的value赋值给currentValue
|
|
81
|
-
},
|
|
82
|
-
set: function (val) {
|
|
83
|
-
this.$emit("input", val); // 通过$emit触发父组件
|
|
84
|
-
},
|
|
85
|
-
},
|
|
86
|
-
},
|
|
87
|
-
props: {
|
|
88
|
-
rules: {
|
|
89
|
-
type: Object,
|
|
90
|
-
default: function () {
|
|
91
|
-
return null;
|
|
92
|
-
},
|
|
93
|
-
},
|
|
94
|
-
value: {
|
|
95
|
-
type: String,
|
|
96
|
-
default: function () {
|
|
97
|
-
return "";
|
|
98
|
-
},
|
|
99
|
-
},
|
|
100
|
-
edit: {
|
|
101
|
-
type: Boolean,
|
|
102
|
-
default: function () {
|
|
103
|
-
return false;
|
|
104
|
-
},
|
|
105
|
-
},
|
|
106
|
-
name: {
|
|
107
|
-
type: String,
|
|
108
|
-
default: function () {
|
|
109
|
-
return "";
|
|
110
|
-
},
|
|
111
|
-
},
|
|
112
|
-
label: {
|
|
113
|
-
type: String,
|
|
114
|
-
default: function () {
|
|
115
|
-
return "";
|
|
116
|
-
},
|
|
117
|
-
},
|
|
118
|
-
placeholder: {
|
|
119
|
-
type: String,
|
|
120
|
-
default: function () {
|
|
121
|
-
return "";
|
|
122
|
-
},
|
|
123
|
-
},
|
|
124
|
-
tooltip: {
|
|
125
|
-
type: String,
|
|
126
|
-
default: function () {
|
|
127
|
-
return "";
|
|
128
|
-
},
|
|
129
|
-
},
|
|
130
|
-
},
|
|
131
|
-
created() {},
|
|
132
|
-
methods: {
|
|
133
|
-
change() {
|
|
134
|
-
this.$emit("change");
|
|
135
|
-
},
|
|
136
|
-
onContextmenu(event, currentValue) {
|
|
137
|
-
this.$contextmenu({
|
|
138
|
-
items: [
|
|
139
|
-
{
|
|
140
|
-
icon: 'ant-design:folder-open-filled',
|
|
141
|
-
label: "复制",
|
|
142
|
-
onClick: () => {
|
|
143
|
-
if (XEClipboard.copy(currentValue)) {
|
|
144
|
-
VXETable.modal.message({
|
|
145
|
-
content: "已复制到剪贴板!",
|
|
146
|
-
status: "success",
|
|
147
|
-
});
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
],
|
|
152
|
-
event,
|
|
153
|
-
zIndex: 1000,
|
|
154
|
-
minWidth: 150
|
|
155
|
-
});
|
|
156
|
-
return false;
|
|
157
|
-
}
|
|
158
|
-
},
|
|
159
|
-
};
|
|
160
|
-
</script>
|
|
161
|
-
|
|
162
|
-
<style lang="less">
|
|
163
|
-
@import "../../styles/default.less";
|
|
1
|
+
<template>
|
|
2
|
+
<div class="d-control-container">
|
|
3
|
+
<div class="d-control-label">
|
|
4
|
+
{{ label }}
|
|
5
|
+
<span v-if="rules && rules['required']" class="d-control-label-required"
|
|
6
|
+
>*</span
|
|
7
|
+
>
|
|
8
|
+
<Tooltip :title="tooltip" v-if="tooltip" style="margin: 0 2px">
|
|
9
|
+
<img src="../../styles/icon/help.png" alt="" style="width: 14px" />
|
|
10
|
+
</Tooltip>
|
|
11
|
+
</div>
|
|
12
|
+
<div class="d-control">
|
|
13
|
+
<ValidationProvider
|
|
14
|
+
:name="label"
|
|
15
|
+
v-slot="v"
|
|
16
|
+
:rules="rules"
|
|
17
|
+
v-if="edit === true"
|
|
18
|
+
>
|
|
19
|
+
<MonthPicker
|
|
20
|
+
:size="'small'"
|
|
21
|
+
placeholder="选择月"
|
|
22
|
+
v-model="currentValue"
|
|
23
|
+
value-format="YYYY-MM-DD"
|
|
24
|
+
style="width: 100%"
|
|
25
|
+
:class="{ 'd-error-input': v.errors.length > 0 }"
|
|
26
|
+
@change="change"
|
|
27
|
+
/>
|
|
28
|
+
<div class="d-error-msg">
|
|
29
|
+
{{ v.errors[0] }}
|
|
30
|
+
</div>
|
|
31
|
+
</ValidationProvider>
|
|
32
|
+
<Tooltip placement="topLeft" v-else>
|
|
33
|
+
<template slot="title">
|
|
34
|
+
{{ moment(currentValue).format("YYYY-MM") }}
|
|
35
|
+
</template>
|
|
36
|
+
<span @contextmenu.prevent="(event) => onContextmenu(event, currentValue)">
|
|
37
|
+
{{ moment(currentValue).format("YYYY-MM") }}
|
|
38
|
+
</span>
|
|
39
|
+
</Tooltip>
|
|
40
|
+
</div>
|
|
41
|
+
</div>
|
|
42
|
+
</template>
|
|
43
|
+
|
|
44
|
+
<script>
|
|
45
|
+
//VXETable插件
|
|
46
|
+
import VXETable from "vxe-table";
|
|
47
|
+
//轻量级剪贴板复制函数
|
|
48
|
+
import XEClipboard from "xe-clipboard";
|
|
49
|
+
import moment from "moment";
|
|
50
|
+
import { DatePicker } from "ant-design-vue";
|
|
51
|
+
import { ValidationProvider } from "vee-validate";
|
|
52
|
+
import { Tooltip } from "ant-design-vue";
|
|
53
|
+
export default {
|
|
54
|
+
name: "BaseDateMonth",
|
|
55
|
+
components: {
|
|
56
|
+
MonthPicker: DatePicker.MonthPicker,
|
|
57
|
+
ValidationProvider,
|
|
58
|
+
Tooltip,
|
|
59
|
+
},
|
|
60
|
+
data() {
|
|
61
|
+
return {
|
|
62
|
+
moment,
|
|
63
|
+
filterValue: "",
|
|
64
|
+
isInputChanged: false,
|
|
65
|
+
inputTimeout: null,
|
|
66
|
+
searchRows: [],
|
|
67
|
+
filterCols: [],
|
|
68
|
+
gridLoading: false,
|
|
69
|
+
gridPagerConfig: {
|
|
70
|
+
total: 0,
|
|
71
|
+
currentPage: 1,
|
|
72
|
+
pageSize: 10,
|
|
73
|
+
},
|
|
74
|
+
};
|
|
75
|
+
},
|
|
76
|
+
computed: {
|
|
77
|
+
currentValue: {
|
|
78
|
+
// 动态计算currentValue的值
|
|
79
|
+
get: function () {
|
|
80
|
+
return this.value; // 将props中的value赋值给currentValue
|
|
81
|
+
},
|
|
82
|
+
set: function (val) {
|
|
83
|
+
this.$emit("input", val); // 通过$emit触发父组件
|
|
84
|
+
},
|
|
85
|
+
},
|
|
86
|
+
},
|
|
87
|
+
props: {
|
|
88
|
+
rules: {
|
|
89
|
+
type: Object,
|
|
90
|
+
default: function () {
|
|
91
|
+
return null;
|
|
92
|
+
},
|
|
93
|
+
},
|
|
94
|
+
value: {
|
|
95
|
+
type: String,
|
|
96
|
+
default: function () {
|
|
97
|
+
return "";
|
|
98
|
+
},
|
|
99
|
+
},
|
|
100
|
+
edit: {
|
|
101
|
+
type: Boolean,
|
|
102
|
+
default: function () {
|
|
103
|
+
return false;
|
|
104
|
+
},
|
|
105
|
+
},
|
|
106
|
+
name: {
|
|
107
|
+
type: String,
|
|
108
|
+
default: function () {
|
|
109
|
+
return "";
|
|
110
|
+
},
|
|
111
|
+
},
|
|
112
|
+
label: {
|
|
113
|
+
type: String,
|
|
114
|
+
default: function () {
|
|
115
|
+
return "";
|
|
116
|
+
},
|
|
117
|
+
},
|
|
118
|
+
placeholder: {
|
|
119
|
+
type: String,
|
|
120
|
+
default: function () {
|
|
121
|
+
return "";
|
|
122
|
+
},
|
|
123
|
+
},
|
|
124
|
+
tooltip: {
|
|
125
|
+
type: String,
|
|
126
|
+
default: function () {
|
|
127
|
+
return "";
|
|
128
|
+
},
|
|
129
|
+
},
|
|
130
|
+
},
|
|
131
|
+
created() {},
|
|
132
|
+
methods: {
|
|
133
|
+
change() {
|
|
134
|
+
this.$emit("change");
|
|
135
|
+
},
|
|
136
|
+
onContextmenu(event, currentValue) {
|
|
137
|
+
this.$contextmenu({
|
|
138
|
+
items: [
|
|
139
|
+
{
|
|
140
|
+
icon: 'ant-design:folder-open-filled',
|
|
141
|
+
label: "复制",
|
|
142
|
+
onClick: () => {
|
|
143
|
+
if (XEClipboard.copy(currentValue)) {
|
|
144
|
+
VXETable.modal.message({
|
|
145
|
+
content: "已复制到剪贴板!",
|
|
146
|
+
status: "success",
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
],
|
|
152
|
+
event,
|
|
153
|
+
zIndex: 1000,
|
|
154
|
+
minWidth: 150
|
|
155
|
+
});
|
|
156
|
+
return false;
|
|
157
|
+
}
|
|
158
|
+
},
|
|
159
|
+
};
|
|
160
|
+
</script>
|
|
161
|
+
|
|
162
|
+
<style lang="less">
|
|
163
|
+
@import "../../styles/default.less";
|
|
164
164
|
</style>
|
|
@@ -83,7 +83,6 @@
|
|
|
83
83
|
:maxHeight="expandHeight"
|
|
84
84
|
:show-footer="showFooter"
|
|
85
85
|
@scroll="bodyScroll"
|
|
86
|
-
:row-class-name="gridRowStyle"
|
|
87
86
|
>
|
|
88
87
|
<template v-for="item in internalColumns" #[item.field]>
|
|
89
88
|
<div :key="item.field">
|
|
@@ -2422,6 +2421,9 @@ export default {
|
|
|
2422
2421
|
scope.row[item.visibleState.field]
|
|
2423
2422
|
) != -1
|
|
2424
2423
|
: true)
|
|
2424
|
+
if (item.visibleConditional) {
|
|
2425
|
+
isShow = isShow && item.visibleConditional(scope);
|
|
2426
|
+
}
|
|
2425
2427
|
return isShow
|
|
2426
2428
|
},
|
|
2427
2429
|
activeCellMethod({ row, column }) {
|