浏览代码

展示层

buzhi 1 年之前
父节点
当前提交
20dd887b46

+ 1 - 1
.vscode/settings.json

@@ -87,7 +87,7 @@
87 87
     "source.fixAll.stylelint": "explicit"
88 88
   },
89 89
   "[vue]": {
90
-    "editor.defaultFormatter": "esbenp.prettier-vscode"
90
+    "editor.defaultFormatter": "octref.vetur"
91 91
   },
92 92
   "i18n-ally.localesPaths": ["src/locales"],
93 93
   "i18n-ally.keystyle": "nested",

+ 18 - 0
package-lock.json

@@ -30,6 +30,7 @@
30 30
         "diagram-js": "^12.8.0",
31 31
         "driver.js": "^1.3.1",
32 32
         "echarts": "^5.5.0",
33
+        "echarts-gl": "^2.0.9",
33 34
         "echarts-wordcloud": "^2.1.0",
34 35
         "element-plus": "2.9.1",
35 36
         "fast-xml-parser": "^4.3.2",
@@ -7693,6 +7694,11 @@
7693 7694
       "license": "MIT",
7694 7695
       "peer": true
7695 7696
     },
7697
+    "node_modules/claygl": {
7698
+      "version": "1.3.0",
7699
+      "resolved": "https://registry.npmmirror.com/claygl/-/claygl-1.3.0.tgz",
7700
+      "integrity": "sha512-+gGtJjT6SSHD2l2yC3MCubW/sCV40tZuSs5opdtn79vFSGUgp/lH139RNEQ6Jy078/L0aV8odCw8RSrUcMfLaQ=="
7701
+    },
7696 7702
     "node_modules/cli-cursor": {
7697 7703
       "version": "5.0.0",
7698 7704
       "resolved": "https://registry.npmmirror.com/cli-cursor/-/cli-cursor-5.0.0.tgz",
@@ -9247,6 +9253,18 @@
9247 9253
         "zrender": "5.6.1"
9248 9254
       }
9249 9255
     },
