sale-client 4.2.21 → 4.2.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 (50) hide show
  1. package/build/dev-server.js +52 -32
  2. package/package.json +1 -1
  3. package/src/App.vue +1 -1
  4. package/src/components/revenue/HandManager/MeterBookUser.vue +726 -726
  5. package/src/components/revenue/comprehen/ComprehenOperation/QrPay/QrPaymentDetailed.vue +423 -423
  6. package/src/components/revenue/comprehen/ComprehenOperation/newchangemeter/ChangeMeter.vue +2 -0
  7. package/src/components/revenue/comprehen/Maintenance/hand/handOperate.vue +469 -469
  8. package/src/components/revenue/machineHandManage/ArrearsQuery.vue +938 -938
  9. package/src/components/webMeter/MeterManage/WebMeterBatchOperationValve.vue +970 -970
  10. package/src/filiale/alashan/eticket/EticketRecordList.vue +428 -428
  11. package/src/filiale/bayan/ChargeList.vue +1010 -1010
  12. package/src/filiale/bayan/StockListmain.vue +543 -543
  13. package/src/filiale/beifangshiye/OtherChargeNew.vue +625 -625
  14. package/src/filiale/lixianV3/ArrearsQuery.vue +938 -938
  15. package/src/filiale/lixianV3/InsuranceChargesDetails.vue +425 -425
  16. package/src/filiale/meihekou/common/userinfo_detail/ic_detail/MachineRecordQuery.vue +281 -281
  17. package/src/filiale/qianneng/revenue/sms/AccountMessageList.vue +508 -508
  18. package/src/filiale/ronghao/ArrearsQuery.vue +974 -974
  19. package/src/filiale/ronghao/CardService.js +2144 -2144
  20. package/src/filiale/ronghao/InsuranceManage.vue +58 -58
  21. package/src/filiale/ronghao/MachineChargeService.js +149 -149
  22. package/src/filiale/ronghao/NoCardMeterCenter.vue +534 -534
  23. package/src/filiale/ronghao/PaymentCode.vue +174 -174
  24. package/src/filiale/ronghao/PriceChangeCompensation/CompensationManage.vue +26 -26
  25. package/src/filiale/ronghao/PriceChangeCompensation/IotCompensation.vue +318 -318
  26. package/src/filiale/ronghao/PriceChangeCompensation/JbCompensation.vue +343 -343
  27. package/src/filiale/ronghao/PriceChangeCompensation/SurplusRecordDetail.vue +74 -74
  28. package/src/filiale/ronghao/ReplaceCardManage.vue +415 -415
  29. package/src/filiale/ronghao/Upload.vue +654 -654
  30. package/src/filiale/ronghao/cardDown.vue +1141 -1141
  31. package/src/filiale/ronghao/changemeterOperate.vue +315 -315
  32. package/src/filiale/ronghao/fillgasSpecific.vue +313 -313
  33. package/src/filiale/ronghao/ic_detail/ChargeRecordQuery.vue +106 -106
  34. package/src/filiale/ronghao/ic_detail/WatchCollection.vue +115 -115
  35. package/src/filiale/ronghao/ic_detail/WebHandQueryUser.vue +411 -411
  36. package/src/filiale/ronghao/machineDown.vue +1176 -1176
  37. package/src/filiale/ronghao/replacementSingleInfoOperation.vue +315 -315
  38. package/src/filiale/ronghao/specificInformation.vue +537 -537
  39. package/src/filiale/yangchun/ChargeList.vue +954 -954
  40. package/src/filiale/yuncheng/changemeterListMaintain.vue +504 -504
  41. package/src/filiale/zhongsheng/BlackListList.vue +293 -293
  42. package/src/filiale/zhongyi/HandQueryUser.vue +389 -389
  43. package/src/main.js +1 -1
  44. package/src/plugins/CardService.js +2217 -2217
  45. package/.gradle/5.2.1/fileChanges/last-build.bin +0 -0
  46. package/.gradle/5.2.1/fileHashes/fileHashes.lock +0 -0
  47. package/.gradle/5.2.1/gc.properties +0 -0
  48. package/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
  49. package/.gradle/buildOutputCleanup/cache.properties +0 -2
  50. package/.gradle/vcs-1/gc.properties +0 -0
