ocpview-plus 1.3.15 → 1.3.16

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 (213) hide show
  1. package/README.md +55 -43
  2. package/dist/ocpviewplus.min.esm.js +574 -482
  3. package/dist/ocpviewplus.min.js +9 -9
  4. package/dist/style.css +1 -1
  5. package/dist/styles/efviewplus.css +1 -1
  6. package/package.json +146 -146
  7. package/src/components/base/ContractPrintMixins.js +30 -30
  8. package/src/components/base/controlbase.vue +190 -190
  9. package/src/components/base/controlbox.vue +102 -102
  10. package/src/components/base/index.js +2 -2
  11. package/src/components/base/load.js +19 -19
  12. package/src/components/base/probase.js +220 -220
  13. package/src/components/base/size.js +78 -78
  14. package/src/components/billbox/billbox.vue +67 -67
  15. package/src/components/billbox/index.js +1 -1
  16. package/src/components/cascaderbox/cascaderbox.vue +184 -184
  17. package/src/components/cascaderbox/index.js +2 -2
  18. package/src/components/checkbox/checkbox.vue +75 -75
  19. package/src/components/checkbox/checkgroupbox.vue +103 -103
  20. package/src/components/checkbox/index.js +2 -2
  21. package/src/components/colorbox/colorbox.vue +43 -43
  22. package/src/components/colorbox/index.js +1 -1
  23. package/src/components/combobox/combobox.vue +219 -219
  24. package/src/components/combobox/index.js +1 -1
  25. package/src/components/conditionbox/conditionbase.vue +194 -194
  26. package/src/components/conditionbox/conditionbox.vue +62 -62
  27. package/src/components/conditionbox/conditionfilterbox.vue +479 -479
  28. package/src/components/conditionbox/conditionselectorbox.vue +237 -237
  29. package/src/components/conditionbox/index.js +4 -4
  30. package/src/components/conditionbox/queryconditionbox.vue +25 -25
  31. package/src/components/conditionbox/queryconditionboxbase.vue +123 -123
  32. package/src/components/conditionbox/searchconditionbox.vue +113 -113
  33. package/src/components/conditionbox/searchgrid.vue +391 -391
  34. package/src/components/datebox/DateBoxV1.vue +22 -22
  35. package/src/components/datebox/datebox.vue +129 -129
  36. package/src/components/datebox/daterangebox.vue +154 -154
  37. package/src/components/datebox/index.js +5 -5
  38. package/src/components/form/baseform.vue +676 -676
  39. package/src/components/form/detailsbox.vue +487 -487
  40. package/src/components/form/formbox.vue +28 -28
  41. package/src/components/form/formcardbox.vue +267 -267
  42. package/src/components/form/formcardbox2.vue +228 -228
  43. package/src/components/form/formcardgroupbox.vue +251 -251
  44. package/src/components/form/formcompro.js +18 -18
  45. package/src/components/form/formdetail.vue +128 -128
  46. package/src/components/form/formdetailtwo.vue +302 -302
  47. package/src/components/form/index.js +9 -9
  48. package/src/components/form/toolanchor.js +45 -45
  49. package/src/components/form/workform.vue +167 -167
  50. package/src/components/grid/basegrid.vue +1062 -1062
  51. package/src/components/grid/editgrid.vue +51 -51
  52. package/src/components/grid/editgridbase.vue +1062 -1062
  53. package/src/components/grid/editgridcard.vue +193 -193
  54. package/src/components/grid/expandrow.vue +137 -137
  55. package/src/components/grid/index.js +5 -5
  56. package/src/components/grid/viewgrid.vue +121 -121
  57. package/src/components/grid/viewgridbase.vue +1286 -1286
  58. package/src/components/icon/common-icon.vue +53 -53
  59. package/src/components/icon/eicon.vue +28 -28
  60. package/src/components/icon/icons.vue +42 -42
  61. package/src/components/icon/index.js +1 -1
  62. package/src/components/label/index.js +2 -2
  63. package/src/components/label/showtext.vue +94 -94
  64. package/src/components/load/loadcartoon.vue +227 -227
  65. package/src/components/map/index.js +1 -1
  66. package/src/components/map/mapbox.vue +348 -348
  67. package/src/components/masterplate/RewriteBillListDetails/BillInfoPanel.vue +184 -184
  68. package/src/components/masterplate/RewriteBillListDetails/BillInfoPanelEditTable.vue +838 -838
  69. package/src/components/masterplate/RewriteBillListDetails/BillInfoPanelEditTableControlbox.vue +126 -126
  70. package/src/components/masterplate/RewriteBillListDetails/BillInfoPanelEditTableControlboxNumberbox.vue +27 -27
  71. package/src/components/masterplate/RewriteBillListDetails/BillListPanel.vue +126 -126
  72. package/src/components/masterplate/RewriteBillListDetails/BillListPanelQueryBar.vue +280 -280
  73. package/src/components/masterplate/RewriteBillListDetails/BillListPanelTable.vue +346 -346
  74. package/src/components/masterplate/RewriteBillListDetails/index.vue +325 -325
  75. package/src/components/masterplate/RewriteBillListDetails/mixins/useVxeGridEditTypeKeydownEventHook.js +251 -251
  76. package/src/components/masterplate/RewriteListdetails/BillListPanelV2.vue +115 -115
  77. package/src/components/masterplate/RewriteListdetails/BillListPanelV2QueryBar.vue +24 -24
  78. package/src/components/masterplate/RewriteListdetails/BillListPanelV3.vue +121 -121
  79. package/src/components/masterplate/RewriteListdetails/BillListPanelV3QueryBar.vue +275 -275
  80. package/src/components/masterplate/RewriteListdetails/indexV2.vue +320 -320
  81. package/src/components/masterplate/RewriteListdetails/indexV3.vue +331 -331
  82. package/src/components/masterplate/appendix.vue +586 -586
  83. package/src/components/masterplate/approval.vue +863 -863
  84. package/src/components/masterplate/base.vue +1028 -1028
  85. package/src/components/masterplate/billasyncimport.vue +614 -614
  86. package/src/components/masterplate/billconditionbox.vue +223 -223
  87. package/src/components/masterplate/billconditionsbox.vue +427 -427
  88. package/src/components/masterplate/billdetailform.vue +1028 -1028
  89. package/src/components/masterplate/billimport.vue +301 -301
  90. package/src/components/masterplate/billquerygrid.vue +391 -391
  91. package/src/components/masterplate/billsinglegrid.vue +234 -234
  92. package/src/components/masterplate/birtreport.vue +185 -185
  93. package/src/components/masterplate/contractappendix.vue +688 -688
  94. package/src/components/masterplate/detailbtntoolbar.vue +311 -311
  95. package/src/components/masterplate/detailsbox.vue +386 -386
  96. package/src/components/masterplate/editgridcard.vue +292 -292
  97. package/src/components/masterplate/editgridcard2.vue +127 -127
  98. package/src/components/masterplate/formcard.vue +105 -105
  99. package/src/components/masterplate/formcardgroupbox.vue +167 -167
  100. package/src/components/masterplate/formdetailtwo.vue +366 -366
  101. package/src/components/masterplate/gridcolset.vue +226 -226
  102. package/src/components/masterplate/index.js +54 -54
  103. package/src/components/masterplate/layouttemplate.vue +51 -51
  104. package/src/components/masterplate/leftlistrightdetails.vue +581 -581
  105. package/src/components/masterplate/leftlistrightlist.vue +464 -464
  106. package/src/components/masterplate/lefttreerightdetails.vue +636 -636
  107. package/src/components/masterplate/levelreport.vue +510 -510
  108. package/src/components/masterplate/listbtntoolbar.vue +276 -276
  109. package/src/components/masterplate/listdetails.vue +768 -768
  110. package/src/components/masterplate/operlog.vue +272 -272
  111. package/src/components/masterplate/options.vue +110 -110
  112. package/src/components/masterplate/page.vue +102 -102
  113. package/src/components/masterplate/promptmessage.vue +73 -73
  114. package/src/components/masterplate/querybar.vue +490 -490
  115. package/src/components/masterplate/report.vue +357 -357
  116. package/src/components/masterplate/rowbtntoolbar.vue +126 -126
  117. package/src/components/masterplate/simpletree.vue +137 -137
  118. package/src/components/masterplate/simpleviewgrid.vue +144 -144
  119. package/src/components/mychart/bar/bar.vue +201 -201
  120. package/src/components/mychart/basechart.vue +190 -190
  121. package/src/components/mychart/complexmychart/barline.vue +153 -153
  122. package/src/components/mychart/gauge/gauge.vue +82 -82
  123. package/src/components/mychart/index.js +8 -8
  124. package/src/components/mychart/line/line.vue +201 -201
  125. package/src/components/mychart/liquidfill/liquidfill.vue +108 -108
  126. package/src/components/mychart/pie/pie.vue +95 -95
  127. package/src/components/mychart/radar/radar.vue +121 -121
  128. package/src/components/mychart/scatter/scatter.vue +75 -75
  129. package/src/components/numberbox/NumberBoxV1.vue +39 -39
  130. package/src/components/numberbox/append.js +11 -11
  131. package/src/components/numberbox/index.js +4 -4
  132. package/src/components/numberbox/numberbox.vue +302 -302
  133. package/src/components/numberbox/numberrangebox.vue +422 -422
  134. package/src/components/picturebox/filebox.vue +369 -369
  135. package/src/components/picturebox/index.js +2 -2
  136. package/src/components/picturebox/picturebox.vue +541 -541
  137. package/src/components/picturebox/uploadbox.vue +164 -164
  138. package/src/components/poptagbox/index.js +1 -1
  139. package/src/components/poptagbox/poptagbox.vue +388 -388
  140. package/src/components/poptextbox/index.js +1 -1
  141. package/src/components/poptextbox/poptextbox.vue +624 -624
  142. package/src/components/radiobox/index.js +1 -1
  143. package/src/components/radiobox/radiogroupbox.vue +75 -75
  144. package/src/components/richtextbox/editor.vue +150 -150
  145. package/src/components/richtextbox/index.js +1 -1
  146. package/src/components/richtextbox/richtextbox.vue +448 -448
  147. package/src/components/textbox/index.js +1 -1
  148. package/src/components/textbox/textbox.vue +97 -97
  149. package/src/components/timebox/index.js +1 -1
  150. package/src/components/timebox/timebox.vue +75 -75
  151. package/src/components/toolbar/ebutton.vue +169 -169
  152. package/src/components/toolbar/index.js +3 -3
  153. package/src/components/toolbar/toolbar.vue +445 -445
  154. package/src/components/tree/CompatTree.vue +297 -297
  155. package/src/components/tree/basetree.vue +1098 -1098
  156. package/src/components/tree/index.js +2 -2
  157. package/src/components/tree/treedata.vue +53 -53
  158. package/src/components/tree/treedatabase.vue +189 -189
  159. package/src/components/upload/billimport.vue +233 -233
  160. package/src/components/upload/index.js +1 -1
  161. package/src/components/videobox/index.js +1 -1
  162. package/src/components/videobox/uploadbox.vue +148 -148
  163. package/src/components/videobox/videobox.vue +503 -503
  164. package/src/components/wrichtextbox/editor.vue +219 -219
  165. package/src/components/wrichtextbox/index.js +1 -1
  166. package/src/components/wrichtextbox/wrichtextbox.vue +62 -62
  167. package/src/index.js +231 -231
  168. package/src/locale/format.js +51 -51
  169. package/src/locale/index.js +63 -63
  170. package/src/locale/lang/zh-CN.js +123 -123
  171. package/src/locale/lang/zh-TW.js +114 -114
  172. package/src/locale/lang/zh-UG.js +115 -115
  173. package/src/locale/lang.js +15 -15
  174. package/src/method/case/case.js +1274 -1274
  175. package/src/method/config/queryconfig.js +24 -24
  176. package/src/method/const/const.js +815 -815
  177. package/src/method/index.js +7 -7
  178. package/src/plugins/theme/theme-variable.css +114 -114
  179. package/src/plugins/vxeTable/index.js +241 -241
  180. package/src/plugins/vxeTable/renderer/components/TableFilterInput.vue +51 -51
  181. package/src/plugins/vxeTable/renderer/filter.js +32 -32
  182. package/src/static/excel/exportexcel.js +626 -626
  183. package/src/static/iview/coustom.js +462 -462
  184. package/src/store/index.js +18 -18
  185. package/src/store/modules/app.js +53 -53
  186. package/src/styles/README.md +3 -3
  187. package/src/styles/common.less +80 -80
  188. package/src/styles/components/anchor.less +74 -74
  189. package/src/styles/components/approval.less +135 -135
  190. package/src/styles/components/button.less +208 -208
  191. package/src/styles/components/card.less +51 -51
  192. package/src/styles/components/content.less +38 -38
  193. package/src/styles/components/font.less +313 -313
  194. package/src/styles/components/form.less +71 -71
  195. package/src/styles/components/iconfont/fonts/iconfont.less +1384 -1384
  196. package/src/styles/components/iconfont/fonts/iconfont.svg +703 -703
  197. package/src/styles/components/index.less +16 -16
  198. package/src/styles/components/input.less +290 -290
  199. package/src/styles/components/modal.less +203 -203
  200. package/src/styles/components/page.less +340 -340
  201. package/src/styles/components/select.less +361 -361
  202. package/src/styles/components/steps.less +367 -367
  203. package/src/styles/components/table.less +544 -544
  204. package/src/styles/components/tabs.less +249 -249
  205. package/src/styles/components/upload.less +82 -82
  206. package/src/styles/custom.less +67 -67
  207. package/src/styles/index.less +6 -6
  208. package/src/styles/pack.less +6 -6
  209. package/src/utils/EfuMessenger.js +155 -155
  210. package/src/utils/assist.js +353 -353
  211. package/src/utils/index.js +1 -1
  212. package/src/utils/random_str.js +10 -10
  213. package/src/components/masterplate/detailgridbox.vue +0 -386
