hwq 3 年之前
父節點
當前提交
299ae9c018

+ 9 - 0
api/wallet.js

@@ -173,3 +173,12 @@ export function upbuynum(data) {
 		data
 	});
 }
+
+// 我的认购
+export function issuelog(data) {
+	return request({
+		url: '/Issue/issuelog',
+		method: 'get',
+		data
+	});
+}

+ 1 - 181
lang/en.js

@@ -1,185 +1,5 @@
 module.exports = {
-	top: {
-		kc: 'Pool',
-		LP: 'LP',
-		dh: 'Conversion',
-		nft: 'NFT',
-		jd: 'Node',
-		yq: 'Invite',
-		gg: 'Announcement',
-		dq: 'Sign',
-		dz: 'Address',
-		tb: 'Mention money',
-		ylj: 'Connected',
-		jjh: 'foundation',
-		jjhfh: 'bonus'
-	},
 	index: {
-		klq: 'Receive',
-		tqsy: 'Extraction',
-		grsl: 'People',
-		ljjl: 'Accumulative',
-		symx: 'Cumulative',
-		kcxq: 'Details',
-		jcsl: 'Base force',
-		sjsl: 'Time force',
-		qysl: 'Rights to calculate force',
-		dtsl: 'Calculate dynamic force',
-		stsl: 'zoology force',
-		blz: 'Scale value',
-		sqdbhydz: 'Community token contract address',
-		ye: 'Balance',
-		hdsl: 'For work force',
-		slsl: 'Calculate number of force',
-		sq: 'Authorization',
-		xh: 'Destroy',
-		dbhy: 'Tokens contracts',
-		kczsl: 'Mine pool strength',
-		zfxl: 'Total circulation',
-		hddz: 'Address of a black hole',
-		hccdz: 'Buffer pool address',
-		hccye: 'Buffer pool balance',
-		ldzjc: 'Liquidity pool',
-		sdcx: 'Lock the query',
-		jrck: 'Today',
-		zcc: 'All',
-		ltl: 'Turnover',
-		xhsl: 'Destruction',
-	},
-	hea: {
-		sljzgd: 'Drop down to load more',
-		loading: 'loading',
-		nomore: 'nomore'
-	},
-	aword: {
-		zsy: 'Total revenue',
-		ljsf: 'Cumulative release',
-		dsf: 'Wait released',
-		mrsyjl: 'Daily revenue',
-		jsrq: 'Balance date',
-		sylx: 'Revenue type',
-		scsf: 'Frist release',
-		jrsf: 'Today release',
-		lpzy: 'Pledge earnings',
-		tdsy: 'Team returns',
-		bdsy: 'Sermon earnings',
-	},
-	money: {
-		zsl: 'Managed',
-		wddj: 'Grades',
-		lpzsl: 'LP Managed to force',
-		zc: 'Asset',
-		kp: 'Card',
-		td: 'Land',
-		jm: 'Resident',
-		jd: 'Node',
-		ye: 'Balance(LC)',
-		ckmx: 'Details',
-		yjlq: 'Extraction',
-		wdlp: 'My LP(Lp Token)',
-		cskp: 'Genesis Card',
-		sf: 'Identity',
-		zwjd: 'No node',
-		djd: 'Big node',
-		zjd: 'Middle node',
-		xjd: 'Small node',
-		sj: 'Selling Price',
-		g: 'All',
-		z: '',
-		ljrg: 'Subscription Immediately',
-		zy: 'Pledge',
-		sh: 'Redeem',
-		hc: 'Compound',
-		jrcb: 'Today earnings(LC)',
-		jrfh: 'Today share out bonus(LC)',
-		ljcb: 'The cumulative earnings(LC)',
-		ljfh: 'The cumulative dividends(LC)',
-		kt: 'Available(LC)',
-		tbjl: 'Get the record',
-		qsrzysl: 'Please enter the amount of pledge',
-		stjj: 'Carry:'
-	},
-	share: {
-		yqlj: 'Invite link',
-		fzlj: 'Copy link',
-		jslj: 'Accept link',
-		wdtj: 'My Recommendation',
-		qbdz: 'Address',
-		tdzgdj: 'Highest team level',
-		yyLP: 'Possess HZ',
-		lcdjd: 'LCD Node ',
-		zxzyj: 'Weekly new performance',
-		jcdj: 'Poor grades',
-	},
-	card: {
-		xxxx: 'Detailed',
-		kpmc: 'Card name',
-		kpjg: 'Card price',
-		kpzl: 'Total CARDS',
-		kpsl: 'CARDS work force',
-		cbzq: 'Produce currency cycle',
-		sffs: 'Release the way',
-		syxx: 'Information',
-		jhrq: 'The activation date',
-		jscbrq: 'End date of coin production',
-		mrcb: 'Every nissan COINS',
-		jrsy: 'Today earnings',
-		ljsy: 'Cumulative earnings',
-		ljkt: 'Cumulative can carry(-10 per cent ecological fund)',
-		jhsb: 'Activation failed',
-		qx: 'Cancel',
-		qd: 'Confirm',
-		kzzkp: 'Castable cards',
-		sl: 'Num',
-		zz: 'Cast',
-		qsrzzsl: 'Please enter casting quantity',
-		zc: 'Property',
-		gnkfz: 'Function development, please look forward to...',
-		ljrg: 'Subscription',
-		qsrkpsl: 'Please enter the number of cards',
-		nftfhsy: 'NFT Dividends',
-		tb: 'Mention money',
-	},
-	main: {
-		dbzyl: 'One Pledge Num',
-		sbzyl: 'Two Pledge Num',
-		dbzy: 'One Pledge',
-		sbzy: 'Two Pledge',
-		shNLP: 'Gain LC',
-		nhsy: 'Annualized',
-		nhfl: 'Annual Interest',
-		syed: 'Remaining Amount',
-		qwzy: 'So the pledge',
-		ylNLP: 'Received LC',
-		ylLCD: 'Received LCD',
-		wdzy: 'My pledge(LP)',
-		wdzyLCD: 'My pledge(LCD)',
-		klNLP: 'Brought LC',
-		lq: 'Get',
-		js: 'Unlock',
-		tjldc: 'Add Liquidity',
-		tc: 'Logout',
-		ljqb: 'Login'
-	},
-	dq: {
-		lcddqqbgl: 'LCD Multi-signature wallet management',
-		czdz: 'Operation',
-		spdz: 'Approve',
-		zz: 'Transfer',
-		zcye: 'Assets balance',
-		sdje: 'Lock the amount',
-		jd: 'Schedule',
-		ytg: 'Passed',
-		ysb: 'Failed',
-		ysh: 'Checked',
-		jj: 'Reject ',
-		tg: 'Pass',
-		srzzdz: 'Enter transfer address',
-		srzzsl: 'Enter transfer num',
-		ljzz: 'Transfer',
-		qb: 'All',
-		dqr: 'Confirmed',
-		cg: 'Success',
-		sb: 'Fail',
+		rg: 'Buy'
 	}
 }

