Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
yma16
可视化 csdn 数据
提交
ee58aaea
可
可视化 csdn 数据
项目概览
yma16
/
可视化 csdn 数据
该项目与 Fork 源项目分叉
Fork自
inscode / VueJS
通知
17
Star
15
Fork
10
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
可
可视化 csdn 数据
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
“94bbb3419b3e32fbbf8fc2079cf9355472d63b67”上不存在“...api-diff/v3.1-Release/js-apidiff-distributed-data.md”
提交
ee58aaea
编写于
11月 25, 2023
作者:
Q
qq_38870145
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Sat Nov 25 22:58:00 CST 2023 inscode
上级
31896db3
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
117 addition
and
113 deletion
+117
-113
src/App.vue
src/App.vue
+116
-112
src/components/draw/Draw.vue
src/components/draw/Draw.vue
+1
-1
未找到文件。
src/App.vue
浏览文件 @
ee58aaea
<
script
setup
>
<
script
setup
>
import
GameChart
from
'
./components/GameChart.vue
'
import
SearchGrade
from
'
./components/SearchGrade.vue
'
import
GameChart
from
'
./components/GameChart.vue
'
import
Draw
from
'
./components/draw/Draw.vue
'
import
SearchGrade
from
'
./components/SearchGrade.vue
'
import
Commit
from
'
./components/commit/Commit.vue
'
import
Draw
from
'
./components/draw/Draw.vue
'
import
{
reactive
,
onBeforeMount
,
onMounted
}
from
'
vue
'
;
import
Commit
from
'
./components/commit/Commit.vue
'
import
html2canvas
from
'
html2canvas
'
;
import
{
reactive
,
onBeforeMount
,
onMounted
}
from
'
vue
'
;
import
html2canvas
from
'
html2canvas
'
;
// state
const
state
=
reactive
({
// state
current
:
'
评论
'
const
state
=
reactive
({
})
current
:
'
评论
'
})
/** 下载图片 */
const
downloadBase64
=
(
content
,
fileName
)
=>
{
/** 下载图片 */
const
base64ToBlob
=
function
(
code
)
{
const
downloadBase64
=
(
content
,
fileName
)
=>
{
let
parts
=
code
.
split
(
'
;base64,
'
);
const
base64ToBlob
=
function
(
code
)
{
let
contentType
=
parts
[
0
].
split
(
'
:
'
)[
1
];
let
parts
=
code
.
split
(
'
;base64,
'
);
let
raw
=
window
.
atob
(
parts
[
1
]);
let
contentType
=
parts
[
0
].
split
(
'
:
'
)[
1
];
let
rawLength
=
raw
.
length
;
let
raw
=
window
.
atob
(
parts
[
1
]);
let
uInt8Array
=
new
Uint8Array
(
rawLength
);
let
rawLength
=
raw
.
length
;
for
(
let
i
=
0
;
i
<
rawLength
;
++
i
)
{
let
uInt8Array
=
new
Uint8Array
(
rawLength
);
uInt8Array
[
i
]
=
raw
.
charCodeAt
(
i
);
for
(
let
i
=
0
;
i
<
rawLength
;
++
i
)
{
}
uInt8Array
[
i
]
=
raw
.
charCodeAt
(
i
);
}
return
new
Blob
([
uInt8Array
],
{
type
:
contentType
return
new
Blob
([
uInt8Array
],
{
});
type
:
contentType
};
});
let
aLink
=
document
.
createElement
(
'
a
'
);
};
let
blob
=
base64ToBlob
(
content
);
let
aLink
=
document
.
createElement
(
'
a
'
);
aLink
.
download
=
fileName
+
'
.png
'
;
let
blob
=
base64ToBlob
(
content
);
aLink
.
href
=
URL
.
createObjectURL
(
blob
);
aLink
.
download
=
fileName
+
'
.png
'
;
aLink
.
click
();
aLink
.
href
=
URL
.
createObjectURL
(
blob
);
};
aLink
.
click
();
};
// 截图
const
shotAction
=
()
=>
{
// 截图
html2canvas
(
document
.
getElementById
(
'
render-id
'
)).
then
(
function
(
canvas
)
{
const
shotAction
=
()
=>
{
console
.
log
(
'
canvas
'
,
canvas
)
html2canvas
(
document
.
getElementById
(
'
render-id
'
),{
const
base64
=
canvas
.
toDataURL
().
replace
(
/^data:image
\/(
png|jpg
)
;base64,/
,
''
);
useCORS
:
true
,
const
base64img
=
`data:image/png;base64,
${
base64
}
`
;
proxy
:
'
inscode.csdn.net
'
downloadBase64
(
base64img
,
state
.
current
);
}).
then
(
function
(
canvas
)
{
// document.body.appendChild(canvas);
console
.
log
(
'
canvas
'
,
canvas
)
});
const
base64
=
canvas
.
toDataURL
().
replace
(
/^data:image
\/(
png|jpg
)
;base64,/
,
''
);
}
const
base64img
=
`data:image/png;base64,
${
base64
}
`
;
downloadBase64
(
base64img
,
state
.
current
);
onMounted
(()
=>
{
// document.body.appendChild(canvas);
console
.
log
(
'
html2canvas
'
,
html2canvas
)
});
})
}
// 之前
onMounted
(()
=>
{
onBeforeMount
(()
=>
{
console
.
log
(
'
html2canvas
'
,
html2canvas
)
const
href
=
window
.
location
.
href
})
const
data
=
{}
const
urlArray
=
href
.
split
(
'
?
'
)
// 之前
const
urlLength
=
urlArray
.
length
onBeforeMount
(()
=>
{
if
(
urlLength
>
1
)
{
const
href
=
window
.
location
.
href
urlArray
[
urlLength
-
1
].
split
(
'
&
'
).
forEach
(
item
=>
{
const
data
=
{}
const
itemArray
=
item
.
split
(
'
=
'
)
const
urlArray
=
href
.
split
(
'
?
'
)
const
key
=
itemArray
[
0
]
const
urlLength
=
urlArray
.
length
const
value
=
itemArray
[
1
]
if
(
urlLength
>
1
)
{
data
[
key
]
=
value
urlArray
[
urlLength
-
1
].
split
(
'
&
'
).
forEach
(
item
=>
{
})
const
itemArray
=
item
.
split
(
'
=
'
)
console
.
log
(
'
urlArray
'
,
urlArray
)
const
key
=
itemArray
[
0
]
if
(
data
[
'
type
'
]
=
'
csdn_game
'
)
{
const
value
=
itemArray
[
1
]
state
.
current
=
'
新星赛道选手信息可视化
'
data
[
key
]
=
value
}
})
else
if
(
data
[
'
type
'
]
=
'
csdn_grade
'
){
console
.
log
(
'
urlArray
'
,
urlArray
)
state
.
current
=
'
grade查询分数
'
if
(
data
[
'
type
'
]
=
'
csdn_game
'
)
{
}
state
.
current
=
'
新星赛道选手信息可视化
'
else
if
(
data
[
'
type
'
]
=
'
draw
'
){
}
state
.
current
=
'
抽奖
'
else
if
(
data
[
'
type
'
]
=
'
csdn_grade
'
){
}
state
.
current
=
'
grade查询分数
'
else
if
(
data
[
'
type
'
]
=
'
commit
'
){
}
state
.
current
=
'
评论
'
else
if
(
data
[
'
type
'
]
=
'
draw
'
){
}
state
.
current
=
'
抽奖
'
}
}
})
else
if
(
data
[
'
type
'
]
=
'
commit
'
){
</
script
>
state
.
current
=
'
评论
'
}
<
template
>
}
<div
class=
"container-main"
>
})
<div
style=
"text-align: center;padding: 20px;"
>
</
script
>
<a-radio-group
v-model:value=
"state.current"
name=
"radioGroup"
>
<a-radio
value=
"grade查询分数"
>
csdn查询分数
</a-radio>
<
template
>
<a-radio
value=
"新星赛道选手信息可视化"
>
csdn新星赛道可视化
</a-radio>
<div
class=
"container-main"
>
<a-radio
value=
"抽奖"
>
随机抽奖
</a-radio>
<div
style=
"text-align: center;padding: 20px;"
>
<a-radio
value=
"评论"
>
csdn分析评论
</a-radio>
<a-radio-group
v-model:value=
"state.current"
name=
"radioGroup"
>
</a-radio-group>
<a-radio
value=
"grade查询分数"
>
csdn查询分数
</a-radio>
<a-button
type=
"primary"
@
click=
"shotAction"
>
<a-radio
value=
"新星赛道选手信息可视化"
>
csdn新星赛道可视化
</a-radio>
截图
<a-radio
value=
"抽奖"
>
随机抽奖
</a-radio>
</a-button>
<a-radio
value=
"评论"
>
csdn分析评论
</a-radio>
</div>
</a-radio-group>
<div
id=
"render-id"
>
<a-button
type=
"primary"
@
click=
"shotAction"
>
<SearchGrade
v-if=
"state.current === 'grade查询分数'"
/>
截图
<GameChart
v-else-if=
"state.current === '新星赛道选手信息可视化'"
/>
</a-button>
<Commit
v-else-if=
"state.current === '评论'"
/>
</div>
<Draw
v-else
/>
<div
id=
"render-id"
>
</div>
<SearchGrade
v-if=
"state.current === 'grade查询分数'"
/>
</div>
<GameChart
v-else-if=
"state.current === '新星赛道选手信息可视化'"
/>
</
template
>
<Commit
v-else-if=
"state.current === '评论'"
/>
<Draw
v-else
/>
<
style
scoped
>
</div>
.container-main
{
</div>
position
:
absolute
;
</
template
>
width
:
100vw
;
height
:
100vh
;
<
style
scoped
>
padding
:
10px
;
.container-main
{
margin
:
0
;
position
:
absolute
;
}
width
:
100vw
;
</
style
>
height
:
100vh
;
\ No newline at end of file
padding
:
10px
;
margin
:
0
;
}
</
style
>
src/components/draw/Draw.vue
浏览文件 @
ee58aaea
...
@@ -111,6 +111,6 @@ const restartGameBtn = () => {
...
@@ -111,6 +111,6 @@ const restartGameBtn = () => {
startGameBtn
()
startGameBtn
()
}
}
onMounted
(()
=>
{
onMounted
(()
=>
{
mockUserData
(
13
)
mockUserData
(
26
)
})
})
</
script
>
</
script
>
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录