wl-design-mobile 0.0.1

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.
Files changed (121) hide show
  1. package/assets/home/banner.png +0 -0
  2. package/assets/home/card-slot1.png +0 -0
  3. package/assets/home/card-slot2.png +0 -0
  4. package/assets/home/card-slot3.png +0 -0
  5. package/assets/home/card-slot4.png +0 -0
  6. package/assets/home/card-slot6.png +0 -0
  7. package/assets/home/grid-1.png +0 -0
  8. package/assets/home/icon-1-1.png +0 -0
  9. package/assets/home/icon-1.png +0 -0
  10. package/assets/home/icon-2-1.png +0 -0
  11. package/assets/home/icon-2.png +0 -0
  12. package/assets/home/placeholder.png +0 -0
  13. package/assets/home/top-bg.png +0 -0
  14. package/assets/home/top-car-bg.png +0 -0
  15. package/assets/icon/arrange.png +0 -0
  16. package/assets/icon/arrow-left.png +0 -0
  17. package/assets/icon/arrow-right-big.png +0 -0
  18. package/assets/icon/back.png +0 -0
  19. package/assets/icon/boxs.png +0 -0
  20. package/assets/icon/date.png +0 -0
  21. package/assets/icon/delete.png +0 -0
  22. package/assets/icon/down.png +0 -0
  23. package/assets/icon/fileImg.png +0 -0
  24. package/assets/icon/filter.png +0 -0
  25. package/assets/icon/filtrate.png +0 -0
  26. package/assets/icon/info.png +0 -0
  27. package/assets/icon/interval/location.png +0 -0
  28. package/assets/icon/interval/reset.png +0 -0
  29. package/assets/icon/interval/time.png +0 -0
  30. package/assets/icon/label/close.png +0 -0
  31. package/assets/icon/label/down.png +0 -0
  32. package/assets/icon/label/up.png +0 -0
  33. package/assets/icon/more.png +0 -0
  34. package/assets/icon/order.png +0 -0
  35. package/assets/icon/person.png +0 -0
  36. package/assets/icon/picture.png +0 -0
  37. package/assets/icon/pull-down.png +0 -0
  38. package/assets/icon/report-forms/gary-icon.png +0 -0
  39. package/assets/icon/report-forms/green-up-icon.png +0 -0
  40. package/assets/icon/report-forms/icon.png +0 -0
  41. package/assets/icon/report-forms/up-icon.png +0 -0
  42. package/assets/icon/required.png +0 -0
  43. package/assets/icon/search-right.png +0 -0
  44. package/assets/icon/search.png +0 -0
  45. package/assets/icon/sort.png +0 -0
  46. package/assets/icon/timeicon.png +0 -0
  47. package/assets/icon/title-icon.png +0 -0
  48. package/assets/icon/unfold.png +0 -0
  49. package/assets/icon/up.png +0 -0
  50. package/assets/icon/upload-img.png +0 -0
  51. package/assets/icon/upload.png +0 -0
  52. package/assets/icon/uploadImg.png +0 -0
  53. package/assets/img/card/card-big.png +0 -0
  54. package/assets/img/doc/excel.png +0 -0
  55. package/assets/img/doc/mp3.png +0 -0
  56. package/assets/img/doc/other.png +0 -0
  57. package/assets/img/doc/pdf.png +0 -0
  58. package/assets/img/doc/photo.png +0 -0
  59. package/assets/img/doc/ppt.png +0 -0
  60. package/assets/img/doc/txt.png +0 -0
  61. package/assets/img/doc/video.png +0 -0
  62. package/assets/img/doc/word.png +0 -0
  63. package/assets/img/doc/zip.png +0 -0
  64. package/assets/img/login-background-bottom.jpg +0 -0
  65. package/assets/img/login-background-top.jpg +0 -0
  66. package/assets/img/login-hello.png +0 -0
  67. package/assets/img/title1-display-page.png +0 -0
  68. package/assets/img/title1-edit-page.png +0 -0
  69. package/assets/logo.png +0 -0
  70. package/btn/lambo-big-button.vue +121 -0
  71. package/btn/lambo-button-group.vue +47 -0
  72. package/btn/lambo-icon-button.vue +50 -0
  73. package/btn/lambo-medium-button.vue +121 -0
  74. package/btn/lambo-small-button-group.vue +31 -0
  75. package/btn/lambo-small-button-select.vue +53 -0
  76. package/btn/lambo-small-button.vue +121 -0
  77. package/card-item/card-row-icon.vue +72 -0
  78. package/card-item/filtrate-row.vue +72 -0
  79. package/card-item/lambo-card-footer.vue +40 -0
  80. package/card-item/lambo-card-head.vue +64 -0
  81. package/card-item/lambo-card-row.vue +60 -0
  82. package/collapse/lambo-collapse.vue +80 -0
  83. package/detail/lambo-detail-grid.vue +57 -0
  84. package/detail/lambo-detail-row.vue +59 -0
  85. package/doc/file/lambo-file-upload.vue +179 -0
  86. package/doc/file/styles/css/index.css +118 -0
  87. package/doc/img/lambo-img-upload.vue +109 -0
  88. package/doc/img/styles/css/index.css +98 -0
  89. package/edit/list/Lambo-edit-list.vue +90 -0
  90. package/edit/list/lambo-edit-card-group.vue +103 -0
  91. package/edit/list/styles/css/index.css +39 -0
  92. package/edit/select/lambo-edit-date-range.vue +135 -0
  93. package/edit/select/lambo-edit-date.vue +108 -0
  94. package/edit/select/lambo-edit-input-textarea.vue +92 -0
  95. package/edit/select/lambo-edit-input.vue +92 -0
  96. package/edit/select/lambo-edit-multi-select.vue +160 -0
  97. package/edit/select/lambo-edit-single-select.vue +153 -0
  98. package/edit/select/styles/css/index.css +124 -0
  99. package/flow/lambo-flow-detail.vue +30 -0
  100. package/flow/lambo-flow-edit.vue +30 -0
  101. package/icon/lambo-required-red-star.vue +47 -0
  102. package/icon/lambo-vector-icon.vue +71 -0
  103. package/list/lambo-list.vue +236 -0
  104. package/nav/lambo-top-nav.vue +89 -0
  105. package/package.json +26 -0
  106. package/search/lambo-date-range-page.vue +191 -0
  107. package/search/lambo-date-range.vue +107 -0
  108. package/search/lambo-input.vue +74 -0
  109. package/search/lambo-multi-select.vue +125 -0
  110. package/search/lambo-org-select-page.vue +109 -0
  111. package/search/lambo-search-box.vue +55 -0
  112. package/search/lambo-single-select.vue +119 -0
  113. package/search/styles/css/index.css +126 -0
  114. package/styles/base.less +75 -0
  115. package/styles/components/btn.less +7 -0
  116. package/styles/components/search.less +33 -0
  117. package/styles/components/tag.less +181 -0
  118. package/styles/index.less +4 -0
  119. package/title/lambo-title1.vue +129 -0
  120. package/title/lambo-title2.vue +37 -0
  121. package/title/lambo-title3.vue +77 -0
