meixioacomponent 0.4.2 → 0.4.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.
Files changed (56) hide show
  1. package/lib/meixioacomponent.common.js +16241 -19856
  2. package/lib/meixioacomponent.umd.js +16353 -19968
  3. package/lib/meixioacomponent.umd.min.js +33 -34
  4. package/lib/style/element/index.css +1182 -1153
  5. package/lib/style/theme/light.less +5 -4
  6. package/package.json +2 -2
  7. package/packages/components/base/baseCropper/index.vue +2 -1
  8. package/packages/components/base/baseDialog/index.vue +13 -7
  9. package/packages/components/base/baseDrawer/index.vue +5 -2
  10. package/packages/components/base/baseIcon/index.vue +1 -2
  11. package/packages/components/base/baseList/index.js +6 -0
  12. package/packages/components/base/baseList/index.vue +48 -0
  13. package/packages/components/base/baseList/scrollbar/index.js +8 -0
  14. package/packages/components/base/baseList/scrollbar/src/bar.js +92 -0
  15. package/packages/components/base/baseList/scrollbar/src/main.js +150 -0
  16. package/packages/components/base/baseList/scrollbar/src/util.js +34 -0
  17. package/packages/components/base/baseNumberInput/index.js +6 -0
  18. package/packages/components/base/baseNumberInput/index.vue +191 -0
  19. package/packages/components/base/basePlainTable/basePlainTable.vue +78 -12
  20. package/packages/components/base/basePopoverButton/index.vue +1 -1
  21. package/packages/components/base/baseSection/baseSection.vue +24 -11
  22. package/packages/components/base/baseSingleImgUpload/index.js +6 -0
  23. package/packages/components/base/baseSingleImgUpload/index.vue +147 -0
  24. package/packages/components/base/baseStoreSelect/index.js +6 -0
  25. package/packages/components/base/baseStoreSelect/index.vue +159 -0
  26. package/packages/components/base/baseToggle/toggle.vue +22 -3
  27. package/packages/components/base/baseTreeSelect/index.vue +7 -1
  28. package/packages/components/base/baseUpload/baseUpload.vue +23 -0
  29. package/packages/components/base/baseUpload/baseUploadItem.vue +2 -3
  30. package/packages/components/base/baseUpload/mixins.js +12 -2
  31. package/packages/components/base/baseUploadTemplate/index.vue +19 -3
  32. package/packages/components/base/upload/upload.vue +36 -13
  33. package/packages/components/base/upload/uploadItem.vue +40 -17
  34. package/packages/components/dynamicmount/index.js +30 -29
  35. package/packages/components/index.js +19 -2
  36. package/packages/components/proForm/dialogForm/baseDialogForm.vue +29 -19
  37. package/packages/components/proForm/proForm/proFormItem/index.js +6 -0
  38. package/packages/components/proForm/proForm/{pro_form_item.vue → proFormItem/pro_form_item.vue} +161 -99
  39. package/packages/components/proForm/proForm/pro_form.vue +70 -16
  40. package/packages/components/proForm/proFormWrap/pro_form_wrap.vue +70 -28
  41. package/packages/components/proPageTable/oa_pro_colum_config.vue +24 -28
  42. package/packages/components/proPageTable/oa_pro_footer.vue +12 -10
  43. package/packages/components/proPageTable/oa_pro_screen.vue +1 -0
  44. package/packages/components/proPageTable/oa_pro_screen_item.vue +6 -6
  45. package/packages/components/proPageTable/oa_pro_table.vue +44 -20
  46. package/packages/components/style/element/index.css +1182 -1153
  47. package/packages/components/style/theme/light.less +5 -4
  48. package/packages/config/selectStore/SelectStore.js +26 -17
  49. package/packages/config/uploadRequest.js +1 -0
  50. package/packages/utils/upload.js +22 -21
  51. package/packages/utils/utils.js +110 -111
  52. package/src/App.vue +9 -14
  53. package/src/component/test.vue +333 -233
  54. package/src/component/testSelectStore.js +25 -13
  55. package/src/config/CompanyInfoConfig.js +4 -2
  56. package/packages/components/base/brieflyItem.vue +0 -198
@@ -23,35 +23,42 @@
23
23
  :rules="rules"
24
24
  :footer="false"
25
25
  v-model="formList"
26
+ :formType="formType"
26
27
  :disabled="disabled"
27
28
  :rowNumber="rowNumber"
