ocpview-plus 1.3.14 → 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,586 +1,586 @@
1
- <template>
2
- <Card :bordered="false" :padding="0" dis-hover>
3
- <p v-if="showTitle" @click="toggle" style="cursor:pointer;" >
4
- <Row type="flex" justify="start" align="middle" style="margin-top:14px;margin-bottom:14px">
5
- <Icon custom='iconfont icon-custom-pack' color="#f3b352" v-show="showGrid" size="14" />
6
- <Icon v-show="!showGrid" color="#f3b352" custom='iconfont icon-custom-spread' size="14"/>
7
- <span style="margin-left:10px;font-size: 14px;font-weight:bold" v-text="myConfig.title" />
8
- </Row>
9
- </p>
10
- <div style="padding-left:24px">
11
- <Divider v-if="showTitle" style="margin-top:0px;margin-bottom:10px;"/>
12
- <Row v-show="showGrid" type="flex" justify="start" align="middle" :gutter="0" style="margin-bottom:10px;" >
13
- <Button v-if="loadFlag" customIcon="iconfont icon-custom-fileupload" :disabled="btnReadOnly" @click="editGrid" >上传</Button>
14
- <Button v-else :loading="true">{{loadingtext}}</Button>
15
- </Row>
16
- <Upload v-show="false" id="billiviewUp"
17
- multiple
18
- ref="billupload"
19
- :accept="FileAccept"
20
- :format="FileFormat"
21
- :data="headers"
22
- :show-upload-list="false"
23
- :on-success="handleSuccess"
24
- :on-exceeded-size="handleMaxSize"
25
- :before-upload="handleBeforeUpload"
26
- :on-format-error="handleFormatError"
27
- :max-size="fileSize"
28
- :action="uploadfile">
29
- <a>上传</a>
30
- </Upload>
31
- <div v-show="showGrid">
32
- <EditGridCardS ref="grid" :config="myConfig"></EditGridCardS>
33
- </div>
34
- </div>
35
- <div ref="photo" v-show="false">
36
- <li><img :src="imgUrl" :data-original="`${imgUrl}`" style="width: 100%; height: 100%;" /></li>
37
- </div>
38
- <Modal :styles="{top:'20px', width:'80%'}" title="文本" v-model="txtPanelFlag" :footer-hide="true">
39
- <div v-html="textStr"/>
40
- </Modal>
41
- <Modal :styles="{top:'20px', width:'80%'}" title="PDF" v-model="pdfFlag" :footer-hide="true">
42
- <div ref="pdf" style="height:630px"/>
43
- </Modal>
44
- </Card>
45
- </template>
46
- <script>
47
- import load from '@/components/base/load';
48
- import EditGridCardS from './editgridcard2.vue';
49
- import {embed} from 'pdfobject';
50
- import $ from 'jquery';
51
- import Viewer from 'viewerjs';
52
- import Cookies from 'js-cookie';
53
- import { resolveComponent } from 'vue';
54
-
55
- export default {
56
- name: 'mappendix',
57
- components:{EditGridCardS},
58
- mixins: [load],
59
- data () {
60
- return {
61
- myConfig:{
62
- headStyle:'',
63
- readOnly: false,
64
- downfile:'',
65
- delfile:'',
66
- pdffile:'/mss-sysconf-boot/downloadPdf?filekey=',
67
- notdelfile:false,
68
- showPage:false,
69
- fileSize:20,
70
- fileNum:10,
71
- title:'附件',
72
- dynamicHeight:true,
73
- showTitle:true,
74
- scenetype:'3',
75
- height:840,
76
- items:[{
77
- label:'操作状态',
78
- name:'modflag',
79
- type:'ComboBox',
80
- data:[{ code : 'N', name : '初始'}, { code : 'M', name : '待删除'},
81
- { code : 'I', name : '新增'}, { code : 'D', name : '删除'}],
82
- visible:false,
83
- width:100,
84
- },{
85
- label:'文件名称',
86
- name:'filename',
87
- type:'TextBox'
88
- },{
89
- label:'文件大小',
90
- name:'filesize',
91
- render: this.sizeActionRender,
92
- width:120
93
- },{
94
- label:'上传日期',
95
- name:'ph_timestamp',
96
- type:'DateBox',
97
- vtype:'datetime',
98
- width:200
99
- },{
100
- label:'操作',
101
- key:'action',
102
- align: 'center',
103
- render: this.actionRender,
104
- minWidth:100
105
- }]
106
- },
107
- loadFlag:true,
108
- billno:'',
109
- modulecode:'',
110
- idkey:'',
111
- showGrid:true,
112
- uploadfile:'',
113
- textStr:'',
114
- imgUrl:'',
115
- txtPanelFlag:false,
116
- pdfFlag:false,
117
- btnReadOnly:false,
118
- loading:true,
119
- fileSize:0,
120
- initData:[],
121
- rowBtnData:[
122
- {
123
- icon:'custom-filedel',
124
- name:'delFile',
125
- text:'删除'
126
- },
127
- {
128
- icon:'custom-filedown',
129
- name:'downFile',
130
- text:'下载'
131
- },
132
- {
133
- icon:'custom-filesearch',
134
- name:'searchFile',
135
- text:'查看'
136
- },
137
- {
138
- icon:'custom-filerecall',
139
- name:'recall',
140
- text:'撤回'
141
- }
142
- ]
143
- };
144
- },
145
- created() {
146
- this.myConfig = Object.assign({},this.myConfig, this.config);
147
-
148
- if (this.myConfig.showTitle !== undefined) {
149
- this.showTitle = this.myConfig.showTitle;
150
- }
151
-
152
- if (!this.myConfig.downfile) {
153
- this.myConfig.downfile = this.OmdUrl.downfile;
154
- }
155
- if (!this.myConfig.delfile) {
156
- this.myConfig.delfile = this.OmdUrl.delfile;
157
- }
158
- if (!this.myConfig.uploadfile) {
159
- this.myConfig.uploadfile = this.OmdUrl.uploadfile;
160
- }
161
- if (!this.myConfig.pdffile) {
162
- this.myConfig.pdffile = this.OmdUrl.pdffile;
163
- }
164
- this.myConfig.showAddBtn = false;
165
- this.myConfig.showDelBatchBtn = false;
166
- this.myConfig.generalOrientation = true;
167
- if (this.myConfig.fileSize !== undefined) {
168
- this.fileSize = Number(this.myConfig.fileSize) * 1024;
169
- }
170
- if (this.myConfig.notdelfile) {
171
- this.myConfig.items[0].visible = true;
172
- } else {
173
- this.myConfig.items[0].visible = false;
174
- }
175
-
176
- if (this.myConfig.uploadfile.indexOf('?') != -1) {
177
- this.uploadfile = this.myConfig.uploadfile + '&token=' + this.getToken();
178
- } else {
179
- this.uploadfile = this.myConfig.uploadfile + '?token='+ this.getToken();
180
- }
181
- },
182
- computed:{
183
- headers () {
184
- let obj = {};
185
- if (this.modulecode) {
186
- obj.billmoduleid = this.modulecode;
187
- }
188
- obj.billno = this.billno;
189
- obj.scenetype = this.myConfig.scenetype;
190
- obj.usercode = this.getUserCode()
191
- obj.username = this.getUserName();
192
- if (this.myConfig.notdelfile) {
193
- obj.modflag = 'I';
194
- }
195
- if (obj.scenetype === '4') {
196
- obj.idkey = this.idkey;
197
- }
198
- return obj;
199
- },
200
- FileFormat () {
201
- if (this.myConfig.fileType) {
202
- return this.myConfig.fileType;
203
- } else {
204
- return [];
205
- }
206
- },
207
- FileAccept () {
208
- if (this.myConfig.fileType) {
209
- let str = '';
210
- this.myConfig.fileType.forEach(e =>{
211
- str = str + '.' + e + ',';
212
- });
213
- return str;
214
- } else {
215
- return '';
216
- }
217
- }
218
- },
219
- props:{
220
- config: {
221
- type:Object,
222
- default:null
223
- }
224
- },
225
- methods: {
226
- handleFormatError (file) {
227
- let type = this.myConfig.fileType.join(',');
228
- this.alert('文件[' + file.name + ']的格式不正确,请上传格式为(' + type + ')的文件');
229
- this.loadFlag = true;
230
- },
231
- toggle () {
232
- this.showGrid = !this.showGrid;
233
- },
234
- setShowGrid(value) {
235
- this.showGrid = value;
236
- },
237
- actionRender (h, params) {
238
- let btnConfig = {};
239
- btnConfig.showNum = 4;
240
- btnConfig.fontStyle = '';
241
- btnConfig.items = [];
242
- if (params.row.filekey) {
243
- let del = this.$Method.copy(this.rowBtnData[0]);
244
- if (this.myConfig.readOnly) {
245
- del.readOnly = true;
246
- }
247
- btnConfig.items.push(del);
248
- }
249
- btnConfig.items.push(this.$Method.copy(this.rowBtnData[1]));
250
- if (this.isType(params.row.filetype) !== '0') {
251
- btnConfig.items.push(this.$Method.copy(this.rowBtnData[2]));
252
- }
253
- let recall = this.$Method.copy(this.rowBtnData[3]);
254
- if (this.myConfig.readOnly) {
255
- recall.readOnly = true;
256
- }
257
- if (this.myConfig.notdelfile) {
258
- if (params.row.modflag === 'N') {
259
- btnConfig.items.push(recall);
260
- }
261
- }
262
- return h('div', [
263
- h(resolveComponent('RowBtnToolbar'), {
264
- config:btnConfig,
265
- onDoAction:(val) => {
266
- if (val.name === 'delFile') {
267
- this.delFile(params);
268
- }
269
- if (val.name === 'downFile') {
270
- this.downFile(params);
271
- }
272
- if (val.name === 'searchFile') {
273
- this.searchFile(params);
274
- }
275
- if (val.name === 'recall') {
276
- this.recall(params);
277
- }
278
- }
279
- })
280
- ]);
281
- },
282
- sizeActionRender(h, params) {
283
- let fize = Number(params.row.filesize);
284
- let str = '';
285
- if (fize<1024 ){
286
- str = fize +'B';
287
- }
288
- if (fize > 1024 && fize < 1048576){
289
- str =parseFloat(fize/1024).toFixed(2) +'K';
290
- }
291
- if (fize > 1048576 && fize < 1073741824){
292
- str =parseFloat(fize/1048576).toFixed(2) +'M';
293
- }
294
- if (fize > 1073741824 ){
295
- str =parseFloat(fize/1073741824).toFixed(2) +'G';
296
- }
297
- return h('span',str);
298
- },
299
- downFile(params) {
300
- let downUrl = this.myConfig.downfile + params.row.filekey + "&ent_id=" + this.getEnt_id() + "&token=" + this.getToken();
301
- window.open(downUrl);
302
- },
303
- delCommon(filekey,notdelfile) {
304
- let delUrl = this.myConfig.delfile + filekey + "&ent_id=" + this.getEnt_id()+"&notdelfile=" + notdelfile + "&token=" + this.getToken();
305
- $.ajax({
306
- type : 'GET',
307
- url : encodeURI(delUrl),
308
- async : true,
309
- dataType : 'json'
310
- });
311
- },
312
- delFile(params) {
313
- if (!this.checkIsEdit()) {
314
- return;
315
- }
316
- if (!this.myConfig.notdelfile) {
317
- this.$refs.grid.delRow(params.index);
318
- this.delCommon(params.row.filekey, 'N');
319
- } else {
320
- if (params.row.modflag === 'M') {
321
- this.alert('当前状态不允许删除');
322
- return;
323
- }
324
- if (params.row.modflag === 'I') {
325
- this.delCommon(params.row.filekey, 'Y');
326
- this.$refs.grid.delRow(params.index);
327
- }
328
- if (params.row.modflag === 'N') {
329
- let row = this.$Method.copy(params.row);
330
- row.modflag = 'M';
331
- this.$refs.grid.updateRow(params.index, row);
332
- }
333
- }
334
- if (this.myConfig.readOnly) {
335
- this.setReadOnly(false);
336
- }
337
- },
338
- recall(params) {
339
- if (params.row.modflag !== 'M') {
340
- this.alert('当前状态不用撤回');
341
- return;
342
- }
343
- let row = this.$Method.copy(params.row);
344
- row.modflag = 'N';
345
- this.$refs.grid.updateRow(params.index, row);
346
- },
347
- searchFile(params) {
348
- if (this.isType(params.row.filetype) === '1') {
349
- this.showTxt(params);
350
- }
351
- if (this.isType(params.row.filetype) === '2') {
352
- this.showPhoto(params);
353
- }
354
- if (this.isType(params.row.filetype) === '3') {
355
- this.showPdf(params);
356
- }
357
- },
358
- handleSuccess (res) {
359
- this.getFilesInfo(this.billno,this.modulecode,this.myConfig.notdelfile, this.myConfig.scenetype, this.doInitData);
360
- this.flag = false;
361
- if (this.myConfig.scenetype === '4') {
362
- this.loadFlag = true;
363
- } else {
364
- this.hideLoading();
365
- }
366
- },
367
- handleMaxSize (file) {
368
- this.alert('文件[' + file.name + ']的文件大小不允许超过' + this.myConfig.fileSize + 'M');
369
- if (this.myConfig.scenetype === '4') {
370
- this.loadFlag = true;
371
- } else {
372
- this.hideLoading();
373
- }
374
- },
375
- isType (filetype) {
376
- var type = '';
377
- if (!filetype) {
378
- filetype = '';
379
- }
380
- filetype = filetype.toLowerCase();
381
- if (filetype === 'log' || filetype === 'xml' || filetype === 'txt') {
382
- type = '1';
383
- } else if (filetype === 'bmp' || filetype === 'jpg' || filetype === 'png'
384
- || filetype === 'gif' || filetype === 'jpeg' || filetype === 'apng'
385
- || filetype === 'svg') {
386
- type = '2';
387
- } else if (filetype === 'pdf') {
388
- type = '3';
389
- } else {
390
- type = '0';
391
- }
392
- return type;
393
- },
394
- setPro (obj) {
395
- if (obj) {
396
- this.myConfig = Object.assign({}, this.myConfig, obj);
397
- }
398
- },
399
- setReadOnly(value) {
400
- let obj = {};
401
- obj.readOnly = value;
402
- this.setPro(obj);
403
- this.$refs.grid.setReadOnly(true);
404
- this.setBtnReadOnly(value);
405
- },
406
- showTxt(params) {
407
- let downUrl = this.myConfig.downfile + params.row.filekey + '&token=' + this.getToken() ;
408
- let htmlObj = $.ajax({
409
- url : encodeURI(downUrl),
410
- async : false
411
- });
412
- let str = htmlObj.responseText;
413
- str = str.replace(/\r\n/ig, '<br/>');
414
- this.textStr =str;
415
- this.txtPanelFlag = true;
416
- },
417
- showPhoto(params) {
418
- let downUrl = this.myConfig.downfile + params.row.filekey + '&token=' + this.getToken() ;
419
- this.imgUrl = downUrl;
420
- this.$nextTick(() => {
421
- if (this.viewer == undefined) {
422
- this.viewer = new Viewer(this.$refs.photo, {
423
- url: "data-original",
424
- show: function () {
425
- this.viewer.update();
426
- },
427
- });
428
- }
429
- this.viewer.show();
430
- })
431
-
432
- },
433
- showPdf(params) {
434
- let pdfUrl = this.myConfig.pdffile + params.row.filekey + '&token=' + this.getToken();
435
- //this.pdfSrc = pdfUrl;
436
- embed(encodeURI(pdfUrl), this.$refs.pdf);
437
- //pdfObject.embed(encodeURI(pdfUrl), this.$refs.pdf);
438
- this.pdfFlag = true;
439
- },
440
- getChangeData() {
441
- return this.$refs.grid.getChangeData();
442
- },
443
- setData(key,billmoduleid,idkey) {
444
- if (key) {
445
- this.billno = key;
446
- this.modulecode = billmoduleid;
447
- this.idkey = idkey;
448
- if(this.myConfig.scenetype === '4') {
449
- this.getFilesInfoByIdkey(this.idkey,this.doInitData);
450
- } else {
451
- this.getFilesInfo(key,this.modulecode,this.myConfig.notdelfile,'3',this.doInitData);
452
- }
453
- this.btnReadOnly = false;
454
- } else {
455
- this.btnReadOnly = true;
456
- this.billno = '';
457
- this.modulecode = '';
458
- this.idkey = '';
459
- this.$refs.grid.setData([]);
460
- }
461
- },
462
- setBillno(value) {
463
- this.billno = value;
464
- if (this.billno) {
465
- this.btnReadOnly = true;
466
- }
467
- },
468
- doInitData(data) {
469
- this.$refs.grid.setData(data);
470
- },
471
- clearData() {
472
- this.billno = '';
473
- this.$refs.grid.clearData();
474
- },
475
- getData() {
476
- return this.$refs.grid.getData();
477
- },
478
- doCommonAllfile (flag) {
479
- let data = this.$refs.grid.getData();
480
- if (data.length === 0) {
481
- return;
482
- }
483
- let usercode = Cookies.get('user_code')?Cookies.get('user_code'):0;
484
- let username = Cookies.get('user_name')?Cookies.get('user_name'):0;
485
- let filekey = '';
486
- data.forEach(el => {
487
- if (flag) {
488
- filekey = filekey + el.filekey + ",";
489
- } else {
490
- if (el.modflag === 'M') {
491
- filekey = filekey + el.filekey + ",";
492
- }
493
- }
494
-
495
- });
496
- if (filekey) {
497
- filekey = filekey.substring(0, filekey.length - 1);
498
- } else {
499
- return;
500
- }
501
- let delUrl = this.myConfig.delfile + filekey + "&ent_id=" + this.getEnt_id() ;
502
- let token = this.getToken();
503
- if (token) {
504
- delUrl = delUrl + '&token=' + token;
505
- }
506
- delUrl = delUrl + '&billno=' + this.billno;
507
- delUrl = delUrl + '&billmoduleid=' + this.modulecode;
508
- let notdelfile = 'N';
509
- if (this.myConfig.notdelfile) {
510
- notdelfile = 'Y';
511
- }
512
- delUrl = delUrl + '&usercode=' + usercode + '&username=' + username + '&notdelfile=' + notdelfile;
513
- $.ajax({
514
- type : 'GET',
515
- url : encodeURI(delUrl),
516
- async : true,
517
- dataType : 'json'
518
- });
519
- },
520
- dellAllfile () {
521
- this.doCommonAllfile(true);
522
- },
523
- updateAllfile () {
524
- this.doCommonAllfile(false);
525
- },
526
- handleBeforeUpload () {
527
- let check = true;
528
- if (this.$refs.billupload && this.$refs.billupload.fileList) {
529
- check = this.$refs.billupload.fileList.length < this.myConfig.fileNum;
530
- if (!check) {
531
- this.alert('上传的文件数量过多(一次最多允许上传'+this.myConfig.fileNum+'个文件)');
532
- }
533
- }
534
- if (!this.flag) {
535
- this.flag = true;
536
- this.loadingtext = '上传中';
537
- if (this.myConfig.scenetype === '4') {
538
- this.loadFlag = false;
539
- } else {
540
- this.showLoading();
541
- }
542
-
543
- }
544
- return check;
545
- },
546
- editGrid () {
547
- if (this.myConfig.beforeUpload) {
548
- this.myConfig.beforeUpload();
549
- }
550
- if (!this.billno) {
551
- this.alert('单据主健信息为空,不允许上传');
552
- return;
553
- }
554
- if (this.checkIsEdit()) {
555
- this.$nextTick(() => {
556
- this.$refs.billupload.clearFiles();
557
- });
558
- if (this.myConfig.readOnly) {
559
- this.setReadOnly(false);
560
- }
561
- document.querySelector('#billiviewUp input').click();
562
- }
563
- },
564
- isChange() {
565
- return this.$refs.grid.isChange();
566
- },
567
- checkIsEdit() {
568
- let flag = true;
569
- if (this.myConfig.editObjectBefore) {
570
- flag = this.myConfig.editObjectBefore(this.myConfig.name);
571
- }
572
- return flag;
573
- },
574
- setBtnReadOnly(value) {
575
- if (!value) {
576
- if (this.billno) {
577
- this.btnReadOnly = value;
578
- }
579
- } else {
580
- this.btnReadOnly = value;
581
- }
582
- }
583
-
584
- }
585
- };
586
- </script>
1
+ <template>
2
+ <Card :bordered="false" :padding="0" dis-hover>
3
+ <p v-if="showTitle" @click="toggle" style="cursor:pointer;" >
4
+ <Row type="flex" justify="start" align="middle" style="margin-top:14px;margin-bottom:14px">
5
+ <Icon custom='iconfont icon-custom-pack' color="#f3b352" v-show="showGrid" size="14" />
6
+ <Icon v-show="!showGrid" color="#f3b352" custom='iconfont icon-custom-spread' size="14"/>
7
+ <span style="margin-left:10px;font-size: 14px;font-weight:bold" v-text="myConfig.title" />
8
+ </Row>
9
+ </p>
10
+ <div style="padding-left:24px">
11
+ <Divider v-if="showTitle" style="margin-top:0px;margin-bottom:10px;"/>
12
+ <Row v-show="showGrid" type="flex" justify="start" align="middle" :gutter="0" style="margin-bottom:10px;" >
13
+ <Button v-if="loadFlag" customIcon="iconfont icon-custom-fileupload" :disabled="btnReadOnly" @click="editGrid" >上传</Button>
14
+ <Button v-else :loading="true">{{loadingtext}}</Button>
15
+ </Row>
16
+ <Upload v-show="false" id="billiviewUp"
17
+ multiple
18
+ ref="billupload"
19
+ :accept="FileAccept"
20
+ :format="FileFormat"
21
+ :data="headers"
22
+ :show-upload-list="false"
23
+ :on-success="handleSuccess"
24
+ :on-exceeded-size="handleMaxSize"
25
+ :before-upload="handleBeforeUpload"
26
+ :on-format-error="handleFormatError"
27
+ :max-size="fileSize"
28
+ :action="uploadfile">
29
+ <a>上传</a>
30
+ </Upload>
31
+ <div v-show="showGrid">
32
+ <EditGridCardS ref="grid" :config="myConfig"></EditGridCardS>
33
+ </div>
34
+ </div>
35
+ <div ref="photo" v-show="false">
36
+ <li><img :src="imgUrl" :data-original="`${imgUrl}`" style="width: 100%; height: 100%;" /></li>
37
+ </div>
38
+ <Modal :styles="{top:'20px', width:'80%'}" title="文本" v-model="txtPanelFlag" :footer-hide="true">
39
+ <div v-html="textStr"/>
40
+ </Modal>
41
+ <Modal :styles="{top:'20px', width:'80%'}" title="PDF" v-model="pdfFlag" :footer-hide="true">
42
+ <div ref="pdf" style="height:630px"/>
43
+ </Modal>
44
+ </Card>
45
+ </template>
46
+ <script>
47
+ import load from '@/components/base/load';
48
+ import EditGridCardS from './editgridcard2.vue';
49
+ import {embed} from 'pdfobject';
50
+ import $ from 'jquery';
51
+ import Viewer from 'viewerjs';
52
+ import Cookies from 'js-cookie';
53
+ import { resolveComponent } from 'vue';
54
+
55
+ export default {
56
+ name: 'mappendix',
57
+ components:{EditGridCardS},
58
+ mixins: [load],
59
+ data () {
60
+ return {
61
+ myConfig:{
62
+ headStyle:'',
63
+ readOnly: false,
64
+ downfile:'',
65
+ delfile:'',
66
+ pdffile:'/mss-sysconf-boot/downloadPdf?filekey=',
67
+ notdelfile:false,
68
+ showPage:false,
69
+ fileSize:20,
70
+ fileNum:10,
71
+ title:'附件',
72
+ dynamicHeight:true,
73
+ showTitle:true,
74
+ scenetype:'3',
75
+ height:840,
76
+ items:[{
77
+ label:'操作状态',
78
+ name:'modflag',
79
+ type:'ComboBox',
80
+ data:[{ code : 'N', name : '初始'}, { code : 'M', name : '待删除'},
81
+ { code : 'I', name : '新增'}, { code : 'D', name : '删除'}],
82
+ visible:false,
83
+ width:100,
84
+ },{
85
+ label:'文件名称',
86
+ name:'filename',
87
+ type:'TextBox'
88
+ },{
89
+ label:'文件大小',
90
+ name:'filesize',
91
+ render: this.sizeActionRender,
92
+ width:120
93
+ },{
94
+ label:'上传日期',
95
+ name:'ph_timestamp',
96
+ type:'DateBox',
97
+ vtype:'datetime',
98
+ width:200
99
+ },{
100
+ label:'操作',
101
+ key:'action',
102
+ align: 'center',
103
+ render: this.actionRender,
104
+ minWidth:100
105
+ }]
106
+ },
107
+ loadFlag:true,
108
+ billno:'',
109
+ modulecode:'',
110
+ idkey:'',
111
+ showGrid:true,
112
+ uploadfile:'',
113
+ textStr:'',
114
+ imgUrl:'',
115
+ txtPanelFlag:false,
116
+ pdfFlag:false,
117
+ btnReadOnly:false,
118
+ loading:true,
119
+ fileSize:0,
120
+ initData:[],
121
+ rowBtnData:[
122
+ {
123
+ icon:'custom-filedel',
124
+ name:'delFile',
125
+ text:'删除'
126
+ },
127
+ {
128
+ icon:'custom-filedown',
129
+ name:'downFile',
130
+ text:'下载'
131
+ },
132
+ {
133
+ icon:'custom-filesearch',
134
+ name:'searchFile',
135
+ text:'查看'
136
+ },
137
+ {
138
+ icon:'custom-filerecall',
139
+ name:'recall',
140
+ text:'撤回'
141
+ }
142
+ ]
143
+ };
144
+ },
145
+ created() {
146
+ this.myConfig = Object.assign({},this.myConfig, this.config);
147
+
148
+ if (this.myConfig.showTitle !== undefined) {
149
+ this.showTitle = this.myConfig.showTitle;
150
+ }
151
+
152
+ if (!this.myConfig.downfile) {
153
+ this.myConfig.downfile = this.OmdUrl.downfile;
154
+ }
155
+ if (!this.myConfig.delfile) {
156
+ this.myConfig.delfile = this.OmdUrl.delfile;
157
+ }
158
+ if (!this.myConfig.uploadfile) {
159
+ this.myConfig.uploadfile = this.OmdUrl.uploadfile;
160
+ }
161
+ if (!this.myConfig.pdffile) {
162
+ this.myConfig.pdffile = this.OmdUrl.pdffile;
163
+ }
164
+ this.myConfig.showAddBtn = false;
165
+ this.myConfig.showDelBatchBtn = false;
166
+ this.myConfig.generalOrientation = true;
167
+ if (this.myConfig.fileSize !== undefined) {
168
+ this.fileSize = Number(this.myConfig.fileSize) * 1024;
169
+ }
170
+ if (this.myConfig.notdelfile) {
171
+ this.myConfig.items[0].visible = true;
172
+ } else {
173
+ this.myConfig.items[0].visible = false;
174
+ }
175
+
176
+ if (this.myConfig.uploadfile.indexOf('?') != -1) {
177
+ this.uploadfile = this.myConfig.uploadfile + '&token=' + this.getToken();
178
+ } else {
179
+ this.uploadfile = this.myConfig.uploadfile + '?token='+ this.getToken();
180
+ }
181
+ },
182
+ computed:{
183
+ headers () {
184
+ let obj = {};
185
+ if (this.modulecode) {
186
+ obj.billmoduleid = this.modulecode;
187
+ }
188
+ obj.billno = this.billno;
189
+ obj.scenetype = this.myConfig.scenetype;
190
+ obj.usercode = this.getUserCode()
191
+ obj.username = this.getUserName();
192
+ if (this.myConfig.notdelfile) {
193
+ obj.modflag = 'I';
194
+ }
195
+ if (obj.scenetype === '4') {
196
+ obj.idkey = this.idkey;
197
+ }
198
+ return obj;
199
+ },
200
+ FileFormat () {
201
+ if (this.myConfig.fileType) {
202
+ return this.myConfig.fileType;
203
+ } else {
204
+ return [];
205
+ }
206
+ },
207
+ FileAccept () {
208
+ if (this.myConfig.fileType) {
209
+ let str = '';
210
+ this.myConfig.fileType.forEach(e =>{
211
+ str = str + '.' + e + ',';
212
+ });
213
+ return str;
214
+ } else {
215
+ return '';
216
+ }
217
+ }
218
+ },
219
+ props:{
220
+ config: {
221
+ type:Object,
222
+ default:null
223
+ }
224
+ },
225
+ methods: {
226
+ handleFormatError (file) {
227
+ let type = this.myConfig.fileType.join(',');
228
+ this.alert('文件[' + file.name + ']的格式不正确,请上传格式为(' + type + ')的文件');
229
+ this.loadFlag = true;
230
+ },
231
+ toggle () {
232
+ this.showGrid = !this.showGrid;
233
+ },
234
+ setShowGrid(value) {
235
+ this.showGrid = value;
236
+ },
237
+ actionRender (h, params) {
238
+ let btnConfig = {};
239
+ btnConfig.showNum = 4;
240
+ btnConfig.fontStyle = '';
241
+ btnConfig.items = [];
242
+ if (params.row.filekey) {
243
+ let del = this.$Method.copy(this.rowBtnData[0]);
244
+ if (this.myConfig.readOnly) {
245
+ del.readOnly = true;
246
+ }
247
+ btnConfig.items.push(del);
248
+ }
249
+ btnConfig.items.push(this.$Method.copy(this.rowBtnData[1]));
250
+ if (this.isType(params.row.filetype) !== '0') {
251
+ btnConfig.items.push(this.$Method.copy(this.rowBtnData[2]));
252
+ }
253
+ let recall = this.$Method.copy(this.rowBtnData[3]);
254
+ if (this.myConfig.readOnly) {
255
+ recall.readOnly = true;
256
+ }
257
+ if (this.myConfig.notdelfile) {
258
+ if (params.row.modflag === 'N') {
259
+ btnConfig.items.push(recall);
260
+ }
261
+ }
262
+ return h('div', [
263
+ h(resolveComponent('RowBtnToolbar'), {
264
+ config:btnConfig,
265
+ onDoAction:(val) => {
266
+ if (val.name === 'delFile') {
267
+ this.delFile(params);
268
+ }
269
+ if (val.name === 'downFile') {
270
+ this.downFile(params);
271
+ }
272
+ if (val.name === 'searchFile') {
273
+ this.searchFile(params);
274
+ }
275
+ if (val.name === 'recall') {
276
+ this.recall(params);
277
+ }
278
+ }
279
+ })
280
+ ]);
281
+ },
282
+ sizeActionRender(h, params) {
283
+ let fize = Number(params.row.filesize);
284
+ let str = '';
285
+ if (fize<1024 ){
286
+ str = fize +'B';
287
+ }
288
+ if (fize > 1024 && fize < 1048576){
289
+ str =parseFloat(fize/1024).toFixed(2) +'K';
290
+ }
291
+ if (fize > 1048576 && fize < 1073741824){
292
+ str =parseFloat(fize/1048576).toFixed(2) +'M';
293
+ }
294
+ if (fize > 1073741824 ){
295
+ str =parseFloat(fize/1073741824).toFixed(2) +'G';
296
+ }
297
+ return h('span',str);
298
+ },
299
+ downFile(params) {
300
+ let downUrl = this.myConfig.downfile + params.row.filekey + "&ent_id=" + this.getEnt_id() + "&token=" + this.getToken();
301
+ window.open(downUrl);
302
+ },
303
+ delCommon(filekey,notdelfile) {
304
+ let delUrl = this.myConfig.delfile + filekey + "&ent_id=" + this.getEnt_id()+"&notdelfile=" + notdelfile + "&token=" + this.getToken();
305
+ $.ajax({
306
+ type : 'GET',
307
+ url : encodeURI(delUrl),
308
+ async : true,
309
+ dataType : 'json'
310
+ });
311
+ },
312
+ delFile(params) {
313
+ if (!this.checkIsEdit()) {
314
+ return;
315
+ }
316
+ if (!this.myConfig.notdelfile) {
317
+ this.$refs.grid.delRow(params.index);
318
+ this.delCommon(params.row.filekey, 'N');
319
+ } else {
320
+ if (params.row.modflag === 'M') {
321
+ this.alert('当前状态不允许删除');
322
+ return;
323
+ }
324
+ if (params.row.modflag === 'I') {
325
+ this.delCommon(params.row.filekey, 'Y');
326
+ this.$refs.grid.delRow(params.index);
327
+ }
328
+ if (params.row.modflag === 'N') {
329
+ let row = this.$Method.copy(params.row);
330
+ row.modflag = 'M';
331
+ this.$refs.grid.updateRow(params.index, row);
332
+ }
333
+ }
334
+ if (this.myConfig.readOnly) {
335
+ this.setReadOnly(false);
336
+ }
337
+ },
338
+ recall(params) {
339
+ if (params.row.modflag !== 'M') {
340
+ this.alert('当前状态不用撤回');
341
+ return;
342
+ }
343
+ let row = this.$Method.copy(params.row);
344
+ row.modflag = 'N';
345
+ this.$refs.grid.updateRow(params.index, row);
346
+ },
347
+ searchFile(params) {
348
+ if (this.isType(params.row.filetype) === '1') {
349
+ this.showTxt(params);
350
+ }
351
+ if (this.isType(params.row.filetype) === '2') {
352
+ this.showPhoto(params);
353
+ }
354
+ if (this.isType(params.row.filetype) === '3') {
355
+ this.showPdf(params);
356
+ }
357
+ },
358
+ handleSuccess (res) {
359
+ this.getFilesInfo(this.billno,this.modulecode,this.myConfig.notdelfile, this.myConfig.scenetype, this.doInitData);
360
+ this.flag = false;
361
+ if (this.myConfig.scenetype === '4') {
362
+ this.loadFlag = true;
363
+ } else {
364
+ this.hideLoading();
365
+ }
366
+ },
367
+ handleMaxSize (file) {
368
+ this.alert('文件[' + file.name + ']的文件大小不允许超过' + this.myConfig.fileSize + 'M');
369
+ if (this.myConfig.scenetype === '4') {
370
+ this.loadFlag = true;
371
+ } else {
372
+ this.hideLoading();
373
+ }
374
+ },
375
+ isType (filetype) {
376
+ var type = '';
377
+ if (!filetype) {
378
+ filetype = '';
379
+ }
380
+ filetype = filetype.toLowerCase();
381
+ if (filetype === 'log' || filetype === 'xml' || filetype === 'txt') {
382
+ type = '1';
383
+ } else if (filetype === 'bmp' || filetype === 'jpg' || filetype === 'png'
384
+ || filetype === 'gif' || filetype === 'jpeg' || filetype === 'apng'
385
+ || filetype === 'svg') {
386
+ type = '2';
387
+ } else if (filetype === 'pdf') {
388
+ type = '3';
389
+ } else {
390
+ type = '0';
391
+ }
392
+ return type;
393
+ },
394
+ setPro (obj) {
395
+ if (obj) {
396
+ this.myConfig = Object.assign({}, this.myConfig, obj);
397
+ }
398
+ },
399
+ setReadOnly(value) {
400
+ let obj = {};
401
+ obj.readOnly = value;
402
+ this.setPro(obj);
403
+ this.$refs.grid.setReadOnly(true);
404
+ this.setBtnReadOnly(value);
405
+ },
406
+ showTxt(params) {
407
+ let downUrl = this.myConfig.downfile + params.row.filekey + '&token=' + this.getToken() ;
408
+ let htmlObj = $.ajax({
409
+ url : encodeURI(downUrl),
410
+ async : false
411
+ });
412
+ let str = htmlObj.responseText;
413
+ str = str.replace(/\r\n/ig, '<br/>');
414
+ this.textStr =str;
415
+ this.txtPanelFlag = true;
416
+ },
417
+ showPhoto(params) {
418
+ let downUrl = this.myConfig.downfile + params.row.filekey + '&token=' + this.getToken() ;
419
+ this.imgUrl = downUrl;
420
+ this.$nextTick(() => {
421
+ if (this.viewer == undefined) {
422
+ this.viewer = new Viewer(this.$refs.photo, {
423
+ url: "data-original",
424
+ show: function () {
425
+ this.viewer.update();
426
+ },
427
+ });
428
+ }
429
+ this.viewer.show();
430
+ })
431
+
432
+ },
433
+ showPdf(params) {
434
+ let pdfUrl = this.myConfig.pdffile + params.row.filekey + '&token=' + this.getToken();
435
+ //this.pdfSrc = pdfUrl;
436
+ embed(encodeURI(pdfUrl), this.$refs.pdf);
437
+ //pdfObject.embed(encodeURI(pdfUrl), this.$refs.pdf);
438
+ this.pdfFlag = true;
439
+ },
440
+ getChangeData() {
441
+ return this.$refs.grid.getChangeData();
442
+ },
443
+ setData(key,billmoduleid,idkey) {
444
+ if (key) {
445
+ this.billno = key;
446
+ this.modulecode = billmoduleid;
447
+ this.idkey = idkey;
448
+ if(this.myConfig.scenetype === '4') {
449
+ this.getFilesInfoByIdkey(this.idkey,this.doInitData);
450
+ } else {
451
+ this.getFilesInfo(key,this.modulecode,this.myConfig.notdelfile,'3',this.doInitData);
452
+ }
453
+ this.btnReadOnly = false;
454
+ } else {
455
+ this.btnReadOnly = true;
456
+ this.billno = '';
457
+ this.modulecode = '';
458
+ this.idkey = '';
459
+ this.$refs.grid.setData([]);
460
+ }
461
+ },
462
+ setBillno(value) {
463
+ this.billno = value;
464
+ if (this.billno) {
465
+ this.btnReadOnly = true;
466
+ }
467
+ },
468
+ doInitData(data) {
469
+ this.$refs.grid.setData(data);
470
+ },
471
+ clearData() {
472
+ this.billno = '';
473
+ this.$refs.grid.clearData();
474
+ },
475
+ getData() {
476
+ return this.$refs.grid.getData();
477
+ },
478
+ doCommonAllfile (flag) {
479
+ let data = this.$refs.grid.getData();
480
+ if (data.length === 0) {
481
+ return;
482
+ }
483
+ let usercode = Cookies.get('user_code')?Cookies.get('user_code'):0;
484
+ let username = Cookies.get('user_name')?Cookies.get('user_name'):0;
485
+ let filekey = '';
486
+ data.forEach(el => {
487
+ if (flag) {
488
+ filekey = filekey + el.filekey + ",";
489
+ } else {
490
+ if (el.modflag === 'M') {
491
+ filekey = filekey + el.filekey + ",";
492
+ }
493
+ }
494
+
495
+ });
496
+ if (filekey) {
497
+ filekey = filekey.substring(0, filekey.length - 1);
498
+ } else {
499
+ return;
500
+ }
501
+ let delUrl = this.myConfig.delfile + filekey + "&ent_id=" + this.getEnt_id() ;
502
+ let token = this.getToken();
503
+ if (token) {
504
+ delUrl = delUrl + '&token=' + token;
505
+ }
506
+ delUrl = delUrl + '&billno=' + this.billno;
507
+ delUrl = delUrl + '&billmoduleid=' + this.modulecode;
508
+ let notdelfile = 'N';
509
+ if (this.myConfig.notdelfile) {
510
+ notdelfile = 'Y';
511
+ }
512
+ delUrl = delUrl + '&usercode=' + usercode + '&username=' + username + '&notdelfile=' + notdelfile;
513
+ $.ajax({
514
+ type : 'GET',
515
+ url : encodeURI(delUrl),
516
+ async : true,
517
+ dataType : 'json'
518
+ });
519
+ },
520
+ dellAllfile () {
521
+ this.doCommonAllfile(true);
522
+ },
523
+ updateAllfile () {
524
+ this.doCommonAllfile(false);
525
+ },
526
+ handleBeforeUpload () {
527
+ let check = true;
528
+ if (this.$refs.billupload && this.$refs.billupload.fileList) {
529
+ check = this.$refs.billupload.fileList.length < this.myConfig.fileNum;
530
+ if (!check) {
531
+ this.alert('上传的文件数量过多(一次最多允许上传'+this.myConfig.fileNum+'个文件)');
532
+ }
533
+ }
534
+ if (!this.flag) {
535
+ this.flag = true;
536
+ this.loadingtext = '上传中';
537
+ if (this.myConfig.scenetype === '4') {
538
+ this.loadFlag = false;
539
+ } else {
540
+ this.showLoading();
541
+ }
542
+
543
+ }
544
+ return check;
545
+ },
546
+ editGrid () {
547
+ if (this.myConfig.beforeUpload) {
548
+ this.myConfig.beforeUpload();
549
+ }
550
+ if (!this.billno) {
551
+ this.alert('单据主健信息为空,不允许上传');
552
+ return;
553
+ }
554
+ if (this.checkIsEdit()) {
555
+ this.$nextTick(() => {
556
+ this.$refs.billupload.clearFiles();
557
+ });
558
+ if (this.myConfig.readOnly) {
559
+ this.setReadOnly(false);
560
+ }
561
+ document.querySelector('#billiviewUp input').click();
562
+ }
563
+ },
564
+ isChange() {
565
+ return this.$refs.grid.isChange();
566
+ },
567
+ checkIsEdit() {
568
+ let flag = true;
569
+ if (this.myConfig.editObjectBefore) {
570
+ flag = this.myConfig.editObjectBefore(this.myConfig.name);
571
+ }
572
+ return flag;
573
+ },
574
+ setBtnReadOnly(value) {
575
+ if (!value) {
576
+ if (this.billno) {
577
+ this.btnReadOnly = value;
578
+ }
579
+ } else {
580
+ this.btnReadOnly = value;
581
+ }
582
+ }
583
+
584
+ }
585
+ };
586
+ </script>