@@ -1,654 +1,654 @@
1
- <template>
2
- <div style="background-color: #FFFFFF;" id="fileupload">
3
- <div class="row" style="background-color: #FFFFFF;height: auto;border-radius: 8px">
4
- <div style="width:75%;margin: 30px auto 10px auto;padding-bottom: 10px">
5
- <div class="inpGroup col-sm-7">
6
- <div class="col-sm-10 form-input-group">
7
- <label class="font_normal_body col-sm-6" style="text-align: center">文件说明</label>
8
- <input v-model="headers.fremarks" class="input_search" placeholder="文件说明"
9
- style="vertical-align:middle;width: 60%"/>
10
- </div>
11
- <div class="col-sm-10 form-input-group" style="margin-top:10px;" title="参数管理:附件使用类型">
12
- <label class="font_normal_body col-sm-6" style="text-align: center">使用类型</label>
13
- <v-select type="button" placeholder="使用类型" :options="foptions"
14
- close-on-select
15
- direction="up"
16
- :value.sync="fusetype" v-model="fusetype" style="vertical-align:middle;width: 60%">
17
- </v-select>
18
- </div>
19
- </div>
20
- <div class="col-sm-5 resBtn">
21
- <button class="button_search btn-gn" @click="upload()" v-show="!takeimg">拍照</button>
22
- <button class="button_search btn-gn" @click="fileUpload()" v-show="!isupload">审核资料上传</button>
23
- </div>
24
- </div>
25
- <div class="showList col-sm-12"
26
- style="padding: 10px;margin-top: 20px;">
27
- <hr style="width: 90%;border: #ccc 1px solid;margin:0 auto"/>
28
- <div :class="cols ? cols : 'col-sm-6'" style="padding:10px 10px 0px 10px;height: auto;box-sizing: border-box"
29
- v-for="row in fileInfoData">
30
- <div class="showData">
31
- <div class="left">
32
- <a href="#" class="thumbnail" style="width:100%;height:100%">
33
- <img
34
- v-if="(row.f_filetype.toLowerCase()==='jpg'||row.f_filetype.toLowerCase()==='png'||row.f_filetype.toLowerCase()==='gif'||row.f_filetype.toLowerCase()==='bmp')&&!rotating"
35
- :src="row.f_downloadURL" alt="..."/>
36
- <img-self
37
- v-if="(row.f_filetype.toLowerCase()==='jpg'||row.f_filetype.toLowerCase()==='png'||row.f_filetype.toLowerCase()==='gif'||row.f_filetype.toLowerCase()==='bmp')&&rotating"
38
- :width="width?width:60" :height="height?height:60" :src="row.f_downloadURL" alt="..."></img-self>
39
- <img v-if="row.f_filetype.toLowerCase()==='pdf'" src="../../../static/mainicon/pdf.jpg" alt="" style="width:66%"/>
40
- <img-self v-if="row.f_filetype.toLowerCase()==='pdf'&&rotating" :width="width?width:60"
41
- :height="height?height:60" src="../../../static/mainicon/pdf.jpg" alt="..."></img-self>
42
- <img v-if="row.f_filetype.toLowerCase().match('/wav|mp3|amr/')" src="../../../static/mainicon/sound.png" alt=""
43
- style="width:66%"/>
44
- <img v-if="row.f_filetype.toLowerCase()==='xls'||row.f_filetype.toLowerCase()==='xlsx'"
45
- src="../../../static/mainicon/excel.jpg" alt="" style="width:66%"/>
46
- <img-self v-if="row.f_filetype.toLowerCase()==='xls'||row.f_filetype.toLowerCase()==='xlsx'&&rotating"
47
- :width="width?width:60" :height="height?height:60" src="../../../static/mainicon/excel.jpg"
48
- alt="..."></img-self>
49
- <img v-if="row.f_filetype.toLowerCase()==='doc'||row.f_filetype.toLowerCase()==='docx'"
50
- src="../../../static/mainicon/doc.jpg" alt="" style="width:66%"/>
51
- <img-self v-if="row.f_filetype.toLowerCase()==='doc'||row.f_filetype.toLowerCase()==='docx'&&rotating"
52
- :width="width?width:60" :height="height?height:60" src="../../../static/mainicon/doc.jpg" alt="..."></img-self>
53
- </a>
54
- </div>
55
- <div class="right">
56
- <p :title="row.f_uploaddate" class="top clears">
57
- <strong>上传时间</strong>:&nbsp;<span>{{ row.f_uploaddate }}</span></p>
58
- <p :title="row.f_username" class="top clears">
59
- <strong>操作员</strong>:&nbsp;<span>{{ row.f_username }}</span></p>
60
- <p :title="row.f_filename" class="top clears"><strong>文件名</strong>:&nbsp;{{ row.f_filename }}</p>
61
- <p :title="row.fremarks" class="top clears"><strong>文件说明</strong>:&nbsp;{{ row.fremarks }}</p>
62
- <p>
63
- <a
64
- v-if="row.f_filetype.toLowerCase()==='jpg'||row.f_filetype.toLowerCase()==='png'||row.f_filetype.toLowerCase()==='gif'||row.f_filetype.toLowerCase()==='bmp'"
65
- :href="row.f_downloadURL" style="background:#6aa6e2" class="btn btn-primary" target="_blank"
66
- role="button">预览</a>
67
- <button class="button_search btn-gn"
68
- v-if="row.f_filetype.toLowerCase().match('/wav|mp3|amr/')||row.f_filetype.toLowerCase()==='pdf'||row.f_filetype.toLowerCase()==='xls'||row.f_filetype.toLowerCase()==='xlsx'||row.f_filetype.toLowerCase()==='doc'||row.f_filetype.toLowerCase()==='docx'"
69
- @click="downloadfile(row.f_downloadURL)">下载
70
- </button>
71
- <a v-if="isDelete == '1'" @click="delet($index,row)" href="#" class="btn btn-default"
72
- role="button">删除</a>
73
- </p>
74
- </div>
75
- </div>
76
- </div>
77
- </div>
78
- </div>
79
- <modal :show.sync="showUpload" styles="border-radius:20px;margin-top:300px" v-ref:modal backdrop="false"
80
- :width="700">
81
- <header slot="modal-header" class="modal-header">
82
- <button type="button" class="close" @click="close"><span class="glyphicon glyphicon-remove"></span></button>
83
- <h4 class="modal-title" style="text-align: center">文件上传</h4>
84
- </header>
85
- <article slot="modal-body" class="modal-body" style="height: 70px">
86
- <div class="form-group">
87
- <file-upload style="margin-left:100px;padding-top:20px" class="my-file-uploader" :name="'myFile' + blodid"
88
- action="api/af-revenue/file/uploadFile" tagname="文件上传" :headers="headers" multiple
89
- v-ref:file></file-upload>
90
- </div>
91
- </article>
92
- <footer slot="modal-footer" class="modal-footer">
93
- </footer>
94
- </modal>
95
- </div>
96
-
97
- <high-meter :show.sync="showhighmeter" @photo-finish="newPhoto" v-if="showhighmeter"
98
- v-on:confirminfo="confirmIdCard"></high-meter>
99
- </template>
100
- <script>
101
- import { HttpResetClass } from 'vue-client'
102
- import Vue from 'vue'
103
- export default {
104
- title: '附件',
105
- props: ['blodid', 'businessid', 'isremark', 'isusetype', 'takeimg', 'defname', 'isupload', 'fusetype', 'cols', 'width', 'height'],
106
- data () {
107
- return {
108
- isDelete: '0', // 删除按钮,可以进行控制(权限等)
109
- fileInfoData: [], // 数据库存储的文件记录对象数组
110
- headers: {
111
- 'username': this.$login.f.name,
112
- 'blodid': '',
113
- 'businessid': '',
114
- 'fremarks': '',
115
- 'defname': '',
116
- 'fusetype': this.fusetype ? this.fusetype : ''
117
- }, // 调用api/af-revenue/file/uploadFile 的参数
118
- showUpload: false, // 上传模态框控制
119
- showhighmeter: false, // 高拍仪组件控制
120
- fileRemark: '', // 文件说明
121
- rotating: this.$appdata.getSingleValue('图片附加功能') // 文件是否旋转
122
- }
123
- },
124
- methods: {
125
- confirmIdCard (IdCardInfo) {
126
- this.showhighmeter = !this.showhighmeter
127
- },
128
- // 查询按钮事件
129
- delet (index, row) {
130
- this.$resetdelete('api/af-revenue/entity/t_files', {id: row.id}, {
131
- resolveMsg: '删除成功',
132
- rejectMsg: '删除失败'
133
- }).then((res) => {
134
- this.$dispatch('delResid', row.id)
135
- this.fileInfoData.splice(index, 1)
136
- })
137
- },
138
- downloadfile (filepath) {
139
- var link = document.createElement('a')
140
- // let pathName = "http://" + location.host + filepath;
141
- link.href = filepath
142
- link.target = '_blank'
143
- link.dispatchEvent(new MouseEvent('click'))
144
- },
145
- GetRequest () {
146
- var url = location.search
147
- var theRequest = new Object()
148
- if (url.indexOf('?') != -1) {
149
- var str = url.substr(1)
150
- let strs = str.split('&')
151
- for (var i = 0; i < strs.length; i++) {
152
- theRequest[strs[i].split('=')[0]] = decodeURIComponent(strs[i].split('=')[1])
153
- }
154
- }
155
- return theRequest
156
- },
157
- upload () {
158
- if (this.showhighmeter) {
159
- console.log(this, '测试')
160
- this.$refs.ltgao.closeVideo()
161
- }
162
- console.log('测试1')
163
- this.showhighmeter = !this.showhighmeter
164
- },
165
- async load (self) {
166
- let condition = ''
167
- if (this.businessid) {
168
- condition = `f_businessid= '${self.headers.businessid}' `
169
- } else {
170
- condition = `f_blobid= '${self.headers.blodid}' `
171
- }
172
- if (this.fusetype) {
173
- condition += ` and fusetype like '%${this.fusetype}%'`
174
- }
175
- var http = new HttpResetClass()
176
- let data = {
177
- condition: condition
178
- }
179
- let getFile = []
180
- try {
181
- getFile = await http.load('POST', 'api/af-revenue/sql/getFiles', {data: data}, {
182
- warnMsg: null,
183
- resolveMsg: null
184
- })
185
- } catch (e) {
186
- console.log(e)
187
- }
188
- for (var i = 0; i < getFile.data.length; i++) {
189
- // 如果使用类型包含导入字样,则是execl文件导入的,不做显示
190
- if (getFile.data[i].fusetype && (getFile.data[i].fusetype.includes('execl导入'))) {
191
- getFile.data.splice(i, 1)
192
- i--
193
- continue
194
- }
195
- let temp = getFile.data[i].f_downloadpath
196
- let URL = ''
197
- if (temp.lastIndexOf(':\\') > -1) {
198
- URL = temp.substring(temp.lastIndexOf(':\\') + 2)
199
- } else {
200
- URL = temp.substring(temp.lastIndexOf('://') + 2)
201
- }
202
-
203
- var xy = this.$appdata.getSingleValue('协议') ? this.$appdata.getSingleValue('协议') : 'http://'
204
- getFile.data[i].f_downloadURL = xy + location.host + '/' + URL
205
- }
206
- self.fileInfoData = []
207
- self.fileInfoData = getFile.data
208
- },
209
- // 数据库时间格式化
210
- formatdate (val) {
211
- // 20180914151603 : 2018-09-14 15:16:03
212
- if (val.length != 14) { return }
213
- let year = val.substr(0, 4)
214
- let month = val.substr(4, 2)
215
- let day = val.substr(6, 2)
216
- let hour = val.substr(8, 2)
217
- let min = val.substr(10, 2)
218
- let second = val.substr(12, 2)
219
- return year + '-' + month + '-' + day + ' ' + hour + ':' + min + ':' + second
220
- },
221
- // 打开文件上传对话框
222
- fileUpload () {
223
- this.showUpload = true
224
- },
225
- // 关闭文件上传对话框
226
- close () {
227
- this.showUpload = false
228
- // 将选的文件清空
229
- this.$refs.file.$el.querySelector('input').value = ''
230
- this.load(this)
231
- },
232
- convertBase64ToBlob (base64String) {
233
- // 将base64解码
234
- var bytes = atob(base64String)
235
- // var bytes = base64;
236
- var bytesCode = new ArrayBuffer(bytes.length)
237
- // 转换为类型化数组
238
- var byteArray = new Uint8Array(bytesCode)
239
-
240
- // 将base64转换为ascii码
241
- for (var i = 0; i < bytes.length; i++) {
242
- byteArray[i] = bytes.charCodeAt(i)
243
- }
244
- // 生成Blob对象(文件对象)
245
- return new Blob([bytesCode], {type: 'image/jpeg'})
246
- },
247
- newPhoto (data) {
248
- console.log(data.img)
249
- data.name = 'GaoPaiYi'
250
- let form = new FormData()
251
- let xhr = new XMLHttpRequest()
252
- let formDataBoundary = '----WebkitFormBoundary' + 'GaoPaiYi'
253
- form.append('Content-Type', 'multipart/form-data;boundary=' + formDataBoundary)
254
- form.append('file', this.convertBase64ToBlob(data.img), `${data.name}.png`)
255
-
256
- xhr.open('POST', 'api/af-revenue/file/uploadFile')
257
- if (this.headers) {
258
- this.headers.blodid = this.blodid
259
- for (var header in this.headers) {
260
- xhr.setRequestHeader(header, encodeURIComponent(this.headers[header]))
261
- }
262
- }
263
- if (Vue.$login && Vue.$login.jwt) {
264
- xhr.setRequestHeader('Authorization', 'Bearer ' + Vue.$login.jwtNew)
265
- xhr.setRequestHeader('Token', Vue.$login.jwt)
266
- }
267
- xhr.send(form)
268
- setTimeout(() => {
269
- this.load(this)
270
- }, 5000)
271
- }
272
- },
273
- ready () {
274
- if (this.$login.r.find(value => value == '上传附件删除')) {
275
- // 有删除权限
276
- this.isDelete = '1'
277
- }
278
- this.headers.blodid = this.blodid
279
- this.headers.businessid = this.businessid
280
- console.log('123222', this.businessid)
281
- if (this.blodid || this.businessid) {
282
- this.load(this)
283
- }
284
- },
285
- watch: {
286
- 'blodid' (val) {
287
- if (val) {
288
- console.log('观察blodid', val)
289
- this.headers.blodid = this.blodid
290
- this.load(this)
291
- }
292
- },
293
- 'businessid' (val) {
294
- console.log('观察businessid')
295
- if (val) {
296
- console.log('观察businessid', val)
297
- this.headers.businessid = this.businessid
298
- this.load(this)
299
- }
300
- },
301
- 'defname' () {
302
- this.headers.defname = this.defname
303
- }
304
- },
305
- computed: {
306
- foptions () {
307
- let default_type = ['档案信息', '发卡售气', '卡表收费', '物联网表收费',
308
- '机表收费', '表具停用', '换表&清零', '其他补气', '补气购气',
309
- '预存收费', '调价补差', '黑名单', '补卡', '限购', '销户', '过户', '签约信息']
310
- return !this.$appdata.getParam('附件使用类型') || !this.$appdata.getParam('附件使用类型').length
311
- ? default_type.map((item) => {
312
- return {label: item, value: item}
313
- }) : this.$appdata.getParam('附件使用类型')
314
- }
315
- },
316
- events: {
317
- onFileUpload: function (file, res) {
318
- console.log('上传完毕', res)
319
- this.$dispatch('resid', res.id)
320
- this.headers.fremarks = ''
321
- this.close()
322
- }
323
- }
324
- }
325
- </script>
326
- <style scoped>
327
-
328
- * {
329
- padding: 0px;
330
- margin: 0px;
331
- }
332
-
333
- .inpGroup {
334
- font-family: "微软雅黑";
335
- }
336
-
337
- .navWin {
338
- position: relative;
339
- }
340
-
341
- .navWin .navShow {
342
- margin-top: 5px;
343
- height: 34px;
344
- font-size: 20px;
345
- line-height: 34px;
346
- color: rgb(180, 180, 180);
347
- }
348
-
349
- .navWin .navShow span {
350
- display: inline-block;
351
- height: 34px;
352
- }
353
-
354
- .navWin .navShow .icon {
355
- height: 34px;
356
- margin-right: 10px;
357
- color: rgb(200, 200, 200);
358
- }
359
-
360
- .navWin .navList {
361
- position: absolute;
362
- width: 100%;
363
- z-index: 99;
364
- list-style: none;
365
- background-color: rgba(241, 241, 241, 0.9);
366
- line-height: 34px;
367
- color: #8d8d8d;
368
- visibility: hidden;
369
- }
370
-
371
- .navWin:hover .navList {
372
- visibility: visible;
373
- }
374
-
375
- .navWin .navList li {
376
- font-size: 18px;
377
- padding-left: 30px;
378
- }
379
-
380
- .navWin .navList li:hover {
381
- background-color: rgba(220, 220, 220, 0.9);
382
- }
383
-
384
- .inp {
385
- box-sizing: border-box;
386
- width: 79%;
387
- padding: 0px 10px;
388
- height: 34px;
389
- font-size: 14px;
390
- line-height: 36px;
391
- color: #999999;
392
- border: solid 1px #c1c1c1;
393
- border-radius: 2px;
394
- background: none;
395
- outline: none;
396
- }
397
-
398
- .inp::-webkit-input-placeholder {
399
- color: #999999;
400
- }
401
-
402
- .inp_button {
403
- float: right;
404
- margin-left: 10px;
405
- /* position: absolute;
406
- right: 35px;
407
- height: 40px;*/
408
- width: 100px;
409
- font-size: 14px;
410
- line-height: 34px;
411
- color: #ffffff;
412
- text-align: center;
413
- background-color: rgb(90, 180, 90);
414
- border-radius: 4px;
415
- cursor: pointer;
416
- }
417
-
418
- .btn-group {
419
- height: 34px;
420
- }
421
-
422
- .inp_button2 {
423
- float: right;
424
- margin-left: 10px;
425
- /* position: absolute;
426
- right: 35px;
427
- height: 40px;*/
428
- width: auto;
429
- font-size: 16px;
430
- line-height: 34px;
431
- color: #ffffff;
432
- text-align: center;
433
- border-radius: 4px;
434
- cursor: pointer;
435
- }
436
-
437
- .inp_button:hover {
438
- /*background-color: rgb(80, 150, 80);*/
439
- }
440
-
441
- .inp_button:active {
442
- font-size: 20px;
443
- /*background-color: rgb(150, 200, 150);*/
444
- }
445
-
446
- .showData {
447
- height: auto;
448
- position: relative;
449
- padding-bottom: 7px;
450
- border-bottom: solid 1px #c1c1c1;
451
- font-family: "微软雅黑";
452
- }
453
-
454
- .showData .left {
455
- height: 180px;
456
- width: 210px;
457
- background-color: rgb(240, 240, 240);
458
- overflow: hidden;
459
- line-height: 180px;
460
- }
461
-
462
- .showData .left img {
463
- width: 100%;
464
- height: auto;
465
- }
466
-
467
- .showData .right {
468
- position: absolute;
469
- top: 0px;
470
- left: 220px;
471
- right: 0px;
472
- height: 180px;
473
- }
474
-
475
- .showData .right .top {
476
- height: 30px;
477
- line-height: 30px;
478
- color: rgb(98, 98, 98);
479
- }
480
-
481
- .showData .right .top .topleft {
482
- float: left;
483
- font-size: 16px;
484
- margin-right: 20px;
485
- }
486
-
487
- .showData .right .top .topright {
488
- float: right;
489
- margin-left: 20px;
490
- }
491
-
492
- .showData .right .text {
493
- word-wrap: break-word;
494
- overflow: hidden;
495
- /*height: 100px;*/
496
- color: #999999;
497
- /*padding: 8px 0px;*/
498
- }
499
-
500
- .showData .right ul {
501
- height: 20px;
502
- padding: 0px;
503
- margin: 0px;
504
- font-size: 0px;
505
- }
506
-
507
- .showData .right ul li {
508
- display: inline-block;
509
- height: 20px;
510
- list-style: none;
511
- font-size: 16px;
512
- line-height: 20px;
513
- padding: 0px 7px;
514
- margin-right: 10px;
515
- cursor: pointer;
516
- background-color: none;
517
- font-weight: bold;
518
- color: #006fa3;
519
- }
520
-
521
- .showData .right ul li:hover {
522
- color: #006fb3;
523
- }
524
-
525
- .showData .right ul li:active {
526
- color: #006fb3;
527
- }
528
-
529
- .showData .right ul li a {
530
- width: 100%;
531
- height: 100%;
532
- text-decoration: none;
533
- color: #FFFFFF;
534
- }
535
-
536
- body {
537
- color: black;
538
- }
539
-
540
- .search {
541
- width: 75%;
542
- margin: 10px auto 30px auto;
543
- }
544
-
545
- .search .searchAll {
546
- height: 34px;
547
- font-size: 18px;
548
- color: #999999;
549
- line-height: 34px;
550
- }
551
-
552
- .search .searchAll span {
553
- display: inline-block;
554
- width: 15px;
555
- height: 15px;
556
- border: #999999 1px solid;
557
- position: relative;
558
- top: 2px;
559
- }
560
-
561
- .search .searchAll .spanAll {
562
- background-color: rgb(90, 180, 90);
563
- }
564
-
565
- .search .itemList {
566
- font-size: 16px;
567
- color: #999999;
568
- line-height: 34px;
569
- }
570
-
571
- .search .itemList .item {
572
- height: 34px;
573
- position: relative;
574
- }
575
-
576
- .search .itemList .item .descript {
577
- display: inline-block;
578
- width: 80px;
579
- }
580
-
581
- .search .itemList .item .inputBox {
582
- height: 30px;
583
- position: absolute;
584
- top: 0px;
585
- left: 80px;
586
- right: 20px;
587
- }
588
-
589
- .search .itemList .item .inputBox input {
590
- width: 100%;
591
- height: 100%;
592
- outline: none;
593
- padding: 0px 5px;
594
- }
595
-
596
- .search .itemList .item .inputBox input::-webkit-input-placeholder {
597
- color: #999999;
598
- }
599
-
600
- .searchItem {
601
- height: 30px;
602
- position: absolute;
603
- top: 0px;
604
- left: 80px;
605
- right: 20px;
606
- }
607
-
608
- .searchItem .show {
609
- padding-left: 10px;
610
- }
611
-
612
- .searchItem ul {
613
- position: relative;
614
- list-style: none;
615
- background-color: none;
616
- font-weight: bold;
617
- color: #006fa3;
618
-
619
- z-index: 99;
620
- visibility: hidden;
621
- }
622
-
623
- .searchItem ul li {
624
- padding-left: 10px;
625
- }
626
-
627
- .searchItem:hover ul {
628
- visibility: visible;
629
- }
630
-
631
- .searchItem ul li:hover {
632
- color: #006fb1;
633
- }
634
-
635
- .clears {
636
- overflow: hidden;
637
- text-overflow: ellipsis;
638
- white-space: nowrap;
639
- }
640
-
641
- #fileupload {
642
- .resBtn {
643
- display: flex;
644
- align-items: center;
645
- justify-content: center;
646
- margin-top: 2%;
647
-
648
- button {
649
- white-space: nowrap;
650
- margin-right: 10px;
651
- }
652
- }
653
- }
654
- </style>
1
+ <template>
2
+ <div style="background-color: #FFFFFF;" id="fileupload">
3
+ <div class="row" style="background-color: #FFFFFF;height: auto;border-radius: 8px">
4
+ <div style="width:75%;margin: 30px auto 10px auto;padding-bottom: 10px">
5
+ <div class="inpGroup col-sm-7">
6
+ <div class="col-sm-10 form-input-group">
7
+ <label class="font_normal_body col-sm-6" style="text-align: center">文件说明</label>
8
+ <input v-model="headers.fremarks" class="input_search" placeholder="文件说明"
9
+ style="vertical-align:middle;width: 60%"/>
10
+ </div>
11
+ <div class="col-sm-10 form-input-group" style="margin-top:10px;" title="参数管理:附件使用类型">
12
+ <label class="font_normal_body col-sm-6" style="text-align: center">使用类型</label>
13
+ <v-select type="button" placeholder="使用类型" :options="foptions"
14
+ close-on-select
15
+ direction="up"
16
+ :value.sync="fusetype" v-model="fusetype" style="vertical-align:middle;width: 60%">
17
+ </v-select>
18
+ </div>
19
+ </div>
20
+ <div class="col-sm-5 resBtn">
21
+ <button class="button_search btn-gn" @click="upload()" v-show="!takeimg">拍照</button>
22
+ <button class="button_search btn-gn" @click="fileUpload()" v-show="!isupload">审核资料上传</button>
23
+ </div>
24
+ </div>
25
+ <div class="showList col-sm-12"
26
+ style="padding: 10px;margin-top: 20px;">
27
+ <hr style="width: 90%;border: #ccc 1px solid;margin:0 auto"/>
28
+ <div :class="cols ? cols : 'col-sm-6'" style="padding:10px 10px 0px 10px;height: auto;box-sizing: border-box"
29
+ v-for="row in fileInfoData">
30
+ <div class="showData">
31
+ <div class="left">
32
+ <a href="#" class="thumbnail" style="width:100%;height:100%">
33
+ <img
34
+ v-if="(row.f_filetype.toLowerCase()==='jpg'||row.f_filetype.toLowerCase()==='png'||row.f_filetype.toLowerCase()==='gif'||row.f_filetype.toLowerCase()==='bmp')&&!rotating"
35
+ :src="row.f_downloadURL" alt="..."/>
36
+ <img-self
37
+ v-if="(row.f_filetype.toLowerCase()==='jpg'||row.f_filetype.toLowerCase()==='png'||row.f_filetype.toLowerCase()==='gif'||row.f_filetype.toLowerCase()==='bmp')&&rotating"
38
+ :width="width?width:60" :height="height?height:60" :src="row.f_downloadURL" alt="..."></img-self>
39
+ <img v-if="row.f_filetype.toLowerCase()==='pdf'" src="../../../static/mainicon/pdf.jpg" alt="" style="width:66%"/>
40
+ <img-self v-if="row.f_filetype.toLowerCase()==='pdf'&&rotating" :width="width?width:60"
41
+ :height="height?height:60" src="../../../static/mainicon/pdf.jpg" alt="..."></img-self>
42
+ <img v-if="row.f_filetype.toLowerCase().match('/wav|mp3|amr/')" src="../../../static/mainicon/sound.png" alt=""
43
+ style="width:66%"/>
44
+ <img v-if="row.f_filetype.toLowerCase()==='xls'||row.f_filetype.toLowerCase()==='xlsx'"
45
+ src="../../../static/mainicon/excel.jpg" alt="" style="width:66%"/>
46
+ <img-self v-if="row.f_filetype.toLowerCase()==='xls'||row.f_filetype.toLowerCase()==='xlsx'&&rotating"
47
+ :width="width?width:60" :height="height?height:60" src="../../../static/mainicon/excel.jpg"
48
+ alt="..."></img-self>
49
+ <img v-if="row.f_filetype.toLowerCase()==='doc'||row.f_filetype.toLowerCase()==='docx'"
50
+ src="../../../static/mainicon/doc.jpg" alt="" style="width:66%"/>
51
+ <img-self v-if="row.f_filetype.toLowerCase()==='doc'||row.f_filetype.toLowerCase()==='docx'&&rotating"
52
+ :width="width?width:60" :height="height?height:60" src="../../../static/mainicon/doc.jpg" alt="..."></img-self>
53
+ </a>
54
+ </div>
55
+ <div class="right">
56
+ <p :title="row.f_uploaddate" class="top clears">
57
+ <strong>上传时间</strong>:&nbsp;<span>{{ row.f_uploaddate }}</span></p>
58
+ <p :title="row.f_username" class="top clears">
59
+ <strong>操作员</strong>:&nbsp;<span>{{ row.f_username }}</span></p>
60
+ <p :title="row.f_filename" class="top clears"><strong>文件名</strong>:&nbsp;{{ row.f_filename }}</p>
61
+ <p :title="row.fremarks" class="top clears"><strong>文件说明</strong>:&nbsp;{{ row.fremarks }}</p>
62
+ <p>
63
+ <a
64
+ v-if="row.f_filetype.toLowerCase()==='jpg'||row.f_filetype.toLowerCase()==='png'||row.f_filetype.toLowerCase()==='gif'||row.f_filetype.toLowerCase()==='bmp'"
65
+ :href="row.f_downloadURL" style="background:#6aa6e2" class="btn btn-primary" target="_blank"
66
+ role="button">预览</a>
67
+ <button class="button_search btn-gn"
68
+ v-if="row.f_filetype.toLowerCase().match('/wav|mp3|amr/')||row.f_filetype.toLowerCase()==='pdf'||row.f_filetype.toLowerCase()==='xls'||row.f_filetype.toLowerCase()==='xlsx'||row.f_filetype.toLowerCase()==='doc'||row.f_filetype.toLowerCase()==='docx'"
69
+ @click="downloadfile(row.f_downloadURL)">下载
70
+ </button>
71
+ <a v-if="isDelete == '1'" @click="delet($index,row)" href="#" class="btn btn-default"
72
+ role="button">删除</a>
73
+ </p>
74
+ </div>
75
+ </div>
76
+ </div>
77
+ </div>
78
+ </div>
79
+ <modal :show.sync="showUpload" styles="border-radius:20px;margin-top:300px" v-ref:modal backdrop="false"
80
+ :width="700">
81
+ <header slot="modal-header" class="modal-header">
82
+ <button type="button" class="close" @click="close"><span class="glyphicon glyphicon-remove"></span></button>
83
+ <h4 class="modal-title" style="text-align: center">文件上传</h4>
84
+ </header>
85
+ <article slot="modal-body" class="modal-body" style="height: 70px">
86
+ <div class="form-group">
87
+ <file-upload style="margin-left:100px;padding-top:20px" class="my-file-uploader" :name="'myFile' + blodid"
88
+ action="api/af-revenue/file/uploadFile" tagname="文件上传" :headers="headers" multiple
89
+ v-ref:file></file-upload>
90
+ </div>
91
+ </article>
92
+ <footer slot="modal-footer" class="modal-footer">
93
+ </footer>
94
+ </modal>
95
+ </div>
96
+
97
+ <high-meter :show.sync="showhighmeter" @photo-finish="newPhoto" v-if="showhighmeter"
98
+ v-on:confirminfo="confirmIdCard"></high-meter>
99
+ </template>
100
+ <script>
101
+ import { HttpResetClass } from 'vue-client'
102
+ import Vue from 'vue'
103
+ export default {
104
+ title: '附件',
105
+ props: ['blodid', 'businessid', 'isremark', 'isusetype', 'takeimg', 'defname', 'isupload', 'fusetype', 'cols', 'width', 'height'],
106
+ data () {
107
+ return {
108
+ isDelete: '0', // 删除按钮,可以进行控制(权限等)
109
+ fileInfoData: [], // 数据库存储的文件记录对象数组
110
+ headers: {
111
+ 'username': this.$login.f.name,
112
+ 'blodid': '',
113
+ 'businessid': '',
114
+ 'fremarks': '',
115
+ 'defname': '',
116
+ 'fusetype': this.fusetype ? this.fusetype : ''
117
+ }, // 调用api/af-revenue/file/uploadFile 的参数
118
+ showUpload: false, // 上传模态框控制
119
+ showhighmeter: false, // 高拍仪组件控制
120
+ fileRemark: '', // 文件说明
121
+ rotating: this.$appdata.getSingleValue('图片附加功能') // 文件是否旋转
122
+ }
123
+ },
124
+ methods: {
125
+ confirmIdCard (IdCardInfo) {
126
+ this.showhighmeter = !this.showhighmeter
127
+ },
128
+ // 查询按钮事件
129
+ delet (index, row) {
130
+ this.$resetdelete('api/af-revenue/entity/t_files', {id: row.id}, {
131
+ resolveMsg: '删除成功',
132
+ rejectMsg: '删除失败'
133
+ }).then((res) => {
134
+ this.$dispatch('delResid', row.id)
135
+ this.fileInfoData.splice(index, 1)
136
+ })
137
+ },
138
+ downloadfile (filepath) {
139
+ var link = document.createElement('a')
140
+ // let pathName = "http://" + location.host + filepath;
141
+ link.href = filepath
142
+ link.target = '_blank'
143
+ link.dispatchEvent(new MouseEvent('click'))
144
+ },
145
+ GetRequest () {
146
+ var url = location.search
147
+ var theRequest = new Object()
148
+ if (url.indexOf('?') != -1) {
149
+ var str = url.substr(1)
150
+ let strs = str.split('&')
151
+ for (var i = 0; i < strs.length; i++) {
152
+ theRequest[strs[i].split('=')[0]] = decodeURIComponent(strs[i].split('=')[1])
153
+ }
154
+ }
155
+ return theRequest
156
+ },
157
+ upload () {
158
+ if (this.showhighmeter) {
159
+ console.log(this, '测试')
160
+ this.$refs.ltgao.closeVideo()
161
+ }
162
+ console.log('测试1')
163
+ this.showhighmeter = !this.showhighmeter
164
+ },
165
+ async load (self) {
166
+ let condition = ''
167
+ if (this.businessid) {
168
+ condition = `f_businessid= '${self.headers.businessid}' `
169
+ } else {
170
+ condition = `f_blobid= '${self.headers.blodid}' `
171
+ }
172
+ if (this.fusetype) {
173
+ condition += ` and fusetype like '%${this.fusetype}%'`
174
+ }
175
+ var http = new HttpResetClass()
176
+ let data = {
177
+ condition: condition
178
+ }
179
+ let getFile = []
180
+ try {
181
+ getFile = await http.load('POST', 'api/af-revenue/sql/getFiles', {data: data}, {
182
+ warnMsg: null,
183
+ resolveMsg: null
184
+ })
185
+ } catch (e) {
186
+ console.log(e)
187
+ }
188
+ for (var i = 0; i < getFile.data.length; i++) {
189
+ // 如果使用类型包含导入字样,则是execl文件导入的,不做显示
190
+ if (getFile.data[i].fusetype && (getFile.data[i].fusetype.includes('execl导入'))) {
191
+ getFile.data.splice(i, 1)
192
+ i--
193
+ continue
194
+ }
195
+ let temp = getFile.data[i].f_downloadpath
196
+ let URL = ''
197
+ if (temp.lastIndexOf(':\\') > -1) {
198
+ URL = temp.substring(temp.lastIndexOf(':\\') + 2)
199
+ } else {
200
+ URL = temp.substring(temp.lastIndexOf('://') + 2)
201
+ }
202
+
203
+ var xy = this.$appdata.getSingleValue('协议') ? this.$appdata.getSingleValue('协议') : 'http://'
204
+ getFile.data[i].f_downloadURL = xy + location.host + '/' + URL
205
+ }
206
+ self.fileInfoData = []
207
+ self.fileInfoData = getFile.data
208
+ },
209
+ // 数据库时间格式化
210
+ formatdate (val) {
211
+ // 20180914151603 : 2018-09-14 15:16:03
212
+ if (val.length != 14) { return }
213
+ let year = val.substr(0, 4)
214
+ let month = val.substr(4, 2)
215
+ let day = val.substr(6, 2)
216
+ let hour = val.substr(8, 2)
217
+ let min = val.substr(10, 2)
218
+ let second = val.substr(12, 2)
219
+ return year + '-' + month + '-' + day + ' ' + hour + ':' + min + ':' + second
220
+ },
221
+ // 打开文件上传对话框
222
+ fileUpload () {
223
+ this.showUpload = true
224
+ },
225
+ // 关闭文件上传对话框
226
+ close () {
227
+ this.showUpload = false
228
+ // 将选的文件清空
229
+ this.$refs.file.$el.querySelector('input').value = ''
230
+ this.load(this)
231
+ },
232
+ convertBase64ToBlob (base64String) {
233
+ // 将base64解码
234
+ var bytes = atob(base64String)
235
+ // var bytes = base64;
236
+ var bytesCode = new ArrayBuffer(bytes.length)
237
+ // 转换为类型化数组
238
+ var byteArray = new Uint8Array(bytesCode)
239
+
240
+ // 将base64转换为ascii码
241
+ for (var i = 0; i < bytes.length; i++) {
242
+ byteArray[i] = bytes.charCodeAt(i)
243
+ }
244
+ // 生成Blob对象(文件对象)
245
+ return new Blob([bytesCode], {type: 'image/jpeg'})
246
+ },
247
+ newPhoto (data) {
248
+ console.log(data.img)
249
+ data.name = 'GaoPaiYi'
250
+ let form = new FormData()
251
+ let xhr = new XMLHttpRequest()
252
+ let formDataBoundary = '----WebkitFormBoundary' + 'GaoPaiYi'
253
+ form.append('Content-Type', 'multipart/form-data;boundary=' + formDataBoundary)
254
+ form.append('file', this.convertBase64ToBlob(data.img), `${data.name}.png`)
255
+
256
+ xhr.open('POST', 'api/af-revenue/file/uploadFile')
257
+ if (this.headers) {
258
+ this.headers.blodid = this.blodid
259
+ for (var header in this.headers) {
260
+ xhr.setRequestHeader(header, encodeURIComponent(this.headers[header]))
261
+ }
262
+ }
263
+ if (Vue.$login && Vue.$login.jwt) {
264
+ xhr.setRequestHeader('Authorization', 'Bearer ' + Vue.$login.jwtNew)
265
+ xhr.setRequestHeader('Token', Vue.$login.jwt)
266
+ }
267
+ xhr.send(form)
268
+ setTimeout(() => {
269
+ this.load(this)
270
+ }, 5000)
271
+ }
272
+ },
273
+ ready () {
274
+ if (this.$login.r.find(value => value == '上传附件删除')) {
275
+ // 有删除权限
276
+ this.isDelete = '1'
277
+ }
278
+ this.headers.blodid = this.blodid
279
+ this.headers.businessid = this.businessid
280
+ console.log('123222', this.businessid)
281
+ if (this.blodid || this.businessid) {
282
+ this.load(this)
283
+ }
284
+ },
285
+ watch: {
286
+ 'blodid' (val) {
287
+ if (val) {
288
+ console.log('观察blodid', val)
289
+ this.headers.blodid = this.blodid
290
+ this.load(this)
291
+ }
292
+ },
293
+ 'businessid' (val) {
294
+ console.log('观察businessid')
295
+ if (val) {
296
+ console.log('观察businessid', val)
297
+ this.headers.businessid = this.businessid
298
+ this.load(this)
299
+ }
300
+ },
301
+ 'defname' () {
302
+ this.headers.defname = this.defname
303
+ }
304
+ },
305
+ computed: {
306
+ foptions () {
307
+ let default_type = ['档案信息', '发卡售气', '卡表收费', '物联网表收费',
308
+ '机表收费', '表具停用', '换表&清零', '其他补气', '补气购气',
309
+ '预存收费', '调价补差', '黑名单', '补卡', '限购', '销户', '过户', '签约信息']
310
+ return !this.$appdata.getParam('附件使用类型') || !this.$appdata.getParam('附件使用类型').length
311
+ ? default_type.map((item) => {
312
+ return {label: item, value: item}
313
+ }) : this.$appdata.getParam('附件使用类型')
314
+ }
315
+ },
316
+ events: {
317
+ onFileUpload: function (file, res) {
318
+ console.log('上传完毕', res)
319
+ this.$dispatch('resid', res.id)
320
+ this.headers.fremarks = ''
321
+ this.close()
322
+ }
323
+ }
324
+ }
325
+ </script>
326
+ <style scoped>
327
+
328
+ * {
329
+ padding: 0px;
330
+ margin: 0px;
331
+ }
332
+
333
+ .inpGroup {
334
+ font-family: "微软雅黑";
335
+ }
336
+
337
+ .navWin {
338
+ position: relative;
339
+ }
340
+
341
+ .navWin .navShow {
342
+ margin-top: 5px;
343
+ height: 34px;
344
+ font-size: 20px;
345
+ line-height: 34px;
346
+ color: rgb(180, 180, 180);
347
+ }
348
+
349
+ .navWin .navShow span {
350
+ display: inline-block;
351
+ height: 34px;
352
+ }
353
+
354
+ .navWin .navShow .icon {
355
+ height: 34px;
356
+ margin-right: 10px;
357
+ color: rgb(200, 200, 200);
358
+ }
359
+
360
+ .navWin .navList {
361
+ position: absolute;
362
+ width: 100%;
363
+ z-index: 99;
364
+ list-style: none;
365
+ background-color: rgba(241, 241, 241, 0.9);
366
+ line-height: 34px;
367
+ color: #8d8d8d;
368
+ visibility: hidden;
369
+ }
370
+
371
+ .navWin:hover .navList {
372
+ visibility: visible;
373
+ }
374
+
375
+ .navWin .navList li {
376
+ font-size: 18px;
377
+ padding-left: 30px;
378
+ }
379
+
380
+ .navWin .navList li:hover {
381
+ background-color: rgba(220, 220, 220, 0.9);
382
+ }
383
+
384
+ .inp {
385
+ box-sizing: border-box;
386
+ width: 79%;
387
+ padding: 0px 10px;
388
+ height: 34px;
389
+ font-size: 14px;
390
+ line-height: 36px;
391
+ color: #999999;
392
+ border: solid 1px #c1c1c1;
393
+ border-radius: 2px;
394
+ background: none;
395
+ outline: none;
396
+ }
397
+
398
+ .inp::-webkit-input-placeholder {
399
+ color: #999999;
400
+ }
401
+
402
+ .inp_button {
403
+ float: right;
404
+ margin-left: 10px;
405
+ /* position: absolute;
406
+ right: 35px;
407
+ height: 40px;*/
408
+ width: 100px;
409
+ font-size: 14px;
410
+ line-height: 34px;
411
+ color: #ffffff;
412
+ text-align: center;
413
+ background-color: rgb(90, 180, 90);
414
+ border-radius: 4px;
415
+ cursor: pointer;
416
+ }
417
+
418
+ .btn-group {
419
+ height: 34px;
420
+ }
421
+
422
+ .inp_button2 {
423
+ float: right;
424
+ margin-left: 10px;
425
+ /* position: absolute;
426
+ right: 35px;
427
+ height: 40px;*/
428
+ width: auto;
429
+ font-size: 16px;
430
+ line-height: 34px;
431
+ color: #ffffff;
432
+ text-align: center;
433
+ border-radius: 4px;
434
+ cursor: pointer;
435
+ }
436
+
437
+ .inp_button:hover {
438
+ /*background-color: rgb(80, 150, 80);*/
439
+ }
440
+
441
+ .inp_button:active {
442
+ font-size: 20px;
443
+ /*background-color: rgb(150, 200, 150);*/
444
+ }
445
+
446
+ .showData {
447
+ height: auto;
448
+ position: relative;
449
+ padding-bottom: 7px;
450
+ border-bottom: solid 1px #c1c1c1;
451
+ font-family: "微软雅黑";
452
+ }
453
+
454
+ .showData .left {
455
+ height: 180px;
456
+ width: 210px;
457
+ background-color: rgb(240, 240, 240);
458
+ overflow: hidden;
459
+ line-height: 180px;
460
+ }
461
+
462
+ .showData .left img {
463
+ width: 100%;
464
+ height: auto;
465
+ }
466
+
467
+ .showData .right {
468
+ position: absolute;
469
+ top: 0px;
470
+ left: 220px;
471
+ right: 0px;
472
+ height: 180px;
473
+ }
474
+
475
+ .showData .right .top {
476
+ height: 30px;
477
+ line-height: 30px;
478
+ color: rgb(98, 98, 98);
479
+ }
480
+
481
+ .showData .right .top .topleft {
482
+ float: left;
483
+ font-size: 16px;
484
+ margin-right: 20px;
485
+ }
486
+
487
+ .showData .right .top .topright {
488
+ float: right;
489
+ margin-left: 20px;
490
+ }
491
+
492
+ .showData .right .text {
493
+ word-wrap: break-word;
494
+ overflow: hidden;
495
+ /*height: 100px;*/
496
+ color: #999999;
497
+ /*padding: 8px 0px;*/
498
+ }
499
+
500
+ .showData .right ul {
501
+ height: 20px;
502
+ padding: 0px;
503
+ margin: 0px;
504
+ font-size: 0px;
505
+ }
506
+
507
+ .showData .right ul li {
508
+ display: inline-block;
509
+ height: 20px;
510
+ list-style: none;
511
+ font-size: 16px;
512
+ line-height: 20px;
513
+ padding: 0px 7px;
514
+ margin-right: 10px;
515
+ cursor: pointer;
516
+ background-color: none;
517
+ font-weight: bold;
518
+ color: #006fa3;
519
+ }
520
+
521
+ .showData .right ul li:hover {
522
+ color: #006fb3;
523
+ }
524
+
525
+ .showData .right ul li:active {
526
+ color: #006fb3;
527
+ }
528
+
529
+ .showData .right ul li a {
530
+ width: 100%;
531
+ height: 100%;
532
+ text-decoration: none;
533
+ color: #FFFFFF;
534
+ }
535
+
536
+ body {
537
+ color: black;
538
+ }
539
+
540
+ .search {
541
+ width: 75%;
542
+ margin: 10px auto 30px auto;
543
+ }
544
+
545
+ .search .searchAll {
546
+ height: 34px;
547
+ font-size: 18px;
548
+ color: #999999;
549
+ line-height: 34px;
550
+ }
551
+
552
+ .search .searchAll span {
553
+ display: inline-block;
554
+ width: 15px;
555
+ height: 15px;
556
+ border: #999999 1px solid;
557
+ position: relative;
558
+ top: 2px;
559
+ }
560
+
561
+ .search .searchAll .spanAll {
562
+ background-color: rgb(90, 180, 90);
563
+ }
564
+
565
+ .search .itemList {
566
+ font-size: 16px;
567
+ color: #999999;
568
+ line-height: 34px;
569
+ }
570
+
571
+ .search .itemList .item {
572
+ height: 34px;
573
+ position: relative;
574
+ }
575
+
576
+ .search .itemList .item .descript {
577
+ display: inline-block;
578
+ width: 80px;
579
+ }
580
+
581
+ .search .itemList .item .inputBox {
582
+ height: 30px;
583
+ position: absolute;
584
+ top: 0px;
585
+ left: 80px;
586
+ right: 20px;
587
+ }
588
+
589
+ .search .itemList .item .inputBox input {
590
+ width: 100%;
591
+ height: 100%;
592
+ outline: none;
593
+ padding: 0px 5px;
594
+ }
595
+
596
+ .search .itemList .item .inputBox input::-webkit-input-placeholder {
597
+ color: #999999;
598
+ }
599
+
600
+ .searchItem {
601
+ height: 30px;
602
+ position: absolute;
603
+ top: 0px;
604
+ left: 80px;
605
+ right: 20px;
606
+ }
607
+
608
+ .searchItem .show {
609
+ padding-left: 10px;
610
+ }
611
+
612
+ .searchItem ul {
613
+ position: relative;
614
+ list-style: none;
615
+ background-color: none;
616
+ font-weight: bold;
617
+ color: #006fa3;
618
+
619
+ z-index: 99;
620
+ visibility: hidden;
621
+ }
622
+
623
+ .searchItem ul li {
624
+ padding-left: 10px;
625
+ }
626
+
627
+ .searchItem:hover ul {
628
+ visibility: visible;
629
+ }
630
+
631
+ .searchItem ul li:hover {
632
+ color: #006fb1;
633
+ }
634
+
635
+ .clears {
636
+ overflow: hidden;
637
+ text-overflow: ellipsis;
638
+ white-space: nowrap;
639
+ }
640
+
641
+ #fileupload {
642
+ .resBtn {
643
+ display: flex;
644
+ align-items: center;
645
+ justify-content: center;
646
+ margin-top: 2%;
647
+
648
+ button {
649
+ white-space: nowrap;
650
+ margin-right: 10px;
651
+ }
652
+ }
653
+ }
654
+ </style>