vue2-client 1.6.49 → 1.7.0

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 (119) hide show
  1. package/.env +15 -15
  2. package/CHANGELOG.md +628 -625
  3. package/index.js +30 -30
  4. package/package.json +81 -81
  5. package/src/base-client/components/common/AddressSearchCombobox/AddressSearchCombobox.vue +316 -316
  6. package/src/base-client/components/common/CitySelect/CitySelect.vue +247 -247
  7. package/src/base-client/components/common/CreateQuery/CreateQuery.vue +667 -667
  8. package/src/base-client/components/common/CreateQuery/CreateQueryItem.vue +733 -733
  9. package/src/base-client/components/common/CreateSimpleFormQuery/CreateSimpleFormQuery.vue +468 -462
  10. package/src/base-client/components/common/CreateSimpleFormQuery/CreateSimpleFormQueryItem.vue +508 -508
  11. package/src/base-client/components/common/FormGroupEdit/FormGroupEdit.vue +146 -140
  12. package/src/base-client/components/common/FormGroupQuery/FormGroupQuery.vue +165 -165
  13. package/src/base-client/components/common/JSONToTree/jsontotree.vue +275 -275
  14. package/src/base-client/components/common/Upload/Upload.vue +168 -168
  15. package/src/base-client/components/common/XAddForm/XAddForm.vue +325 -325
  16. package/src/base-client/components/common/XAddNativeForm/XAddNativeForm.vue +279 -279
  17. package/src/base-client/components/common/XCard/XCard.vue +64 -64
  18. package/src/base-client/components/common/XForm/XForm.vue +180 -180
  19. package/src/base-client/components/common/XForm/XFormItem.vue +513 -513
  20. package/src/base-client/components/common/XForm/XTreeSelect.vue +184 -184
  21. package/src/base-client/components/common/XFormCol/XFormCol.vue +38 -38
  22. package/src/base-client/components/common/XFormTable/XFormTable.vue +344 -336
  23. package/src/base-client/components/common/XFormTable/index.md +97 -97
  24. package/src/base-client/components/common/XImportExcel/XImportExcel.vue +132 -132
  25. package/src/base-client/components/common/XTable/XTable.vue +506 -506
  26. package/src/base-client/components/common/XTreeOne/XTreeOne.vue +111 -111
  27. package/src/base-client/components/system/DictionaryDetailsView/DictionaryDetailsView.vue +231 -231
  28. package/src/base-client/components/system/QueryParamsDetailsView/QueryParamsDetailsView.vue +281 -281
  29. package/src/base-client/components/ticket/TicketDetailsView/TicketDetailsView.vue +807 -807
  30. package/src/base-client/components/ticket/TicketDetailsView/index.md +29 -29
  31. package/src/base-client/components/ticket/TicketDetailsView/part/TicketDetailsFlow.vue +260 -260
  32. package/src/base-client/components/ticket/TicketSubmitSuccessView/TicketSubmitSuccessView.vue +532 -532
  33. package/src/base-client/components/ticket/TicketSubmitSuccessView/index.md +29 -29
  34. package/src/base-client/plugins/AppData.js +76 -76
  35. package/src/base-client/plugins/GetLoginInfoService.js +179 -179
  36. package/src/base-client/plugins/PagedList.js +177 -177
  37. package/src/base-client/plugins/compatible/LoginServiceOA.js +20 -20
  38. package/src/base-client/plugins/i18n-extend.js +32 -32
  39. package/src/components/Ellipsis/Ellipsis.vue +65 -65
  40. package/src/components/Ellipsis/index.md +38 -38
  41. package/src/components/NumberInfo/index.md +43 -43
  42. package/src/components/STable/README.md +341 -341
  43. package/src/components/STable/index.js +318 -318
  44. package/src/components/Trend/index.md +45 -45
  45. package/src/components/checkbox/ColorCheckbox.vue +157 -157
  46. package/src/components/checkbox/ImgCheckbox.vue +163 -163
  47. package/src/components/exception/ExceptionPage.vue +70 -70
  48. package/src/components/form/FormRow.vue +52 -52
  49. package/src/components/index.js +36 -36
  50. package/src/components/menu/SideMenu.vue +62 -62
  51. package/src/components/menu/menu.js +273 -273
  52. package/src/components/page/header/index.less +40 -40
  53. package/src/components/setting/Setting.vue +235 -235
  54. package/src/components/table/StandardTable.vue +141 -141
  55. package/src/components/table/advance/ActionColumns.vue +158 -158
  56. package/src/components/table/advance/SearchArea.vue +355 -355
  57. package/src/components/tool/AStepItem.vue +60 -60
  58. package/src/components/tool/AvatarList.vue +68 -68
  59. package/src/components/tool/Drawer.vue +142 -142
  60. package/src/components/tool/TagSelect.vue +83 -83
  61. package/src/components/transition/PageToggleTransition.vue +97 -97
  62. package/src/config/CreateQueryConfig.js +307 -307
  63. package/src/config/default/admin.config.js +18 -18
  64. package/src/config/replacer/resolve.config.js +67 -67
  65. package/src/layouts/CommonLayout.vue +42 -42
  66. package/src/layouts/ComponentLayoutOne.vue +47 -47
  67. package/src/layouts/PageLayout.vue +151 -151
  68. package/src/layouts/SinglePageView.vue +116 -116
  69. package/src/layouts/footer/PageFooter.vue +49 -49
  70. package/src/layouts/header/AdminHeader.vue +134 -134
  71. package/src/layouts/header/HeaderAvatar.vue +64 -64
  72. package/src/layouts/header/HeaderNotice.vue +176 -176
  73. package/src/layouts/header/HeaderSearch.vue +67 -67
  74. package/src/layouts/header/InstitutionDetail.vue +181 -181
  75. package/src/layouts/header/index.less +92 -92
  76. package/src/layouts/tabs/TabsHead.vue +190 -190
  77. package/src/layouts/tabs/TabsView.vue +379 -379
  78. package/src/mock/goods/index.js +108 -108
  79. package/src/pages/CreateQueryPage.vue +84 -84
  80. package/src/pages/login/Login.vue +369 -369
  81. package/src/pages/report/ReportTable.js +124 -124
  82. package/src/pages/report/ReportTableHome.vue +28 -28
  83. package/src/pages/resourceManage/orgListManage.vue +98 -98
  84. package/src/pages/system/dictionary/index.vue +43 -43
  85. package/src/pages/system/file/index.vue +317 -317
  86. package/src/pages/system/monitor/loginInfor/index.vue +36 -36
  87. package/src/pages/system/monitor/operLog/index.vue +36 -36
  88. package/src/pages/system/settings/index.vue +126 -126
  89. package/src/pages/system/settings/modifyPassword.vue +109 -109
  90. package/src/router/async/config.async.js +28 -28
  91. package/src/router/async/router.map.js +66 -68
  92. package/src/router/index.js +27 -27
  93. package/src/services/api/DictionaryDetailsViewApi.js +6 -6
  94. package/src/services/api/LogDetailsViewApi.js +10 -10
  95. package/src/services/api/QueryParamsDetailsViewApi.js +6 -6
  96. package/src/services/api/TicketDetailsViewApi.js +34 -34
  97. package/src/services/api/cas.js +79 -79
  98. package/src/services/api/common.js +137 -132
  99. package/src/services/api/commonTempTable.js +10 -10
  100. package/src/services/api/index.js +17 -17
  101. package/src/services/api/logininfor/index.js +6 -6
  102. package/src/services/api/manage.js +8 -8
  103. package/src/services/apiService.js +14 -14
  104. package/src/services/user.js +67 -67
  105. package/src/store/modules/index.js +4 -4
  106. package/src/theme/default/nprogress.less +76 -76
  107. package/src/theme/default/style.less +58 -58
  108. package/src/utils/EncryptUtil.js +53 -53
  109. package/src/utils/colors.js +107 -107
  110. package/src/utils/excel/Blob.js +180 -180
  111. package/src/utils/excel/Export2Excel.js +141 -141
  112. package/src/utils/formatter.js +68 -68
  113. package/src/utils/i18n.js +80 -80
  114. package/src/utils/map-utils.js +37 -37
  115. package/src/utils/theme-color-replacer-extend.js +91 -91
  116. package/src/utils/themeUtil.js +100 -100
  117. package/src/utils/util.js +230 -230
  118. package/vue.config.js +106 -106
  119. package/src/pages/system/queryParams/index.vue +0 -43
