Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
N
NFT
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
JIRA
JIRA
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
hanfeng zhang
NFT
Commits
1149a08e
Commit
1149a08e
authored
Jul 28, 2021
by
hanfeng zhang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
321
parent
55c7d042
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
162 additions
and
33 deletions
+162
-33
iconfont.js
public/iconfont.js
+0
-0
ScrollBar.vue
src/components/common/ScrollBar.vue
+32
-10
agreement.ts
src/constant/agreement.ts
+23
-1
style.less
src/style.less
+3
-0
cliboard.ts
src/util/cliboard.ts
+2
-0
UserAgreement.vue
src/view/Auth/Login/UserAgreement.vue
+45
-6
index.vue
src/view/Home/index.vue
+0
-1
index.vue
src/view/NFT/Detail/index.vue
+2
-2
index.vue
src/view/NFT/Mynft/index.vue
+14
-3
index.vue
src/view/NFT/Transfer/index.vue
+41
-10
No files found.
public/iconfont.js
View file @
1149a08e
This diff is collapsed.
Click to expand it.
src/components/common/ScrollBar.vue
View file @
1149a08e
<
template
>
<div
class=
"w-full flex justify-between py-3 items-center"
>
<div
class=
"w-full flex justify-between py-3 items-center"
>
<div
class=
"flex-grow flex flex-row "
>
<van-tabs
v-model=
"active"
class=
'w-11/12'
swipeable
@
change=
"tabChange"
>
<van-tab
v-for=
'i in list'
:key=
"i.id"
:title=
'i.categoryName'
:id=
'i.id'
>
</van-tab>
</van-tabs>
<van-tabs
v-model=
"indexValue"
class=
'w-11/12'
swipeable
@
change=
"tabChange"
lazy-render
>
<van-tab
v-for=
'i in list'
:key=
"i.id"
:title=
'i.categoryName'
:id=
'i.id'
>
</van-tab>
</van-tabs>
</div>
<div
class=
"w-30 flex-grow-0"
>
<app-icon
name=
"icon-shaixuan"
></app-icon>
...
...
@@ -31,11 +31,18 @@ export default Vue.extend({
list
:{
type
:
Array
as
PropType
<
Category
[]
>
,
required
:
true
}
},
defaultActive
:
Number
},
// watch:{
// 'defaultActive'(newv,oldv){
// console.log(newv,oldv);
// }
// },
data
(){
return
{
active
:
0
,
// active: this.defaultActive
,
listData
:
this
.
list
}
},
...
...
@@ -43,10 +50,25 @@ export default Vue.extend({
components
:{
'app-icon'
:()
=>
import
(
'@/components/common/Icon.vue'
)
},
methods
:{
tabChange
(
item
:
any
){
this
.
$emit
(
'tabChange'
,{
data
:
this
.
list
[
item
],
activeIndex
:
this
.
active
})
computed
:{
indexValue
:{
get
():
number
{
return
this
.
defaultActive
},
set
(
id
:
any
){
this
.
$emit
(
'indexOnchange'
,
id
)
}
}
},
methods
:{
tabChange
(
item
:
any
){
console
.
log
(
item
);
this
.
$emit
(
'tabChange'
,{
data
:
this
.
list
[
item
],
activeIndex
:
item
})
},
// indexChange(index:any){
// this.$emit('indexCahge',this.active)
// }
}
});
...
...
src/constant/agreement.ts
View file @
1149a08e
...
...
@@ -99,9 +99,31 @@ export default function (){
list
:[
{
title
:
'cookies'
,
content
:
`通过使用cookies,本应用向用户提供简单易行并富个性化的网络体验。cookies能帮助我们确定用户连接的页面和内容,并将该等信息储存。我们会使用自己的cookies,用于一下用户:`
content
:
`通过使用cookies,本应用向用户提供简单易行并富个性化的网络体验。cookies能帮助我们确定用户连接的页面和内容,并将该等信息储存。我们会使用自己的cookies,用于一下用户:`
,
contents
:[
`识别用户身份`
,
`记录应用运行日志`
]
},
{
title
:
'位置信息'
,
content
:
'指您开启设备定位功能并使用我们基于位置提供的相关服务时,收集的有关您位置的信息。【若有其他根据业务补充】'
}
]
},
{
title
:
'信息公开与共享'
,
content
:
'不会将用户的个人信息和资讯故意透露、出租或出售给任何第三方。但以下情况除外'
,
contents
:
[
`事先获得用户的明确授权,用户本人同意与第三方共享信息`
,
`只有透露用户的个人信息,才能提供用户所要求的某种产品和服务`
,
`应代表本应用提供产品或服务的主体的要求提供(除非我们另行通知,否则该等主体无权将相关用户个人信息用于提供产品和服务之外的其他用途):根据法律法规或行政命令的要求提供;因外部审计需要而提供;为维护社会公众的利益;用户违反了本应用服务条款或任何其他产品及服务的使用规定;经本站评估,用户的帐户存在风险,需要加以保护`
,
`用于应用展示用户统计数据信息,向第三方为了合法目的而描述本应用的服务`
]
},
{
title
:
'账户注销'
,
content
:
`用户有权在任何时候对用户在本应用的账户信息进行编辑,用户也可以使用账户注销流程【此处需结合业务系统明确注销流程,例如:填写申请表、个人信息模块点击删除直接删除等】对用户所有的个人账户执行删除操作。用户删除账户后,该账户内及账户相关信息将【完全被删除/仍然保留在服务器中/我们将建立一个回收缓冲期在短期(三个月)内为用户保留数据以备用户可能执行的恢复操作】【此处具体是哪种情形需要结合业务确定】。缓冲期过后,用户账号及信息将完全删除,且无法恢复。【请根据实际描述修改此段】`
}
]
}
...
...
src/style.less
View file @
1149a08e
...
...
@@ -137,6 +137,9 @@ body {
.full-height{
height:100vh;
}
.agreePage{
height: calc(100vh -280px)
}
.scroll-padding{
height:120px;
...
...
src/util/cliboard.ts
View file @
1149a08e
...
...
@@ -5,6 +5,8 @@ export default function (text: string | number) {
ele
.
setAttribute
(
'data-clipboard-text'
,
text
.
toString
())
document
.
body
.
appendChild
(
ele
)
const
clipboard
=
new
ClipboardJS
(
ele
)
console
.
log
(
clipboard
);
// clipboard.write(text.toString())
// return new ClipboardJS(ele)
// document.body.removeChild(ele)
...
...
src/view/Auth/Login/UserAgreement.vue
View file @
1149a08e
<
template
>
<div
class=
"flex flex-col w-11/12 mx-auto py-5 text-font-white"
>
<div
class=
"flex flex-col w-11/12 mx-auto py-5 text-font-white
full-height overflow-y-scroll
"
>
<div
class=
"flex justify-between items-center"
>
<div
class=
"w-3/12"
>
<app-icon
name=
"icon-fanhui"
@
click
.
native=
"handleClickClose"
></app-icon>
...
...
@@ -9,11 +9,48 @@
</div>
<div
class=
"w-3/12"
></div>
</div>
<div
class=
'flex py-6 justify-center'
>
<div
class=
'flex py-6 justify-center
'
>
<img
src=
"@/assets/img/cmp_logo.png"
class=
"h-12"
alt=
""
/>
</div>
<div>
<div
v-for=
"(i,index) in userAgreement"
:key=
"index"
>
<div
class=
'text-lg my-3'
>
{{
i
.
title
}}
</div>
<div
class=
'text-sm text-font-dark-blue'
>
{{
i
.
content
}}
</div>
<div
v-if=
"i.list"
>
<div
v-for=
"(t,n) in i.list"
:key=
"n"
>
<div
class=
" text-sm my-1"
>
{{
t
.
title
}}
</div>
<div
class=
" text-sm text-font-dark-blue"
>
{{
t
.
content
}}
</div>
<ol
v-for=
"(b,bIndex) in t.contents"
:key=
"bIndex"
class=
"list-inside bg-rose-200"
>
<li
class=
'text-sm text-font-dark-blue pl-3'
>
-
{{
b
}}
</li>
</ol>
</div>
</div>
<ol
v-for=
"(k,kIndex) in i.contents"
:key=
"kIndex"
class=
"list-inside bg-rose-200"
>
<li
class=
'text-sm text-font-dark-blue pl-3'
>
-
{{
k
}}
</li>
</ol>
</div>
<div
v-for=
'(i,index) in privatePolicy'
:key=
"i.title+index"
>
<div
class=
'text-lg my-3'
>
{{
i
.
title
}}
</div>
<div
class=
'text-sm text-font-dark-blue'
>
{{
i
.
content
}}
</div>
<div
v-if=
"i.list"
>
<div
v-for=
"(t,n) in i.list"
:key=
"t+n"
>
<div
class=
" text-sm my-1"
>
{{
t
.
title
}}
</div>
<div
class=
" text-sm text-font-dark-blue"
>
{{
t
.
content
}}
</div>
<ol
v-for=
"(b,bIndex) in t.contents"
:key=
"bIndex"
class=
"list-inside bg-rose-200"
>
<li
class=
'text-sm text-font-dark-blue pl-3'
>
-
{{
b
}}
</li>
</ol>
</div>
</div>
<ol
v-for=
"(k,kIndex) in i.contents"
:key=
"kIndex"
class=
"list-inside bg-rose-200"
>
<li
class=
'text-sm text-font-dark-blue pl-3'
>
-
{{
k
}}
</li>
</ol>
</div>
</div>
</
template
>
...
...
@@ -22,13 +59,15 @@
import
Vue
from
"vue"
;
import
closeIcon
from
'@/assets/icons/close_large.png'
// const closeIcon = require("@/assets/icons/close_large.png");
import
agreement
from
'@/constant/agreement'
const
{
userAgreement
,
privatePolicy
}
=
agreement
()
export
default
Vue
.
extend
({
props
:
[
"setOverlayShow"
],
data
()
{
return
{
closeIcon
,
userAgreement
,
privatePolicy
};
},
components
:
{
...
...
src/view/Home/index.vue
View file @
1149a08e
...
...
@@ -89,7 +89,6 @@ export default Vue.extend({
},
async
getDataByCategory
(
item
:
any
){
console
.
log
(
item
);
this
.
currentCategory
=
item
.
data
.
id
this
.
listData
=
await
this
.
$service
.
nftService
.
getList
(
this
.
currentPage
,
this
.
pagesize
,
this
.
currentCategory
)
}
...
...
src/view/NFT/Detail/index.vue
View file @
1149a08e
...
...
@@ -181,7 +181,7 @@
</div>
<div
class=
"flex-grow pl-8"
>
<app-btn
text=
"查看
剧本
"
text=
"查看
内容
"
class=
"w-full mx-auto text-font-white rounded-2xl bg-font-blue"
border=
"none"
></app-btn>
...
...
@@ -355,7 +355,7 @@ export default Vue.extend({
})
}
}
else
if
(
this
.
nftData
.
status
==
0
){
this
.
$router
.
push
(
'/Nft/MyList'
)
this
.
$router
.
push
(
{
name
:
'myListNft'
,
query
:{
category
:
this
.
nftData
.
category
}}
)
}
},
async
setMyCollection
():
Promise
<
void
>
{
...
...
src/view/NFT/Mynft/index.vue
View file @
1149a08e
...
...
@@ -37,6 +37,8 @@
<app-scrollbar
:list=
"categoryTypes"
@
tabChange=
"getDataByCategory"
@
indexOnchange=
'indexOnchange'
:defaultActive=
'defaultActive'
></app-scrollbar>
<div
class=
"myNFT-list-scroll"
>
<div
v-if=
"listData.length > 0"
>
...
...
@@ -72,16 +74,22 @@ export default Vue.extend({
qrcode
:
''
,
srcData
:
''
as
any
,
showAction
:
false
,
defaultActive
:
0
};
},
async
created
()
{
this
.
categoryTypes
=
await
this
.
$service
.
nftService
.
getCategory
();
if
(
this
.
$route
.
query
.
category
){
const
index
=
await
this
.
categoryTypes
.
findIndex
(
i
=>
{
return
i
.
categoryName
==
this
.
$route
.
query
.
category
})
this
.
defaultActive
=
index
}
},
async
mounted
()
{
let
data
=
await
this
.
$service
.
nftService
.
getMyList
();
this
.
qrcode
=
data
.
qrCode
;
console
.
log
(
this
.
qrcode
);
this
.
balance
=
data
.
size
;
await
this
.
$service
.
nftService
.
getMyList
(
this
.
currentCategory
)
...
...
@@ -110,10 +118,13 @@ export default Vue.extend({
this
.
showAction
=
true
;
},
copyAddr
(
addr
:
any
){
console
.
log
(
addr
,
222
);
this
.
$util
.
cliboard
(
addr
);
this
.
$toast
(
"复制成功"
);
},
indexOnchange
(
id
:
any
){
console
.
log
(
id
);
},
goDetail
(
id
:
any
)
{
this
.
$router
.
push
({
name
:
"Nftdetail"
,
params
:
{
id
:
id
}
});
},
...
...
src/view/NFT/Transfer/index.vue
View file @
1149a08e
<
template
>
<Layout-Child>
<div
class=
'mt-6 w-11/12 mx-auto break-all'
>
<div
class=
'mt-6 w-11/12 mx-auto break-all'
@
click=
"pageOnclick"
>
<div
class=
"flex flex-col mb-6 text-font-dark-blue"
>
<div
class=
"label"
>
NFT名称
...
...
@@ -37,10 +37,10 @@
<div
class=
"label"
>
收款地址
</div>
<div
class=
"value-container h-24 flex flex-row items-center relative bg-font-light-black px-3 mt-2 rounded
"
>
<div>
<div
class=
"value-container h-24 flex flex-row items-center relative bg-font-light-black px-3 mt-2 rounded
"
:class=
'receiveOnfocus?"border border-font-blue":""'
@
click=
'inputOnclick'
>
<div
>
<div
class=
" absolute right-3 top-10"
>
<app-icon
name=
"icon-a-saoma1"
size=
'20px'
></app-icon>
<app-icon
name=
"icon-a-saoma1"
size=
'24px'
@
click
.
native=
"goScalePage"
></app-icon>
</div>
<van-image
width=
"45"
...
...
@@ -53,20 +53,22 @@
:src=
'this.$route.query.avatar?this.$route.query.avatar:"/img/mokeImg/avatar.png"'
/>
</div>
<div
class=
" pl-3 pr-8"
>
<
div>
张三丰
</div
>
<
div
class=
" text-xs"
>
cbdusbvudbvubdvu45656464646bduvbduvbudsdfsdfsadfsdfsadfsdfsadfsdfsdf
</div
>
<div
class=
" pl-3 pr-8
w-10/12
"
>
<
input
class=
"text-base bg-transparent bg-opacity-0 text-font-white w-6/12"
placeholder=
'接受人姓名'
disabled
/
>
<
input
v-model=
"receiver.addr"
class=
" text-xs bg-transparent bg-opacity-0 text-font-white w-full"
placeholder=
'接受人地址'
ref=
"addrInput"
/
>
</div>
</div>
</div>
<div
class=
"py-60"
></div>
</div>
<div
class=
"fixed bottom-3 w-full left-0 z-30"
>
<div
class=
"fixed bottom-3 w-full left-0 z-30"
>
<app-btn
text=
"
下一步
"
text=
"
转出
"
class=
"w-11/12 mx-auto text-font-white rounded-2xl bg-font-blue"
border=
"none"
></app-btn>
</div>
</Layout-Child>
</
template
>
...
...
@@ -76,7 +78,11 @@ import Vue from 'vue';
export
default
Vue
.
extend
({
data
(){
return
{
receiveOnfocus
:
false
,
receiver
:{
name
:
''
,
addr
:
''
}
}
},
...
...
@@ -85,6 +91,31 @@ export default Vue.extend({
'app-icon'
:()
=>
import
(
'@/components/common/Icon.vue'
),
'app-btn'
:()
=>
import
(
'@/components/common/Btn.vue'
)
},
methods
:{
inputOnclick
(
e
:
Event
){
e
.
preventDefault
();
e
.
stopPropagation
();
const
input
=
this
.
$refs
.
addrInput
as
HTMLInputElement
;
if
(
!
this
.
receiveOnfocus
){
this
.
receiveOnfocus
=
true
;
input
.
focus
()
}
},
pageOnclick
(
e
:
Event
){
console
.
log
(
e
.
target
);
const
input
=
this
.
$refs
.
addrInput
as
HTMLInputElement
;
if
(
this
.
receiveOnfocus
){
this
.
receiveOnfocus
=
false
;
input
.
blur
()
}
},
goScalePage
(
e
:
Event
){
e
.
stopPropagation
();
console
.
log
(
e
.
target
,
'去相机扫描页面'
);
}
},
computed
:{
getUserInfo
(){
return
this
.
$util
.
userMsg
.
getUserMsg
()
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment