@weitutech/by-components 1.0.27 → 1.0.30

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.
@@ -1,114 +1,114 @@
1
- <template>
2
- <div class="b-page-search">
3
- <by-form
4
- :value="formData"
5
- v-bind="searchFormConfig"
6
- :is-flexible="unfold"
7
- @input="handleInput"
8
- @change="handleChange"
9
- @queryBtnClick="handleQueryClick"
10
- >
11
- <template #header>
12
- <slot name="header" />
13
- </template>
14
- <template #footer>
15
- <div v-if="isShowUnfoldBtn" class="fold">
16
- <by-fold-search @change="handleFlexible" />
17
- </div>
18
- </template>
19
- <template v-for="item in getCustomItem" #[item]>
20
- <slot :name="item" />
21
- </template>
22
- </by-form>
23
- </div>
24
- </template>
25
-
26
- <script>
27
-
28
- export default {
29
- props: {
30
- searchFormConfig: {
31
- type: Object,
32
- required: true,
33
- default: () => {}
34
- },
35
- value: {
36
- type: Object,
37
- default: () => {}
38
- }
39
- },
40
-
41
- data() {
42
- return {
43
- formItems: this.searchFormConfig?.formItems ?? [],
44
- formOriginData: {}, // 最初的初始化数据
45
- formData: {}, // 双向绑定的
46
- unfold: false // 是否展开
47
- }
48
- },
49
-
50
- computed: {
51
- isShowUnfoldBtn() {
52
- const formItems = this.searchFormConfig?.formItems ?? []
53
- const flexible = this.searchFormConfig?.flexible ?? undefined
54
- // 如果没有配置flexible, 则默认为true
55
- if (flexible) {
56
- if (formItems.length > flexible.foldField.length) {
57
- return true
58
- } else {
59
- return false
60
- }
61
- } else {
62
- return false
63
- }
64
- },
65
- // 所有需要自定义的插槽
66
- getCustomItem() {
67
- return this.formItems.filter(f => f.type === "custom").map(item => item.field)
68
- }
69
- },
70
-
71
- watch: {
72
- value: {
73
- handler(newValue, oldValue) {
74
- this.formData = newValue
75
- },
76
- deep: true,
77
- immediate: true
78
- }
79
- },
80
-
81
- mounted() {
82
- this.formOriginData = this.value
83
- this.unfold = this.searchFormConfig.flexible?.unfold ?? false
84
- },
85
-
86
- // 双向绑定的属性应该是由配置文件的field来决定
87
- // 1.优化一: formData中的属性应该动态来决定
88
- methods: {
89
- // 2.优化二: 当用户点击重置
90
- handleResetClick() {
91
- this.formData = { ...this.formOriginData }
92
- this.$emit("input", { ...this.formOriginData })
93
- this.$emit("resetBtnClick")
94
- },
95
-
96
- // 3.优化三: 当用户点击搜索
97
- handleQueryClick() {
98
- this.$emit("queryBtnClick")
99
- },
100
-
101
- // 4.优化四: 当用户点击展开
102
- handleFlexible() {
103
- this.unfold = !this.unfold
104
- },
105
- handleInput(value) {
106
- this.formData = value
107
- this.$emit("input", { ...this.formData })
108
- },
109
- handleChange(event) {
110
- this.$emit("change", event)
111
- }
112
- }
113
- }
114
- </script>
1
+ <template>
2
+ <div class="b-page-search">
3
+ <by-form
4
+ :value="formData"
5
+ v-bind="searchFormConfig"
6
+ :is-flexible="unfold"
7
+ @input="handleInput"
8
+ @change="handleChange"
9
+ @queryBtnClick="handleQueryClick"
10
+ >
11
+ <template #header>
12
+ <slot name="header" />
13
+ </template>
14
+ <template #footer>
15
+ <div v-if="isShowUnfoldBtn" class="fold">
16
+ <by-fold-search @change="handleFlexible" />
17
+ </div>
18
+ </template>
19
+ <template v-for="item in getCustomItem" #[item]>
20
+ <slot :name="item" />
21
+ </template>
22
+ </by-form>
23
+ </div>
24
+ </template>
25
+
26
+ <script>
27
+
28
+ export default {
29
+ props: {
30
+ searchFormConfig: {
31
+ type: Object,
32
+ required: true,
33
+ default: () => {}
34
+ },
35
+ value: {
36
+ type: Object,
37
+ default: () => {}
38
+ }
39
+ },
40
+
41
+ data() {
42
+ return {
43
+ formItems: this.searchFormConfig?.formItems ?? [],
44
+ formOriginData: {}, // 最初的初始化数据
45
+ formData: {}, // 双向绑定的
46
+ unfold: false // 是否展开
47
+ }
48
+ },
49
+
50
+ computed: {
51
+ isShowUnfoldBtn() {
52
+ const formItems = this.searchFormConfig?.formItems ?? []
53
+ const flexible = this.searchFormConfig?.flexible ?? undefined
54
+ // 如果没有配置flexible, 则默认为true
55
+ if (flexible) {
56
+ if (formItems.length > flexible.foldField.length) {
57
+ return true
58
+ } else {
59
+ return false
60
+ }
61
+ } else {
62
+ return false
63
+ }
64
+ },
65
+ // 所有需要自定义的插槽
66
+ getCustomItem() {
67
+ return this.formItems.filter(f => f.type === "custom").map(item => item.field)
68
+ }
69
+ },
70
+
71
+ watch: {
72
+ value: {
73
+ handler(newValue, oldValue) {
74
+ this.formData = newValue
75
+ },
76
+ deep: true,
77
+ immediate: true
78
+ }
79
+ },
80
+
81
+ mounted() {
82
+ this.formOriginData = this.value
83
+ this.unfold = this.searchFormConfig.flexible?.unfold ?? false
84
+ },
85
+
86
+ // 双向绑定的属性应该是由配置文件的field来决定
87
+ // 1.优化一: formData中的属性应该动态来决定
88
+ methods: {
89
+ // 2.优化二: 当用户点击重置
90
+ handleResetClick() {
91
+ this.formData = { ...this.formOriginData }
92
+ this.$emit("input", { ...this.formOriginData })
93
+ this.$emit("resetBtnClick")
94
+ },
95
+
96
+ // 3.优化三: 当用户点击搜索
97
+ handleQueryClick() {
98
+ this.$emit("queryBtnClick")
99
+ },
100
+
101
+ // 4.优化四: 当用户点击展开
102
+ handleFlexible() {
103
+ this.unfold = !this.unfold
104
+ },
105
+ handleInput(value) {
106
+ this.formData = value
107
+ this.$emit("input", { ...this.formData })
108
+ },
109
+ handleChange(event) {
110
+ this.$emit("change", event)
111
+ }
112
+ }
113
+ }
114
+ </script>
@@ -1,81 +1,81 @@
1
- <template>
2
- <div id="pager" class="pager fixed bottom-0 right-0 w-full flex justify-center items-center z-50">
3
- <el-pagination
4
- :current-page="pager['page']"
5
- :page-size="pager['limit']"
6
- :page-sizes="pageSizes"
7
- background
8
- layout="total, prev, pager, next,sizes, jumper"
9
- :total="totalCount"
10
- @size-change="(value) => handleValueChange(value, 'limit')"
11
- @current-change="(value) => handleValueChange(value, 'page')"
12
- />
13
- </div>
14
- </template>
15
-
16
- <script>
17
- export default {
18
- name: 'BYPager',
19
- props: {
20
- limit: {
21
- type: Number,
22
- default: 15
23
- },
24
- page: {
25
- type: Number,
26
- default: 1
27
- },
28
- totalCount: {
29
- type: Number,
30
- required: true,
31
- default: 25
32
- },
33
- pageSizes: {
34
- type: Array,
35
- default: () => [10, 15, 20, 25, 30, 50, 100]
36
- }
37
- },
38
-
39
- data() {
40
- return {
41
- pager: {
42
- page: this.page,
43
- limit: this.limit
44
- }
45
- }
46
- },
47
-
48
- watch: {
49
- page: {
50
- handler: function(val, oldVal) {
51
- this.pager.page = val
52
- },
53
- immediate: true
54
- },
55
- limit: {
56
- handler: function(val, oldVal) {
57
- this.pager.limit = val
58
- },
59
- immediate: true
60
- }
61
- },
62
- mounted() {
63
- // 修改分页文案
64
- document.getElementsByClassName("el-pagination__jump")[0].childNodes[0].nodeValue = "跳至"
65
- document.getElementsByClassName("el-pagination__jump")[0].childNodes[2].nodeValue = ""
66
- },
67
-
68
- methods: {
69
- handleValueChange(value, field) {
70
- if (!value) return
71
- const values = {
72
- ...this.pager,
73
- [field]: value,
74
- page: field === "limit" ? 1 : value
75
- }
76
- this.$emit("onChange", values)
77
- }
78
- }
79
- }
80
- </script>
81
-
1
+ <template>
2
+ <div id="pager" class="pager fixed bottom-0 right-0 w-full flex justify-center items-center z-50">
3
+ <el-pagination
4
+ :current-page="pager['page']"
5
+ :page-size="pager['limit']"
6
+ :page-sizes="pageSizes"
7
+ background
8
+ layout="total, prev, pager, next,sizes, jumper"
9
+ :total="totalCount"
10
+ @size-change="(value) => handleValueChange(value, 'limit')"
11
+ @current-change="(value) => handleValueChange(value, 'page')"
12
+ />
13
+ </div>
14
+ </template>
15
+
16
+ <script>
17
+ export default {
18
+ name: 'BYPager',
19
+ props: {
20
+ limit: {
21
+ type: Number,
22
+ default: 15
23
+ },
24
+ page: {
25
+ type: Number,
26
+ default: 1
27
+ },
28
+ totalCount: {
29
+ type: Number,
30
+ required: true,
31
+ default: 25
32
+ },
33
+ pageSizes: {
34
+ type: Array,
35
+ default: () => [10, 15, 20, 25, 30, 50, 100]
36
+ }
37
+ },
38
+
39
+ data() {
40
+ return {
41
+ pager: {
42
+ page: this.page,
43
+ limit: this.limit
44
+ }
45
+ }
46
+ },
47
+
48
+ watch: {
49
+ page: {
50
+ handler: function(val, oldVal) {
51
+ this.pager.page = val
52
+ },
53
+ immediate: true
54
+ },
55
+ limit: {
56
+ handler: function(val, oldVal) {
57
+ this.pager.limit = val
58
+ },
59
+ immediate: true
60
+ }
61
+ },
62
+ mounted() {
63
+ // 修改分页文案
64
+ document.getElementsByClassName("el-pagination__jump")[0].childNodes[0].nodeValue = "跳至"
65
+ document.getElementsByClassName("el-pagination__jump")[0].childNodes[2].nodeValue = ""
66
+ },
67
+
68
+ methods: {
69
+ handleValueChange(value, field) {
70
+ if (!value) return
71
+ const values = {
72
+ ...this.pager,
73
+ [field]: value,
74
+ page: field === "limit" ? 1 : value
75
+ }
76
+ this.$emit("onChange", values)
77
+ }
78
+ }
79
+ }
80
+ </script>
81
+