@ddwl/ddwl-ui 1.2.3-beta.1 → 1.2.3-beta.3

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 (144) hide show
  1. package/dist/app.common.js +30687 -0
  2. package/dist/app.css +17 -0
  3. package/dist/app.umd.js +30706 -0
  4. package/dist/app.umd.min.js +18 -0
  5. package/dist/demo.html +1 -0
  6. package/package.json +10 -6
  7. package/src/assets/video-play.jpeg +0 -0
  8. package/src/lib/install/index.js +13 -0
  9. package/src/lib/slots/buttonGroup.vue +122 -0
  10. package/src/lib/slots/dict.vue +44 -0
  11. package/src/lib/slots/file.vue +34 -0
  12. package/src/lib/slots/icon.vue +75 -0
  13. package/src/lib/slots/index.js +11 -0
  14. package/src/lib/theme/alert.css +1 -0
  15. package/src/lib/theme/aside.css +1 -0
  16. package/src/lib/theme/autocomplete.css +1 -0
  17. package/src/lib/theme/avatar.css +1 -0
  18. package/src/lib/theme/backtop.css +1 -0
  19. package/src/lib/theme/badge.css +1 -0
  20. package/src/lib/theme/base.css +1 -0
  21. package/src/lib/theme/breadcrumb-item.css +0 -0
  22. package/src/lib/theme/breadcrumb.css +1 -0
  23. package/src/lib/theme/button-group.css +0 -0
  24. package/src/lib/theme/button.css +1 -0
  25. package/src/lib/theme/calendar.css +1 -0
  26. package/src/lib/theme/card.css +1 -0
  27. package/src/lib/theme/carousel-item.css +1 -0
  28. package/src/lib/theme/carousel.css +1 -0
  29. package/src/lib/theme/cascader-panel.css +1 -0
  30. package/src/lib/theme/cascader.css +1 -0
  31. package/src/lib/theme/checkbox-button.css +0 -0
  32. package/src/lib/theme/checkbox-group.css +0 -0
  33. package/src/lib/theme/checkbox.css +1 -0
  34. package/src/lib/theme/col.css +1 -0
  35. package/src/lib/theme/collapse-item.css +0 -0
  36. package/src/lib/theme/collapse.css +1 -0
  37. package/src/lib/theme/color-picker.css +1 -0
  38. package/src/lib/theme/container.css +1 -0
  39. package/src/lib/theme/date-picker.css +1 -0
  40. package/src/lib/theme/descriptions-item.css +1 -0
  41. package/src/lib/theme/descriptions.css +1 -0
  42. package/src/lib/theme/dialog.css +1 -0
  43. package/src/lib/theme/display.css +1 -0
  44. package/src/lib/theme/divider.css +1 -0
  45. package/src/lib/theme/drawer.css +1 -0
  46. package/src/lib/theme/dropdown-item.css +0 -0
  47. package/src/lib/theme/dropdown-menu.css +0 -0
  48. package/src/lib/theme/dropdown.css +1 -0
  49. package/src/lib/theme/empty.css +1 -0
  50. package/src/lib/theme/footer.css +1 -0
  51. package/src/lib/theme/form-item.css +0 -0
  52. package/src/lib/theme/form.css +1 -0
  53. package/src/lib/theme/header.css +1 -0
  54. package/src/lib/theme/icon.css +1 -0
  55. package/src/lib/theme/image.css +1 -0
  56. package/src/lib/theme/index.css +1 -0
  57. package/src/lib/theme/infinite-scroll.css +0 -0
  58. package/src/lib/theme/infiniteScroll.css +0 -0
  59. package/src/lib/theme/input-number.css +1 -0
  60. package/src/lib/theme/input.css +1 -0
  61. package/src/lib/theme/link.css +1 -0
  62. package/src/lib/theme/loading.css +1 -0
  63. package/src/lib/theme/main.css +1 -0
  64. package/src/lib/theme/menu-item-group.css +0 -0
  65. package/src/lib/theme/menu-item.css +0 -0
  66. package/src/lib/theme/menu.css +1 -0
  67. package/src/lib/theme/message-box.css +1 -0
  68. package/src/lib/theme/message.css +1 -0
  69. package/src/lib/theme/notification.css +1 -0
  70. package/src/lib/theme/option-group.css +1 -0
  71. package/src/lib/theme/option.css +1 -0
  72. package/src/lib/theme/page-header.css +1 -0
  73. package/src/lib/theme/pagination.css +1 -0
  74. package/src/lib/theme/popconfirm.css +1 -0
  75. package/src/lib/theme/popover.css +1 -0
  76. package/src/lib/theme/popper.css +1 -0
  77. package/src/lib/theme/progress.css +1 -0
  78. package/src/lib/theme/radio-button.css +1 -0
  79. package/src/lib/theme/radio-group.css +1 -0
  80. package/src/lib/theme/radio.css +1 -0
  81. package/src/lib/theme/rate.css +1 -0
  82. package/src/lib/theme/reset.css +1 -0
  83. package/src/lib/theme/result.css +1 -0
  84. package/src/lib/theme/row.css +1 -0
  85. package/src/lib/theme/scrollbar.css +1 -0
  86. package/src/lib/theme/select-dropdown.css +1 -0
  87. package/src/lib/theme/select.css +1 -0
  88. package/src/lib/theme/skeleton-item.css +1 -0
  89. package/src/lib/theme/skeleton.css +1 -0
  90. package/src/lib/theme/slider.css +1 -0
  91. package/src/lib/theme/spinner.css +1 -0
  92. package/src/lib/theme/step.css +1 -0
  93. package/src/lib/theme/steps.css +1 -0
  94. package/src/lib/theme/submenu.css +0 -0
  95. package/src/lib/theme/switch.css +1 -0
  96. package/src/lib/theme/tab-pane.css +0 -0
  97. package/src/lib/theme/table-column.css +1 -0
  98. package/src/lib/theme/table.css +1 -0
  99. package/src/lib/theme/tabs.css +1 -0
  100. package/src/lib/theme/tag.css +1 -0
  101. package/src/lib/theme/time-picker.css +1 -0
  102. package/src/lib/theme/time-select.css +1 -0
  103. package/src/lib/theme/timeline-item.css +1 -0
  104. package/src/lib/theme/timeline.css +1 -0
  105. package/src/lib/theme/tooltip.css +1 -0
  106. package/src/lib/theme/transfer.css +1 -0
  107. package/src/lib/theme/tree.css +1 -0
  108. package/src/lib/theme/upload.css +1 -0
  109. package/src/main.js +67 -0
  110. package/src/packages/button/index.vue +31 -0
  111. package/src/packages/checkbox-group/index.vue +47 -0
  112. package/src/packages/descriptions/index.vue +115 -0
  113. package/src/packages/dialog/index.vue +167 -0
  114. package/src/packages/dialog-confirm/index.vue +101 -0
  115. package/src/packages/drawer/index.vue +131 -0
  116. package/src/packages/file-preview/index.vue +243 -0
  117. package/src/packages/file-preview/static/audio.png +0 -0
  118. package/src/packages/file-preview/static/video.png +0 -0
  119. package/src/packages/filter-tree/index.vue +294 -0
  120. package/src/packages/form/index.vue +148 -0
  121. package/src/packages/form-item/index.vue +196 -0
  122. package/src/packages/import-file/index.vue +161 -0
  123. package/src/packages/menu/index.vue +68 -0
  124. package/src/packages/menu/menuItem.vue +73 -0
  125. package/src/packages/popconfirm/index.vue +34 -0
  126. package/src/packages/radio-group/index.vue +47 -0
  127. package/src/packages/render/index.vue +14 -0
  128. package/src/packages/search-form/index.vue +257 -0
  129. package/src/packages/search-input/index.vue +72 -0
  130. package/src/packages/search-table/index.vue +106 -0
  131. package/src/packages/select/index.vue +68 -0
  132. package/src/packages/svg-icon/index.vue +43 -0
  133. package/src/packages/table/drag.png +0 -0
  134. package/src/packages/table/index.vue +440 -0
  135. package/src/packages/upload/index.vue +330 -0
  136. package/src/utils/constant.js +4 -0
  137. package/src/utils/index.js +77 -0
  138. package/src/utils/treeLib.js +180 -0
  139. package/dist/index.html +0 -1
  140. package/dist/js/app.js +0 -1
  141. package/dist/js/chunk-vendors.js +0 -17
  142. package/dist/static/css/app.2ec4a629.css +0 -1
  143. /package/{dist/static/fonts/element-icons.f1a45d74.ttf → src/lib/theme/fonts/element-icons.ttf} +0 -0
  144. /package/{dist/static/fonts/element-icons.ff18efd1.woff → src/lib/theme/fonts/element-icons.woff} +0 -0
