askbot-dragon 1.5.21 → 1.5.22

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 (87) hide show
  1. package/README.md +27 -27
  2. package/babel.config.js +6 -6
  3. package/dragon.iml +7 -7
  4. package/package.json +59 -58
  5. package/public/index.html +74 -74
  6. package/src/App.vue +31 -31
  7. package/src/api/index.js +1 -1
  8. package/src/api/mock.http +2 -2
  9. package/src/api/requestUrl.js +185 -185
  10. package/src/assets/js/AliyunlssUtil.js +92 -92
  11. package/src/assets/js/Base64Util.js +22 -22
  12. package/src/assets/js/common.js +11 -11
  13. package/src/assets/js/hammer.js +89 -89
  14. package/src/assets/js/obsBrowser.js +32 -0
  15. package/src/assets/js/script.js +36 -36
  16. package/src/assets/less/common.css +6773 -6773
  17. package/src/assets/less/converSationContainer/common.less +192 -192
  18. package/src/assets/less/converSationContainer/converSatonContainer.less +493 -493
  19. package/src/assets/less/iconfont.css +37 -37
  20. package/src/assets/less/ticketMessage.less +294 -294
  21. package/src/components/ActionAlertIframe.vue +112 -112
  22. package/src/components/AiGuide.vue +467 -467
  23. package/src/components/AnswerDocknowledge.vue +492 -492
  24. package/src/components/AnswerVoice.vue +285 -285
  25. package/src/components/AskIFrame.vue +15 -15
  26. package/src/components/ConversationContainer.vue +5089 -5089
  27. package/src/components/FileType.vue +86 -86
  28. package/src/components/Message.vue +27 -27
  29. package/src/components/actionSatisfaction.vue +107 -107
  30. package/src/components/actionSendToBot.vue +62 -62
  31. package/src/components/answerDissatisfaction.vue +62 -62
  32. package/src/components/answerRadio.vue +131 -131
  33. package/src/components/ask-components/DissatisfactionOptions.vue +57 -57
  34. package/src/components/ask-components/Msgloading.vue +37 -37
  35. package/src/components/ask-components/SatisfactionV2.vue +15 -15
  36. package/src/components/askVideo.vue +141 -138
  37. package/src/components/assetDetails.vue +370 -370
  38. package/src/components/assetMessage.vue +228 -228
  39. package/src/components/associationIntention.vue +349 -349
  40. package/src/components/attachmentPreview.vue +90 -90
  41. package/src/components/botActionSatisfactor.vue +68 -68
  42. package/src/components/chatContent.vue +513 -513
  43. package/src/components/feedBack.vue +136 -136
  44. package/src/components/fielListView.vue +351 -351
  45. package/src/components/file/AliyunOssComponents.vue +108 -108
  46. package/src/components/formTemplate.vue +3562 -3557
  47. package/src/components/kkview.vue +1138 -1138
  48. package/src/components/loadingProcess.vue +164 -164
  49. package/src/components/message/ActionAlertIframe.vue +112 -112
  50. package/src/components/message/ShopMessage.vue +164 -164
  51. package/src/components/message/TextMessage.vue +924 -924
  52. package/src/components/message/TicketMessage.vue +201 -201
  53. package/src/components/message/swiper/index.js +4 -4
  54. package/src/components/message/swiper/ticketSwiper.vue +503 -503
  55. package/src/components/message/swiper/ticketSwiperItem.vue +61 -61
  56. package/src/components/msgLoading.vue +231 -231
  57. package/src/components/myPopup.vue +70 -70
  58. package/src/components/pdfPosition.vue +1322 -1322
  59. package/src/components/popup.vue +227 -227
  60. package/src/components/previewDoc.vue +242 -242
  61. package/src/components/previewPdf.vue +302 -302
  62. package/src/components/receiverMessagePlatform.vue +65 -65
  63. package/src/components/recommend.vue +89 -89
  64. package/src/components/selector/hOption.vue +20 -20
  65. package/src/components/selector/hSelector.vue +199 -199
  66. package/src/components/selector/hWrapper.vue +216 -216
  67. package/src/components/senderMessagePlatform.vue +50 -50
  68. package/src/components/source/BotMessage.vue +24 -24
  69. package/src/components/source/CustomMessage.vue +24 -24
  70. package/src/components/test.vue +260 -260
  71. package/src/components/tree.vue +294 -294
  72. package/src/components/utils/AliyunIssUtil.js +81 -81
  73. package/src/components/utils/ckeditor.js +177 -174
  74. package/src/components/utils/ckeditorImageUpload/command.js +111 -109
  75. package/src/components/utils/ckeditorImageUpload/editing.js +11 -11
  76. package/src/components/utils/ckeditorImageUpload/plugin-image.js +11 -11
  77. package/src/components/utils/ckeditorImageUpload/toolbar-ui.js +40 -40
  78. package/src/components/utils/ckeditorfileUpload/common.js +173 -180
  79. package/src/components/utils/ckeditorfileUpload/editing.js +11 -11
  80. package/src/components/utils/ckeditorfileUpload/plugin_file.js +11 -11
  81. package/src/components/utils/ckeditorfileUpload/toolbar_ui.js +34 -34
  82. package/src/components/utils/format_date.js +25 -25
  83. package/src/components/utils/index.js +6 -6
  84. package/src/components/utils/math_utils.js +29 -29
  85. package/src/components/voiceComponent.vue +119 -119
  86. package/src/main.js +60 -60
  87. package/vue.config.js +55 -55