@@ -0,0 +1,153 @@
1
+ <template>
2
+ <div>
3
+ <div class="edit-box" @click="changeColor">
4
+ <div class="edit-left-box">
5
+ <div class="edit-left-top">
6
+ <div v-if="required" class="edit-red-icon">
7
+ <lambo-required-red-star :required="required"></lambo-required-red-star>
8
+ </div>
9
+ <div class="edit-title">{{ title }}</div>
10
+ </div>
11
+ <van-field v-model="valName" :placeholder="placeholder" :readonly="true"
12
+ class="edit-lambo-input" clear-trigger="focus"></van-field>
13
+ </div>
14
+ <div v-if="icon" class="edit-right-icon">
15
+ <lambo-vector-icon :icon="icon" @click="onOpen"></lambo-vector-icon>
16
+ </div>
17
+ </div>
18
+ <div>
19
+ <van-popup v-model:show="showBottom" :style="{ height: '33%' }" position="bottom">
20
+ <van-radio-group v-model="selectItem.K">
21
+ <div class="edit-top-div">
22
+ <van-button class="edit-cancel-btn" size="normal" @click="cancel">取消</van-button>
23
+ <span class="edit-select-title">请选择</span>
24
+ <van-button class="edit-confirm-btn" size="normal" @click="onConfirm">确认</van-button>
25
+ </div>
26
+ <van-cell-group>
27
+ <van-cell v-for="(c, index) in data" :key="index" :title="`${c.V}`" clickable @click="radioClick(c)">
28
+ <template #right-icon>
29
+ <van-radio :name="c.K" checked-color="#0070D2"/>
30
+ </template>
31
+ </van-cell>
32
+ </van-cell-group>
33
+ </van-radio-group>
34
+ </van-popup>
35
+ </div>
36
+ </div>
37
+ </template>
38
+ <script>
39
+ import requiredIcon from '../assets/icon/required.png'
40
+ import LamboVectorIcon from '@/components/lambo/icon/lambo-vector-icon.vue'
41
+ import {Toast} from 'vant'
42
+ import LamboRequiredRedStar from '@/components/lambo/icon/lambo-required-red-star.vue'
43
+
44
+ export default {
45
+ name: 'LamboEditSingleSelect',
46
+ components: {LamboRequiredRedStar, LamboVectorIcon},
47
+ props: {
48
+ title: {
49
+ type: String,
50
+ default: '',
51
+ },
52
+ placeholder: {
53
+ type: String,
54
+ default: '请选择',
55
+ },
56
+ required: {
57
+ type: Boolean,
58
+ default: false,
59
+ },
60
+ icon: {
61
+ type: String,
62
+ default: 'arrow-right-big.png',
63
+ },
64
+ data: {
65
+ type: Array,
66
+ default: () => ([]),
67
+ },
68
+ defaultItem: {
69
+ type: Object,
70
+ },
71
+ },
72
+ data() {
73
+ return {
74
+ iconSrc: requiredIcon,
75
+ showBottom: false,
76
+ val: '',
77
+ valName: '',
78
+ selectItem: {
79
+ K: '',
80
+ V: '',
81
+ },
82
+ firstLoad: true,
83
+ }
84
+ },
85
+ watch: {
86
+ defaultItem: {
87
+ handler: function (val, oldVal) {
88
+ console.log('lambo-select -- defaultItem -- val,oldVal,firstLoad:', {
89
+ val,
90
+ oldVal,
91
+ 'firstLoad': this.firstLoad,
92
+ })
93
+ if (this.defaultItem && ((this.defaultItem.K && this.firstLoad === true) || !this.firstLoad) ) {
94
+ this.val = this.defaultItem.K || ''
95
+ this.valName = this.defaultItem.V || ''
96
+ this.$set(this.selectItem, 'K', this.defaultItem.K)
97
+ this.$set(this.selectItem, 'V', this.defaultItem.V)
98
+ this.firstLoad = false
99
+ this.$emit('on-ok', this.defaultItem)
100
+ }
101
+ },
102
+ deep: true,
103
+ immediate: true,
104
+ },
105
+ },
106
+ methods: {
107
+ onOpen() {
108
+ console.log('this.data:', this.data)
109
+ this.showBottom = true
110
+ },
111
+ cancel() {
112
+ this.showBottom = false
113
+ },
114
+ onConfirm() {
115
+ if (this.selectItem && this.selectItem.K) {
116
+ this.val = this.selectItem.K
117
+ this.valName = this.selectItem.V
118
+ this.$emit('on-ok', this.selectItem)
119
+ } else {
120
+ Toast.fail('条件选择失败,请联系管理员')
121
+ console.error('lambo-select -- 条件选择失败,this.selectItem:', this.selectItem)
122
+ this.val = ''
123
+ this.valName = ''
124
+ this.$emit('on-ok', {K: '', V: ''})
125
+ }
126
+ this.showBottom = false
127
+ },
128
+ radioClick(data) {
129
+ if (data && data.K) {
130
+ this.selectItem.K = data.K
131
+ this.selectItem.V = data.V
132
+ }
133
+ },
134
+ changeColor() {
135
+ let searchRows = document.querySelectorAll('.edit-box')
136
+ Array.from(searchRows).forEach(function (row, index) {
137
+ row.addEventListener('click', function () {
138
+ Array.from(searchRows).forEach(function (row) {
139
+ row.style.borderBottom = '1px solid var(--scl-white-2)'
140
+ })
141
+ row.style.borderBottom = '1px solid var(--scl-blue)'
142
+ })
143
+ })
144
+ },
145
+ },
146
+ created() {
147
+ },
148
+ }
149
+ </script>
150
+ <style scoped>
151
+ @import "../../styles/index.less";
152
+ @import "styles/css/index.css";
153
+ </style>
@@ -0,0 +1,124 @@
1
+ .edit-box {
2
+ min-height: 70px;
3
+ display: flex;
4
+ justify-content: space-between;
5
+ padding: 12px 14px;
6
+ border-bottom: 1px solid var(--scl-white-2);
7
+ background-color: var(--scl-white-1);
8
+ }
9
+
10
+ .edit-left-box {
11
+ width: 100%;
12
+ }
13
+
14
+ /* 覆盖value的padding */
15
+ .edit-left-box /deep/ .van-cell {
16
+ padding: 0;
17
+ }
18
+
19
+ .edit-left-top {
20
+ display: flex;
21
+ align-items: center;
22
+ height: 16px;
23
+ margin-bottom: 12px
24
+ }
25
+
26
+ .edit-red-icon {
27
+ margin-right: 4px
28
+ }
29
+
30
+ .edit-title {
31
+ font-size: 12px;
32
+ font-family: Regular;
33
+ color: var(--scl-gray-2)
34
+ }
35
+
36
+ .edit-lambo-input {
37
+ border: none;
38
+ outline: none;
39
+ background: none;
40
+ height: 18px;
41
+ font-size: 14px;
42
+ color: var(--scl-gray-5);
43
+ display: flex;
44
+ justify-content: flex-start;
45
+ align-items: center;
46
+ flex: 1;
47
+ }
48
+
49
+ .edit-lambo-input-textarea {
50
+ border: none;
51
+ outline: none;
52
+ background: none;
53
+ font-size: 14px;
54
+ color: var(--scl-gray-5);
55
+ display: flex;
56
+ justify-content: flex-start;
57
+ align-items: center;
58
+ flex: 1;
59
+ }
60
+
61
+ .edit-right-icon {
62
+ display: flex;
63
+ align-items: center
64
+ }
65
+
66
+
67
+ .edit-top-div {
68
+ display: flex;
69
+ justify-content: space-between;
70
+ height: 44px;
71
+ line-height: 44px;
72
+ width: 100%;
73
+ position: fixed;
74
+ z-index: 300;
75
+ }
76
+
77
+ .edit-cancel-btn {
78
+ border: none;
79
+ color: var(--scl-gray-3);
80
+ }
81
+
82
+ .edit-confirm-btn {
83
+ border: none;
84
+ color: var(--scl-blue);
85
+ }
86
+
87
+ .edit-select-title {
88
+ font-size: 16px;
89
+ font-weight: bold;
90
+ }
91
+
92
+ /*修改单选多选的滚动条样式*/
93
+ /deep/ .van-radio-group {
94
+ position: relative;
95
+ }
96
+
97
+ /*修改单选多选的滚动条样式*/
98
+ /deep/ .van-cell-group {
99
+ padding-top: 44px;
100
+ }
101
+
102
+ /*修改单选多选的滚动条样式*/
103
+ /deep/ .van-cell:first-child {
104
+ padding-top: 10px;
105
+ }
106
+
107
+
108
+ /*滚动条样式*/
109
+ /deep/ ::-webkit-scrollbar {
110
+ width: 6px;
111
+ }
112
+
113
+ /*滚动条样式*/
114
+ /deep/ ::-webkit-scrollbar-thumb {
115
+ border-radius: var(--ind-border-radius-xl);
116
+ background: rgba(45, 140, 240, 0.6);
117
+ }
118
+
119
+ /*滚动条样式*/
120
+ /deep/ ::-webkit-scrollbar-track {
121
+ -webkit-box-shadow: inset 0 0 3px rgba(0, 0, 0, 0.1);
122
+ border-radius: var(--ind-border-radius-xl);
123
+ background: rgba(231, 242, 250, 0.4);
124
+ }
@@ -0,0 +1,30 @@
1
+ <template>
2
+ <div>
3
+
4
+ </div>
5
+ </template>
6
+ <script>
7
+
8
+ export default {
9
+ name: 'LamboFlowDetail',
10
+ components: {},
11
+ props: {},
12
+ data() {
13
+ return {
14
+
15
+ }
16
+ },
17
+ methods: {
18
+
19
+ },
20
+ created() {
21
+
22
+ },
23
+ mounted() {
24
+
25
+ }
26
+ }
27
+ </script>
28
+ <style scoped>
29
+ @import "../styles/index.less";
30
+ </style>
@@ -0,0 +1,30 @@
1
+ <template>
2
+ <div>
3
+
4
+ </div>
5
+ </template>
6
+ <script>
7
+
8
+ export default {
9
+ name: 'LamboFlowEdit',
10
+ components: {},
11
+ props: {},
12
+ data() {
13
+ return {
14
+
15
+ }
16
+ },
17
+ methods: {
18
+
19
+ },
20
+ created() {
21
+
22
+ },
23
+ mounted() {
24
+
25
+ }
26
+ }
27
+ </script>
28
+ <style scoped>
29
+ @import "../styles/index.less";
30
+ </style>
@@ -0,0 +1,47 @@
1
+ <template>
2
+ <div v-if="required === true" class="area-div">
3
+ <img :src="requiredReadIcon" class="icon-ep"/>
4
+ </div>
5
+
6
+ <div v-else class="area"/>
7
+
8
+ </template>
9
+ <script>
10
+ import redIcon from '../assets/icon/required.png'
11
+
12
+ export default {
13
+ name: 'LamboRequiredRedStar',
14
+ props: {
15
+ required: {
16
+ type: Boolean,
17
+ default: false,
18
+ },
19
+ },
20
+ data() {
21
+ return {
22
+ requiredReadIcon: redIcon,
23
+ }
24
+ },
25
+ methods: {}
26
+ }
27
+ </script>
28
+ <style scoped>
29
+ @import "../styles/index.less";
30
+
31
+ .area-div {
32
+ height: 16px;
33
+ display: flex;
34
+ justify-content: center;
35
+ align-items: center;
36
+ }
37
+
38
+ .icon-ep {
39
+ width: 8px;
40
+ height: 8px;
41
+ }
42
+
43
+ .area {
44
+ width: 8px;
45
+ height: 16px;
46
+ }
47
+ </style>
@@ -0,0 +1,71 @@
1
+ <template>
2
+ <div class="vector-icon" :style="iconStyle" ref="vectorIcon"></div>
3
+ </template>
4
+ <script>
5
+
6
+ /**
7
+ * 图标组件,用途:统一系统内增删改查通用图标的样式。其他需求图标,自行实现
8
+ * 图标路径:"src/assets/icon"
9
+ */
10
+ export default {
11
+ name: "LamboVectorIcon",
12
+ components: {},
13
+ props: {
14
+ icon: String, // "src/assets/icon"的图标名称
15
+ width: {
16
+ type: String,
17
+ default: "20px" // 默认宽度为 20px
18
+ },
19
+ height: {
20
+ type: String,
21
+ default: "20px" // 默认高度为 20px
22
+ },
23
+ position: {
24
+ type: String,
25
+ default: "center" // 默认居中
26
+ },
27
+ customStyle: {
28
+ type: Object,
29
+ default: () => ({})
30
+ }
31
+ },
32
+ computed: {
33
+ iconStyle() {
34
+ return {
35
+ backgroundImage: `url(${this.loadIcon})`,
36
+ width: this.width,
37
+ height: this.height,
38
+ backgroundPosition: this.position,
39
+ }
40
+ },
41
+ loadIcon() {
42
+ // return new URL('../../../assets/icon/' + this.icon, import.meta.url).href
43
+ return require('../assets/icon/' + this.icon)
44
+
45
+ }
46
+ },
47
+ data() {
48
+ return {}
49
+ },
50
+ methods: {
51
+ handleClick() {
52
+ this.$emit('click');
53
+ }
54
+ },
55
+ mounted() {
56
+ this.$refs.vectorIcon.addEventListener('click', this.handleClick);
57
+ },
58
+ beforeDestroy() {
59
+ this.$refs.vectorIcon.removeEventListener('click', this.handleClick);
60
+ },
61
+ }
62
+ </script>
63
+ <style scoped>
64
+ @import "../styles/index.less";
65
+
66
+ .vector-icon {
67
+ background-repeat: no-repeat;
68
+ background-size: 100% auto;
69
+ background-position: center;
70
+ }
71
+ </style>
@@ -0,0 +1,236 @@
1
+ <template>
2
+ <div>
3
+ <div class="top-btn-div">
4
+ <div class="opt-btn-div">
5
+ <slot name="opt"></slot>
6
+ </div>
7
+ <div class="filter-btn-div">
8
+ <slot name="filter"></slot>
9
+ </div>
10
+ </div>
11
+ <div class="tab-btn-div">
12
+ <div class="tabs-btn-div">
13
+ <slot name="tabs"></slot>
14
+ </div>
15
+ </div>
16
+ <div :style="{ height: listHeight }" class="custom-list">
17
+ <van-pull-refresh v-model="refreshing" @refresh="onRefresh">
18
+ <van-list v-model="loading" :finished="finished" :finished-text="finishedTxt" :offset="200" @load="onLoad">
19
+ <div v-for="(item, index) in list" :key="index" class="list-item">
20
+ <div class="card-item">
21
+ <slot name="head" v-bind:item="item"></slot>
22
+ <slot name="content" v-bind:item="item"></slot>
23
+ <slot name="footer" v-bind:item="item"></slot>
24
+ </div>
25
+ </div>
26
+ </van-list>
27
+ </van-pull-refresh>
28
+ </div>
29
+ </div>
30
+ </template>
31
+ <script>
32
+ import {axios} from "@indfnd/utils"
33
+ import {Toast} from "vant"
34
+
35
+ export default {
36
+ name: "LamboList",
37
+ components: {},
38
+ props: {
39
+ heightRatio: {
40
+ type: Number,
41
+ default: 0.5,
42
+ },
43
+ url: {
44
+ type: String
45
+ },
46
+ searchParams: {
47
+ type: Object
48
+ },
49
+ },
50
+ data() {
51
+ return {
52
+ loading: false,
53
+ finished: true,
54
+ finishedTxt: "",
55
+ pageNum: 1, // 当前页数
56
+ pageSize: 10, // 每页数据条数
57
+ listHeight: '100vh', // 默认列表高度为视口高度的80%
58
+ refreshing: false,
59
+ offset: 0,
60
+ limit: 10,
61
+ list: [],
62
+ };
63
+ },
64
+ mounted() {
65
+ this.getListHeight();
66
+ },
67
+ watch: {
68
+ searchParams: {
69
+ handler: function (val, oldVal) {
70
+ console.log("searchParams -- val,oldVal:", {val, oldVal})
71
+ console.log("searchParams -- val===oldVal:", val === oldVal)
72
+ //查询时重置页码
73
+ this.pageNum = 1
74
+ this.offset = 0
75
+ this.limit = 10
76
+ this.list = []
77
+
78
+ this.onLoad()
79
+ },
80
+ deep: true
81
+ }
82
+ },
83
+ methods: {
84
+ onLoad() {
85
+ if (this.refreshing) {
86
+ this.list = [];
87
+ this.refreshing = false;
88
+ }
89
+
90
+ let params = {offset: this.offset, limit: this.limit, ...this.searchParams}
91
+ axios.get(this.url, {params}).then(res => {
92
+ console.log("lambo-init-list -- onLoad -- loadData:", res)
93
+ if (res && res.code === 1) {
94
+ let pageData = res.data
95
+
96
+ if (pageData && pageData.rows.length > 0) {
97
+ for (let item of pageData.rows) {
98
+ if (this.list.length < pageData.total) {
99
+ this.list.push(item)
100
+ this.finished = false
101
+ } else {
102
+ this.finished = true // 数据加载完毕
103
+ }
104
+ }
105
+ this.offset = this.pageNum * 10
106
+ this.pageNum++;
107
+ this.finishedTxt = "没有更多了"
108
+ } else {
109
+ this.finished = true; // 数据加载完毕
110
+ }
111
+ this.loading = false; // 加载状态结束
112
+ } else {
113
+ console.error("lambo-init-list -- onLoad -- 查询[" + this.title + "]数据失败", res)
114
+ Toast.fail("查询[" + this.title + "]数据失败:" + res.data || '')
115
+ }
116
+ }).catch(err => {
117
+ console.error("lambo-init-list -- onLoad -- 查询[" + this.title + "]异常:", err)
118
+ Toast.fail("查询[" + this.url + "]数据异常")
119
+ })
120
+ },
121
+ getListHeight() {
122
+ const windowHeight = window.innerHeight;
123
+ this.listHeight = `${windowHeight * this.heightRatio}px`;
124
+ },
125
+ onRefresh() {
126
+ console.log("lambo-init-list -- onRefresh")
127
+
128
+ this.finished = false
129
+ this.pageNum = 1
130
+ this.offset = 0
131
+ this.limit = 10
132
+
133
+ this.loading = true
134
+ this.onLoad()
135
+ }
136
+ },
137
+ beforeDestroy() {
138
+ this.pageNum = 1
139
+ this.offset = 0
140
+ this.limit = 10
141
+ this.list = []
142
+ }
143
+ };
144
+ </script>
145
+ <style scoped>
146
+ @import "../styles/index.less";
147
+
148
+ /* 设置滚动条轨道颜色 */
149
+ ::-webkit-scrollbar-track {
150
+ background: rgba(231, 242, 250, 0.4);
151
+ border-radius: 3px;
152
+ }
153
+
154
+ /* 设置滚动条滑块颜色 */
155
+ ::-webkit-scrollbar-thumb {
156
+ background: rgba(45, 140, 240, 0.6);
157
+ }
158
+
159
+ /* 设置滚动条宽度 */
160
+ ::-webkit-scrollbar {
161
+ width: 6px;
162
+ }
163
+
164
+ .custom-list {
165
+ overflow-y: auto;
166
+ background-color: var(--scl-white-1);
167
+ padding: 0 8px 0 14px;
168
+ }
169
+
170
+ .list-item {
171
+ border-bottom: 1px solid var(--scl-gray-5);
172
+ }
173
+
174
+ .card-item {
175
+ padding: 20px 0 0 0;
176
+ background-color: var(--scl-white-1);
177
+ }
178
+
179
+ .top-btn-div {
180
+ display: flex;
181
+ flex-direction: row;
182
+ flex-wrap: wrap;
183
+ justify-content: flex-start;
184
+ align-items: center;
185
+ align-content: flex-start;
186
+ background-color: var(--scl-white-1);
187
+ }
188
+
189
+ .tab-btn-div {
190
+ display: flex;
191
+ flex-direction: row;
192
+ flex-wrap: wrap;
193
+ justify-content: flex-start;
194
+ align-items: center;
195
+ align-content: flex-start;
196
+ width: auto;
197
+ background-color: var(--scl-white-1);
198
+ }
199
+
200
+ .opt-btn-div {
201
+ display: flex;
202
+ flex-direction: row;
203
+ flex-wrap: wrap;
204
+ justify-content: flex-start;
205
+ align-items: center;
206
+ align-content: flex-start;
207
+ flex: 1;
208
+ margin: 10px 10px 10px 14px;
209
+ }
210
+
211
+ .filter-btn-div {
212
+ display: flex;
213
+ flex-direction: row;
214
+ flex-wrap: wrap;
215
+ justify-content: flex-end;
216
+ align-items: center;
217
+ align-content: flex-end;
218
+ width: 100px;
219
+ margin: 10px 14px 10px 10px;
220
+ }
221
+
222
+ .tabs-btn-div {
223
+ width: -webkit-fill-available;
224
+
225
+ }
226
+
227
+ /* 控制 .filter-btn-div 内的元素的左边距为 6px */
228
+ .filter-btn-div > * {
229
+ margin-left: 6px;
230
+ }
231
+
232
+ /* 控制 .opt-btn-div 内的元素的右边距为 6px */
233
+ .opt-btn-div > * {
234
+ margin-right: 6px;
235
+ }
236
+ </style>