@@ -1,369 +1,369 @@
1
- <template>
2
- <div class="efuture-filebox" v-show="myConfig.visible" :style="divStyle">
3
- <Input
4
- ref="myControl"
5
- v-model="filename"
6
- :size="myConfig.size"
7
- :placeholder="myConfig.placeholder"
8
- :disabled="myConfig.readOnly"
9
- :readonly="true"
10
- >
11
- <template #prepend>
12
- <p v-if="!filename" @click.stop="uploadClick" style="cursor:pointer;width:30px">
13
- <Icon custom="iconfont icon-custom-shangchuanlogo" :color="iconColor"/>
14
- </p>
15
- <p v-else @click.stop="uploadClick" style="cursor:pointer;width:30px">
16
- <Icon type="md-checkmark-circle" size="18" :color="iconColor2"/>
17
- </p>
18
- </template>
19
- </Input>
20
- <div v-if="!!filename" class="filebtn">
21
- <Row type="flex" justify="center" align="middle" :gutter="16">
22
- <Col v-if="showPreview" style="cursor:pointer">
23
- <p @click.stop="searchFile">
24
- 预览
25
- </p>
26
- </Col>
27
- <Col style="cursor:pointer" v-if="showDownBtn" >
28
- <p @click.stop="downFile">
29
- 下载
30
- </p>
31
- </Col>
32
- <Col style="cursor:pointer" v-if="!myConfig.readOnly && showDelBtn">
33
- <p @click.stop="delFile">
34
- 删除
35
- </p>
36
- </Col>
37
-
38
- </Row>
39
- </div>
40
- <div ref="photo" v-show="false">
41
- <li><img :src="imgUrl" :data-original="`${imgUrl}`" style="width: 100%; height: 100%;" /></li>
42
- </div>
43
- <Modal :styles="{top:'20px', width:'80%'}" title="文本" v-model="txtPanelFlag" :footer-hide="true">
44
- <div v-html="textStr"/>
45
- </Modal>
46
- <Modal :styles="{top:'20px', width:'80%'}" title="PDF" v-model="pdfFlag" :footer-hide="true">
47
- <div ref="pdf" style="height:630px"/>
48
- </Modal>
49
- <UploadBox ref="uploadbox" v-show="false" :config="myConfig" :readOnly="myConfig.readOnly" @success="handleSuccess" :headers="headers" :multiSelect="false">
50
- </UploadBox>
51
- </div>
52
- </template>
53
- <script>
54
- import Base from '@/components/base/controlbase.vue';
55
- import UploadBox from './uploadbox.vue';
56
- import Viewer from 'viewerjs';
57
- import {embed} from 'pdfobject';
58
- import $ from 'jquery';
59
- export default {
60
- name: 'picturebox',
61
- extends: Base,
62
- data () {
63
- return {
64
- myConfig:{
65
- fileNum: 1,
66
- fileSize: 2,
67
- placeholder:'请上传文件',
68
- notdelfile:'N',
69
- downfile:'',
70
- delfile:'',
71
- pdffile:'/mss-sysconf-boot/downloadPdf?filekey=',
72
- scenetype:'1',
73
- proName:{
74
- 'billmoduleid':'billmoduleid',
75
- 'billno':'billno'
76
- },
77
- },
78
- visible: false,
79
- headers:{
80
- 'billmoduleid':'',
81
- 'billno':''
82
- },
83
- filename:'',
84
- userInfo:'',
85
- value:'',
86
- fileSize:2048,
87
- showDelBtn:true,
88
- showDownBtn:true,
89
- showPreview:true,
90
- style: {},
91
- defaultvalue:'',
92
- divStyle:{},
93
- fileinfo:{},
94
- imgUrl:'',
95
- txtPanelFlag:false,
96
- pdfFlag:false
97
- };
98
- },
99
- components:{
100
- UploadBox
101
- },
102
- computed:{
103
- iconColor () {
104
- if (this.myConfig.readOnly) {
105
- return '#e3e5e8';
106
- } else {
107
- return '#f3b352'
108
- }
109
- },
110
- iconColor2 () {
111
- if (this.myConfig.readOnly) {
112
- return '#e3e5e8';
113
- } else {
114
- return '#739943'
115
- }
116
- }
117
- } ,
118
- props:{
119
- fileKey:{
120
- type:String,
121
- default:''
122
- }
123
- },
124
- methods: {
125
- customInit() {
126
- if (this.myConfig.fileSize) {
127
- this.fileSize = Number(this.myConfig.fileSize) * 1024;
128
- }
129
- if (this.myConfig.showDelBtn !== undefined) {
130
- this.showDelBtn = this.myConfig.showDelBtn;
131
- }
132
- if (this.myConfig.showDownBtn !== undefined) {
133
- this.showDownBtn = this.myConfig.showDownBtn;
134
- }
135
- if (this.myConfig.showPreview !== undefined) {
136
- this.showPreview = this.myConfig.showPreview;
137
- }
138
- if (this.myConfig.headers !== undefined) {
139
- this.headers = Object.assign({},this.headers,this.myConfig.headers);
140
- }
141
-
142
- if (!this.myConfig.downfile) {
143
- this.myConfig.downfile = this.OmdUrl.downfile;
144
- }
145
- if (!this.myConfig.delfile) {
146
- this.myConfig.delfile = this.OmdUrl.delfile;
147
- }
148
- if (!this.myConfig.uploadfile) {
149
- this.myConfig.uploadfile = this.OmdUrl.uploadfile;
150
- }
151
- if (!this.myConfig.pdffile) {
152
- this.myConfig.pdffile = this.OmdUrl.pdffile;
153
- }
154
- let usercode = this.getUserCode();
155
- let username = this.getUserName();
156
-
157
- let userInfo = '&usercode=' + usercode + '&username=' + username + '&ent_id=' + this.getEnt_id();
158
- let notdelfile = this.myConfig.notdelfile;
159
- if (this.myConfig.notdelfile !== undefined) {
160
- notdelfile = this.myConfig.notdelfile;
161
- }
162
- if (notdelfile !== 'Y') {
163
- userInfo = userInfo + '&notdelfile=N';
164
- } else {
165
- userInfo = userInfo + '&notdelfile=Y';
166
- }
167
- this.userInfo = encodeURI(userInfo);
168
- let url = 'ent_id=' + this.getEnt_id() +'&token=' + this.getToken();
169
- if (this.myConfig.uploadfile.indexOf('?') != -1) {
170
- this.myConfig.uploadfile = this.myConfig.uploadfile + '&' + encodeURI(url);
171
- } else {
172
- this.myConfig.uploadfile = this.myConfig.uploadfile + '?' + encodeURI(url);
173
- }
174
- this.headers = {};
175
- this.initFile();
176
- },
177
- initFile() {
178
- let value = this.fatherValue;
179
- if (this.fileKey) {
180
- value = this.fileKey;
181
- }
182
- this.refurbish(value);
183
- if (this.$refs.uploadbox) {
184
- this.$refs.uploadbox.clearData();
185
- }
186
- },
187
- handleSuccess (obj) {
188
- this.setFileData([obj.data]);
189
- this.setFatherValue();
190
- if (this.config.onOpenChange) {
191
- this.config.onOpenChange(false);
192
- }
193
- },
194
- refurbish(value) {
195
- if (value) {
196
- this.getFileInfo(value,this.setFileData);
197
- } else {
198
- this.fileinfo = {};
199
- this.filename = '';
200
- }
201
- },
202
- setFileData (data) {
203
- if (data && data.length > 0) {
204
- this.fileinfo = data[0];
205
- this.filename = this.fileinfo.filename;
206
- this.value = this.fileinfo.filekey;
207
- } else {
208
- this.fileinfo = {};
209
- this.filename = '';
210
- this.value = '';
211
- }
212
- },
213
- delFile() {
214
- if (this.fileinfo.delUrl) {
215
- this.asyncPost(encodeURI(this.fileinfo.delUrl),'',{},null,null,null,'get');
216
- this.value = '';
217
- this.filename = '';
218
- this.fileinfo = '';
219
- this.setFatherValue();
220
- }
221
- },
222
- downFile () {
223
- if (this.fileinfo.downUrl) {
224
- window.open(encodeURI(this.fileinfo.downUrl), '_self');
225
- }
226
- },
227
- searchFile() {
228
- if (this.isType(this.fileinfo.filetype) === '1') {
229
- this.showTxt();
230
- }
231
- if (this.isType(this.fileinfo.filetype) === '2') {
232
- this.showPhoto();
233
- }
234
- if (this.isType(this.fileinfo.filetype) === '3') {
235
- this.showPdf();
236
- }
237
- },
238
- showTxt() {
239
- let downUrl = this.myConfig.downfile + this.fileinfo.filekey + '&token=' + this.getToken() ;
240
- let htmlObj = $.ajax({
241
- url : encodeURI(downUrl),
242
- async : false
243
- });
244
- let str = htmlObj.responseText;
245
- str = str.replace(/\r\n/ig, '<br/>');
246
- this.textStr =str;
247
- this.txtPanelFlag = true;
248
- },
249
- showPhoto() {
250
- let downUrl = this.myConfig.downfile + this.fileinfo.filekey + '&token=' + this.getToken();
251
- this.imgUrl = downUrl;
252
- this.$nextTick(()=> {
253
- if (this.viewer == undefined) {
254
- this.viewer = new Viewer(this.$refs.photo, {
255
- url: "data-original",
256
- show: function () {
257
- this.viewer.update();
258
- },
259
- });
260
- }
261
- this.viewer.show();
262
- });
263
- },
264
- showPdf() {
265
- let pdfUrl = this.myConfig.pdffile + this.fileinfo.filekey + '&token=' + this.getToken();
266
- embed(encodeURI(pdfUrl), this.$refs.pdf);
267
- this.pdfFlag = true;
268
- },
269
- isType (filetype) {
270
- var type = '';
271
- if (!filetype) {
272
- filetype = '';
273
- }
274
- filetype = filetype.toLowerCase();
275
- if (filetype === 'log' || filetype === 'xml' || filetype === 'txt') {
276
- type = '1';
277
- } else if (filetype === 'bmp' || filetype === 'jpg' || filetype === 'png'
278
- || filetype === 'gif' || filetype === 'jpeg' || filetype === 'apng'
279
- || filetype === 'svg') {
280
- type = '2';
281
- } else if (filetype === 'pdf') {
282
- type = '3';
283
- } else {
284
- type = '0';
285
- }
286
- return type;
287
- },
288
- valueToFatherValue() {
289
- let para= {};
290
- if (!this.value) {
291
- para.value = '';
292
- } else {
293
- para.value = this.value;
294
- }
295
- return para;
296
- },
297
- setFatherValue() {
298
- let para = this.valueToFatherValue();
299
- para.name = this.myConfig.name;
300
- this.$emit('inputValue', para);
301
- },
302
- watchCustomFatherValue() {
303
- this.initFile();
304
- },
305
- setReadOnly(value) {
306
- let obj = {};
307
- obj.readOnly = value;
308
- if (obj.readOnly === false) {
309
- if (this.config.readOnly !== true) {
310
- this.setPro(obj);
311
- }
312
- } else {
313
- this.setPro(obj);
314
- }
315
- },
316
- checkPara () {
317
- if (this.$parent && this.$parent.valueData) {
318
- this.setHeaders(this.$parent.valueData);
319
- }
320
- if (!this.isHeadersOk()) {
321
- if (this.myConfig.paraErrorInfo) {
322
- this.alert(this.myConfig.paraErrorInfo);
323
- return false;
324
- }
325
- }
326
- return true;
327
- },
328
- setHeaders(data) {
329
- for (let temp in this.headers) {
330
- this.headers[temp] = '';
331
- }
332
- if (data) {
333
- for (let pro in this.myConfig.proName) {
334
- if (data[this.myConfig.proName[pro]]) {
335
- this.headers[pro] = data[this.myConfig.proName[pro]];
336
- } else {
337
- this.headers[pro] = '';
338
- }
339
- }
340
- }
341
- this.headers.scenetype = this.myConfig.scenetype;
342
- this.headers.usercode = this.getUserCode();
343
- this.headers.username = this.getUserName();
344
- },
345
- isHeadersOk() {
346
- let flag = true;
347
- for (let pro in this.headers) {
348
- if (!this.headers[pro]) {
349
- flag = false;
350
- break;
351
- }
352
- }
353
- return flag;
354
- },
355
- uploadClick () {
356
- if (this.checkPara()) {
357
- this.$refs.uploadbox.onClick();
358
- }
359
- },
360
- setFocus(value) {
361
- if (value) {
362
- this.$refs.myControl.focus();
363
- } else {
364
- this.$refs.myControl.blur();
365
- }
366
- }
367
- }
368
- };
369
- </script>
1
+ <template>
2
+ <div class="efuture-filebox" v-show="myConfig.visible" :style="divStyle">
3
+ <Input
4
+ ref="myControl"
5
+ v-model="filename"
6
+ :size="myConfig.size"
7
+ :placeholder="myConfig.placeholder"
8
+ :disabled="myConfig.readOnly"
9
+ :readonly="true"
10
+ >
11
+ <template #prepend>
12
+ <p v-if="!filename" @click.stop="uploadClick" style="cursor:pointer;width:30px">
13
+ <Icon custom="iconfont icon-custom-shangchuanlogo" :color="iconColor"/>
14
+ </p>
15
+ <p v-else @click.stop="uploadClick" style="cursor:pointer;width:30px">
16
+ <Icon type="md-checkmark-circle" size="18" :color="iconColor2"/>
17
+ </p>
18
+ </template>
19
+ </Input>
20
+ <div v-if="!!filename" class="filebtn">
21
+ <Row type="flex" justify="center" align="middle" :gutter="16">
22
+ <Col v-if="showPreview" style="cursor:pointer">
23
+ <p @click.stop="searchFile">
24
+ 预览
25
+ </p>
26
+ </Col>
27
+ <Col style="cursor:pointer" v-if="showDownBtn" >
28
+ <p @click.stop="downFile">
29
+ 下载
30
+ </p>
31
+ </Col>
32
+ <Col style="cursor:pointer" v-if="!myConfig.readOnly && showDelBtn">
33
+ <p @click.stop="delFile">
34
+ 删除
35
+ </p>
36
+ </Col>
37
+
38
+ </Row>
39
+ </div>
40
+ <div ref="photo" v-show="false">
41
+ <li><img :src="imgUrl" :data-original="`${imgUrl}`" style="width: 100%; height: 100%;" /></li>
42
+ </div>
43
+ <Modal :styles="{top:'20px', width:'80%'}" title="文本" v-model="txtPanelFlag" :footer-hide="true">
44
+ <div v-html="textStr"/>
45
+ </Modal>
46
+ <Modal :styles="{top:'20px', width:'80%'}" title="PDF" v-model="pdfFlag" :footer-hide="true">
47
+ <div ref="pdf" style="height:630px"/>
48
+ </Modal>
49
+ <UploadBox ref="uploadbox" v-show="false" :config="myConfig" :readOnly="myConfig.readOnly" @success="handleSuccess" :headers="headers" :multiSelect="false">
50
+ </UploadBox>
51
+ </div>
52
+ </template>
53
+ <script>
54
+ import Base from '@/components/base/controlbase.vue';
55
+ import UploadBox from './uploadbox.vue';
56
+ import Viewer from 'viewerjs';
57
+ import {embed} from 'pdfobject';
58
+ import $ from 'jquery';
59
+ export default {
60
+ name: 'picturebox',
61
+ extends: Base,
62
+ data () {
63
+ return {
64
+ myConfig:{
65
+ fileNum: 1,
66
+ fileSize: 2,
67
+ placeholder:'请上传文件',
68
+ notdelfile:'N',
69
+ downfile:'',
70
+ delfile:'',
71
+ pdffile:'/mss-sysconf-boot/downloadPdf?filekey=',
72
+ scenetype:'1',
73
+ proName:{
74
+ 'billmoduleid':'billmoduleid',
75
+ 'billno':'billno'
76
+ },
77
+ },
78
+ visible: false,
79
+ headers:{
80
+ 'billmoduleid':'',
81
+ 'billno':''
82
+ },
83
+ filename:'',
84
+ userInfo:'',
85
+ value:'',
86
+ fileSize:2048,
87
+ showDelBtn:true,
88
+ showDownBtn:true,
89
+ showPreview:true,
90
+ style: {},
91
+ defaultvalue:'',
92
+ divStyle:{},
93
+ fileinfo:{},
94
+ imgUrl:'',
95
+ txtPanelFlag:false,
96
+ pdfFlag:false
97
+ };
98
+ },
99
+ components:{
100
+ UploadBox
101
+ },
102
+ computed:{
103
+ iconColor () {
104
+ if (this.myConfig.readOnly) {
105
+ return '#e3e5e8';
106
+ } else {
107
+ return '#f3b352'
108
+ }
109
+ },
110
+ iconColor2 () {
111
+ if (this.myConfig.readOnly) {
112
+ return '#e3e5e8';
113
+ } else {
114
+ return '#739943'
115
+ }
116
+ }
117
+ } ,
118
+ props:{
119
+ fileKey:{
120
+ type:String,
121
+ default:''
122
+ }
123
+ },
124
+ methods: {
125
+ customInit() {
126
+ if (this.myConfig.fileSize) {
127
+ this.fileSize = Number(this.myConfig.fileSize) * 1024;
128
+ }
129
+ if (this.myConfig.showDelBtn !== undefined) {
130
+ this.showDelBtn = this.myConfig.showDelBtn;
131
+ }
132
+ if (this.myConfig.showDownBtn !== undefined) {
133
+ this.showDownBtn = this.myConfig.showDownBtn;
134
+ }
135
+ if (this.myConfig.showPreview !== undefined) {
136
+ this.showPreview = this.myConfig.showPreview;
137
+ }
138
+ if (this.myConfig.headers !== undefined) {
139
+ this.headers = Object.assign({},this.headers,this.myConfig.headers);
140
+ }
141
+
142
+ if (!this.myConfig.downfile) {
143
+ this.myConfig.downfile = this.OmdUrl.downfile;
144
+ }
145
+ if (!this.myConfig.delfile) {
146
+ this.myConfig.delfile = this.OmdUrl.delfile;
147
+ }
148
+ if (!this.myConfig.uploadfile) {
149
+ this.myConfig.uploadfile = this.OmdUrl.uploadfile;
150
+ }
151
+ if (!this.myConfig.pdffile) {
152
+ this.myConfig.pdffile = this.OmdUrl.pdffile;
153
+ }
154
+ let usercode = this.getUserCode();
155
+ let username = this.getUserName();
156
+
157
+ let userInfo = '&usercode=' + usercode + '&username=' + username + '&ent_id=' + this.getEnt_id();
158
+ let notdelfile = this.myConfig.notdelfile;
159
+ if (this.myConfig.notdelfile !== undefined) {
160
+ notdelfile = this.myConfig.notdelfile;
161
+ }
162
+ if (notdelfile !== 'Y') {
163
+ userInfo = userInfo + '&notdelfile=N';
164
+ } else {
165
+ userInfo = userInfo + '&notdelfile=Y';
166
+ }
167
+ this.userInfo = encodeURI(userInfo);
168
+ let url = 'ent_id=' + this.getEnt_id() +'&token=' + this.getToken();
169
+ if (this.myConfig.uploadfile.indexOf('?') != -1) {
170
+ this.myConfig.uploadfile = this.myConfig.uploadfile + '&' + encodeURI(url);
171
+ } else {
172
+ this.myConfig.uploadfile = this.myConfig.uploadfile + '?' + encodeURI(url);
173
+ }
174
+ this.headers = {};
175
+ this.initFile();
176
+ },
177
+ initFile() {
178
+ let value = this.fatherValue;
179
+ if (this.fileKey) {
180
+ value = this.fileKey;
181
+ }
182
+ this.refurbish(value);
183
+ if (this.$refs.uploadbox) {
184
+ this.$refs.uploadbox.clearData();
185
+ }
186
+ },
187
+ handleSuccess (obj) {
188
+ this.setFileData([obj.data]);
189
+ this.setFatherValue();
190
+ if (this.config.onOpenChange) {
191
+ this.config.onOpenChange(false);
192
+ }
193
+ },
194
+ refurbish(value) {
195
+ if (value) {
196
+ this.getFileInfo(value,this.setFileData);
197
+ } else {
198
+ this.fileinfo = {};
199
+ this.filename = '';
200
+ }
201
+ },
202
+ setFileData (data) {
203
+ if (data && data.length > 0) {
204
+ this.fileinfo = data[0];
205
+ this.filename = this.fileinfo.filename;
206
+ this.value = this.fileinfo.filekey;
207
+ } else {
208
+ this.fileinfo = {};
209
+ this.filename = '';
210
+ this.value = '';
211
+ }
212
+ },
213
+ delFile() {
214
+ if (this.fileinfo.delUrl) {
215
+ this.asyncPost(encodeURI(this.fileinfo.delUrl),'',{},null,null,null,'get');
216
+ this.value = '';
217
+ this.filename = '';
218
+ this.fileinfo = '';
219
+ this.setFatherValue();
220
+ }
221
+ },
222
+ downFile () {
223
+ if (this.fileinfo.downUrl) {
224
+ window.open(encodeURI(this.fileinfo.downUrl), '_self');
225
+ }
226
+ },
227
+ searchFile() {
228
+ if (this.isType(this.fileinfo.filetype) === '1') {
229
+ this.showTxt();
230
+ }
231
+ if (this.isType(this.fileinfo.filetype) === '2') {
232
+ this.showPhoto();
233
+ }
234
+ if (this.isType(this.fileinfo.filetype) === '3') {
235
+ this.showPdf();
236
+ }
237
+ },
238
+ showTxt() {
239
+ let downUrl = this.myConfig.downfile + this.fileinfo.filekey + '&token=' + this.getToken() ;
240
+ let htmlObj = $.ajax({
241
+ url : encodeURI(downUrl),
242
+ async : false
243
+ });
244
+ let str = htmlObj.responseText;
245
+ str = str.replace(/\r\n/ig, '<br/>');
246
+ this.textStr =str;
247
+ this.txtPanelFlag = true;
248
+ },
249
+ showPhoto() {
250
+ let downUrl = this.myConfig.downfile + this.fileinfo.filekey + '&token=' + this.getToken();
251
+ this.imgUrl = downUrl;
252
+ this.$nextTick(()=> {
253
+ if (this.viewer == undefined) {
254
+ this.viewer = new Viewer(this.$refs.photo, {
255
+ url: "data-original",
256
+ show: function () {
257
+ this.viewer.update();
258
+ },
259
+ });
260
+ }
261
+ this.viewer.show();
262
+ });
263
+ },
264
+ showPdf() {
265
+ let pdfUrl = this.myConfig.pdffile + this.fileinfo.filekey + '&token=' + this.getToken();
266
+ embed(encodeURI(pdfUrl), this.$refs.pdf);
267
+ this.pdfFlag = true;
268
+ },
269
+ isType (filetype) {
270
+ var type = '';
271
+ if (!filetype) {
272
+ filetype = '';
273
+ }
274
+ filetype = filetype.toLowerCase();
275
+ if (filetype === 'log' || filetype === 'xml' || filetype === 'txt') {
276
+ type = '1';
277
+ } else if (filetype === 'bmp' || filetype === 'jpg' || filetype === 'png'
278
+ || filetype === 'gif' || filetype === 'jpeg' || filetype === 'apng'
279
+ || filetype === 'svg') {
280
+ type = '2';
281
+ } else if (filetype === 'pdf') {
282
+ type = '3';
283
+ } else {
284
+ type = '0';
285
+ }
286
+ return type;
287
+ },
288
+ valueToFatherValue() {
289
+ let para= {};
290
+ if (!this.value) {
291
+ para.value = '';
292
+ } else {
293
+ para.value = this.value;
294
+ }
295
+ return para;
296
+ },
297
+ setFatherValue() {
298
+ let para = this.valueToFatherValue();
299
+ para.name = this.myConfig.name;
300
+ this.$emit('inputValue', para);
301
+ },
302
+ watchCustomFatherValue() {
303
+ this.initFile();
304
+ },
305
+ setReadOnly(value) {
306
+ let obj = {};
307
+ obj.readOnly = value;
308
+ if (obj.readOnly === false) {
309
+ if (this.config.readOnly !== true) {
310
+ this.setPro(obj);
311
+ }
312
+ } else {
313
+ this.setPro(obj);
314
+ }
315
+ },
316
+ checkPara () {
317
+ if (this.$parent && this.$parent.valueData) {
318
+ this.setHeaders(this.$parent.valueData);
319
+ }
320
+ if (!this.isHeadersOk()) {
321
+ if (this.myConfig.paraErrorInfo) {
322
+ this.alert(this.myConfig.paraErrorInfo);
323
+ return false;
324
+ }
325
+ }
326
+ return true;
327
+ },
328
+ setHeaders(data) {
329
+ for (let temp in this.headers) {
330
+ this.headers[temp] = '';
331
+ }
332
+ if (data) {
333
+ for (let pro in this.myConfig.proName) {
334
+ if (data[this.myConfig.proName[pro]]) {
335
+ this.headers[pro] = data[this.myConfig.proName[pro]];
336
+ } else {
337
+ this.headers[pro] = '';
338
+ }
339
+ }
340
+ }
341
+ this.headers.scenetype = this.myConfig.scenetype;
342
+ this.headers.usercode = this.getUserCode();
343
+ this.headers.username = this.getUserName();
344
+ },
345
+ isHeadersOk() {
346
+ let flag = true;
347
+ for (let pro in this.headers) {
348
+ if (!this.headers[pro]) {
349
+ flag = false;
350
+ break;
351
+ }
352
+ }
353
+ return flag;
354
+ },
355
+ uploadClick () {
356
+ if (this.checkPara()) {
357
+ this.$refs.uploadbox.onClick();
358
+ }
359
+ },
360
+ setFocus(value) {
361
+ if (value) {
362
+ this.$refs.myControl.focus();
363
+ } else {
364
+ this.$refs.myControl.blur();
365
+ }
366
+ }
367
+ }
368
+ };
369
+ </script>