meixioacomponent 0.1.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.
Files changed (128) hide show
  1. package/README.md +19 -0
  2. package/babel.config.js +5 -0
  3. package/lib/demo.html +10 -0
  4. package/lib/meixicomponent.common.js +40065 -0
  5. package/lib/meixicomponent.common.js.map +1 -0
  6. package/lib/meixicomponent.css +1 -0
  7. package/lib/meixicomponent.umd.js +40075 -0
  8. package/lib/meixicomponent.umd.js.map +1 -0
  9. package/lib/meixicomponent.umd.min.js +20 -0
  10. package/lib/meixicomponent.umd.min.js.map +1 -0
  11. package/package.json +37 -0
  12. package/packages/components/base/baseAnchor/baseAnchor.vue +156 -0
  13. package/packages/components/base/baseAnchor/index.js +6 -0
  14. package/packages/components/base/baseAppendix/baseAppendix.vue +78 -0
  15. package/packages/components/base/baseAppendix/index.js +7 -0
  16. package/packages/components/base/baseArea/area.js +14978 -0
  17. package/packages/components/base/baseArea/areaConfig.js +6 -0
  18. package/packages/components/base/baseArea/baseArea.vue +531 -0
  19. package/packages/components/base/baseArea/index.js +7 -0
  20. package/packages/components/base/baseAvatar/baseAvatar.vue +101 -0
  21. package/packages/components/base/baseAvatar/index.js +6 -0
  22. package/packages/components/base/baseButtonHandle/baseButtonHandle.vue +64 -0
  23. package/packages/components/base/baseButtonHandle/index.js +6 -0
  24. package/packages/components/base/baseDefaultSvg/baseDefaultSvg.vue +52 -0
  25. package/packages/components/base/baseDefaultSvg/index.js +7 -0
  26. package/packages/components/base/baseDialog/index.js +7 -0
  27. package/packages/components/base/baseDialog/index.vue +146 -0
  28. package/packages/components/base/baseDialogTable/dialogTable.vue +186 -0
  29. package/packages/components/base/baseDialogTable/index.js +7 -0
  30. package/packages/components/base/baseDrawer/index.js +8 -0
  31. package/packages/components/base/baseDrawer/index.vue +196 -0
  32. package/packages/components/base/baseEdito/baseEdito.vue +202 -0
  33. package/packages/components/base/baseEdito/index.js +6 -0
  34. package/packages/components/base/baseFixedHeader/baseFixedHeader.vue +168 -0
  35. package/packages/components/base/baseFixedHeader/index.js +6 -0
  36. package/packages/components/base/baseIcon/index.js +6 -0
  37. package/packages/components/base/baseIcon/index.vue +146 -0
  38. package/packages/components/base/baseImageViewer/image-viewer.vue +348 -0
  39. package/packages/components/base/baseImageViewer/index.js +7 -0
  40. package/packages/components/base/baseImg/baseImg.vue +160 -0
  41. package/packages/components/base/baseImg/index.js +6 -0
  42. package/packages/components/base/baseInforWrap/baseInforWrap.vue +66 -0
  43. package/packages/components/base/baseInforWrap/index.js +6 -0
  44. package/packages/components/base/baseLineInfoGroup/baseLineInfoGroup.vue +93 -0
  45. package/packages/components/base/baseLineInfoGroup/index.js +6 -0
  46. package/packages/components/base/baseLineInfoItem/baseLineInfoItem.vue +173 -0
  47. package/packages/components/base/baseLineInfoItem/index.js +6 -0
  48. package/packages/components/base/basePageHeader/basePageHeader.vue +55 -0
  49. package/packages/components/base/basePageHeader/index.js +6 -0
  50. package/packages/components/base/basePagination/index.js +6 -0
  51. package/packages/components/base/basePagination/index.vue +75 -0
  52. package/packages/components/base/basePlainTable/basePlainTable.vue +90 -0
  53. package/packages/components/base/basePlainTable/index.js +6 -0
  54. package/packages/components/base/baseSection/baseSection.vue +121 -0
  55. package/packages/components/base/baseSection/index.js +6 -0
  56. package/packages/components/base/baseSkeleton/baseSkeleton.vue +147 -0
  57. package/packages/components/base/baseSkeleton/index.js +6 -0
  58. package/packages/components/base/baseSvg/index.js +7 -0
  59. package/packages/components/base/baseSvg/index.vue +66 -0
  60. package/packages/components/base/baseTimeTypeSelect/base_time_type_select.vue +293 -0
  61. package/packages/components/base/baseTimeTypeSelect/config.js +47 -0
  62. package/packages/components/base/baseTimeTypeSelect/index.js +6 -0
  63. package/packages/components/base/baseToggle/index.js +7 -0
  64. package/packages/components/base/baseToggle/toggle.vue +131 -0
  65. package/packages/components/base/baseUpload/baseUpload.js +6 -0
  66. package/packages/components/base/baseUpload/baseUpload.vue +111 -0
  67. package/packages/components/base/baseUpload/baseUploadItem.js +6 -0
  68. package/packages/components/base/baseUpload/baseUploadItem.vue +205 -0
  69. package/packages/components/base/baseUpload/mixins.js +46 -0
  70. package/packages/components/base/brieflyItem.vue +198 -0
  71. package/packages/components/base/upload/index.js +6 -0
  72. package/packages/components/base/upload/upload.vue +245 -0
  73. package/packages/components/base/upload/uploadItem.vue +157 -0
  74. package/packages/components/dynamicmount/DynamicMount.js +55 -0
  75. package/packages/components/dynamicmount/dynamicMount.vue +95 -0
  76. package/packages/components/dynamicmount/index.js +46 -0
  77. package/packages/components/index.js +114 -0
  78. package/packages/components/proForm/dialogForm/baseDialogForm.vue +163 -0
  79. package/packages/components/proForm/dialogForm/dialogFormIndex.js +6 -0
  80. package/packages/components/proForm/proForm/index.js +6 -0
  81. package/packages/components/proForm/proForm/pro_form.vue +279 -0
  82. package/packages/components/proForm/proForm/pro_form_item.vue +459 -0
  83. package/packages/components/proForm/proFormWrap/index.js +6 -0
  84. package/packages/components/proForm/proFormWrap/pro_form_wrap.vue +83 -0
  85. package/packages/components/proPageTable/index.js +6 -0
  86. package/packages/components/proPageTable/oa_pro-table-search.vue +190 -0
  87. package/packages/components/proPageTable/oa_pro_colum_config.vue +219 -0
  88. package/packages/components/proPageTable/oa_pro_footer.vue +104 -0
  89. package/packages/components/proPageTable/oa_pro_header.vue +31 -0
  90. package/packages/components/proPageTable/oa_pro_screen.vue +81 -0
  91. package/packages/components/proPageTable/oa_pro_screen_item.vue +174 -0
  92. package/packages/components/proPageTable/oa_pro_table-header.vue +150 -0
  93. package/packages/components/proPageTable/oa_pro_table.vue +804 -0
  94. package/packages/components/proPageTable/oa_pro_table_skeleton.vue +33 -0
  95. package/packages/components/searchHeader/searchHeader.vue +118 -0
  96. package/packages/config/selectStore/SelectStore.js +24 -0
  97. package/packages/config/selectStore/UseSelectStoreClass.js +27 -0
  98. package/packages/config/selectStore/testSelectStore.js +40 -0
  99. package/packages/config/uploadRequest.js +66 -0
  100. package/packages/config/use/UseImg.js +39 -0
  101. package/packages/config/use/UseSelectStore.js +2 -0
  102. package/packages/config/use/UseUpload.js +47 -0
  103. package/packages/config/use/useFixedHeader.js +36 -0
  104. package/packages/utils/upload.js +35 -0
  105. package/packages/utils/uploadRequest.js +66 -0
  106. package/packages/utils/utils.js +186 -0
  107. package/public/favicon.ico +0 -0
  108. package/public/img/icons/android-chrome-192x192.png +0 -0
  109. package/public/img/icons/android-chrome-512x512.png +0 -0
  110. package/public/img/icons/android-chrome-maskable-192x192.png +0 -0
  111. package/public/img/icons/android-chrome-maskable-512x512.png +0 -0
  112. package/public/img/icons/apple-touch-icon-120x120.png +0 -0
  113. package/public/img/icons/apple-touch-icon-152x152.png +0 -0
  114. package/public/img/icons/apple-touch-icon-180x180.png +0 -0
  115. package/public/img/icons/apple-touch-icon-60x60.png +0 -0
  116. package/public/img/icons/apple-touch-icon-76x76.png +0 -0
  117. package/public/img/icons/apple-touch-icon.png +0 -0
  118. package/public/img/icons/favicon-16x16.png +0 -0
  119. package/public/img/icons/favicon-32x32.png +0 -0
  120. package/public/img/icons/msapplication-icon-144x144.png +0 -0
  121. package/public/img/icons/mstile-150x150.png +0 -0
  122. package/public/img/icons/safari-pinned-tab.svg +3 -0
  123. package/public/index.html +17 -0
  124. package/public/robots.txt +2 -0
  125. package/src/assets/logo.png +0 -0
  126. package/src/main.js +9 -0
  127. package/src/router/index.js +29 -0
  128. package/src/store/index.js +15 -0
