Commit 1149a08e authored by hanfeng zhang's avatar hanfeng zhang

321

parent 55c7d042
This diff is collapsed.
<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)
// }
}
});
......
......@@ -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:`用户有权在任何时候对用户在本应用的账户信息进行编辑,用户也可以使用账户注销流程【此处需结合业务系统明确注销流程,例如:填写申请表、个人信息模块点击删除直接删除等】对用户所有的个人账户执行删除操作。用户删除账户后,该账户内及账户相关信息将【完全被删除/仍然保留在服务器中/我们将建立一个回收缓冲期在短期(三个月)内为用户保留数据以备用户可能执行的恢复操作】【此处具体是哪种情形需要结合业务确定】。缓冲期过后,用户账号及信息将完全删除,且无法恢复。【请根据实际描述修改此段】`
}
]
}
......
......@@ -137,6 +137,9 @@ body {
.full-height{
height:100vh;
}
.agreePage{
height: calc(100vh -280px)
}
.scroll-padding{
height:120px;
......
......@@ -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)
......
<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: {
......
......@@ -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)
}
......
......@@ -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> {
......
......@@ -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 } });
},
......
<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()
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment