yks-element 1.0.4 → 1.0.5

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 (190) hide show
  1. package/README.md +7 -3
  2. package/lib/theme-chalk/common.css +1 -1
  3. package/lib/theme-chalk/index.css +1 -1
  4. package/lib/theme-chalk/paginations.css +1 -1
  5. package/lib/theme-chalk/selects.css +1 -1
  6. package/lib/yks.js +1 -1
  7. package/package.json +1 -3
  8. package/lib/theme-chalk/topic.css +0 -1
  9. package/packages/Dialog/index.js +0 -8
  10. package/packages/Dialog/src/index.vue +0 -89
  11. package/packages/Multimedia/index.js +0 -8
  12. package/packages/Multimedia/src/index.vue +0 -136
  13. package/packages/Pagination/index.js +0 -8
  14. package/packages/Pagination/src/index.vue +0 -111
  15. package/packages/Scrollbar/index.js +0 -8
  16. package/packages/Scrollbar/src/index.vue +0 -20
  17. package/packages/Select/index.js +0 -8
  18. package/packages/Select/src/index.vue +0 -350
  19. package/packages/Select/src/option.vue +0 -29
  20. package/packages/Table/index.js +0 -8
  21. package/packages/Table/src/index.vue +0 -141
  22. package/packages/Tinymce/index.js +0 -8
  23. package/packages/Tinymce/src/config.js +0 -25
  24. package/packages/Tinymce/src/index.vue +0 -450
  25. package/packages/Topic/index.js +0 -23
  26. package/packages/Topic/src/attachment.vue +0 -114
  27. package/packages/Topic/src/audioFrequency.vue +0 -114
  28. package/packages/Topic/src/clozeFillInBlanks.vue +0 -237
  29. package/packages/Topic/src/compound.vue +0 -191
  30. package/packages/Topic/src/config.js +0 -132
  31. package/packages/Topic/src/fillInBlanks.vue +0 -242
  32. package/packages/Topic/src/indefiniteChoice.vue +0 -0
  33. package/packages/Topic/src/judgment.vue +0 -110
  34. package/packages/Topic/src/matching.vue +0 -0
  35. package/packages/Topic/src/multiple.vue +0 -163
  36. package/packages/Topic/src/pictureAnswer.vue +0 -113
  37. package/packages/Topic/src/shortAnswer.vue +0 -124
  38. package/packages/Topic/src/single.vue +0 -163
  39. package/packages/UploadFile/index.js +0 -8
  40. package/packages/UploadFile/src/index.vue +0 -358
  41. package/packages/Video/index.js +0 -8
  42. package/packages/Video/src/index.vue +0 -204
  43. package/packages/assets/mixins/topic.js +0 -137
  44. package/packages/assets/utils/index.js +0 -83
  45. package/packages/assets/utils/topic.js +0 -132
  46. package/packages/icon/default/icons.js +0 -182
  47. package/packages/icon/default/icons.min.js +0 -1
  48. package/packages/icon/default/index.js +0 -7
  49. package/packages/icon/ks-pdf.png +0 -0
  50. package/packages/icon/ks-ppt.png +0 -0
  51. package/packages/icon/ks-word.png +0 -0
  52. package/packages/icon/ks-xslx.png +0 -0
  53. package/packages/icon/music-bg.png +0 -0
  54. package/packages/icon/video-bg.png +0 -0
  55. package/packages/index.js +0 -221
  56. package/packages/option/index.js +0 -6
  57. package/packages/styles/_mixin.scss +0 -93
  58. package/packages/styles/_variables.scss +0 -40
  59. package/packages/styles/alert.scss +0 -147
  60. package/packages/styles/aside.scss +0 -7
  61. package/packages/styles/autocomplete.scss +0 -80
  62. package/packages/styles/avatar.scss +0 -51
  63. package/packages/styles/backtop.scss +0 -22
  64. package/packages/styles/badge.scss +0 -57
  65. package/packages/styles/base.scss +0 -2
  66. package/packages/styles/breadcrumb-item.scss +0 -0
  67. package/packages/styles/breadcrumb.scss +0 -55
  68. package/packages/styles/button-group.scss +0 -0
  69. package/packages/styles/button.scss +0 -262
  70. package/packages/styles/buttons.scss +0 -59
  71. package/packages/styles/calendar.scss +0 -79
  72. package/packages/styles/card.scss +0 -32
  73. package/packages/styles/carousel-item.scss +0 -50
  74. package/packages/styles/carousel.scss +0 -161
  75. package/packages/styles/cascader-panel.scss +0 -120
  76. package/packages/styles/cascader.scss +0 -182
  77. package/packages/styles/checkbox-button.scss +0 -0
  78. package/packages/styles/checkbox-group.scss +0 -0
  79. package/packages/styles/checkbox.scss +0 -359
  80. package/packages/styles/col.scss +0 -156
  81. package/packages/styles/collapse-item.scss +0 -0
  82. package/packages/styles/collapse.scss +0 -63
  83. package/packages/styles/color-picker.scss +0 -384
  84. package/packages/styles/common/popup.scss +0 -42
  85. package/packages/styles/common/transition.scss +0 -99
  86. package/packages/styles/common/var.scss +0 -1028
  87. package/packages/styles/common.scss +0 -204
  88. package/packages/styles/container.scss +0 -14
  89. package/packages/styles/date-picker/date-picker.scss +0 -97
  90. package/packages/styles/date-picker/date-range-picker.scss +0 -101
  91. package/packages/styles/date-picker/date-table.scss +0 -151
  92. package/packages/styles/date-picker/month-table.scss +0 -82
  93. package/packages/styles/date-picker/picker-panel.scss +0 -117
  94. package/packages/styles/date-picker/picker.scss +0 -197
  95. package/packages/styles/date-picker/time-picker.scss +0 -85
  96. package/packages/styles/date-picker/time-range-picker.scss +0 -31
  97. package/packages/styles/date-picker/time-spinner.scss +0 -110
  98. package/packages/styles/date-picker/year-table.scss +0 -51
  99. package/packages/styles/date-picker.scss +0 -12
  100. package/packages/styles/descriptions-item.scss +0 -42
  101. package/packages/styles/descriptions.scss +0 -111
  102. package/packages/styles/dialog.scss +0 -123
  103. package/packages/styles/display.scss +0 -12
  104. package/packages/styles/divider.scss +0 -47
  105. package/packages/styles/drawer.scss +0 -219
  106. package/packages/styles/dropdown-item.scss +0 -0
  107. package/packages/styles/dropdown-menu.scss +0 -0
  108. package/packages/styles/dropdown.scss +0 -182
  109. package/packages/styles/element-ui.scss +0 -135
  110. package/packages/styles/element-variables.scss +0 -794
  111. package/packages/styles/element.scss +0 -86
  112. package/packages/styles/empty.scss +0 -45
  113. package/packages/styles/fonts/element-icons.ttf +0 -0
  114. package/packages/styles/fonts/element-icons.woff +0 -0
  115. package/packages/styles/fonts/iconfont.ttf +0 -0
  116. package/packages/styles/fonts/iconfont.woff +0 -0
  117. package/packages/styles/footer.scss +0 -8
  118. package/packages/styles/form-item.scss +0 -0
  119. package/packages/styles/form.scss +0 -167
  120. package/packages/styles/header.scss +0 -8
  121. package/packages/styles/icon.scss +0 -1167
  122. package/packages/styles/icons.scss +0 -69
  123. package/packages/styles/image.scss +0 -179
  124. package/packages/styles/index.scss +0 -18
  125. package/packages/styles/infinite-scroll.scss +0 -0
  126. package/packages/styles/infiniteScroll.scss +0 -0
  127. package/packages/styles/input-number.scss +0 -180
  128. package/packages/styles/input.scss +0 -360
  129. package/packages/styles/link.scss +0 -81
  130. package/packages/styles/loading.scss +0 -96
  131. package/packages/styles/main.scss +0 -12
  132. package/packages/styles/menu-item-group.scss +0 -0
  133. package/packages/styles/menu-item.scss +0 -0
  134. package/packages/styles/menu.scss +0 -289
  135. package/packages/styles/message-box.scss +0 -226
  136. package/packages/styles/message.scss +0 -120
  137. package/packages/styles/mixins/_button.scss +0 -81
  138. package/packages/styles/mixins/config.scss +0 -4
  139. package/packages/styles/mixins/function.scss +0 -44
  140. package/packages/styles/mixins/mixins.scss +0 -190
  141. package/packages/styles/mixins/utils.scss +0 -39
  142. package/packages/styles/multimedia.scss +0 -58
  143. package/packages/styles/notification.scss +0 -99
  144. package/packages/styles/option-group.scss +0 -42
  145. package/packages/styles/option.scss +0 -36
  146. package/packages/styles/page-header.scss +0 -41
  147. package/packages/styles/pagination.scss +0 -295
  148. package/packages/styles/paginations.scss +0 -33
  149. package/packages/styles/popconfirm.scss +0 -16
  150. package/packages/styles/popover.scss +0 -40
  151. package/packages/styles/popper.scss +0 -101
  152. package/packages/styles/progress.scss +0 -141
  153. package/packages/styles/radio-button.scss +0 -113
  154. package/packages/styles/radio-group.scss +0 -9
  155. package/packages/styles/radio.scss +0 -199
  156. package/packages/styles/rate.scss +0 -49
  157. package/packages/styles/reset.scss +0 -79
  158. package/packages/styles/result.scss +0 -61
  159. package/packages/styles/row.scss +0 -43
  160. package/packages/styles/scrollbar.scss +0 -72
  161. package/packages/styles/scrollbars.scss +0 -5
  162. package/packages/styles/select-dropdown.scss +0 -62
  163. package/packages/styles/select.scss +0 -152
  164. package/packages/styles/selects.scss +0 -98
  165. package/packages/styles/skeleton-item.scss +0 -84
  166. package/packages/styles/skeleton.scss +0 -40
  167. package/packages/styles/slider.scss +0 -250
  168. package/packages/styles/spinner.scss +0 -44
  169. package/packages/styles/step.scss +0 -317
  170. package/packages/styles/steps.scss +0 -20
  171. package/packages/styles/submenu.scss +0 -0
  172. package/packages/styles/switch.scss +0 -116
  173. package/packages/styles/tab-pane.scss +0 -0
  174. package/packages/styles/table-column.scss +0 -97
  175. package/packages/styles/table.scss +0 -564
  176. package/packages/styles/tables.scss +0 -45
  177. package/packages/styles/tabs.scss +0 -602
  178. package/packages/styles/tag.scss +0 -163
  179. package/packages/styles/time-picker.scss +0 -8
  180. package/packages/styles/time-select.scss +0 -37
  181. package/packages/styles/timeline-item.scss +0 -86
  182. package/packages/styles/timeline.scss +0 -14
  183. package/packages/styles/tinymce.scss +0 -43
  184. package/packages/styles/tooltip.scss +0 -141
  185. package/packages/styles/topic.scss +0 -57
  186. package/packages/styles/transfer.scss +0 -227
  187. package/packages/styles/tree.scss +0 -123
  188. package/packages/styles/upload.scss +0 -603
  189. package/packages/styles/uploadfile.scss +0 -34
  190. package/packages/styles/video.scss +0 -98
@@ -1,204 +0,0 @@
1
- <template>
2
- <div class="yks-multimedia__video">
3
- <div
4
- class="yks-stem__videos yks-flex h-center v-center"
5
- :class="{ 'yks-dialog-pause': playing }"
6
- >
7
- <video
8
- :ref="videoId"
9
- :width="width"
10
- :height="height"
11
- :src="src"
12
- :poster="musicBgs"
13
- playsinline
14
- webkit-playsinline
15
- preload="auto"
16
- class="yks-file__videos"
17
- @timeupdate="durationUpdate"
18
- @canplay="getDuration"
19
- ></video>
20
- <div v-if="!isInfinity" class="yks-slider-video">
21
- <i class="el-icon-video-pause video-icon_mini" @click.stop="handlePause"></i>
22
- <Slider
23
- v-model="musicDuration"
24
- :max="musicAllDuration"
25
- height="2px"
26
- :show-tooltip="false"
27
- class="slider__value"
28
- @change="changeMusicDuration"
29
- @mousedown.native="isChange = true"
30
- @mouseup.native="isChange = false"
31
- ></Slider>
32
- <span class="slider__text video-icon_mini">{{ formatTime(musicAllDuration) }}</span>
33
- <i
34
- v-if="fileType === '3'"
35
- class="el-icon-full-screen video-icon_mini"
36
- @click.stop="handleFullScreen"
37
- ></i>
38
- </div>
39
- <div
40
- v-if="!playing || isInfinity"
41
- class="yks-dialog-playing yks-flex h-center v-center"
42
- @click.stop="handlePlaying"
43
- >
44
- <i :class="[`yks-icon-recording ${playingIcon}`]"></i>
45
- </div>
46
- </div>
47
- </div>
48
- </template>
49
- <script>
50
- import videoBg from 'yks/icon/video-bg.png'
51
- import musicBg1 from 'yks/icon/music-bg.png'
52
- import { Slider } from 'element-ui'
53
- import { formatTimeMin } from 'yks/assets/utils/index'
54
- export default {
55
- name: 'YksVideo',
56
- components: {
57
- Slider
58
- },
59
- props: {
60
- src: { type: String, require: true },
61
- width: { type: Number, default: 160 },
62
- height: { type: Number, default: 90 }
63
- },
64
- data() {
65
- return {
66
- /* 播放状态 */
67
- playing: false,
68
- /* 歌曲总时长 */
69
- musicAllDuration: 0,
70
- /* 歌曲当前时长 */
71
- musicDuration: 0,
72
- /* 判断是否被拖动 */
73
- isChange: false,
74
- /* 判断是否为Infinity */
75
- isInfinity: false
76
- }
77
- },
78
- computed: {
79
- playingIcon() {
80
- if (this.playing) {
81
- return 'el-icon-video-pause'
82
- } else {
83
- return 'el-icon-video-play'
84
- }
85
- },
86
- /* 播放背景图 */
87
- musicBgs() {
88
- if (this.fileType === '3') {
89
- return videoBg
90
- }
91
- if (this.playing) {
92
- return 'https://pub-static.yks365.net/assets/image/music-bg.gif'
93
- } else {
94
- return musicBg1
95
- }
96
- },
97
- /* 获取文件后缀 */
98
- fileNameType() {
99
- const url = this.src
100
- return url.substr(url.lastIndexOf('.') + 1).toLowerCase()
101
- },
102
- /* 获取文件类型 */
103
- fileType() {
104
- if (['mp3'].includes(this.fileNameType)) {
105
- return '2'
106
- }
107
- if (['mp4'].includes(this.fileNameType)) {
108
- return '3'
109
- }
110
- return false
111
- },
112
- /* 播放图标 */
113
- iconName() {
114
- if (!this.playing) {
115
- return 'el-icon-video-play'
116
- } else {
117
- return 'el-icon-video-pause'
118
- }
119
- },
120
- /* 组件key */
121
- videoId() {
122
- return `video${Date.now()}${(Math.random() * 1000).toFixed(0)}`
123
- }
124
- },
125
- created() {
126
- /* 监听播放状态 */
127
- this.$nextTick(() => {
128
- if (this.fileType === '2' || this.fileType === '3') {
129
- const video = this.$refs[this.videoId]
130
- video.addEventListener('play', () => {
131
- this.playing = true
132
- })
133
- video.addEventListener('pause', () => {
134
- this.playing = false
135
- })
136
- }
137
- })
138
- },
139
- methods: {
140
- handleFullScreen() {
141
- const video = this.$refs[this.videoId]
142
- const requestMethod =
143
- video.requestFullScreen ||
144
- video.webkitRequestFullScreen ||
145
- video.mozRequestFullScreen ||
146
- video.msRequestFullScreen
147
- if (requestMethod) {
148
- requestMethod.call(video)
149
- } else if (typeof window.ActiveXObject !== 'undefined') {
150
- // eslint-disable-next-line no-undef
151
- const wscript = new ActiveXObject('WScript.Shell')
152
- if (wscript !== null) {
153
- wscript.SendKeys('{F11}')
154
- }
155
- }
156
- },
157
- /* 进度时间转换 */
158
- formatTime(time) {
159
- return formatTimeMin(time)
160
- },
161
- /* 进度条时间定位 */
162
- changeMusicDuration() {
163
- if (this.musicAllDuration !== 0) {
164
- const video = this.$refs[this.videoId]
165
- video.currentTime = this.musicDuration
166
- }
167
- },
168
- /* 获取音视频时长 */
169
- getDuration() {
170
- const video = this.$refs[this.videoId]
171
-
172
- if (!Number.isFinite(video.duration)) {
173
- this.musicAllDuration = 300
174
- this.isInfinity = true
175
- } else {
176
- this.isInfinity = false
177
- this.musicAllDuration = video.duration
178
- }
179
- },
180
- /* 获取音视频播放当前时间 */
181
- durationUpdate() {
182
- if (!this.isChange) {
183
- const video = this.$refs[this.videoId]
184
- this.musicDuration = video.currentTime
185
- }
186
- },
187
- /* 播放 */
188
- handlePlaying() {
189
- if (!this.playing) {
190
- this.$refs[this.videoId].play()
191
- } else {
192
- this.handlePause()
193
- }
194
- },
195
- /* 暂停 */
196
- handlePause() {
197
- if (this.playing) {
198
- this.$refs[this.videoId].pause()
199
- }
200
- }
201
- }
202
- }
203
- </script>
204
-
@@ -1,137 +0,0 @@
1
- import { toolbar, plugins, toolbarSpare } from '../utils/topic'
2
-
3
- export default {
4
- model: {
5
- prop: 'fromData',
6
- event: 'change'
7
- },
8
- props: {
9
- topicDataExtent: {
10
- type: Object,
11
- default: () => {
12
- return {}
13
- }
14
- },
15
- uploadFileCloud: {
16
- required: true,
17
- type: Function
18
- },
19
- fromData: {
20
- required: true,
21
- type: Object,
22
- default: () => {
23
- return {}
24
- }
25
- }
26
- },
27
- data() {
28
- return {
29
- pageLoading: false,
30
- processing: false,
31
- toolbar: toolbar,
32
- toolbarSpare: toolbarSpare,
33
- plugins: plugins,
34
- topic: {
35
- single: '单项选择题',
36
- multiple: '多项选择题',
37
- judgment: '判断题',
38
- short_answer: '简答题'
39
- }
40
- }
41
- },
42
- methods: {
43
- /**
44
- * 获取题类型
45
- * @param {string} type
46
- * @return {Object}
47
- */
48
- getFileType(type, data) {
49
- if (data) {
50
- let params = {}
51
- switch (type) {
52
- case 'stem':
53
- params = {
54
- stem_voiceRecord: 'recording',
55
- stem_video: 'video',
56
- stem_audio: 'audio',
57
- stem_document: 'file'
58
- }
59
- break
60
- case 'answer':
61
- params = {
62
- answer_voiceRecord: 'recording',
63
- answer_video: 'video',
64
- answer_audio: 'audio',
65
- answer_document: 'file'
66
- }
67
- break
68
- case 'option':
69
- params = {
70
- option_voiceRecord: 'recording',
71
- option_video: 'video',
72
- option_audio: 'audio',
73
- option_document: 'file'
74
- }
75
- break
76
- case 'analysis':
77
- params = {
78
- description_voiceRecord: 'recording',
79
- description_video: 'video',
80
- description_audio: 'audio',
81
- description_document: 'file'
82
- }
83
- break
84
- }
85
- const fileType = params[data.type]
86
-
87
- return {
88
- ...data,
89
- fileType
90
- }
91
- }
92
- return false
93
- },
94
- getFileTypes(type, list) {
95
- return (list || []).map((v) => this.getFileType(type, v))
96
- },
97
- async uploadFileToHwCloud(file) {
98
- try {
99
- const fileData = new FormData()
100
- fileData.append('fileType', 'stem')
101
- fileData.append('file', file.blob())
102
- const { data, code } = await this.uploadFileCloud(fileData)
103
- if (code === 20000) {
104
- return data
105
- } else {
106
- return ''
107
- }
108
- } catch (error) {
109
- console.log(error)
110
- return ''
111
- }
112
- },
113
- async uploadFileFunction({ file, fileData }) {
114
- try {
115
- const fileDatas = new FormData()
116
- if (fileData.fileType === 'recording') {
117
- const fileNmae = Date.now() + '.mp3'
118
- const files = new File([file.data], fileNmae)
119
- fileDatas.append('fileType', 'multimediaFile')
120
- fileDatas.append('file', files)
121
- } else {
122
- fileDatas.append('fileType', 'multimediaFile')
123
- fileDatas.append('file', file.raw)
124
- }
125
- const { data, code } = await this.uploadFileCloud(fileDatas)
126
- if (code === 20000) {
127
- return data
128
- } else {
129
- return Promise.reject(new Error('出错了'))
130
- }
131
- } catch (error) {
132
- console.log(error)
133
- return Promise.reject(error)
134
- }
135
- }
136
- }
137
- }
@@ -1,83 +0,0 @@
1
-
2
- /**
3
- * @param {string} time
4
- * @returns {string}
5
- */
6
- export function formatTime(time) {
7
- if (!time) {
8
- return '00:00:00'
9
- }
10
- const value = parseInt(time, 10)
11
- let HH
12
- let MM
13
- let SS
14
- switch (true) {
15
- case value < 60:
16
- if (value < 10) {
17
- SS = '0' + value
18
- } else {
19
- SS = value
20
- }
21
- return `00:00:${SS}`
22
- case value >= 60 && value < 3600:
23
- MM = parseInt((value / 60).toString(), 10)
24
- SS = parseInt((value % 60).toString(), 10)
25
- if (MM < 10) {
26
- MM = '0' + MM
27
- }
28
- if (SS < 10) {
29
- SS = '0' + SS
30
- }
31
- return `00:${MM}:${SS}`
32
- case value >= 3600:
33
- HH = parseInt((value / 3600).toString(), 10)
34
- MM = parseInt((value / 60).toString(), 10) - HH * 60
35
- SS = parseInt((value % 60).toString(), 10)
36
- if (SS < 10) {
37
- SS = '0' + SS
38
- }
39
- if (MM < 10) {
40
- MM = '0' + MM
41
- }
42
- if (SS < 10) {
43
- SS = '0' + SS
44
- }
45
- return `${HH}:${MM}:${SS}`
46
- default:
47
- throw new Error('Val data is abnormal, please check the data!')
48
- }
49
- }
50
-
51
- /**
52
- * @param {string} time
53
- * @returns {string}
54
- */
55
- export function formatTimeMin(time) {
56
- if (!time) {
57
- return '00:00'
58
- }
59
- const value = parseInt(time, 10)
60
- let MM
61
- let SS
62
- switch (true) {
63
- case value < 60:
64
- if (value < 10) {
65
- SS = '0' + value
66
- } else {
67
- SS = value
68
- }
69
- return `00:${SS}`
70
- case value >= 60:
71
- MM = parseInt((value / 60).toString(), 10)
72
- SS = parseInt((value % 60).toString(), 10)
73
- if (MM < 10) {
74
- MM = '0' + MM
75
- }
76
- if (SS < 10) {
77
- SS = '0' + SS
78
- }
79
- return `${MM}:${SS}`
80
- default:
81
- throw new Error('Val data is abnormal, please check the data!')
82
- }
83
- }
@@ -1,132 +0,0 @@
1
- /**
2
- * uploadRecording 录音
3
- * uploadVideo 视频
4
- * uploadAudio 音频
5
- * uploadFile 文件
6
- */
7
-
8
- export const toolbar = [
9
- 'bold underline italic strikethrough | kityformula-editor subscript superscript charmap | link image | table | removeformat | uploadRecording uploadVideo uploadAudio uploadFile'
10
- ]
11
-
12
- /* 选项、填空等 */
13
- export const toolbarSpare = ['kityformula-editor subscript superscript charmap']
14
-
15
- /* 插件 */
16
- export const plugins = ['kityformula-editor powerpaste lists image media table charmap imagetools']
17
-
18
- /* 选项字符 */
19
- export const letter = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N']
20
-
21
- /* 自定义添加菜单项(录音、上传视频、上传音乐、上传文件):题干 / 标题 - 类型 */
22
- export const stemItemType = {
23
- recording: 'stem_voiceRecord',
24
- video: 'stem_video',
25
- audio: 'stem_audio',
26
- file: 'stem_document'
27
- }
28
-
29
- /* 自定义添加菜单项(录音、上传视频、上传音乐、上传文件): 标准答案 - 类型 */
30
- export const shortItemType = {
31
- recording: 'answer_voiceRecord',
32
- video: 'answer_video',
33
- audio: 'answer_audio',
34
- file: 'answer_document'
35
- }
36
-
37
- /* 自定义添加菜单项(录音、上传视频、上传音乐、上传文件): 选项 - 类型 */
38
- export const optionItemType = {
39
- recording: 'option_voiceRecord',
40
- video: 'option_video',
41
- audio: 'option_audio',
42
- file: 'option_document'
43
- }
44
-
45
- /* 自定义添加菜单项(录音、上传视频、上传音乐、上传文件): 答案解析 - 类型 */
46
- export const analysisItemType = {
47
- recording: 'description_voiceRecord',
48
- video: 'description_video',
49
- audio: 'description_audio',
50
- file: 'description_document'
51
- }
52
-
53
- /**
54
- * 获取题类型
55
- * @param {string} type
56
- * @return {Object}
57
- */
58
- export const getFileType = (type, data) => {
59
- if (data) {
60
- let params = {}
61
- switch (type) {
62
- case 'stem':
63
- params = {
64
- stem_voiceRecord: 'recording',
65
- stem_video: 'video',
66
- stem_audio: 'audio',
67
- stem_document: 'file'
68
- }
69
- break
70
- case 'answer':
71
- params = {
72
- answer_voiceRecord: 'recording',
73
- answer_video: 'video',
74
- answer_audio: 'audio',
75
- answer_document: 'file'
76
- }
77
- break
78
- case 'option':
79
- params = {
80
- option_voiceRecord: 'recording',
81
- option_video: 'video',
82
- option_audio: 'audio',
83
- option_document: 'file'
84
- }
85
- break
86
- case 'analysis':
87
- params = {
88
- description_voiceRecord: 'recording',
89
- description_video: 'video',
90
- description_audio: 'audio',
91
- description_document: 'file'
92
- }
93
- break
94
- }
95
- const fileType = params[data.type]
96
-
97
- return {
98
- ...data,
99
- fileType
100
- }
101
- }
102
- return false
103
- }
104
-
105
- export const itemDataLists = () => {
106
- return [
107
- {
108
- optionName: 'A',
109
- content: '',
110
- optionAttrs: [],
111
- score: ''
112
- },
113
- {
114
- optionName: 'B',
115
- content: '',
116
- optionAttrs: [],
117
- score: ''
118
- },
119
- {
120
- optionName: 'C',
121
- content: '',
122
- optionAttrs: [],
123
- score: ''
124
- },
125
- {
126
- optionName: 'D',
127
- content: '',
128
- optionAttrs: [],
129
- score: ''
130
- }
131
- ]
132
- }