centaline-data-driven-v3 0.0.44 → 0.0.46

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "centaline-data-driven-v3",
3
- "version": "0.0.44",
3
+ "version": "0.0.46",
4
4
  "private": false,
5
5
  "description": "centaline-data-driven-v3",
6
6
  "main": "dist/centaline-data-driven-v3.umd.js",
@@ -399,9 +399,8 @@ defineExpose({
399
399
  }
400
400
 
401
401
  .ct-formTable .list-button {
402
- display: flex;
403
- justify-content: right;
404
402
  margin-right: 10px;
403
+ text-align: right;
405
404
  }
406
405
 
407
406
  .select-cost table {
@@ -1,7 +1,7 @@
1
1
  <template>
2
2
  <div class="van-uploader" style="margin:10px 10px 0 10px; ">
3
3
  <div class="van-uploader__wrapper">
4
- <draggable :list="photoList" v-bind="dragOptions" @change="onEnd" class="card" @dragover.prevent @drop.prevent>
4
+ <draggable :list="photoList" v-bind="dragOptions" :distance="1" @change="onEnd" class="card" @dragover.prevent @drop.prevent>
5
5
  <template #item="{ element, index }">
6
6
  <div class="van-uploader__preview" style="display:inline-block;" @click="viewerfile(photoList, index)">
7
7
  <div class="van-image van-uploader__preview-image">
@@ -32,8 +32,7 @@
32
32
  </div>
33
33
  </div>
34
34
  <template v-if="file.mediaTypeID == '1'">
35
- <iframe :src="file.mediaUrl" :height="displayAreaHeight - 80 + 'px'"
36
- :width="displayAreaWidth + 'px'" style="border-width: 0px;">
35
+ <iframe :src="file.mediaUrl" height="100%" width="100%" style="border-width: 0px;">
37
36
  </iframe>
38
37
  </template>
39
38
  <!--Photo-->
@@ -48,11 +47,16 @@
48
47
  <template v-else-if="file.mediaTypeID == '4'">
49
48
  <div class="viewerContent">
50
49
  <template v-if="file.thumbnailUrl">
51
- <video preload="none" :poster="file.thumbnailUrl" :src="file.mediaUrl"
52
- controls="controls" controlslist="nodownload" style="width: 100%;">
53
- 您的浏览器不支持 video 标签。
54
- </video>
55
-
50
+ <template v-if="common.isVideoFile(file.mediaUrl)">
51
+ <video preload="none" :poster="file.thumbnailUrl" :src="file.mediaUrl"
52
+ controls="controls" controlslist="nodownload" style="width: 100%;">
53
+ 您的浏览器不支持 video 标签。
54
+ </video>
55
+ </template>
56
+ <template v-else>
57
+ <iframe :src="file.mediaUrl" height="100%" width="100%" style="border-width: 0px;">
58
+ </iframe>
59
+ </template>
56
60
  </template>
57
61
  <template v-else>
58
62
  <video preload="none" :src="file.mediaUrl" controls="controls" class="viewerContent"
@@ -109,7 +113,7 @@
109
113
  </template>
110
114
  <script setup lang="ts">
111
115
  import { ref, onMounted } from 'vue'
112
-
116
+ import common from '../../utils/common'
113
117
  import viewerImage from './ViewerFile/ViewerImage.vue';
114
118
  import viewerPDF from './ViewerFile/ViewerPDF.vue';
115
119
  import viewerP360 from './ViewerFile/viewerP360.vue';
@@ -191,7 +195,7 @@ function onswipenext() {
191
195
  }
192
196
 
193
197
  .enlarge-picture {
194
- display:flex;
198
+ display: flex;
195
199
  padding: 2px 0;
196
200
  }
197
201
  </style>
@@ -2,7 +2,8 @@
2
2
  <div class="ct-serach-screen" v-if="model">
3
3
  <div class="screen-serach" style="display: flex;flex-direction: row;">
4
4
  <div style="display: flex; flex: 1;">
5
- <van-dropdown-menu v-if="showScreen && screendata.length > 0" active-color="#EE6B6B" style=" width: 100%;">
5
+ <van-dropdown-menu v-if="showScreen && screendata.length > 0" active-color="#EE6B6B"
6
+ style=" width: 100%;">
6
7
  <van-dropdown-item v-for="(field, index) in screendata" :key="index" ref="Refitem"
7
8
  :title-class="field.searchValue || field.searchValue1 ? 'title color-EE6B6B' : 'title'"
8
9
  @open="open(field)" @close="close(field)">
@@ -32,7 +33,6 @@
32
33
  <component :is="field.is" :vmodel="field" ref="Fields"
33
34
  :parameterAction="model.parameterAction" />
34
35
  </template>
35
-
36
36
  <van-sticky position="bottom">
37
37
  <div style="padding: 5px 16px; display: flex;background-color: #ffffff;">
38
38
  <van-button color="#ECECEC" block @click="reset"
@@ -47,8 +47,11 @@
47
47
  </van-dropdown-item>
48
48
  </van-dropdown-menu>
49
49
  </div>
50
- <div style="display: flex;width: 60px;align-items: center;justify-content: center;" v-if="flagsort" @click="clicksort">
51
- <span class="van-ellipsis" style="font-size: 14px;line-height: 22px;color: #323233;">{{sortname != '' ? sortname : '排序'}}</span>
50
+ <div style="display: flex;width: 60px;align-items: center;justify-content: center;" v-if="flagsort"
51
+ @click="clicksort">
52
+ <span class="van-ellipsis" style="font-size: 14px;line-height: 22px;color: #323233;">{{ sortname != '' ?
53
+ sortname :
54
+ '排序' }}</span>
52
55
  <van-icon name="sort" size="13" color="#323233" />
53
56
  </div>
54
57
  </div>
@@ -329,7 +332,7 @@ function getsortfield(field) {
329
332
  function selectsort(ev) {
330
333
  issort.value = false;
331
334
  sortname.value = "";
332
- if(ev.code){
335
+ if (ev.code) {
333
336
  sortname.value = ev.name;
334
337
  }
335
338
  emit("sort", ev);
@@ -7,11 +7,12 @@
7
7
  v-model:file-list="model.fileList" :multiple="true" :auto-upload="true" :action="action()"
8
8
  :data="model.uploadData" :headers="headers" :before-upload="beforeUploadProcess"
9
9
  :on-success="handleAvatarSuccess" :on-error="handleAvatarError" :on-progress="uploadProcess"
10
- :limit="parseInt(model.maxValue1 || 999)" :on-exceed="handleExceed">
11
-
10
+ :limit="parseInt(model.maxValue1 || 999)" :on-exceed="handleExceed"
11
+ :uploadStatus="!model.disableUpload&&!model.locked?'upload':'lock'"
12
+ >
12
13
  <el-icon>
13
14
  <Plus />
14
- </el-icon>
15
+ </el-icon>
15
16
  <template #tip>
16
17
  <div class="el-upload__tip errorMessage" style="white-space:pre-wrap;" v-show="!model.valid"
17
18
  v-html="model.validMessage">
@@ -19,8 +20,10 @@
19
20
  <div v-show="model.description" v-html="model.description">
20
21
  </div>
21
22
  </template>
22
- <img class="qrcode-target" @click.stop="qrcodeFn" ref="QRCodeRef" v-if="model.QRCodeAction"
23
- :src="util.getAssetsImage('serw1.png')" style="width: 35px;height: 35px;" alt="扫码上传" title="扫码上传">
23
+ <div class="qrcode-target" v-if="model.QRCodeAction">
24
+ <img @click.stop="qrcodeFn" ref="QRCodeRef" :src="util.getAssetsImage('serw1.png')"
25
+ style="width: 35px;height: 35px; float: right; " alt="扫码上传" title="扫码上传" />
26
+ </div>
24
27
  <div class="ScanUploadPhoto" v-if="model.qrcodeVisible" @click.stop="qrcodeVisible = true"
25
28
  :style="{ top: model.QRCodeRefTop + 'px', left: model.QRCodeRefLeft + 'px' }">
26
29
  <div style="border-bottom:none">
@@ -103,11 +106,8 @@
103
106
 
104
107
 
105
108
  <div @dragstart="drag($event, file)" @drop="drop($event, file)" @dragover.prevent
106
- @dragenter="dragenter($event, file)" @dragleave="dragleave($event, file)">
107
- <div v-if="file.progressFlag" v-loading="file.progressFlag" style="width: 100px; height: 100px"
108
- element-loading-spinner="el-icon-loading">
109
- </div>
110
- <el-image v-else fit="fill"
109
+ @dragenter="dragenter($event, file)" @dragleave="dragleave($event, file)" >
110
+ <el-image fit="fill"
111
111
  :src="file.url ? file.url : file.mediaUrl ? file.mediaUrl + '/100/100' : util.getAssetsImage('blank.png')"
112
112
  style="width: 100px; height: 100px" :z-index="previewZIndex">
113
113
  </el-image>
@@ -187,11 +187,13 @@ const props = defineProps({
187
187
  })
188
188
  const refct_upload = ref()
189
189
  const refupload = ref()
190
- const QRCodeRef = ref()
191
-
190
+ const QRCodeRef = ref()
192
191
  const UploadhttpRequest = ref({})
192
+ const startfile = ref();
193
+ const endfile = ref();
194
+ const model = ref(null);
195
+
193
196
 
194
- const model = ref(null)
195
197
  const headers = computed(() => {
196
198
  return common.getDataDrivenOpts().handler.getRequestHeaders();
197
199
  })
@@ -222,6 +224,7 @@ function action() {
222
224
  return "";
223
225
  }
224
226
 
227
+
225
228
  function load(data) {
226
229
  model.value = data;
227
230
  model.value.validExcute = () => {
@@ -410,7 +413,7 @@ async function SliceUpload(options) {
410
413
  }
411
414
  // data是上传时附带的额外参数,file是文件
412
415
 
413
- let uid = model.value.uploadguid;
416
+ let uid = File.uploadguid();
414
417
  try {
415
418
  file.uid = file.uid || uid;
416
419
 
@@ -568,8 +571,7 @@ function QRCodeLocate() {
568
571
  }
569
572
 
570
573
 
571
- const startfile = ref();
572
- const endfile = ref();
574
+
573
575
 
574
576
  function drag(e, file) {
575
577
  startfile.value = file;
@@ -624,10 +626,66 @@ function viewerfile(file) {
624
626
  File.viewerfile(file, model.value)
625
627
  }
626
628
 
629
+
630
+
631
+ function PasteUpload(event) {
632
+ if (!model.value.locked && !model.value.disableUpload) {
633
+ // 获取粘贴板中的图片
634
+ const clipboardDatas = (event.clipboardData || event.originalEvent.clipboardData);
635
+ const items = clipboardDatas.items;
636
+ for (let index in items) {
637
+ const item = items[index];
638
+ if (item.kind === 'file') {
639
+
640
+ const file = item.getAsFile();
641
+ let uid = File.uploadguid();
642
+
643
+ file.uid = file.uid || uid;
644
+ refupload.value.handleStart(file);
645
+ // 提交上传队列
646
+ refupload.value.submit();
647
+ }
648
+ }
649
+ }
650
+ }
651
+
652
+ function ListenerPaste(event) {
653
+ var target = event.target;
654
+ const uploads = document.querySelectorAll('[uploadStatus="upload"]');
655
+
656
+ if (!window.uploads) {
657
+ window.uploads = { count: 0, length: uploads.length };
658
+ }
659
+ if (uploads.length > 1) {
660
+ window.uploads.count = window.uploads.count + 1;
661
+ window.uploads.length = uploads.length;
662
+
663
+ if (window.uploads.count == window.uploads.length) {
664
+ window.uploads = null;
665
+ ElMessage({
666
+ message: "存在多个上传组件,请点击粘贴上传!",
667
+ type: 'info',
668
+ showClose: true,
669
+ });
670
+ return false;
671
+ }
672
+ }
673
+ else if (uploads.length == 1) {
674
+ window.uploads = null;
675
+ PasteUpload(event);
676
+ }
677
+
678
+
679
+ }
680
+
681
+ // 添加粘贴事件监听器
682
+ document.addEventListener('paste', ListenerPaste);
627
683
  onBeforeUnmount(() => {
628
684
  //销毁定时上传
629
685
  clearTimeout(model.value.qrtimer);
630
686
  window.removeEventListener('scroll', model.value.QRCodeLocate, true)
687
+ //销毁贴事件监听器
688
+ document.removeEventListener('paste', ListenerPaste)
631
689
  })
632
690
 
633
691
  defineExpose({
@@ -766,6 +824,8 @@ defineExpose({
766
824
  right: 3px;
767
825
  width: 35px;
768
826
  height: 35px;
827
+ color: red;
828
+ text-align: right;
769
829
  }
770
830
 
771
831
  :deep(.ScanUploadPhoto) {
@@ -197,19 +197,24 @@ function selfValidExcute(eventName) {
197
197
  }
198
198
 
199
199
  function viewerfile(list, index) {
200
+ var file = list[index];
201
+ if (file && file.mediaTypeID == 4 && !common.isVideoFile(file.mediaUrl)) {
202
+ window.open(file.mediaUrl)
203
+ }
204
+ else {
205
+ var MediaAlbum = [{ albumName: model.value.controlLabel || "媒体", medias: [] as any }];
200
206
 
201
- var MediaAlbum = [{ albumName: model.value.controlLabel || "媒体", medias: [] as any }];
207
+ let fileList = list.filter((item) => {
208
+ return item.flagDeleted !== true;
209
+ });
210
+ fileList.forEach((v) => {
211
+ MediaAlbum[0].medias.push(v);
212
+ });
213
+ common.viewerfile((model.value.controlLabel || "预览媒体"), MediaAlbum, 0, index, model.value.mediaViewPageType);
214
+ }
202
215
 
203
- let fileList = list.filter((item) => {
204
- return item.flagDeleted !== true;
205
- });
206
- fileList.forEach((v) => {
207
- MediaAlbum[0].medias.push(v);
208
- });
209
- common.viewerfile((model.value.controlLabel || "预览媒体"), MediaAlbum, 0, index, model.value.mediaViewPageType);
210
216
  }
211
217
 
212
-
213
218
  defineExpose({
214
219
  model
215
220
  })
@@ -225,16 +225,21 @@ function rolRouterCellClickHandler(routerKey, rowindex, sourceIndex) {
225
225
  }
226
226
  }
227
227
  function viewerfile(list, index) {
228
+ var file = list[index];
229
+ if (file && file.mediaTypeID == 4 && !common.isVideoFile(file.mediaUrl)) {
230
+ window.open(file.mediaUrl)
231
+ }
232
+ else {
233
+ var MediaAlbum = [{ albumName: model.value.label || "媒体", medias: [] as any }];
228
234
 
229
- var MediaAlbum = [{ albumName: model.value.label || "媒体", medias: [] as any }];
230
-
231
- let fileList = list.filter((item) => {
232
- return item.flagDeleted !== true;
233
- });
234
- fileList.forEach((v) => {
235
- MediaAlbum[0].medias.push(v);
236
- });
237
- common.viewerfile((model.value.label || "预览媒体"), MediaAlbum, 0, index, props.mediaViewPageType);
235
+ let fileList = list.filter((item) => {
236
+ return item.flagDeleted !== true;
237
+ });
238
+ fileList.forEach((v) => {
239
+ MediaAlbum[0].medias.push(v);
240
+ });
241
+ common.viewerfile((model.value.label || "预览媒体"), MediaAlbum, 0, index, props.mediaViewPageType);
242
+ }
238
243
  }
239
244
  function change() {
240
245
  loading.value = true;
@@ -80,15 +80,20 @@ const props = defineProps({
80
80
  Boolean,
81
81
  default: false,
82
82
  },
83
+ apiParam: {
84
+ type: Object,
85
+ default: () => { }
86
+ },
83
87
  })
84
88
  const model = ref(null)
85
89
  const FlagStatistics = ref(false)
86
90
  const sortData = ref(null)
87
- const selectStats = ref([])
91
+ const selectStats = ref('')
88
92
  const showData = ref([])
89
93
  const flagClick = ref(false)
90
94
  const lastWidth = ref(0)
91
95
  const showWidth = ref(0)
96
+ const fieldName1 = ref('')
92
97
  const option = ref({
93
98
  isHidden: true, //是否开启操作栏隐藏设置,默认开启
94
99
  showNum: 3, //如果isHidden为true时,个数大于3就会隐藏,默认是3
@@ -130,12 +135,14 @@ function load(data) {
130
135
  data.source.content.forEach((item, index) => {
131
136
  item.sort = index;
132
137
  item.key = item.fieldName1 + "*" + replabel(item.controlLabel);
138
+ fieldName1.value = item.fieldName1;
133
139
  sortData.value[item.key] = index;
134
140
  });
135
141
  }
136
142
  else {
137
143
  data.source.content.forEach((item, index) => {
138
144
  item.key = item.fieldName1 + "*" + replabel(item.controlLabel);
145
+ fieldName1.value = item.fieldName1;
139
146
  if (sortData.value[item.key] == undefined) {
140
147
  item.sort = index;
141
148
  } else {
@@ -151,11 +158,18 @@ function load(data) {
151
158
  return -1; // 顺序不变
152
159
  }
153
160
  });
154
-
161
+ if (selectStats.value == '') {
162
+ var m = data.source.content.find((v) => {
163
+ return v.code1 === props.apiParam[fieldName1.value];
164
+ });
165
+ if (m) {
166
+ selectStats.value = m.key
167
+ }
168
+ }
155
169
  let i = data.source.content.findIndex(
156
170
  (v) => selectStats.value === v.key
157
171
  );
158
- if (i == -1 || selectStats.value == []) {
172
+ if (i == -1 || selectStats.value == '') {
159
173
  handleClick(data.source.content[0], false);
160
174
  }
161
175
  FlagStatistics.value = true;
@@ -232,7 +246,7 @@ function replabel(labelName) {
232
246
  }
233
247
  function getsearchStats() {
234
248
  let rtn = [];
235
- if (selectStats.value != []) {
249
+ if (selectStats.value != '') {
236
250
  let n = model.value.source.content.find(
237
251
  (v) => selectStats.value === v.key
238
252
  );
@@ -2,7 +2,7 @@
2
2
  <div style="width: 100%" class="ct-searchtable" ref="refSearchTable">
3
3
  <SearchStats ref="refTableStats" v-if="!isLoading && model && searchStatsApi" :api="searchStatsApi"
4
4
  @searchStats="clickSearchStats" :searchModel="model.searchModel" @setTableHeight="setTableHeight"
5
- :flagDisabled="disabledStats">
5
+ :flagDisabled="disabledStats" :apiParam="apiParam">
6
6
  </SearchStats>
7
7
  <TableToolbar ref="refToolbar" v-if="!isLoading && model && model.buttons" :buttons="model.buttons"
8
8
  :key="model.toolbarKey" @click="toolbarClickHandler" @importComplete="importComplete"
@@ -243,6 +243,10 @@ const props = defineProps({
243
243
  api: String,
244
244
  searchStatsApi: String,
245
245
  flagAppMode: Boolean,
246
+ apiParam: {
247
+ type: Object,
248
+ default: () => { }
249
+ },
246
250
  flagFocus: {
247
251
  Boolean,
248
252
  default: true,
@@ -1,7 +1,7 @@
1
1
  <template>
2
2
  <div ref="refMain" style="width: 100%;height: 100%;display: flex;" :class="{ 'domDisabled': pageDisabled }">
3
3
  <div class="search-list"
4
- :style="{ 'height': pageHeightReal ? pageHeightReal : '100%', 'width': searchWidth ? searchWidth + 'px' : '100%','background':isLayout?'#ffffff':'' }">
4
+ :style="{ 'height': pageHeightReal ? pageHeightReal : '100%', 'width': searchWidth ? searchWidth + 'px' : '100%', 'background': isLayout ? '#ffffff' : '' }">
5
5
  <div slot="header" class="clearfix" v-if="typeof title !== 'undefined' && showTitle">
6
6
  <span style="font-weight:bold">{{ title }}</span>
7
7
  </div>
@@ -15,10 +15,11 @@
15
15
  <searchTable ref="refTable" :api="searchDataApi" :key="reloadKey" :searchStatsApi="searchStatsApi"
16
16
  :from="from" :isIframe="isIframe" :documentHeight="documentHeight" :documentWidth="documentWidth"
17
17
  :flagPopupSearchlist="flagPopupSearchlist" :screenTop="screenTop" :flagAppMode="flagAppMode"
18
- @searchComplate="searchComplate" @loaded="tableLoaded" @rowClickHandle="rowClickHandle"
19
- @refreshRowHandle="refreshRowHandle" @scrollHandle="scrollHandle" @refreshParent="refreshParentHandler"
20
- @simpleRouterRefreshHandler="simpleRouterRefreshHandler" @closeSideBar="closeSideBar"
21
- @popupClickHandler="popupClickHandler" :dragStartItem="dragStartItem" :dragStartName="dragStartName"
18
+ :apiParam="apiParam" @searchComplate="searchComplate" @loaded="tableLoaded"
19
+ @rowClickHandle="rowClickHandle" @refreshRowHandle="refreshRowHandle" @scrollHandle="scrollHandle"
20
+ @refreshParent="refreshParentHandler" @simpleRouterRefreshHandler="simpleRouterRefreshHandler"
21
+ @closeSideBar="closeSideBar" @popupClickHandler="popupClickHandler" :dragStartItem="dragStartItem"
22
+ :dragStartName="dragStartName"
22
23
  @flagNotificationParentAfterContentChanged="flagNotificationParentAfterContentChanged">
23
24
  </searchTable>
24
25
  </div>
@@ -42,7 +43,7 @@ import SearchCategory from './SearchList/SearchCategory.vue';
42
43
  import SearchSideMenu from './SearchList/SearchSideMenu.vue';
43
44
  import SearchSideRight from './SearchList/SearchSideRight.vue';
44
45
  import { ref, nextTick, onMounted, watch, onActivated } from 'vue'
45
- const emit = defineEmits(['loaded', 'failLoad', 'tableLoaded', 'scrollHandle', 'rowClickHandle', 'refreshParent', 'submit','flagNotificationParentAfterContentChanged'])
46
+ const emit = defineEmits(['loaded', 'failLoad', 'tableLoaded', 'scrollHandle', 'rowClickHandle', 'refreshParent', 'submit', 'flagNotificationParentAfterContentChanged'])
46
47
  const props = defineProps({
47
48
  vmodel: Object,
48
49
  parameterAction: String,
@@ -158,7 +159,7 @@ function screenLoaded(defaultSearch) {
158
159
  if (props.from && props.from == 'detail') {
159
160
  screenTop.value = refScreen.value.$el.offsetTop;
160
161
  }
161
- pageDisabled.value=true;
162
+ pageDisabled.value = true;
162
163
  refTable.value.searchComplate(refScreen.value.model, defaultSearch);
163
164
  emit('loaded', refScreen.value.model);
164
165
  }
@@ -232,10 +233,10 @@ function searchComplate(index) {
232
233
  }
233
234
  function tableLoaded() {
234
235
  title.value = refTable.value.model.title;
235
- pageDisabled.value=false;
236
+ pageDisabled.value = false;
236
237
  flagSideBar.value = refTable.value.model.flagSideBar;
237
238
  flagDefaultDisplaySideBar.value = refTable.value.model.flagDefaultDisplaySideBar;
238
- isLayout.value=refTable.value.model.isLayout;
239
+ isLayout.value = refTable.value.model.isLayout;
239
240
  if (refTable.value.model.rowSelectRouter) {
240
241
  rowSelectRouter.value = refTable.value.model.rowSelectRouter
241
242
  sideBarPageType.value = refTable.value.model.rowSelectRouter.actionSource;
@@ -50,10 +50,10 @@
50
50
  </div>
51
51
  <div class="toggler" @click="mediaLabelShow=!mediaLabelShow" v-if="itemFile.mediaLabelName||itemFile.mediaDescCN||itemFile.mediaDescEN||itemFile.mediaUploadEmployeeDesc">
52
52
  <span class="glyphicon glyphicon-chevron-right" v-if="mediaLabelShow">
53
- <el-icon><ArrowRightBold /></el-icon>
53
+ <el-icon color="#000000"><ArrowRightBold /></el-icon>
54
54
  </span>
55
55
  <span class="glyphicon glyphicon-chevron-left" v-if="!mediaLabelShow">
56
- <el-icon><ArrowLeftBold /></el-icon>
56
+ <el-icon color="#000000"><ArrowLeftBold /></el-icon>
57
57
  </span>
58
58
  </div>
59
59
  </div>
@@ -486,16 +486,17 @@ html {
486
486
  .cont {
487
487
  position: absolute;
488
488
  z-index: 100000000000000;
489
- color: black;
489
+ color: #ffffff;
490
490
  width: auto;
491
491
  display: inline-block !important;
492
492
  display: inline;
493
493
  background-color: #ffffff00;
494
494
  font-size: 12px;
495
+ background: rgba(0, 0, 0, .45);
495
496
  }
496
497
 
497
498
  .enlarge-picture {
498
- padding: 5px 0;
499
+ padding: 5px 10px;
499
500
  }
500
501
  .toggler {
501
502
  -webkit-border-top-right-radius: 4px;