+ 1 - 181
lang/zh_cn.js

@@ -1,185 +1,5 @@
 module.exports = {
-	top: {
-		kc: '矿池',
-		LP: 'LP',
-		dh: '兑换',
-		nft: 'NFT',
-		jd: '节点',
-		yq: '邀请',
-		gg: '公告',
-		dq: '多签',
-		tb: '提币',
-		dz: '地址',
-		ylj: '已连接',
-		jjh: '基金会',
-		jjhfh: '基金会分红'
-	},
 	index: {
-		klq: '可领取',
-		tqsy: '提取收益',
-		grsl: '个人算力',
-		ljjl: '累计奖励',
-		symx: '收益明细',
-		kcxq: '矿池详情',
-		jcsl: '基础算力',
-		sjsl: '时间算力',
-		qysl: '权益算力',
-		dtsl: '动态算力',
-		stsl: '生态算力',
-		blz: '比例值',
-		sqdbhydz: '社区代币合约地址',
-		ye: '余额',
-		hdsl: '获得算力',
-		slsl: '算力数量',
-		sq: '授权',
-		xh: '销毁',
-		dbhy: '代币合约',
-		kczsl: '矿池总算力',
-		zfxl: '总发行量',
-		hddz: '黑洞地址',
-		hccdz: '缓冲池地址',
-		hccye: '缓冲池余额',
-		ldzjc: '流动资金池',
-		sdcx: '锁定查询',
-		jrck: '今日产矿',
-		zcc: '总产出',
-		ltl: '流通量',
-		xhsl: '销毁数量',
-	},
-	aword: {
-		zsy: '总收益',
-		ljsf: '累计释放',
-		dsf: '待释放',
-		mrsyjl: '每日收益记录',
-		jsrq: '结算日期',
-		sylx: '收益类型',
-		scsf: '首次释放',
-		jrsf: '今日释放',
-		lpzy: '质押收益',
-		tdsy: '团队收益',
-		bdsy: '布道收益',
-	},
-	hea: {
-		sljzgd: '下拉加载更多',
-		loading: '正在加载中',
-		nomore: '没有更多数据了'
-	},
-	money: {
-		zsl: '总算力',
-		wddj: '我的等级',
-		lpzsl: 'LP总算力',
-		zc: '资产',
-		kp: '卡牌',
-		td: '土地',
-		jm: '居民',
-		jd: '节点',
-		ye: '余额(LC)',
-		ckmx: '明细',
-		yjlq: '一键领取',
-		wdlp: '我的LP(Lp Token)',
-		cskp: '创世卡牌',
-		sf: '身份',
-		zwjd: '暂无节点',
-		djd: '大节点',
-		zjd: '中节点',
-		xjd: '小节点',
-		sj: '售价',
-		g: '共',
-		z: '张',
-		ljrg: '立即认购',
-		zy: '质押',
-		sh: '赎回',
-		hc: '合成',
-		jrcb: '今日收益(LC)',
-		jrfh: '今日分红(LC)',
-		ljcb: '累计收益(LC)',
-		ljfh: '累计分红(LC)',
-		kt: '可提(LC)',
-		tbjl: '领取记录',
-		qsrzysl: '请输入质押数量',
-		stjj: '可提:'
-	},
-	share: {
-		yqlj: '邀请链接',
-		fzlj: '复制链接',
-		jslj: '接受链接',
-		wdtj: '我的推荐',
-		qbdz: '钱包地址',
-		tdzgdj: '团队最高等级',
-		yyLP: '拥有HZ',
-		lcdjd: 'LCD节点',
-		zxzyj: '周新增业绩',
-		jcdj: '级差等级',
-	},
-	card: {
-		xxxx: '详细信息',
-		kpmc: '卡牌名称',
-		kpjg: '卡牌价格',
-		kpzl: '卡牌总量',
-		kpsl: '卡牌算力',
-		cbzq: '产币周期',
-		sffs: '释放方式',
-		syxx: '收益信息',
-		jhrq: '激活日期',
-		jscbrq: '结束产币日期',
-		mrcb: '每日产币',
-		jrsy: '今日收益',
-		ljsy: '累计收益',
-		ljkt: '累计可提(-10%生态基金)',
-		jhsb: '激活失败',
-		qx: '取消',
-		qd: '确定',
-		kzzkp: '可铸造卡牌',
-		sl: '数量',
-		zz: '铸造',
-		qsrzzsl: '请输入铸造数量',
-		zc: '资产',
-		gnkfz: '功能开发中,敬请期待...',
-		ljrg: '立即认购',
-		qsrkpsl: '请输入卡牌数量',
-		nftfhsy: 'NFT分红收益',
-		tb: '提币',
-	},
-	main: {
-		dbzyl: '总单币质押量',
-		sbzyl: '总双币质押量',
-		dbzy: '单币质押',
-		sbzy: '双币质押',
-		shNLP: '收获LC',
-		nhsy: '年化收益',
-		nhfl: '年化复利',
-		syed: '剩余可质押额度',
-		qwzy: '全网总质押',
-		ylNLP: '已领LC',
-		ylLCD: '已领LCD',
-		wdzy: '我的质押(LP)',
-		wdzyLCD: '我的质押(LCD)',
-		klNLP: '可领LC',
-		lq: '领取',
-		js: '解锁',
-		tjldc: '添加流动池',
-		tc: '退出',
-		ljqb: '连接钱包'
-	},
-	dq: {
-		lcddqqbgl: 'LCD多签钱包管理',
-		czdz: '操作地址',
-		spdz: '审批地址',
-		zz: '转账',
-		zcye: '资产余额',
-		sdje: '锁定金额',
-		jd: '进度',
-		ytg: '已通过',
-		ysb: '已失败',
-		ysh: '已审核',
-		jj: '拒绝',
-		tg: '通过',
-		srzzdz: '输入转账地址',
-		srzzsl: '输入转账数量',
-		ljzz: '立即转账',
-		qb: '全部',
-		dqr: '待确认',
-		cg: '成功',
-		sb: '失败',
+		rg: '認購'
 	}
 }

