ocpview-plus 0.0.1

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 (195) hide show
  1. package/LICENSE +0 -0
  2. package/README.md +0 -0
  3. package/dist/efviewplus.min.esm.js +99954 -0
  4. package/dist/efviewplus.min.js +142 -0
  5. package/dist/locale/lang.js +1 -0
  6. package/dist/locale/zh-CN.js +1 -0
  7. package/dist/locale/zh-TW.js +1 -0
  8. package/dist/locale/zh-UG.js +1 -0
  9. package/dist/style.css +9 -0
  10. package/dist/styles/efviewplus.css +1 -0
  11. package/package.json +144 -0
  12. package/src/components/base/controlbase.vue +191 -0
  13. package/src/components/base/controlbox.vue +102 -0
  14. package/src/components/base/index.js +3 -0
  15. package/src/components/base/load.js +20 -0
  16. package/src/components/base/probase.js +220 -0
  17. package/src/components/base/size.js +78 -0
  18. package/src/components/billbox/billbox.vue +68 -0
  19. package/src/components/billbox/index.js +2 -0
  20. package/src/components/cascaderbox/cascaderbox.vue +184 -0
  21. package/src/components/cascaderbox/index.js +2 -0
  22. package/src/components/checkbox/checkbox.vue +76 -0
  23. package/src/components/checkbox/checkgroupbox.vue +104 -0
  24. package/src/components/checkbox/index.js +3 -0
  25. package/src/components/colorbox/colorbox.vue +44 -0
  26. package/src/components/colorbox/index.js +2 -0
  27. package/src/components/combobox/combobox.vue +220 -0
  28. package/src/components/combobox/index.js +2 -0
  29. package/src/components/conditionbox/conditionbase.vue +195 -0
  30. package/src/components/conditionbox/conditionbox.vue +63 -0
  31. package/src/components/conditionbox/conditionfilterbox.vue +477 -0
  32. package/src/components/conditionbox/conditionselectorbox.vue +237 -0
  33. package/src/components/conditionbox/index.js +5 -0
  34. package/src/components/conditionbox/queryconditionbox.vue +26 -0
  35. package/src/components/conditionbox/queryconditionboxbase.vue +124 -0
  36. package/src/components/conditionbox/searchconditionbox.vue +114 -0
  37. package/src/components/conditionbox/searchgrid.vue +391 -0
  38. package/src/components/datebox/datebox.vue +129 -0
  39. package/src/components/datebox/daterangebox.vue +155 -0
  40. package/src/components/datebox/index.js +3 -0
  41. package/src/components/form/baseform.vue +677 -0
  42. package/src/components/form/detailsbox.vue +487 -0
  43. package/src/components/form/formbox.vue +29 -0
  44. package/src/components/form/formcardbox.vue +268 -0
  45. package/src/components/form/formcardgroupbox.vue +252 -0
  46. package/src/components/form/formcompro.js +19 -0
  47. package/src/components/form/formdetail.vue +129 -0
  48. package/src/components/form/formdetailtwo.vue +302 -0
  49. package/src/components/form/index.js +8 -0
  50. package/src/components/form/toolanchor.js +46 -0
  51. package/src/components/form/workform.vue +168 -0
  52. package/src/components/grid/basegrid.vue +1061 -0
  53. package/src/components/grid/editgrid.vue +51 -0
  54. package/src/components/grid/editgridbase.vue +947 -0
  55. package/src/components/grid/editgridcard.vue +193 -0
  56. package/src/components/grid/expandrow.vue +137 -0
  57. package/src/components/grid/index.js +6 -0
  58. package/src/components/grid/viewgrid.vue +122 -0
  59. package/src/components/grid/viewgridbase.vue +1284 -0
  60. package/src/components/icon/common-icon.vue +53 -0
  61. package/src/components/icon/eicon.vue +29 -0
  62. package/src/components/icon/icons.vue +42 -0
  63. package/src/components/icon/index.js +2 -0
  64. package/src/components/label/index.js +3 -0
  65. package/src/components/label/showtext.vue +95 -0
  66. package/src/components/load/loadcartoon.vue +228 -0
  67. package/src/components/map/index.js +2 -0
  68. package/src/components/map/mapbox.vue +348 -0
  69. package/src/components/masterplate/appendix.vue +586 -0
  70. package/src/components/masterplate/approval.vue +803 -0
  71. package/src/components/masterplate/base.vue +985 -0
  72. package/src/components/masterplate/billasyncimport.vue +614 -0
  73. package/src/components/masterplate/billconditionbox.vue +224 -0
  74. package/src/components/masterplate/billconditionsbox.vue +427 -0
  75. package/src/components/masterplate/billdetailform.vue +990 -0
  76. package/src/components/masterplate/billimport.vue +263 -0
  77. package/src/components/masterplate/billquerygrid.vue +316 -0
  78. package/src/components/masterplate/billsinglegrid.vue +234 -0
  79. package/src/components/masterplate/birtreport.vue +185 -0
  80. package/src/components/masterplate/detailbtntoolbar.vue +311 -0
  81. package/src/components/masterplate/detailsbox.vue +386 -0
  82. package/src/components/masterplate/editgridcard.vue +222 -0
  83. package/src/components/masterplate/editgridcard2.vue +109 -0
  84. package/src/components/masterplate/formcard.vue +106 -0
  85. package/src/components/masterplate/formcardgroupbox.vue +168 -0
  86. package/src/components/masterplate/formdetailtwo.vue +356 -0
  87. package/src/components/masterplate/gridcolset.vue +227 -0
  88. package/src/components/masterplate/index.js +23 -0
  89. package/src/components/masterplate/layouttemplate.vue +33 -0
  90. package/src/components/masterplate/leftlistrightdetails.vue +474 -0
  91. package/src/components/masterplate/leftlistrightlist.vue +465 -0
  92. package/src/components/masterplate/lefttreerightdetails.vue +619 -0
  93. package/src/components/masterplate/levelreport.vue +510 -0
  94. package/src/components/masterplate/listbtntoolbar.vue +257 -0
  95. package/src/components/masterplate/listdetails.vue +769 -0
  96. package/src/components/masterplate/operlog.vue +272 -0
  97. package/src/components/masterplate/options.vue +110 -0
  98. package/src/components/masterplate/page.vue +102 -0
  99. package/src/components/masterplate/promptmessage.vue +74 -0
  100. package/src/components/masterplate/querybar.vue +490 -0
  101. package/src/components/masterplate/report.vue +357 -0
  102. package/src/components/masterplate/rowbtntoolbar.vue +126 -0
  103. package/src/components/masterplate/simpletree.vue +129 -0
  104. package/src/components/masterplate/simpleviewgrid.vue +144 -0
  105. package/src/components/mychart/bar/bar.vue +202 -0
  106. package/src/components/mychart/basechart.vue +190 -0
  107. package/src/components/mychart/complexmychart/barline.vue +154 -0
  108. package/src/components/mychart/gauge/gauge.vue +83 -0
  109. package/src/components/mychart/index.js +9 -0
  110. package/src/components/mychart/line/line.vue +202 -0
  111. package/src/components/mychart/liquidfill/liquidfill.vue +109 -0
  112. package/src/components/mychart/pie/pie.vue +96 -0
  113. package/src/components/mychart/radar/radar.vue +122 -0
  114. package/src/components/mychart/scatter/scatter.vue +76 -0
  115. package/src/components/numberbox/append.js +11 -0
  116. package/src/components/numberbox/index.js +3 -0
  117. package/src/components/numberbox/numberbox.vue +303 -0
  118. package/src/components/numberbox/numberrangebox.vue +423 -0
  119. package/src/components/picturebox/filebox.vue +365 -0
  120. package/src/components/picturebox/index.js +3 -0
  121. package/src/components/picturebox/picturebox.vue +541 -0
  122. package/src/components/picturebox/uploadbox.vue +164 -0
  123. package/src/components/poptagbox/index.js +2 -0
  124. package/src/components/poptagbox/poptagbox.vue +389 -0
  125. package/src/components/poptextbox/index.js +2 -0
  126. package/src/components/poptextbox/poptextbox.vue +601 -0
  127. package/src/components/radiobox/index.js +2 -0
  128. package/src/components/radiobox/radiogroupbox.vue +76 -0
  129. package/src/components/richtextbox/editor.vue +150 -0
  130. package/src/components/richtextbox/index.js +2 -0
  131. package/src/components/richtextbox/richtextbox.vue +448 -0
  132. package/src/components/textbox/index.js +2 -0
  133. package/src/components/textbox/textbox.vue +98 -0
  134. package/src/components/timebox/index.js +2 -0
  135. package/src/components/timebox/timebox.vue +76 -0
  136. package/src/components/toolbar/ebutton.vue +169 -0
  137. package/src/components/toolbar/index.js +3 -0
  138. package/src/components/toolbar/toolbar.vue +446 -0
  139. package/src/components/tree/basetree.vue +725 -0
  140. package/src/components/tree/index.js +3 -0
  141. package/src/components/tree/treedata.vue +51 -0
  142. package/src/components/tree/treedatabase.vue +189 -0
  143. package/src/components/upload/billimport.vue +233 -0
  144. package/src/components/upload/index.js +2 -0
  145. package/src/components/videobox/index.js +2 -0
  146. package/src/components/videobox/uploadbox.vue +148 -0
  147. package/src/components/videobox/videobox.vue +503 -0
  148. package/src/components/wrichtextbox/editor.vue +219 -0
  149. package/src/components/wrichtextbox/index.js +2 -0
  150. package/src/components/wrichtextbox/wrichtextbox.vue +63 -0
  151. package/src/index.js +215 -0
  152. package/src/locale/format.js +51 -0
  153. package/src/locale/index.js +63 -0
  154. package/src/locale/lang/zh-CN.js +123 -0
  155. package/src/locale/lang/zh-TW.js +114 -0
  156. package/src/locale/lang/zh-UG.js +115 -0
  157. package/src/locale/lang.js +15 -0
  158. package/src/method/case/case.js +1180 -0
  159. package/src/method/config/queryconfig.js +24 -0
  160. package/src/method/const/const.js +815 -0
  161. package/src/method/index.js +8 -0
  162. package/src/static/excel/exportexcel.js +627 -0
  163. package/src/static/iview/coustom.js +463 -0
  164. package/src/store/index.js +19 -0
  165. package/src/store/modules/app.js +53 -0
  166. package/src/styles/README.md +3 -0
  167. package/src/styles/common.less +75 -0
  168. package/src/styles/components/anchor.less +74 -0
  169. package/src/styles/components/approval.less +136 -0
  170. package/src/styles/components/button.less +208 -0
  171. package/src/styles/components/card.less +51 -0
  172. package/src/styles/components/content.less +38 -0
  173. package/src/styles/components/font.less +314 -0
  174. package/src/styles/components/form.less +72 -0
  175. package/src/styles/components/iconfont/fonts/iconfont.less +1376 -0
  176. package/src/styles/components/iconfont/fonts/iconfont.svg +699 -0
  177. package/src/styles/components/iconfont/fonts/iconfont.ttf +0 -0
  178. package/src/styles/components/iconfont/fonts/iconfont.woff +0 -0
  179. package/src/styles/components/iconfont/fonts/iconfont.woff2 +0 -0
  180. package/src/styles/components/index.less +16 -0
  181. package/src/styles/components/input.less +290 -0
  182. package/src/styles/components/modal.less +203 -0
  183. package/src/styles/components/page.less +340 -0
  184. package/src/styles/components/select.less +361 -0
  185. package/src/styles/components/steps.less +367 -0
  186. package/src/styles/components/table.less +544 -0
  187. package/src/styles/components/tabs.less +249 -0
  188. package/src/styles/components/upload.less +83 -0
  189. package/src/styles/custom.less +67 -0
  190. package/src/styles/index.less +6 -0
  191. package/src/styles/pack.less +6 -0
  192. package/src/utils/EfuMessenger.js +155 -0
  193. package/src/utils/assist.js +353 -0
  194. package/src/utils/index.js +1 -0
  195. package/src/utils/random_str.js +10 -0
