yks-element 1.0.322 → 1.0.792

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 (88) hide show
  1. package/README.md +74 -8
  2. package/lib/theme-chalk/buttons.css +1 -0
  3. package/lib/theme-chalk/common.css +1 -0
  4. package/lib/theme-chalk/dialogs.css +1 -0
  5. package/{packages/Topic/src/indefiniteChoice.vue → lib/theme-chalk/element-variables.css} +0 -0
  6. package/lib/theme-chalk/elements.css +1 -0
  7. package/lib/theme-chalk/enlarge.css +1 -0
  8. package/{packages/styles → lib/theme-chalk}/fonts/element-icons.ttf +0 -0
  9. package/{packages/styles → lib/theme-chalk}/fonts/element-icons.woff +0 -0
  10. package/{packages/styles → lib/theme-chalk}/fonts/iconfont.ttf +0 -0
  11. package/lib/theme-chalk/fonts/iconfont.woff +0 -0
  12. package/lib/theme-chalk/icons.css +1 -0
  13. package/lib/theme-chalk/index.css +1 -0
  14. package/lib/theme-chalk/multimedia.css +1 -0
  15. package/lib/theme-chalk/paginations.css +1 -0
  16. package/lib/theme-chalk/scrollbars.css +1 -0
  17. package/lib/theme-chalk/selects.css +1 -0
  18. package/lib/theme-chalk/tables.css +1 -0
  19. package/lib/theme-chalk/tinymce.css +1 -0
  20. package/lib/theme-chalk/uploadfile.css +1 -0
  21. package/lib/theme-chalk/video.css +1 -0
  22. package/{packages/Topic/src/matching.vue → lib/theme-chalk/videoPlayer.css} +0 -0
  23. package/lib/yks.js +1 -0
  24. package/package.json +42 -12
  25. package/lib/fonts/element-icons.535877f5.woff +0 -0
  26. package/lib/fonts/element-icons.732389de.ttf +0 -0
  27. package/lib/fonts/iconfont.19124b0d.ttf +0 -0
  28. package/lib/fonts/iconfont.3ae3dd4e.woff +0 -0
  29. package/lib/yks.css +0 -1
  30. package/packages/Button/index.js +0 -8
  31. package/packages/Button/src/index.vue +0 -78
  32. package/packages/Dialog/index.js +0 -8
  33. package/packages/Dialog/src/index.vue +0 -103
  34. package/packages/Multimedia/index.js +0 -8
  35. package/packages/Multimedia/src/index.vue +0 -179
  36. package/packages/Pagination/index.js +0 -8
  37. package/packages/Pagination/src/index.vue +0 -149
  38. package/packages/Scrollbar/index.js +0 -8
  39. package/packages/Scrollbar/src/index.vue +0 -27
  40. package/packages/Select/index.js +0 -8
  41. package/packages/Select/src/index.vue +0 -350
  42. package/packages/Select/src/option.vue +0 -29
  43. package/packages/Table/index.js +0 -8
  44. package/packages/Table/src/index.vue +0 -141
  45. package/packages/Tinymce/index.js +0 -8
  46. package/packages/Tinymce/src/config.js +0 -25
  47. package/packages/Tinymce/src/index.vue +0 -500
  48. package/packages/Topic/index.js +0 -23
  49. package/packages/Topic/src/attachment.vue +0 -125
  50. package/packages/Topic/src/audioFrequency.vue +0 -127
  51. package/packages/Topic/src/clozeFillInBlanks.vue +0 -267
  52. package/packages/Topic/src/compound.vue +0 -221
  53. package/packages/Topic/src/config.js +0 -132
  54. package/packages/Topic/src/fillInBlanks.vue +0 -272
  55. package/packages/Topic/src/judgment.vue +0 -140
  56. package/packages/Topic/src/multiple.vue +0 -193
  57. package/packages/Topic/src/pictureAnswer.vue +0 -127
  58. package/packages/Topic/src/shortAnswer.vue +0 -136
  59. package/packages/Topic/src/single.vue +0 -194
  60. package/packages/UploadFile/index.js +0 -8
  61. package/packages/UploadFile/src/index.vue +0 -390
  62. package/packages/Video/index.js +0 -8
  63. package/packages/Video/src/index.vue +0 -351
  64. package/packages/assets/mixins/topic.js +0 -137
  65. package/packages/assets/utils/index.js +0 -83
  66. package/packages/assets/utils/topic.js +0 -132
  67. package/packages/icon/default/icons.js +0 -182
  68. package/packages/icon/default/icons.min.js +0 -1
  69. package/packages/icon/default/index.js +0 -7
  70. package/packages/icon/ks-pdf.png +0 -0
  71. package/packages/icon/ks-ppt.png +0 -0
  72. package/packages/icon/ks-word.png +0 -0
  73. package/packages/icon/ks-xslx.png +0 -0
  74. package/packages/icon/music-bg.png +0 -0
  75. package/packages/icon/video-bg.png +0 -0
  76. package/packages/index.js +0 -223
  77. package/packages/option/index.js +0 -6
  78. package/packages/styles/_mixin.scss +0 -93
  79. package/packages/styles/_variables.scss +0 -40
  80. package/packages/styles/common.scss +0 -200
  81. package/packages/styles/element-ui.scss +0 -135
  82. package/packages/styles/element-variables.scss +0 -794
  83. package/packages/styles/fonts/iconfont.woff +0 -0
  84. package/packages/styles/icon.scss +0 -69
  85. package/packages/styles/index.scss +0 -11
  86. package/packages/styles/select.scss +0 -98
  87. package/packages/styles/table.scss +0 -45
  88. package/packages/styles/topic.scss +0 -26