29
+ :disables="disables"
28
30
  :labelWidth="labelWidth"
31
+ :labelPosition="labelPosition"
32
+ :formConfig="formConfig"
33
+ :isDialogForm="true"
29
34
  @formItemConfirm="formItemConfirm"
35
+ @onDragEnd="onDragEnd(formConfig)"
36
+ @disableWatcherResult="disableWatcherResult"
30
37
  >
31
38
  <template v-for="slotItem in slotList">
32
39
  <template :slot="`form-${slotItem}`">
33
40
  <slot :scope="formList" :name="`formslot-${slotItem}`"></slot>
34
41
  </template>
35
42
  </template>
36
- </pro_formVue> </template
37
- ></baseSectionVue>
43
+ </pro_formVue>
44
+ </template>
45
+ </baseSectionVue>
38
46
  </div>
39
47
  </template>
40
48
 
41
49
  <script>
42
- import pro_formVue from "../proForm/pro_form.vue";
43
- import baseSectionVue from "../../base/baseSection/baseSection.vue";
50
+ import pro_formVue from '../proForm/pro_form.vue'
51
+ import baseSectionVue from '../../base/baseSection/baseSection.vue'
44
52
  export default {
45
- name: "baseFormWrap",
53
+ name: 'baseFormWrap',
46
54
  data() {
47
55
  return {
48
56
  slotList: [],
49
57
  sectionOpen: true,
50
- };
58
+ }
51
59
  },
52
60
  created() {
53
- this.createSlots();
54
- console.log(this.slotList);
61
+ this.createSlots()
55
62
  },
