diff --git a/pages/.DS_Store b/pages/.DS_Store
deleted file mode 100644
index c5c001b..0000000
Binary files a/pages/.DS_Store and /dev/null differ
diff --git a/pages/index/.DS_Store b/pages/index/.DS_Store
deleted file mode 100644
index 5008ddf..0000000
Binary files a/pages/index/.DS_Store and /dev/null differ
diff --git a/pages/index/index.vue b/pages/index/index.vue
index 670c616..ece85f2 100644
--- a/pages/index/index.vue
+++ b/pages/index/index.vue
@@ -2,16 +2,11 @@
-
+ }" canvas-id="canvas" id="canvas">
@@ -23,1979 +18,1997 @@
onMounted,
getCurrentInstance
} from 'vue'
- import { onReady } from '@dcloudio/uni-app'
-
- const canvasWidth = ref(375) // 动态设置Canvas宽度
- const canvasHeight = ref(400) // 动态设置Canvas高度
+ import {
+ onReady
+ } from '@dcloudio/uni-app'
+ // import { useRafFn } from "./utils.js"
+ const canvasWidth = ref() // 动态设置Canvas宽度
+ const canvasHeight = ref() // 动态设置Canvas高度
const instance = getCurrentInstance()
const scale = ref(1)
const offsetX = ref(0)
const offsetY = ref(0)
const lastDistance = ref(-1)
+
const startX = ref(0)
const startY = ref(0)
const isDragging = ref(false)
- const imgUrl = ref('https://assets.sx25.troyrc.com/sx25/images/events/XBDT.jpg');
- const polygonList = [
- {
- "areacode": "ksmj71jukqf7",
- "areaname": "B2区",
- "polygon": [
- 348,
- 193,
- 348,
- 216,
- 348,
- 240,
- 348,
- 263,
- 363,
- 263,
- 377,
- 263,
- 392,
- 263,
- 392,
- 240,
- 392,
- 216,
- 392,
- 193,
- 377,
- 193,
- 363,
- 193,
- 348,
- 193
- ],
- "row_size": 20,
- "col_size": 30,
- "stage": "2",
- "amount": 0,
- "hint": "B2区"
- },
- {
- "areacode": "3ala2e74fet0",
- "areaname": "A2区",
- "polygon": [
- 488,
- 251,
- 473,
- 262,
- 453,
- 281,
- 455,
- 290,
- 494,
- 290,
- 518,
- 290,
- 542,
- 290,
- 542,
- 273,
- 542,
- 257,
- 536,
- 205,
- 521,
- 207,
- 494,
- 240,
- 488,
- 251
- ],
- "row_size": 25,
- "col_size": 50,
- "stage": "2",
- "amount": 286,
- "hint": "A2区"
- },
- {
- "areacode": "h4pff5jukqf9",
- "areaname": "N3区",
- "polygon": [
- 527,
- 96,
- 519,
- 107,
- 536,
- 140,
- 564,
- 172,
- 596,
- 182,
- 610,
- 176,
- 611,
- 166,
- 594,
- 149,
- 581,
- 138,
- 583,
- 142,
- 567,
- 119,
- 560,
- 114,
- 527,
- 96
- ],
- "row_size": 20,
- "col_size": 35,
- "stage": "2",
- "amount": 0,
- "hint": "N3区"
- },
- {
- "areacode": "8nbhrh2gt604",
- "areaname": "H1区",
- "polygon": [
- 348,
- 144,
- 348,
- 152,
- 348,
- 162,
- 348,
- 170,
- 361,
- 170,
- 374,
- 170,
- 388,
- 169,
- 387,
- 162,
- 387,
- 152,
- 387,
- 144,
- 374,
- 144,
- 361,
- 144,
- 348,
- 144
- ],
- "row_size": 20,
- "col_size": 30,
- "stage": "2",
- "amount": 0,
- "hint": "H1区"
- },
- {
- "areacode": "0kc0kw2gt605",
- "areaname": "N20区",
- "polygon": [
- 582,
- 341,
- 582,
- 361,
- 582,
- 381,
- 602,
- 380,
- 600,
- 400,
- 614,
- 401,
- 620,
- 401,
- 622,
- 366,
- 619,
- 360,
- 621,
- 341,
- 614,
- 341,
- 597,
- 341,
- 582,
- 341
- ],
- "row_size": 20,
- "col_size": 30,
- "stage": "2",
- "amount": 0,
- "hint": "N20区"
- },
- {
- "areacode": "xrc8rwej0jkc",
- "areaname": "G区",
- "polygon": [
- 113,
- 371,
- 113,
- 397,
- 113,
- 424,
- 113,
- 450,
- 118,
- 450,
- 124,
- 450,
- 129,
- 450,
- 129,
- 424,
- 129,
- 397,
- 129,
- 371,
- 124,
- 371,
- 118,
- 371,
- 113,
- 371
- ],
- "row_size": 10,
- "col_size": 37,
- "stage": "2",
- "amount": 0,
- "hint": "G区"
- },
- {
- "areacode": "bjhut82gt607",
- "areaname": "N11区",
- "polygon": [
- 58,
- 323,
- 58,
- 345,
- 58,
- 367,
- 58,
- 389,
- 71,
- 389,
- 83,
- 389,
- 96,
- 389,
- 96,
- 367,
- 96,
- 345,
- 96,
- 323,
- 83,
- 323,
- 71,
- 323,
- 58,
- 323
- ],
- "row_size": 16,
- "col_size": 26,
- "stage": "2",
- "amount": 0,
- "hint": "N11区"
- },
- {
- "areacode": "xrwmq3sa807n",
- "areaname": "L区",
- "polygon": [
- 541,
- 196,
- 554,
- 223,
- 553,
- 252,
- 554,
- 282,
- 555,
- 285,
- 564,
- 285,
- 568,
- 284,
- 567,
- 253,
- 568,
- 222,
- 559,
- 191,
- 564,
- 188,
- 555,
- 188,
- 541,
- 196
- ],
- "row_size": 15,
- "col_size": 50,
- "stage": "2",
- "amount": 0,
- "hint": "L区"
- },
- {
- "areacode": "aekymdjukqf6",
- "areaname": "N2区",
- "polygon": [
- 577,
- 204,
- 579,
- 216,
- 579,
- 240,
- 602,
- 252,
- 602,
- 267,
- 609,
- 267,
- 618,
- 267,
- 621,
- 240,
- 615,
- 221,
- 611,
- 191,
- 609,
- 189,
- 595,
- 194,
- 577,
- 204
- ],
- "row_size": 20,
- "col_size": 30,
- "stage": "2",
- "amount": 0,
- "hint": "N2区"
- },
- {
- "areacode": "g1aynfej0jku",
- "areaname": "E区",
- "polygon": [
- 114,
- 215,
- 114,
- 236,
- 114,
- 257,
- 114,
- 278,
- 119,
- 278,
- 124,
- 278,
- 129,
- 278,
- 129,
- 257,
- 129,
- 236,
- 129,
- 215,
- 124,
- 215,
- 119,
- 215,
- 114,
- 215
- ],
- "row_size": 10,
- "col_size": 34,
- "stage": "2",
- "amount": 0,
- "hint": "E区"
- },
- {
- "areacode": "66g4bm74fetb",
- "areaname": "N14区",
- "polygon": [
- 155,
- 529,
- 149,
- 538,
- 148,
- 542,
- 142,
- 551,
- 170,
- 563,
- 192,
- 563,
- 213,
- 563,
- 213,
- 550,
- 213,
- 538,
- 213,
- 525,
- 192,
- 525,
- 170,
- 525,
- 155,
- 529
- ],
- "row_size": 20,
- "col_size": 30,
- "stage": "2",
- "amount": 0,
- "hint": "N14区"
- },
- {
- "areacode": "31q0udej0jkx",
- "areaname": "J区",
- "polygon": [
- 393,
- 137,
- 393,
- 152,
- 393,
- 168,
- 393,
- 183,
- 414,
- 183,
- 434,
- 183,
- 455,
- 183,
- 455,
- 168,
- 455,
- 152,
- 455,
- 137,
- 434,
- 137,
- 414,
- 137,
- 393,
- 137
- ],
- "row_size": 20,
- "col_size": 30,
- "stage": "2",
- "amount": 0,
- "hint": "J区"
- },
- {
- "areacode": "tsew3ejukqfb",
- "areaname": "N17区",
- "polygon": [
- 445,
- 532,
- 445,
- 544,
- 445,
- 555,
- 445,
- 567,
- 468,
- 567,
- 492,
- 567,
- 515,
- 560,
- 515,
- 555,
- 515,
- 544,
- 503,
- 527,
- 492,
- 532,
- 468,
- 532,
- 445,
- 532
- ],
- "row_size": 20,
- "col_size": 30,
- "stage": "2",
- "amount": 0,
- "hint": "N17区"
- },
- {
- "areacode": "t4wshyjukqfc",
- "areaname": "G区",
- "polygon": [
- 224,
- 139,
- 224,
- 153,
- 224,
- 169,
- 224,
- 183,
- 245,
- 183,
- 265,
- 183,
- 286,
- 183,
- 286,
- 169,
- 286,
- 153,
- 286,
- 139,
- 265,
- 139,
- 245,
- 139,
- 224,
- 139
- ],
- "row_size": 20,
- "col_size": 30,
- "stage": "2",
- "amount": 0,
- "hint": "G区"
- },
- {
- "areacode": "bp2jtyjukqfd",
- "areaname": "N10区",
- "polygon": [
- 60,
- 256,
- 60,
- 276,
- 60,
- 297,
- 60,
- 317,
- 73,
- 317,
- 85,
- 317,
- 98,
- 317,
- 98,
- 297,
- 98,
- 276,
- 98,
- 256,
- 85,
- 256,
- 73,
- 256,
- 60,
- 256
- ],
- "row_size": 16,
- "col_size": 26,
- "stage": "2",
- "amount": 0,
- "hint": "N10区"
- },
- {
- "areacode": "pee7rxjukqfe",
- "areaname": "N9区",
- "polygon": [
- 63,
- 181,
- 63,
- 203,
- 63,
- 224,
- 63,
- 246,
- 76,
- 246,
- 89,
- 246,
- 102,
- 246,
- 102,
- 224,
- 102,
- 203,
- 102,
- 181,
- 89,
- 181,
- 76,
- 181,
- 63,
- 181
- ],
- "row_size": 16,
- "col_size": 31,
- "stage": "2",
- "amount": 0,
- "hint": "N9区"
- },
- {
- "areacode": "ga8mwdsa8081",
- "areaname": "N7区",
- "polygon": [
- 159,
- 87,
- 159,
- 100,
- 159,
- 113,
- 159,
- 126,
- 185,
- 126,
- 212,
- 126,
- 238,
- 126,
- 238,
- 113,
- 238,
- 100,
- 238,
- 87,
- 212,
- 87,
- 185,
- 87,
- 159,
- 87
- ],
- "row_size": 20,
- "col_size": 30,
- "stage": "2",
- "amount": 0,
- "hint": "N7区"
- },
- {
- "areacode": "0trbqk2gt60a",
- "areaname": "M区",
- "polygon": [
- 552,
- 283,
- 552,
- 309,
- 552,
- 335,
- 552,
- 361,
- 557,
- 361,
- 564,
- 361,
- 569,
- 361,
- 569,
- 335,
- 569,
- 309,
- 569,
- 283,
- 564,
- 283,
- 557,
- 283,
- 552,
- 283
- ],
- "row_size": 15,
- "col_size": 40,
- "stage": "2",
- "amount": 75,
- "hint": "M区"
- },
- {
- "areacode": "0yup992gt60b",
- "areaname": "N4区",
- "polygon": [
- 440,
- 89,
- 440,
- 101,
- 440,
- 113,
- 440,
- 125,
- 471,
- 125,
- 503,
- 125,
- 507,
- 114,
- 512,
- 105,
- 512,
- 99,
- 505,
- 95,
- 492,
- 89,
- 471,
- 89,
- 440,
- 89
- ],
- "row_size": 20,
- "col_size": 30,
- "stage": "2",
- "amount": 0,
- "hint": "N4区"
- },
- {
- "areacode": "x4uxg3jukqcr",
- "areaname": "Q区",
- "polygon": [
- 223,
- 467,
- 223,
- 483,
- 223,
- 499,
- 223,
- 515,
- 257,
- 515,
- 290,
- 515,
- 324,
- 515,
- 324,
- 499,
- 324,
- 483,
- 324,
- 467,
- 290,
- 467,
- 257,
- 467,
- 223,
- 467
- ],
- "row_size": 20,
- "col_size": 40,
- "stage": "2",
- "amount": 0,
- "hint": "Q区"
- },
- {
- "areacode": "j6l96jjukqcg",
- "areaname": "O区",
- "polygon": [
- 437,
- 472,
- 437,
- 486,
- 437,
- 501,
- 437,
- 515,
- 465,
- 515,
- 492,
- 515,
- 514,
- 502,
- 523,
- 499,
- 520,
- 486,
- 497,
- 463,
- 476,
- 469,
- 465,
- 472,
- 437,
- 472
- ],
- "row_size": 20,
- "col_size": 44,
- "stage": "2",
- "amount": 0,
- "hint": "O区"
- },
- {
- "areacode": "g4r5lysa8087",
- "areaname": "N13区",
- "polygon": [
- 89,
- 485,
- 89,
- 499,
- 89,
- 514,
- 89,
- 528,
- 106,
- 528,
- 123,
- 528,
- 140,
- 528,
- 140,
- 514,
- 140,
- 499,
- 140,
- 485,
- 123,
- 485,
- 106,
- 485,
- 89,
- 485
- ],
- "row_size": 20,
- "col_size": 36,
- "stage": "2",
- "amount": 0,
- "hint": "N13区"
- },
- {
- "areacode": "q6tq75ej0jl0",
- "areaname": "N18区",
- "polygon": [
- 528,
- 486,
- 535,
- 509,
- 535,
- 520,
- 536,
- 527,
- 552,
- 532,
- 540,
- 531,
- 551,
- 544,
- 582,
- 511,
- 595,
- 495,
- 566,
- 480,
- 566,
- 482,
- 540,
- 470,
- 528,
- 486
- ],
- "row_size": 20,
- "col_size": 36,
- "stage": "2",
- "amount": 0,
- "hint": "N18区"
- },
- {
- "areacode": "twgl38ej0jl1",
- "areaname": "N19区",
- "polygon": [
- 583,
- 409,
- 583,
- 435,
- 595,
- 461,
- 589,
- 482,
- 600,
- 484,
- 605,
- 481,
- 610,
- 473,
- 611,
- 463,
- 617,
- 442,
- 619,
- 413,
- 615,
- 409,
- 599,
- 409,
- 583,
- 409
- ],
- "row_size": 20,
- "col_size": 30,
- "stage": "2",
- "amount": 0,
- "hint": "N19区"
- },
- {
- "areacode": "mnxkfajukqcl",
- "areaname": "D区",
- "polygon": [
- 111,
- 290,
- 111,
- 314,
- 111,
- 339,
- 111,
- 363,
- 116,
- 363,
- 122,
- 363,
- 127,
- 363,
- 127,
- 339,
- 127,
- 314,
- 127,
- 290,
- 122,
- 290,
- 116,
- 290,
- 111,
- 290
- ],
- "row_size": 10,
- "col_size": 30,
- "stage": "2",
- "amount": 0,
- "hint": "D区"
- },
- {
- "areacode": "5k7ubtej0jl3",
- "areaname": "N12区",
- "polygon": [
- 57,
- 390,
- 57,
- 419,
- 57,
- 447,
- 57,
- 476,
- 71,
- 476,
- 85,
- 476,
- 99,
- 476,
- 99,
- 447,
- 99,
- 419,
- 99,
- 390,
- 85,
- 390,
- 71,
- 390,
- 57,
- 390
- ],
- "row_size": 16,
- "col_size": 30,
- "stage": "2",
- "amount": 0,
- "hint": "N12区"
- },
- {
- "areacode": "bt8yrj74fetj",
- "areaname": "D4区",
- "polygon": [
- 234,
- 412,
- 223,
- 423,
- 215,
- 440,
- 215,
- 463,
- 236,
- 463,
- 256,
- 463,
- 277,
- 463,
- 277,
- 440,
- 277,
- 419,
- 277,
- 396,
- 256,
- 396,
- 242,
- 402,
- 234,
- 412
- ],
- "row_size": 20,
- "col_size": 30,
- "stage": "2",
- "amount": 0,
- "hint": "D4区"
- },
- {
- "areacode": "sm0jwq2gt60m",
- "areaname": "P区",
- "polygon": [
- 355,
- 486,
- 355,
- 501,
- 329,
- 500,
- 329,
- 515,
- 365,
- 515,
- 400,
- 515,
- 436,
- 515,
- 436,
- 500,
- 436,
- 484,
- 436,
- 469,
- 400,
- 469,
- 360,
- 469,
- 355,
- 486
- ],
- "row_size": 20,
- "col_size": 40,
- "stage": "2",
- "amount": 0,
- "hint": "P区"
- },
- {
- "areacode": "dn5kn974fetl",
- "areaname": "B3区",
- "polygon": [
- 286,
- 193,
- 286,
- 216,
- 286,
- 238,
- 286,
- 261,
- 302,
- 261,
- 319,
- 261,
- 335,
- 261,
- 335,
- 238,
- 335,
- 216,
- 335,
- 193,
- 319,
- 193,
- 302,
- 193,
- 286,
- 193
- ],
- "row_size": 20,
- "col_size": 30,
- "stage": "2",
- "amount": 0,
- "hint": "B3区"
- },
- {
- "areacode": "32lnp9jukqcs",
- "areaname": "D3区",
- "polygon": [
- 286,
- 398,
- 286,
- 419,
- 286,
- 441,
- 286,
- 462,
- 302,
- 462,
- 317,
- 462,
- 333,
- 462,
- 333,
- 441,
- 333,
- 419,
- 333,
- 398,
- 317,
- 398,
- 302,
- 398,
- 286,
- 398
- ],
- "row_size": 20,
- "col_size": 30,
- "stage": "2",
- "amount": 0,
- "hint": "D3区"
- },
- {
- "areacode": "u1w8mhej0jlk",
- "areaname": "D2区",
- "polygon": [
- 347,
- 396,
- 347,
- 418,
- 347,
- 441,
- 347,
- 463,
- 362,
- 463,
- 376,
- 463,
- 391,
- 463,
- 391,
- 441,
- 391,
- 418,
- 391,
- 396,
- 376,
- 396,
- 362,
- 396,
- 347,
- 396
- ],
- "row_size": 20,
- "col_size": 30,
- "stage": "2",
- "amount": 0,
- "hint": "D2区"
- },
- {
- "areacode": "p42ypdej0jla",
- "areaname": "D1区",
- "polygon": [
- 404,
- 397,
- 404,
- 419,
- 404,
- 440,
- 404,
- 462,
- 424,
- 462,
- 444,
- 462,
- 464,
- 462,
- 464,
- 440,
- 460,
- 435,
- 457,
- 425,
- 443,
- 411,
- 424,
- 397,
- 404,
- 397
- ],
- "row_size": 20,
- "col_size": 30,
- "stage": "2",
- "amount": 0,
- "hint": "D1区"
- },
- {
- "areacode": "0ca4mx2gt615",
- "areaname": "H2区",
- "polygon": [
- 293,
- 144,
- 293,
- 153,
- 293,
- 162,
- 293,
- 171,
- 307,
- 171,
- 321,
- 171,
- 335,
- 171,
- 335,
- 162,
- 335,
- 153,
- 335,
- 144,
- 321,
- 144,
- 307,
- 144,
- 293,
- 144
- ],
- "row_size": 20,
- "col_size": 30,
- "stage": "2",
- "amount": 0,
- "hint": "H2区"
- },
- {
- "areacode": "q4bf4074fets",
- "areaname": "F区",
- "polygon": [
- 163,
- 139,
- 163,
- 155,
- 163,
- 170,
- 163,
- 186,
- 181,
- 186,
- 199,
- 186,
- 217,
- 186,
- 217,
- 170,
- 217,
- 155,
- 217,
- 139,
- 199,
- 139,
- 181,
- 139,
- 163,
- 139
- ],
- "row_size": 20,
- "col_size": 35,
- "stage": "2",
- "amount": 0,
- "hint": "F区"
- },
- {
- "areacode": "wpks2e74fett",
- "areaname": "N8区",
- "polygon": [
- 93,
- 121,
- 93,
- 136,
- 93,
- 149,
- 93,
- 164,
- 108,
- 164,
- 123,
- 164,
- 138,
- 164,
- 138,
- 149,
- 138,
- 136,
- 138,
- 121,
- 123,
- 121,
- 108,
- 121,
- 93,
- 121
- ],
- "row_size": 20,
- "col_size": 35,
- "stage": "2",
- "amount": 0,
- "hint": "N8区"
- },
- {
- "areacode": "9xnc21jukqd0",
- "areaname": "N区",
- "polygon": [
- 552,
- 372,
- 554,
- 401,
- 553,
- 423,
- 545,
- 459,
- 555,
- 465,
- 558,
- 462,
- 562,
- 453,
- 568,
- 426,
- 569,
- 398,
- 565,
- 367,
- 564,
- 367,
- 561,
- 369,
- 552,
- 372
- ],
- "row_size": 15,
- "col_size": 40,
- "stage": "2",
- "amount": 89,
- "hint": "N区"
- },
- {
- "areacode": "ul1nl874fetw",
- "areaname": "R区",
- "polygon": [
- 157,
- 469,
- 157,
- 484,
- 157,
- 497,
- 157,
- 512,
- 177,
- 512,
- 196,
- 512,
- 216,
- 512,
- 216,
- 497,
- 216,
- 484,
- 216,
- 469,
- 196,
- 469,
- 177,
- 469,
- 157,
- 469
- ],
- "row_size": 20,
- "col_size": 40,
- "stage": "2",
- "amount": 0,
- "hint": "R区"
- },
- {
- "areacode": "8ejjq6ej0jlg",
- "areaname": "B1区",
- "polygon": [
- 406,
- 193,
- 406,
- 214,
- 406,
- 237,
- 406,
- 258,
- 424,
- 258,
- 442,
- 258,
- 460,
- 257,
- 461,
- 237,
- 461,
- 217,
- 461,
- 193,
- 442,
- 193,
- 424,
- 193,
- 406,
- 193
- ],
- "row_size": 20,
- "col_size": 30,
- "stage": "2",
- "amount": 0,
- "hint": "B1区"
- },
- {
- "areacode": "kt5npejukqd3",
- "areaname": "K区",
- "polygon": [
- 466,
- 140,
- 466,
- 155,
- 466,
- 172,
- 466,
- 187,
- 481,
- 187,
- 494,
- 187,
- 509,
- 187,
- 509,
- 172,
- 509,
- 155,
- 509,
- 140,
- 494,
- 140,
- 481,
- 140,
- 466,
- 140
- ],
- "row_size": 20,
- "col_size": 40,
- "stage": "2",
- "amount": 0,
- "hint": "K区"
- },
- {
- "areacode": "w1perrjukqd5",
- "areaname": "N15区",
- "polygon": [
- 225,
- 530,
- 225,
- 545,
- 224,
- 565,
- 247,
- 566,
- 247,
- 578,
- 290,
- 582,
- 325,
- 580,
- 326,
- 561,
- 326,
- 545,
- 326,
- 530,
- 292,
- 530,
- 259,
- 530,
- 225,
- 530
- ],
- "row_size": 20,
- "col_size": 40,
- "stage": "2",
- "amount": 0,
- "hint": "N15区"
- },
- {
- "areacode": "c9e74k2gt61e",
- "areaname": "C3区",
- "polygon": [
- 134,
- 364,
- 134,
- 380,
- 134,
- 396,
- 134,
- 412,
- 160,
- 412,
- 185,
- 412,
- 211,
- 412,
- 211,
- 396,
- 211,
- 380,
- 211,
- 364,
- 185,
- 364,
- 160,
- 364,
- 134,
- 364
- ],
- "row_size": 24,
- "col_size": 43,
- "stage": "2",
- "amount": 0,
- "hint": "C3区"
- },
- {
- "areacode": "y424tp2gt61f",
- "areaname": "A3区",
- "polygon": [
- 451,
- 364,
- 453,
- 373,
- 470,
- 390,
- 486,
- 399,
- 493,
- 413,
- 516,
- 414,
- 541,
- 414,
- 541,
- 398,
- 541,
- 380,
- 541,
- 364,
- 516,
- 364,
- 493,
- 364,
- 451,
- 364
- ],
- "row_size": 30,
- "col_size": 60,
- "stage": "2",
- "amount": 0,
- "hint": "A3区"
- },
- {
- "areacode": "d2ekxysa808x",
- "areaname": "C2区",
- "polygon": [
- 133,
- 241,
- 133,
- 259,
- 133,
- 276,
- 133,
- 294,
- 158,
- 294,
- 185,
- 294,
- 210,
- 294,
- 210,
- 276,
- 210,
- 259,
- 210,
- 241,
- 185,
- 241,
- 158,
- 241,
- 133,
- 241
- ],
- "row_size": 24,
- "col_size": 40,
- "stage": "2",
- "amount": 0,
- "hint": "C2区"
- },
- {
- "areacode": "x26ltu2gt61h",
- "areaname": "C1区",
- "polygon": [
- 134,
- 304,
- 134,
- 318,
- 134,
- 333,
- 134,
- 347,
- 165,
- 347,
- 197,
- 347,
- 228,
- 347,
- 228,
- 333,
- 228,
- 318,
- 228,
- 304,
- 197,
- 304,
- 165,
- 304,
- 134,
- 304
- ],
- "row_size": 24,
- "col_size": 30,
- "stage": "2",
- "amount": 0,
- "hint": "C1区"
- },
- {
- "areacode": "02apw92gt618",
- "areaname": "N1区",
- "polygon": [
- 581,
- 276,
- 581,
- 296,
- 581,
- 316,
- 604,
- 321,
- 606,
- 335,
- 607,
- 336,
- 620,
- 335,
- 620,
- 316,
- 620,
- 296,
- 620,
- 276,
- 607,
- 276,
- 594,
- 276,
- 581,
- 276
- ],
- "row_size": 20,
- "col_size": 30,
- "stage": "2",
- "amount": 0,
- "hint": "N1区"
- },
- {
- "areacode": "sgatj4jukqdb",
- "areaname": "N5区",
- "polygon": [
- 334,
- 75,
- 334,
- 92,
- 334,
- 109,
- 334,
- 126,
- 367,
- 126,
- 399,
- 126,
- 432,
- 126,
- 432,
- 109,
- 432,
- 92,
- 432,
- 75,
- 399,
- 75,
- 367,
- 75,
- 334,
- 75
- ],
- "row_size": 20,
- "col_size": 35,
- "stage": "2",
- "amount": 0,
- "hint": "N5区"
- },
- {
- "areacode": "c4m1arjukqdc",
- "areaname": "B4区",
- "polygon": [
- 216,
- 193,
- 216,
- 215,
- 216,
- 239,
- 216,
- 261,
- 236,
- 261,
- 256,
- 261,
- 276,
- 261,
- 276,
- 239,
- 276,
- 215,
- 276,
- 193,
- 256,
- 193,
- 236,
- 193,
- 216,
- 193
- ],
- "row_size": 20,
- "col_size": 30,
- "stage": "2",
- "amount": 0,
- "hint": "B4区"
- },
- {
- "areacode": "fsp4282gt61b",
- "areaname": "N6区",
- "polygon": [
- 246,
- 74,
- 246,
- 91,
- 246,
- 109,
- 246,
- 126,
- 273,
- 126,
- 299,
- 126,
- 326,
- 126,
- 326,
- 109,
- 326,
- 91,
- 326,
- 74,
- 299,
- 74,
- 273,
- 74,
- 246,
- 74
- ],
- "row_size": 20,
- "col_size": 35,
- "stage": "2",
- "amount": 0,
- "hint": "N6区"
- },
- {
- "areacode": "9hw55eej0jlx",
- "areaname": "A1区",
- "polygon": [
- 454,
- 306,
- 454,
- 320,
- 454,
- 336,
- 454,
- 350,
- 484,
- 350,
- 513,
- 350,
- 543,
- 350,
- 543,
- 336,
- 543,
- 320,
- 543,
- 306,
- 513,
- 306,
- 484,
- 306,
- 454,
- 306
- ],
- "row_size": 25,
- "col_size": 50,
- "stage": "2",
- "amount": 0,
- "hint": "A1区"
- },
- {
- "areacode": "cddsjlsa8097",
- "areaname": "N16区",
- "polygon": [
- 335,
- 534,
- 335,
- 550,
- 335,
- 565,
- 335,
- 581,
- 369,
- 581,
- 404,
- 581,
- 438,
- 581,
- 438,
- 565,
- 438,
- 550,
- 438,
- 534,
- 404,
- 534,
- 369,
- 534,
- 335,
- 534
- ],
- "row_size": 20,
- "col_size": 40,
- "stage": "2",
- "amount": 0,
- "hint": "N16区"
- }
- ]
+ const imgUrl = ref('https://assets.sx25.troyrc.com/sx25/images/events/XBDT.jpg'); // 修改为ref
+ const blocks = ref(
+ [
+ {
+ "areacode": "ksmj71jukqf7",
+ "areaname": "B2区",
+ "polygon": [
+ 348,
+ 193,
+ 348,
+ 216,
+ 348,
+ 240,
+ 348,
+ 263,
+ 363,
+ 263,
+ 377,
+ 263,
+ 392,
+ 263,
+ 392,
+ 240,
+ 392,
+ 216,
+ 392,
+ 193,
+ 377,
+ 193,
+ 363,
+ 193,
+ 348,
+ 193
+ ],
+ "row_size": 20,
+ "col_size": 30,
+ "stage": "2",
+ "amount": 0,
+ "hint": "B2区"
+ },
+ {
+ "areacode": "3ala2e74fet0",
+ "areaname": "A2区",
+ "polygon": [
+ 488,
+ 251,
+ 473,
+ 262,
+ 453,
+ 281,
+ 455,
+ 290,
+ 494,
+ 290,
+ 518,
+ 290,
+ 542,
+ 290,
+ 542,
+ 273,
+ 542,
+ 257,
+ 536,
+ 205,
+ 521,
+ 207,
+ 494,
+ 240,
+ 488,
+ 251
+ ],
+ "row_size": 25,
+ "col_size": 50,
+ "stage": "2",
+ "amount": 286,
+ "hint": "A2区"
+ },
+ {
+ "areacode": "h4pff5jukqf9",
+ "areaname": "N3区",
+ "polygon": [
+ 527,
+ 96,
+ 519,
+ 107,
+ 536,
+ 140,
+ 564,
+ 172,
+ 596,
+ 182,
+ 610,
+ 176,
+ 611,
+ 166,
+ 594,
+ 149,
+ 581,
+ 138,
+ 583,
+ 142,
+ 567,
+ 119,
+ 560,
+ 114,
+ 527,
+ 96
+ ],
+ "row_size": 20,
+ "col_size": 35,
+ "stage": "2",
+ "amount": 0,
+ "hint": "N3区"
+ },
+ {
+ "areacode": "8nbhrh2gt604",
+ "areaname": "H1区",
+ "polygon": [
+ 348,
+ 144,
+ 348,
+ 152,
+ 348,
+ 162,
+ 348,
+ 170,
+ 361,
+ 170,
+ 374,
+ 170,
+ 388,
+ 169,
+ 387,
+ 162,
+ 387,
+ 152,
+ 387,
+ 144,
+ 374,
+ 144,
+ 361,
+ 144,
+ 348,
+ 144
+ ],
+ "row_size": 20,
+ "col_size": 30,
+ "stage": "2",
+ "amount": 0,
+ "hint": "H1区"
+ },
+ {
+ "areacode": "0kc0kw2gt605",
+ "areaname": "N20区",
+ "polygon": [
+ 582,
+ 341,
+ 582,
+ 361,
+ 582,
+ 381,
+ 602,
+ 380,
+ 600,
+ 400,
+ 614,
+ 401,
+ 620,
+ 401,
+ 622,
+ 366,
+ 619,
+ 360,
+ 621,
+ 341,
+ 614,
+ 341,
+ 597,
+ 341,
+ 582,
+ 341
+ ],
+ "row_size": 20,
+ "col_size": 30,
+ "stage": "2",
+ "amount": 0,
+ "hint": "N20区"
+ },
+ {
+ "areacode": "xrc8rwej0jkc",
+ "areaname": "G区",
+ "polygon": [
+ 113,
+ 371,
+ 113,
+ 397,
+ 113,
+ 424,
+ 113,
+ 450,
+ 118,
+ 450,
+ 124,
+ 450,
+ 129,
+ 450,
+ 129,
+ 424,
+ 129,
+ 397,
+ 129,
+ 371,
+ 124,
+ 371,
+ 118,
+ 371,
+ 113,
+ 371
+ ],
+ "row_size": 10,
+ "col_size": 37,
+ "stage": "2",
+ "amount": 0,
+ "hint": "G区"
+ },
+ {
+ "areacode": "bjhut82gt607",
+ "areaname": "N11区",
+ "polygon": [
+ 58,
+ 323,
+ 58,
+ 345,
+ 58,
+ 367,
+ 58,
+ 389,
+ 71,
+ 389,
+ 83,
+ 389,
+ 96,
+ 389,
+ 96,
+ 367,
+ 96,
+ 345,
+ 96,
+ 323,
+ 83,
+ 323,
+ 71,
+ 323,
+ 58,
+ 323
+ ],
+ "row_size": 16,
+ "col_size": 26,
+ "stage": "2",
+ "amount": 0,
+ "hint": "N11区"
+ },
+ {
+ "areacode": "xrwmq3sa807n",
+ "areaname": "L区",
+ "polygon": [
+ 541,
+ 196,
+ 554,
+ 223,
+ 553,
+ 252,
+ 554,
+ 282,
+ 555,
+ 285,
+ 564,
+ 285,
+ 568,
+ 284,
+ 567,
+ 253,
+ 568,
+ 222,
+ 559,
+ 191,
+ 564,
+ 188,
+ 555,
+ 188,
+ 541,
+ 196
+ ],
+ "row_size": 15,
+ "col_size": 50,
+ "stage": "2",
+ "amount": 0,
+ "hint": "L区"
+ },
+ {
+ "areacode": "aekymdjukqf6",
+ "areaname": "N2区",
+ "polygon": [
+ 577,
+ 204,
+ 579,
+ 216,
+ 579,
+ 240,
+ 602,
+ 252,
+ 602,
+ 267,
+ 609,
+ 267,
+ 618,
+ 267,
+ 621,
+ 240,
+ 615,
+ 221,
+ 611,
+ 191,
+ 609,
+ 189,
+ 595,
+ 194,
+ 577,
+ 204
+ ],
+ "row_size": 20,
+ "col_size": 30,
+ "stage": "2",
+ "amount": 0,
+ "hint": "N2区"
+ },
+ {
+ "areacode": "g1aynfej0jku",
+ "areaname": "E区",
+ "polygon": [
+ 114,
+ 215,
+ 114,
+ 236,
+ 114,
+ 257,
+ 114,
+ 278,
+ 119,
+ 278,
+ 124,
+ 278,
+ 129,
+ 278,
+ 129,
+ 257,
+ 129,
+ 236,
+ 129,
+ 215,
+ 124,
+ 215,
+ 119,
+ 215,
+ 114,
+ 215
+ ],
+ "row_size": 10,
+ "col_size": 34,
+ "stage": "2",
+ "amount": 0,
+ "hint": "E区"
+ },
+ {
+ "areacode": "66g4bm74fetb",
+ "areaname": "N14区",
+ "polygon": [
+ 155,
+ 529,
+ 149,
+ 538,
+ 148,
+ 542,
+ 142,
+ 551,
+ 170,
+ 563,
+ 192,
+ 563,
+ 213,
+ 563,
+ 213,
+ 550,
+ 213,
+ 538,
+ 213,
+ 525,
+ 192,
+ 525,
+ 170,
+ 525,
+ 155,
+ 529
+ ],
+ "row_size": 20,
+ "col_size": 30,
+ "stage": "2",
+ "amount": 0,
+ "hint": "N14区"
+ },
+ {
+ "areacode": "31q0udej0jkx",
+ "areaname": "J区",
+ "polygon": [
+ 393,
+ 137,
+ 393,
+ 152,
+ 393,
+ 168,
+ 393,
+ 183,
+ 414,
+ 183,
+ 434,
+ 183,
+ 455,
+ 183,
+ 455,
+ 168,
+ 455,
+ 152,
+ 455,
+ 137,
+ 434,
+ 137,
+ 414,
+ 137,
+ 393,
+ 137
+ ],
+ "row_size": 20,
+ "col_size": 30,
+ "stage": "2",
+ "amount": 0,
+ "hint": "J区"
+ },
+ {
+ "areacode": "tsew3ejukqfb",
+ "areaname": "N17区",
+ "polygon": [
+ 445,
+ 532,
+ 445,
+ 544,
+ 445,
+ 555,
+ 445,
+ 567,
+ 468,
+ 567,
+ 492,
+ 567,
+ 515,
+ 560,
+ 515,
+ 555,
+ 515,
+ 544,
+ 503,
+ 527,
+ 492,
+ 532,
+ 468,
+ 532,
+ 445,
+ 532
+ ],
+ "row_size": 20,
+ "col_size": 30,
+ "stage": "2",
+ "amount": 0,
+ "hint": "N17区"
+ },
+ {
+ "areacode": "t4wshyjukqfc",
+ "areaname": "G区",
+ "polygon": [
+ 224,
+ 139,
+ 224,
+ 153,
+ 224,
+ 169,
+ 224,
+ 183,
+ 245,
+ 183,
+ 265,
+ 183,
+ 286,
+ 183,
+ 286,
+ 169,
+ 286,
+ 153,
+ 286,
+ 139,
+ 265,
+ 139,
+ 245,
+ 139,
+ 224,
+ 139
+ ],
+ "row_size": 20,
+ "col_size": 30,
+ "stage": "2",
+ "amount": 0,
+ "hint": "G区"
+ },
+ {
+ "areacode": "bp2jtyjukqfd",
+ "areaname": "N10区",
+ "polygon": [
+ 60,
+ 256,
+ 60,
+ 276,
+ 60,
+ 297,
+ 60,
+ 317,
+ 73,
+ 317,
+ 85,
+ 317,
+ 98,
+ 317,
+ 98,
+ 297,
+ 98,
+ 276,
+ 98,
+ 256,
+ 85,
+ 256,
+ 73,
+ 256,
+ 60,
+ 256
+ ],
+ "row_size": 16,
+ "col_size": 26,
+ "stage": "2",
+ "amount": 0,
+ "hint": "N10区"
+ },
+ {
+ "areacode": "pee7rxjukqfe",
+ "areaname": "N9区",
+ "polygon": [
+ 63,
+ 181,
+ 63,
+ 203,
+ 63,
+ 224,
+ 63,
+ 246,
+ 76,
+ 246,
+ 89,
+ 246,
+ 102,
+ 246,
+ 102,
+ 224,
+ 102,
+ 203,
+ 102,
+ 181,
+ 89,
+ 181,
+ 76,
+ 181,
+ 63,
+ 181
+ ],
+ "row_size": 16,
+ "col_size": 31,
+ "stage": "2",
+ "amount": 0,
+ "hint": "N9区"
+ },
+ {
+ "areacode": "ga8mwdsa8081",
+ "areaname": "N7区",
+ "polygon": [
+ 159,
+ 87,
+ 159,
+ 100,
+ 159,
+ 113,
+ 159,
+ 126,
+ 185,
+ 126,
+ 212,
+ 126,
+ 238,
+ 126,
+ 238,
+ 113,
+ 238,
+ 100,
+ 238,
+ 87,
+ 212,
+ 87,
+ 185,
+ 87,
+ 159,
+ 87
+ ],
+ "row_size": 20,
+ "col_size": 30,
+ "stage": "2",
+ "amount": 0,
+ "hint": "N7区"
+ },
+ {
+ "areacode": "0trbqk2gt60a",
+ "areaname": "M区",
+ "polygon": [
+ 552,
+ 283,
+ 552,
+ 309,
+ 552,
+ 335,
+ 552,
+ 361,
+ 557,
+ 361,
+ 564,
+ 361,
+ 569,
+ 361,
+ 569,
+ 335,
+ 569,
+ 309,
+ 569,
+ 283,
+ 564,
+ 283,
+ 557,
+ 283,
+ 552,
+ 283
+ ],
+ "row_size": 15,
+ "col_size": 40,
+ "stage": "2",
+ "amount": 75,
+ "hint": "M区"
+ },
+ {
+ "areacode": "0yup992gt60b",
+ "areaname": "N4区",
+ "polygon": [
+ 440,
+ 89,
+ 440,
+ 101,
+ 440,
+ 113,
+ 440,
+ 125,
+ 471,
+ 125,
+ 503,
+ 125,
+ 507,
+ 114,
+ 512,
+ 105,
+ 512,
+ 99,
+ 505,
+ 95,
+ 492,
+ 89,
+ 471,
+ 89,
+ 440,
+ 89
+ ],
+ "row_size": 20,
+ "col_size": 30,
+ "stage": "2",
+ "amount": 0,
+ "hint": "N4区"
+ },
+ {
+ "areacode": "x4uxg3jukqcr",
+ "areaname": "Q区",
+ "polygon": [
+ 223,
+ 467,
+ 223,
+ 483,
+ 223,
+ 499,
+ 223,
+ 515,
+ 257,
+ 515,
+ 290,
+ 515,
+ 324,
+ 515,
+ 324,
+ 499,
+ 324,
+ 483,
+ 324,
+ 467,
+ 290,
+ 467,
+ 257,
+ 467,
+ 223,
+ 467
+ ],
+ "row_size": 20,
+ "col_size": 40,
+ "stage": "2",
+ "amount": 0,
+ "hint": "Q区"
+ },
+ {
+ "areacode": "j6l96jjukqcg",
+ "areaname": "O区",
+ "polygon": [
+ 437,
+ 472,
+ 437,
+ 486,
+ 437,
+ 501,
+ 437,
+ 515,
+ 465,
+ 515,
+ 492,
+ 515,
+ 514,
+ 502,
+ 523,
+ 499,
+ 520,
+ 486,
+ 497,
+ 463,
+ 476,
+ 469,
+ 465,
+ 472,
+ 437,
+ 472
+ ],
+ "row_size": 20,
+ "col_size": 44,
+ "stage": "2",
+ "amount": 0,
+ "hint": "O区"
+ },
+ {
+ "areacode": "g4r5lysa8087",
+ "areaname": "N13区",
+ "polygon": [
+ 89,
+ 485,
+ 89,
+ 499,
+ 89,
+ 514,
+ 89,
+ 528,
+ 106,
+ 528,
+ 123,
+ 528,
+ 140,
+ 528,
+ 140,
+ 514,
+ 140,
+ 499,
+ 140,
+ 485,
+ 123,
+ 485,
+ 106,
+ 485,
+ 89,
+ 485
+ ],
+ "row_size": 20,
+ "col_size": 36,
+ "stage": "2",
+ "amount": 0,
+ "hint": "N13区"
+ },
+ {
+ "areacode": "q6tq75ej0jl0",
+ "areaname": "N18区",
+ "polygon": [
+ 528,
+ 486,
+ 535,
+ 509,
+ 535,
+ 520,
+ 536,
+ 527,
+ 552,
+ 532,
+ 540,
+ 531,
+ 551,
+ 544,
+ 582,
+ 511,
+ 595,
+ 495,
+ 566,
+ 480,
+ 566,
+ 482,
+ 540,
+ 470,
+ 528,
+ 486
+ ],
+ "row_size": 20,
+ "col_size": 36,
+ "stage": "2",
+ "amount": 0,
+ "hint": "N18区"
+ },
+ {
+ "areacode": "twgl38ej0jl1",
+ "areaname": "N19区",
+ "polygon": [
+ 583,
+ 409,
+ 583,
+ 435,
+ 595,
+ 461,
+ 589,
+ 482,
+ 600,
+ 484,
+ 605,
+ 481,
+ 610,
+ 473,
+ 611,
+ 463,
+ 617,
+ 442,
+ 619,
+ 413,
+ 615,
+ 409,
+ 599,
+ 409,
+ 583,
+ 409
+ ],
+ "row_size": 20,
+ "col_size": 30,
+ "stage": "2",
+ "amount": 0,
+ "hint": "N19区"
+ },
+ {
+ "areacode": "mnxkfajukqcl",
+ "areaname": "D区",
+ "polygon": [
+ 111,
+ 290,
+ 111,
+ 314,
+ 111,
+ 339,
+ 111,
+ 363,
+ 116,
+ 363,
+ 122,
+ 363,
+ 127,
+ 363,
+ 127,
+ 339,
+ 127,
+ 314,
+ 127,
+ 290,
+ 122,
+ 290,
+ 116,
+ 290,
+ 111,
+ 290
+ ],
+ "row_size": 10,
+ "col_size": 30,
+ "stage": "2",
+ "amount": 0,
+ "hint": "D区"
+ },
+ {
+ "areacode": "5k7ubtej0jl3",
+ "areaname": "N12区",
+ "polygon": [
+ 57,
+ 390,
+ 57,
+ 419,
+ 57,
+ 447,
+ 57,
+ 476,
+ 71,
+ 476,
+ 85,
+ 476,
+ 99,
+ 476,
+ 99,
+ 447,
+ 99,
+ 419,
+ 99,
+ 390,
+ 85,
+ 390,
+ 71,
+ 390,
+ 57,
+ 390
+ ],
+ "row_size": 16,
+ "col_size": 30,
+ "stage": "2",
+ "amount": 0,
+ "hint": "N12区"
+ },
+ {
+ "areacode": "bt8yrj74fetj",
+ "areaname": "D4区",
+ "polygon": [
+ 234,
+ 412,
+ 223,
+ 423,
+ 215,
+ 440,
+ 215,
+ 463,
+ 236,
+ 463,
+ 256,
+ 463,
+ 277,
+ 463,
+ 277,
+ 440,
+ 277,
+ 419,
+ 277,
+ 396,
+ 256,
+ 396,
+ 242,
+ 402,
+ 234,
+ 412
+ ],
+ "row_size": 20,
+ "col_size": 30,
+ "stage": "2",
+ "amount": 0,
+ "hint": "D4区"
+ },
+ {
+ "areacode": "sm0jwq2gt60m",
+ "areaname": "P区",
+ "polygon": [
+ 355,
+ 486,
+ 355,
+ 501,
+ 329,
+ 500,
+ 329,
+ 515,
+ 365,
+ 515,
+ 400,
+ 515,
+ 436,
+ 515,
+ 436,
+ 500,
+ 436,
+ 484,
+ 436,
+ 469,
+ 400,
+ 469,
+ 360,
+ 469,
+ 355,
+ 486
+ ],
+ "row_size": 20,
+ "col_size": 40,
+ "stage": "2",
+ "amount": 0,
+ "hint": "P区"
+ },
+ {
+ "areacode": "dn5kn974fetl",
+ "areaname": "B3区",
+ "polygon": [
+ 286,
+ 193,
+ 286,
+ 216,
+ 286,
+ 238,
+ 286,
+ 261,
+ 302,
+ 261,
+ 319,
+ 261,
+ 335,
+ 261,
+ 335,
+ 238,
+ 335,
+ 216,
+ 335,
+ 193,
+ 319,
+ 193,
+ 302,
+ 193,
+ 286,
+ 193
+ ],
+ "row_size": 20,
+ "col_size": 30,
+ "stage": "2",
+ "amount": 0,
+ "hint": "B3区"
+ },
+ {
+ "areacode": "32lnp9jukqcs",
+ "areaname": "D3区",
+ "polygon": [
+ 286,
+ 398,
+ 286,
+ 419,
+ 286,
+ 441,
+ 286,
+ 462,
+ 302,
+ 462,
+ 317,
+ 462,
+ 333,
+ 462,
+ 333,
+ 441,
+ 333,
+ 419,
+ 333,
+ 398,
+ 317,
+ 398,
+ 302,
+ 398,
+ 286,
+ 398
+ ],
+ "row_size": 20,
+ "col_size": 30,
+ "stage": "2",
+ "amount": 0,
+ "hint": "D3区"
+ },
+ {
+ "areacode": "u1w8mhej0jlk",
+ "areaname": "D2区",
+ "polygon": [
+ 347,
+ 396,
+ 347,
+ 418,
+ 347,
+ 441,
+ 347,
+ 463,
+ 362,
+ 463,
+ 376,
+ 463,
+ 391,
+ 463,
+ 391,
+ 441,
+ 391,
+ 418,
+ 391,
+ 396,
+ 376,
+ 396,
+ 362,
+ 396,
+ 347,
+ 396
+ ],
+ "row_size": 20,
+ "col_size": 30,
+ "stage": "2",
+ "amount": 0,
+ "hint": "D2区"
+ },
+ {
+ "areacode": "p42ypdej0jla",
+ "areaname": "D1区",
+ "polygon": [
+ 404,
+ 397,
+ 404,
+ 419,
+ 404,
+ 440,
+ 404,
+ 462,
+ 424,
+ 462,
+ 444,
+ 462,
+ 464,
+ 462,
+ 464,
+ 440,
+ 460,
+ 435,
+ 457,
+ 425,
+ 443,
+ 411,
+ 424,
+ 397,
+ 404,
+ 397
+ ],
+ "row_size": 20,
+ "col_size": 30,
+ "stage": "2",
+ "amount": 0,
+ "hint": "D1区"
+ },
+ {
+ "areacode": "0ca4mx2gt615",
+ "areaname": "H2区",
+ "polygon": [
+ 293,
+ 144,
+ 293,
+ 153,
+ 293,
+ 162,
+ 293,
+ 171,
+ 307,
+ 171,
+ 321,
+ 171,
+ 335,
+ 171,
+ 335,
+ 162,
+ 335,
+ 153,
+ 335,
+ 144,
+ 321,
+ 144,
+ 307,
+ 144,
+ 293,
+ 144
+ ],
+ "row_size": 20,
+ "col_size": 30,
+ "stage": "2",
+ "amount": 0,
+ "hint": "H2区"
+ },
+ {
+ "areacode": "q4bf4074fets",
+ "areaname": "F区",
+ "polygon": [
+ 163,
+ 139,
+ 163,
+ 155,
+ 163,
+ 170,
+ 163,
+ 186,
+ 181,
+ 186,
+ 199,
+ 186,
+ 217,
+ 186,
+ 217,
+ 170,
+ 217,
+ 155,
+ 217,
+ 139,
+ 199,
+ 139,
+ 181,
+ 139,
+ 163,
+ 139
+ ],
+ "row_size": 20,
+ "col_size": 35,
+ "stage": "2",
+ "amount": 0,
+ "hint": "F区"
+ },
+ {
+ "areacode": "wpks2e74fett",
+ "areaname": "N8区",
+ "polygon": [
+ 93,
+ 121,
+ 93,
+ 136,
+ 93,
+ 149,
+ 93,
+ 164,
+ 108,
+ 164,
+ 123,
+ 164,
+ 138,
+ 164,
+ 138,
+ 149,
+ 138,
+ 136,
+ 138,
+ 121,
+ 123,
+ 121,
+ 108,
+ 121,
+ 93,
+ 121
+ ],
+ "row_size": 20,
+ "col_size": 35,
+ "stage": "2",
+ "amount": 0,
+ "hint": "N8区"
+ },
+ {
+ "areacode": "9xnc21jukqd0",
+ "areaname": "N区",
+ "polygon": [
+ 552,
+ 372,
+ 554,
+ 401,
+ 553,
+ 423,
+ 545,
+ 459,
+ 555,
+ 465,
+ 558,
+ 462,
+ 562,
+ 453,
+ 568,
+ 426,
+ 569,
+ 398,
+ 565,
+ 367,
+ 564,
+ 367,
+ 561,
+ 369,
+ 552,
+ 372
+ ],
+ "row_size": 15,
+ "col_size": 40,
+ "stage": "2",
+ "amount": 89,
+ "hint": "N区"
+ },
+ {
+ "areacode": "ul1nl874fetw",
+ "areaname": "R区",
+ "polygon": [
+ 157,
+ 469,
+ 157,
+ 484,
+ 157,
+ 497,
+ 157,
+ 512,
+ 177,
+ 512,
+ 196,
+ 512,
+ 216,
+ 512,
+ 216,
+ 497,
+ 216,
+ 484,
+ 216,
+ 469,
+ 196,
+ 469,
+ 177,
+ 469,
+ 157,
+ 469
+ ],
+ "row_size": 20,
+ "col_size": 40,
+ "stage": "2",
+ "amount": 0,
+ "hint": "R区"
+ },
+ {
+ "areacode": "8ejjq6ej0jlg",
+ "areaname": "B1区",
+ "polygon": [
+ 406,
+ 193,
+ 406,
+ 214,
+ 406,
+ 237,
+ 406,
+ 258,
+ 424,
+ 258,
+ 442,
+ 258,
+ 460,
+ 257,
+ 461,
+ 237,
+ 461,
+ 217,
+ 461,
+ 193,
+ 442,
+ 193,
+ 424,
+ 193,
+ 406,
+ 193
+ ],
+ "row_size": 20,
+ "col_size": 30,
+ "stage": "2",
+ "amount": 0,
+ "hint": "B1区"
+ },
+ {
+ "areacode": "kt5npejukqd3",
+ "areaname": "K区",
+ "polygon": [
+ 466,
+ 140,
+ 466,
+ 155,
+ 466,
+ 172,
+ 466,
+ 187,
+ 481,
+ 187,
+ 494,
+ 187,
+ 509,
+ 187,
+ 509,
+ 172,
+ 509,
+ 155,
+ 509,
+ 140,
+ 494,
+ 140,
+ 481,
+ 140,
+ 466,
+ 140
+ ],
+ "row_size": 20,
+ "col_size": 40,
+ "stage": "2",
+ "amount": 0,
+ "hint": "K区"
+ },
+ {
+ "areacode": "w1perrjukqd5",
+ "areaname": "N15区",
+ "polygon": [
+ 225,
+ 530,
+ 225,
+ 545,
+ 224,
+ 565,
+ 247,
+ 566,
+ 247,
+ 578,
+ 290,
+ 582,
+ 325,
+ 580,
+ 326,
+ 561,
+ 326,
+ 545,
+ 326,
+ 530,
+ 292,
+ 530,
+ 259,
+ 530,
+ 225,
+ 530
+ ],
+ "row_size": 20,
+ "col_size": 40,
+ "stage": "2",
+ "amount": 0,
+ "hint": "N15区"
+ },
+ {
+ "areacode": "c9e74k2gt61e",
+ "areaname": "C3区",
+ "polygon": [
+ 134,
+ 364,
+ 134,
+ 380,
+ 134,
+ 396,
+ 134,
+ 412,
+ 160,
+ 412,
+ 185,
+ 412,
+ 211,
+ 412,
+ 211,
+ 396,
+ 211,
+ 380,
+ 211,
+ 364,
+ 185,
+ 364,
+ 160,
+ 364,
+ 134,
+ 364
+ ],
+ "row_size": 24,
+ "col_size": 43,
+ "stage": "2",
+ "amount": 0,
+ "hint": "C3区"
+ },
+ {
+ "areacode": "y424tp2gt61f",
+ "areaname": "A3区",
+ "polygon": [
+ 451,
+ 364,
+ 453,
+ 373,
+ 470,
+ 390,
+ 486,
+ 399,
+ 493,
+ 413,
+ 516,
+ 414,
+ 541,
+ 414,
+ 541,
+ 398,
+ 541,
+ 380,
+ 541,
+ 364,
+ 516,
+ 364,
+ 493,
+ 364,
+ 451,
+ 364
+ ],
+ "row_size": 30,
+ "col_size": 60,
+ "stage": "2",
+ "amount": 0,
+ "hint": "A3区"
+ },
+ {
+ "areacode": "d2ekxysa808x",
+ "areaname": "C2区",
+ "polygon": [
+ 133,
+ 241,
+ 133,
+ 259,
+ 133,
+ 276,
+ 133,
+ 294,
+ 158,
+ 294,
+ 185,
+ 294,
+ 210,
+ 294,
+ 210,
+ 276,
+ 210,
+ 259,
+ 210,
+ 241,
+ 185,
+ 241,
+ 158,
+ 241,
+ 133,
+ 241
+ ],
+ "row_size": 24,
+ "col_size": 40,
+ "stage": "2",
+ "amount": 0,
+ "hint": "C2区"
+ },
+ {
+ "areacode": "x26ltu2gt61h",
+ "areaname": "C1区",
+ "polygon": [
+ 134,
+ 304,
+ 134,
+ 318,
+ 134,
+ 333,
+ 134,
+ 347,
+ 165,
+ 347,
+ 197,
+ 347,
+ 228,
+ 347,
+ 228,
+ 333,
+ 228,
+ 318,
+ 228,
+ 304,
+ 197,
+ 304,
+ 165,
+ 304,
+ 134,
+ 304
+ ],
+ "row_size": 24,
+ "col_size": 30,
+ "stage": "2",
+ "amount": 0,
+ "hint": "C1区"
+ },
+ {
+ "areacode": "02apw92gt618",
+ "areaname": "N1区",
+ "polygon": [
+ 581,
+ 276,
+ 581,
+ 296,
+ 581,
+ 316,
+ 604,
+ 321,
+ 606,
+ 335,
+ 607,
+ 336,
+ 620,
+ 335,
+ 620,
+ 316,
+ 620,
+ 296,
+ 620,
+ 276,
+ 607,
+ 276,
+ 594,
+ 276,
+ 581,
+ 276
+ ],
+ "row_size": 20,
+ "col_size": 30,
+ "stage": "2",
+ "amount": 0,
+ "hint": "N1区"
+ },
+ {
+ "areacode": "sgatj4jukqdb",
+ "areaname": "N5区",
+ "polygon": [
+ 334,
+ 75,
+ 334,
+ 92,
+ 334,
+ 109,
+ 334,
+ 126,
+ 367,
+ 126,
+ 399,
+ 126,
+ 432,
+ 126,
+ 432,
+ 109,
+ 432,
+ 92,
+ 432,
+ 75,
+ 399,
+ 75,
+ 367,
+ 75,
+ 334,
+ 75
+ ],
+ "row_size": 20,
+ "col_size": 35,
+ "stage": "2",
+ "amount": 0,
+ "hint": "N5区"
+ },
+ {
+ "areacode": "c4m1arjukqdc",
+ "areaname": "B4区",
+ "polygon": [
+ 216,
+ 193,
+ 216,
+ 215,
+ 216,
+ 239,
+ 216,
+ 261,
+ 236,
+ 261,
+ 256,
+ 261,
+ 276,
+ 261,
+ 276,
+ 239,
+ 276,
+ 215,
+ 276,
+ 193,
+ 256,
+ 193,
+ 236,
+ 193,
+ 216,
+ 193
+ ],
+ "row_size": 20,
+ "col_size": 30,
+ "stage": "2",
+ "amount": 0,
+ "hint": "B4区"
+ },
+ {
+ "areacode": "fsp4282gt61b",
+ "areaname": "N6区",
+ "polygon": [
+ 246,
+ 74,
+ 246,
+ 91,
+ 246,
+ 109,
+ 246,
+ 126,
+ 273,
+ 126,
+ 299,
+ 126,
+ 326,
+ 126,
+ 326,
+ 109,
+ 326,
+ 91,
+ 326,
+ 74,
+ 299,
+ 74,
+ 273,
+ 74,
+ 246,
+ 74
+ ],
+ "row_size": 20,
+ "col_size": 35,
+ "stage": "2",
+ "amount": 0,
+ "hint": "N6区"
+ },
+ {
+ "areacode": "9hw55eej0jlx",
+ "areaname": "A1区",
+ "polygon": [
+ 454,
+ 306,
+ 454,
+ 320,
+ 454,
+ 336,
+ 454,
+ 350,
+ 484,
+ 350,
+ 513,
+ 350,
+ 543,
+ 350,
+ 543,
+ 336,
+ 543,
+ 320,
+ 543,
+ 306,
+ 513,
+ 306,
+ 484,
+ 306,
+ 454,
+ 306
+ ],
+ "row_size": 25,
+ "col_size": 50,
+ "stage": "2",
+ "amount": 0,
+ "hint": "A1区"
+ },
+ {
+ "areacode": "cddsjlsa8097",
+ "areaname": "N16区",
+ "polygon": [
+ 335,
+ 534,
+ 335,
+ 550,
+ 335,
+ 565,
+ 335,
+ 581,
+ 369,
+ 581,
+ 404,
+ 581,
+ 438,
+ 581,
+ 438,
+ 565,
+ 438,
+ 550,
+ 438,
+ 534,
+ 404,
+ 534,
+ 369,
+ 534,
+ 335,
+ 534
+ ],
+ "row_size": 20,
+ "col_size": 40,
+ "stage": "2",
+ "amount": 0,
+ "hint": "N16区"
+ }
+ ]
+ );
+ async function draw() {
+ const ctx = uni.createCanvasContext('canvas', instance);
+ ctx.save(); // 保存当前状态
+ ctx.translate(offsetX.value, offsetY.value); // 应用偏移
+ ctx.scale(scale.value, scale.value); // 应用缩放
+ const res = await uni.getImageInfo({
+ src: imgUrl.value
+ });
+ ctx.drawImage(res.path, 0, 0, canvasWidth.value, canvasHeight.value);
+ ctx.restore(); // 恢复之前保存的状态
+ // 绘制每个图形
+ blocks.value.forEach((block) => {
+ ctx.beginPath();
+ // ctx.fillStyle = block.color;
+ // 应用缩放
+ ctx.scale(scale.value, scale.value); // 应用缩放
+ switch (block.hint) {
+ case block.hint: // 四边形
+ for (let i = 0; i < block.polygon.length; i += 2) {
+ const x = block.polygon[i];
+ const y = block.polygon[i + 1];
+ if (i === 0) {
+ ctx.moveTo(x, y);
+ } else {
+ ctx.lineTo(x, y);
+ }
+ }
+ ctx.closePath();
+ break;
+ }
-async function draw() {
- const ctx = uni.createCanvasContext('canvas', instance);
- ctx.save(); // 保存当前状态
- ctx.translate(offsetX.value, offsetY.value); // 应用偏移
- ctx.scale(scale.value, scale.value); // 应用缩放
- const res = await uni.getImageInfo({ src: imgUrl.value });
- ctx.drawImage(res.path, 0, 0); // 根据变换后的坐标系绘制图片
- ctx.restore(); // 恢复之前保存的状态
-
+ ctx.restore(); // 恢复缩放前的状态,避免影响其他绘制
- ctx.draw();
-}
+ ctx.stroke(); // 绘制边框
+ if (block.color) ctx.fill(); // 如果有填充色就填充
+ });
+
+ ctx.draw()
+ }
+
+
+
+ // 处理canvas触摸事件
+ function handleCanvasTouch(event) {
+ // 获取触摸点的坐标
+ const x = event.touches[0].x;
+ const y = event.touches[0].y;
+ console.log(x, y, '12');
+
+ }
- // async function draw() {
- // const ctx = uni.createCanvasContext('canvas', instance) // 创建canvas绘图上下文
- // ctx.scale(scale.value, scale.value);
- // const res = await uni.getImageInfo({
- // src: imgUrl.value,
- // })
- // ctx.drawImage(res.path, 0, 0);
-
- // // ctx.beginPath();
- // // ctx.moveTo(50, 50); // 左下角点
- // // ctx.lineTo(150, 50); // 右下角点
- // // ctx.lineTo(200, 100); // 右上角点
- // // ctx.lineTo(100, 100); // 左上角点
- // // ctx.closePath(); // 闭合路径
- // // ctx.stroke(); // 绘制边框
-
- // // 先不删
- // // let xoffset = 0, yoffset = 0, flag = false;
- // // polygonList.forEach((level, index) => {
- // // // console.log('level',level)
- // // ctx.moveTo(level.polygon[0] + xoffset, level.polygon[0] + yoffset)
- // // level.polygon.forEach((level2,level2Index)=>{
- // // ctx.beginPath()
- // // if(level2Index != level.polygon.length ){
- // // ctx.lineTo(level2 + xoffset, level.polygon[level2Index+1])
- // // console.log(level2 + xoffset, level.polygon[level2Index+1])
- // // }else{
- // // ctx.lineTo(level2 + xoffset, level.polygon[0])
- // // console.log(level2 + xoffset, level.polygon[0])
- // // }
- // // ctx.closePath()
- // // })
- // // if(polygonList.length == index){
- // // flag = true
- // // }
- // // })
- // ctx.draw()
- // }
-
- // 处理canvas触摸事件
- function handleCanvasTouch(event) {
- // 获取触摸点的坐标
- const x = event.touches[0].x;
- const y = event.touches[0].y;
- console.log(x,y,'12');
-
- }
-
// 触摸开始
const handleTouchStart = (e) => {
console.log('handleTouchStart')
- if (e.touches.length === 1) {
- // 单指拖动
- startX.value = e.touches[0].clientX - offsetX.value
- startY.value = e.touches[0].clientY - offsetY.value
- isDragging.value = true
- } else if (e.touches.length === 2) {
- // 双指缩放
- const x1 = e.touches[0].clientX
- const y1 = e.touches[0].clientY
- const x2 = e.touches[1].clientX
- const y2 = e.touches[1].clientY
- lastDistance.value = Math.sqrt(Math.pow(x2 - x1, 2) + Math.pow(y2 - y1, 2))
- }
+ // 获取触摸点的坐标
+ const x = e.touches[0].x;
+ const y = e.touches[0].y;
+ // 判断点击位置
+ blocks.value.forEach((block) => {
+ if (isPointInQuadrilateral(x, y, block.polygon)) {
+ uni.showModal({
+ title: '提示',
+ content: block.hint,
+ showCancel: true, // 显示取消按钮
+ success: (res) => {
+ if (res.confirm) {
+ console.log('用户点击了“确定”按钮');
+ } else if (res.cancel) {
+ console.log('用户点击了“取消”按钮');
+ }
+ },
+ });
+ }
+ });
+ if (e.touches.length === 1) {
+ // 单指拖动
+ startX.value = e.touches[0].clientX - offsetX.value
+ startY.value = e.touches[0].clientY - offsetY.value
+ isDragging.value = true
+ } else if (e.touches.length === 2) {
+ // 双指缩放
+ const x1 = e.touches[0].clientX
+ const y1 = e.touches[0].clientY
+ const x2 = e.touches[1].clientX
+ const y2 = e.touches[1].clientY
+ lastDistance.value = Math.sqrt(Math.pow(x2 - x1, 2) + Math.pow(y2 - y1, 2))
+ }
}
-
+
// 触摸移动
const handleTouchMove = (e) => {
- if (e.touches.length === 1 && isDragging.value) {
- // 单指移动逻辑...
- offsetX.value = e.touches[0].clientX - startX.value;
- offsetY.value = e.touches[0].clientY - startY.value;
- } else if (e.touches.length === 2) {
- // 双指缩放逻辑...
- const x1 = e.touches[0].clientX, y1 = e.touches[0].clientY;
- const x2 = e.touches[1].clientX, y2 = e.touches[1].clientY;
- const distance = Math.sqrt(Math.pow(x2 - x1, 2) + Math.pow(y2 - y1, 2));
-
- if (lastDistance.value > 0) {
- scale.value = Math.min(Math.max(scale.value * (distance / lastDistance.value), 0.5), 4);
- draw(); // 重新绘制Canvas内容
- }
- lastDistance.value = distance;
- }
+ console.log('11111');
+ if (e.touches.length === 1 && isDragging.value) {
+ // 单指移动逻辑...
+ offsetX.value = e.touches[0].clientX - startX.value;
+ offsetY.value = e.touches[0].clientY - startY.value;
+ } else if (e.touches.length === 2) {
+ // 双指缩放逻辑...
+ const x1 = e.touches[0].clientX,
+ y1 = e.touches[0].clientY;
+ const x2 = e.touches[1].clientX,
+ y2 = e.touches[1].clientY;
+ const distance = Math.sqrt(Math.pow(x2 - x1, 2) + Math.pow(y2 - y1, 2));
+
+ if (lastDistance.value > 0) {
+ scale.value = Math.min(Math.max(scale.value * (distance / lastDistance.value), 0.5), 4);
+ draw(); // 重新绘制Canvas内容
+ }
+ lastDistance.value = distance;
+ }
};
-
+
+
// 触摸结束
const handleTouchEnd = () => {
console.log('handleTouchEnd')
- lastDistance.value = -1
- isDragging.value = false
+ lastDistance.value = -1
+ isDragging.value = false
}
-
+
// 按钮点击事件处理函数
const handleDraw = () => {
draw(); // 调用绘图函数
@@ -2007,21 +2020,51 @@ async function draw() {
// },300)
// // 确保在组件挂载后可以获取到Canvas元素
// })
+ // useRafFn(() => {
+ // draw()
+ // })
onReady(() => {
console.log('onReadyonReady');
uni.downloadFile({
- url:imgUrl.value,
- success: function (sres) {
- console.log(sres,'sres');
+ url: imgUrl.value,
+ success: function(sres) {
+ console.log(sres, 'sres');
imgUrl.value = sres.tempFilePath || sres.path
// setInterval(()=>{
- draw()
+ draw()
// },16)
- },fail:function(fres){
- console.log('fres',fres)
- }
+ },
+ fail: function(fres) {
+ console.log('fres', fres)
+ }
})
})
+function isPointInQuadrilateral(px, py, polygon) {
+ let inside = false;
+ const n = polygon.length / 2; // 因为每两个数表示一个点(x,y)
+ for (let i = 0; i < n; i++) {
+ let p1_x = polygon[2 * i];
+ let p1_y = polygon[2 * i + 1];
+ let p2_x, p2_y;
+ if (i === n - 1) { // 最后一个点与第一个点相连形成闭合
+ p2_x = polygon[0];
+ p2_y = polygon[1];
+ } else {
+ p2_x = polygon[2 * i + 2];
+ p2_y = polygon[2 * i + 3];
+ }
+
+ if (py > Math.min(p1_y, p2_y) && py <= Math.max(p1_y, p2_y) && px <= Math.max(p1_x, p2_x)) {
+ if (p1_y !== p2_y) {
+ let xinters = (py - p1_y) * (p2_x - p1_x) / (p2_y - p1_y) + p1_x;
+ if (p1_x === p2_x || px <= xinters) {
+ inside = !inside;
+ }
+ }
+ }
+ }
+ return inside;
+}