apply-clients 7.1.36-yuchuan-12 → 7.1.36-yuchuan-14

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 (72) hide show
  1. package/android.html +28 -28
  2. package/build/dev-server.js +25 -10
  3. package/index.html +39 -39
  4. package/package.json +1 -1
  5. package/src/apply.js +162 -161
  6. package/src/applyAndroid.js +97 -97
  7. package/src/components/android/AppSign.vue +235 -235
  8. package/src/components/android/AppUpload.vue +275 -275
  9. package/src/components/android/Ignition/VentilationIgnition.vue +408 -408
  10. package/src/components/android/Ignition/VentilationIgnitionHandle.vue +462 -462
  11. package/src/components/android/Process/AppExplorationUser.vue +454 -454
  12. package/src/components/android/Process/AppServiceControl.vue +1437 -1437
  13. package/src/components/android/Process/Processes/AppInstallationDetails.vue +980 -980
  14. package/src/components/android/Sign/AppSignTask.vue +183 -183
  15. package/src/components/android/Supervisory/AppProcessSupervisory.vue +344 -344
  16. package/src/components/android/Task/GuanXianJianShe/AppExplorationGuanXian.vue +317 -317
  17. package/src/components/android/Task/ShiGongXinXi/AppShowBuildUser.vue +431 -431
  18. package/src/components/android/Task/yiban/AppShowDone.vue +442 -442
  19. package/src/components/android/Task/yiban/ShowDone.vue +95 -95
  20. package/src/components/android/Task/yiban/satisfactionShow.vue +166 -166
  21. package/src/components/android/newPackage/customerServiceManager.vue +218 -218
  22. package/src/components/android/newPackage/projectPrice.vue +218 -218
  23. package/src/components/product/ApplyCharge/ApplyChargeList.vue +1 -1
  24. package/src/components/product/ApplyGaiXianCharge/ApplyGaiXianViewList.vue +272 -272
  25. package/src/components/product/ApplyGuanXian/GuanXianCaiLiao.vue +236 -236
  26. package/src/components/product/ApplyGuanXian/GuanXianExplorationSelect.vue +324 -324
  27. package/src/components/product/ApplyGuanXian/GuanXianExplorationUser.vue +144 -144
  28. package/src/components/product/ApplyGuanXian/GuanXianSupervisoryhCart.vue +119 -119
  29. package/src/components/product/ApplyMap/AMapLocation.vue +871 -0
  30. package/src/components/product/ApplyMap/ApplyDragaboutList.vue +223 -223
  31. package/src/components/product/ApplyMap/ApplyInputSearch.vue +212 -212
  32. package/src/components/product/ApplyMap/ApplyMapCom.vue +82 -82
  33. package/src/components/product/ApplyMap/ApplyMapInputSearch.vue +335 -335
  34. package/src/components/product/ApplyMap/ApplyMapLocation.vue +862 -862
  35. package/src/components/product/ChongZheng/ApplyChongZhengList.vue +415 -415
  36. package/src/components/product/Function/InstallFunction.vue +133 -133
  37. package/src/components/product/Function/InstallInfoSelect.vue +371 -371
  38. package/src/components/product/Function/Service/FunctionServiceControl.vue +586 -586
  39. package/src/components/product/GongJianPush/ApplyPushManage.vue +90 -90
  40. package/src/components/product/Ignition/IgnitionListManage.vue +602 -602
  41. package/src/components/product/Ignition/IgnitionRecord.vue +380 -380
  42. package/src/components/product/InsuranceApply/InsuranceReport.vue +1 -2
  43. package/src/components/product/List/OldShowDevices.vue +271 -271
  44. package/src/components/product/List/ShowAllActivity.vue +540 -540
  45. package/src/components/product/List/ShowDevices.vue +279 -279
  46. package/src/components/product/Print/BuildOrder/buildOrderList.vue +446 -446
  47. package/src/components/product/Process/ExplorationSelect.vue +597 -597
  48. package/src/components/product/Process/ExplorationUser.vue +158 -158
  49. package/src/components/product/Process/New1ExplorationUser.vue +201 -201
  50. package/src/components/product/Process/NewExplorationSelect.vue +586 -586
  51. package/src/components/product/Process/NewExplorationUser.vue +219 -219
  52. package/src/components/product/Process/Processes/InstallationDetails.vue +1159 -1159
  53. package/src/components/product/Process/Processes/Print/printCharge.vue +250 -250
  54. package/src/components/product/Process/Processes/Print/printGaiXianCharge.vue +244 -244
  55. package/src/components/product/Process/Processes/chargeManagement.vue +704 -704
  56. package/src/components/product/Process/Processes/devicesManagement.vue +393 -393
  57. package/src/components/product/Process/Processes/newDevicesManagement.vue +413 -413
  58. package/src/components/product/Process/Processes/selectChaiChuUserinfo.vue +230 -230
  59. package/src/components/product/Process/Processes/selectOldUserinfo.vue +241 -241
  60. package/src/components/product/Process/Processes/selectUserinfo.vue +234 -234
  61. package/src/components/product/Process/Service/ServiceControl.vue +2205 -2205
  62. package/src/components/product/ServiceView.vue +644 -644
  63. package/src/components/product/Stop/StopApplyList.vue +224 -224
  64. package/src/components/product/Supervisory/NewSupervisoryhCart.vue +175 -175
  65. package/src/components/product/Supervisory/Service/SupervisoryServiceControl.vue +592 -592
  66. package/src/components/product/Supervisory/SupervisoryControl.vue +116 -116
  67. package/src/components/product/Supervisory/SupervisoryList.vue +557 -557
  68. package/src/components/product/Supervisory/SupervisoryhCart.vue +119 -119
  69. package/src/components/product/Supervisory/YiBanSupervisoryList.vue +539 -539
  70. package/src/components/product/VueUtils/ApplyUpload.vue +285 -285
  71. package/src/components/product/records/AdjustmentRecordList.vue +162 -162
  72. package/src/main.js +27 -27
@@ -1,285 +1,285 @@
1
- <template>
2
- <div class="col-sm-12" style="background-color: #FFFFFF">
3
- <div class="col-sm-12" style="padding:50px 100px;height: 25%">
4
- <div class="form-group col-sm-5" v-if="issearch">
5
- <v-select
6
- class="select select_list"
7
- :value.sync="useType"
8
- width="90%"
9
- v-model="useType"
10
- :options='typeOfUse'
11
- :valueSingle="true"></v-select>
12
- </div>
13
- <div class="form-group col-sm-2" style="text-align: center" v-if="issearch">
14
- <button type="button" class="btn btn-primary item_btn" @click="load">搜索</button>
15
- </div>
16
- <!-- && source!='流程查看'-->
17
- <div class="form-group col-sm-2" style="text-align: center" v-if="isupload ">
18
- <button type="button" class="btn btn-primary item_btn" @click="showUpload = !showUpload">本地上传</button>
19
- </div>
20
- <div class="form-group col-sm-2" style="text-align: center" v-if="takeimg">
21
- <button type="button" class="btn btn-primary item_btn" @click="upload()">拍照</button>
22
- </div>
23
- </div>
24
- <hr style="width: 90%;margin: 0px auto;border: #999999 1px solid;"/>
25
- <div class="col-sm-12" style="overflow: scroll;height: 75%">
26
- <div :class="bootstraped ? bootstraped + ' showData' : 'col-sm-6 showData'" v-for="row in fileInfoData">
27
- <div class="col-sm-12 item">
28
- <div class="left col-sm-5">
29
- <a href="#" class="thumbnail" style="width: 100%;height: 100%">
30
- <img v-if="row.f_filetype === 'jpg'||row.f_filetype === 'png'||row.f_filetype === 'gif'||row.f_filetype === 'bmp'" :src="row.f_downloadURL" alt="..."/>
31
- <img v-if="row.f_filetype === 'pdf'" src="../../image/pdf.jpg" alt="" />
32
- <img v-if="row.f_filetype === 'xls'||row.f_filetype === 'xlsx'" src="../../image/excel.jpg" alt="" />
33
- <img v-if="row.f_filetype === 'doc'||row.f_filetype === 'docx'" src="../../image/doc.jpg" alt="" />
34
- <img v-if="row.f_filetype === 'dwg'" src="../../image/dwg.png" alt="" />
35
- <img v-if="row.f_filetype === 'dxf'" src="../../image/dxf.png" alt="" />
36
- </a>
37
- </div>
38
- <div class="right col-sm-7">
39
- <p :title="row.f_filename" class="clears"><strong>文件名:</strong>{{row.f_filename}}</p>
40
- <p :title="row.f_username" class="clears"><strong>操作员:</strong><span>{{row.f_username}}</span></p>
41
- <p :title="row.fusetype" class="clears"><strong>使用类型:</strong><span>{{row.fusetype}}</span></p>
42
- <p :title="row.f_uploaddate" class="clears"><strong>上传时间:</strong><span>{{row.f_uploaddate}}</span></p>
43
- <p :title="row.fremarks" class="clears"><strong>文件说明:</strong>{{row.fremarks}}</p>
44
- <p class="clears">
45
- <a v-if="row.f_filetype === 'jpg' || row.f_filetype==='png' || row.f_filetype==='gif' || row.f_filetype==='bmp'" :href="row.f_downloadURL" style="background:#6aa6e2" class="btn btn-primary" target="_blank" role="button">预览</a>
46
- <a v-if="row.f_filetype === 'dwg' || row.f_filetype==='dxf'" style="background:#6aa6e2" class="btn btn-primary" :href="row.f_downloadURL" role="button" download>下载</a>
47
- <a v-if="row.f_filetype !=='jpg' && row.f_filetype !=='png' && row.f_filetype !=='gif' && row.f_filetype !=='bmp' && row.f_filetype !=='dxf' && row.f_filetype !=='dwg'"
48
- @click="downloadfile(row.f_downloadURL)" style="background:#6aa6e2" class="btn btn-primary" role="button">下载</a>
49
- <a v-if="isdelete && row.defname === defname" @click="delet($index, row)" href="#" class="btn btn-default" role="button" role="button">删除</a>
50
- </p>
51
- </div>
52
- </div>
53
- </div>
54
- </div>
55
- </div>
56
- <apply-high-meter
57
- v-if="showhighmeter"
58
- :show.sync="showhighmeter"
59
- :isusetype="isusetype"
60
- :isremark="isremark"
61
- @photo-finish="newPhoto"
62
- v-ref:ltgao
63
- ></apply-high-meter>
64
- <modal :show.sync="showUpload" v-ref:modal backdrop="false">
65
- <header slot="modal-header" class="modal-header">
66
- <button type="button" class="close" @click="close"><span class="glyphicon glyphicon-remove"></span></button>
67
- <h4 class="modal-title" style="text-align: center">文件上传</h4>
68
- </header>
69
- <article slot="modal-body" class="modal-body form-horizontal">
70
- <div class="form-group" style="text-align: center">
71
- <file-upload class="my-file-uploader" :name="'myFile' + blodid"
72
- action="rs/file/uploadFile" tagname="文件上传" :headers="headers" multiple v-ref:file></file-upload>
73
- </div>
74
- <div class="form-group" v-if="isusetype">
75
- <label class="col-sm-2 control-label">文件类型:</label>
76
- <div class="col-sm-10">
77
- <input-select
78
- class="select select_list"
79
- :value.sync="headers.fusetype"
80
- v-model="headers.fusetype"
81
- :options="$appdata.getParam('使用类型')"
82
- :valueSingle="true"></input-select>
83
- </div>
84
- </div>
85
- <div class="form-group" v-if="isremark" style="color: #df2424">
86
- <label class="col-sm-2 control-label">文件说明:</label>
87
- <div class="col-sm-10">
88
- <input class="form-control input_view" style=""
89
- v-model="headers.fremarks"
90
- :value="headers.fremarks"/>
91
- </div>
92
- </div>
93
- </article>
94
- <footer slot="modal-footer" class="modal-footer">
95
- </footer>
96
- </modal>
97
- </template>
98
-
99
- <script>
100
- import {HttpResetClass} from 'vue-client'
101
- import {isEmpty} from "../../Util";
102
- export default {
103
- title: '附件',
104
- props: ['blodid', 'businessid', 'isremark', 'isusetype', 'takeimg', 'defname', 'isupload', 'isdelete', 'bootstraped', 'issearch','source'],
105
- data () {
106
- return {
107
- fileInfoData: [], // 数据库存储的文件记录对象数组
108
- headers: {'username': this.$login.f.name, 'blodid': '','businessid':'', 'fremarks': '','defname':'','fusetype':''}, // 调用rs/file/uploadFile 的参数
109
- showUpload: false, // 上传模态框控制
110
- showhighmeter: false, // 高拍仪组件控制
111
- useType: null
112
- }
113
- },
114
- ready () {
115
- this.headers.blodid = this.blodid
116
- this.headers.businessid = this.businessid
117
- this.headers.defname = this.defname
118
- if (this.blodid || this.businessid) {
119
- this.load()
120
- }
121
- },
122
- methods: {
123
- delet(index, row) {
124
- this.$resetdelete('rs/entity/t_files', {id: row.id}, {resolveMsg: '删除成功', rejectMsg: '删除失败'}).then((res) => {
125
- this.$dispatch("delResid",row.id)
126
- this.load()
127
- })
128
- },
129
- // 下载
130
- downloadfile(filepath){
131
- var link = document.createElement('a');
132
- link.href = filepath;
133
- link.target='_blank'
134
- link.dispatchEvent(new MouseEvent('click'));
135
- },
136
- // 关闭文件上传对话框
137
- close () {
138
- this.showUpload = false
139
- this.showhighmeter = false
140
- // 将选的文件清空
141
- this.$refs.file.$el.querySelector('input').value = ''
142
- this.headers.fusetype = ''
143
- this.headers.fremarks = ''
144
- this.load()
145
- },
146
- // 查询
147
- async load() {
148
- let condition = ''
149
- if(this.businessid){
150
- condition = `f_businessid= '${this.headers.businessid}' `
151
- }else{
152
- condition = `f_blobid= '${this.headers.blodid}' `
153
- }
154
- if (this.defname === '冲正'){
155
- condition += `and defname= '${this.defname}' `
156
- }
157
- if (!isEmpty(this.useType)) {
158
- condition += `and fusetype like '${this.useType}'`
159
- }
160
- let http = new HttpResetClass()
161
- let data = {
162
- tablename: 't_files',
163
- condition: condition + ` order by f_uploaddate desc `
164
- }
165
- let getFile = await http.load('POST', 'rs/sql/applySingleTable', {data: data}, {
166
- warnMsg: null,
167
- resolveMsg: null
168
- })
169
-
170
- for (var i = 0; i < getFile.data.length; i++) {
171
- // 如果使用类型包含导入字样,则是execl文件导入的,不做显示
172
- if(getFile.data[i].fusetype&&(getFile.data[i].fusetype.includes('execl导入'))){
173
- getFile.data.splice(i,1)
174
- i--
175
- continue
176
- }
177
- let temp = getFile.data[i].f_downloadpath
178
- if (temp.includes('http:')){
179
- getFile.data[i].f_downloadURL = temp
180
- } else {
181
- let URL = temp.substring(temp.lastIndexOf(":\\") + 2)
182
- getFile.data[i].f_downloadURL = "http://" + location.host + "/" + URL
183
- }
184
- }
185
- this.fileInfoData = []
186
- this.fileInfoData = getFile.data
187
- },
188
- // 打开高拍仪
189
- upload () {
190
- if(this.showhighmeter){
191
- this.$refs.ltgao.closeVideo()
192
- }
193
- this.showhighmeter = !this.showhighmeter
194
- },
195
- // 高拍仪回调
196
- newPhoto(Imgbase64, fusetype, fremarks) {
197
- this.headers.fusetype = fusetype
198
- this.headers.fremarks = fremarks
199
-
200
- let form = new FormData()
201
- let xhr = new XMLHttpRequest()
202
- let formDataBoundary = "----WebkitFormBoundary" + "GaoPaiYi";
203
- form.append('Content-Type', 'multipart/form-data;boundary=' + formDataBoundary)
204
- form.append('file', this.convertBase64ToBlob(Imgbase64), "GaoPaiYi.jpg")
205
- xhr.open("POST", "rs/file/uploadFile")
206
-
207
- if (this.headers) {
208
- for (var header in this.headers) {
209
- xhr.setRequestHeader(header, encodeURIComponent(this.headers[header]))
210
- }
211
- }
212
- xhr.send(form)
213
- setTimeout(() => {
214
- this.close()
215
- }, 5000)
216
- },
217
- convertBase64ToBlob(base64String) {
218
- // 将base64解码
219
- var bytes = atob(base64String);
220
- //var bytes = base64;
221
- var bytesCode = new ArrayBuffer(bytes.length);
222
- // 转换为类型化数组
223
- var byteArray = new Uint8Array(bytesCode);
224
-
225
- // 将base64转换为ascii码
226
- for (var i = 0; i < bytes.length; i++) {
227
- byteArray[i] = bytes.charCodeAt(i);
228
- }
229
- // 生成Blob对象(文件对象)
230
- return new Blob([bytesCode], {type: 'image/jpeg'});
231
- },
232
- },
233
- computed: {
234
- typeOfUse () {
235
- return [{label: '全部', value: ''}, ...this.$appdata.getParam('使用类型')]
236
- }
237
- },
238
- events: {
239
- onFileUpload: function (file, res) {
240
- this.$dispatch("resid",res.id)
241
- this.headers.fremarks=''
242
- this.close()
243
- }
244
- }
245
- }
246
- </script>
247
-
248
- <style scoped>
249
- .clears{
250
- overflow:hidden;
251
- text-overflow:ellipsis;
252
- white-space:nowrap;
253
- }
254
- .showData {
255
- padding: 15px 10px 0px 10px;
256
- box-sizing: border-box;
257
- height: 230px;
258
- font-family: "微软雅黑";
259
- }
260
- .showData .item{
261
- padding-bottom: 10px;
262
- border-bottom: solid 1px #c1c1c1;
263
- }
264
- .left {
265
- padding-right: 10px;
266
- }
267
- .left img{
268
- height: 100%;
269
- width: 100%;
270
- }
271
- .right{
272
- height: 100%;
273
- /*display: -webkit-flex;*/
274
- /*display: flex;*/
275
- /*flex-direction: column;*/
276
- /*justify-content: space-around;*/
277
- }
278
- .item_btn{
279
- width: 80%;
280
- background-color: #6aa6e2;
281
- border-radius: 4px;
282
- color: #FFFFFF;
283
- font-family: PingFang;
284
- }
285
- </style>
1
+ <template>
2
+ <div class="col-sm-12" style="background-color: #FFFFFF">
3
+ <div class="col-sm-12" style="padding:50px 100px;height: 25%">
4
+ <div class="form-group col-sm-5" v-if="issearch">
5
+ <v-select
6
+ class="select select_list"
7
+ :value.sync="useType"
8
+ width="90%"
9
+ v-model="useType"
10
+ :options='typeOfUse'
11
+ :valueSingle="true"></v-select>
12
+ </div>
13
+ <div class="form-group col-sm-2" style="text-align: center" v-if="issearch">
14
+ <button type="button" class="btn btn-primary item_btn" @click="load">搜索</button>
15
+ </div>
16
+ <!-- && source!='流程查看'-->
17
+ <div class="form-group col-sm-2" style="text-align: center" v-if="isupload ">
18
+ <button type="button" class="btn btn-primary item_btn" @click="showUpload = !showUpload">本地上传</button>
19
+ </div>
20
+ <div class="form-group col-sm-2" style="text-align: center" v-if="takeimg">
21
+ <button type="button" class="btn btn-primary item_btn" @click="upload()">拍照</button>
22
+ </div>
23
+ </div>
24
+ <hr style="width: 90%;margin: 0px auto;border: #999999 1px solid;"/>
25
+ <div class="col-sm-12" style="overflow: scroll;height: 75%">
26
+ <div :class="bootstraped ? bootstraped + ' showData' : 'col-sm-6 showData'" v-for="row in fileInfoData">
27
+ <div class="col-sm-12 item">
28
+ <div class="left col-sm-5">
29
+ <a href="#" class="thumbnail" style="width: 100%;height: 100%">
30
+ <img v-if="row.f_filetype === 'jpg'||row.f_filetype === 'png'||row.f_filetype === 'gif'||row.f_filetype === 'bmp'" :src="row.f_downloadURL" alt="..."/>
31
+ <img v-if="row.f_filetype === 'pdf'" src="../../image/pdf.jpg" alt="" />
32
+ <img v-if="row.f_filetype === 'xls'||row.f_filetype === 'xlsx'" src="../../image/excel.jpg" alt="" />
33
+ <img v-if="row.f_filetype === 'doc'||row.f_filetype === 'docx'" src="../../image/doc.jpg" alt="" />
34
+ <img v-if="row.f_filetype === 'dwg'" src="../../image/dwg.png" alt="" />
35
+ <img v-if="row.f_filetype === 'dxf'" src="../../image/dxf.png" alt="" />
36
+ </a>
37
+ </div>
38
+ <div class="right col-sm-7">
39
+ <p :title="row.f_filename" class="clears"><strong>文件名:</strong>{{row.f_filename}}</p>
40
+ <p :title="row.f_username" class="clears"><strong>操作员:</strong><span>{{row.f_username}}</span></p>
41
+ <p :title="row.fusetype" class="clears"><strong>使用类型:</strong><span>{{row.fusetype}}</span></p>
42
+ <p :title="row.f_uploaddate" class="clears"><strong>上传时间:</strong><span>{{row.f_uploaddate}}</span></p>
43
+ <p :title="row.fremarks" class="clears"><strong>文件说明:</strong>{{row.fremarks}}</p>
44
+ <p class="clears">
45
+ <a v-if="row.f_filetype === 'jpg' || row.f_filetype==='png' || row.f_filetype==='gif' || row.f_filetype==='bmp'" :href="row.f_downloadURL" style="background:#6aa6e2" class="btn btn-primary" target="_blank" role="button">预览</a>
46
+ <a v-if="row.f_filetype === 'dwg' || row.f_filetype==='dxf'" style="background:#6aa6e2" class="btn btn-primary" :href="row.f_downloadURL" role="button" download>下载</a>
47
+ <a v-if="row.f_filetype !=='jpg' && row.f_filetype !=='png' && row.f_filetype !=='gif' && row.f_filetype !=='bmp' && row.f_filetype !=='dxf' && row.f_filetype !=='dwg'"
48
+ @click="downloadfile(row.f_downloadURL)" style="background:#6aa6e2" class="btn btn-primary" role="button">下载</a>
49
+ <a v-if="isdelete && row.defname === defname" @click="delet($index, row)" href="#" class="btn btn-default" role="button" role="button">删除</a>
50
+ </p>
51
+ </div>
52
+ </div>
53
+ </div>
54
+ </div>
55
+ </div>
56
+ <apply-high-meter
57
+ v-if="showhighmeter"
58
+ :show.sync="showhighmeter"
59
+ :isusetype="isusetype"
60
+ :isremark="isremark"
61
+ @photo-finish="newPhoto"
62
+ v-ref:ltgao
63
+ ></apply-high-meter>
64
+ <modal :show.sync="showUpload" v-ref:modal backdrop="false">
65
+ <header slot="modal-header" class="modal-header">
66
+ <button type="button" class="close" @click="close"><span class="glyphicon glyphicon-remove"></span></button>
67
+ <h4 class="modal-title" style="text-align: center">文件上传</h4>
68
+ </header>
69
+ <article slot="modal-body" class="modal-body form-horizontal">
70
+ <div class="form-group" style="text-align: center">
71
+ <file-upload class="my-file-uploader" :name="'myFile' + blodid"
72
+ action="rs/file/uploadFile" tagname="文件上传" :headers="headers" multiple v-ref:file></file-upload>
73
+ </div>
74
+ <div class="form-group" v-if="isusetype">
75
+ <label class="col-sm-2 control-label">文件类型:</label>
76
+ <div class="col-sm-10">
77
+ <input-select
78
+ class="select select_list"
79
+ :value.sync="headers.fusetype"
80
+ v-model="headers.fusetype"
81
+ :options="$appdata.getParam('使用类型')"
82
+ :valueSingle="true"></input-select>
83
+ </div>
84
+ </div>
85
+ <div class="form-group" v-if="isremark" style="color: #df2424">
86
+ <label class="col-sm-2 control-label">文件说明:</label>
87
+ <div class="col-sm-10">
88
+ <input class="form-control input_view" style=""
89
+ v-model="headers.fremarks"
90
+ :value="headers.fremarks"/>
91
+ </div>
92
+ </div>
93
+ </article>
94
+ <footer slot="modal-footer" class="modal-footer">
95
+ </footer>
96
+ </modal>
97
+ </template>
98
+
99
+ <script>
100
+ import {HttpResetClass} from 'vue-client'
101
+ import {isEmpty} from "../../Util";
102
+ export default {
103
+ title: '附件',
104
+ props: ['blodid', 'businessid', 'isremark', 'isusetype', 'takeimg', 'defname', 'isupload', 'isdelete', 'bootstraped', 'issearch','source'],
105
+ data () {
106
+ return {
107
+ fileInfoData: [], // 数据库存储的文件记录对象数组
108
+ headers: {'username': this.$login.f.name, 'blodid': '','businessid':'', 'fremarks': '','defname':'','fusetype':''}, // 调用rs/file/uploadFile 的参数
109
+ showUpload: false, // 上传模态框控制
110
+ showhighmeter: false, // 高拍仪组件控制
111
+ useType: null
112
+ }
113
+ },
114
+ ready () {
115
+ this.headers.blodid = this.blodid
116
+ this.headers.businessid = this.businessid
117
+ this.headers.defname = this.defname
118
+ if (this.blodid || this.businessid) {
119
+ this.load()
120
+ }
121
+ },
122
+ methods: {
123
+ delet(index, row) {
124
+ this.$resetdelete('rs/entity/t_files', {id: row.id}, {resolveMsg: '删除成功', rejectMsg: '删除失败'}).then((res) => {
125
+ this.$dispatch("delResid",row.id)
126
+ this.load()
127
+ })
128
+ },
129
+ // 下载
130
+ downloadfile(filepath){
131
+ var link = document.createElement('a');
132
+ link.href = filepath;
133
+ link.target='_blank'
134
+ link.dispatchEvent(new MouseEvent('click'));
135
+ },
136
+ // 关闭文件上传对话框
137
+ close () {
138
+ this.showUpload = false
139
+ this.showhighmeter = false
140
+ // 将选的文件清空
141
+ this.$refs.file.$el.querySelector('input').value = ''
142
+ this.headers.fusetype = ''
143
+ this.headers.fremarks = ''
144
+ this.load()
145
+ },
146
+ // 查询
147
+ async load() {
148
+ let condition = ''
149
+ if(this.businessid){
150
+ condition = `f_businessid= '${this.headers.businessid}' `
151
+ }else{
152
+ condition = `f_blobid= '${this.headers.blodid}' `
153
+ }
154
+ if (this.defname === '冲正'){
155
+ condition += `and defname= '${this.defname}' `
156
+ }
157
+ if (!isEmpty(this.useType)) {
158
+ condition += `and fusetype like '${this.useType}'`
159
+ }
160
+ let http = new HttpResetClass()
161
+ let data = {
162
+ tablename: 't_files',
163
+ condition: condition + ` order by f_uploaddate desc `
164
+ }
165
+ let getFile = await http.load('POST', 'rs/sql/applySingleTable', {data: data}, {
166
+ warnMsg: null,
167
+ resolveMsg: null
168
+ })
169
+
170
+ for (var i = 0; i < getFile.data.length; i++) {
171
+ // 如果使用类型包含导入字样,则是execl文件导入的,不做显示
172
+ if(getFile.data[i].fusetype&&(getFile.data[i].fusetype.includes('execl导入'))){
173
+ getFile.data.splice(i,1)
174
+ i--
175
+ continue
176
+ }
177
+ let temp = getFile.data[i].f_downloadpath
178
+ if (temp.includes('http:')){
179
+ getFile.data[i].f_downloadURL = temp
180
+ } else {
181
+ let URL = temp.substring(temp.lastIndexOf(":\\") + 2)
182
+ getFile.data[i].f_downloadURL = "http://" + location.host + "/" + URL
183
+ }
184
+ }
185
+ this.fileInfoData = []
186
+ this.fileInfoData = getFile.data
187
+ },
188
+ // 打开高拍仪
189
+ upload () {
190
+ if(this.showhighmeter){
191
+ this.$refs.ltgao.closeVideo()
192
+ }
193
+ this.showhighmeter = !this.showhighmeter
194
+ },
195
+ // 高拍仪回调
196
+ newPhoto(Imgbase64, fusetype, fremarks) {
197
+ this.headers.fusetype = fusetype
198
+ this.headers.fremarks = fremarks
199
+
200
+ let form = new FormData()
201
+ let xhr = new XMLHttpRequest()
202
+ let formDataBoundary = "----WebkitFormBoundary" + "GaoPaiYi";
203
+ form.append('Content-Type', 'multipart/form-data;boundary=' + formDataBoundary)
204
+ form.append('file', this.convertBase64ToBlob(Imgbase64), "GaoPaiYi.jpg")
205
+ xhr.open("POST", "rs/file/uploadFile")
206
+
207
+ if (this.headers) {
208
+ for (var header in this.headers) {
209
+ xhr.setRequestHeader(header, encodeURIComponent(this.headers[header]))
210
+ }
211
+ }
212
+ xhr.send(form)
213
+ setTimeout(() => {
214
+ this.close()
215
+ }, 5000)
216
+ },
217
+ convertBase64ToBlob(base64String) {
218
+ // 将base64解码
219
+ var bytes = atob(base64String);
220
+ //var bytes = base64;
221
+ var bytesCode = new ArrayBuffer(bytes.length);
222
+ // 转换为类型化数组
223
+ var byteArray = new Uint8Array(bytesCode);
224
+
225
+ // 将base64转换为ascii码
226
+ for (var i = 0; i < bytes.length; i++) {
227
+ byteArray[i] = bytes.charCodeAt(i);
228
+ }
229
+ // 生成Blob对象(文件对象)
230
+ return new Blob([bytesCode], {type: 'image/jpeg'});
231
+ },
232
+ },
233
+ computed: {
234
+ typeOfUse () {
235
+ return [{label: '全部', value: ''}, ...this.$appdata.getParam('使用类型')]
236
+ }
237
+ },
238
+ events: {
239
+ onFileUpload: function (file, res) {
240
+ this.$dispatch("resid",res.id)
241
+ this.headers.fremarks=''
242
+ this.close()
243
+ }
244
+ }
245
+ }
246
+ </script>
247
+
248
+ <style scoped>
249
+ .clears{
250
+ overflow:hidden;
251
+ text-overflow:ellipsis;
252
+ white-space:nowrap;
253
+ }
254
+ .showData {
255
+ padding: 15px 10px 0px 10px;
256
+ box-sizing: border-box;
257
+ height: 230px;
258
+ font-family: "微软雅黑";
259
+ }
260
+ .showData .item{
261
+ padding-bottom: 10px;
262
+ border-bottom: solid 1px #c1c1c1;
263
+ }
264
+ .left {
265
+ padding-right: 10px;
266
+ }
267
+ .left img{
268
+ height: 100%;
269
+ width: 100%;
270
+ }
271
+ .right{
272
+ height: 100%;
273
+ /*display: -webkit-flex;*/
274
+ /*display: flex;*/
275
+ /*flex-direction: column;*/
276
+ /*justify-content: space-around;*/
277
+ }
278
+ .item_btn{
279
+ width: 80%;
280
+ background-color: #6aa6e2;
281
+ border-radius: 4px;
282
+ color: #FFFFFF;
283
+ font-family: PingFang;
284
+ }
285
+ </style>