56
63
  props: {
57
64
  disabled: {
@@ -66,10 +73,13 @@ export default {
66
73
  type: String,
67
74
  require: true,
68
75
  },
69
-
76
+ labelPosition: {
77
+ type: String,
78
+ default: `right`,
79
+ },
70
80
  labelWidth: {
71
81
  type: String,
72
- default: "100px",
82
+ default: '100px',
73
83
  },
74
84
 
75
85
  formList: {
@@ -85,15 +95,23 @@ export default {
85
95
  },
86
96
  size: {
87
97
  type: String,
88
- default: "small",
98
+ default: 'small',
99
+ },
100
+ formType: {
101
+ type: String,
102
+ default: 'default',
103
+ },
104
+ disables: {
105
+ type: Object,
89
106
  },
107
+ formConfig: {},
90
108
  },
91
109
  computed: {
92
110
  iconClass() {
93
111
  if (this.sectionOpen) {
94
- return "meixicomponenticon-shouqi";
112
+ return 'meixicomponenticon-shouqi'
95
113
  }
96
- return "meixicomponenticon-xiala";
114
+ return 'meixicomponenticon-xiala'
97
115
  },
98
116
  },
99
117
  components: {
@@ -102,38 +120,62 @@ export default {
102
120
  },
103
121
  methods: {
104
122
  createSlots() {
105
- let slotList = this.slotList;
106
- let formList = this.$props.formList;
123
+ this.slotList = []
124
+ let slotList = this.slotList
125
+ let formList = this.$props.formList
107
126
  for (let i = 0; i < formList.length; i++) {
108
- let citem = formList[i];
109
- if (citem.type == "template") {
110
- slotList.push(citem.key);
127
+ let citem = formList[i]
128
+ if (citem.type == 'template') {
129
+ slotList.push(citem.key)
111
130
  }
112
131
  }
113
132
  },
114
133
 
134
+ disableWatcherResult(params) {
135
+ this.$nextTick(() => {
136
+ const { result, type, key } = params
137
+ const { formList } = this.$props
138
+ let index = formList.findIndex((citem) => {
139
+ return citem.key == key
140
+ })
141
+ const formItem = formList[index]
142
+ if (type == 'hide') {
143
+ this.$set(formItem, 'renderHide', result)
144
+ } else if (type == 'disable') {
145
+ this.$set(formItem, 'disabled', result)
146
+ } else if (type == 'template') {
147
+ formItem.type = result
148
+ this.createSlots()
149
+ }
150
+ })
151
+ },
152
+
115
153
  async checkValidate() {
116
- let refs = this.$refs.proForm;
117
- let validateResult = true;
118
- let validate = await refs.checkValidate();
119
- validateResult = validate.result;
154
+ let refs = this.$refs.proForm
155
+ let validateResult = true
156
+ let validate = await refs.checkValidate()
157
+ validateResult = validate.result
120
158
  if (!validateResult) {
121
- return validateResult;
159
+ return validateResult
122
160
  }
123
- return validateResult;
161
+ return validateResult
124
162
  },
125
163
  handleSection() {
126
- this.sectionOpen = !this.sectionOpen;
164
+ this.sectionOpen = !this.sectionOpen
127
165
  },
128
166
  formItemConfirm(configItem) {
129
- this.$emit("formItemConfirm", configItem);
167
+ this.$emit('formItemConfirm', configItem)
130
168
  },
131
169
 
132
170
  getFormValue() {
133
- return this.$refs.proForm.returnFormValue();
171
+ return this.$refs.proForm.returnFormValue()
172
+ },
173
+
174
+ onDragEnd(value) {
175
+ this.$emit('onDragEnd', value)
134
176
  },
135
177
  },
136
- };
178
+ }
137
179
  </script>
138
180
 
139
181
  <style lang="less" scoped>
@@ -27,34 +27,27 @@
27
27
  <!-- 可以拖拽的列表 -->
28
28
 
29
29
  <div class="drag">
30
- <draggable
31
- element="div"
32
- v-model="dragConfigList"
33
- animation="500"
34
- @start="onStart"
35
- @end="onEnd"
30
+ <div
31
+ :key="index"
32
+ class="config-item-wrap"
33
+ v-for="(item, index) in dragConfigList"
34
+ v-dragging="{ item: item, list: dragConfigList }"
36
35
  >
37
- <div
38
- class="config-item-wrap"
39
- :key="index"
40
- v-for="(item, index) in dragConfigList"
41
- >
42
- <div class="item-left" @click.self="showTableColum(item)">
43
- <el-checkbox
44
- v-model="item.show"
45
- :disabled="item.lock"
46
- ></el-checkbox>
47
- <span class="item-text">{{ item.label }}</span>
48
- </div>
49
- <div class="item-right">
50
- <base-icon
51
- :name="`meixicomponenticon-tuozhuai`"
52
- :size="`s`"
53
- :color="`m`"
54
- ></base-icon>
55
- </div>
36
+ <div class="item-left" @click.self="showTableColum(item)">
37
+ <el-checkbox
38
+ v-model="item.show"
39
+ :disabled="item.lock"
40
+ ></el-checkbox>
41
+ <span class="item-text">{{ item.label }}</span>
42
+ </div>
43
+ <div class="item-right">
44
+ <base-icon
45
+ :name="`meixicomponenticon-tuozhuai`"
46
+ :size="`s`"
47
+ :color="`m`"
48
+ ></base-icon>
56
49
  </div>
57
- </draggable>
50
+ </div>
58
51
  </div>
59
52
  </div>
60
53
  <baseButtonHandle
@@ -68,7 +61,6 @@
68
61
  </template>
69
62
 
70
63
  <script>
71
- import draggable from 'vuedraggable'
72
64
  import baseButtonHandle from '../base/baseButtonHandle/baseButtonHandle.vue'
73
65
  export default {
74
66
  data() {
@@ -99,8 +91,12 @@ export default {
99
91
  },
100
92
  ]
101
93
  },
94
+ mounted() {
95
+ this.$dragging.$on('dragged', ({ value }) => {
96
+ this.onEnd()
97
+ })
98
+ },
102
99
  components: {
103
- draggable,
104
100
  baseButtonHandle,
105
101
  },
106
102
  props: {
@@ -2,9 +2,11 @@
2
2
  <div class="oa-pro-footer-content">
3
3
  <div class="footer-left">
4
4
  <div class="total-item" :key="index" v-for="(item, index) in totalList">
5
- <span class="item-name">{{ item.label }} : </span>
5
+ <span class="item-name">{{ item.label }} :</span>
6
6
  <span class="item-number">{{ item.total }}</span>
7
7
  </div>
8
+
9
+ <slot name="footer-slot"></slot>
8
10
  </div>
9
11
  <div class="footer-right">
10
12
  <basePopoverButton
@@ -29,13 +31,13 @@
29
31
  </template>
30
32
 
31
33
  <script>
32
- import basePopoverButton from "../base/basePopoverButton/index.vue";
33
- import oa_pro_handle_table_borderVue from "./oa_pro_handle_table_border.vue";
34
+ import basePopoverButton from '../base/basePopoverButton/index.vue'
35
+ import oa_pro_handle_table_borderVue from './oa_pro_handle_table_border.vue'
34
36
  export default {
35
37
  data() {
36
38
  return {
37
39
  popoverFlag: false,
38
- };
40
+ }
39
41
  },
40
42
  props: {
41
43
  totalList: {
@@ -54,15 +56,15 @@ export default {
54
56
  },
55
57
  methods: {
56
58
  sizeChange(e) {
57
- this.$emit("pageSizeChange");
58
- this.$parent.refreshData();
59
+ this.$emit('pageSizeChange')
60
+ this.$parent.refreshData()
59
61
  },
60
62
  currentChange() {
61
- this.$emit("pageCurrentChange");
62
- this.$parent.refreshData(false);
63
+ this.$emit('pageCurrentChange')
64
+ this.$parent.refreshData(false)
63
65
  },
64
66
  },
65
- };
67
+ }
66
68
  </script>
67
69
 
68
70
  <style lang="less" scoped>
@@ -101,7 +103,7 @@ export default {
101
103
  .total-item + .total-item {
102
104
  margin-left: var(--margin-5);
103
105
  &::before {
104
- content: "/";
106
+ content: '/';
105
107
  color: var(--font-color-d);
106
108
  margin-right: var(--margin-5);
107
109
  font-size: var(--font-size-base);
@@ -42,6 +42,7 @@ export default {
42
42
  if (this.$props.proScreenList.length == 0) {
43
43
  this.insertDefaultItem();
44
44
  }
45
+
45
46
  },
46
47
  insertDefaultItem() {
47
48
  this.$emit("insertDefaultItem");
@@ -9,14 +9,14 @@
9
9
  <el-select
10
10
  size="small"
11
11
  class="item"
12
- v-model="item.type"
13
12
  :disabled="disable"
13
+ v-model="item.key"
14
14
  placeholder="请选择要筛选的字段名"
15
15
  >
16
16
  <el-option
17
17
  v-for="(item, index) in config"
18
18
  :key="item.label"
19
- :value="item.type"
19
+ :value="item.key"
20
20
  :label="item.label"
21
21
  :disabled="item.isCheck"
22
22
  >
@@ -90,9 +90,7 @@ export default {
90
90
  created() {
91
91
  this.privateConfigIndex = this.$props.configIndex
92
92
  },
93
- mounted() {
94
- console.log(this.config)
95
- },
93
+ mounted() {},
96
94
  props: {
97
95
  item: {},
98
96
  config: {},
@@ -112,7 +110,9 @@ export default {
112
110
  typeChange(index) {
113
111
  if (this.$props.config[index].isCheck == true) return
114
112
  this.privateConfigIndex = index
115
- this.$props.item.key = this.$props.config[this.privateConfigIndex].key
113
+ const configItem = this.$props.config[this.privateConfigIndex]
114
+ this.$props.item.key = configItem.key
115
+ this.$props.item.type = configItem.type
116
116
  this.trigerCheck(this.privateConfigIndex, true)
117
117
  },
118
118
 
@@ -23,7 +23,7 @@
23
23
  <div class="oa-pro-table-search">
24
24
  <oa_pro_table_searchVue
25
25
  v-model="module"
26
- v-show="!isCheckTableRow"
26
+ v-show="!isCheckTableRow || !isHasHandlePlugin"
27
27
  ref="oaProTableSearch"
28
28
  :screenList="screenList"
29
29
  :placeholder="placeholder"
@@ -39,7 +39,7 @@
39
39
  <oa_pro_table_check_handle_barVue
40
40
  :del-fn="delFn"
41
41
  :export-fn="exportFn"
42
- v-if="isCheckTableRow"
42
+ v-if="isCheckTableRow && isHasHandlePlugin"
43
43
  :checked-value="tableCheckboxConfig.value"
44
44
  >
45
45
  <template slot="check-handle">
@@ -140,32 +140,26 @@
140
140
  effect="dark"
141
141
  placement="top"
142
142
  :content="scope.row[`${item.key}`]"
143
- v-else-if="isToolTip(scope.row[`${item.key}`])"
143
+ v-else-if="
144
+ isToolTip(scope.row[`${item.key}`]) && item.type != 'time'
145
+ "
144
146
  >
145
147
  <span
146
148
  class="cell-content-text"
147
- :class="[
148
- item.fun ? 'fun' : '',
149
- item.click ? 'primary' : '',
150
- item.color ? item.color : '',
151
- ]"
149
+ :class="nomalStyle(item)"
152
150
  @click="rowClick(item, scope.row)"
153
151
  >
154
- {{ scope.row[`${item.key}`] }}
152
+ {{ nomalRowValue(scope.row, item) }}
155
153
  </span>
156
154
  </el-tooltip>
157
155
 
158
156
  <span
159
157
  v-else
160
158
  class="cell-content-text"
161
- :class="[
162
- item.fun ? 'fun' : '',
163
- item.click ? 'primary' : '',
164
- item.color ? item.color : '',
165
- ]"
159
+ :class="nomalStyle(item)"
166
160
  @click="rowClick(item, scope.row)"
167
161
  >
168
- {{ scope.row[`${item.key}`] }}
162
+ {{ nomalRowValue(scope.row, item) }}
169
163
  </span>
170
164
  </template>
171
165
  </el-table-column>
@@ -181,7 +175,11 @@
181
175
  :pageProps="pageProps"
182
176
  :totalList="totalList"
183
177
  :pageConfig="pageConfig"
184
- ></oa_pro_footerVue>
178
+ >
179
+ <template slot="footer-slot">
180
+ <slot name="footer-pre-slot"></slot>
181
+ </template>
182
+ </oa_pro_footerVue>
185
183
  </div>
186
184
 
187
185
  <!-- 高级筛选的弹框 -->
@@ -229,9 +227,11 @@ import oa_pro_table_skeletonVue from './oa_pro_table_skeleton.vue' //表格骨
229
227
  import baseDefaultSvgVue from '../base/baseDefaultSvg/baseDefaultSvg.vue' //缺省页组件
230
228
  import baseButtonHandle from '../base/baseButtonHandle/baseButtonHandle.vue' //通用组件 排列尾部按钮的组件
231
229
  import oa_pro_table_check_handle_barVue from './oa_pro_table_check_handle_bar.vue' // 当表格有行被选中的时候
230
+ //
232
231
 
233
232
  //
234
233
  import componentConfig from '../../config/componentConfig'
234
+ import { FilterTime } from '../../utils/utils'
235
235
  let canPush = true
236
236
  export default {
237
237
  name: 'baseProTable',
@@ -273,6 +273,7 @@ export default {
273
273
  },
274
274
  created() {
275
275
  this.init()
276
+
276
277
  componentConfig.eventBus.$on('handleTableBorder', this.handleTableBorder)
277
278
  },
278
279
  mounted() {
@@ -458,11 +459,16 @@ export default {
458
459
 
459
460
  // 行被选中删除的方法
460
461
  delFn() {
461
- return this._linkViewClassSubs.delFn || null
462
+ return this._linkViewClassSubs?.delFn || null
462
463
  },
463
464
  // 行被选中导出的方法
464
465
  exportFn() {
465
- return this._linkViewClassSubs.exportFn || null
466
+ return this._linkViewClassSubs?.exportFn || null
467
+ },
468
+
469
+ // 是否存在delFn,exportFn以及check-handle-plugin slot
470
+ isHasHandlePlugin() {
471
+ return this.delFn || this.exportFn || this.$slots[`check-handle-plugin`]
466
472
  },
467
473
  },
468
474
  components: {
@@ -624,8 +630,6 @@ export default {
624
630
  },
625
631
 
626
632
  handleScreenItem(config) {
627
- //console.log(config);
628
-
629
633
  let index = this.proScreenList.findIndex((item) => {
630
634
  return item.key == config.value
631
635
  })
@@ -637,6 +641,7 @@ export default {
637
641
 
638
642
  if (_configIndex >= 0) {
639
643
  let _configItem = this.$props.proScreenConfig[_configIndex]
644
+
640
645
  this.proScreenList.push({
641
646
  key: _configItem.key,
642
647
  value: '',
@@ -951,6 +956,25 @@ export default {
951
956
  this.cleanProscreenCondition(true)
952
957
  })
953
958
  },
959
+
960
+ // 返回普通格式的样式
961
+ nomalStyle(item) {
962
+ return [
963
+ item.fun ? 'fun' : '',
964
+ item.click ? 'primary' : '',
965
+ item.color ? item.color : '',
966
+ ]
967
+ },
968
+
969
+ // 返回普通格式的字段
970
+ nomalRowValue(row, item) {
971
+ const value = row[item.key]
972
+ if (item.type == 'time') {
973
+ return FilterTime(value, 'YYYY-MM-DD HH:mm:ss')
974
+ } else {
975
+ return value
976
+ }
977
+ },
954
978
  },
955
979
  }
956
980
  </script>