@@ -0,0 +1,190 @@
1
+ <template>
2
+ <div class="oa-pro-table-search-content" ref="oaProTableSearchContent">
3
+ <searchHeaderVue
4
+ v-model="module"
5
+ :placeholder="placeholder"
6
+ :searchList="screenList"
7
+ @handleSearch="handleSearch"
8
+ @handleScreen="handleScreen"
9
+ >
10
+ <el-button
11
+ size="medium"
12
+ :class="{
13
+ 'is-plain': !showProScreenList,
14
+ }"
15
+ :disabled="_proScreenList.length <= 0"
16
+ @click="handleProScreenList"
17
+ :type="showProScreenList ? 'primary' : 'info'"
18
+ >{{ handleScreenText }} <i :class="handleScreenIcon"></i>
19
+ </el-button>
20
+ <el-button size="medium" plain type="info" @click="handleOpenProScreen">
21
+ <i class="iconfont icon-shaixuan"></i>高级筛选
22
+ </el-button>
23
+ </searchHeaderVue>
24
+
25
+ <div class="search-mid-content" v-show="showProScreenList">
26
+ <el-card class="box-card">
27
+ <span class="tips-text">筛选条件</span>
28
+ <div class="screen-item-wrap">
29
+ <oa_pro_screen_itemVue
30
+ :key="index"
31
+ :item="item"
32
+ :disable="true"
33
+ :config="proScreenConfig"
34
+ style="width: 50%"
35
+ v-for="(item, index) in _proScreenList"
36
+ ></oa_pro_screen_itemVue>
37
+ </div>
38
+ <baseButtonHandle
39
+ :size="`mini`"
40
+ :align="`start`"
41
+ :config="footerHandleConfig"
42
+ ></baseButtonHandle>
43
+ </el-card>
44
+ </div>
45
+ </div>
46
+ </template>
47
+
48
+ <script>
49
+ import oa_pro_screen_itemVue from "./oa_pro_screen_item.vue";
50
+ import searchHeaderVue from "../searchHeader/searchHeader.vue";
51
+ import baseButtonHandle from "../base/baseButtonHandle/baseButtonHandle.vue";
52
+ export default {
53
+ data() {
54
+ return {
55
+ showProScreen: false,
56
+ showProScreenList: false,
57
+ footerHandleConfig: [],
58
+ };
59
+ },
60
+ created() {
61
+ this.initFooterHandleList();
62
+ },
63
+ props: {
64
+ value: {},
65
+ keyWords: {},
66
+ placeholder: {},
67
+ /*
68
+ 快捷筛选的列表
69
+ */
70
+ screenList: {},
71
+
72
+ proScreenList: {},
73
+
74
+ proScreenConfig: {},
75
+ },
76
+ components: {
77
+ searchHeaderVue,
78
+ baseButtonHandle,
79
+ oa_pro_screen_itemVue,
80
+ },
81
+ computed: {
82
+ handleScreenIcon() {
83
+ return this.showProScreenList ? "el-icon-arrow-up" : "el-icon-arrow-down";
84
+ },
85
+ handleScreenText() {
86
+ return this.showProScreenList ? "收起筛选" : "展开筛选";
87
+ },
88
+
89
+ _proScreenList() {
90
+ return this.$props.proScreenList.filter((item) => {
91
+ return item.exposed;
92
+ });
93
+ },
94
+
95
+ module: {
96
+ get() {
97
+ return this.$props.value;
98
+ },
99
+ set(val) {
100
+ this.$emit("input", val);
101
+ },
102
+ },
103
+ },
104
+ methods: {
105
+ handleSearch() {
106
+ this.$parent.startHttp();
107
+ },
108
+ handleProScreenList() {
109
+ this.showProScreenList = !this.showProScreenList;
110
+ this.computedHeight();
111
+ },
112
+ handleScreen(index) {
113
+ this.$parent.handleScreen(index);
114
+ },
115
+ computedHeight() {
116
+ this.$nextTick(() => {
117
+ this.$emit(
118
+ "searchContentHeightChange",
119
+ this.$refs.oaProTableSearchContent.clientHeight
120
+ );
121
+ });
122
+ },
123
+ handleOpenProScreen() {
124
+ this.$parent.handleOpenProScreen();
125
+ },
126
+
127
+ // 尾部按钮
128
+ initFooterHandleList() {
129
+ this.footerHandleConfig = [
130
+ {
131
+ text: "确定",
132
+ type: "primary",
133
+ plain: false,
134
+ click: () => {
135
+ this.$parent.startHttp();
136
+ },
137
+ },
138
+ {
139
+ text: "清空条件",
140
+ type: "info",
141
+ plain: true,
142
+ click: () => {
143
+ this.$parent.cleanProscreenCondition();
144
+ this.$nextTick(() => {
145
+ this.$parent.startHttp();
146
+ });
147
+ },
148
+ },
149
+ ];
150
+ },
151
+ },
152
+ };
153
+ </script>
154
+
155
+ <style lang="less" scoped>
156
+ .oa-pro-table-search-content {
157
+ width: 100%;
158
+ height: auto;
159
+ padding: calc(var(--padding-5) * 2) 0px;
160
+
161
+ .search-mid-content {
162
+ width: 100%;
163
+ height: auto;
164
+ margin-top: var(--margin-5);
165
+ background: var(--bg-white);
166
+ .box-card {
167
+ width: 100%;
168
+ height: 100%;
169
+ .tips-text {
170
+ display: block;
171
+ color: var(--font-color-d);
172
+ font-size: var(--font-size-base);
173
+ }
174
+ .screen-item-wrap {
175
+ width: 100%;
176
+ display: flex;
177
+ flex-flow: row wrap;
178
+ align-items: center;
179
+ margin-top: var(--margin-4);
180
+ justify-content: flex-start;
181
+ }
182
+ }
183
+ // padding: var(--padding-5) 0px;
184
+ }
185
+ .icon-shaixuan {
186
+ color: var(--icon-color-s);
187
+ margin-right: var(--margin-2);
188
+ }
189
+ }
190
+ </style>
@@ -0,0 +1,219 @@
1
+ <template>
2
+ <el-dropdown
3
+ slot="suffix"
4
+ trigger="click"
5
+ ref="dropdown"
6
+ @visible-change="setDragConfigList"
7
+ >
8
+ <el-button
9
+ type="info"
10
+ size="small"
11
+ class="dropdown-button"
12
+ icon="el-icon-s-operation"
13
+ plain
14
+ ></el-button>
15
+ <el-dropdown-menu slot="dropdown">
16
+ <div class="config-wrap">
17
+ <span class="tips-text">显示列表项</span>
18
+ <div class="config-content">
19
+ <!-- 显示被固定在头部的列表 -->
20
+ <div class="fixed">
21
+ <div
22
+ class="config-item-wrap"
23
+ :key="index"
24
+ v-for="(item, index) in lockConfigList"
25
+ >
26
+ <div class="item-left" @click="showTableColum(item)">
27
+ <el-checkbox
28
+ v-model="item.show"
29
+ :disabled="item.lock"
30
+ ></el-checkbox>
31
+ <span class="item-text">{{ item.label }}</span>
32
+ </div>
33
+ </div>
34
+ </div>
35
+ <!-- 可以拖拽的列表 -->
36
+
37
+ <div class="drag">
38
+ <draggable
39
+ element="div"
40
+ v-model="dragConfigList"
41
+ animation="500"
42
+ @start="onStart"
43
+ @end="onEnd"
44
+ >
45
+ <div
46
+ class="config-item-wrap"
47
+ :key="index"
48
+ v-for="(item, index) in dragConfigList"
49
+ >
50
+ <div class="item-left" @click.self="showTableColum(item)">
51
+ <el-checkbox
52
+ v-model="item.show"
53
+ :disabled="item.lock"
54
+ ></el-checkbox>
55
+ <span class="item-text">{{ item.label }}</span>
56
+ </div>
57
+ <div class="item-right">
58
+ <base-icon
59
+ :name="`icon-tuozhuai`"
60
+ :size="`s`"
61
+ :color="`m`"
62
+ ></base-icon>
63
+ </div>
64
+ </div>
65
+ </draggable>
66
+ </div>
67
+ </div>
68
+ <baseButtonHandle
69
+ :align="`end`"
70
+ :size="`mini`"
71
+ class="config-footer"
72
+ :config="handleConfig"
73
+ ></baseButtonHandle>
74
+ </div>
75
+ </el-dropdown-menu>
76
+ </el-dropdown>
77
+ </template>
78
+
79
+ <script>
80
+ import draggable from "vuedraggable";
81
+
82
+ import baseButtonHandle from "../base/baseButtonHandle/baseButtonHandle.vue";
83
+ export default {
84
+ data() {
85
+ return {
86
+ handleConfig: [],
87
+ dragConfigList: [],
88
+ isDrag: false,
89
+ };
90
+ },
91
+ created() {
92
+ this.handleConfig = [
93
+ {
94
+ text: "取消",
95
+ type: "info",
96
+ plain: true,
97
+ click: () => {
98
+ this.$refs.dropdown.hide();
99
+ },
100
+ },
101
+ {
102
+ text: "确定",
103
+ type: "primary",
104
+ plain: false,
105
+ click: () => {
106
+ this.setTableHeaderConfig();
107
+ },
108
+ },
109
+ ];
110
+ },
111
+ components: {
112
+ draggable,
113
+ baseButtonHandle,
114
+ },
115
+ props: {
116
+ config: {
117
+ type: Array,
118
+ require: true,
119
+ },
120
+ },
121
+ computed: {
122
+ lockConfigList() {
123
+ return this.$props.config.filter((item) => {
124
+ return item.lock;
125
+ });
126
+ },
127
+ },
128
+ methods: {
129
+ onEnd() {
130
+ this.isDrag = true;
131
+ },
132
+ onStart() {},
133
+ setDragConfigList(event) {
134
+ if (event) {
135
+ this.isDrag = false;
136
+ this.dragConfigList = [];
137
+ this.dragConfigList = this.$props.config.filter((item) => {
138
+ return item.key != "noData" && !item.lock;
139
+ });
140
+ }
141
+ },
142
+ showTableColum(item) {
143
+ if (item.lock) return;
144
+ item.show = !item.show;
145
+ },
146
+ setTableHeaderConfig() {
147
+ if (this.isDrag) {
148
+ this.$emit("setTableHeaderConfig", this.dragConfigList);
149
+ }
150
+ this.$refs.dropdown.hide();
151
+ },
152
+ },
153
+ };
154
+ </script>
155
+
156
+ <style lang="less" scoped>
157
+ .config-wrap {
158
+ width: 240px;
159
+ height: auto;
160
+ max-height: 370px;
161
+ background: inherit;
162
+ box-sizing: border-box;
163
+ // padding: 0px var(--padding-5);
164
+ .tips-text {
165
+ color: var(--font-color-m);
166
+ padding-left: var(--padding-5);
167
+ margin-bottom: var(--margin-5);
168
+ font-size: var(--font-size-s);
169
+ }
170
+ .config-content {
171
+ width: 100%;
172
+ overflow-y: auto;
173
+ max-height: calc(100% - 46px);
174
+ .config-item-wrap {
175
+ width: 100%;
176
+ height: 34px;
177
+ display: flex;
178
+ cursor: pointer;
179
+ align-items: center;
180
+ flex-flow: row nowrap;
181
+ box-sizing: border-box;
182
+ justify-content: space-between;
183
+ padding: 0px var(--padding-5);
184
+ &:hover {
185
+ background: var(--hover-light-primary);
186
+ }
187
+ .item-right,
188
+ .item-left {
189
+ height: 100%;
190
+ display: flex;
191
+ align-items: center;
192
+ flex-flow: row nowrap;
193
+ justify-content: center;
194
+ }
195
+ .item-left {
196
+ width: 80%;
197
+ justify-content: flex-start;
198
+ .item-text {
199
+ color: var(--font-color-d);
200
+ font-size: var(--font-size-s);
201
+ margin-left: var(--margin-5);
202
+ }
203
+ }
204
+ .item-right {
205
+ width: 20%;
206
+ cursor: move;
207
+ /deep/ .base-icon-wrap {
208
+ cursor: inherit !important;
209
+ }
210
+ }
211
+ }
212
+ }
213
+ .config-footer {
214
+ height: 30px;
215
+ box-sizing: border-box;
216
+ padding: 0px var(--padding-5);
217
+ }
218
+ }
219
+ </style>
@@ -0,0 +1,104 @@
1
+ <template>
2
+ <div class="oa-pro-footer-content">
3
+ <div class="footer-left">
4
+ <div class="total-item" :key="index" v-for="(item, index) in totalList">
5
+ <span class="item-name">{{ item.label }} : </span>
6
+ <span class="item-number">{{ item.total }}</span>
7
+ </div>
8
+ </div>
9
+ <div class="footer-right">
10
+ <base-pagination
11
+ :config="pageConfig"
12
+ :pageProps="pageProps"
13
+ @sizeChange="sizeChange"
14
+ @currentChange="currentChange"
15
+ ></base-pagination>
16
+ </div>
17
+ </div>
18
+ </template>
19
+
20
+ <script>
21
+ export default {
22
+ data() {
23
+ return {};
24
+ },
25
+ props: {
26
+ totalList: {
27
+ type: Array,
28
+ },
29
+ pageProps: {
30
+ type: Object,
31
+ },
32
+ pageConfig: {
33
+ type: Object,
34
+ },
35
+ },
36
+ methods: {
37
+ sizeChange(e) {
38
+ this.$emit("pageSizeChange");
39
+ this.$parent.startHttp();
40
+ },
41
+ currentChange() {
42
+ this.$emit("pageCurrentChange");
43
+ this.$parent.startHttp(false);
44
+ },
45
+ },
46
+ };
47
+ </script>
48
+
49
+ <style lang="less" scoped>
50
+ .oa-pro-footer-content {
51
+ width: 100%;
52
+ height: 100%;
53
+ display: flex;
54
+ align-items: center;
55
+ flex-flow: row nowrap;
56
+ background: inherit;
57
+ justify-content: space-between;
58
+
59
+ .footer-left,
60
+ .footer-right {
61
+ width: 40%;
62
+ height: 100%;
63
+ }
64
+ .footer-left {
65
+ display: flex;
66
+ align-items: center;
67
+ flex-flow: row nowrap;
68
+ justify-content: flex-start;
69
+ .total-item {
70
+ width: auto;
71
+ .item-name {
72
+ color: var(--font-color-m);
73
+ margin-right: var(--margin-2);
74
+ font-size: calc(var(--font-size-base));
75
+ }
76
+ .item-number {
77
+ color: var(--font-color-d);
78
+ font-size: var(--font-size-base);
79
+ font-weight: var(--font-weight-g);
80
+ }
81
+ }
82
+ .total-item + .total-item {
83
+ margin-left: var(--margin-5);
84
+ &::before {
85
+ content: "/";
86
+ color: var(--font-color-d);
87
+ margin-right: var(--margin-5);
88
+ font-size: var(--font-size-base);
89
+ font-weight: var(--font-weight-g);
90
+ }
91
+ }
92
+ }
93
+ .footer-right {
94
+ width: 60%;
95
+ display: flex;
96
+ align-items: center;
97
+ flex-flow: row nowrap;
98
+ justify-content: flex-end;
99
+ /deep/ .page-wrap {
100
+ justify-content: flex-end;
101
+ }
102
+ }
103
+ }
104
+ </style>
@@ -0,0 +1,31 @@
1
+ <template>
2
+ <basePageHeaderVue :headerText="headerText">
3
+ <template slot="prefix">
4
+ <slot name="prefix"></slot>
5
+ </template>
6
+ <div slot="header-wrap-right" class="header-wrap-right">
7
+ <slot name="headerExtend"></slot>
8
+ <slot name="suffix"></slot>
9
+ </div>
10
+ </basePageHeaderVue>
11
+ </template>
12
+
13
+ <script>
14
+ import basePageHeaderVue from "../base/basePageHeader/basePageHeader.vue";
15
+ export default {
16
+ data() {
17
+ return {};
18
+ },
19
+ props: {
20
+ headerText: {
21
+ type: String,
22
+ require: true,
23
+ },
24
+ },
25
+ components: {
26
+ basePageHeaderVue,
27
+ },
28
+ };
29
+ </script>
30
+
31
+ <style lang="less" scoped></style>
@@ -0,0 +1,81 @@
1
+ <template>
2
+ <div class="oa-pro-screen-content">
3
+ <span class="tips-text">筛选条件</span>
4
+ <div class="screen-item-content" ref="screenItemContent">
5
+ <oa_pro_screen_itemVue
6
+ :item="item"
7
+ :key="index"
8
+ ref="oaProScreenItemVue"
9
+ :config="proScreenConfig"
10
+ :configIndex="item.configIndex < 0 ? null : item.configIndex"
11
+ v-for="(item, index) in proScreenList"
12
+ @deleteProscreenItem="deleteProscreenItem(index)"
13
+ ></oa_pro_screen_itemVue>
14
+ </div>
15
+ <div class="screen-handle-wrap">
16
+ <el-button type="text" @click="insertDefaultItem">
17
+ <i class="el-icon-plus"></i>
18
+ 添加筛选条件</el-button
19
+ >
20
+ </div>
21
+ </div>
22
+ </template>
23
+
24
+ <script>
25
+ import oa_pro_screen_itemVue from "./oa_pro_screen_item.vue";
26
+ export default {
27
+ data() {
28
+ return {};
29
+ },
30
+ mounted() {
31
+ this.init();
32
+ },
33
+ components: {
34
+ oa_pro_screen_itemVue,
35
+ },
36
+ props: {
37
+ proScreenList: [],
38
+ proScreenConfig: {},
39
+ },
40
+ methods: {
41
+ init() {
42
+ if (this.$props.proScreenList.length == 0) {
43
+ this.insertDefaultItem();
44
+ }
45
+ },
46
+ insertDefaultItem() {
47
+ this.$emit("insertDefaultItem");
48
+ this.$nextTick(() => {
49
+ this.$refs.screenItemContent.scrollTop = 9999999;
50
+ });
51
+ },
52
+ deleteProscreenItem(index) {
53
+ this.$emit("deleteProscreenItem", index);
54
+ },
55
+ },
56
+ };
57
+ </script>
58
+
59
+ <style lang="less">
60
+ .oa-pro-screen-content {
61
+ width: 100%;
62
+ height: auto;
63
+ max-height: 100%;
64
+ background: var(--bg-white);
65
+ .tips-text {
66
+ color: var(--font-color-d);
67
+ font-size: var(--font-size-base);
68
+ }
69
+ .screen-item-content {
70
+ width: 100%;
71
+ height: auto;
72
+ overflow-y: auto;
73
+ margin-top: var(--margin-5);
74
+ max-height: calc(250px - 70px);
75
+ }
76
+ .screen-handle-wrap {
77
+ width: 100%;
78
+ height: 42px;
79
+ }
80
+ }
81
+ </style>