9256
+    "node_modules/echarts-gl": {
9257
+      "version": "2.0.9",
9258
+      "resolved": "https://registry.npmmirror.com/echarts-gl/-/echarts-gl-2.0.9.tgz",
9259
+      "integrity": "sha512-oKeMdkkkpJGWOzjgZUsF41DOh6cMsyrGGXimbjK2l6Xeq/dBQu4ShG2w2Dzrs/1bD27b2pLTGSaUzouY191gzA==",
9260
+      "dependencies": {
9261
+        "claygl": "^1.2.1",
9262
+        "zrender": "^5.1.1"
9263
+      },
9264
+      "peerDependencies": {
9265
+        "echarts": "^5.1.2"
9266
+      }
9267
+    },
9250 9268
     "node_modules/echarts-wordcloud": {
9251 9269
       "version": "2.1.0",
9252 9270
       "resolved": "https://registry.npmmirror.com/echarts-wordcloud/-/echarts-wordcloud-2.1.0.tgz",

+ 1 - 0
package.json

@@ -46,6 +46,7 @@
46 46
     "diagram-js": "^12.8.0",
47 47
     "driver.js": "^1.3.1",
48 48
     "echarts": "^5.5.0",
49
+    "echarts-gl": "^2.0.9",
49 50
     "echarts-wordcloud": "^2.1.0",
50 51
     "element-plus": "2.9.1",
51 52
     "fast-xml-parser": "^4.3.2",

+ 31 - 0
public/json/cbkclx1.json

@@ -0,0 +1,31 @@
1
+{
2
+    "code": 0,
3
+    "data": [
4
+        {
5
+            "name": "小麦",
6
+            "value": 751.05,
7
+            "valSum": 4339.08
8
+        },
9
+        {
10
+            "name": "玉米",
11
+            "value": 439.14,
12
+            "valSum": 4339.08
13
+        },
14
+        {
15
+            "name": "稻谷",
16
+            "value": 2877.09,
17
+            "valSum": 4339.08
18
+        },
19
+        {
20
+            "name": "大豆",
21
+            "value": 259.63,
22
+            "valSum": 4339.08
23
+        },
24
+        {
25
+            "name": "其他",
26
+            "value": 12.17,
27
+            "valSum": 4339.08
28
+        }
29
+    ],
30
+    "msg": ""
31
+}

+ 21 - 0
public/json/cbkclx2.json

@@ -0,0 +1,21 @@
1
+{
2
+    "code": 0,
3
+    "data": [
4
+        {
5
+            "name": "2024",
6
+            "value": 32,
7
+            "valSum": 513.87
8
+        },
9
+        {
10
+            "name": "2023",
11
+            "value": 105.75,
12
+            "valSum": 513.87
13
+        },
14
+        {
15
+            "name": "2022及以前",
16
+            "value": 376.12,
17
+            "valSum": 513.87
18
+        }
19
+    ],
20
+    "msg": ""
21
+}

+ 937 - 0
public/json/kqxx.json

@@ -0,0 +1,937 @@
1
+{
2
+    "code": 0,
3
+    "data": [
4
+        {
5
+            "cfdm": "11100000000018016P0010004",
6
+            "cfmc": "2-2号临时仓",
7
+            "kcsl": "3684",
8
+            "lsxzmc": "最低收购价粮",
9
+            "lspzmc": "小麦"
10
+        },
11
+        {
12
+            "cfdm": "11100000000018016P0040004",
13
+            "cfmc": "4号临时仓",
14
+            "kcsl": "396",
15
+            "lsxzmc": "最低收购价粮",
16
+            "lspzmc": "小麦"
17
+        },
18
+        {
19
+            "cfdm": "11100000000018016P0040011",
20
+            "cfmc": "11号临时仓",
21
+            "kcsl": "3130",
22
+            "lsxzmc": "最低收购价粮",
23
+            "lspzmc": "小麦"
24
+        },
25
+        {
26
+            "cfdm": "11100000000018016P0040013",
27
+            "cfmc": "13号临时仓",
28
+            "kcsl": "8217",
29
+            "lsxzmc": "最低收购价粮",
30
+            "lspzmc": "小麦"
31
+        },
32
+        {
33
+            "cfdm": "1136060034322385510290001",
34
+            "cfmc": "1号临时仓",
35
+            "kcsl": "762",
36
+            "lsxzmc": "最低收购价粮",
37
+            "lspzmc": "小麦"
38
+        },
39
+        {
40
+            "cfdm": "11360800014717184K0050001",
41
+            "cfmc": "1号临时仓",
42
+            "kcsl": "974",
43
+            "lsxzmc": "最低收购价粮",
44
+            "lspzmc": "小麦"
45
+        },
46
+        {
47
+            "cfdm": "1241120077086974980010001",
48
+            "cfmc": "1号临时仓",
49
+            "kcsl": "6989",
50
+            "lsxzmc": "最低收购价粮",
51
+            "lspzmc": "小麦"
52
+        },
53
+        {
54
+            "cfdm": "12540000MB0R78996F0010001",
55
+            "cfmc": "1号仓",
56
+            "kcsl": "1273.2",
57
+            "lsxzmc": "中央储备粮",
58
+            "lspzmc": "小麦"
59
+        },
60
+        {
61
+            "cfdm": "12540000MB0R78996F0010002",
62
+            "cfmc": "2号仓",
63
+            "kcsl": "1226.8",
64
+            "lsxzmc": "中央储备粮",
65
+            "lspzmc": "小麦"
66
+        },
67
+        {
68
+            "cfdm": "12542100MB0T58524C0010004",
69
+            "cfmc": "4号仓",
70
+            "kcsl": "1295.08",
71
+            "lsxzmc": "中央储备粮",
72
+            "lspzmc": "小麦"
73
+        },
74
+        {
75
+            "cfdm": "12542400MB0T8428XQ0010001",
76
+            "cfmc": "1号仓",
77
+            "kcsl": "2000",
78
+            "lsxzmc": "中央储备粮",
79
+            "lspzmc": "小麦"
80
+        },
81
+        {
82
+            "cfdm": "12542400MB0T8428XQ0010002",
83
+            "cfmc": "2号仓",
84
+            "kcsl": "1578.95",
85
+            "lsxzmc": "中央储备粮",
86
+            "lspzmc": "小麦"
87
+        },
88
+        {
89
+            "cfdm": "91110000101146543N0010002",
90
+            "cfmc": "2号临时仓",
91
+            "kcsl": "2462",
92
+            "lsxzmc": "最低收购价粮",
93
+            "lspzmc": "小麦"
94
+        },
95
+        {
96
+            "cfdm": "91110000633709351P0000001",
97
+            "cfmc": "1号仓",
98
+            "kcsl": "5962.49",
99
+            "lsxzmc": "商品粮",
100
+            "lspzmc": "小麦"
101
+        },
102
+        {
103
+            "cfdm": "91110000633709351P0000005",
104
+            "cfmc": "5号仓",
105
+            "kcsl": "4480.49",
106
+            "lsxzmc": "商品粮",
107
+            "lspzmc": "小麦"
108
+        },
109
+        {
110
+            "cfdm": "91110000633709351P0000006",
111
+            "cfmc": "6号仓",
112
+            "kcsl": "2705.88",
113
+            "lsxzmc": "商品粮",
114
+            "lspzmc": "小麦"
115
+        },
116
+        {
117
+            "cfdm": "91110000633709351P0000012",
118
+            "cfmc": "12号仓",
119
+            "kcsl": "7544.07",
120
+            "lsxzmc": "商品粮",
121
+            "lspzmc": "小麦"
122
+        },
123
+        {
124
+            "cfdm": "91110000633709351P0000015",
125
+            "cfmc": "15号仓",
126
+            "kcsl": "4947.47",
127
+            "lsxzmc": "商品粮",
128
+            "lspzmc": "小麦"
129
+        },
130
+        {
131
+            "cfdm": "91110000633709351P0000017",
132
+            "cfmc": "17号仓",
133
+            "kcsl": "5231.06",
134
+            "lsxzmc": "商品粮",
135
+            "lspzmc": "小麦"
136
+        },
137
+        {
138
+            "cfdm": "91110000633709351P0000020",
139
+            "cfmc": "20号仓",
140
+            "kcsl": "5473.05",
141
+            "lsxzmc": "商品粮",
142
+            "lspzmc": "小麦"
143
+        },
144
+        {
145
+            "cfdm": "91110000633709351P0000027",
146
+            "cfmc": "27号仓",
147
+            "kcsl": "71.42",
148
+            "lsxzmc": "商品粮",
149
+            "lspzmc": "小麦"
150
+        },
151
+        {
152
+            "cfdm": "91110000633709351P0000032",
153
+            "cfmc": "32号仓",
154
+            "kcsl": "8700.84",
155
+            "lsxzmc": "商品粮",
156
+            "lspzmc": "小麦"
157
+        },
158
+        {
159
+            "cfdm": "91110000633709351P0000038",
160
+            "cfmc": "38号仓",
161
+            "kcsl": "4373.31",
162
+            "lsxzmc": "商品粮",
163
+            "lspzmc": "小麦"
164
+        },
165
+        {
166
+            "cfdm": "91110102633709300H0000002",
167
+            "cfmc": "68号仓",
168
+            "kcsl": "1461.56",
169
+            "lsxzmc": "商品粮",
170
+            "lspzmc": "小麦"
171
+        },
172
+        {
173
+            "cfdm": "91110102633709300H0000069",
174
+            "cfmc": "69号仓",
175
+            "kcsl": "4273.24",
176
+            "lsxzmc": "商品粮",
177
+            "lspzmc": "小麦"
178
+        },
179
+        {
180
+            "cfdm": "91110102633709300H0000072",
181
+            "cfmc": "72号仓",
182
+            "kcsl": "2139.21",
183
+            "lsxzmc": "商品粮",
184
+            "lspzmc": "小麦"
185
+        },
186
+        {
187
+            "cfdm": "91110102633709300H0000080",
188
+            "cfmc": "80号仓",
189
+            "kcsl": "4273.67",
190
+            "lsxzmc": "商品粮",
191
+            "lspzmc": "小麦"
192
+        },
193
+        {
194
+            "cfdm": "91110102633709300H0000089",
195
+            "cfmc": "19号仓",
196
+            "kcsl": "1034.84",
197
+            "lsxzmc": "商品粮",
198
+            "lspzmc": "小麦"
199
+        },
200
+        {
201
+            "cfdm": "91110102633709300H0000092",
202
+            "cfmc": "11号仓",
203
+            "kcsl": "1492.85",
204
+            "lsxzmc": "商品粮",
205
+            "lspzmc": "小麦"
206
+        },
207
+        {
208
+            "cfdm": "91110102801125655E0000004",
209
+            "cfmc": "12号仓",
210
+            "kcsl": "10000",
211
+            "lsxzmc": "中央储备粮",
212
+            "lspzmc": "小麦"
213
+        },
214
+        {
215
+            "cfdm": "91110102801125655E0000007",
216
+            "cfmc": "7号仓",
217
+            "kcsl": "10762.18",
218
+            "lsxzmc": "中央储备粮",
219
+            "lspzmc": "小麦"
220
+        },
221
+        {
222
+            "cfdm": "91110102801125655E0020020",
223
+            "cfmc": "20号仓",
224
+            "kcsl": "4736.42",
225
+            "lsxzmc": "中央储备粮",
226
+            "lspzmc": "小麦"
227
+        },
228
+        {
229
+            "cfdm": "91110102801125655E0040004",
230
+            "cfmc": "4号仓",
231
+            "kcsl": "8659.4",
232
+            "lsxzmc": "中央储备粮",
233
+            "lspzmc": "小麦"
234
+        },
235
+        {
236
+            "cfdm": "91110102801125655E0040005",
237
+            "cfmc": "5号仓",
238
+            "kcsl": "3105.2",
239
+            "lsxzmc": "中央储备粮",
240
+            "lspzmc": "小麦"
241
+        },
242
+        {
243
+            "cfdm": "91110102801125655E0040006",
244
+            "cfmc": "6号仓",
245
+            "kcsl": "4813.45",
246
+            "lsxzmc": "中央储备粮",
247
+            "lspzmc": "小麦"
248
+        },
249
+        {
250
+            "cfdm": "91110102801125655E0040007",
251
+            "cfmc": "7号仓",
252
+            "kcsl": "5009.72",
253
+            "lsxzmc": "中央储备粮",
254
+            "lspzmc": "小麦"
255
+        },
256
+        {
257
+            "cfdm": "91110102801125655E0040008",
258
+            "cfmc": "8号仓",
259
+            "kcsl": "2252.02",
260
+            "lsxzmc": "中央储备粮",
261
+            "lspzmc": "小麦"
262
+        },
263
+        {
264
+            "cfdm": "91110102801125655E0040009",
265
+            "cfmc": "9号仓",
266
+            "kcsl": "2184.91",
267
+            "lsxzmc": "中央储备粮",
268
+            "lspzmc": "小麦"
269
+        },
270
+        {
271
+            "cfdm": "91110102801125655E0040010",
272
+            "cfmc": "10号仓",
273
+            "kcsl": "2072.3",
274
+            "lsxzmc": "中央储备粮",
275
+            "lspzmc": "小麦"
276
+        },
277
+        {
278
+            "cfdm": "91110102801125655E0050003",
279
+            "cfmc": "3号仓",
280
+            "kcsl": "2151.74",
281
+            "lsxzmc": "中央储备粮",
282
+            "lspzmc": "小麦"
283
+        },
284
+        {
285
+            "cfdm": "91110112MA01C01T7Q0000001",
286
+            "cfmc": "1号仓",
287
+            "kcsl": "5107.08",
288
+            "lsxzmc": "中央储备粮",
289
+            "lspzmc": "小麦"
290
+        },
291
+        {
292
+            "cfdm": "91110112MA01C01T7Q0000002",
293
+            "cfmc": "2号仓",
294
+            "kcsl": "4806.26",
295
+            "lsxzmc": "中央储备粮",
296
+            "lspzmc": "小麦"
297
+        },
298
+        {
299
+            "cfdm": "91110112MA01C01T7Q0000003",
300
+            "cfmc": "3号仓",
301
+            "kcsl": "5197.67",
302
+            "lsxzmc": "中央储备粮",
303
+            "lspzmc": "小麦"
304
+        },
305
+        {
306
+            "cfdm": "91110112MA01C01T7Q0000004",
307
+            "cfmc": "4号仓",
308
+            "kcsl": "4122.96",
309
+            "lsxzmc": "中央储备粮",
310
+            "lspzmc": "小麦"
311
+        },
312
+        {
313
+            "cfdm": "91110112MA01C01T7Q0000005",
314
+            "cfmc": "5号仓",
315
+            "kcsl": "11391.77",
316
+            "lsxzmc": "中央储备粮",
317
+            "lspzmc": "小麦"
318
+        },
319
+        {
320
+            "cfdm": "91110112MA01C01T7Q0000006",
321
+            "cfmc": "6号仓",
322
+            "kcsl": "11959.16",
323
+            "lsxzmc": "中央储备粮",
324
+            "lspzmc": "小麦"
325
+        },
326
+        {
327
+            "cfdm": "91110112MA01C01T7Q0000007",
328
+            "cfmc": "7号仓",
329
+            "kcsl": "10401.17",
330
+            "lsxzmc": "中央储备粮",
331
+            "lspzmc": "小麦"
332
+        },
333
+        {
334
+            "cfdm": "91110112MA01C01T7Q0000008",
335
+            "cfmc": "8号仓",
336
+            "kcsl": "20206.94",
337
+            "lsxzmc": "中央储备粮",
338
+            "lspzmc": "小麦"
339
+        },
340
+        {
341
+            "cfdm": "91110112MA01C01T7Q0010021",
342
+            "cfmc": "21号仓",
343
+            "kcsl": "6216.23",
344
+            "lsxzmc": "中央储备粮",
345
+            "lspzmc": "小麦"
346
+        },
347
+        {
348
+            "cfdm": "91110112MA01C01T7Q0020001",
349
+            "cfmc": "6号仓",
350
+            "kcsl": "6124",
351
+            "lsxzmc": "中央储备粮",
352
+            "lspzmc": "小麦"
353
+        },
354
+        {
355
+            "cfdm": "91110112MA01C01T7Q0040001",
356
+            "cfmc": "30号仓",
357
+            "kcsl": "9209.84",
358
+            "lsxzmc": "中央储备粮",
359
+            "lspzmc": "小麦"
360
+        },
361
+        {
362
+            "cfdm": "91110112MA01C01T7Q0040002",
363
+            "cfmc": "31号仓",
364
+            "kcsl": "9210.37",
365
+            "lsxzmc": "中央储备粮",
366
+            "lspzmc": "小麦"
367
+        },
368
+        {
369
+            "cfdm": "91110112MA01C01T7Q0040004",
370
+            "cfmc": "33号仓",
371
+            "kcsl": "9220.88",
372
+            "lsxzmc": "中央储备粮",
373
+            "lspzmc": "小麦"
374
+        },
375
+        {
376
+            "cfdm": "91110112MA01C01T7Q0040005",
377
+            "cfmc": "37号仓",
378
+            "kcsl": "9247.14",
379
+            "lsxzmc": "中央储备粮",
380
+            "lspzmc": "小麦"
381
+        },
382
+        {
383
+            "cfdm": "91110112MA01C01T7Q0040006",
384
+            "cfmc": "38号仓",
385
+            "kcsl": "9219.63",
386
+            "lsxzmc": "中央储备粮",
387
+            "lspzmc": "小麦"
388
+        },
389
+        {
390
+            "cfdm": "91110112MA01C01T7Q0040007",
391
+            "cfmc": "36号仓",
392
+            "kcsl": "3279.77",
393
+            "lsxzmc": "中央储备粮",
394
+            "lspzmc": "小麦"
395
+        },
396
+        {
397
+            "cfdm": "91110113102501746Q0010007",
398
+            "cfmc": "13号仓",
399
+            "kcsl": "2500.9",
400
+            "lsxzmc": "商品粮",
401
+            "lspzmc": "小麦"
402
+        },
403
+        {
404
+            "cfdm": "91110113102501746Q0010008",
405
+            "cfmc": "14号仓",
406
+            "kcsl": "2504.66",
407
+            "lsxzmc": "商品粮",
408
+            "lspzmc": "小麦"
409
+        },
410
+        {
411
+            "cfdm": "91110113102502087F0010011",
412
+            "cfmc": "30号仓",
413
+            "kcsl": "2500",
414
+            "lsxzmc": "商品粮",
415
+            "lspzmc": "小麦"
416
+        },
417
+        {
418
+            "cfdm": "91110113102502087F0010013",
419
+            "cfmc": "38号仓",
420
+            "kcsl": "1249.25",
421
+            "lsxzmc": "商品粮",
422
+            "lspzmc": "小麦"
423
+        },
424
+        {
425
+            "cfdm": "91110113102502087F0010014",
426
+            "cfmc": "39号仓",
427
+            "kcsl": "232.89",
428
+            "lsxzmc": "商品粮",
429
+            "lspzmc": "小麦"
430
+        },
431
+        {
432
+            "cfdm": "91110113102519460Q0000001",
433
+            "cfmc": "1号仓,2号仓",
434
+            "kcsl": "15082.77",
435
+            "lsxzmc": "中央储备粮",
436
+            "lspzmc": "小麦"
437
+        },
438
+        {
439
+            "cfdm": "91110113102519460Q0000002",
440
+            "cfmc": "3号仓",
441
+            "kcsl": "15783.9",
442
+            "lsxzmc": "中央储备粮",
443
+            "lspzmc": "小麦"
444
+        },
445
+        {
446
+            "cfdm": "91110113102519460Q0000003",
447
+            "cfmc": "4号仓,5号仓",
448
+            "kcsl": "13180.77",
449
+            "lsxzmc": "中央储备粮",
450
+            "lspzmc": "小麦"
451
+        },
452
+        {
453
+            "cfdm": "91110113102519460Q0000004",
454
+            "cfmc": "6号仓",
455
+            "kcsl": "15224.28",
456
+            "lsxzmc": "中央储备粮",
457
+            "lspzmc": "小麦"
458
+        },
459
+        {
460
+            "cfdm": "91110113102519460Q0000005",
461
+            "cfmc": "7号仓,8号仓",
462
+            "kcsl": "13361.83",
463
+            "lsxzmc": "中央储备粮",
464
+            "lspzmc": "小麦"
465
+        },
466
+        {
467
+            "cfdm": "91110113102519460Q0000006",
468
+            "cfmc": "9号仓,10号仓",
469
+            "kcsl": "14368.79",
470
+            "lsxzmc": "中央储备粮",
471
+            "lspzmc": "小麦"
472
+        },
473
+        {
474
+            "cfdm": "91110113102519460Q0000007",
475
+            "cfmc": "11号仓,12号仓",
476
+            "kcsl": "14037.4",
477
+            "lsxzmc": "中央储备粮",
478
+            "lspzmc": "小麦"
479
+        },
480
+        {
481
+            "cfdm": "91110113102519460Q0000008",
482
+            "cfmc": "13号仓,14号仓",
483
+            "kcsl": "14015.81",
484
+            "lsxzmc": "中央储备粮",
485
+            "lspzmc": "小麦"
486
+        },
487
+        {
488
+            "cfdm": "91110113102519460Q0000009",
489
+            "cfmc": "31号仓,32号仓",
490
+            "kcsl": "12409.94",
491
+            "lsxzmc": "中央储备粮",
492
+            "lspzmc": "小麦"
493
+        },
494
+        {
495
+            "cfdm": "91110113102519460Q0000010",
496
+            "cfmc": "33号仓,34号仓",
497
+            "kcsl": "12860.63",
498
+            "lsxzmc": "中央储备粮",
499
+            "lspzmc": "小麦"
500
+        },
501
+        {
502
+            "cfdm": "91110113102519460Q0000011",
503
+            "cfmc": "35号仓,36号仓",
504
+            "kcsl": "13509.98",
505
+            "lsxzmc": "中央储备粮",
506
+            "lspzmc": "小麦"
507
+        },
508
+        {
509
+            "cfdm": "91110113102519460Q0000012",
510
+            "cfmc": "37号仓,38号仓",
511
+            "kcsl": "14330.39",
512
+            "lsxzmc": "中央储备粮",
513
+            "lspzmc": "小麦"
514
+        },
515
+        {
516
+            "cfdm": "91110113102519460Q0000013",
517
+            "cfmc": "39号仓,40号仓",
518
+            "kcsl": "19137.4",
519
+            "lsxzmc": "中央储备粮",
520
+            "lspzmc": "小麦"
521
+        },
522
+        {
523
+            "cfdm": "91110113102519460Q0000014",
524
+            "cfmc": "41号仓,42号仓",
525
+            "kcsl": "12263.85",
526
+            "lsxzmc": "中央储备粮",
527
+            "lspzmc": "小麦"
528
+        },
529
+        {
530
+            "cfdm": "91110113102519460Q0000015",
531
+            "cfmc": "43号仓,44号仓",
532
+            "kcsl": "18783.27",
533
+            "lsxzmc": "中央储备粮",
534
+            "lspzmc": "小麦"
535
+        },
536
+        {
537
+            "cfdm": "91110113102519460Q0000016",
538
+            "cfmc": "45号仓,46号仓",
539
+            "kcsl": "11758.46",
540
+            "lsxzmc": "中央储备粮",
541
+            "lspzmc": "小麦"
542
+        },
543
+        {
544
+            "cfdm": "91110113102519460Q0000017",
545
+            "cfmc": "47号仓,48号仓",
546
+            "kcsl": "17507.42",
547
+            "lsxzmc": "中央储备粮",
548
+            "lspzmc": "小麦"
549
+        },
550
+        {
551
+            "cfdm": "9111011363370980220010001",
552
+            "cfmc": "1号仓,2号仓",
553
+            "kcsl": "6357.6",
554
+            "lsxzmc": "商品粮",
555
+            "lspzmc": "小麦"
556
+        },
557
+        {
558
+            "cfdm": "9111011363370980220010002",
559
+            "cfmc": "3号仓",
560
+            "kcsl": "11036.88",
561
+            "lsxzmc": "商品粮",
562
+            "lspzmc": "小麦"
563
+        },
564
+        {
565
+            "cfdm": "9111011363370980220010003",
566
+            "cfmc": "6号仓",
567
+            "kcsl": "11250.66",
568
+            "lsxzmc": "商品粮",
569
+            "lspzmc": "小麦"
570
+        },
571
+        {
572
+            "cfdm": "91110114102069754D0000001",
573
+            "cfmc": "1号仓",
574
+            "kcsl": "1146.05",
575
+            "lsxzmc": "中央储备粮",
576
+            "lspzmc": "小麦"
577
+        },
578
+        {
579
+            "cfdm": "91110114102069754D0000002",
580
+            "cfmc": "2号仓",
581
+            "kcsl": "1153.18",
582
+            "lsxzmc": "中央储备粮",
583
+            "lspzmc": "小麦"
584
+        },
585
+        {
586
+            "cfdm": "91110114102069754D0000004",
587
+            "cfmc": "4号仓",
588
+            "kcsl": "1147.75",
589
+            "lsxzmc": "中央储备粮",
590
+            "lspzmc": "小麦"
591
+        },
592
+        {
593
+            "cfdm": "91110114102069754D0000005",
594
+            "cfmc": "5号仓",
595
+            "kcsl": "1149.89",
596
+            "lsxzmc": "中央储备粮",
597
+            "lspzmc": "小麦"
598
+        },
599
+        {
600
+            "cfdm": "91110114102069754D0000008",
601
+            "cfmc": "8号仓",
602
+            "kcsl": "1155.93",
603
+            "lsxzmc": "中央储备粮",
604
+            "lspzmc": "小麦"
605
+        },
606
+        {
607
+            "cfdm": "91110114102069754D0000009",
608
+            "cfmc": "9号仓",
609
+            "kcsl": "286.83",
610
+            "lsxzmc": "中央储备粮",
611
+            "lspzmc": "小麦"
612
+        },
613
+        {
614
+            "cfdm": "91110114102069754D0000010",
615
+            "cfmc": "10号仓",
616
+            "kcsl": "285.58",
617
+            "lsxzmc": "中央储备粮",
618
+            "lspzmc": "小麦"
619
+        },
620
+        {
621
+            "cfdm": "91110114102069754D0000011",
622
+            "cfmc": "11号仓",
623
+            "kcsl": "284.4",
624
+            "lsxzmc": "中央储备粮",
625
+            "lspzmc": "小麦"
626
+        },
627
+        {
628
+            "cfdm": "91110114102069754D0000012",
629
+            "cfmc": "12号仓",
630
+            "kcsl": "286.4",
631
+            "lsxzmc": "中央储备粮",
632
+            "lspzmc": "小麦"
633
+        },
634
+        {
635
+            "cfdm": "91110114102069754D0000013",
636
+            "cfmc": "13号仓",
637
+            "kcsl": "285.94",
638
+            "lsxzmc": "中央储备粮",
639
+            "lspzmc": "小麦"
640
+        },
641
+        {
642
+            "cfdm": "91110114102069754D0000014",
643
+            "cfmc": "14号仓",
644
+            "kcsl": "286.5",
645
+            "lsxzmc": "中央储备粮",
646
+            "lspzmc": "小麦"
647
+        },
648
+        {
649
+            "cfdm": "91110114102069754D0000015",
650
+            "cfmc": "15号仓",
651
+            "kcsl": "1150.79",
652
+            "lsxzmc": "中央储备粮",
653
+            "lspzmc": "小麦"
654
+        },
655
+        {
656
+            "cfdm": "91110114102069754D0000016",
657
+            "cfmc": "16号仓",
658
+            "kcsl": "1136.4",
659
+            "lsxzmc": "中央储备粮",
660
+            "lspzmc": "小麦"
661
+        },
662
+        {
663
+            "cfdm": "91110114102069754D0000017",
664
+            "cfmc": "17号仓",
665
+            "kcsl": "1135.63",
666
+            "lsxzmc": "中央储备粮",
667
+            "lspzmc": "小麦"
668
+        },
669
+        {
670
+            "cfdm": "91110114102069754D0000018",
671
+            "cfmc": "18号仓",
672
+            "kcsl": "1135.87",
673
+            "lsxzmc": "中央储备粮",
674
+            "lspzmc": "小麦"
675
+        },
676
+        {
677
+            "cfdm": "91110114102069754D0000019",
678
+            "cfmc": "19号仓",
679
+            "kcsl": "1124.68",
680
+            "lsxzmc": "中央储备粮",
681
+            "lspzmc": "小麦"
682
+        },
683
+        {
684
+            "cfdm": "91110114102069754D0000020",
685
+            "cfmc": "20号仓",
686
+            "kcsl": "1148.06",
687
+            "lsxzmc": "中央储备粮",
688
+            "lspzmc": "小麦"
689
+        },
690
+        {
691
+            "cfdm": "91110114102069754D0000021",
692
+            "cfmc": "21号仓",
693
+            "kcsl": "1143.18",
694
+            "lsxzmc": "中央储备粮",
695
+            "lspzmc": "小麦"
696
+        },
697
+        {
698
+            "cfdm": "91110114102069754D0000022",
699
+            "cfmc": "22号仓",
700
+            "kcsl": "1128.87",
701
+            "lsxzmc": "中央储备粮",
702
+            "lspzmc": "小麦"
703
+        },
704
+        {
705
+            "cfdm": "9123118213175147X70020003",
706
+            "cfmc": "X-049",
707
+            "kcsl": "1651",
708
+            "lsxzmc": "省级地方储备粮",
709
+            "lspzmc": "小麦"
710
+        },
711
+        {
712
+            "cfdm": "9123118213175147X70020035",
713
+            "cfmc": "D-015",
714
+            "kcsl": "0",
715
+            "lsxzmc": "省级地方储备粮",
716
+            "lspzmc": "小麦"
717
+        },
718
+        {
719
+            "cfdm": "9123118213175147X70020005",
720
+            "cfmc": "D-112",
721
+            "kcsl": "5929",
722
+            "lsxzmc": "省级地方储备粮",
723
+            "lspzmc": "小麦"
724
+        },
725
+        {
726
+            "cfdm": "9123118213175147X70020043",
727
+            "cfmc": "D-011",
728
+            "kcsl": "0",
729
+            "lsxzmc": "省级地方储备粮",
730
+            "lspzmc": "小麦"
731
+        },
732
+        {
733
+            "cfdm": "9123118213175147X70020047",
734
+            "cfmc": "D-008",
735
+            "kcsl": "847",
736
+            "lsxzmc": "省级地方储备粮",
737
+            "lspzmc": "小麦"
738
+        },
739
+        {
740
+            "cfdm": "9123118213175147X70020023",
741
+            "cfmc": "D-091",
742
+            "kcsl": "3908",
743
+            "lsxzmc": "省级地方储备粮",
744
+            "lspzmc": "小麦"
745
+        },
746
+        {
747
+            "cfdm": "9123118213175147X70020014",
748
+            "cfmc": "X-045",
749
+            "kcsl": "815",
750
+            "lsxzmc": "省级地方储备粮",
751
+            "lspzmc": "小麦"
752
+        },
753
+        {
754
+            "cfdm": "9123118213175147X70020013",
755
+            "cfmc": "X-042",
756
+            "kcsl": "855",
757
+            "lsxzmc": "省级地方储备粮",
758
+            "lspzmc": "小麦"
759
+        },
760
+        {
761
+            "cfdm": "9123118213175147X70020022",
762
+            "cfmc": "D-014",
763
+            "kcsl": "0",
764
+            "lsxzmc": "省级地方储备粮",
765
+            "lspzmc": "小麦"
766
+        },
767
+        {
768
+            "cfdm": "9123118213175147X70020009",
769
+            "cfmc": "D-095",
770
+            "kcsl": "1413",
771
+            "lsxzmc": "省级地方储备粮",
772
+            "lspzmc": "小麦"
773
+        },
774
+        {
775
+            "cfdm": "9123118213175147X70020036",
776
+            "cfmc": "D-092",
777
+            "kcsl": "3772",
778
+            "lsxzmc": "省级地方储备粮",
779
+            "lspzmc": "小麦"
780
+        },
781
+        {
782
+            "cfdm": "9123118213175147X70020046",
783
+            "cfmc": "D-090",
784
+            "kcsl": "3705",
785
+            "lsxzmc": "省级地方储备粮",
786
+            "lspzmc": "小麦"
787
+        },
788
+        {
789
+            "cfdm": "9123118213175147X70020034",
790
+            "cfmc": "X-046",
791
+            "kcsl": "925",
792
+            "lsxzmc": "省级地方储备粮",
793
+            "lspzmc": "小麦"
794
+        },
795
+        {
796
+            "cfdm": "9123118213175147X70020033",
797
+            "cfmc": "X-022",
798
+            "kcsl": "13000",
799
+            "lsxzmc": "省级地方储备粮",
800
+            "lspzmc": "小麦"
801
+        },
802
+        {
803
+            "cfdm": "9123118213175147X70020025",
804
+            "cfmc": "X-007",
805
+            "kcsl": "4000",
806
+            "lsxzmc": "省级地方储备粮",
807
+            "lspzmc": "小麦"
808
+        },
809
+        {
810
+            "cfdm": "9123118213175147X70020044",
811
+            "cfmc": "X-044",
812
+            "kcsl": "851",
813
+            "lsxzmc": "省级地方储备粮",
814
+            "lspzmc": "小麦"
815
+        },
816
+        {
817
+            "cfdm": "9123118213175147X70020018",
818
+            "cfmc": "D-007",
819
+            "kcsl": "1517",
820
+            "lsxzmc": "省级地方储备粮",
821
+            "lspzmc": "小麦"
822
+        },
823
+        {
824
+            "cfdm": "9123118213175147X70020031",
825
+            "cfmc": "D-004",
826
+            "kcsl": "1503",
827
+            "lsxzmc": "省级地方储备粮",
828
+            "lspzmc": "小麦"
829
+        },
830
+        {
831
+            "cfdm": "9123118213175147X70020021",
832
+            "cfmc": "D-060",
833
+            "kcsl": "3788",
834
+            "lsxzmc": "省级地方储备粮",
835
+            "lspzmc": "小麦"
836
+        },
837
+        {
838
+            "cfdm": "9123118213175147X70020017",
839
+            "cfmc": "D-006",
840
+            "kcsl": "1495",
841
+            "lsxzmc": "省级地方储备粮",
842
+            "lspzmc": "小麦"
843
+        },
844
+        {
845
+            "cfdm": "9123118213175147X70020008",
846
+            "cfmc": "D-094",
847
+            "kcsl": "1489",
848
+            "lsxzmc": "省级地方储备粮",
849
+            "lspzmc": "小麦"
850
+        },
851
+        {
852
+            "cfdm": "9123118213175147X70020028",
853
+            "cfmc": "D-005",
854
+            "kcsl": "933",
855
+            "lsxzmc": "省级地方储备粮",
856
+            "lspzmc": "小麦"
857
+        },
858
+        {
859
+            "cfdm": "9123118213175147X70020020",
860
+            "cfmc": "D-093",
861
+            "kcsl": "815",
862
+            "lsxzmc": "省级地方储备粮",
863
+            "lspzmc": "小麦"
864
+        },
865
+        {
866
+            "cfdm": "9123118213175147X70020011",
867
+            "cfmc": "D-016",
868
+            "kcsl": "1515",
869
+            "lsxzmc": "省级地方储备粮",
870
+            "lspzmc": "小麦"
871
+        },
872
+        {
873
+            "cfdm": "9123118213175147X70020045",
874
+            "cfmc": "X-041",
875
+            "kcsl": "903",
876
+            "lsxzmc": "省级地方储备粮",
877
+            "lspzmc": "小麦"
878
+        },
879
+        {
880
+            "cfdm": "9123118213175147X70020029",
881
+            "cfmc": "D-009",
882
+            "kcsl": "0",
883
+            "lsxzmc": "省级地方储备粮",
884
+            "lspzmc": "小麦"
885
+        },
886
+        {
887
+            "cfdm": "9123118213175147X70020030",
888
+            "cfmc": "D-013",
889
+            "kcsl": "0",
890
+            "lsxzmc": "省级地方储备粮",
891
+            "lspzmc": "小麦"
892
+        },
893
+        {
894
+            "cfdm": "9123118213175147X70020053",
895
+            "cfmc": "D-003",
896
+            "kcsl": "1518",
897
+            "lsxzmc": "省级地方储备粮",
898
+            "lspzmc": "小麦"
899
+        },
900
+        {
901
+            "cfdm": "9123118213175147X70020039",
902
+            "cfmc": "D-089",
903
+            "kcsl": "3819",
904
+            "lsxzmc": "省级地方储备粮",
905
+            "lspzmc": "小麦"
906
+        },
907
+        {
908
+            "cfdm": "9123118213175147X70020037",
909
+            "cfmc": "D-001",
910
+            "kcsl": "1516",
911
+            "lsxzmc": "省级地方储备粮",
912
+            "lspzmc": "小麦"
913
+        },
914
+        {
915
+            "cfdm": "9123118213175147X70020040",
916
+            "cfmc": "D-012",
917
+            "kcsl": "0",
918
+            "lsxzmc": "省级地方储备粮",
919
+            "lspzmc": "小麦"
920
+        },
921
+        {
922
+            "cfdm": "9123118213175147X70020041",
923
+            "cfmc": "D-010",
924
+            "kcsl": "0",
925
+            "lsxzmc": "省级地方储备粮",
926
+            "lspzmc": "小麦"
927
+        },
928
+        {
929
+            "cfdm": "9123118213175147X70020001",
930
+            "cfmc": "D-002",
931
+            "kcsl": "1518",
932
+            "lsxzmc": "省级地方储备粮",
933
+            "lspzmc": "小麦"
934
+        }
935
+    ],
936
+    "msg": ""
937
+}

文件差异内容过多而无法显示
+ 1225 - 0
public/json/text.json


二进制
src/assets/map/tableheader2.png


二进制
src/assets/map/u80.png


二进制
src/assets/map/u92.png


二进制
src/assets/map/南海.png


文件差异内容过多而无法显示
+ 26167 - 0
src/json/ChinaMap.json


文件差异内容过多而无法显示
+ 25781 - 0
src/json/china.json


+ 233 - 0
src/json/shijie.json

@@ -0,0 +1,233 @@
1
+{
2
+  "China": "中国",
3
+  "Afghanistan": "阿富汗",
4
+  "Aland Islands": "奥兰群岛",
5
+  "Albania": "阿尔巴尼亚",
6
+  "Algeria": "阿尔及利亚",
7
+  "American Samoa": "美属萨摩亚",
8
+  "Andorra": "安道尔",
9
+  "Angola": "安哥拉",
10
+  "Anguilla": "安圭拉",
11
+  "Antigua and Barbuda": "安提瓜和巴布达",
12
+  "Argentina": "阿根廷",
13
+  "Armenia": "亚美尼亚",
14
+  "Aruba": "阿鲁巴",
15
+  "Australia": "澳大利亚",
16
+  "Austria": "奥地利",
17
+  "Azerbaijan": "阿塞拜疆",
18
+  "Bangladesh": "孟加拉",
19
+  "Bahrain": "巴林",
20
+  "Bahamas": "巴哈马",
21
+  "Barbados": "巴巴多斯",
22
+  "Belarus": "白俄罗斯",
23
+  "Belgium": "比利时",
24
+  "Belize": "伯利兹",
25
+  "Benin": "贝宁",
26
+  "Bermuda": "百慕大",
27
+  "Bhutan": "不丹",
28
+  "Bolivia": "玻利维亚",
29
+  "Bosnia and Herzegovina": "波斯尼亚和黑塞哥维那",
30
+  "Botswana": "博茨瓦纳",
31
+  "Bouvet Island": "布维岛",
32
+  "Brazil": "巴西",
33
+  "Brunei": "文莱",
34
+  "Bulgaria": "保加利亚",
35
+  "Burkina Faso": "布基纳法索",
36
+  "Burundi": "布隆迪",
37
+  "Cambodia": "柬埔寨",
38
+  "Cameroon": "喀麦隆",
39
+  "Canada": "加拿大",
40
+  "Cape Verde": "佛得角",
41
+  "Central African Republic": "中非",
42
+  "Chad": "乍得",
43
+  "Chile": "智利",
44
+  "Christmas Islands": "圣诞岛",
45
+  "Cocos (keeling) Islands": "科科斯(基林)群岛",
46
+  "Colombia": "哥伦比亚",
47
+  "Comoros": "科摩罗",
48
+  "Congo (Congo-Kinshasa)": "刚果(金)",
49
+  "Congo": "刚果",
50
+  "Cook Islands": "库克群岛",
51
+  "Costa Rica": "哥斯达黎加",
52
+  "Cote D’Ivoire": "科特迪瓦",
53
+
54
+  "Croatia": "克罗地亚",
55
+  "Cuba": "古巴",
56
+  "Czech": "捷克",
57
+  "Cyprus": "塞浦路斯",
58
+  "Denmark": "丹麦",
59
+  "Djibouti": "吉布提",
60
+  "Dominica": "多米尼加",
61
+  "East Timor": "东帝汶",
62
+  "Ecuador": "厄瓜多尔",
63
+  "Egypt": "埃及",
64
+  "Equatorial Guinea": "赤道几内亚",
65
+  "Eritrea": "厄立特里亚",
66
+  "Estonia": "爱沙尼亚",
67
+  "Ethiopia": "埃塞俄比亚",
68
+  "Faroe Islands": "法罗群岛",
69
+  "Fiji": "斐济",
70
+  "Finland": "Finland",
71
+  "France": "法国",
72
+  "Franch Metropolitan": "法国大都会",
73
+  "Franch Guiana": "法属圭亚那",
74
+  "French Polynesia": "法属波利尼西亚",
75
+  "Gabon": "加蓬",
76
+  "Gambia": "冈比亚",
77
+  "Georgia": "格鲁吉亚",
78
+  "Germany": "德国",
79
+  "Ghana": "加纳",
80
+  "Gibraltar": "直布罗陀",
81
+  "Greece": "希腊",
82
+  "Grenada": "格林纳达",
83
+  "Guadeloupe": "瓜德罗普岛",
84
+  "Guam": "关岛",
85
+  "Guatemala": "危地马拉",
86
+  "Guernsey": "根西岛",
87
+  "Guinea-Bissau": "几内亚比绍",
88
+  "Guinea": "几内亚",
89
+  "Guyana": "圭亚那",
90
+
91
+  "Haiti": "海地",
92
+  "Honduras": "洪都拉斯",
93
+  "Hungary": "匈牙利",
94
+  "Iceland": "冰岛",
95
+  "India": "印度",
96
+  "Indonesia": "印度尼西亚",
97
+  "Iran": "伊朗",
98
+  "Iraq": "伊拉克",
99
+  "Ireland": "爱尔兰",
100
+  "Isle of Man": "马恩岛",
101
+  "Israel": "以色列",
102
+  "Italy": "意大利",
103
+  "Jamaica": "牙买加",
104
+  "Japan": "日本",
105
+  "Jersey": "泽西岛",
106
+  "Jordan": "约旦",
107
+  "Kazakhstan": "哈萨克斯坦",
108
+  "Kenya": "肯尼亚",
109
+  "Kiribati": "基里巴斯",
110
+  "Korea (South)": "韩国",
111
+  "Korea (North)": "朝鲜",
112
+  "Kuwait": "科威特",
113
+  "Kyrgyzstan": "吉尔吉斯斯坦",
114
+  "Laos": "老挝",
115
+  "Latvia": "拉脱维亚",
116
+  "Lebanon": "黎巴嫩",
117
+  "Lesotho": "莱索托",
118
+  "Liberia": "利比里亚",
119
+  "Libya": "利比亚",
120
+  "Liechtenstein": "列支敦士登",
121
+  "Lithuania": "立陶宛",
122
+  "Luxembourg": "卢森堡",
123
+
124
+  "Macedonia": "马其顿",
125
+  "Malawi": "马拉维",
126
+  "Malaysia": "马来西亚",
127
+  "Madagascar": "马达加斯加",
128
+  "Maldives": "马尔代夫",
129
+  "Mali": "马里",
130
+  "Malta": "马耳他",
131
+  "Marshall Islands": "马绍尔群岛",
132
+  "Martinique": "马提尼克岛",
133
+  "Mauritania": "毛里塔尼亚",
134
+  "Mauritius": "毛里求斯",
135
+  "Mayotte": "马约特",
136
+  "Mexico": "墨西哥",
137
+  "Micronesia": "密克罗尼西亚",
138
+  "Moldova": "摩尔多瓦",
139
+  "Monaco": "摩纳哥",
140
+  "Mongolia": "蒙古",
141
+  "Montenegro": "黑山",
142
+  "Montserrat": "蒙特塞拉特",
143
+  "Morocco": "摩洛哥",
144
+  "Mozambique": "莫桑比克",
145
+  "Myanmar": "缅甸",
146
+  "Namibia": "纳米比亚",
147
+  "Nauru": "瑙鲁",
148
+  "Nepal": "尼泊尔",
149
+  "Netherlands": "荷兰",
150
+  "New Caledonia": "新喀里多尼亚",
151
+  "New Zealand": "新西兰",
152
+  "Nicaragua": "尼加拉瓜",
153
+  "Niger": "尼日尔",
154
+  "Nigeria": "尼日利亚",
155
+  "Niue": "纽埃",
156
+  "Norfolk Island": "诺福克岛",
157
+  "Norway": "挪威",
158
+  "Oman": "阿曼",
159
+  "Pakistan": "巴基斯坦",
160
+  "Palau": "帕劳",
161
+  "Palestine": "巴勒斯坦",
162
+  "Panama": "巴拿马",
163
+  "Papua New Guinea": "巴布亚新几内亚",
164
+  "Paraguay": "巴拉圭",
165
+  "Peru": "秘鲁",
166
+  "Philippines": "菲律宾",
167
+  "Pitcairn Islands": "皮特凯恩群岛",
168
+  "Poland": "波兰",
169
+  "Portugal": "葡萄牙",
170
+  "Puerto Rico": "波多黎各",
171
+  "Qatar": "卡塔尔",
172
+  "Reunion": "留尼汪岛",
173
+  "Romania": "罗马尼亚",
174
+  "Rwanda": "卢旺达",
175
+  "Russian Federation": "俄罗斯联邦",
176
+  "Saint Helena": "圣赫勒拿",
177
+  "Saint Kitts-Nevis": "圣基茨和尼维斯",
178
+  "Saint Lucia": "圣卢西亚",
179
+  "Saint Vincent and the Grenadines": "圣文森特和格林纳丁斯",
180
+  "El Salvador": "萨尔瓦多",
181
+  "Samoa": "萨摩亚",
182
+  "San Marino": "圣马力诺",
183
+  "Sao Tome and Principe": "圣多美和普林西比",
184
+  "Saudi Arabia": "沙特阿拉伯",
185
+  "Senegal": "塞内加尔",
186
+  "Seychelles": "塞舌尔",
187
+  "Sierra Leone": "塞拉利昂",
188
+  "Singapore": "新加坡",
189
+  "Serbia": "塞尔维亚",
190
+  "Slovakia": "斯洛伐克",
191
+  "Slovenia": "斯洛文尼亚",
192
+  "Solomon Islands": "所罗门群岛",
193
+  "Somalia": "索马里",
194
+  "South Africa": "南非",
195
+  "Spain": "西班牙",
196
+  "Sri Lanka": "斯里兰卡",
197
+  "Sudan": "苏丹",
198
+  "Suriname": "苏里南",
199
+  "Swaziland": "斯威士兰",
200
+  "Sweden": "瑞典",
201
+  "Switzerland": "瑞士",
202
+  "Syria": "叙利亚",
203
+  "Tajikistan": "塔吉克斯坦",
204
+  "Tanzania": "坦桑尼亚",
205
+
206
+  "Thailand": "泰国",
207
+  "Trinidad and Tobago": "特立尼达和多巴哥",
208
+  "Timor-Leste": "东帝汶",
209
+  "Togo": "多哥",
210
+  "Tokelau": "托克劳",
211
+  "Tonga": "汤加",
212
+  "Tunisia": "突尼斯",
213
+  "Turkey": "土耳其",
214
+  "Turkmenistan": "土库曼斯坦",
215
+  "Tuvalu": "图瓦卢",
216
+  "Uganda": "乌干达",
217
+  "Ukraine": "乌克兰",
218
+  "United Arab Emirates": "阿拉伯联合酋长国",
219
+  "United Kingdom": "英国",
220
+  "United States": "美国",
221
+  "Uruguay": "乌拉圭",
222
+  "Uzbekistan": "乌兹别克斯坦",
223
+  "Vanuatu": "瓦努阿图",
224
+  "Vatican City": "梵蒂冈",
225
+  "Venezuela": "委内瑞拉",
226
+  "Vietnam": "越南",
227
+  "Wallis and Futuna": "瓦利斯群岛和富图纳群岛",
228
+  "Western Sahara": "西撒哈拉",
229
+  "Yemen": "也门",
230
+  "Yugoslavia": "南斯拉夫",
231
+  "Zambia": "赞比亚",
232
+  "Zimbabwe": "津巴布韦"
233
+}

+ 122 - 0
src/utils/flexible.js

@@ -0,0 +1,122 @@
1
+
2
+;(function(win, lib) {
3
+    var doc = win.document;
4
+    var docEl = doc.documentElement;
5
+    var metaEl = doc.querySelector('meta[name="viewport"]');
6
+    var flexibleEl = doc.querySelector('meta[name="flexible"]');
7
+    var dpr = 0;
8
+    var scale = 0;
9
+    var tid;
10
+    var flexible = lib.flexible || (lib.flexible = {});
11
+
12
+    if (metaEl) {
13
+        console.warn('将根据已有的meta标签来设置缩放比例');
14
+        var match = metaEl.getAttribute('content').match(/initial\-scale=([\d\.]+)/);
15
+        if (match) {
16
+            scale = parseFloat(match[1]);
17
+            dpr = parseInt(1 / scale);
18
+        }
19
+    } else if (flexibleEl) {
20
+        var content = flexibleEl.getAttribute('content');
21
+        if (content) {
22
+            var initialDpr = content.match(/initial\-dpr=([\d\.]+)/);
23
+            var maximumDpr = content.match(/maximum\-dpr=([\d\.]+)/);
24
+            if (initialDpr) {
25
+                dpr = parseFloat(initialDpr[1]);
26
+                scale = parseFloat((1 / dpr).toFixed(2));
27
+            }
28
+            if (maximumDpr) {
29
+                dpr = parseFloat(maximumDpr[1]);
30
+                scale = parseFloat((1 / dpr).toFixed(2));
31
+            }
32
+        }
33
+    }
34
+
35
+    if (!dpr && !scale) {
36
+        var isAndroid = win.navigator.appVersion.match(/android/gi);
37
+        var isIPhone = win.navigator.appVersion.match(/iphone/gi);
38
+        var devicePixelRatio = win.devicePixelRatio;
39
+        if (isIPhone) {
40
+            // iOS下,对于2和3的屏,用2倍的方案,其余的用1倍方案
41
+            if (devicePixelRatio >= 3 && (!dpr || dpr >= 3)) {
42
+                dpr = 3;
43
+            } else if (devicePixelRatio >= 2 && (!dpr || dpr >= 2)){
44
+                dpr = 2;
45
+            } else {
46
+                dpr = 1;
47
+            }
48
+        } else {
49
+            // 其他设备下,仍旧使用1倍的方案
50
+            dpr = 1;
51
+        }
52
+        scale = 1 / dpr;
53
+    }
54
+
55
+    docEl.setAttribute('data-dpr', dpr);
56
+    if (!metaEl) {
57
+        metaEl = doc.createElement('meta');
58
+        metaEl.setAttribute('name', 'viewport');
59
+        metaEl.setAttribute('content', 'initial-scale=' + scale + ', maximum-scale=' + scale + ', minimum-scale=' + scale + ', user-scalable=no');
60
+        if (docEl.firstElementChild) {
61
+            docEl.firstElementChild.appendChild(metaEl);
62
+        } else {
63
+            var wrap = doc.createElement('div');
64
+            wrap.appendChild(metaEl);
65
+            doc.write(wrap.innerHTML);
66
+        }
67
+    }
68
+
69
+    function refreshRem(){
70
+        var width = docEl.getBoundingClientRect().width;
71
+      console.log(width);
72
+        if (width / dpr < 400) {
73
+            width = 400 * dpr;
74
+        }else  if(width / dpr > 2560){
75
+          width = 2560 * dpr;
76
+        }
77
+
78
+        var rem = width / 24;
79
+        docEl.style.fontSize = rem + 'px';
80
+        flexible.rem = win.rem = rem;
81
+    }
82
+
83
+    win.addEventListener('resize', function() {
84
+        clearTimeout(tid);
85
+        tid = setTimeout(refreshRem, 300);
86
+    }, false);
87
+    win.addEventListener('pageshow', function(e) {
88
+        if (e.persisted) {
89
+            clearTimeout(tid);
90
+            tid = setTimeout(refreshRem, 300);
91
+        }
92
+    }, false);
93
+
94
+    if (doc.readyState === 'complete') {
95
+        doc.body.style.fontSize = 12 * dpr + 'px';
96
+    } else {
97
+        doc.addEventListener('DOMContentLoaded', function(e) {
98
+            doc.body.style.fontSize = 12 * dpr + 'px';
99
+        }, false);
100
+    }
101
+
102
+
103
+    refreshRem();
104
+
105
+    flexible.dpr = win.dpr = dpr;
106
+    flexible.refreshRem = refreshRem;
107
+    flexible.rem2px = function(d) {
108
+        var val = parseFloat(d) * this.rem;
109
+        if (typeof d === 'string' && d.match(/rem$/)) {
110
+            val += 'px';
111
+        }
112
+        return val;
113
+    }
114
+    flexible.px2rem = function(d) {
115
+        var val = parseFloat(d) / this.rem;
116
+        if (typeof d === 'string' && d.match(/px$/)) {
117
+            val += 'rem';
118
+        }
119
+        return val;
120
+    }
121
+
122
+})(window, window['lib'] || (window['lib'] = {}));

+ 13 - 0
src/views/display/cf/api/index.ts

@@ -0,0 +1,13 @@
1
+import request from "@/config/axios";
2
+import axios from "axios";
3
+
4
+export const GetXzqhJsonApi = async (params: any) => {
5
+  return await request.get({
6
+    url: `/zj/base-administrative-map/get`,
7
+    params
8
+  })
9
+}
10
+
11
+export const kqxx = async () => {
12
+  return await axios.get("/json/kqxx.json");
13
+}

+ 952 - 0
src/views/display/cf/index.vue

@@ -0,0 +1,952 @@
1
+<template>
2
+  <el-row :gutter="10">
3
+    <el-col :span="6">
4
+      <div class="kqxx_box">
5
+        <div class="box_view">
6
+          <div class="box_title">
7
+            <span>视频监控</span>
8
+          </div>
9
+          <div class="view_content">
10
+            <img src="@/assets/map/u80.png" alt="仓房图" />
11
+          </div>
12
+        </div>
13
+        <div class="box_cfxx">
14
+          <div class="box_title">
15
+            <span>仓房信息</span>
16
+          </div>
17
+          <div class="cfxx_content">
18
+            <el-row>
19
+              <el-col :span="24" class="box_content">
20
+                <span class="span_left">仓房名称:</span>
21
+                <span class="span_right" :title="formData.cfmc">{{ formData.cfmc }}</span>
22
+              </el-col>
23
+              <el-col :span="24" class="box_content">
24
+                <span class="span_left">仓廒编号:</span>
25
+                <span class="span_right" :title="formData.cfbh">{{ formData.cfbh }}</span>
26
+              </el-col>
27
+              <el-col :span="24" class="box_content">
28
+                <span class="span_left">仓房类型:</span>
29
+                <span class="span_right" :title="formData.cflx">{{ formData.cflx }}</span>
30
+              </el-col>
31
+              <el-col :span="24" class="box_content">
32
+                <span class="span_left">交付使用日期:</span>
33
+                <span class="span_right" :title="formData.jfsyrq">{{ formData.jfsyrq }}</span>
34
+              </el-col>
35
+              <el-col :span="24" class="box_content">
36
+                <span class="span_left">设计使用年限:</span>
37
+                <span class="span_right" :title="formData.sjsynx">{{ formData.sjsynx }}</span>
38
+              </el-col>
39
+              <el-col :span="24" class="box_content">
40
+                <span class="span_left">设计仓容(吨):</span>
41
+                <span class="span_right" :title="formData.sjcr">{{ formData.sjcr }}</span>
42
+              </el-col>
43
+              <el-col :span="24" class="box_content">
44
+                <span class="span_left">仓内体积(立方米):</span>
45
+                <span class="span_right" :title="formData.cntj">{{ formData.cntj }}</span>
46
+              </el-col>
47
+              <el-col :span="24" class="box_content">
48
+                <span class="span_left">仓房状态:</span>
49
+                <span class="span_right" :title="formData.cfzt">{{ formData.cfzt }}</span>
50
+              </el-col>
51
+            </el-row>
52
+          </div>
53
+        </div>
54
+      </div>
55
+    </el-col>
56
+    <el-col :span="18">
57
+      <div class="map-area">
58
+        <div class="operation-box">
59
+          <el-radio-group v-model="tabPosition" @change="tabClick" style="width: 80%">
60
+            <el-radio-button label="hwk" value="hwk">货位卡</el-radio-button>
61
+            <el-radio-button label="crkjl" value="crkjl">出入库记录</el-radio-button>
62
+            <el-radio-button label="zj" value="zj">质检</el-radio-button>
63
+            <el-radio-button label="wsdjc" value="wsdjc">粮情监测</el-radio-button>
64
+            <el-radio-button label="sy" value="sy">损溢</el-radio-button>
65
+          </el-radio-group>
66
+          <div class="changecang">
67
+            <el-button type="primary" plain class="title_btn" @click="back()">返回</el-button>
68
+          </div>
69
+        </div>
70
+        <div class="hw-rightcon">
71
+          <div v-if="tabPosition == 'hwk'">
72
+            <h3 class="hwk_title"><i></i>货位信息</h3>
73
+            <el-form class="formstyletwo" ref="form" :model="baseformhw" label-width="140px">
74
+              <el-row :gutter="30">
75
+                <!-- <el-col :span="16"> -->
76
+                <el-col :span="8">
77
+                  <el-form-item label="仓房名称">
78
+                    <el-input v-model="baseformhw.cfmc" />
79
+                  </el-form-item>
80
+                </el-col>
81
+                <el-col :span="8">
82
+                  <el-form-item label="货位名称">
83
+                    <el-input v-model="baseformhw.hwmc" />
84
+                  </el-form-item>
85
+                </el-col>
86
+                <el-col :span="8">
87
+                  <el-form-item label="保管员">
88
+                    <el-input v-model="baseformhw.bgy" />
89
+                  </el-form-item>
90
+                </el-col>
91
+                <!-- </el-col> -->
92
+                <!-- <el-col :span="8">
93
+                  <div class="img" style="width: 100%;text-align:center">
94
+                      <el-image
95
+                        style="width: 240px; height: 240px;cursor: pointer;margin-top: -28px;"
96
+                        :src="qrCodeUrl"
97
+                        fit="fill"
98
+                        @click="handleCodeShow"
99
+                      >
100
+                        <div slot="error" class="image-slot">
101
+                          <i class="el-icon-picture-outline" style="font-size: 150px"></i>
102
+                        </div>
103
+                      </el-image>
104
+                    </div>
105
+                </el-col> -->
106
+              </el-row>
107
+              <h3 class="hwk_title"><i></i>库存信息</h3>
108
+              <el-row :gutter="30">
109
+                <el-col :span="8">
110
+                  <el-form-item label="粮食品种">
111
+                    <el-input v-model="baseformhw.lspzmc" />
112
+                  </el-form-item>
113
+                </el-col>
114
+                <el-col :span="8">
115
+                  <el-form-item label="粮食等级">
116
+                    <el-input v-model="baseformhw.lsdjmc" />
117
+                  </el-form-item>
118
+                </el-col>
119
+                <el-col :span="8">
120
+                  <el-form-item label="收获年度">
121
+                    <el-input v-model="baseformhw.shnd" />
122
+                  </el-form-item>
123
+                </el-col>
124
+                <el-col :span="8">
125
+                  <el-form-item label="粮食产地">
126
+                    <el-input v-model="baseformhw.cdmc" />
127
+                  </el-form-item>
128
+                </el-col>
129
+                <el-col :span="8">
130
+                  <el-form-item label="实际数量(吨)">
131
+                    <el-input v-model="baseformhw.sjsl" />
132
+                  </el-form-item>
133
+                </el-col>
134
+                <el-col :span="8">
135
+                  <el-form-item label="计价数量(吨)">
136
+                    <el-input v-model="baseformhw.jjsl" />
137
+                  </el-form-item>
138
+                </el-col>
139
+                <el-col :span="8">
140
+                  <el-form-item label="入库时间">
141
+                    <el-input v-model="baseformhw.rcsj" />
142
+                  </el-form-item>
143
+                </el-col>
144
+                <el-col :span="8">
145
+                  <el-form-item label="保管方式">
146
+                    <el-input v-model="baseformhw.glfsmc" />
147
+                  </el-form-item>
148
+                </el-col>
149
+              </el-row>
150
+              <h3><i></i>交割信息</h3>
151
+              <el-row :gutter="30">
152
+                <el-col :span="8">
153
+                  <el-form-item label="单位名称">
154
+                    <el-input v-model="baseformhw.dwmc" />
155
+                  </el-form-item>
156
+                </el-col>
157
+                <el-col :span="8">
158
+                  <el-form-item label="社会信用统一代码">
159
+                    <el-input v-model="baseformhw.tyshxydm" />
160
+                  </el-form-item>
161
+                </el-col>
162
+                <el-col :span="8">
163
+                  <el-form-item label="合同号">
164
+                    <el-input v-model="baseformhw.hth" />
165
+                  </el-form-item>
166
+                </el-col>
167
+                <el-col :span="8">
168
+                  <el-form-item label="粮食品种">
169
+                    <el-input v-model="baseformhw.lspzmc" />
170
+                  </el-form-item>
171
+                </el-col>
172
+                <el-col :span="8">
173
+                  <el-form-item label="粮食等级">
174
+                    <el-input v-model="baseformhw.lsdjmc" />
175
+                  </el-form-item>
176
+                </el-col>
177
+                <el-col :span="8">
178
+                  <el-form-item label="交割数量(吨)">
179
+                    <el-input v-model="baseformhw.jgsl" />
180
+                  </el-form-item>
181
+                </el-col>
182
+              </el-row>
183
+            </el-form>
184
+          </div>
185
+          <div v-if="tabPosition == 'crkjl'">
186
+            <el-form :inline="true" class="formstylethree" ref="form" :model="searchform">
187
+              <el-form-item label="业务日期">
188
+                <el-date-picker
189
+                  style="width: 180px"
190
+                  @change="searchCrk"
191
+                  clearable
192
+                  v-model="searchform.ywksrq"
193
+                  type="date"
194
+                  format="yyyy-MM-dd"
195
+                  value-format="yyyy-MM-dd"
196
+                  placeholder="选择日期"
197
+                />
198
+              </el-form-item>
199
+              <el-form-item label="出入库类型">
200
+                <el-select
201
+                  style="width: 180px"
202
+                  @change="searchCrk"
203
+                  v-model="searchform.ywlx"
204
+                  placeholder="请选择"
205
+                >
206
+                  <el-option
207
+                    v-for="item in crkLxOptions"
208
+                    :key="item.value"
209
+                    :label="item.label"
210
+                    :value="item.value"
211
+                  />
212
+                </el-select>
213
+              </el-form-item>
214
+              <el-button type="primary" class="primaryBtn" @click="loadData()">查询</el-button>
215
+            </el-form>
216
+            <el-scrollbar style="height: 700px">
217
+              <div class="resettablewrap">
218
+                <el-table
219
+                  :data="crkTableData"
220
+                  style="width: 100%; overflow-x: hidden"
221
+                  :header-cell-class-name="'headerBg'"
222
+                  :row-class-name="tableRowClassName"
223
+                  @row-click="handleCkClick"
224
+                  highlight-current-row
225
+                >
226
+                  <el-table-column type="index" width="60" label="序号" align="center">
227
+                    <template #default="scope">
228
+                      {{ scope.$index + 1 }}
229
+                    </template>
230
+                  </el-table-column>
231
+                  <el-table-column prop="ywrq" label="业务时间" align="center" />
232
+                  <el-table-column prop="pzmc" label="粮食品种" align="center" />
233
+                  <el-table-column prop="lsdjmc" label="粮食等级" align="center" />
234
+                  <el-table-column prop="jz" label="净重(公斤)" align="center" />
235
+                  <el-table-column prop="jsdj" label="结算单价(元)" align="center" />
236
+                  <el-table-column prop="cch" label="车船号" align="center" />
237
+                  <el-table-column prop="cfhwmc" label="仓房货位" align="center" />
238
+                  <el-table-column prop="ywlx" label="出入库类型" align="center" />
239
+                  <el-table-column prop="zzmd" label="纸质码单(个)" align="center" />
240
+                </el-table>
241
+                <el-pagination
242
+                  @size-change="handleSizeChange"
243
+                  @current-change="handleCurrentChange"
244
+                  :page-sizes="[12, 20, 30, 40]"
245
+                  layout="->,total, sizes, prev, pager, next, jumper"
246
+                  :current-page="page.pageNum"
247
+                  :page-size="page.pageSize"
248
+                  :total="page.total"
249
+                />
250
+              </div>
251
+            </el-scrollbar>
252
+          </div>
253
+          <div v-if="tabPosition == 'zj'">
254
+            <!-- <h3><i></i>检测记录</h3> -->
255
+            <div class="resettablewrap resettablewrap-spe" style="margin-bottom: 10px">
256
+              <el-scrollbar style="height: 500px">
257
+                <el-table
258
+                  :data="zhijTableData"
259
+                  style="width: 100%; overflow-x: hidden"
260
+                  :header-cell-class-name="'headerBg'"
261
+                  :row-class-name="tableRowClassName"
262
+                  @current-change="handleJcjlChange"
263
+                >
264
+                  <el-table-column prop="jylb" label="检测类型" align="center" />
265
+                  <el-table-column prop="jysj" label="检测时间" align="center" />
266
+                  <el-table-column prop="lspzmc" label="粮食品种" align="center">
267
+                    <template #default="scope">
268
+                      <span>{{ scope.row.lspzmc ? scope.row.lspzmc : '-' }}</span>
269
+                    </template>
270
+                  </el-table-column>
271
+                  <el-table-column prop="lsdjmc" label="粮食等级" align="center" />
272
+                  <el-table-column prop="jyr" label="检测人员姓名" align="center" />
273
+                  <el-table-column
274
+                    prop="zjjg"
275
+                    label="食品安全指标是否合格"
276
+                    align="center"
277
+                    width="180"
278
+                  >
279
+                    <template #default="scope">
280
+                      <span>{{ scope.row.zjjg ? scope.row.zjjg : '-' }}</span>
281
+                    </template>
282
+                  </el-table-column>
283
+                  <el-table-column prop="zzmd" label="纸质码单" align="center" />
284
+                </el-table>
285
+              </el-scrollbar>
286
+            </div>
287
+          </div>
288
+          <div v-if="tabPosition == 'wsdjc'">
289
+            <el-scrollbar style="height: 700px">
290
+              <div class="radiobox">
291
+                <el-radio-group @change="zhijianInfo" v-model="wensdRadio">
292
+                  <el-radio-button label="01">列表信息</el-radio-button>
293
+                  <el-radio-button label="02">图文信息</el-radio-button>
294
+                </el-radio-group>
295
+              </div>
296
+              <div v-if="wensdRadio == '01'">
297
+                <el-form class="formstyletwo" ref="form" :model="wensdform" label-width="200px">
298
+                  <el-row :gutter="30">
299
+                    <el-col :span="8">
300
+                      <el-form-item label="仓廒名称">
301
+                        <el-input v-model="wensdform.camc" />
302
+                      </el-form-item>
303
+                    </el-col>
304
+                    <el-col :span="8">
305
+                      <el-form-item label="粮食品种">
306
+                        <el-input v-model="wensdform.lspzmc" />
307
+                      </el-form-item>
308
+                    </el-col>
309
+                    <el-col :span="8">
310
+                      <el-form-item label="粮食性质">
311
+                        <el-input v-model="wensdform.lsxzmc" />
312
+                      </el-form-item>
313
+                    </el-col>
314
+                    <el-col :span="8">
315
+                      <el-form-item label="粮食等级">
316
+                        <el-input v-model="wensdform.lsdjmc" />
317
+                      </el-form-item>
318
+                    </el-col>
319
+                    <el-col :span="8">
320
+                      <el-form-item label="粮食数量(吨)">
321
+                        <el-input v-model="wensdform.kcsl" />
322
+                      </el-form-item>
323
+                    </el-col>
324
+                    <el-col :span="8">
325
+                      <el-form-item label="仓房外温(℃)">
326
+                        <el-input v-model="wensdform.cfww" />
327
+                      </el-form-item>
328
+                    </el-col>
329
+                    <el-col :span="8">
330
+                      <el-form-item label="仓房外湿(%)">
331
+                        <el-input v-model="wensdform.cfws" />
332
+                      </el-form-item>
333
+                    </el-col>
334
+                    <el-col :span="8">
335
+                      <el-form-item label="仓房内温(℃)">
336
+                        <el-input v-model="wensdform.cfnw" />
337
+                      </el-form-item>
338
+                    </el-col>
339
+                    <el-col :span="8">
340
+                      <el-form-item label="仓房内湿(%)">
341
+                        <el-input v-model="wensdform.cfns" />
342
+                      </el-form-item>
343
+                    </el-col>
344
+                    <el-col :span="8">
345
+                      <el-form-item label="粮食最高温(℃)">
346
+                        <el-input v-model="wensdform.lszgw" />
347
+                      </el-form-item>
348
+                    </el-col>
349
+                    <el-col :span="8">
350
+                      <el-form-item label="粮食最低温(℃)">
351
+                        <el-input v-model="wensdform.lszdw" />
352
+                      </el-form-item>
353
+                    </el-col>
354
+                    <el-col :span="8">
355
+                      <el-form-item label="粮食平均温(℃)">
356
+                        <el-input v-model="wensdform.lspjw" />
357
+                      </el-form-item>
358
+                    </el-col>
359
+                  </el-row>
360
+                </el-form>
361
+                <div>
362
+                  <el-scrollbar style="height: 500px">
363
+                    <div
364
+                      class="resettablewrap"
365
+                      v-for="(cengitem, cengindex) in wensdform.wsdjhList"
366
+                      :key="cengindex"
367
+                    >
368
+                      <h3><i></i>{{ cengitem.cs }}</h3>
369
+                      <el-table
370
+                        :data="cengitem.hangList"
371
+                        style="width: 100%; margin-bottom: 20px; overflow-x: hidden"
372
+                        :header-cell-class-name="'headerBg'"
373
+                        :row-class-name="tableRowClassName"
374
+                      >
375
+                        <el-table-column prop="xulie" label="列号行号" align="center" />
376
+                        <el-table-column
377
+                          v-for="(childItem, childIndex) in cengitem.lie"
378
+                          :property="'lie' + childItem"
379
+                          :key="childIndex"
380
+                          :label="childItem + '列'"
381
+                          align="center"
382
+                        />
383
+                      </el-table>
384
+                    </div>
385
+                  </el-scrollbar>
386
+                </div>
387
+              </div>
388
+              <div v-else>
389
+                <div class="pfcbox">
390
+                  <!-- 遍历行,加上左间距 -->
391
+                  <div
392
+                    v-for="(hangitem, hangindex) in wensdform.wsdjhList[0].hangList.length"
393
+                    :key="hangindex"
394
+                    class="pfc-div"
395
+                    :style="{
396
+                      margin: `${hangindex * 40}px 0 0 ${hangindex * 30}px`
397
+                    }"
398
+                  >
399
+                    <ul class="pfc-ul">
400
+                      <!-- 遍历每行下面的列,展示柱子 -->
401
+                      <li v-for="(lieItem, lieIndex) in wensdform.wsdjhList[0].lie" :key="lieIndex">
402
+                        <div class="zhut">
403
+                          <!-- 遍历层,展示每层的数据 -->
404
+                          <i v-for="(cengItem, cengIndex) in wensdform.wsdjhList" :key="cengIndex">
405
+                            {{ cengItem.hangList[hangindex][`lie${lieIndex + 1}`] }}
406
+                          </i>
407
+                        </div>
408
+                      </li>
409
+                    </ul>
410
+                  </div>
411
+                </div>
412
+                <!-- <img src="../../assets/images/3Dcs1.png" style="width:100%"/> -->
413
+              </div>
414
+            </el-scrollbar>
415
+          </div>
416
+          <div v-if="tabPosition == 'sy'">
417
+            <el-scrollbar style="height: 700px">
418
+              <div class="resettablewrap">
419
+                <el-table
420
+                  :data="crkTableDataSy"
421
+                  :header-cell-class-name="'headerBg'"
422
+                  :row-class-name="tableRowClassName"
423
+                  highlight-current-row
424
+                >
425
+                  <!-- <el-table-column
426
+                      type="index"
427
+                      width="60"
428
+                      label="序号"
429
+                      align="center"
430
+                    >
431
+                      <template slot-scope="scope">
432
+                        {{ scope.$index + 1 }}
433
+                      </template>
434
+                    </el-table-column> -->
435
+                  <el-table-column prop="cksj" label="出库时间" width="120" align="center">
436
+                    <template #default="scope">
437
+                      {{ scope.row.cksj ? scope.row.cksj.slice(0, 10) : '' }}
438
+                    </template>
439
+                  </el-table-column>
440
+                  <el-table-column prop="rkjz" label="入库净重" align="center" />
441
+                  <el-table-column prop="rksf" label="入库水分" align="center" />
442
+                  <el-table-column prop="rkzz" label="入库杂质" align="center" />
443
+                  <el-table-column prop="ckjz" label="出库净重" align="center" />
444
+                  <el-table-column prop="cksf" label="出库水分" align="center" />
445
+                  <el-table-column prop="ckzz" label="出库杂质" align="center" />
446
+                  <el-table-column prop="sysfzc" label="损溢是否正常" align="center" width="120" />
447
+                  <el-table-column prop="qzszkl" label="水杂减量" align="center" />
448
+                  <el-table-column
449
+                    prop="qzzrshde"
450
+                    label="自然损耗定额"
451
+                    width="120"
452
+                    align="center"
453
+                  />
454
+                  <el-table-column prop="chsl" label="超耗数量" align="center" />
455
+                  <el-table-column prop="jzsysl" label="损溢数量" align="center" />
456
+                  <el-table-column
457
+                    prop="syyy"
458
+                    label="损溢原因"
459
+                    align="center"
460
+                    show-overflow-tooltip
461
+                  />
462
+                </el-table>
463
+                <el-pagination
464
+                  @size-change="handleSizeChangeSy"
465
+                  @current-change="handleCurrentChangeSy"
466
+                  :page-sizes="[12, 20, 30, 40]"
467
+                  layout="->,total, sizes, prev, pager, next, jumper"
468
+                  :current-page="pageSy.pageNum"
469
+                  :page-size="pageSy.pageSize"
470
+                  :total="pageSy.total"
471
+                />
472
+              </div>
473
+            </el-scrollbar>
474
+          </div>
475
+        </div>
476
+      </div>
477
+    </el-col>
478
+  </el-row>
479
+</template>
480
+
481
+<script lang="ts" setup>
482
+import * as Api from './api'
483
+
484
+defineOptions({ name: 'DisplayCf' })
485
+
486
+const router = useRouter() // 路由对象
487
+const tableData = ref([])
488
+const cangName = ref('')
489
+const wensdRadio = ref('01')
490
+const crkTableData = ref([])
491
+const crkTableDataSy = ref([])
492
+const zhijTableData = ref([
493
+  {
494
+    jylb: '月度检测',
495
+    jysj: '2024-8-9',
496
+    lspzmc: '小麦',
497
+    lsdjmc: '一等',
498
+    jyr: '张三',
499
+    zjjg: '是',
500
+    zzmd: '0'
501
+  },
502
+  {
503
+    jylb: '3月普检',
504
+    jysj: '2024-3-8',
505
+    lspzmc: '小麦',
506
+    lsdjmc: '一等',
507
+    jyr: '张三',
508
+    zjjg: '是',
509
+    zzmd: '5'
510
+  },
511
+  {
512
+    jylb: '月度检测',
513
+    jysj: '2024-4-5',
514
+    lspzmc: '小麦',
515
+    lsdjmc: '一等',
516
+    jyr: '张三',
517
+    zjjg: '是',
518
+    zzmd: '6'
519
+  },
520
+  {
521
+    jylb: '月度检测',
522
+    jysj: '2024-5-6',
523
+    lspzmc: '小麦',
524
+    lsdjmc: '一等',
525
+    jyr: '张三',
526
+    zjjg: '是',
527
+    zzmd: '4'
528
+  }
529
+])
530
+const tabPosition = ref('hwk')
531
+const formData = ref({
532
+  cfmc: '6-1仓',
533
+  cfbh: '91120000592925399B',
534
+  cflx: '平房仓',
535
+  jfsyrq: '1989/3/25',
536
+  sjsynx: '50',
537
+  sjcr: '50',
538
+  cntj: '50',
539
+  cfzt: '封仓'
540
+})
541
+const baseformhw = ref({
542
+  cfmc: '利达2仓库',
543
+  hwmc: '1货位',
544
+  bgy: '张三',
545
+
546
+  lspzmc: '小麦',
547
+  lsdjmc: '一等',
548
+  shnd: '2023',
549
+  cdmc: '河南',
550
+  sjsl: '2000',
551
+  rcsj: '2024-5-5',
552
+  glfsmc: 'xx',
553
+
554
+  dwmc: 'xx',
555
+  tyshxydm: 'xx',
556
+  hth: 'xx',
557
+  jgsl: 'xx'
558
+})
559
+const wensdform = ref({
560
+  camc: '利达2仓库',
561
+  hwmc: '1货位',
562
+  bgy: '张三',
563
+
564
+  lspzmc: '小麦',
565
+  lsdjmc: '一等',
566
+  lsxzmc: '商品粮',
567
+  kcsl: '2000',
568
+  cfww: '17',
569
+  cfws: '5',
570
+  cfnw: '17',
571
+  cfns: '5',
572
+  lszgw: '17',
573
+  lszdw: '17',
574
+  lspjw: '17',
575
+
576
+  wsdjhList: [
577
+    {
578
+      hangList: []
579
+    }
580
+  ]
581
+})
582
+const searchform = ref({
583
+  ywksrq: '',
584
+  ywlx: ''
585
+})
586
+const crkLxOptions = ref([
587
+  {
588
+    value: '2',
589
+    label: '出库记录'
590
+  },
591
+  {
592
+    value: '1',
593
+    label: '入库记录'
594
+  }
595
+])
596
+//货位
597
+const page = ref({
598
+  pageNum: 1,
599
+  pageSize: 12,
600
+  total: 0
601
+})
602
+//损溢
603
+const pageSy = ref({
604
+  pageNum: 1,
605
+  pageSize: 12,
606
+  total: 0
607
+})
608
+
609
+// 表格
610
+const loadData = async () => {
611
+  // let res: any
612
+  // res = await Api.kqxx()
613
+  // tableData.value = res.data.data
614
+}
615
+// 列表点击
616
+const tabClick = () => {
617
+  // tableRef.value.refresh(true)
618
+}
619
+// 出入库列表
620
+const searchCrk = () => {
621
+  // let postData = {
622
+  //   hwdm: cangName.value,
623
+  //   pageNum: page.value.pageNum,
624
+  //   pageSize: page.value.pageSize,
625
+  //   ...searchform,
626
+  // };
627
+  // queryInAndOutList(postData).then((res) => {
628
+  //   crkTableData = res.data.list;
629
+  //   page.total = res.data.total;
630
+  // });
631
+}
632
+const searchCrkSy = () => {
633
+  // let postData = {
634
+  //   hwdm: cangName,
635
+  //   pageNum: pageSy.pageNum,
636
+  //   pageSize: pageSy.pageSize
637
+  // };
638
+  // querySydList(postData).then((res) => {
639
+  //   crkTableDataSy = res.data.list;
640
+  //   pageSy.total = res.data.total;
641
+  // });
642
+}
643
+const handleSizeChange = (val: any) => {
644
+  page.value.pageSize = val
645
+  searchCrk()
646
+  console.log(`每页 ${val} 条`)
647
+}
648
+const handleCurrentChange = (val: any) => {
649
+  page.value.pageNum = val
650
+  searchCrk()
651
+  console.log(`当前页: ${val}`)
652
+}
653
+const handleSizeChangeSy = (val: any) => {
654
+  pageSy.value.pageSize = val
655
+  searchCrkSy()
656
+  console.log(`每页 ${val} 条`)
657
+}
658
+const handleCurrentChangeSy = (val: any) => {
659
+  pageSy.value.pageNum = val
660
+  searchCrkSy()
661
+  console.log(`当前页: ${val}`)
662
+}
663
+// 返回
664
+const back = () => {
665
+  router.push('ksh')
666
+}
667
+// 质检
668
+const handleJcjlChange = () => {
669
+  // router.push('ksh')
670
+}
671
+// 出入库选择
672
+const handleCkClick = () => {
673
+  // router.push('ksh')
674
+}
675
+// 粮情检测
676
+const zhijianInfo = () => {
677
+  // router.push('ksh')
678
+}
679
+//隔行变色
680
+const tableRowClassName = ({ row, rowIndex }) => {
681
+  if (rowIndex % 2 == 1) {
682
+    return 'two-row'
683
+  } else {
684
+    return 'one-row'
685
+  }
686
+}
687
+
688
+onMounted(() => {
689
+  // loadData()
690
+})
691
+</script>
692
+
693
+<style scoped lang="scss">
694
+.kqxx_box {
695
+  width: 100%;
696
+  height: 85vh;
697
+  // background: pink;
698
+  padding: 10px;
699
+}
700
+.kqxx_box .box_title {
701
+  font-size: 20px;
702
+  font-weight: 700;
703
+  margin-left: 5px;
704
+  margin-bottom: 5px;
705
+}
706
+.kqxx_box .box_view {
707
+  width: 100%;
708
+  height: 35%;
709
+}
710
+.kqxx_box .box_cfxx {
711
+  width: 100%;
712
+  height: 65%;
713
+}
714
+.kqxx_box .box_view img {
715
+  width: 100%;
716
+  height: 100%;
717
+}
718
+
719
+.map-area {
720
+  margin-top: 10px;
721
+  height: 100%;
722
+  background: #e2e8e976;
723
+}
724
+
725
+.cfxx_content .box_content {
726
+  display: flex;
727
+  padding-right: 12px;
728
+  /* justify-content: space-between; */
729
+}
730
+.cfxx_content .box_content span {
731
+  height: 35px;
732
+  line-height: 35px;
733
+  margin-top: 10px;
734
+  font-size: 18px;
735
+  overflow: hidden;
736
+}
737
+.cfxx_content .box_content .span_left {
738
+  // background: url('../../../../assets/statistics/lcfb/bg-srk.png') no-repeat;
739
+  // background-size: 100% 100%;
740
+  // width: 140px;
741
+  color: #000000;
742
+  padding-left: 10px;
743
+}
744
+.cfxx_content .box_content .span_right {
745
+  flex: 1;
746
+  margin-left: 10px;
747
+  // width: 100%;
748
+  border-radius: 9px;
749
+  background: #cccccc;
750
+  color: #302f2b;
751
+  padding-left: 10px;
752
+}
753
+</style>
754
+<style lang="scss">
755
+.operation-box {
756
+  position: relative;
757
+  margin: 20px;
758
+  .el-radio-button {
759
+    margin-right: 10px;
760
+    margin-bottom: 10px;
761
+  }
762
+  .el-radio-button__inner {
763
+    background: linear-gradient(to bottom, #8ba3e4 25%, #628ff1 50%, #7a9fee 100%);
764
+    color: #292b2f;
765
+    padding: 10px 40px;
766
+    border: 1px solid #5286ee;
767
+    border-radius: 5px;
768
+    font-size: 16px;
769
+  }
770
+  .el-radio-button__orig-radio:checked + .el-radio-button__inner {
771
+    background: linear-gradient(to bottom, #204385 25%, #4873c1 50%, #4873c1 100%);
772
+    color: #ffffff;
773
+    border-color: #679bd3;
774
+  }
775
+  .el-radio-button:first-child .el-radio-button__inner,
776
+  .el-radio-button:last-child .el-radio-button__inner {
777
+    border-radius: 5px;
778
+  }
779
+  .changecang {
780
+    position: absolute;
781
+    right: 0px;
782
+    top: 0px;
783
+    .el-input__inner {
784
+      font-size: 18px;
785
+      border: 1px solid #4187b5;
786
+      color: #ffffff;
787
+      background: linear-gradient(
788
+        rgba(13, 69, 121, 0.3) 0%,
789
+        rgba(22, 37, 73, 0.3) 50%,
790
+        rgba(13, 69, 121, 0.3) 100%
791
+      );
792
+      box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
793
+    }
794
+  }
795
+}
796
+.hw-rightcon {
797
+  margin: 0px 20px;
798
+  h3 {
799
+    background: #d6dff2;
800
+    // font-size: 18px;
801
+    height: 36px;
802
+    // line-height: 30px;
803
+    padding: 5px 0;
804
+    font-size: 20px;
805
+    font-weight: bold;
806
+    margin: 0px 0px 30px;
807
+    i {
808
+      float: left;
809
+      width: 18px;
810
+      height: 5px;
811
+      background: #ecbd29;
812
+      margin: 12px 10px 0 0;
813
+    }
814
+  }
815
+  .formstyletwo .el-form-item {
816
+    margin-bottom: 30px;
817
+  }
818
+  .formstyletwo .el-input {
819
+    font-size: 16px;
820
+  }
821
+  .primaryBtn {
822
+    margin-bottom: 18px;
823
+  }
824
+
825
+  .radiobox {
826
+    margin-bottom: 20px;
827
+    .el-radio {
828
+      color: #9dc0d0;
829
+      font-size: 18px;
830
+    }
831
+    .el-radio__inner {
832
+      background: #415078;
833
+      border-color: #869cb9;
834
+    }
835
+  }
836
+}
837
+.pfcbox {
838
+  width: 800px;
839
+  position: relative;
840
+}
841
+.pfc-div {
842
+  position: absolute;
843
+  width: 100%;
844
+  height: 200px;
845
+}
846
+.pfc-ul {
847
+  display: flex;
848
+  justify-content: space-between;
849
+  height: 100%;
850
+  .zhut {
851
+    background: #68b3ef;
852
+    border: 2px solid #284a9b;
853
+    width: 6px;
854
+    height: 100%;
855
+    border-radius: 10px;
856
+    position: relative;
857
+    display: flex;
858
+    flex-direction: column;
859
+    justify-content: space-between;
860
+    i {
861
+      margin-left: 13px;
862
+      font-style: normal;
863
+    }
864
+  }
865
+}
866
+// .one-row:hover > td {
867
+//   background-color: transparent !important;
868
+// }
869
+// .two-row:hover > td {
870
+//   background-color: transparent !important;
871
+// }
872
+// .one-row {
873
+//   background: #1c2e5c;
874
+//   color: #000;
875
+// }
876
+// .two-row {
877
+//   background: #1c3362;
878
+//   color: #000;
879
+// }
880
+// .two-row td.el-table__cell {
881
+//   border-top: 1px solid #345c87;
882
+//   border-bottom: 1px solid #345c87;
883
+// }
884
+// .two-row td.el-table__cell:first-child {
885
+//   border-left: 1px solid #345c87;
886
+//   padding: 0px;
887
+//   // border-radius: 10px 0 0 10px;
888
+// }
889
+// .two-row td.el-table__cell:last-child {
890
+//   border-right: 1px solid #345c87;
891
+//   // border-radius: 0 10px 10px 0;
892
+// }
893
+
894
+.resettablewrap2 {
895
+  .el-table {
896
+    thead tr {
897
+      background: url(../../assets/map/tableheader2.png) 0 0 no-repeat #1b2b56 !important;
898
+      background-size: 100% 100% !important;
899
+      height: 42px;
900
+      width: 100%;
901
+      color: #accbf6;
902
+      // font-size: 18px;
903
+    }
904
+    th.el-table__cell {
905
+      background-color: transparent !important;
906
+    }
907
+    .one-row:hover > td {
908
+      background-color: transparent !important;
909
+    }
910
+    .two-row:hover > td {
911
+      background-color: transparent !important;
912
+    }
913
+    .one-row {
914
+      background: #1c2e5c;
915
+      color: #fff;
916
+    }
917
+    .two-row {
918
+      background: #1c3362;
919
+      color: #fff;
920
+    }
921
+    .two-row td.el-table__cell {
922
+      border-top: 1px solid #345c87;
923
+      border-bottom: 1px solid #345c87;
924
+    }
925
+    .two-row td.el-table__cell:first-child {
926
+      border-left: 1px solid #345c87;
927
+      padding: 0px;
928
+      // border-radius: 10px 0 0 10px;
929
+    }
930
+    .two-row td.el-table__cell:last-child {
931
+      border-right: 1px solid #345c87;
932
+      // border-radius: 0 10px 10px 0;
933
+    }
934
+    td.el-table__cell:first-child div {
935
+      border-left: 2px solid #47a7dd;
936
+    }
937
+    td.el-table__cell:last-child div {
938
+      border-right: 2px solid #47a7dd;
939
+    }
940
+    td.el-table__cell,
941
+    th.el-table__cell.is-leaf {
942
+      border: 0px;
943
+      // font-size: 16px;
944
+    }
945
+    .el-table--border:after,
946
+    .el-table--group:after,
947
+    .el-table:before {
948
+      background-color: transparent;
949
+    }
950
+  }
951
+}
952
+</style>

+ 13 - 0
src/views/display/kq/api/index.ts

@@ -0,0 +1,13 @@
1
+import request from "@/config/axios";
2
+import axios from "axios";
3
+
4
+export const GetXzqhJsonApi = async (params: any) => {
5
+  return await request.get({
6
+    url: `/zj/base-administrative-map/get`,
7
+    params
8
+  })
9
+}
10
+
11
+export const kqxx = async () => {
12
+  return await axios.get("/json/kqxx.json");
13
+}

+ 243 - 0
src/views/display/kq/index.vue

@@ -0,0 +1,243 @@
1
+<template>
2
+  <el-row :gutter="10">
3
+    <el-col :span="5">
4
+      <div class="kqxx_box">
5
+        <div class="box_title">
6
+          <span>仓房列表</span>
7
+        </div>
8
+        <div class="box_table">
9
+          <el-table
10
+            :highlight-current-row="false"
11
+            class="eltable"
12
+            stripe
13
+            :header-cell-style="{ background: 'transparent' }"
14
+            :data="tableData"
15
+            style="width: 100%; height: 100%"
16
+            height="100%"
17
+            @row-click="rowClick"
18
+          >
19
+            <el-table-column prop="cfmc" align="center" label="仓房名称" />
20
+            <el-table-column prop="kcsl" align="center" label="存储量(吨)" />
21
+            <el-table-column prop="jgc" align="center" label="交割仓">
22
+              <template #default="scope">
23
+                <span>{{ scope.row.kcsl > 1000 ? '是' : '否' }}</span>
24
+              </template>
25
+            </el-table-column>
26
+          </el-table>
27
+        </div>
28
+      </div>
29
+    </el-col>
30
+    <el-col :span="13">
31
+      <div class="map-area">
32
+        <div class="map_top">
33
+          <div class="kqxx_title">
34
+            <span>库区信息</span>
35
+            <el-button type="primary" plain class="title_btn" @click="back()">返回</el-button>
36
+          </div>
37
+          <div class="kqxx_content">
38
+            <el-row>
39
+              <el-col :span="12" class="box_content">
40
+                <span class="span_left">库区名称:</span>
41
+                <span class="span_right" :title="formData.kqmc">{{ formData.kqmc }}</span>
42
+              </el-col>
43
+              <el-col :span="12" class="box_content">
44
+                <span class="span_left">库区编码:</span>
45
+                <span class="span_right" :title="formData.kqmc">{{ formData.kqbm }}</span>
46
+              </el-col>
47
+            </el-row>
48
+            <el-row>
49
+              <el-col :span="12" class="box_content">
50
+                <span class="span_left">单位名称:</span>
51
+                <span class="span_right" :title="formData.dwmc">{{ formData.dwmc }}</span>
52
+              </el-col>
53
+              <el-col :span="12" class="box_content">
54
+                <span class="span_left" style="width:310px">统一社会信用代码:</span>
55
+                <span class="span_right" :title="formData.tyshxydm">{{ formData.tyshxydm }}</span>
56
+              </el-col>
57
+            </el-row>
58
+            <el-row>
59
+              <el-col :span="12" class="box_content">
60
+                <span class="span_left">仓房数量:</span>
61
+                <span class="span_right" :title="formData.cfs">{{ formData.cfs }}</span>
62
+              </el-col>
63
+              <el-col :span="12" class="box_content">
64
+                <span class="span_left">油罐数量:</span>
65
+                <span class="span_right" :title="formData.ygs">{{ formData.ygs }}</span>
66
+              </el-col>
67
+            </el-row>
68
+            <el-row>
69
+              <el-col :span="12" class="box_content">
70
+                <span class="span_left">设计仓容:</span>
71
+                <span class="span_right" :title="formData.sjcr">{{ formData.sjcr }}</span>
72
+              </el-col>
73
+              <el-col :span="12" class="box_content">
74
+                <span class="span_left">财务情况:</span>
75
+                <span class="span_right">
76
+                  <el-button type="primary" link class="" >详情</el-button>
77
+                </span>
78
+              </el-col>
79
+            </el-row>
80
+          </div>
81
+        </div>
82
+        <div class="map_bottom">
83
+          <div class="kqxx_title">
84
+            <span>{{ '天津利达粮油储运库区' }}平面图</span>
85
+            <el-button type="primary" plain class="title_btn" @click="dialogVisible = true">视频监控</el-button>
86
+          </div>
87
+          <div class="img_content">
88
+            <img src="@/assets/map/u92.png" alt="平面图" />
89
+          </div>
90
+        </div>
91
+      </div>
92
+    </el-col>
93
+    <el-col :span="6">
94
+      <Cbkc />
95
+    </el-col>
96
+  </el-row>
97
+    <el-dialog title="视频列表" v-model="dialogVisible" width="1000px">
98
+      
99
+      <el-row style="height: 600px">
100
+        <el-col :span="4" style="border-right: 1px solid #cccccc">
101
+          摄像头
102
+        </el-col>
103
+        <el-col :span="20">
104
+          <div class="view_box">
105
+            <div class="view_item">1</div>
106
+            <div class="view_item">2</div>
107
+            <div class="view_item">3</div>
108
+            <div class="view_item">4</div>
109
+          </div>
110
+        </el-col>
111
+      </el-row>
112
+    </el-dialog>
113
+</template>
114
+
115
+<script lang="ts" setup>
116
+import Cbkc from '@/views/display/ksh/compontent/cbkc.vue'
117
+import * as Api from './api'
118
+
119
+defineOptions({ name: 'DisplayKq' })
120
+
121
+const router = useRouter() // 路由对象
122
+const dialogVisible = ref(false)
123
+const tableData = ref([])
124
+const formData = ref({
125
+  kqmc: '天津利达粮油储运',
126
+  kqbm: '100011',
127
+  dwmc: '天津利达粮油有限公司',
128
+  tyshxydm: '91120000592925399B',
129
+  cfs: '151',
130
+  ygs: '16',
131
+  sjcr: '1500'
132
+})
133
+
134
+// 表格
135
+const loadData = async () => {
136
+  let res: any
137
+  res = await Api.kqxx()
138
+  tableData.value = res.data.data
139
+}
140
+// 列表点击
141
+const rowClick = () => {
142
+  // tableRef.value.refresh(true)
143
+}
144
+// 返回
145
+const back = () => {
146
+  router.push("ksh")
147
+}
148
+
149
+onMounted(() => {
150
+  loadData()
151
+})
152
+</script>
153
+
154
+<style scoped lang="scss">
155
+.kqxx_box {
156
+  width: 100%;
157
+  height: 80vh;
158
+  // background: pink;
159
+  padding: 10px;
160
+}
161
+.kqxx_box .box_title {
162
+  font-size: 20px;
163
+  font-weight: 700;
164
+  margin-left: 15px;
165
+  margin-bottom: 15px;
166
+}
167
+.kqxx_box .box_table {
168
+  width: 100%;
169
+  height: 100%;
170
+}
171
+
172
+.map-area {
173
+  margin-top: 10px;
174
+  height: 100%;
175
+  background: #e2e8e976;
176
+}
177
+.map-area .map_top {
178
+  width: 100%;
179
+  height: 34%;
180
+}
181
+.map-area .map_bottom {
182
+  width: 100%;
183
+  height: 66%;
184
+}
185
+.map-area .kqxx_title {
186
+  font-size: 22px;
187
+  font-weight: 700;
188
+  display: flex;
189
+  justify-content: space-between;
190
+}
191
+.map-area .kqxx_title .title_btn {
192
+  width: 120px;
193
+}
194
+.map-area .img_content {
195
+  // width: 100%;
196
+  display: flex;
197
+  justify-content: center;
198
+}
199
+.map-area .img_content img {
200
+  width: 90%;
201
+  // height: 50%;
202
+}
203
+
204
+.kqxx_content .box_content {
205
+  display: flex;
206
+  padding-right: 12px;
207
+  /* justify-content: space-between; */
208
+}
209
+.kqxx_content .box_content span {
210
+  height: 35px;
211
+  line-height: 35px;
212
+  margin-top: 10px;
213
+  font-size: 18px;
214
+  overflow: hidden;
215
+}
216
+.kqxx_content .box_content .span_left {
217
+  // background: url('../../../../assets/statistics/lcfb/bg-srk.png') no-repeat;
218
+  // background-size: 100% 100%;
219
+  width: 140px;
220
+  color: #000000;
221
+  padding-left: 10px;
222
+}
223
+.kqxx_content .box_content .span_right {
224
+  margin-left: 10px;
225
+  width: 100%;
226
+  border-radius: 9px;
227
+  background: #cccccc;
228
+  color: #302f2b;
229
+  padding-left: 10px;
230
+}
231
+.view_box{
232
+  display: flex;
233
+  justify-content: space-around;
234
+  flex-wrap: wrap;
235
+  width: 100%;
236
+  height: 100%;
237
+}
238
+.view_box .view_item{
239
+  width: 45%;
240
+  height: 48%;
241
+  background: #cccccc;
242
+}
243
+</style>

+ 104 - 0
src/views/display/ksh/api/index.ts

@@ -0,0 +1,104 @@
1
+import request from "@/config/axios";
2
+import axios from "axios";
3
+
4
+export const GetLoginUserXzqhApi = async () => {
5
+  return await request.get({
6
+    url: `/system/dept/get_login_user_xzqh`,
7
+  })
8
+}
9
+export const getXzqhByCodeApi = async (params: any) => {
10
+  return await request.get({
11
+    url: `/zj/base-administrative-division/get-xzqh-by-code`,
12
+    params
13
+  })
14
+}
15
+
16
+export const getXzqhByCodePlueApi = async (params: any) => {
17
+  return await request.get({
18
+    url: `/zj/base-administrative-division/get-xzqh-by-code-plus?code=${params}`,
19
+
20
+  })
21
+}
22
+export const GetXzqhJsonApi = async (params: any) => {
23
+  return await request.get({
24
+    url: `/zj/base-administrative-map/get`,
25
+    params
26
+  })
27
+}
28
+
29
+export const cbkcApi1 = async () => {
30
+  return await axios.get("/json/cbkclx1.json");
31
+}
32
+export const cbkcApi2 = async () => {
33
+  return await axios.get("/json/cbkclx2.json");
34
+}
35
+
36
+
37
+export const InstitutionalInformation_Api = async (data) => {
38
+  // const response = await request.post({
39
+  //   url: `/zj/screen/result_analysis_screen_jgxx`,
40
+  //   data
41
+  // });
42
+  // 请求本地
43
+  const responseData = await axios.get("/json/text.json");
44
+  const response = responseData.data.data;
45
+  
46
+  if (response.totalData.xzqhName === '全国' || !data.shengXzqhId) {
47
+    if (response.barCharts != null) {
48
+      response.barCharts.forEach(chart => {
49
+        chart.categoriesData.forEach(category => {
50
+          if (category.name == '黑龙江省') {
51
+            category.name = '黑龙江';
52
+          } else if (category.name == '新疆兵团') {
53
+            category.name = '兵团';
54
+          } else {
55
+            category.name = category.name.substring(0, 2);
56
+          }
57
+        });
58
+      });
59
+    }
60
+
61
+    try {
62
+      response.pieCharts.forEach((item, index) => {
63
+        item.pieData = item.pieData.filter(item2 => item2.name != '机构总数')
64
+        item.pieData = item.pieData.filter(item2 => item2.name != '人员总数')
65
+        item.pieData = item.pieData.filter(item2 => item2.name != '总数量')
66
+        console.log(item.pieData, 'aaaa')
67
+      })
68
+
69
+    } catch (err) {
70
+
71
+    }
72
+
73
+    // response.pieCharts.forEach((item,index)=>{
74
+    //   item.pieData.forEach((chart,index2)=>{
75
+    //      if(chart.name.indexOf('总数')!=-1){
76
+    //        item.pieData.splice(index2,1)
77
+    //      }
78
+    //   })
79
+    // })
80
+    // response.pieCharts.forEach(item => {
81
+    //   for (let index2 = item.pieData.length - 1; index2 >= 0; index2--) {
82
+    //     if (item.pieData[index2].name.indexOf('总数') !== -1) {
83
+    //       item.pieData.splice(index2, 1);
84
+    //     }
85
+    //   }
86
+    // });
87
+    console.log(response, '处理完的数据')
88
+
89
+    // response.barChartPluses.forEach(chart => {
90
+    //   chart.categoriesData.forEach(category => {
91
+    //     category.name = (category.name === '黑龙江' || category.name === '新疆兵团') ? category.name : category.name.substring(0, 2);
92
+    //   });
93
+    // });
94
+  }
95
+  // const response2 = await request.post({
96
+  //   url: `/zj/screen/result_analysis_screen_jgxx`, data: {...data, jglb: null}
97
+  // });
98
+  const response2 = await axios.get("/json/text.json");
99
+  response.totalData = response2.data.data.totalData;
100
+  
101
+  return response;
102
+
103
+
104
+}

+ 20 - 11
src/views/display/ksh/compontent/cbkc.vue

@@ -1,6 +1,9 @@
1 1
 <!-- 储备库存 -->
2 2
 <template>
3
-  <div class="box">
3
+  <div class="cbkc_box">
4
+    <div class="box_title">
5
+      <span>储备库存</span>
6
+    </div>
4 7
     <div class="pjzg box_content">
5 8
       <div class="title">
6 9
         <div class="title_left">
@@ -71,11 +74,11 @@ const pjzg = ref()
71 74
 const shnf = ref()
72 75
 
73 76
 const getPieData = async () => {
74
-  let res
77
+  let res:any;
75 78
   res = await Api.cbkcApi1()
76 79
   pieArr.value = res.data.data
77
-  console.log(pieArr.value,"pieArr--=========");
78
-  
80
+  console.log(pieArr.value, 'pieArr--=========')
81
+
79 82
   pieData1.value = pieArr.value.map((item: any, index) => {
80 83
     item.color = colorList.value[index]
81 84
     return {
@@ -217,24 +220,30 @@ onMounted(() => {
217 220
 .content::-webkit-scrollbar {
218 221
   display: none;
219 222
 }
220
-.box {
223
+.cbkc_box {
221 224
   // padding: 0 0 0 55px;
222 225
   height: 100%;
223 226
   width: 100%;
224 227
 }
225
-.box .box_content {
228
+.cbkc_box .box_content {
226 229
   height: 50%;
227 230
   width: 100%;
228 231
   position: relative;
229 232
   // padding-top: 20px;
230 233
 }
231
-.box .box_content .title {
234
+.cbkc_box .box_title {
235
+  font-size: 20px;
236
+  font-weight: 700;
237
+  margin-left: 15px;
238
+  margin-bottom: 15px;
239
+}
240
+.cbkc_box .box_content .title {
232 241
   width: 90%;
233 242
   display: flex;
234 243
   margin-top: 3vh;
235 244
   margin-bottom: 3vh;
236 245
 }
237
-.box .box_content .title div {
246
+.cbkc_box .box_content .title div {
238 247
   flex: 50%;
239 248
   font-size: 18px;
240 249
   // color: #ffffff;
@@ -253,21 +262,21 @@ onMounted(() => {
253 262
 .title_right span {
254 263
   float: right;
255 264
 }
256
-.box .echarts_box {
265
+.cbkc_box .echarts_box {
257 266
   width: 245px;
258 267
   height: 215px;
259 268
   position: absolute;
260 269
   top: 9vh;
261 270
   left: -8%;
262 271
 }
263
-.box .charts {
272
+.cbkc_box .charts {
264 273
   width: 245px;
265 274
   height: 215px;
266 275
   // background: url('../../../../assets/statistics/lskc/gif/aqua_bg.png') no-repeat;
267 276
   background-size: 300px;
268 277
   background-position: -40px -37px;
269 278
 }
270
-.box .box_content .img_bg {
279
+.cbkc_box .box_content .img_bg {
271 280
   width: 205px;
272 281
   height: 219px;
273 282
   // background: url("../../../../assets/statistics/lskc/gif/pzjg.gif") no-repeat;

+ 5 - 5
src/views/display/ksh/index.vue

@@ -53,7 +53,7 @@
53 53
               <el-input v-model="mapFormData.kqmc" placeholder="请输入" />
54 54
             </el-form-item>
55 55
           </el-col>
56
-          <el-col :span="4">
56
+          <el-col :span="4" style="font-size: 14px">
57 57
             <el-button type="primary" class="primarySele" @click="loadData()">查询</el-button>
58 58
             <el-button class="snowy-buttom-left" @click="() => reset()">重置</el-button>
59 59
           </el-col>
@@ -91,20 +91,20 @@
91 91
             </div>
92 92
           </el-col>
93 93
           <el-col :span="18">
94
-            <!-- <Map @map-mounted="son = true" /> -->
94
+            <Map @map-mounted="son = true" />
95 95
           </el-col>
96 96
         </el-row>
97 97
       </div>
98 98
     </el-col>
99 99
     <el-col :span="6">
100
-      <!-- <Cbkc /> -->
100
+      <Cbkc />
101 101
     </el-col>
102 102
   </el-row>
103 103
 </template>
104 104
 
105 105
 <script lang="ts" setup>
106
-// import Map from './compontent/Map.vue'
107
-// import Cbkc from './compontent/cbkc.vue'
106
+import Map from './compontent/Map.vue'
107
+import Cbkc from './compontent/cbkc.vue'
108 108
 import { onMounted } from 'vue'
109 109
 import * as echarts from 'echarts'
110 110
 

+ 282 - 0
src/views/display/ksh/store/index.ts

@@ -0,0 +1,282 @@
1
+import {defineStore} from 'pinia';
2
+import * as Api from '../api';
3
+import china from "@/json/china.json";
4
+
5
+// 定义接口 QueryParamsType 用来描述查询参数的类型
6
+export interface QueryParamsType {
7
+  niadu: number; // 年度
8
+  cypzName: string; // 产品品种名称
9
+  zb: number; // 指标
10
+  shengXzqhId: string | null; // 省级行政区划ID
11
+  shiXzqhId: string | null; // 市级行政区划ID
12
+  quXzqhId: string | null; // 区级行政区划ID
13
+  ulevel: number | null; // 用户级别
14
+  xzqhId: string | null; // 行政区划ID
15
+  xzqhName: string | null; // 行政区划名称
16
+  type: number | null; // 类型
17
+  typeName: string | null; // 类型名称
18
+  xzqhCode: string | null; // 行政区划
19
+}
20
+
21
+// 定义接口 XzqhType 用来描述行政区划信息的类型
22
+export interface XzqhType {
23
+  shengXzqhId: string | null; // 省级行政区划ID
24
+  shiXzqhId: string | null; // 市级行政区划ID
25
+  quXzqhId: string | null; // 区级行政区划ID
26
+  ulevel: number | null; // 用户级别
27
+  xzqhId: string | null; // 行政区划ID
28
+  xzqhName: string | null; // 行政区划名称
29
+}
30
+
31
+// 定义接口 UserInfoType 用来描述用户信息的类型
32
+export interface defaultsInfo {
33
+  xzqhId: number, //行政区划ID
34
+  shengXzqhId: number, //省级行政区划ID
35
+  shiXzqhId: number, //市级行政区划ID
36
+  quXzqhId: number, //区级行政区划ID
37
+  MapJson: any, //地图数据
38
+  ulevel: number,//用户级别
39
+}
40
+
41
+// 定义接口 DataStoreType 用来描述数据存储的类型
42
+export interface DataStoreType {
43
+  queryParams: QueryParamsType; // 查询参数
44
+  data: any; // 数据,可以进一步定义为更具体的类型
45
+}
46
+
47
+export enum cypzNameEmuns {
48
+  XM = '小麦',
49
+  YM = "玉米",
50
+  DD = "大豆",
51
+  ZXD = '稻谷(早籼稻)',
52
+  ZWXD = '稻谷(中晚籼稻)',
53
+  WXD = '稻谷(晚籼稻)',
54
+  QK = '青稞',
55
+  YCZ = '油菜籽',
56
+  KHZ = '葵花籽',
57
+  HS = '花生',
58
+}
59
+
60
+export enum ShianTypeEmuns {
61
+  'ZJS' = 0,
62
+  'ZJDS',
63
+  'NYCL',
64
+  'SGYL',
65
+}
66
+
67
+//重金属指标
68
+export enum ZhongJinShuEmuns {
69
+  'WJS' = 0,
70
+  'GONG',
71
+  'QIAN',
72
+  'GE',
73
+}
74
+
75
+//真菌毒素指标
76
+export enum ZhenJunDuSuEmuns {
77
+  'HQMDSB1' = 0,
78
+  'OTDS',
79
+  'YMCMXT',
80
+}
81
+
82
+export const VisualizationHomeStore = defineStore('InstitutionalInformationVisualizationHomeStore', {
83
+  // 定义 store 的 state,返回一个函数来初始化状态
84
+  state: () => ({
85
+    // 定义默认行政区划信息
86
+    defaultsInfo: {
87
+      xzqhId: 0,
88
+      shengXzqhId: null,
89
+      shiXzqhId: null,
90
+      quXzqhId: null,
91
+      MapJson: '',
92
+      ulevel: null,
93
+      xzqhName:null,
94
+    },
95
+    // 定义查询参数的默认值
96
+    queryParams: {
97
+      niadu: null,
98
+      cypzName: null,
99
+      zb: null,
100
+      shengXzqhId: null,
101
+      shiXzqhId: null,
102
+      quXzqhId: null,
103
+      ulevel: null,
104
+      xzqhId: null,
105
+      xzqhName: null,
106
+      type: null,
107
+      // typeName: null,
108
+    },
109
+    // 定义数据对象,包含查询参数和数据内容
110
+    data: {
111
+      mapJson: null as any,
112
+      data: null as any
113
+    },
114
+    // 背份地图数据,已有数据则不请求接口
115
+    history: [
116
+      {
117
+        queryParams: {
118
+          niandu: null,
119
+          cypzName: null,
120
+          zb: null,
121
+          shengXzqhId: null,
122
+          shiXzqhId: null,
123
+          quXzqhId: null,
124
+          ulevel: null,
125
+          xzqhId: null,
126
+          xzqhName: null,
127
+          type: null,
128
+        },
129
+        data: {
130
+          mapJson: null as any,
131
+          data: null as any,
132
+        }
133
+      },
134
+    ] as any,
135
+  }),
136
+  // 定义 getters,用于从 state 中派生出新的状态
137
+  getters: {
138
+    // 获取用户完整信息
139
+    getDefaultsInfo(state): defaultsInfo {
140
+      return state.defaultsInfo;
141
+    },
142
+    getMapJson(state) {
143
+      return state.data.mapJson;
144
+    },
145
+    getData(state) {
146
+      return state.data;
147
+    },
148
+    getQueryParams(state) {
149
+      return state.queryParams;
150
+    }
151
+  },
152
+  // 定义 actions,用于执行异步操作或提交多步的状态更改
153
+  actions: {
154
+    // 设置新的查询参数
155
+    async getStoreData(newParams: Partial<QueryParamsType>): Promise<any> {
156
+      //检查历史记录,如果存在相同的查询参数,则直接返回该记录的数据
157
+      for (const item of this.history) {
158
+        if (areObjectsEqual(item.queryParams, newParams)) {
159
+          this.data = deepCopy(item.data);
160
+          this.queryParams = {...this.queryParams, ...newParams};
161
+          console.log(this.history, 'history')
162
+          return this.data;
163
+        }
164
+      }
165
+      // 如果历史记录中没有找到匹配的查询参数,则执行查询操作
166
+      try {
167
+        //请求接口失败抛错
168
+        let res;
169
+        let mapJson;
170
+        try {
171
+          // console.log(newParams, 'newParams');
172
+          // console.log(this.defaultsInfo, 'this.defaultsInfo');
173
+          // 以省shengXzqhId为判断,如果不传,则默认为当前用户所在
174
+          
175
+          if (!newParams.shengXzqhId) {
176
+            res = await Api.InstitutionalInformation_Api({});
177
+            // res = await Api.InstitutionalInformation_Api({
178
+            //   ...newParams,
179
+            //   shengXzqhId: this.defaultsInfo.shengXzqhId,
180
+            //   shiXzqhId: this.defaultsInfo.shiXzqhId,
181
+            //   quXzqhId: this.defaultsInfo.quXzqhId
182
+            // });
183
+            
184
+            // mapJson = deepCopy(this.defaultsInfo.MapJson);
185
+            mapJson = china;
186
+          } else {
187
+            res = await Api.InstitutionalInformation_Api({...newParams});
188
+            mapJson = newParams.xzqhCode ? JSON.parse((await Api.GetXzqhJsonApi({xzqhCode: newParams.xzqhCode.substring(0, 6)})).jsonData) : china;
189
+          }
190
+        } catch (err: any) {
191
+          console.error(err)
192
+          throw new Error(err);
193
+        }
194
+        // 判断接口返回的数据是否为空
195
+        
196
+        if (!res || !mapJson) {
197
+          throw new Error('接口请求失败');
198
+        }
199
+        this.data.data = res;
200
+        this.data.mapJson = mapJson
201
+        this.queryParams = {...newParams};
202
+        this.history.push(deepCopy({
203
+          queryParams: {...this.queryParams},
204
+          data: this.data
205
+        }));
206
+        console.log(this.history, 'history')
207
+        return this.data;
208
+      } catch (e) {
209
+        return false;
210
+      }
211
+    },
212
+    // 初始化信息
213
+    async init() {
214
+      try {
215
+        const userInfo = await Api.GetLoginUserXzqhApi();
216
+        for (const key in userInfo) {
217
+          this.defaultsInfo[key] = userInfo[key];
218
+        }
219
+        this.defaultsInfo.ulevel = userInfo.type;
220
+      } catch (err) {
221
+        throw new Error(err, '获取当前用户信息失败');
222
+      }
223
+      try {
224
+        if (this.defaultsInfo.ulevel == 1 || this.defaultsInfo.ulevel == 0) {
225
+          this.defaultsInfo.MapJson = china;
226
+          this.data.mapJson = china;
227
+        } else {
228
+          const MapJSON = await Api.GetXzqhJsonApi({xzqhCode: this.defaultsInfo.xzqhCode})
229
+          this.defaultsInfo.MapJson = JSON.parse(MapJSON.jsonData);
230
+          this.data.mapJson = JSON.parse(MapJSON.jsonData);
231
+        }
232
+      } catch (err) {
233
+        throw new Error(err, '获取初始化地图数据失败');
234
+      }
235
+
236
+    }
237
+  },
238
+});
239
+
240
+
241
+
242
+function areObjectsEqual(obj1, obj2): boolean {
243
+  if (obj1 === obj2) {
244
+    return true;
245
+  }
246
+  // 检查是否都是null或undefined(注意:null !== undefined,但这里作为特殊情况处理)
247
+  if (obj1 === null || obj2 === null || obj1 === undefined || obj2 === undefined) {
248
+    return false; // 或者你可以选择返回 obj1 === obj2 来同时处理 null 和 undefined
249
+  }
250
+
251
+  // 检查它们的类型是否相同
252
+  if (typeof obj1 !== typeof obj2) {
253
+    return false;
254
+  }
255
+
256
+  // 检查它们是否是对象或数组
257
+  if (typeof obj1 === 'object' && typeof obj2 === 'object') {
258
+    // 获取两个对象的所有键
259
+    const keys1 = Object.keys(obj1);
260
+    const keys2 = Object.keys(obj2);
261
+
262
+    // 如果键的数量不同,则对象不相等
263
+    if (keys1.length !== keys2.length) {
264
+      return false;
265
+    }
266
+
267
+    // 检查每个键是否存在于另一个对象中,并且对应的值是否相等
268
+    for (const key of keys1) {
269
+      // 如果key在obj2中不存在,或者对应的值不相等,则返回false
270
+      if (!keys2.includes(key) || !areObjectsEqual(obj1[key], obj2[key])) {
271
+        return false;
272
+      }
273
+    }
274
+
275
+    // 如果所有键都匹配且值相等,则返回true
276
+    return true;
277
+  }
278
+}
279
+
280
+function deepCopy(obj) {
281
+  return JSON.parse(JSON.stringify(obj));
282
+}