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

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