@@ -1,78 +0,0 @@
1
- <template>
2
- <Button v-bind="$attrs" v-on="$listeners">
3
- <slot></slot>
4
- </Button>
5
- </template>
6
-
7
- <script>
8
- import { Button } from 'element-ui'
9
-
10
- export default {
11
- name: 'YksButton',
12
- components: {
13
- Button
14
- }
15
- }
16
- </script>
17
-
18
- <style lang="scss">
19
- .el-button {
20
- padding: 8px 24px;
21
- }
22
- .el-button--text {
23
- border-color: transparent;
24
- color: #409eff;
25
- background: transparent;
26
- padding-left: 0;
27
- padding-right: 0;
28
- }
29
-
30
- .el-button--text.is-plain {
31
- padding: 8px 24px;
32
- }
33
-
34
- .el-button--primary.is-plain,
35
- .el-button--primary.is-plain.is-disabled {
36
- background: #fff;
37
- }
38
-
39
- .el-button--primary.is-plain:hover,
40
- .el-button--primary.is-plain:focus {
41
- background: #fff;
42
- border-color: #3b7cec;
43
- color: #3b7cec;
44
- }
45
-
46
- .el-button--primary.is-plain.is-disabled,
47
- .el-button--primary.is-plain.is-disabled:hover,
48
- .el-button--primary.is-plain.is-disabled:focus,
49
- .el-button--primary.is-plain.is-disabled:active {
50
- background: #fff;
51
- border-color: #d4e5ff;
52
- color: #d4e5ff;
53
- }
54
-
55
- .el-button--primary:hover,
56
- .el-button--primary:focus {
57
- background: #3b7cec;
58
- border-color: #3b7cec;
59
- }
60
-
61
- .el-button--primary.is-disabled,
62
- .el-button--primary.is-disabled:hover,
63
- .el-button--primary.is-disabled:focus,
64
- .el-button--primary.is-disabled:active {
65
- color: #ffffff;
66
- background-color: #d4e5ff;
67
- border-color: #d4e5ff;
68
- }
69
-
70
- .el-button--danger.is-disabled,
71
- .el-button--danger.is-disabled:hover,
72
- .el-button--danger.is-disabled:focus,
73
- .el-button--danger.is-disabled:active {
74
- color: #ffffff;
75
- background-color: #f9dbdd;
76
- border-color: #f9dbdd;
77
- }
78
- </style>
@@ -1,8 +0,0 @@
1
- import YksDialog from './src/index';
2
-
3
- /* istanbul ignore next */
4
- YksDialog.install = function(Vue) {
5
- Vue.component(YksDialog.name, YksDialog);
6
- };
7
-
8
- export default YksDialog;
@@ -1,103 +0,0 @@
1
- <template>
2
- <Dialog v-bind="dialogOptions" :visible.sync="visible" v-on="$listeners">
3
- <slot slot="title" name="title"> </slot>
4
- <yks-scrollbar :height="height">
5
- <slot></slot>
6
- </yks-scrollbar>
7
- <template v-if="footer" #footer>
8
- <slot name="footer">
9
- <el-button type="primary" :disabled="loading" :loading="loading" @click="onSure">
10
- 确 定
11
- </el-button>
12
- <el-button @click="onClose"> 取消 </el-button>
13
- </slot>
14
- </template>
15
- </Dialog>
16
- </template>
17
-
18
- <script>
19
- import ElDialog from 'element-ui/lib/dialog'
20
- import { Dialog } from 'element-ui'
21
- /**
22
- * Dialog 表格组件
23
- * @module yks-dialog
24
- */
25
-
26
- export default {
27
- name: 'YksDialog',
28
- components: {
29
- Dialog
30
- },
31
- props: {
32
- /**
33
- * 扩展属性参数
34
- * @property {Array} [height = 390] scrollbar的高
35
- * @property {Object} [show = false] 是否显示 Dialog
36
- */
37
- ...ElDialog.props,
38
- height: {
39
- type: String,
40
- default: '390px'
41
- },
42
- show: {
43
- type: Boolean,
44
- default: false
45
- },
46
- loading: {
47
- type: Boolean,
48
- default: false
49
- },
50
- disabledSure: {
51
- type: Boolean,
52
- default: false
53
- },
54
- footer: {
55
- type: Boolean,
56
- default: true
57
- }
58
- },
59
- data() {
60
- return {
61
- visible: false
62
- }
63
- },
64
- computed: {
65
- dialogOptions() {
66
- const options = { ...this.$props }
67
- delete options.height
68
- delete options.visible
69
- delete options.loading
70
- delete options.disabledSure
71
- delete options.footer
72
- return options
73
- }
74
- },
75
- watch: {
76
- show(val) {
77
- this.visible = val
78
- }
79
- },
80
- methods: {
81
- onClose() {
82
- this.$emit('close', false)
83
- },
84
- onSure() {
85
- this.$emit('sure', true)
86
- }
87
- }
88
- }
89
- </script>
90
-
91
- <style lang="scss" scoped>
92
- .ks-scrollbar {
93
- padding: 20px 0;
94
- .ks-contents {
95
- padding: 0 20px;
96
- }
97
- }
98
- ::v-deep {
99
- .el-dialog__title {
100
- font-weight: bold;
101
- }
102
- }
103
- </style>
@@ -1,8 +0,0 @@
1
- import YksMultimedia from './src/index';
2
-
3
- /* istanbul ignore next */
4
- YksMultimedia.install = function(Vue) {
5
- Vue.component(YksMultimedia.name, YksMultimedia);
6
- };
7
-
8
- export default YksMultimedia;
@@ -1,179 +0,0 @@
1
- <template>
2
- <div class="multimedia">
3
- <div v-if="fileType === '1'" class="ks-stem__itemattrs" :title="fileName">
4
- <div class="yks-tc file-stem">
5
- <el-image
6
- class="ks-stem__icon"
7
- :src="iconUrl(data.content)"
8
- fit="cover"
9
- @click="handleClick"
10
- ></el-image>
11
- <i
12
- v-if="visibleDel"
13
- class="el-icon-error media-delfile"
14
- @click.stop="handleCloseFile"
15
- ></i>
16
- </div>
17
- </div>
18
- <div v-else-if="fileType === '2'">
19
- <yks-video :src="data.content"></yks-video>
20
- <i
21
- v-if="visibleDel"
22
- class="el-icon-error media-delfile"
23
- @click.stop="handleCloseFile"
24
- ></i>
25
- </div>
26
- <div v-else class="ks-stem__itemattrs" :title="fileName">
27
- <div class="yks-tc file-stem">
28
- <i class="el-icon-document-remove ks-stem__remove" @click="handleClick"></i>
29
- <i
30
- v-if="visibleDel"
31
- class="el-icon-error media-delfile"
32
- @click.stop="handleCloseFile"
33
- ></i>
34
- </div>
35
- </div>
36
- <div class="ks-stem__content yks-text-ellipsis">
37
- {{ fileName }}
38
- </div>
39
- </div>
40
- </template>
41
- <script>
42
- import xlsx from '../../icon/ks-xslx.png'
43
- import pdf from '../../icon/ks-pdf.png'
44
- import docx from '../../icon/ks-word.png'
45
- import pptx from '../../icon/ks-ppt.png'
46
- import YksVideo from '../../Video/index'
47
-
48
- export default {
49
- name: 'YksMultimedia',
50
- components: {
51
- YksVideo
52
- },
53
- props: {
54
- data: Object,
55
- visibleDel: { type: Boolean, default: false }
56
- },
57
- computed: {
58
- fileName() {
59
- const url = this.data.content || ''
60
- const name = url.substr(url.lastIndexOf('/') + 1).toLowerCase()
61
- return this.revertUTF8(name)
62
- },
63
- /* 获取文件后缀 */
64
- fileNameType() {
65
- const url = this.data.content || ''
66
- return url.substr(url.lastIndexOf('.') + 1).toLowerCase()
67
- },
68
- fileType() {
69
- if (['xlsx', 'pdf', 'docx', 'pptx'].includes(this.fileNameType)) {
70
- return '1'
71
- }
72
- if (['mp3', 'mp4'].includes(this.fileNameType)) {
73
- return '2'
74
- }
75
- return false
76
- }
77
- },
78
-
79
- methods: {
80
- handleClick() {
81
- window.open(this.data.content, '_blank')
82
- },
83
-
84
- handleCloseFile() {
85
- this.$emit('delete', this.data)
86
- },
87
-
88
- revertUTF8(szInput) {
89
- let x
90
- let wch
91
- let wch1
92
- let wch2
93
- let szRet = ''
94
- for (x = 0; x < szInput.length; x++) {
95
- // eslint-disable-next-line eqeqeq
96
- if (szInput.charAt(x) == '%') {
97
- wch = parseInt(szInput.charAt(++x) + szInput.charAt(++x), 16)
98
- if (!wch) {
99
- break
100
- }
101
- if (!(wch & 0x80)) {
102
- // eslint-disable-next-line no-self-assign
103
- wch = wch
104
- } else if (!(wch & 0x20)) {
105
- x++
106
- wch1 = parseInt(szInput.charAt(++x) + szInput.charAt(++x), 16)
107
- wch = (wch & 0x1f) << 6
108
- wch1 = wch1 & 0x3f
109
- wch = wch + wch1
110
- } else {
111
- x++
112
- wch1 = parseInt(szInput.charAt(++x) + szInput.charAt(++x), 16)
113
- x++
114
- wch2 = parseInt(szInput.charAt(++x) + szInput.charAt(++x), 16)
115
- wch = (wch & 0x0f) << 12
116
- wch1 = (wch1 & 0x3f) << 6
117
- wch2 = wch2 & 0x3f
118
- wch = wch + wch1 + wch2
119
- }
120
- szRet += String.fromCharCode(wch)
121
- } else {
122
- szRet += szInput.charAt(x)
123
- }
124
- }
125
- return szRet
126
- },
127
-
128
- iconUrl() {
129
- const params = {
130
- xlsx: xlsx,
131
- pdf: pdf,
132
- docx: docx,
133
- pptx: pptx
134
- }
135
- return params[this.fileNameType] || params.docx
136
- }
137
- }
138
- }
139
- </script>
140
- <style lang="scss" scoped>
141
- .multimedia {
142
- position: relative;
143
- margin-right: 10px;
144
- width: 160px;
145
-
146
- .file-stem {
147
- position: relative;
148
- width: 80px;
149
- margin: 0 auto;
150
- }
151
-
152
- .ks-stem__itemattrs {
153
- border-radius: 4px;
154
- position: relative;
155
- .ks-stem__remove{
156
- font-size: 50px;
157
- cursor: pointer;
158
- }
159
- .ks-stem__icon {
160
- width: 77px;
161
- height: 77px;
162
- margin-bottom: 9px;
163
- cursor: pointer;
164
- }
165
- }
166
- .ks-stem__content {
167
- width: 160px;
168
- font-size: 12px;
169
- text-align: center;
170
- padding-top: 5px;
171
- color: #000;
172
- }
173
- .media-delfile {
174
- position: absolute;
175
- top: -5px;
176
- right: 0;
177
- }
178
- }
179
- </style>
@@ -1,8 +0,0 @@
1
- import YksPagination from './src/index';
2
-
3
- /* istanbul ignore next */
4
- YksPagination.install = function(Vue) {
5
- Vue.component(YksPagination.name, YksPagination);
6
- };
7
-
8
- export default YksPagination;
@@ -1,149 +0,0 @@
1
- <template>
2
- <div :class="{ hidden: hidden }" class="pagination-container yks-flex">
3
- <div v-if="sizesValue" class="flex-1 yks-flex h-start ks-sizes">
4
- 每页显示
5
- <yks-select
6
- v-model="sizeValues"
7
- :data="sizesPageSizes"
8
- class="ks-select-sizes"
9
- @change="changeSizeValues"
10
- ></yks-select>
11
- </div>
12
- <el-pagination
13
- :background="background"
14
- :current-page.sync="pageOption.page"
15
- :page-size.sync="pageOption.pageSize"
16
- :layout="layoutValue"
17
- :page-sizes="pageSizes"
18
- :total="pageOption.total"
19
- v-bind="$attrs"
20
- @size-change="handleSizeChange"
21
- @current-change="handleCurrentChange"
22
- >
23
- </el-pagination>
24
- </div>
25
- </template>
26
-
27
- <script>
28
- export default {
29
- name: 'YksPagination',
30
- props: {
31
- pageOption: {
32
- required: true,
33
- type: Object,
34
- default: () => {
35
- return {
36
- total: 0, // 总条数
37
- page: 1, // 当前页数
38
- pageSize: 10 // 页面大小
39
- }
40
- }
41
- },
42
- pageSizes: {
43
- default: () => [10, 20, 50, 100]
44
- },
45
- layout: { default: 'sizes, total, prev, pager, next, jumper' },
46
- background: { default: false },
47
- autoScroll: { default: true },
48
- hidden: { default: false }
49
- },
50
- data() {
51
- return {
52
- sizeValues: ''
53
- }
54
- },
55
- computed: {
56
- layoutValue() {
57
- const value = this.layout.split(',')
58
- const layout = value.filter((v) => v.trim() !== 'sizes').join(',')
59
- return layout
60
- },
61
- sizesValue() {
62
- const value = this.layout.split(',')
63
- const sizes = value.some((v) => v.trim() === 'sizes')
64
- return sizes
65
- },
66
- sizesPageSizes() {
67
- return this.pageSizes.map((v) => {
68
- return {
69
- value: v,
70
- label: v
71
- }
72
- })
73
- }
74
- },
75
- created() {
76
- this.sizeValues = this.pageOption.pageSize
77
- },
78
- methods: {
79
- changeSizeValues(value) {
80
- this.$emit(
81
- 'pagination',
82
- Object.assign(this.pageOption, {
83
- pageSize: value,
84
- page: 1
85
- })
86
- )
87
- },
88
-
89
- handleSizeChange(value) {
90
- this.$emit(
91
- 'pagination',
92
- Object.assign(this.pageOption, {
93
- pageSize: value,
94
- page: 1
95
- })
96
- )
97
- },
98
-
99
- handleCurrentChange(value) {
100
- this.$emit(
101
- 'pagination',
102
- Object.assign(this.pageOption, {
103
- page: value
104
- })
105
- )
106
- }
107
- }
108
- }
109
- </script>
110
-
111
- <style lang="scss" scoped>
112
- .pagination-container {
113
- text-align: center;
114
- background: #fff;
115
- padding: 20px 38px;
116
- width: 100%;
117
-
118
- .ks-sizes {
119
- font-size: 14px;
120
- color: #9ea0a5;
121
- .ks-select-sizes {
122
- margin-left: 8px;
123
-
124
- ::v-deep {
125
- .el-input__inner {
126
- border: unset;
127
- padding: 0 30px 0 0;
128
- width: 60px;
129
- }
130
- }
131
- }
132
- }
133
-
134
- ::v-deep {
135
- .active {
136
- min-width: 30px !important;
137
- min-height: 30px !important;
138
- background: #096dd9;
139
- border-radius: 50%;
140
- padding: 0;
141
- color: #fff;
142
- }
143
- }
144
- }
145
-
146
- .pagination-container.hidden {
147
- display: none;
148
- }
149
- </style>
@@ -1,8 +0,0 @@
1
- import YksScrollbar from './src/index';
2
-
3
- /* istanbul ignore next */
4
- YksScrollbar.install = function(Vue) {
5
- Vue.component(YksScrollbar.name, YksScrollbar);
6
- };
7
-
8
- export default YksScrollbar;
@@ -1,27 +0,0 @@
1
- <template>
2
- <el-scrollbar class="ks-scrollbar" :style="{ height }" wrap-class="default-scrollbar__wrap">
3
- <div class="ks-contents">
4
- <slot></slot>
5
- </div>
6
- </el-scrollbar>
7
- </template>
8
-
9
- <script>
10
- export default {
11
- name: 'YksScrollbar',
12
- props: {
13
- height: {
14
- type: String,
15
- default: 'auto'
16
- }
17
- }
18
- }
19
- </script>
20
-
21
- <style lang="scss" scoped>
22
- .ks-scrollbar {
23
- .ks-contents {
24
- padding: 0 20px;
25
- }
26
- }
27
- </style>
@@ -1,8 +0,0 @@
1
- import YksSelect from './src/index';
2
-
3
- /* istanbul ignore next */
4
- YksSelect.install = function(Vue) {
5
- Vue.component(YksSelect.name, YksSelect);
6
- };
7
-
8
- export default YksSelect;