@@ -0,0 +1,348 @@
1
+ <template>
2
+ <div style="height:100%;overflow: auto;">
3
+ <Row type="flex" justify="end" align="middle">
4
+ <Button size="small" @click="exportMap">打印</Button>
5
+ </Row>
6
+ <div v-if="reset" ref="divMap" id="map" class="efuture-map" :style="divStyle"></div>
7
+ </div>
8
+ </template>
9
+
10
+ <script>
11
+ import 'ol/ol.css';
12
+ import { Map, View, Feature } from 'ol';
13
+ import { Style, Fill, Stroke, Text } from 'ol/style';
14
+ import LayerVector from 'ol/layer/Vector';
15
+ import SourceVector from 'ol/source/Vector';
16
+ import Polygon from 'ol/geom/Polygon';
17
+ import load from '@/components/base/load.js';
18
+ import ImageLayer from 'ol/layer/Image';
19
+ import ImageStatic from 'ol/source/ImageStatic';
20
+ import { Projection } from 'ol/proj';
21
+ import { getCenter } from 'ol/extent';
22
+ import html2Canvas from 'html2canvas';
23
+ import {defaults as defaultControls} from 'ol/control';
24
+ import pako from 'pako';
25
+ export default {
26
+ mixins:[load],
27
+ data () {
28
+ return {
29
+ map:null,
30
+ initStyle:new Style({
31
+ stroke:new Stroke({
32
+ color:'#17233d',
33
+ width:1
34
+ }),
35
+ fill:new Fill({
36
+ color:'rgba(255,255,255,0)'
37
+ }),
38
+ text:new Text({
39
+ font:'12px Calibri, sans-serif',
40
+ fill:new Fill({
41
+ color:'#000'
42
+ })
43
+ })
44
+ }),
45
+ reset:true,
46
+ lands:null,
47
+ culMapInfo:null,
48
+ mmfcode:'',
49
+ data:[],
50
+ adjustHeight:80,
51
+ isImg:false,
52
+ imgx:0,
53
+ imgy:0
54
+ };
55
+ },
56
+ computed:{
57
+ divStyle () {
58
+ let height = this.$Store.state.app.clientHeight - this.adjustHeight - 24;
59
+ return 'height:' + height + 'px';
60
+ }
61
+ },
62
+ props:{
63
+ config:{
64
+ type:Object,
65
+ default:() => {}
66
+ }
67
+ },
68
+ methods:{
69
+ init () {
70
+ if (!this.mmfcode) {
71
+ return false;
72
+ }
73
+ let map = this.getMapInfo(this.mmfcode);
74
+ if (map) {
75
+ if (map.mapinfo) {
76
+ this.culMapInfo = JSON.parse(map.mapinfo);
77
+ }
78
+ if (map.shopinfo) {
79
+ this.shopinfo = map.shopinfo;
80
+ this.initShop(map.shopinfo);
81
+ }
82
+ this.getMapGeojson(map);
83
+ } else {
84
+ this.alert('楼层未导入平面图,请重新选择');
85
+ return false;
86
+ }
87
+ return true;
88
+ },
89
+ setAdjustHeight (value) {
90
+ this.adjustHeight = value;
91
+ },
92
+ initShop (shopinfo) {
93
+ if (shopinfo && shopinfo.length > 0) {
94
+ this.mapData = [];
95
+ shopinfo.forEach(e => {
96
+ let tmp = {};
97
+ let pro = JSON.parse(e.pro);
98
+ tmp.code = pro.id;
99
+ tmp.name = pro.text;
100
+ if (pro.spcode) {
101
+ tmp.spcode = pro.spcode;
102
+ }
103
+ if (pro.spcname) {
104
+ tmp.spcname = pro.spcname;
105
+ }
106
+ tmp.geometrytype = e.geometrytype;
107
+ tmp.coordinates = e.coordinates;
108
+ this.mapData.push(tmp);
109
+ });
110
+ }
111
+ },
112
+ initMap () {
113
+ let vectorLayer = '';
114
+ let viewObj = {};
115
+ vectorLayer = new ImageLayer({
116
+ source:new ImageStatic({
117
+ url:this.mapBg, // 加载静态地图
118
+ imageExtent:this.extent // 地图的位置
119
+ })
120
+ });
121
+ viewObj = {
122
+ center:getCenter(this.extent),
123
+ zoom:2
124
+ };
125
+ if (this.culMapInfo !== null) {
126
+ viewObj = Object.assign({}, viewObj, this.culMapInfo);
127
+ if (this.culMapInfo.projection) {
128
+ viewObj.projection = new Projection({ // 投影
129
+ extent:this.culMapInfo.projection.extent_
130
+ });
131
+ }
132
+ }
133
+ let obj = {
134
+ target:'map',
135
+ layers:[vectorLayer],
136
+ view:new View(viewObj),
137
+ controls:defaultControls({
138
+ zoom:false
139
+ })
140
+ };
141
+
142
+ this.map = new Map(obj);
143
+
144
+ if (this.mapData && this.mapData.length > 0) {
145
+ let shopVector = this.getShopSourceVector(this.mapData);
146
+ let vector = new LayerVector({
147
+ source:shopVector,
148
+ style:feature => {
149
+ return this.getInitColor(feature);
150
+ }
151
+ });
152
+ this.map.addLayer(vector);
153
+ }
154
+ this.map.on('click', evt => {
155
+ this.getShopFeatureInfo(evt.pixel);
156
+ });
157
+ },
158
+ getInitColor (feature) {
159
+ let pro = feature.getProperties();
160
+ let id = pro.id;
161
+ let index = this.mapData.findIndex(el => el.code === id);
162
+ if (index !== -1) {
163
+ if (this.mapData[index].spcode) {
164
+ let tmp = this.data.find(el => el.spcode === this.mapData[index].spcode);
165
+ if (tmp) {
166
+ return this.getSpidStyle(tmp.color, tmp.text);
167
+ } else {
168
+ return this.getHighlightStyle(id);
169
+ }
170
+ } else {
171
+ return this.getHighlightStyle(id);
172
+ }
173
+ } else {
174
+ return this.initStyle;
175
+ }
176
+ },
177
+ hexToRgba (hex, opacity) {
178
+ return (
179
+ 'rgba(' +
180
+ parseInt('0x' + hex.slice(1, 3)) +
181
+ ',' +
182
+ parseInt('0x' + hex.slice(3, 5)) +
183
+ ',' +
184
+ parseInt('0x' + hex.slice(5, 7)) +
185
+ ',' +
186
+ opacity +
187
+ ')'
188
+ );
189
+ },
190
+ getSpidStyle (color, text) {
191
+ let style = new Style({
192
+ stroke:new Stroke({
193
+ color:'#2b85e4',
194
+ width:1
195
+ }),
196
+ fill:new Fill({
197
+ color:this.hexToRgba(color, 1)
198
+ }),
199
+ text:new Text({
200
+ font:'12px Calibri, sans-serif',
201
+ fill:new Fill({
202
+ color:'#000'
203
+ })
204
+ })
205
+ });
206
+ if (text) {
207
+ style.getText().setText(text);
208
+ }
209
+ return style;
210
+ },
211
+ getShopSourceVector (temp) {
212
+ let sourceFeatures = [];
213
+ temp.forEach(e => {
214
+ let type = e.geometrytype;
215
+ if (type === 'Polygon') {
216
+ let id = e.code;
217
+ let spcode = e.spcode;
218
+ let text = e.name;
219
+ let coordinates = JSON.parse(e.coordinates);
220
+ let feature = new Feature({
221
+ geometry:new Polygon(coordinates),
222
+ id:id,
223
+ text:text,
224
+ spcode:spcode
225
+ });
226
+ sourceFeatures.push(feature);
227
+ }
228
+ });
229
+ let sourcepoly = new SourceVector({
230
+ features:sourceFeatures,
231
+ wrapX:false
232
+ });
233
+ return sourcepoly;
234
+ },
235
+ getShopFeatureInfo (pixel) {
236
+ let feature = this.map.forEachFeatureAtPixel(pixel, feature => feature);
237
+ if (feature) {
238
+ let pro = feature.getProperties();
239
+ let index = this.mapData.findIndex(el => el.code === pro.id);
240
+ if (index !== -1) {
241
+ let shop = {};
242
+ shop.id = pro.id;
243
+ if (this.mapData[index].spcode) {
244
+ shop.spcode = this.mapData[index].spcode;
245
+ shop.spcname = this.mapData[index].spcname;
246
+ shop.spid_name = '[' + shop.spcode + ']' + shop.spcname;
247
+ } else {
248
+ shop.spcode = '';
249
+ shop.spcname = '';
250
+ shop.spid_name = '';
251
+ }
252
+ this.$emit('mapClick', shop);
253
+ }
254
+ }
255
+ },
256
+ ReInitMap () {
257
+ this.reset = false;
258
+ this.$nextTick(() => {
259
+ this.reset = true;
260
+ this.$nextTick(() => {
261
+ this.initMap();
262
+ });
263
+ });
264
+ },
265
+ clearData () {
266
+ this.culMapInfo = null;
267
+ this.lands = null;
268
+ this.reset = false;
269
+ this.data = [];
270
+ this.$nextTick(() => {
271
+ this.reset = true;
272
+ });
273
+ },
274
+ getMapInfo (mmfcode) {
275
+ let para = {};
276
+ para.mmfcode = mmfcode;
277
+ let self = this;
278
+ let mapinfo = null;
279
+ self.synchroPost(this.OmdUrl.sysconfboot, 'mss.sysconf.floor.getMap', para, function (data) {
280
+ if (data && data.floor) {
281
+ mapinfo = data.floor;
282
+ }
283
+ });
284
+ return mapinfo;
285
+ },
286
+ getMapGeojson (obj) {
287
+ this.mapBg = this.OmdUrl.downfile + obj.imgkey + '&token=' + this.getToken();
288
+ this.extent = this.culMapInfo.projection.extent_;
289
+ this.ReInitMap();
290
+ },
291
+ setData (obj) {
292
+ this.data = obj;
293
+ this.ReInitMap();
294
+ },
295
+ setMmfcode (value) {
296
+ this.mmfcode = value;
297
+ return this.init();
298
+ },
299
+ getHighlightStyle (text) {
300
+ let style = new Style({
301
+ stroke:new Stroke({
302
+ color:'#f00',
303
+ width:1
304
+ }),
305
+ fill:new Fill({
306
+ color:'rgba(255, 0, 0, 0.1)'
307
+ }),
308
+ text:new Text({
309
+ font:'12px Calibri, sans-serif',
310
+ fill:new Fill({
311
+ color:'#000'
312
+ })
313
+ })
314
+ });
315
+ if (text) {
316
+ style.getText().setText(text);
317
+ }
318
+ return style;
319
+ },
320
+ unzip (str) {
321
+ let charData = atob(str).split('').map(function (x) { return x.charCodeAt(0); });
322
+ let binData = new Uint8Array(charData);
323
+ return pako.inflate(binData, {to:'string'});
324
+ },
325
+ exportMap () {
326
+ // 使用html2canvas或其他库来导出图像
327
+ html2Canvas(this.$refs.divMap).then(canvas => {
328
+ const img = canvas.toDataURL('image/png');
329
+ this.downloadImage(img, 'map.png');
330
+ });
331
+ },
332
+ downloadImage (data, filename) {
333
+ const link = document.createElement('a');
334
+ if (typeof link.download === 'string') {
335
+ link.href = data;
336
+ link.download = filename;
337
+ document.body.appendChild(link); // 需要将链接添加到文档中才能触发点击
338
+ link.click();
339
+ document.body.removeChild(link); // 下载完成后移除链接
340
+ } else {
341
+ window.open(data);
342
+ }
343
+ }
344
+ },
345
+ mounted () {
346
+ }
347
+ };
348
+ </script>