@@ -1,29 +1,29 @@
1
- # TicketDetailsView 工单详情页
2
-
3
- 提供一个可以对单个工单进行一系列通用业务操作的抽屉实现
4
-
5
-
6
-
7
- ## 何时使用
8
-
9
- 允许用户对单个工单进行一系列通用业务操作
10
-
11
-
12
-
13
- ## 代码演示
14
-
15
- ```html
16
- <ticket-details-view
17
- :visible.sync="detailVisible"
18
- :ticketId="ticketId"
19
- v-if="ticketId"
20
- />
21
- ```
22
-
23
- ## API
24
-
25
- | 参数 | 说明 | 类型 | 默认值 |
26
- |---------------|-------|---------|-------|
27
- | detailVisible | 是否显示 | Boolean | false |
28
- | ticketId | 工单编号 | String | null |
29
- | id | 负责人id | String | null |
1
+ # TicketDetailsView 工单详情页
2
+
3
+ 提供一个可以对单个工单进行一系列通用业务操作的抽屉实现
4
+
5
+
6
+
7
+ ## 何时使用
8
+
9
+ 允许用户对单个工单进行一系列通用业务操作
10
+
11
+
12
+
13
+ ## 代码演示
14
+
15
+ ```html
16
+ <ticket-details-view
17
+ :visible.sync="detailVisible"
18
+ :ticketId="ticketId"
19
+ v-if="ticketId"
20
+ />
21
+ ```
22
+
23
+ ## API
24
+
25
+ | 参数 | 说明 | 类型 | 默认值 |
26
+ |---------------|-------|---------|-------|
27
+ | detailVisible | 是否显示 | Boolean | false |
28
+ | ticketId | 工单编号 | String | null |
29
+ | id | 负责人id | String | null |
@@ -1,260 +1,260 @@
1
- <template>
2
- <div>
3
- <a-card :bordered="false" :loading="loading">
4
- <a-timeline ref="timeline" :pending="pendingText" :reverse="true" mode="alternate" style="max-width: 800px;margin: 0 auto;">
5
- <a-timeline-item v-if="index < 3 ? true : advanced" :key="index" v-for="(value,index) in workFLowList" color="green">
6
- <div style="color: #0d1a26;font-weight: 500;">
7
- <span style="font-size: 16px;">{{ value.name }}</span>
8
- <span style="margin-left: 5px;">({{ format(value.created_time,'yyyy-MM-dd hh:mm:ss') }} 至 {{ format(value.end_time,'yyyy-MM-dd hh:mm:ss') }})</span>
9
- </div>
10
- <div class="antd-pro-pages-profile-advanced-style-stepDescription" style="margin-top: 5px;margin-bottom: 5px">
11
- <span class="note" style="font-size: 1.1em;margin-top: 5px;margin-bottom: 5px">留言:{{ value.note }}</span>
12
- </div>
13
- <img
14
- v-for="(item,n) in value.images"
15
- :src="'data:image/png;base64,' + item.url"
16
- :key="'s' + n"
17
- @click="changePhotoClass(item)"
18
- class="img_sm"
19
- alt="">
20
- </a-timeline-item>
21
- </a-timeline>
22
- <a-col :md="!advanced && 8 || 24" :sm="24" v-if="workFLowList.length > 3">
23
- <span class="table-page-search-submitButtons" :style="advanced && { float: 'right', overflow: 'hidden' } || {} ">
24
- <a @click="toggleAdvanced" style="margin-left: 8px">
25
- {{ advanced ? '收起' : '展开' }}
26
- <a-icon :type="advanced ? 'up' : 'down'"/>
27
- </a>
28
- </span>
29
- </a-col>
30
- </a-card>
31
- </div>
32
- </template>
33
- <script>
34
- import { formatDate } from '@vue2-client/utils/util'
35
- import { mapState } from 'vuex'
36
- import { TicketDetailsViewApi, post } from '@vue2-client/services/api'
37
-
38
- export default {
39
- name: 'TicketDetailsFlow',
40
- props: {
41
- ticketId: {
42
- type: String,
43
- required: true
44
- },
45
- disableCloseBtn: {
46
- type: Boolean,
47
- required: true
48
- },
49
- id: {
50
- type: Number,
51
- required: true
52
- }
53
- },
54
- computed: {
55
- ...mapState('setting', ['isMobile'])
56
- },
57
- data () {
58
- return {
59
- // 历史操作 展开/关闭
60
- advanced: false,
61
- workFLowList: [],
62
- loading: false,
63
- pendingText: '持续记录中...',
64
- // 工单流转留言,详细信息框可见性
65
- workFlowDetailsVisible: false,
66
- // 模态框中内容
67
- modalData: {
68
- note: '',
69
- images: []
70
- },
71
- // 选中照片是否显示
72
- selectedImageShow: false,
73
- // 选中的照片
74
- selectedImage: null
75
- }
76
- },
77
- mounted () {
78
- this.getTicketWorkFlowDetail(this.ticketId)
79
- },
80
- methods: {
81
- format (date, format) {
82
- return formatDate(date, format)
83
- },
84
- // 图像点击切换放大缩小
85
- changePhotoClass (item) {
86
- this.$emit('imageClick', item)
87
- },
88
- // 获取流转工单详情
89
- getTicketWorkFlowDetail (num) {
90
- if (this.disableCloseBtn) {
91
- this.pendingText = ''
92
- } else {
93
- this.pendingText = '持续记录中...'
94
- }
95
- this.loading = true
96
- return post(TicketDetailsViewApi.getTicketWorkFlowDetails, {
97
- ticketId: num
98
- }).then(res => {
99
- this.workFLowDetails = res
100
- // 解析workFLowDetails数据
101
- this.workFLowList = []
102
- const len = this.workFLowDetails.length
103
- for (let i = 0; i < len; i++) {
104
- if (this.workFLowDetails[i].note === undefined) {
105
- this.workFLowDetails[i].note = ''
106
- }
107
- if (this.workFLowDetails[i].images === undefined) {
108
- this.workFLowDetails[i].images = []
109
- }
110
- this.workFLowList.push({
111
- name: this.workFLowDetails[i].name,
112
- created_time: this.workFLowDetails[i].created_time,
113
- end_time: this.workFLowDetails[i].end_time,
114
- note: this.workFLowDetails[i].note,
115
- images: this.workFLowDetails[i].images
116
- })
117
- for (let j = 0; j < this.workFLowDetails[i].images.length; j++) {
118
- this.workFLowDetails[i].images[j].isLarge = false
119
- }
120
- }
121
- this.workFLowList = this.workFLowList.reverse()
122
- this.loading = false
123
- })
124
- },
125
- toggleAdvanced () {
126
- this.advanced = !this.advanced
127
- }
128
- },
129
- watch: {
130
- 'ticketId' () {
131
- this.getTicketWorkFlowDetail(this.ticketId)
132
- },
133
- 'disableCloseBtn' () {
134
- this.getTicketWorkFlowDetail(this.ticketId)
135
- },
136
- 'id' () {
137
- this.getTicketWorkFlowDetail(this.ticketId)
138
- }
139
- }
140
- }
141
- </script>
142
-
143
- <style lang="less" scoped>
144
- .card_view {
145
- width: 70%;
146
- min-width: 700px;
147
- }
148
-
149
- .card_view_mobile {
150
- width: 100%;
151
- }
152
-
153
- .card_details_title {
154
- margin: 4px 0;
155
- font-size: 14px;
156
- }
157
-
158
- .card_details_value {
159
- font-size: 16px;
160
- font-weight: bold;
161
- color: #444;
162
- margin-bottom: 0;
163
- overflow: hidden;
164
- text-overflow:ellipsis;
165
- white-space: nowrap;
166
- }
167
-
168
- .card_guid {
169
- width: 25%;
170
- text-align:left;
171
- }
172
-
173
- .card_guid_mobile {
174
- width: 50%;
175
- text-align:left;
176
- }
177
-
178
- .detail-layout {
179
- margin-left: 44px;
180
- }
181
- .text {
182
- color: rgba(0, 0, 0, .45);
183
- }
184
-
185
- .heading {
186
- color: rgba(0, 0, 0, .85);
187
- font-size: 20px;
188
- }
189
-
190
- .no-data {
191
- color: rgba(0, 0, 0, .25);
192
- text-align: center;
193
- line-height: 64px;
194
- font-size: 16px;
195
-
196
- i {
197
- font-size: 24px;
198
- margin-right: 16px;
199
- position: relative;
200
- top: 3px;
201
- }
202
- }
203
-
204
- .mobile {
205
- .detail-layout {
206
- margin-left: unset;
207
- }
208
- .text {
209
-
210
- }
211
- .status-list {
212
- text-align: left;
213
- }
214
- }
215
-
216
- .img_sm {
217
- border: rgba(84, 84, 84, 0.2) solid 1.5px;
218
- border-radius: 5px;
219
- padding: 10px;
220
- width: 160px;
221
- height: 120px;
222
- }
223
- .img_xl {
224
- position: absolute;
225
- top:0;bottom:0;left:0;right:0;
226
- margin: auto;
227
- width: 100%;
228
- max-width: 1000px;
229
- cursor: zoom-out;
230
- z-index: 9999;
231
- animation: imgZoomIn 0.4s;
232
- -webkit-animation: imgZoomIn 0.4s;
233
- }
234
- @keyframes imgZoomIn
235
- {
236
- from {width: 160px;}
237
- to {width: 100%;}
238
- }
239
- .img_sm:hover {
240
- opacity: 0.6;
241
- cursor: zoom-in;
242
- }
243
- .img_sm_dark{
244
- filter: grayscale(100%);
245
- opacity: 0.6;
246
- border: rgba(84, 84, 84, 0.2) solid 1.5px;
247
- border-radius: 5px;
248
- padding: 10px;
249
- width: 160px;
250
- height: 120px;
251
- }
252
- .imgBackground {
253
- position: absolute;
254
- top:0;bottom:0;left:0;right:0;
255
- width: 100%;
256
- height: 100%;
257
- z-index: 9998;
258
- background-color: rgba(0,0,0,0.7);
259
- }
260
- </style>
1
+ <template>
2
+ <div>
3
+ <a-card :bordered="false" :loading="loading">
4
+ <a-timeline ref="timeline" :pending="pendingText" :reverse="true" mode="alternate" style="max-width: 800px;margin: 0 auto;">
5
+ <a-timeline-item v-if="index < 3 ? true : advanced" :key="index" v-for="(value,index) in workFLowList" color="green">
6
+ <div style="color: #0d1a26;font-weight: 500;">
7
+ <span style="font-size: 16px;">{{ value.name }}</span>
8
+ <span style="margin-left: 5px;">({{ format(value.created_time,'yyyy-MM-dd hh:mm:ss') }} 至 {{ format(value.end_time,'yyyy-MM-dd hh:mm:ss') }})</span>
9
+ </div>
10
+ <div class="antd-pro-pages-profile-advanced-style-stepDescription" style="margin-top: 5px;margin-bottom: 5px">
11
+ <span class="note" style="font-size: 1.1em;margin-top: 5px;margin-bottom: 5px">留言:{{ value.note }}</span>
12
+ </div>
13
+ <img
14
+ v-for="(item,n) in value.images"
15
+ :src="'data:image/png;base64,' + item.url"
16
+ :key="'s' + n"
17
+ @click="changePhotoClass(item)"
18
+ class="img_sm"
19
+ alt="">
20
+ </a-timeline-item>
21
+ </a-timeline>
22
+ <a-col :md="!advanced && 8 || 24" :sm="24" v-if="workFLowList.length > 3">
23
+ <span class="table-page-search-submitButtons" :style="advanced && { float: 'right', overflow: 'hidden' } || {} ">
24
+ <a @click="toggleAdvanced" style="margin-left: 8px">
25
+ {{ advanced ? '收起' : '展开' }}
26
+ <a-icon :type="advanced ? 'up' : 'down'"/>
27
+ </a>
28
+ </span>
29
+ </a-col>
30
+ </a-card>
31
+ </div>
32
+ </template>
33
+ <script>
34
+ import { formatDate } from '@vue2-client/utils/util'
35
+ import { mapState } from 'vuex'
36
+ import { TicketDetailsViewApi, post } from '@vue2-client/services/api'
37
+
38
+ export default {
39
+ name: 'TicketDetailsFlow',
40
+ props: {
41
+ ticketId: {
42
+ type: String,
43
+ required: true
44
+ },
45
+ disableCloseBtn: {
46
+ type: Boolean,
47
+ required: true
48
+ },
49
+ id: {
50
+ type: Number,
51
+ required: true
52
+ }
53
+ },
54
+ computed: {
55
+ ...mapState('setting', ['isMobile'])
56
+ },
57
+ data () {
58
+ return {
59
+ // 历史操作 展开/关闭
60
+ advanced: false,
61
+ workFLowList: [],
62
+ loading: false,
63
+ pendingText: '持续记录中...',
64
+ // 工单流转留言,详细信息框可见性
65
+ workFlowDetailsVisible: false,
66
+ // 模态框中内容
67
+ modalData: {
68
+ note: '',
69
+ images: []
70
+ },
71
+ // 选中照片是否显示
72
+ selectedImageShow: false,
73
+ // 选中的照片
74
+ selectedImage: null
75
+ }
76
+ },
77
+ mounted () {
78
+ this.getTicketWorkFlowDetail(this.ticketId)
79
+ },
80
+ methods: {
81
+ format (date, format) {
82
+ return formatDate(date, format)
83
+ },
84
+ // 图像点击切换放大缩小
85
+ changePhotoClass (item) {
86
+ this.$emit('imageClick', item)
87
+ },
88
+ // 获取流转工单详情
89
+ getTicketWorkFlowDetail (num) {
90
+ if (this.disableCloseBtn) {
91
+ this.pendingText = ''
92
+ } else {
93
+ this.pendingText = '持续记录中...'
94
+ }
95
+ this.loading = true
96
+ return post(TicketDetailsViewApi.getTicketWorkFlowDetails, {
97
+ ticketId: num
98
+ }).then(res => {
99
+ this.workFLowDetails = res
100
+ // 解析workFLowDetails数据
101
+ this.workFLowList = []
102
+ const len = this.workFLowDetails.length
103
+ for (let i = 0; i < len; i++) {
104
+ if (this.workFLowDetails[i].note === undefined) {
105
+ this.workFLowDetails[i].note = ''
106
+ }
107
+ if (this.workFLowDetails[i].images === undefined) {
108
+ this.workFLowDetails[i].images = []
109
+ }
110
+ this.workFLowList.push({
111
+ name: this.workFLowDetails[i].name,
112
+ created_time: this.workFLowDetails[i].created_time,
113
+ end_time: this.workFLowDetails[i].end_time,
114
+ note: this.workFLowDetails[i].note,
115
+ images: this.workFLowDetails[i].images
116
+ })
117
+ for (let j = 0; j < this.workFLowDetails[i].images.length; j++) {
118
+ this.workFLowDetails[i].images[j].isLarge = false
119
+ }
120
+ }
121
+ this.workFLowList = this.workFLowList.reverse()
122
+ this.loading = false
123
+ })
124
+ },
125
+ toggleAdvanced () {
126
+ this.advanced = !this.advanced
127
+ }
128
+ },
129
+ watch: {
130
+ 'ticketId' () {
131
+ this.getTicketWorkFlowDetail(this.ticketId)
132
+ },
133
+ 'disableCloseBtn' () {
134
+ this.getTicketWorkFlowDetail(this.ticketId)
135
+ },
136
+ 'id' () {
137
+ this.getTicketWorkFlowDetail(this.ticketId)
138
+ }
139
+ }
140
+ }
141
+ </script>
142
+
143
+ <style lang="less" scoped>
144
+ .card_view {
145
+ width: 70%;
146
+ min-width: 700px;
147
+ }
148
+
149
+ .card_view_mobile {
150
+ width: 100%;
151
+ }
152
+
153
+ .card_details_title {
154
+ margin: 4px 0;
155
+ font-size: 14px;
156
+ }
157
+
158
+ .card_details_value {
159
+ font-size: 16px;
160
+ font-weight: bold;
161
+ color: #444;
162
+ margin-bottom: 0;
163
+ overflow: hidden;
164
+ text-overflow:ellipsis;
165
+ white-space: nowrap;
166
+ }
167
+
168
+ .card_guid {
169
+ width: 25%;
170
+ text-align:left;
171
+ }
172
+
173
+ .card_guid_mobile {
174
+ width: 50%;
175
+ text-align:left;
176
+ }
177
+
178
+ .detail-layout {
179
+ margin-left: 44px;
180
+ }
181
+ .text {
182
+ color: rgba(0, 0, 0, .45);
183
+ }
184
+
185
+ .heading {
186
+ color: rgba(0, 0, 0, .85);
187
+ font-size: 20px;
188
+ }
189
+
190
+ .no-data {
191
+ color: rgba(0, 0, 0, .25);
192
+ text-align: center;
193
+ line-height: 64px;
194
+ font-size: 16px;
195
+
196
+ i {
197
+ font-size: 24px;
198
+ margin-right: 16px;
199
+ position: relative;
200
+ top: 3px;
201
+ }
202
+ }
203
+
204
+ .mobile {
205
+ .detail-layout {
206
+ margin-left: unset;
207
+ }
208
+ .text {
209
+
210
+ }
211
+ .status-list {
212
+ text-align: left;
213
+ }
214
+ }
215
+
216
+ .img_sm {
217
+ border: rgba(84, 84, 84, 0.2) solid 1.5px;
218
+ border-radius: 5px;
219
+ padding: 10px;
220
+ width: 160px;
221
+ height: 120px;
222
+ }
223
+ .img_xl {
224
+ position: absolute;
225
+ top:0;bottom:0;left:0;right:0;
226
+ margin: auto;
227
+ width: 100%;
228
+ max-width: 1000px;
229
+ cursor: zoom-out;
230
+ z-index: 9999;
231
+ animation: imgZoomIn 0.4s;
232
+ -webkit-animation: imgZoomIn 0.4s;
233
+ }
234
+ @keyframes imgZoomIn
235
+ {
236
+ from {width: 160px;}
237
+ to {width: 100%;}
238
+ }
239
+ .img_sm:hover {
240
+ opacity: 0.6;
241
+ cursor: zoom-in;
242
+ }
243
+ .img_sm_dark{
244
+ filter: grayscale(100%);
245
+ opacity: 0.6;
246
+ border: rgba(84, 84, 84, 0.2) solid 1.5px;
247
+ border-radius: 5px;
248
+ padding: 10px;
249
+ width: 160px;
250
+ height: 120px;
251
+ }
252
+ .imgBackground {
253
+ position: absolute;
254
+ top:0;bottom:0;left:0;right:0;
255
+ width: 100%;
256
+ height: 100%;
257
+ z-index: 9998;
258
+ background-color: rgba(0,0,0,0.7);
259
+ }
260
+ </style>