@@ -0,0 +1,72 @@
1
+ <!-- 查询输入框组件 -->
2
+ <template>
3
+ <div class="d-search-input">
4
+ <slot><div /></slot>
5
+ <div>
6
+ <el-input
7
+ v-model="value"
8
+ class="d-search-input-container"
9
+ :placeholder="placeholder"
10
+ :clearable="clearable"
11
+ @keyup.enter.native="$emit('search', value)"
12
+ >
13
+ <i
14
+ slot="suffix"
15
+ class="el-input__icon el-icon-search pointer"
16
+ @click="$emit('search', value)"
17
+ />
18
+ </el-input>
19
+ </div>
20
+ </div>
21
+ </template>
22
+
23
+ <script>
24
+ export default {
25
+ name: 'DSearchInput',
26
+ components: {},
27
+ model: {
28
+ prop: 'modelValue',
29
+ event: 'change'
30
+ },
31
+ props: {
32
+ modelValue: {
33
+ type: String,
34
+ default: ''
35
+ },
36
+ placeholder: {
37
+ type: String,
38
+ default: '请输入查询内容'
39
+ },
40
+ clearable: {
41
+ type: Boolean,
42
+ default: true
43
+ }
44
+ },
45
+ data() {
46
+ return {}
47
+ },
48
+ computed: {
49
+ value: {
50
+ get() {
51
+ return this.modelValue
52
+ },
53
+ set(value) {
54
+ this.$emit('change', value)
55
+ }
56
+ }
57
+ },
58
+ watch: {},
59
+ created() {},
60
+ methods: {}
61
+ }
62
+ </script>
63
+
64
+ <style lang="scss">
65
+ .d-search-input {
66
+ display: flex;
67
+ justify-content: space-between;
68
+ .d-search-input-container {
69
+ width: 320px;
70
+ }
71
+ }
72
+ </style>
@@ -0,0 +1,106 @@
1
+ <!-- 查询表格 -->
2
+ <template>
3
+ <div class="d-table-search-wrap">
4
+ <search-form
5
+ v-model="form"
6
+ :config="config.searchConfig"
7
+ :search-data="searchData"
8
+ v-bind="$attrs"
9
+ v-on="$listeners"
10
+ >
11
+ <slot />
12
+ </search-form>
13
+ <d-table
14
+ ref="dTable"
15
+ :request-config="requestConfig"
16
+ :columns="config.columns"
17
+ :data="data"
18
+ v-bind="$attrs"
19
+ class="d-table-wrap"
20
+ v-on="$listeners"
21
+ />
22
+ </div>
23
+ </template>
24
+
25
+ <script>
26
+ import { cloneDeep } from 'lodash'
27
+ import SearchForm from '../search-form/index.vue'
28
+ import DTable from '../table/index.vue'
29
+
30
+ export default {
31
+ name: 'DSearchTable',
32
+ components: { SearchForm, DTable },
33
+ props: {
34
+ config: {
35
+ type: Object,
36
+ default: () => ({
37
+ searchConfig: [],
38
+ requestConfig: {},
39
+ columns: []
40
+ })
41
+ },
42
+ data: {
43
+ type: Array,
44
+ default: () => []
45
+ }
46
+ },
47
+ data() {
48
+ return {
49
+ form: {}
50
+ }
51
+ },
52
+ computed: {
53
+ requestConfig() {
54
+ const requestConfig = this.config.requestConfig
55
+ return {
56
+ ...requestConfig,
57
+ params:
58
+ typeof requestConfig.params === 'function'
59
+ ? requestConfig.params(cloneDeep(this.form)) // 处理自定义参数
60
+ : {
61
+ ...this.form,
62
+ ...requestConfig.params
63
+ }
64
+ }
65
+ }
66
+ },
67
+ created() {
68
+ this.createFormBind()
69
+ },
70
+ methods: {
71
+ createFormBind() {
72
+ const _form = {}
73
+ ;(this.config.searchConfig || []).forEach((c) => {
74
+ _form[c.prop] = c.defaultValue || ''
75
+ })
76
+ this.form = _form
77
+ },
78
+ search(params) {
79
+ this.$refs.dTable.search(params)
80
+ },
81
+ searchData(params = { pageNum: 1 }) {
82
+ this.$nextTick(() => {
83
+ this.search(params)
84
+ })
85
+ }
86
+ }
87
+ }
88
+ </script>
89
+ <style lang="scss">
90
+ .d-table-search-wrap {
91
+ height: 100%;
92
+ width: 100%;
93
+ overflow: hidden;
94
+ display: flex;
95
+ flex-direction: column;
96
+
97
+ .d-table-wrap {
98
+ flex: 1;
99
+ overflow: hidden;
100
+
101
+ .el-table {
102
+ max-height: calc(100% - 52px) !important;
103
+ }
104
+ }
105
+ }
106
+ </style>
@@ -0,0 +1,68 @@
1
+ <!-- 下拉选择器 -->
2
+ <template>
3
+ <div>
4
+ <el-select v-model="value" v-bind="$attrs" v-on="{ ...$listeners, change: onChange }">
5
+ <el-option
6
+ v-for="item in options"
7
+ :key="item.value"
8
+ :label="item.label"
9
+ :value="item.value"
10
+ />
11
+ <template slot="prefix">
12
+ <slot name="prefix" />
13
+ </template>
14
+ <template slot="empty">
15
+ <slot name="empty" />
16
+ </template>
17
+ </el-select>
18
+ </div>
19
+ </template>
20
+
21
+ <script>
22
+ export default {
23
+ name: 'DSelect',
24
+ components: {},
25
+ model: {
26
+ prop: 'modelValue',
27
+ event: 'modelChange'
28
+ },
29
+ props: {
30
+ modelValue: {
31
+ type: [String, Number, Array],
32
+ default: ''
33
+ },
34
+ options: {
35
+ type: Array,
36
+ default: () => []
37
+ }
38
+ },
39
+ data() {
40
+ return {}
41
+ },
42
+ computed: {
43
+ value: {
44
+ get() {
45
+ return this.modelValue
46
+ },
47
+ set(value) {
48
+ this.$emit('modelChange', value)
49
+ }
50
+ }
51
+ },
52
+ watch: {},
53
+ created() {},
54
+ methods: {
55
+ onChange(value) {
56
+ let data
57
+ if (Array.isArray(value)) {
58
+ data = this.options.filter((i) => value.includes(i.value)) || []
59
+ } else {
60
+ data = this.options.find((i) => value === i.value) || {}
61
+ }
62
+ this.$emit('change', value, data)
63
+ }
64
+ }
65
+ }
66
+ </script>
67
+
68
+ <style lang="scss"></style>
@@ -0,0 +1,43 @@
1
+ <template>
2
+ <svg :class="svgClass" aria-hidden="true" v-on="$listeners">
3
+ <use :xlink:href="iconName" />
4
+ </svg>
5
+ </template>
6
+
7
+ <script>
8
+ export default {
9
+ name: 'DSvgIcon',
10
+ props: {
11
+ icon: {
12
+ type: String,
13
+ required: true
14
+ },
15
+ className: {
16
+ type: String,
17
+ default: ''
18
+ }
19
+ },
20
+ computed: {
21
+ iconName() {
22
+ return `#icon-${this.icon}`
23
+ },
24
+ svgClass() {
25
+ if (this.className) {
26
+ return 'svg-icon ' + this.className
27
+ } else {
28
+ return 'svg-icon'
29
+ }
30
+ }
31
+ }
32
+ }
33
+ </script>
34
+
35
+ <style lang="scss">
36
+ .svg-icon {
37
+ width: 14px;
38
+ height: 14px;
39
+ vertical-align: -0.15em;
40
+ fill: currentColor;
41
+ overflow: hidden;
42
+ }
43
+ </style>
Binary file