+ 12 - 3
pages.json

@@ -15,6 +15,12 @@
 				"navigationBarTitleText": "公告列表"
 			}
 		},
+		{
+			"path": "pages/index/language",
+			"style": {
+				"navigationBarTitleText": "語言選擇"
+			}
+		},
 		{
 			"path": "pages/index/ggDetail",
 			"style": {
@@ -24,13 +30,15 @@
 		{
 			"path": "pages/index/rg",
 			"style": {
-				"navigationBarTitleText": "新幣認購"
+				"navigationBarTitleText": "新幣認購",
+				"navigationStyle": "custom"
 			}
 		},
 		{
 			"path": "pages/index/rgDetail",
 			"style": {
-				"navigationBarTitleText": "認購詳情"
+				"navigationBarTitleText": "認購詳情",
+				"navigationStyle": "custom"
 			}
 		},
 		{
@@ -48,7 +56,8 @@
 		{
 			"path": "pages/transaction/bbjy",
 			"style": {
-				"navigationBarTitleText": "幣幣交易"
+				"navigationBarTitleText": "幣幣交易",
+				"navigationStyle": "custom"
 			}
 		},
 		{

+ 381 - 381
pages/index/index.vue

@@ -1,383 +1,383 @@
-<template>
-	<view class="container">
-		<!-- #ifdef APP-PLUS -->
-		<view class="vheight"></view>
-		<!-- #endif -->
-		<view class="flex" style="justify-content: space-between;padding: 20rpx 30rpx;">
-			<image src="../../static/icon/user.png" mode="" style="width: 53rpx;height: 53rpx;" @click="navto('/pages/user/menu')"></image>
-			<!-- <image src="../../static/icon/tz.png" mode="" style="width: 53rpx;height: 53rpx;"></image> -->
-		</view>
-		<!-- 轮播图 start -->
-		<swiper class="top-swiper" autoplay="true" duration="400" interval="5000" @change="swiperChange">
-			<swiper-item v-for="item in clist" class="carousel-item" @click="bannerNavToUrl(item)"><image :src="item" /></swiper-item>
-		</swiper>
-		<!-- 轮播图 end -->
-		<!-- 通告欄 start -->
-		<u-notice-bar type="none" :more-icon="true" mode="vertical" :list="list" @click="goDetail" @getMore="navto('/pages/index/gglist')"></u-notice-bar>
-		<!-- 通告欄 end -->
-		<!-- 功能盒 start -->
-		<view class="gnh-wrap">
-			<view class="gnh-top flex">
-				<view class="top-item flex" @click="navto('/pages/index/rg')">
-					<image src="../../static/icon/gn-1.png" mode="" class=""></image>
-					<view class="">認購</view>
-				</view>
-				<view class="top-item flex" @click="navto('/pages/transaction/cblist')">
-					<image src="../../static/icon/gn-2.png" mode="" class=""></image>
-					<view class="">充幣</view>
-				</view>
-				<view class="top-item flex" @click="navto('/pages/transaction/tblist')">
-					<image src="../../static/icon/gn-3.png" mode="" class=""></image>
-					<view class="">提幣</view>
-				</view>
-				<!-- <view class="top-item flex">
-					<image src="../../static/icon/gn-4.png" mode="" class=""></image>
-					<view class="">語言</view>
-				</view> -->
-				<view class="top-item flex" @click="navto('/pages/index/kf')">
-					<image src="../../static/icon/gn-5.png" mode="" class=""></image>
-					<view class="">客服</view>
-				</view>
-			</view>
-			<view class="gnh-btm flex">
-				<view class="btm-item">
-					<view class="btm-item-name">BTC/USDT</view>
-					<template v-if="listOBj['BTC-USDT']">
-						<view class="btm-item-val" :style="{ color: listOBj['BTC-USDT'].dcf > 0 ? '#5ec886' : '#DD3745' }">{{ listOBj['BTC-USDT'].last || '--,--' }}</view>
-						<view class="btm-item-bl" :style="{ color: listOBj['BTC-USDT'].dcf > 0 ? '#5ec886' : '#DD3745' }">{{ listOBj['BTC-USDT'].dcf || '--,--' }}%</view>
-					</template>
-				</view>
-				<view class="btm-item">
-					<view class="btm-item-name">BCH/USDT</view>
-					<template v-if="listOBj['BCH-USDT']">
-						<view class="btm-item-val" :style="{ color: listOBj['BCH-USDT'].dcf > 0 ? '#5ec886' : '#DD3745' }">{{ listOBj['BCH-USDT'].last || '--,--' }}</view>
-						<view class="btm-item-bl" :style="{ color: listOBj['BCH-USDT'].dcf > 0 ? '#5ec886' : '#DD3745' }">{{ listOBj['BCH-USDT'].dcf || '--,--' }}%</view>
-					</template>
-				</view>
-				<view class="btm-item">
-					<view class="btm-item-name">ETH/USDT</view>
-					<template v-if="listOBj['ETH-USDT']">
-						<view class="btm-item-val" :style="{ color: listOBj['ETH-USDT'].dcf > 0 ? '#5ec886' : '#DD3745' }">{{ listOBj['ETH-USDT'].last || '--,--' }}</view>
-						<view class="btm-item-bl" :style="{ color: listOBj['ETH-USDT'].dcf > 0 ? '#5ec886' : '#DD3745' }">{{ listOBj['ETH-USDT'].dcf || '--,--' }}%</view>
-					</template>
-				</view>
-			</view>
-		</view>
-		<!-- 功能盒 end -->
-		<!--  -->
-		<view class="list">
-			<view class="list-title flex">
-				<view class="title-left">交易對</view>
-				<view class="title-center">最新價格</view>
-				<view class="title-right">24h漲跌</view>
-			</view>
-			<view class="list-main flex" @click="navto('/pages/transaction/transactionDetail?type='+index)"  v-for="(item, index) in listOBj">
-				<view class="main-left">{{ index }}</view>
-				<view class="main-center" :class="{ down: item.dcf > 0, ping: item.dcf == 0 }">{{ item.last == 0 ? '--.--' : item.last }}</view>
-				<view class="main-right">
-					<view class="btn" :class="{ down: item.dcf > 0, ping: item.dcf == 0 }">{{ item.dcf }}%</view>
-				</view>
-			</view>
-		</view>
-	</view>
-</template>
-
-<script>
-import { tradelist } from '@/api/login.js';
-import { saveUrl, interceptor } from '@/utils/loginUtils.js';
-import { mapState, mapMutations } from 'vuex';
-import { scoketNew, scoketOpen } from '@/utils/socket.js';
-import { geLevertade, gglist } from '@/api/index.js';
-export default {
-	data() {
-		return {
-			clist: {},
-			scoket: '',
-			instId: 'IOTA-USDT', //请求的产品id
-			spList: [], //需要查询的列表
-			list: [],
-			listInfo: [],
-			listOBj: {} //保存实际列表对象
-		};
-	},
-	computed: {
-		...mapState('user', ['userInfo', 'orderInfo', 'hasLogin'])
-	},
-	onLoad: function(option) {},
-	onShow: function() {
-		this.geLevertade();
-		this.tradelist();
-		this.getgg();
-	},
-	onHide() {
-		this.closeScoket();
-	},
-	//下拉刷新
-	onPullDownRefresh() {},
-	methods: {
-		navto(url) {
-			console.log(url);
-			if (!this.hasLogin) {
-				// 保存地址
-				saveUrl();
-				// 登录拦截
-				interceptor();
-			} else {
-				uni.navigateTo({
-					url
-				});
-			}
-		},
-		goDetail(e) {
-			uni.navigateTo({
-				url: '/pages/index/ggDetail?id=' + this.listInfo[e].id
-			});
-		},
-		getgg() {
-			const obj = this;
-			gglist({ page: 1, limit: 1000 }).then(e => {
-				obj.listInfo = e.data;
-				e.data.forEach(e => {
-					obj.list.push(e.title);
-				});
-			});
-		},
-		swiperChange() {},
-		// 开始请求长连接
-		onScoket() {
-			const that = this;
-			that.scoket = scoketNew('wss://wsaws.okx.com:8443/ws/v5/public');
-			that.scoket.scoketOpen().then(res => {
-				const requestList = that.spList.map(e => {
-					return {
-						channel: 'tickers',
-						instId: e.coinname.toUpperCase() + '-USDT'
-					};
-				});
-				that.scoket
-					.scoketSend({
-						op: 'subscribe',
-						args: requestList
-					})
-					.then(res => {
-						console.log(res, '发送成功');
-					});
-				that.scoket.scoketMessage(res => {
-					try {
-						if (res.data) {
-							// res.res.data[0].name = res.arg.instId
-							that.listOBj[res.arg.instId] = res.data[0];
-							that.listOBj[res.arg.instId].dcf = (((res.data[0].last * 1 - res.data[0].sodUtc0 * 1) / (res.data[0].sodUtc0 * 1)) * 100).toFixed(2);
-							that.listOBj = Object.assign({}, that.listOBj);
-						}
-						// console.log(that.listOBj, 'that.listOBj++++++');
-					} catch (e) {
-						console.log(res, res.data, '报错');
-					}
-				});
-			});
-		},
-		closeScoket() {
-			this.scoket.scoketClose();
-		},
-		// 获取查询列表
-		geLevertade() {
-			const that = this;
-			geLevertade().then(e => {
-				that.spList = e.list;
-				// 开启长连接
-				that.onScoket();
-			});
-		},
-		// 轮播图跳转
-		bannerNavToUrl(item) {
-			// #ifdef H5
-			console.log(item.wap_url.indexOf('http'), 'banner');
-			if (item.wap_url.indexOf('http') >= 0) {
-				window.location.href = item.wap_url;
-			}
-			// #endif
-			//测试数据没有写id,用title代替
-			uni.navigateTo({
-				url: item.wap_url
-			});
-		},
-		tradelist() {
-			tradelist().then(res => {
-				console.log(res);
-				this.clist = res.data.clist;
-				this.clist = Object.assign({}, this.clist);
-				console.log(this.clist, 'this.clist');
-			});
-		}
-	}
-};
-</script>
-
-<style lang="scss">
-// 顶部轮播图
-.top-swiper {
-	margin: auto;
-	width: 726rpx;
-	height: 273rpx;
-
-	.carousel-item {
-	}
-
-	// margin: 20rpx 0 0;
-	image {
-		// margin: auto;
-		width: 726rpx;
-		height: 273rpx;
-	}
-}
-
-.gnh-wrap {
-	margin: 20rpx 0;
-	width: 750rpx;
-	height: 315rpx;
-	background-color: #fff;
-	border-radius: 50rpx 50rpx 0 0;
-
-	.gnh-top {
-		justify-content: space-around;
-		height: 156rpx;
-
-		.top-item {
-			flex-direction: column;
-			justify-content: center;
-			align-items: center;
-
-			image {
-				width: 66rpx;
-				height: 75rpx;
-			}
-
-			view {
-				font-weight: 500;
-				color: #525c6e;
-			}
-		}
-	}
-
-	.gnh-btm {
-		justify-content: space-around;
-
-		.btm-item {
-			width: 33%;
-			text-align: center;
-			padding-top: 20rpx;
-
-			.btm-item-name {
-				font-size: 24rpx;
-				font-weight: 500;
-				color: #525c6e;
-			}
-
-			.btm-item-val {
-				font-size: 26rpx;
-				font-weight: 500;
-				color: #dd3745;
-				padding: 20rpx 0;
-			}
-
-			.btm-item-bl {
-				font-size: 24rpx;
-				font-weight: 500;
-				color: #dd3745;
-			}
-		}
-	}
-}
-
-.list {
-	background: #ffffff;
-	border-top-left-radius: 26rpx;
-	border-top-right-radius: 26rpx;
-	padding: 40rpx 15rpx 0;
-
-	.list-title {
-		font-size: 28rpx;
-		font-family: PingFang SC;
-		font-weight: 500;
-		color: #525c6e;
-		padding-bottom: 32rpx;
-
-		.title-left {
-			text-align: left;
-			width: 33%;
-		}
-
-		.title-center {
-			text-align: center;
-			width: 33%;
-		}
-
-		.title-right {
-			text-align: right;
-			width: 33%;
-		}
-	}
-
-	.list-main {
-		padding: 12rpx 0;
-
-		.main-left {
-			text-align: left;
-			width: 33%;
-			font-size: 28rpx;
-			font-family: PingFang SC;
-			font-weight: 500;
-			color: #525c6e;
-		}
-
-		.main-center {
-			text-align: center;
-			width: 33%;
-			font-size: 28rpx;
-			font-family: PingFang SC;
-			font-weight: 500;
-			color: #e15560;
-
-			&.down {
-				color: #5ec886;
-			}
-
-			&.ping {
-				color: #525c6e;
-			}
-		}
-
-		.main-right {
-			text-align: right;
-			width: 33%;
-			display: flex;
-			justify-content: flex-end;
-
-			.btn {
-				width: 122rpx;
-				height: 63rpx;
-				background: #e15562;
-				border-radius: 5rpx;
-				text-align: center;
-				line-height: 63rpx;
-				font-size: 24rpx;
-				font-family: PingFang SC;
-				font-weight: 500;
-				color: #ffffff;
-
-				&.down {
-					background: #5ec886;
-				}
-
-				&.ping {
-					background: #f6f6f6;
-				}
-			}
-		}
-	}
-}
+<template>
+	<view class="container">
+		<!-- #ifdef APP-PLUS -->
+		<view class="vheight"></view>
+		<!-- #endif -->
+		<view class="flex" style="justify-content: space-between;padding: 20rpx 30rpx;">
+			<image src="../../static/icon/user.png" mode="" style="width: 53rpx;height: 53rpx;" @click="navto('/pages/user/menu')"></image>
+			<!-- <image src="../../static/icon/tz.png" mode="" style="width: 53rpx;height: 53rpx;"></image> -->
+		</view>
+		<!-- 轮播图 start -->
+		<swiper class="top-swiper" autoplay="true" duration="400" interval="5000" @change="swiperChange">
+			<swiper-item v-for="item in clist" class="carousel-item" @click="bannerNavToUrl(item)"><image :src="item" /></swiper-item>
+		</swiper>
+		<!-- 轮播图 end -->
+		<!-- 通告欄 start -->
+		<u-notice-bar type="none" :more-icon="true" mode="vertical" :list="list" @click="goDetail" @getMore="navto('/pages/index/gglist')"></u-notice-bar>
+		<!-- 通告欄 end -->
+		<!-- 功能盒 start -->
+		<view class="gnh-wrap">
+			<view class="gnh-top flex">
+				<view class="top-item flex" @click="navto('/pages/index/rg')">
+					<image src="../../static/icon/gn-1.png" mode="" class=""></image>
+					<view class="">{{ $t('index.rg') }}</view>
+				</view>
+				<view class="top-item flex" @click="navto('/pages/transaction/cblist')">
+					<image src="../../static/icon/gn-2.png" mode="" class=""></image>
+					<view class="">充幣</view>
+				</view>
+				<view class="top-item flex" @click="navto('/pages/transaction/tblist')">
+					<image src="../../static/icon/gn-3.png" mode="" class=""></image>
+					<view class="">提幣</view>
+				</view>
+				<view class="top-item flex" @click="navto('/pages/index/language')">
+					<image src="../../static/icon/gn-4.png" mode="" class=""></image>
+					<view class="">語言</view>
+				</view>
+				<view class="top-item flex" @click="navto('/pages/index/kf')">
+					<image src="../../static/icon/gn-5.png" mode="" class=""></image>
+					<view class="">客服</view>
+				</view>
+			</view>
+			<view class="gnh-btm flex">
+				<view class="btm-item">
+					<view class="btm-item-name">BTC/USDT</view>
+					<template v-if="listOBj['BTC-USDT']">
+						<view class="btm-item-val" :style="{ color: listOBj['BTC-USDT'].dcf > 0 ? '#5ec886' : '#DD3745' }">{{ listOBj['BTC-USDT'].last || '--,--' }}</view>
+						<view class="btm-item-bl" :style="{ color: listOBj['BTC-USDT'].dcf > 0 ? '#5ec886' : '#DD3745' }">{{ listOBj['BTC-USDT'].dcf || '--,--' }}%</view>
+					</template>
+				</view>
+				<view class="btm-item">
+					<view class="btm-item-name">BCH/USDT</view>
+					<template v-if="listOBj['BCH-USDT']">
+						<view class="btm-item-val" :style="{ color: listOBj['BCH-USDT'].dcf > 0 ? '#5ec886' : '#DD3745' }">{{ listOBj['BCH-USDT'].last || '--,--' }}</view>
+						<view class="btm-item-bl" :style="{ color: listOBj['BCH-USDT'].dcf > 0 ? '#5ec886' : '#DD3745' }">{{ listOBj['BCH-USDT'].dcf || '--,--' }}%</view>
+					</template>
+				</view>
+				<view class="btm-item">
+					<view class="btm-item-name">ETH/USDT</view>
+					<template v-if="listOBj['ETH-USDT']">
+						<view class="btm-item-val" :style="{ color: listOBj['ETH-USDT'].dcf > 0 ? '#5ec886' : '#DD3745' }">{{ listOBj['ETH-USDT'].last || '--,--' }}</view>
+						<view class="btm-item-bl" :style="{ color: listOBj['ETH-USDT'].dcf > 0 ? '#5ec886' : '#DD3745' }">{{ listOBj['ETH-USDT'].dcf || '--,--' }}%</view>
+					</template>
+				</view>
+			</view>
+		</view>
+		<!-- 功能盒 end -->
+		<!--  -->
+		<view class="list">
+			<view class="list-title flex">
+				<view class="title-left">交易對</view>
+				<view class="title-center">最新價格</view>
+				<view class="title-right">24h漲跌</view>
+			</view>
+			<view class="list-main flex" @click="navto('/pages/transaction/transactionDetail?type=' + index)" v-for="(item, index) in listOBj">
+				<view class="main-left">{{ index }}</view>
+				<view class="main-center" :class="{ down: item.dcf > 0, ping: item.dcf == 0 }">{{ item.last == 0 ? '--.--' : item.last }}</view>
+				<view class="main-right">
+					<view class="btn" :class="{ down: item.dcf > 0, ping: item.dcf == 0 }">{{ item.dcf }}%</view>
+				</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+import { tradelist } from '@/api/login.js';
+import { saveUrl, interceptor } from '@/utils/loginUtils.js';
+import { mapState, mapMutations } from 'vuex';
+import { scoketNew, scoketOpen } from '@/utils/socket.js';
+import { geLevertade, gglist } from '@/api/index.js';
+export default {
+	data() {
+		return {
+			clist: {},
+			scoket: '',
+			instId: 'IOTA-USDT', //请求的产品id
+			spList: [], //需要查询的列表
+			list: [],
+			listInfo: [],
+			listOBj: {} //保存实际列表对象
+		};
+	},
+	computed: {
+		...mapState('user', ['userInfo', 'orderInfo', 'hasLogin'])
+	},
+	onLoad: function(option) {},
+	onShow: function() {
+		this.geLevertade();
+		this.tradelist();
+		this.getgg();
+	},
+	onHide() {
+		this.closeScoket();
+	},
+	//下拉刷新
+	onPullDownRefresh() {},
+	methods: {
+		navto(url) {
+			console.log(url);
+			if (!this.hasLogin) {
+				// 保存地址
+				saveUrl();
+				// 登录拦截
+				interceptor();
+			} else {
+				uni.navigateTo({
+					url
+				});
+			}
+		},
+		goDetail(e) {
+			uni.navigateTo({
+				url: '/pages/index/ggDetail?id=' + this.listInfo[e].id
+			});
+		},
+		getgg() {
+			const obj = this;
+			gglist({ page: 1, limit: 1000 }).then(e => {
+				obj.listInfo = e.data;
+				e.data.forEach(e => {
+					obj.list.push(e.title);
+				});
+			});
+		},
+		swiperChange() {},
+		// 开始请求长连接
+		onScoket() {
+			const that = this;
+			that.scoket = scoketNew('wss://wsaws.okx.com:8443/ws/v5/public');
+			that.scoket.scoketOpen().then(res => {
+				const requestList = that.spList.map(e => {
+					return {
+						channel: 'tickers',
+						instId: e.coinname.toUpperCase() + '-USDT'
+					};
+				});
+				that.scoket
+					.scoketSend({
+						op: 'subscribe',
+						args: requestList
+					})
+					.then(res => {
+						console.log(res, '发送成功');
+					});
+				that.scoket.scoketMessage(res => {
+					try {
+						if (res.data) {
+							// res.res.data[0].name = res.arg.instId
+							that.listOBj[res.arg.instId] = res.data[0];
+							that.listOBj[res.arg.instId].dcf = (((res.data[0].last * 1 - res.data[0].sodUtc0 * 1) / (res.data[0].sodUtc0 * 1)) * 100).toFixed(2);
+							that.listOBj = Object.assign({}, that.listOBj);
+						}
+						// console.log(that.listOBj, 'that.listOBj++++++');
+					} catch (e) {
+						console.log(res, res.data, '报错');
+					}
+				});
+			});
+		},
+		closeScoket() {
+			this.scoket.scoketClose();
+		},
+		// 获取查询列表
+		geLevertade() {
+			const that = this;
+			geLevertade().then(e => {
+				that.spList = e.list;
+				// 开启长连接
+				that.onScoket();
+			});
+		},
+		// 轮播图跳转
+		bannerNavToUrl(item) {
+			// #ifdef H5
+			console.log(item.wap_url.indexOf('http'), 'banner');
+			if (item.wap_url.indexOf('http') >= 0) {
+				window.location.href = item.wap_url;
+			}
+			// #endif
+			//测试数据没有写id,用title代替
+			uni.navigateTo({
+				url: item.wap_url
+			});
+		},
+		tradelist() {
+			tradelist().then(res => {
+				console.log(res);
+				this.clist = res.data.clist;
+				this.clist = Object.assign({}, this.clist);
+				console.log(this.clist, 'this.clist');
+			});
+		}
+	}
+};
+</script>
+
+<style lang="scss">
+// 顶部轮播图
+.top-swiper {
+	margin: auto;
+	width: 726rpx;
+	height: 273rpx;
+
+	.carousel-item {
+	}
+
+	// margin: 20rpx 0 0;
+	image {
+		// margin: auto;
+		width: 726rpx;
+		height: 273rpx;
+	}
+}
+
+.gnh-wrap {
+	margin: 20rpx 0;
+	width: 750rpx;
+	height: 315rpx;
+	background-color: #fff;
+	border-radius: 50rpx 50rpx 0 0;
+
+	.gnh-top {
+		justify-content: space-around;
+		height: 156rpx;
+
+		.top-item {
+			flex-direction: column;
+			justify-content: center;
+			align-items: center;
+
+			image {
+				width: 66rpx;
+				height: 75rpx;
+			}
+
+			view {
+				font-weight: 500;
+				color: #525c6e;
+			}
+		}
+	}
+
+	.gnh-btm {
+		justify-content: space-around;
+
+		.btm-item {
+			width: 33%;
+			text-align: center;
+			padding-top: 20rpx;
+
+			.btm-item-name {
+				font-size: 24rpx;
+				font-weight: 500;
+				color: #525c6e;
+			}
+
+			.btm-item-val {
+				font-size: 26rpx;
+				font-weight: 500;
+				color: #dd3745;
+				padding: 20rpx 0;
+			}
+
+			.btm-item-bl {
+				font-size: 24rpx;
+				font-weight: 500;
+				color: #dd3745;
+			}
+		}
+	}
+}
+
+.list {
+	background: #ffffff;
+	border-top-left-radius: 26rpx;
+	border-top-right-radius: 26rpx;
+	padding: 40rpx 15rpx 0;
+
+	.list-title {
+		font-size: 28rpx;
+		font-family: PingFang SC;
+		font-weight: 500;
+		color: #525c6e;
+		padding-bottom: 32rpx;
+
+		.title-left {
+			text-align: left;
+			width: 33%;
+		}
+
+		.title-center {
+			text-align: center;
+			width: 33%;
+		}
+
+		.title-right {
+			text-align: right;
+			width: 33%;
+		}
+	}
+
+	.list-main {
+		padding: 12rpx 0;
+
+		.main-left {
+			text-align: left;
+			width: 33%;
+			font-size: 28rpx;
+			font-family: PingFang SC;
+			font-weight: 500;
+			color: #525c6e;
+		}
+
+		.main-center {
+			text-align: center;
+			width: 33%;
+			font-size: 28rpx;
+			font-family: PingFang SC;
+			font-weight: 500;
+			color: #e15560;
+
+			&.down {
+				color: #5ec886;
+			}
+
+			&.ping {
+				color: #525c6e;
+			}
+		}
+
+		.main-right {
+			text-align: right;
+			width: 33%;
+			display: flex;
+			justify-content: flex-end;
+
+			.btn {
+				width: 122rpx;
+				height: 63rpx;
+				background: #e15562;
+				border-radius: 5rpx;
+				text-align: center;
+				line-height: 63rpx;
+				font-size: 24rpx;
+				font-family: PingFang SC;
+				font-weight: 500;
+				color: #ffffff;
+
+				&.down {
+					background: #5ec886;
+				}
+
+				&.ping {
+					background: #f6f6f6;
+				}
+			}
+		}
+	}
+}
 .vheight {
- height: var(--status-bar-height);
-}
+	height: var(--status-bar-height);
+}
 </style>

+ 67 - 0
pages/index/language.vue

@@ -0,0 +1,67 @@
+<template>
+	<view class="content">
+		<view class="list">
+			<view class="list-item flex" v-for="(item, index) in list" @click="change(item.type)">
+				<view class="item-left">{{ item.name }}</view>
+				<view class="item-right" v-if="language == item.type"><image src="../../static/img/gou.png" mode=""></image></view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+export default {
+	data() {
+		return {
+			language: '',
+			list: [{ name: '繁體中文', type: 'zh-CN' }, { name: 'English', type: 'en' }]
+		};
+	},
+	onLoad() {
+		let lang = uni.getStorageSync('lang');
+		console.log(lang);
+		if (lang) {
+			this.language = lang;
+		}
+	},
+	onShow() {},
+	methods: {
+		change(type) {
+			if (type == 'zh-CN') {
+				this._i18n.locale = 'zh_cn';
+			} else {
+				this._i18n.locale = type;
+			}
+			this.language = type;
+			uni.setStorageSync('lang', type);
+			uni.switchTab({
+				url: '/pages/index/index'
+			});
+		}
+	}
+};
+</script>
+
+<style lang="scss">
+page,
+.content {
+	min-height: 100%;
+	height: auto;
+	background: #fff;
+}
+.list-item {
+	padding: 40rpx 20rpx;
+	.item-left {
+		font-size: 36rpx;
+		color: #707a8a;
+	}
+	.item-right {
+		width: 36rpx;
+		height: 36rpx;
+		image {
+			width: 100%;
+			height: 100%;
+		}
+	}
+}
+</style>

+ 21 - 2
pages/index/rg.vue

@@ -1,5 +1,10 @@
 <template>
 	<view class="content">
+		<view class="vheight"></view>
+		<view class="top1 flex">
+			<image @click="back()" class="top-icon1" src="../../static/img/cb2.png" mode=""></image>
+			<image @click="navTo('/pages/user/myrg')" class="top-icon2" src="../../static/img/cb1.png" mode=""></image>
+		</view>
 		<view class="top"><image :src="'' + banner" mode=""></image></view>
 		<view class="main" v-for="(item, index) in list" @click="navTo('/pages/index/rgDetail?id=' + item.id)">
 			<view class="main-top flex">
@@ -44,8 +49,8 @@ export default {
 		this.loadData();
 	},
 	methods: {
-		navTo() {
-			this.$api.msg('認購時間未到,暫不能認購');
+		back() {
+			uni.navigateBack();
 		},
 		loadData() {
 			index({ page: 1, limit: 1000 }).then(({ data }) => {
@@ -63,6 +68,20 @@ export default {
 </script>
 
 <style lang="scss">
+.vheight {
+	height: var(--status-bar-height);
+}
+.top1 {
+	padding: 20rpx 40rpx;
+	.top-icon1 {
+		width: 52rpx;
+		height: 36rpx;
+	}
+	.top-icon2 {
+		width: 48rpx;
+		height: 48rpx;
+	}
+}
 .top {
 	margin: auto;
 	width: 750rpx;

+ 45 - 6
pages/index/rgDetail.vue

@@ -1,5 +1,9 @@
 <template>
 	<view class="content">
+		<view class="top1 flex">
+			<image @click="back()" class="top-icon1" src="../../static/img/cb2.png" mode=""></image>
+			<image @click="navTo('/pages/user/myrg')" class="top-icon2" src="../../static/img/cb1.png" mode=""></image>
+		</view>
 		<view class="main" v-if="info">
 			<view class="main-top flex">
 				<view class="main-icon"><image :src="info.imgs" mode=""></image></view>
@@ -32,15 +36,15 @@
 				</view>
 				<view class="main-bottom-item">
 					<view class="main-bottom-item-font">認購上線</view>
-					<view class="main-bottom-item-num">{{ info.allmax }}{{ info.buycoin.toLocaleUpperCase() }}</view>
+					<view class="main-bottom-item-num">{{ info.allmax }}</view>
 				</view>
 				<view class="main-bottom-item">
 					<view class="main-bottom-item-font">單次最低</view>
-					<view class="main-bottom-item-num">{{ info.min }}{{ info.buycoin.toLocaleUpperCase() }}</view>
+					<view class="main-bottom-item-num">{{ info.min }}</view>
 				</view>
 			</view>
 			<view class="sr-input flex">
-				<input placeholder="請輸入提幣數量" type="number" v-model="num" />
+				<input placeholder="請輸入認購數量" type="number" v-model="num" />
 				<view class="main-type">{{ info.coinname.toLocaleUpperCase() }}</view>
 			</view>
 			<view class="sr-input flex">
@@ -50,14 +54,17 @@
 			<view class="font">可用{{ info.buycoin.toLocaleUpperCase() }}: {{ money }}</view>
 			<view class="sr-btn" @click="submit()">立即參與</view>
 			<view class="info">
-				<view class="info-item">項目說明:{{ info.content }}</view>
+				<view class="info-item">
+					項目說明:
+					<view v-html="info.content"></view>
+				</view>
 			</view>
 		</view>
 	</view>
 </template>
 
 <script>
-import { details } from '@/api/wallet.js';
+import { details, upbuynum } from '@/api/wallet.js';
 export default {
 	data() {
 		return {
@@ -73,11 +80,32 @@ export default {
 	},
 	onShow() {},
 	methods: {
+		back() {
+			uni.navigateBack();
+		},
+		navTo(url) {
+			uni.navigateTo({
+				url
+			});
+		},
 		loadData() {
 			details({ id: this.id }).then(({ data }) => {
 				this.info = data.info;
 				this.money = data.money;
 			});
+		},
+		submit() {
+			if (this.num * 1 < 0) {
+				return this.$api.msg('認購數量大於0');
+			}
+			if (this.num * 1 > this.money * 1) {
+				return this.$api.msg('餘額不足');
+			}
+			upbuynum({ pid: this.id, num: this.num }).then(e => {
+				this.loadData();
+				this.num = '';
+				return this.$api.msg('認購成功');
+			});
 		}
 	}
 };
@@ -88,7 +116,18 @@ page,
 .content {
 	min-height: 100%;
 	height: auto;
-	background: #fff;
+	background: #f5f5f5;
+}
+.top1 {
+	padding: 20rpx 40rpx;
+	.top-icon1 {
+		width: 52rpx;
+		height: 36rpx;
+	}
+	.top-icon2 {
+		width: 48rpx;
+		height: 48rpx;
+	}
 }
 .main {
 	background: #fff;

+ 1 - 1
pages/transaction/tbdetail.vue

@@ -114,7 +114,7 @@ page,
 	height: auto;
 	background: #f5f5f5;
 }
-.vheigh {
+.vheight {
 	height: var(--status-bar-height);
 }
 .top {

+ 168 - 18
pages/user/myrg.vue

@@ -1,33 +1,183 @@
 <template>
 	<view class="content">
-
+		<view class="flex navbar">
+			<view class="" v-for="(item, index) in navList" :class="{ action: current == index }" @click="changetab(index)">{{ item.name }}</view>
+		</view>
+		<swiper class="swiper" :style="{ height: height }" :current="current" disable-touch>
+			<swiper-item v-for="navitem in navList">
+				<scroll-view scroll-y="true" class="scroll" :style="{ height: height }">
+					<view v-for="(item, ind) in navitem.list" class="usdtList padding-t-30 padding-b-30">
+						<view class="top flex">
+							<view class="top-left">項目:{{ item.name }}</view>
+							<view class="top-right">{{ item.status == 1 ? '凍結中' : '已解凍' }}</view>
+						</view>
+						<view class="main-bottom flex">
+							<view class="main-bottom-item first">
+								<view class="main-bottom-item-font">認購數量({{ item.coinname.toLocaleUpperCase() }})</view>
+								<view class="main-bottom-item-num">{{ item.num }}</view>
+							</view>
+							<view class="main-bottom-item">
+								<view class="main-bottom-item-font">支付金額({{ item.buycoin.toLocaleUpperCase() }})</view>
+								<view class="main-bottom-item-num">{{ item.num }}</view>
+							</view>
+							<view class="main-bottom-item">
+								<view class="main-bottom-item-font">{{ item.status == 1 ? '解凍日期' : '釋放日期' }}</view>
+								<view class="main-bottom-item-num">{{ item.endday }}</view>
+							</view>
+						</view>
+					</view>
+				</scroll-view>
+			</swiper-item>
+		</swiper>
 	</view>
 </template>
 
 <script>
-	export default {
-		data() {
-			return {
-
-			}
+import { issuelog } from '@/api/wallet.js';
+export default {
+	data() {
+		return {
+			height: '',
+			current: 0,
+			navList: [
+				{
+					status: 1,
+					name: '全部認購',
+					page: 1,
+					limit: 10,
+					loadingType: 'more',
+					loded: false,
+					list: []
+				},
+				{
+					status: 2,
+					name: '凍結中',
+					page: 1,
+					limit: 10,
+					loadingType: 'more',
+					loded: false,
+					list: []
+				},
+				{
+					status: 3,
+					name: '已解凍',
+					page: 1,
+					limit: 10,
+					loadingType: 'more',
+					loded: false,
+					list: []
+				}
+			]
+		};
+	},
+	onLoad() {
+		this.loadData();
+	},
+	onShow() {},
+	onReachBottom() {},
+	onReady(res) {
+		var obj = this;
+		uni.getSystemInfo({
+			success: resu => {
+				const query = uni.createSelectorQuery();
+				query.select('.swiper').boundingClientRect();
+				query.exec(function(res) {
+					obj.height = resu.windowHeight - res[0].top + 'px';
+				});
+			},
+			fail: res => {}
+		});
+	},
+	methods: {
+		changetab(index) {
+			this.current = index;
+			this.loadData('tab');
 		},
-		onLoad() {
+		loadData(tab) {
+			let obj = this;
+			let index = obj.current;
+			let item = obj.navList[index];
+			if (tab == 'tab' && item.loaded) {
+				return;
+			}
+			if (item.loadingType == 'loading') {
+				return;
+			}
+			issuelog({
+				type: item.status,
+				page: item.page,
+				limit: item.limit
+			})
+				.then(({ data }) => {
+					item.list = item.list.concat(data);
+					this.$set(item, 'loaded', true);
+				})
+				.catch(e => {
+					console.log(e);
+				});
+		}
+	}
+};
+</script>
 
-		},
-		onShow() {
+<style lang="scss">
+.swiper {
+	background-color: #fff;
+}
 
-		},
-		onReachBottom() {
+.scroll {
+	padding: 0 20rpx;
+}
 
-		},
-		onReady() {
+.navbar {
+	justify-content: flex-start;
+	font-size: 40rpx;
+	padding: 30rpx;
 
-		},
-		methods: {
+	view {
+		padding-left: 40rpx;
+		height: 100rpx;
+		line-height: 100rpx;
+	}
+}
 
+.usdtList {
+	color: #707a8a;
+	border-bottom: 1px solid $border-color-light;
+	.top {
+		padding-top: 20rpx;
+		.top-left {
+			font-size: 32rpx;
+			font-weight: 500;
+			color: #000;
+		}
+		.top-right {
+			padding: 5rpx 10rpx;
+			font-size: 28rpx;
+			color: red;
 		}
 	}
-</script>
+	.main-bottom {
+		padding: 28rpx 0;
+		.main-bottom-item {
+			display: flex;
+			flex-direction: column;
+			align-items: center;
+			.main-bottom-item-font {
+				font-size: 28rpx;
+				color: #707a8a;
+			}
+			.main-bottom-item-num {
+				margin-top: 10rpx;
+				font-size: 28rpx;
+				color: #707a8a;
+			}
+		}
+	}
+}
 
-<style lang="scss">
-</style>
+.action {
+	font-weight: bold;
+	font-size: 44rpx;
+}
+</style>

二進制
static/img/gou.png


文件差異過大導致無法顯示
+ 0 - 1
unpackage/dist/dev/app-plus/app-config-service.js


文件差異過大導致無法顯示
+ 3 - 3
unpackage/dist/dev/app-plus/app-service.js


文件差異過大導致無法顯示
+ 190 - 168
unpackage/dist/dev/app-plus/app-view.js


二進制
unpackage/dist/dev/app-plus/static/img/flower (2).png


二進制
unpackage/dist/dev/app-plus/static/img/gou.png


部分文件因文件數量過多而無法顯示