@@ -1,371 +1,371 @@
1
- <template>
2
- <div class="asset">
3
- <div class="asset-details">
4
- <section class="details-title">
5
- <p>您正在咨询</p>
6
- <span v-if="!isThirdParty" @click="rotateClick" :class="rotateFlag ? 'rotate' : ''">
7
- <i class="arsenal_icon arsenalangle-up-solid"></i>
8
- </span>
9
- </section>
10
- <div class="details-content" v-if="!isThirdParty">
11
- <img
12
- class="backgroundImg"
13
- v-if="dataDetails.product.productImgPathes && dataDetails.product.productImgPathes.length != 0"
14
- :src="dataDetails.product.productImgPathes"
15
- alt=""
16
- />
17
- <div class="background-null" v-else>
18
- {{ dataDetails.productName | filterName }}
19
- </div>
20
- <div class="content-text">
21
- <p class="text-title">{{ dataDetails.productName }}</p>
22
- <section class="text-label">
23
- <p class="text-type">
24
- <i class="iconfont guoran-biaoqian"></i>
25
- <span>{{
26
- dataDetails.typeName ? dataDetails.typeName : "--"
27
- }}</span>
28
- </p>
29
- <p class="text-SN">
30
- <i class="iconfont guoran-xinghao"></i>
31
- <span>{{ dataDetails.snNo ? dataDetails.snNo : "--" }}</span>
32
- </p>
33
- </section>
34
- </div>
35
- </div>
36
- <div class="details-content" v-if="isThirdParty">
37
- <img
38
- class="backgroundImg"
39
- v-if="dataDetails.product.productImgPathes && dataDetails.product.productImgPathes.length != 0"
40
- :src="dataDetails.product.productImgPathes"
41
- alt=""
42
- />
43
- <div class="background-null" v-else>
44
- {{ dataDetails.name | filterName }}
45
- </div>
46
- <div class="content-text">
47
- <p class="text-title">{{ dataDetails.name }}</p>
48
- <section class="text-label">
49
- <p class="text-type">
50
- <i class="iconfont guoran-bumen"></i>
51
- <span
52
- v-if="
53
- dataDetails.depts &&
54
- dataDetails.depts.length != 0 &&
55
- dataDetails.depts[0].wechatBotDTO &&
56
- dataDetails.depts[0].wechatBotDTO.wechatType == 0 &&
57
- dataDetails.depts[0].wechatBotDTO.bindType == 0
58
- "
59
- >
60
- <ww-open-data
61
- type="departmentName"
62
- :openid="dataDetails.depts[0].name"
63
- ></ww-open-data>
64
- </span>
65
- <span v-else>
66
- {{ (dataDetails.depts && dataDetails.depts[0]) ? dataDetails.depts[0].name : "--" }}
67
- </span>
68
- </p>
69
- <p class="text-SN">
70
- <i class="iconfont guoran-tongyichicun-mingcheng"></i>
71
- <span>{{ dataDetails.thirdAssetsCode ? dataDetails.thirdAssetsCode : "--" }}</span>
72
- </p>
73
- </section>
74
- </div>
75
- </div>
76
- <div class="details-content-hide" v-if="rotateFlag && !isThirdParty">
77
- <p>
78
- <i class="iconfont guoran-miaoshu"></i>
79
- <section class="description">
80
- <section class="img-view" v-if="imgList.length != 0">
81
- <template v-for="(item, index) in imgList">
82
- <img :src="item" alt="" :key="index" />
83
- </template>
84
- </section>
85
- <span>{{
86
- dataDetails.description ? dataDetails.description : "--"
87
- }}</span>
88
- </section>
89
- </p>
90
- <p>
91
- <i class="arsenal_icon arsenalweizhi"></i>
92
- <span> {{ dataDetails.officeAreaName }} </span>
93
- </p>
94
- <p>
95
- <i class="iconfont guoran-geren"></i>
96
- <span
97
- v-if="
98
- dataDetails.users &&
99
- dataDetails.users.length != 0 &&
100
- dataDetails.users.type == 0 &&
101
- dataDetails.users.bindType == 0
102
- "
103
- >
104
- <ww-open-data
105
- type="userName"
106
- :openid="dataDetails.users[0].name"
107
- ></ww-open-data>
108
- </span>
109
- <span v-else>
110
- {{ (dataDetails.users && dataDetails.users[0]) ? dataDetails.users[0].name : "--" }}
111
- </span>
112
- </p>
113
- <p>
114
- <i class="iconfont guoran-bumen"></i>
115
- <span
116
- v-if="
117
- dataDetails.depts &&
118
- dataDetails.depts.length != 0 &&
119
- dataDetails.depts[0].wechatBotDTO &&
120
- dataDetails.depts[0].wechatBotDTO.wechatType == 0 &&
121
- dataDetails.depts[0].wechatBotDTO.bindType == 0
122
- "
123
- >
124
- <ww-open-data
125
- type="departmentName"
126
- :openid="dataDetails.depts[0].name"
127
- ></ww-open-data>
128
- </span>
129
- <span v-else>
130
- {{ (dataDetails.depts && dataDetails.depts[0]) ? dataDetails.depts[0].name : "--" }}
131
- </span>
132
- </p>
133
- <p>
134
- <i class="iconfont guoran-guanlizhe"></i>
135
- <span
136
- v-if="
137
- dataDetails.managers &&
138
- dataDetails.managers.length != 0 &&
139
- dataDetails.managers.type == 0 &&
140
- dataDetails.managers.bindType == 0
141
- "
142
- >
143
- <ww-open-data
144
- type="userName"
145
- :openid="dataDetails.managers[0].name"
146
- ></ww-open-data>
147
- </span>
148
- <span>
149
- {{ (dataDetails.managers && dataDetails.managers[0]) ? dataDetails.managers[0].name : "--" }}
150
- </span>
151
- </p>
152
- </div>
153
- </div>
154
- </div>
155
- </template>
156
-
157
- <script>
158
- export default {
159
- props: {
160
- data: {
161
- type: Object,
162
- },
163
- },
164
- data() {
165
- return {
166
- detailVisable: false,
167
- rotateFlag: true,
168
- imgList: [],
169
- };
170
- },
171
- filters: {
172
- filterName(value) {
173
- let str = "";
174
- let reg =
175
- /^(?:[\u3400-\u4DB5\u4E00-\u9FEA\uFA0E\uFA0F\uFA11\uFA13\uFA14\uFA1F\uFA21\uFA23\uFA24\uFA27-\uFA29]|[\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0])+$/;
176
- if (reg.test(value[0])) {
177
- str = value[0];
178
- } else {
179
- str = value[0] + value[1];
180
- }
181
- return str;
182
- },
183
- },
184
- computed: {
185
- dataDetails() {
186
- let dataDetails = this.data.assets;
187
- if (dataDetails.description) {
188
- let reg = /<\/?.+?\/?>/g;
189
- let imgReg = /<img.*?(?:>|\/>)/gi;
190
- //匹配src属性
191
- let srcReg = /src=[\'\"]?([^\'\"]*)[\'\"]?/i;
192
- let arr = dataDetails.description.match(imgReg);
193
- if (arr) {
194
- for (var i = 0; i < arr.length; i++) {
195
- var src = arr[i].match(srcReg);
196
- if (src[1]) {
197
- this.imgList.push(src[1]);
198
- }
199
- }
200
- }
201
- dataDetails.description =
202
- dataDetails.description &&
203
- dataDetails.description.replace(/&nbsp;/gi, "");
204
- dataDetails.description = dataDetails.description
205
- ? dataDetails.description.replace(reg, "")
206
- : "";
207
- }
208
- return dataDetails;
209
- },
210
- isThirdParty() {
211
- return this.data.assets.thirdAssetsCode
212
- }
213
- },
214
- methods: {
215
- rotateClick() {
216
- this.rotateFlag = !this.rotateFlag;
217
- },
218
- },
219
- };
220
- </script>
221
-
222
- <style lang="less" scoped>
223
- @import url("../assets/less/iconfont.css");
224
- .asset {
225
- width: 100%;
226
- box-sizing: border-box;
227
- padding-right: 15px;
228
- }
229
- .asset-details {
230
- width: 100%;
231
- // height: 130px;
232
- box-sizing: border-box;
233
- background: #ffffff;
234
- box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.03);
235
- border-radius: 13px;
236
- .details-title {
237
- display: flex;
238
- height: 45px;
239
- justify-content: space-between;
240
- align-items: center;
241
- border-bottom: 1px solid #eeeeee;
242
- box-sizing: border-box;
243
- padding: 10px;
244
- p {
245
- font-size: 17px;
246
- font-weight: bold;
247
- color: #000000;
248
- }
249
- span {
250
- width: 25px;
251
- height: 25px;
252
- line-height: 25px;
253
- text-align: center;
254
- border-radius: 25px;
255
- border: 1px solid #366aff;
256
- i {
257
- color: #366aff;
258
- }
259
- }
260
- .rotate {
261
- transform: rotate(180deg);
262
- }
263
- }
264
- .details-content {
265
- width: 100%;
266
- min-height: 85px;
267
- box-sizing: border-box;
268
- padding: 15px 15px;
269
- display: flex;
270
- align-items: center;
271
- .backgroundImg {
272
- width: 67px;
273
- height: 51px;
274
- margin-right: 15px;
275
- }
276
- .background-null {
277
- width: 51px;
278
- min-height: 51px;
279
- background: #366aff;
280
- border-radius: 51px;
281
- line-height: 51px;
282
- text-align: center;
283
- font-size: 24px;
284
- color: #ffffff;
285
- margin-right: 15px;
286
- }
287
- .content-text {
288
- width: calc(100% - 90px);
289
- height: 100%;
290
- display: flex;
291
- flex-direction: column;
292
- justify-content: space-between;
293
- .text-title {
294
- width: 100%;
295
- font-weight: bold;
296
- color: #000000;
297
- font-size: 15px;
298
- text-overflow: hidden;
299
- // overflow-wrap: each();
300
- }
301
- .text-label {
302
- width: 100%;
303
- display: flex;
304
- flex-wrap: wrap;
305
- p {
306
- margin-right: 10px;
307
- display: flex;
308
- align-items: center;
309
- i {
310
- margin-right: 3px;
311
- }
312
- }
313
- .text-type {
314
- background: #e1faf9;
315
- box-sizing: border-box;
316
- padding: 3px 5px;
317
- i {
318
- color: #00c2bb;
319
- }
320
- span {
321
- color: #00c2bb;
322
- }
323
- }
324
- .text-SN {
325
- background: #edf2ff;
326
- box-sizing: border-box;
327
- padding: 3px 5px;
328
- i {
329
- color: #366aff;
330
- }
331
- span {
332
- color: #366aff;
333
- }
334
- }
335
- }
336
- }
337
- }
338
- .details-content-hide {
339
- width: 100%;
340
- min-height: 140px;
341
- box-sizing: border-box;
342
- padding: 10px 15px;
343
- border-top: 1px solid #eeeeee;
344
- p {
345
- margin-bottom: 5px;
346
- display: flex;
347
- align-items: center;
348
- i {
349
- margin-right: 10px;
350
- color: #366aff;
351
- }
352
- }
353
- .description {
354
- max-width: 95%;
355
- .img-view {
356
- width: 100%;
357
- display: flex;
358
- flex-direction: row;
359
- flex-wrap: wrap;
360
- justify-content: space-between;
361
- align-items: center;
362
- img {
363
- width: 33%;
364
- height: 33%;
365
- margin-bottom: 5px;
366
- }
367
- }
368
- }
369
- }
370
- }
1
+ <template>
2
+ <div class="asset">
3
+ <div class="asset-details">
4
+ <section class="details-title">
5
+ <p>您正在咨询</p>
6
+ <span v-if="!isThirdParty" @click="rotateClick" :class="rotateFlag ? 'rotate' : ''">
7
+ <i class="arsenal_icon arsenalangle-up-solid"></i>
8
+ </span>
9
+ </section>
10
+ <div class="details-content" v-if="!isThirdParty">
11
+ <img
12
+ class="backgroundImg"
13
+ v-if="dataDetails.product.productImgPathes && dataDetails.product.productImgPathes.length != 0"
14
+ :src="dataDetails.product.productImgPathes"
15
+ alt=""
16
+ />
17
+ <div class="background-null" v-else>
18
+ {{ dataDetails.productName | filterName }}
19
+ </div>
20
+ <div class="content-text">
21
+ <p class="text-title">{{ dataDetails.productName }}</p>
22
+ <section class="text-label">
23
+ <p class="text-type">
24
+ <i class="iconfont guoran-biaoqian"></i>
25
+ <span>{{
26
+ dataDetails.typeName ? dataDetails.typeName : "--"
27
+ }}</span>
28
+ </p>
29
+ <p class="text-SN">
30
+ <i class="iconfont guoran-xinghao"></i>
31
+ <span>{{ dataDetails.snNo ? dataDetails.snNo : "--" }}</span>
32
+ </p>
33
+ </section>
34
+ </div>
35
+ </div>
36
+ <div class="details-content" v-if="isThirdParty">
37
+ <img
38
+ class="backgroundImg"
39
+ v-if="dataDetails.product.productImgPathes && dataDetails.product.productImgPathes.length != 0"
40
+ :src="dataDetails.product.productImgPathes"
41
+ alt=""
42
+ />
43
+ <div class="background-null" v-else>
44
+ {{ dataDetails.name | filterName }}
45
+ </div>
46
+ <div class="content-text">
47
+ <p class="text-title">{{ dataDetails.name }}</p>
48
+ <section class="text-label">
49
+ <p class="text-type">
50
+ <i class="iconfont guoran-bumen"></i>
51
+ <span
52
+ v-if="
53
+ dataDetails.depts &&
54
+ dataDetails.depts.length != 0 &&
55
+ dataDetails.depts[0].wechatBotDTO &&
56
+ dataDetails.depts[0].wechatBotDTO.wechatType == 0 &&
57
+ dataDetails.depts[0].wechatBotDTO.bindType == 0
58
+ "
59
+ >
60
+ <ww-open-data
61
+ type="departmentName"
62
+ :openid="dataDetails.depts[0].name"
63
+ ></ww-open-data>
64
+ </span>
65
+ <span v-else>
66
+ {{ (dataDetails.depts && dataDetails.depts[0]) ? dataDetails.depts[0].name : "--" }}
67
+ </span>
68
+ </p>
69
+ <p class="text-SN">
70
+ <i class="iconfont guoran-tongyichicun-mingcheng"></i>
71
+ <span>{{ dataDetails.thirdAssetsCode ? dataDetails.thirdAssetsCode : "--" }}</span>
72
+ </p>
73
+ </section>
74
+ </div>
75
+ </div>
76
+ <div class="details-content-hide" v-if="rotateFlag && !isThirdParty">
77
+ <p>
78
+ <i class="iconfont guoran-miaoshu"></i>
79
+ <section class="description">
80
+ <section class="img-view" v-if="imgList.length != 0">
81
+ <template v-for="(item, index) in imgList">
82
+ <img :src="item" alt="" :key="index" />
83
+ </template>
84
+ </section>
85
+ <span>{{
86
+ dataDetails.description ? dataDetails.description : "--"
87
+ }}</span>
88
+ </section>
89
+ </p>
90
+ <p>
91
+ <i class="arsenal_icon arsenalweizhi"></i>
92
+ <span> {{ dataDetails.officeAreaName }} </span>
93
+ </p>
94
+ <p>
95
+ <i class="iconfont guoran-geren"></i>
96
+ <span
97
+ v-if="
98
+ dataDetails.users &&
99
+ dataDetails.users.length != 0 &&
100
+ dataDetails.users.type == 0 &&
101
+ dataDetails.users.bindType == 0
102
+ "
103
+ >
104
+ <ww-open-data
105
+ type="userName"
106
+ :openid="dataDetails.users[0].name"
107
+ ></ww-open-data>
108
+ </span>
109
+ <span v-else>
110
+ {{ (dataDetails.users && dataDetails.users[0]) ? dataDetails.users[0].name : "--" }}
111
+ </span>
112
+ </p>
113
+ <p>
114
+ <i class="iconfont guoran-bumen"></i>
115
+ <span
116
+ v-if="
117
+ dataDetails.depts &&
118
+ dataDetails.depts.length != 0 &&
119
+ dataDetails.depts[0].wechatBotDTO &&
120
+ dataDetails.depts[0].wechatBotDTO.wechatType == 0 &&
121
+ dataDetails.depts[0].wechatBotDTO.bindType == 0
122
+ "
123
+ >
124
+ <ww-open-data
125
+ type="departmentName"
126
+ :openid="dataDetails.depts[0].name"
127
+ ></ww-open-data>
128
+ </span>
129
+ <span v-else>
130
+ {{ (dataDetails.depts && dataDetails.depts[0]) ? dataDetails.depts[0].name : "--" }}
131
+ </span>
132
+ </p>
133
+ <p>
134
+ <i class="iconfont guoran-guanlizhe"></i>
135
+ <span
136
+ v-if="
137
+ dataDetails.managers &&
138
+ dataDetails.managers.length != 0 &&
139
+ dataDetails.managers.type == 0 &&
140
+ dataDetails.managers.bindType == 0
141
+ "
142
+ >
143
+ <ww-open-data
144
+ type="userName"
145
+ :openid="dataDetails.managers[0].name"
146
+ ></ww-open-data>
147
+ </span>
148
+ <span>
149
+ {{ (dataDetails.managers && dataDetails.managers[0]) ? dataDetails.managers[0].name : "--" }}
150
+ </span>
151
+ </p>
152
+ </div>
153
+ </div>
154
+ </div>
155
+ </template>
156
+
157
+ <script>
158
+ export default {
159
+ props: {
160
+ data: {
161
+ type: Object,
162
+ },
163
+ },
164
+ data() {
165
+ return {
166
+ detailVisable: false,
167
+ rotateFlag: true,
168
+ imgList: [],
169
+ };
170
+ },
171
+ filters: {
172
+ filterName(value) {
173
+ let str = "";
174
+ let reg =
175
+ /^(?:[\u3400-\u4DB5\u4E00-\u9FEA\uFA0E\uFA0F\uFA11\uFA13\uFA14\uFA1F\uFA21\uFA23\uFA24\uFA27-\uFA29]|[\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0])+$/;
176
+ if (reg.test(value[0])) {
177
+ str = value[0];
178
+ } else {
179
+ str = value[0] + value[1];
180
+ }
181
+ return str;
182
+ },
183
+ },
184
+ computed: {
185
+ dataDetails() {
186
+ let dataDetails = this.data.assets;
187
+ if (dataDetails.description) {
188
+ let reg = /<\/?.+?\/?>/g;
189
+ let imgReg = /<img.*?(?:>|\/>)/gi;
190
+ //匹配src属性
191
+ let srcReg = /src=[\'\"]?([^\'\"]*)[\'\"]?/i;
192
+ let arr = dataDetails.description.match(imgReg);
193
+ if (arr) {
194
+ for (var i = 0; i < arr.length; i++) {
195
+ var src = arr[i].match(srcReg);
196
+ if (src[1]) {
197
+ this.imgList.push(src[1]);
198
+ }
199
+ }
200
+ }
201
+ dataDetails.description =
202
+ dataDetails.description &&
203
+ dataDetails.description.replace(/&nbsp;/gi, "");
204
+ dataDetails.description = dataDetails.description
205
+ ? dataDetails.description.replace(reg, "")
206
+ : "";
207
+ }
208
+ return dataDetails;
209
+ },
210
+ isThirdParty() {
211
+ return this.data.assets.thirdAssetsCode
212
+ }
213
+ },
214
+ methods: {
215
+ rotateClick() {
216
+ this.rotateFlag = !this.rotateFlag;
217
+ },
218
+ },
219
+ };
220
+ </script>
221
+
222
+ <style lang="less" scoped>
223
+ @import url("../assets/less/iconfont.css");
224
+ .asset {
225
+ width: 100%;
226
+ box-sizing: border-box;
227
+ padding-right: 15px;
228
+ }
229
+ .asset-details {
230
+ width: 100%;
231
+ // height: 130px;
232
+ box-sizing: border-box;
233
+ background: #ffffff;
234
+ box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.03);
235
+ border-radius: 13px;
236
+ .details-title {
237
+ display: flex;
238
+ height: 45px;
239
+ justify-content: space-between;
240
+ align-items: center;
241
+ border-bottom: 1px solid #eeeeee;
242
+ box-sizing: border-box;
243
+ padding: 10px;
244
+ p {
245
+ font-size: 17px;
246
+ font-weight: bold;
247
+ color: #000000;
248
+ }
249
+ span {
250
+ width: 25px;
251
+ height: 25px;
252
+ line-height: 25px;
253
+ text-align: center;
254
+ border-radius: 25px;
255
+ border: 1px solid #366aff;
256
+ i {
257
+ color: #366aff;
258
+ }
259
+ }
260
+ .rotate {
261
+ transform: rotate(180deg);
262
+ }
263
+ }
264
+ .details-content {
265
+ width: 100%;
266
+ min-height: 85px;
267
+ box-sizing: border-box;
268
+ padding: 15px 15px;
269
+ display: flex;
270
+ align-items: center;
271
+ .backgroundImg {
272
+ width: 67px;
273
+ height: 51px;
274
+ margin-right: 15px;
275
+ }
276
+ .background-null {
277
+ width: 51px;
278
+ min-height: 51px;
279
+ background: #366aff;
280
+ border-radius: 51px;
281
+ line-height: 51px;
282
+ text-align: center;
283
+ font-size: 24px;
284
+ color: #ffffff;
285
+ margin-right: 15px;
286
+ }
287
+ .content-text {
288
+ width: calc(100% - 90px);
289
+ height: 100%;
290
+ display: flex;
291
+ flex-direction: column;
292
+ justify-content: space-between;
293
+ .text-title {
294
+ width: 100%;
295
+ font-weight: bold;
296
+ color: #000000;
297
+ font-size: 15px;
298
+ text-overflow: hidden;
299
+ // overflow-wrap: each();
300
+ }
301
+ .text-label {
302
+ width: 100%;
303
+ display: flex;
304
+ flex-wrap: wrap;
305
+ p {
306
+ margin-right: 10px;
307
+ display: flex;
308
+ align-items: center;
309
+ i {
310
+ margin-right: 3px;
311
+ }
312
+ }
313
+ .text-type {
314
+ background: #e1faf9;
315
+ box-sizing: border-box;
316
+ padding: 3px 5px;
317
+ i {
318
+ color: #00c2bb;
319
+ }
320
+ span {
321
+ color: #00c2bb;
322
+ }
323
+ }
324
+ .text-SN {
325
+ background: #edf2ff;
326
+ box-sizing: border-box;
327
+ padding: 3px 5px;
328
+ i {
329
+ color: #366aff;
330
+ }
331
+ span {
332
+ color: #366aff;
333
+ }
334
+ }
335
+ }
336
+ }
337
+ }
338
+ .details-content-hide {
339
+ width: 100%;
340
+ min-height: 140px;
341
+ box-sizing: border-box;
342
+ padding: 10px 15px;
343
+ border-top: 1px solid #eeeeee;
344
+ p {
345
+ margin-bottom: 5px;
346
+ display: flex;
347
+ align-items: center;
348
+ i {
349
+ margin-right: 10px;
350
+ color: #366aff;
351
+ }
352
+ }
353
+ .description {
354
+ max-width: 95%;
355
+ .img-view {
356
+ width: 100%;
357
+ display: flex;
358
+ flex-direction: row;
359
+ flex-wrap: wrap;
360
+ justify-content: space-between;
361
+ align-items: center;
362
+ img {
363
+ width: 33%;
364
+ height: 33%;
365
+ margin-bottom: 5px;
366
+ }
367
+ }
368
+ }
369
+ }
370
+ }
371
371
  </style>