From b582b40d5fcc16185745507c1aacdf7896ea61b4 Mon Sep 17 00:00:00 2001 From: xielue Date: Sat, 14 Jun 2025 12:15:33 +0800 Subject: [PATCH] =?UTF-8?q?v2=E7=89=88=E6=9C=AC=E5=88=9D=E7=A8=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/AppV2.vue | 24 +++ src/assets/chart-bar.png | Bin 0 -> 535 bytes src/assets/chart-line.png | Bin 0 -> 3232 bytes src/assets/chart-pie.png | Bin 0 -> 2129 bytes src/assets/table-basic.png | Bin 0 -> 1060 bytes src/assets/table-paged.png | Bin 0 -> 1060 bytes src/assets/text-paragraph.png | Bin 0 -> 1754 bytes src/assets/text-title.png | Bin 0 -> 909 bytes src/main.js | 3 +- src/v2/components/Canvas.vue | 65 +++++++++ src/v2/components/LayerPanel.vue | 61 ++++++++ src/v2/components/PropertyPanel.vue | 170 ++++++++++++++++++++++ src/v2/components/Toolbar.vue | 151 +++++++++++++++++++ src/v2/components/componentData.js | 107 ++++++++++++++ src/v2/components/elements/chart-bar.vue | 24 +++ src/v2/components/elements/chart-line.vue | 25 ++++ src/v2/components/elements/chart-pie.vue | 82 +++++++++++ src/v2/design.vue | 145 ++++++++++++++++++ src/v2/index.vue | 115 +++++++++++++++ 19 files changed, 971 insertions(+), 1 deletion(-) create mode 100644 src/AppV2.vue create mode 100644 src/assets/chart-bar.png create mode 100644 src/assets/chart-line.png create mode 100644 src/assets/chart-pie.png create mode 100644 src/assets/table-basic.png create mode 100644 src/assets/table-paged.png create mode 100644 src/assets/text-paragraph.png create mode 100644 src/assets/text-title.png create mode 100644 src/v2/components/Canvas.vue create mode 100644 src/v2/components/LayerPanel.vue create mode 100644 src/v2/components/PropertyPanel.vue create mode 100644 src/v2/components/Toolbar.vue create mode 100644 src/v2/components/componentData.js create mode 100644 src/v2/components/elements/chart-bar.vue create mode 100644 src/v2/components/elements/chart-line.vue create mode 100644 src/v2/components/elements/chart-pie.vue create mode 100644 src/v2/design.vue create mode 100644 src/v2/index.vue diff --git a/src/AppV2.vue b/src/AppV2.vue new file mode 100644 index 0000000..1ea59ce --- /dev/null +++ b/src/AppV2.vue @@ -0,0 +1,24 @@ + + + + + \ No newline at end of file diff --git a/src/assets/chart-bar.png b/src/assets/chart-bar.png new file mode 100644 index 0000000000000000000000000000000000000000..37e8eaea6b50fde838d4ac0f6f26c0159da5e2f4 GIT binary patch literal 535 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 AE&u=k literal 0 HcmV?d00001 diff --git a/src/assets/chart-pie.png b/src/assets/chart-pie.png new file mode 100644 index 0000000000000000000000000000000000000000..4d748701859b1a91f72fc332433203702921e5c0 GIT binary patch literal 2129 zcmV-X2(I^uP)Px#L}ge>W=%~1DgXcg2mk?xX#fNO00031000^Q000001E2u_0{{R30RRC20H6W@ z1ONa40RR91P@n?<1ONa40RR91Pyhe`05RZ9PXGW1yGcYrRCodHoC|CeMHt7w*(=Z@ zr5fZRLQqLt$Me>kcgtZ(w3K!h((AB*p?7fh?p2&QZBSeOfU*) z2%tnB3awmA6pe@?8nhKk>D`Y1sW!RW+uhsU+iP#{Zj-&+nf<0?Y|@pMLJ!K|U^xkr{86D5aS(|K*)SM_wStcvsio5de!D&J=NCJA+_xx<-r| z;lNo?JS>rX@WbrU-XNJyNH`au3LJp^l`*ylk-4QhbNE*(BDQD63_$mrJj0hpgGr`z z7pHVtqAN8e>}%n%Y6ONu!RQ=uwz2zl-=?iOIakApTRop*RWTC1ybZjM)JhXLqY1=m zG@4?zpQt~>huCE7=-oW{Dimo;8>dVnUeT87T2|Otx2_xOv3`4IW|JjbI!c`eFn2W{ z*sU8)M>8v?8#EU1{)_%7w*i#b2S3J2A8(yo$?&UEBwFrHD5K`qQYIy zyXRN%)o7;Qpm&R5ctMcnv2(*~W}ZKv8kB1yVGF>iYxqz(gN_2+5|nLwRGaX}v?vCc z-0L^4e&+uEc!p_ZC`1epgTxaog-)W`-eaW#v7m!iGv4J({n$z*Mg$N|b~Xly8tlDe z0YoHq5D>4mU9EQWT`n_rECa+~u^dfyBMP%@!%RgxLsm3rsqyYAGi6zFKEH}D!7sML zOhL|(W%F_6Qed>crU9ba&cwWKwb25cD91Q^e_G?|yNuM`6hOe6h-Ukq5yQ@w!Ho?r z8S>LGz}$7bKj7^E7)MQ0tp1P~7$>1AKNU{j5Wwh2_Q1;XP5W*mw+*AnkD)xE@2IhwV#N00= zOam1X{g^Xf-#`W-0CD3WBuoPp68%^v7Ib?n1Rx?X2~a0WQaJSrJgs)65fq|WLPSkuqBTXhrfJUN1G64|R!9N?ZnMg7zE!s>%A`mxH8xjeQ0beh9USfZ1 z$%O#qQW9VgtS|u;0uWP&GeHItJ;5mG%0r1G1YnCq#~{?A6in1Ky0kC!d=CM*Zvkt? zKyp-1DS^&$xra%B0uHF|PasHouAZu$$Ntn42#G);EcvM#UkJp+-f*3}GaLa`fS$$d zJm?(`ryS?!<+e5o`(mOhKmi7$@s>CTr0*W11ACXUi~2%ZD-)oFm!1Xv-@_S**YmiM zQE9|C%?R|Au@>|Jrrwz_QlLX*PS%#OPmI)66QEE=AMiGs@)aY7;!I|hQGav+q7P`s zSiIb*vAB@qbf~6`)f)9h7oadA4Wf7Pb;_tghs*iU;^vs~AuK>oA@ehdUW8H0FD09) zP?ySL;MiTp>dn+4EI?swcL_U&0p&F_hMgvh$UEU`rdQ0?+YmrubW{_q!sPmZ*#ev( z55JoHZB*nbXE)5&H{_|Do&oW?7v5MBcWZ{|$vNzt41oEVwtQrz-i9Mk7~fmME@6T> z1&4oFDJ&*+IL)yNPxxaBpirn?$Qq&b7!JkbPiJq8me(v~n<8<-G(b^U`$J}_eHE*7 zBazY4no_nh5_m$_R3E4;EU$uRVf6YG`A+H+eYiMy4w3hP(jO~nOA**nkZ8_6iN>K5 zcFO4d8{kc`3!dN*5kO%;3@kZKGzFpjDw450+1`&Idko-xF6wR97Eu#cR-#}XAIIhP zOTV$ob6uGJ3lD~tjcTS%<>gGayB@Xz6qR%D;x7L$GzW%PV9Ilg-4!-rPt5POqD?HR zUCg3(U(<@>-HTY%|5G(;06RdrD|s4L zH%&)0&Ol+~ksqxxf5JMxZTP`9?ddy zmI+=|2U`arURzsAhq~f#kvkP&AeTqi^B!q3ra+uVp=-|;uUDWlgCWx!QIwA3n{eEU zU98O$`(?y#L;K<B!MJ>E+X(ROG*D^b*SLh00000NkvXX Hu0mjfjQhPP literal 0 HcmV?d00001 diff --git a/src/assets/table-basic.png b/src/assets/table-basic.png new file mode 100644 index 0000000000000000000000000000000000000000..f2a5de4efc671e5d0357ab4e114dfa3103c891b1 GIT binary patch literal 1060 zcmeAS@N?(olHy`uVBq!ia0vp^0U*r51|<6gKdl8)jKx9jP7LeL$-D$|Tv8)E(|mmy zw18|52FCVG1{RPKAeI7R1_tH@j10^`nh_+nfC(-euz(rC1}QXr;NuTe-skD!7*fIb z_KtlQE<+o~yvK(|2ShH3rM1Y z_+EIDT=9a-Y2|T=rE5js?k^7Wnb{vbYw8jmCaXDjZXOR*|9E;?_aW9RS8j_op2}z3 z*wf4W!&<7hi%<{{+ILB z&DTC#h#a4KbVbzPn9JLn3hFWzzyIU8uOi`_v&yksi;az6|JM4bbwBw?(aY>DsprLw z*B5hkhrRzPb}`fVgnQ(-7f2`{Qc{+P2J;4nSvOf5mbo<=F>o)K8OxA?M^I{)!-M;R1!2j3XZBjHG?o2Y*A->A zXXo0gcQ^iY^A<+m`#NvFa9g9)PP+}SlmC`JX5uWp@Lgih(YMErJm@=}7ME`7mbr0e z==WKUai@aH!xAbEnmsui|L^l>&wppmvaV$J{4L-7*?yxg&}rRI)-W5W&yeMFh*n9L zZLmD}rhws=lI3fLGn{Gd%ooH?MzSaP8Cc6SZ1Xs`%UJkf1(%xZ2Pypt4VoQsGq3n{^NA% zz3pWmn4F3{ecKYVW%GASnEM|JpINM)tdk*h{O3RZoVOEBUhC6y*wZoP&ud13231zC zvg5|6boso-KPN8-ot*POx7_pB?!OOY9R7v8lVkr_oq0!x@vd6seJi(fJ}OeH{H~@; zA8sm%<$kr>eS1tB?p*x>%AuaFelF{r5}E)=+q<9u literal 0 HcmV?d00001 diff --git a/src/assets/table-paged.png b/src/assets/table-paged.png new file mode 100644 index 0000000000000000000000000000000000000000..f2a5de4efc671e5d0357ab4e114dfa3103c891b1 GIT binary patch literal 1060 zcmeAS@N?(olHy`uVBq!ia0vp^0U*r51|<6gKdl8)jKx9jP7LeL$-D$|Tv8)E(|mmy zw18|52FCVG1{RPKAeI7R1_tH@j10^`nh_+nfC(-euz(rC1}QXr;NuTe-skD!7*fIb z_KtlQE<+o~yvK(|2ShH3rM1Y z_+EIDT=9a-Y2|T=rE5js?k^7Wnb{vbYw8jmCaXDjZXOR*|9E;?_aW9RS8j_op2}z3 z*wf4W!&<7hi%<{{+ILB z&DTC#h#a4KbVbzPn9JLn3hFWzzyIU8uOi`_v&yksi;az6|JM4bbwBw?(aY>DsprLw z*B5hkhrRzPb}`fVgnQ(-7f2`{Qc{+P2J;4nSvOf5mbo<=F>o)K8OxA?M^I{)!-M;R1!2j3XZBjHG?o2Y*A->A zXXo0gcQ^iY^A<+m`#NvFa9g9)PP+}SlmC`JX5uWp@Lgih(YMErJm@=}7ME`7mbr0e z==WKUai@aH!xAbEnmsui|L^l>&wppmvaV$J{4L-7*?yxg&}rRI)-W5W&yeMFh*n9L zZLmD}rhws=lI3fLGn{Gd%ooH?MzSaP8Cc6SZ1Xs`%UJkf1(%xZ2Pypt4VoQsGq3n{^NA% zz3pWmn4F3{ecKYVW%GASnEM|JpINM)tdk*h{O3RZoVOEBUhC6y*wZoP&ud13231zC zvg5|6boso-KPN8-ot*POx7_pB?!OOY9R7v8lVkr_oq0!x@vd6seJi(fJ}OeH{H~@; zA8sm%<$kr>eS1tB?p*x>%AuaFelF{r5}E)=+q<9u literal 0 HcmV?d00001 diff --git a/src/assets/text-paragraph.png b/src/assets/text-paragraph.png new file mode 100644 index 0000000000000000000000000000000000000000..0b6c04b7a913b30e4713bc737157d0b39b037365 GIT binary patch literal 1754 zcmV<01||84P)Px#L}ge>W=%~1DgXcg2mk?xX#fNO00031000^Q000001E2u_0{{R30RRC20H6W@ z1ONa40RR91P@n?<1ONa40RR91Pyhe`05RZ9PXGW0L`g(JRCodHoNH_pRTRh1o!Me7 zx(L2NMPhI*&{D()@e!g8d{8RjZrOloAZVh|7-LKH@1Dp5iT z)Jl~okuTT>VyOuv6-lTercj{m&K%EeyJgs&-Fs(tTDrrXq?x6ljJhn9u6Z1vF!k2qMAGyz!n#9@iT@4rRuu_Kbjp0Qs=Z7{SMtGTH+o z{mFCQ&cb5huouOg%=K%#I%ygl*^;#pWX*lrl+T+& zp@B5bT$_bSu{E*eM{%1-M|*y~QM(wtXgyQYG)o%imvmTd*_2=CYM*CA@?<_uvFio!MyioT!pD!_D&;HTq#jz5(?%#Xydo?grNnbMfXejSdkuEE((!N~gi3ShJjZ|@7jk0gGb1wcsG z;9xX{cUx?p6@3FRT#NIKIQ&Lr9#5fzFqdw>9E{YW=kGT90$_P9E@udb3EX`t@U9p_ zh}09Sapo0M_NAN$7_PyW2}~2Am?pwOPtXeE0cZ(-gq}SYnXpy3arP6JNTBd3pa{ZP zJ<`4T7;L79o5pMs1v-HRph3&ZEm*qeZT7E3lZ-Ao*#lQ@!-Dc!_}VGFF%k@l^9W*i zD`x#{BF%13v~moPa;(P47MzpKLEW}p9m9o2 z0FF@mN8H9pYPUE)ADW-9#aoi>(jOfIq{wS%4*7#7?{{9=hI!IQ%F>ZUKC1)#LSZ~j zifI9Qm|g+dAKi??MaWKq8-P4c0lnz5xwjvF56AE+yTD%BD93x9MDC%OH+vb^5^ISu z1@^7_5FN+QY84({(dbJll%Q^>XA+gWD;d8d?AcaTg<4w>VwB^(=~>Y9fgTIw4W~ot zJ#1>+_Q0z{A#BhB@F(@gSGnk`E8TsHeu6i31mQdSCrt#r#7RDxD9G+T5z7xobIEiP z`&oMs4pWbONcIHm{P=aNIRJ-frG3t>elpoS185PogzkbIiPT_SMI8n$cBx`{4K6kq z93glQN;SB~PU8WPOVTOHedAJmcvxHSjAWEc&{rXYL-Y^0E2HBisvIwX35m04Sl3hT z*i30p#us{M{(Os|@1}-R6OD6WpVcbtK;Uvpd)ldoRR_<*`(IYE%ZawpU8ozU;bZD` zuO)1`v>)#tXk~E&^{{vQra>q5wr6++pCgSP*qf{HxQ2=9f&5q_8{OQbVckT-`kPBb zP)JaV6IHpmpLl>*D3ueuoZlvL2co3ICx zLu=*`{;ky*{vc8(1jv8IjDnmK1@dA2xl!#Ir3nG@UoYdoV#aTb^5L8@nhz>Rr>uIJ wUvBe(TqQvfPy`eKML-cy1QY>9z$JnI0Wz4H0gYcZ?EnA(07*qoM6N<$f+lbiZvX%Q literal 0 HcmV?d00001 diff --git a/src/assets/text-title.png b/src/assets/text-title.png new file mode 100644 index 0000000000000000000000000000000000000000..beca9e2a89fb6f894d8fcc798c27a82c281bdf47 GIT binary patch literal 909 zcmeAS@N?(olHy`uVBq!ia0vp^0U*r51|<6gKdl8)jKx9jP7LeL$-D$|Tv8)E(|mmy zw18|52FCVG1{RPKAeI7R1_tH@j10^`nh_+nfC(-euz(rC1}QXr;N#E0!1UeI#WAFU z@$DVM43R(qwg;8FA1Xz0Y!pz`bmdmunvl41ZbD*Wda`g+(~|9?7Z06_Yhqa~vQ0CW z*=&+uOGHcdkrgNJ+NFP-l6-&f+)C?v&+l z5rgyOB^(TscN|J#XjAhPWKb(?J^5&=N5mw#ou4n|Kba>tVR>RzX)~Am&p=1>ZS!|D zvt9L6UCWR*@7j-F8LhW=aeOJca{7gpcaD0diAUaRk$?9d+>n}X;chP_t}eEXbw)+R z=gE8ykMFOVYC2*1zVmz7;+~oY{1f;%#ebG?|HsLXZQuV`>~Uky^3UrQ*ebr=|0a+1 z!`EoSUc;q#?6h(yPM@|SHD}mFD`P)qp!~8F}?neOSK!G%&GVP z;%(fxTi@ota>b!zbIXqfZru7V>|e&;i+8f`d$H)uj|;Oq z+T;J&*Vp^{zS}ZyWOO5E&r;uh_Fzdt2P_dfFfauR{oobdUCz>E`THv +
+
+ +
+
+ + + + + \ No newline at end of file diff --git a/src/v2/components/LayerPanel.vue b/src/v2/components/LayerPanel.vue new file mode 100644 index 0000000..c3f3081 --- /dev/null +++ b/src/v2/components/LayerPanel.vue @@ -0,0 +1,61 @@ + + + + + \ No newline at end of file diff --git a/src/v2/components/PropertyPanel.vue b/src/v2/components/PropertyPanel.vue new file mode 100644 index 0000000..ad73c97 --- /dev/null +++ b/src/v2/components/PropertyPanel.vue @@ -0,0 +1,170 @@ + + + + + \ No newline at end of file diff --git a/src/v2/components/Toolbar.vue b/src/v2/components/Toolbar.vue new file mode 100644 index 0000000..cfae134 --- /dev/null +++ b/src/v2/components/Toolbar.vue @@ -0,0 +1,151 @@ + + + + + \ No newline at end of file diff --git a/src/v2/components/componentData.js b/src/v2/components/componentData.js new file mode 100644 index 0000000..954086b --- /dev/null +++ b/src/v2/components/componentData.js @@ -0,0 +1,107 @@ +export const componentList = [ + { + id: 'chart-line', + name: '线图', + type: 'line-chart', + icon: require('@/assets/chart-line.png'), + groupName: '图表', + component: () => import('./elements/chart-line.vue') // 新增组件引用 + }, + { + id: 'chart-bar', + name: '柱图', + type: 'bar-chart', + icon: require('@/assets/chart-bar.png'), + groupName: '图表', + component: () => import('./elements/chart-bar.vue'), + props: [ + { + name: 'title', + type: 'string', + label: '标题', + default: '柱图标题', + group: '基础' + }, + { + name: 'dbName', + type: 'string', + label: '数据源对象', + default: '', + group: '数据' + }, + ] + }, + { + id: 'chart-pie', + name: '饼图', + type: 'pie-chart', + icon: require('@/assets/chart-pie.png'), + groupName: '图表', + component: () => import('./elements/chart-pie.vue'), + props: [ // 新增props数组 + { + name: 'title', + type: 'string', + label: '标题', + default: '饼图标题', + group: '基础' + }, + { + name: 'dbName', + type: 'string', + label: '数据源对象', + default: '', + group: '数据' + }, + ], + defaultOption: { + x: 100, + y: 100, + width: 300, + height: 300 + } + }, + { + id: 'table-basic', + name: '基础表格', + type: 'basic-table', + icon: require('@/assets/table-basic.png'), + groupName: '表格' + }, + { + id: 'table-paged', + name: '分页表格', + type: 'paged-table', + icon: require('@/assets/table-paged.png'), + groupName: '表格' + }, + { + id: 'text-title', + name: '标题', + type: 'title-text', + icon: require('@/assets/text-title.png'), + groupName: '文字' + }, + { + id: 'text-paragraph', + name: '正文', + type: 'paragraph', + icon: require('@/assets/text-paragraph.png'), + groupName: '文字' + } +] + +// 根据groupName分组 +export function getComponentCategories() { + const groups = {} + componentList.forEach(item => { + if (!groups[item.groupName]) { + groups[item.groupName] = { + name: item.groupName, + items: [] + } + } + groups[item.groupName].items.push(item) + }) + return Object.values(groups) +} \ No newline at end of file diff --git a/src/v2/components/elements/chart-bar.vue b/src/v2/components/elements/chart-bar.vue new file mode 100644 index 0000000..b1a64ad --- /dev/null +++ b/src/v2/components/elements/chart-bar.vue @@ -0,0 +1,24 @@ + + + + + \ No newline at end of file diff --git a/src/v2/components/elements/chart-line.vue b/src/v2/components/elements/chart-line.vue new file mode 100644 index 0000000..374dd69 --- /dev/null +++ b/src/v2/components/elements/chart-line.vue @@ -0,0 +1,25 @@ + + + + + \ No newline at end of file diff --git a/src/v2/components/elements/chart-pie.vue b/src/v2/components/elements/chart-pie.vue new file mode 100644 index 0000000..fac0fdf --- /dev/null +++ b/src/v2/components/elements/chart-pie.vue @@ -0,0 +1,82 @@ + + + + + \ No newline at end of file diff --git a/src/v2/design.vue b/src/v2/design.vue new file mode 100644 index 0000000..2521c38 --- /dev/null +++ b/src/v2/design.vue @@ -0,0 +1,145 @@ + + + + + + + \ No newline at end of file diff --git a/src/v2/index.vue b/src/v2/index.vue new file mode 100644 index 0000000..c3ce931 --- /dev/null +++ b/src/v2/index.vue @@ -0,0 +1,115 @@ + + + + + + + \ No newline at end of file