xuhaolan před 2 roky
rodič
revize
500c2e7dbb
100 změnil soubory, kde provedl 1892 přidání a 672 odebrání
  1. 8 0
      api/index.js
  2. 53 11
      api/order.js
  3. 1 1
      api/product.js
  4. 7 6
      manifest.json
  5. 14 4
      pages.json
  6. 142 0
      pages/collection/bank.vue
  7. 145 0
      pages/collection/collection.vue
  8. 157 0
      pages/collection/wx.vue
  9. 124 0
      pages/collection/zfb.vue
  10. 293 194
      pages/index/bazaar.vue
  11. 9 4
      pages/index/cangp.vue
  12. 8 5
      pages/index/index.vue
  13. 1 1
      pages/money/recharge.vue
  14. 4 2
      pages/money/wallet.vue
  15. 422 127
      pages/money/withdrawal.vue
  16. 48 43
      pages/order/order.vue
  17. 103 19
      pages/product/product.vue
  18. 2 2
      pages/public/login.vue
  19. 3 3
      pages/public/register.vue
  20. 193 212
      pages/set/changePass.vue
  21. 2 2
      pages/set/set.vue
  22. 3 4
      pages/user/about.vue
  23. 7 2
      pages/user/personal.vue
  24. 43 1
      pages/user/realName.vue
  25. 94 21
      pages/user/user.vue
  26. binární
      static/img/logo.png
  27. binární
      static/img/pass01.png
  28. binární
      static/img/pass02.png
  29. binární
      static/img/pass03.png
  30. binární
      unpackage/cache/apk/__UNI__6E56E0F_cm.apk
  31. 1 5
      unpackage/cache/apk/apkurl
  32. 0 1
      unpackage/cache/apk/cmManifestCache.json
  33. 2 2
      unpackage/cache/certdata
  34. binární
      unpackage/cache/wgt/__UNI__6E56E0F/.manifest/google-keystore.keystore
  35. binární
      unpackage/cache/wgt/__UNI__6E56E0F/.manifest/icon-android-hdpi.png
  36. binární
      unpackage/cache/wgt/__UNI__6E56E0F/.manifest/icon-android-xhdpi.png
  37. binární
      unpackage/cache/wgt/__UNI__6E56E0F/.manifest/icon-android-xxhdpi.png
  38. binární
      unpackage/cache/wgt/__UNI__6E56E0F/.manifest/icon-android-xxxhdpi.png
  39. binární
      unpackage/cache/wgt/__UNI__6E56E0F/.manifest/splash-android-hdpi.png
  40. binární
      unpackage/cache/wgt/__UNI__6E56E0F/.manifest/splash-android-xhdpi.png
  41. binární
      unpackage/cache/wgt/__UNI__6E56E0F/.manifest/splash-android-xxhdpi.png
  42. 0 0
      unpackage/cache/wgt/__UNI__6E56E0F/__uniappchooselocation.js
  43. 0 0
      unpackage/cache/wgt/__UNI__6E56E0F/__uniapperror.png
  44. 0 0
      unpackage/cache/wgt/__UNI__6E56E0F/__uniappes6.js
  45. 0 0
      unpackage/cache/wgt/__UNI__6E56E0F/__uniappopenlocation.js
  46. 0 0
      unpackage/cache/wgt/__UNI__6E56E0F/__uniapppicker.js
  47. 0 0
      unpackage/cache/wgt/__UNI__6E56E0F/__uniappquill.js
  48. 0 0
      unpackage/cache/wgt/__UNI__6E56E0F/__uniappquillimageresize.js
  49. 0 0
      unpackage/cache/wgt/__UNI__6E56E0F/__uniappscan.js
  50. 0 0
      unpackage/cache/wgt/__UNI__6E56E0F/__uniappsuccess.png
  51. 0 0
      unpackage/cache/wgt/__UNI__6E56E0F/__uniappview.html
  52. 3 0
      unpackage/cache/wgt/__UNI__6E56E0F/app-config-service.js
  53. 0 0
      unpackage/cache/wgt/__UNI__6E56E0F/app-config.js
  54. 0 0
      unpackage/cache/wgt/__UNI__6E56E0F/app-service.js
  55. 0 0
      unpackage/cache/wgt/__UNI__6E56E0F/app-view.js
  56. 0 0
      unpackage/cache/wgt/__UNI__6E56E0F/manifest.json
  57. 0 0
      unpackage/cache/wgt/__UNI__6E56E0F/static/css/cmy.css
  58. 0 0
      unpackage/cache/wgt/__UNI__6E56E0F/static/error/emptyCart.png
  59. 0 0
      unpackage/cache/wgt/__UNI__6E56E0F/static/error/errorImage.jpg
  60. 0 0
      unpackage/cache/wgt/__UNI__6E56E0F/static/error/missing-face.png
  61. 0 0
      unpackage/cache/wgt/__UNI__6E56E0F/static/game/game02.png
  62. 0 0
      unpackage/cache/wgt/__UNI__6E56E0F/static/game/game03.png
  63. 0 0
      unpackage/cache/wgt/__UNI__6E56E0F/static/game/game04.png
  64. 0 0
      unpackage/cache/wgt/__UNI__6E56E0F/static/game/game05.png
  65. 0 0
      unpackage/cache/wgt/__UNI__6E56E0F/static/game/game06.png
  66. 0 0
      unpackage/cache/wgt/__UNI__6E56E0F/static/game/game07.png
  67. 0 0
      unpackage/cache/wgt/__UNI__6E56E0F/static/game/game08.png
  68. 0 0
      unpackage/cache/wgt/__UNI__6E56E0F/static/game/game1.gif
  69. 0 0
      unpackage/cache/wgt/__UNI__6E56E0F/static/game/game10.png
  70. 0 0
      unpackage/cache/wgt/__UNI__6E56E0F/static/game/game11.png
  71. 0 0
      unpackage/cache/wgt/__UNI__6E56E0F/static/game/game12.png
  72. 0 0
      unpackage/cache/wgt/__UNI__6E56E0F/static/game/game13.png
  73. 0 0
      unpackage/cache/wgt/__UNI__6E56E0F/static/game/game14.png
  74. 0 0
      unpackage/cache/wgt/__UNI__6E56E0F/static/game/game2.gif
  75. 0 0
      unpackage/cache/wgt/__UNI__6E56E0F/static/game/game3.gif
  76. 0 0
      unpackage/cache/wgt/__UNI__6E56E0F/static/game/reb01.png
  77. 0 0
      unpackage/cache/wgt/__UNI__6E56E0F/static/game/reb02.png
  78. 0 0
      unpackage/cache/wgt/__UNI__6E56E0F/static/game/reb03.png
  79. 0 0
      unpackage/cache/wgt/__UNI__6E56E0F/static/game/reb04.png
  80. 0 0
      unpackage/cache/wgt/__UNI__6E56E0F/static/game/reb05.png
  81. 0 0
      unpackage/cache/wgt/__UNI__6E56E0F/static/icon/1.png
  82. 0 0
      unpackage/cache/wgt/__UNI__6E56E0F/static/icon/add.png
  83. 0 0
      unpackage/cache/wgt/__UNI__6E56E0F/static/icon/appleIcon.png
  84. 0 0
      unpackage/cache/wgt/__UNI__6E56E0F/static/icon/bdsj.png
  85. 0 0
      unpackage/cache/wgt/__UNI__6E56E0F/static/icon/c3.png
  86. 0 0
      unpackage/cache/wgt/__UNI__6E56E0F/static/icon/c5.png
  87. 0 0
      unpackage/cache/wgt/__UNI__6E56E0F/static/icon/c6.png
  88. 0 0
      unpackage/cache/wgt/__UNI__6E56E0F/static/icon/c7.png
  89. 0 0
      unpackage/cache/wgt/__UNI__6E56E0F/static/icon/c8.png
  90. 0 0
      unpackage/cache/wgt/__UNI__6E56E0F/static/icon/dsjh.png
  91. 0 0
      unpackage/cache/wgt/__UNI__6E56E0F/static/icon/fanhui.png
  92. 0 0
      unpackage/cache/wgt/__UNI__6E56E0F/static/icon/goto.png
  93. 0 0
      unpackage/cache/wgt/__UNI__6E56E0F/static/icon/i1.png
  94. 0 0
      unpackage/cache/wgt/__UNI__6E56E0F/static/icon/i2.png
  95. 0 0
      unpackage/cache/wgt/__UNI__6E56E0F/static/icon/i3.png
  96. 0 0
      unpackage/cache/wgt/__UNI__6E56E0F/static/icon/i4.png
  97. 0 0
      unpackage/cache/wgt/__UNI__6E56E0F/static/icon/i5.png
  98. 0 0
      unpackage/cache/wgt/__UNI__6E56E0F/static/icon/i6.png
  99. 0 0
      unpackage/cache/wgt/__UNI__6E56E0F/static/icon/i7.png
  100. 0 0
      unpackage/cache/wgt/__UNI__6E56E0F/static/icon/i8.png

+ 8 - 0
api/index.js

@@ -8,6 +8,14 @@ export function groom4(data) {
 		data
 	});
 }
+// 实名认证
+export function realname(data) {
+	return request({
+		url: '/api/user/real_name',
+		method: 'post',
+		data
+	});
+}
 // 精品推荐
 export function groom1(data) {
 	return request({

+ 53 - 11
api/order.js

@@ -1,5 +1,7 @@
 import request from '@/utils/request'
-import {upFilse} from '@/utils/request'
+import {
+	upFilse
+} from '@/utils/request'
 // 订单确认
 export function confirm(data) {
 	return request({
@@ -8,19 +10,59 @@ export function confirm(data) {
 		data
 	});
 }
+//挂售
+export function sell(data, id) {
+	return request({
+		url: '/api/nft/hang/' + id,
+		method: 'post',
+		data
+	})
+}
+//购入
+export function nftBuy(data, id) {
+	return request({
+		url: '/api/nft/buy/' + id,
+		method: 'post',
+		data
+	})
+}
+//取消挂单
+export function qxgd(data, id) {
+	return request({
+		url: '/api/nft/hang_back/' + id,
+		method: 'post',
+		data
+	})
+}
+//nft市场
+export function nftmall(data) {
+	return request({
+		url: '/api/nft/list',
+		method: 'get',
+		data
+	})
+}
+//nft挂售详情
+export function nftDetail(data,id) {
+	return request({
+		url: '/api/nft/detail/'+id,
+		method: 'get',
+		data
+	})
+}
 //获取可使用优惠券
-export function couponsOrder(data,price,id) {
+export function couponsOrder(data, price, id) {
 	return request({
-		url: '/api/coupons/order/'+price+'/'+id,
+		url: '/api/coupons/order/' + price + '/' + id,
 		method: 'get',
 		data
 	});
 }
 //获取优惠券列表
-export function getCouponsList(data,types) {
+export function getCouponsList(data, types) {
 	//优惠券状态 0全部 1未使用 2已使用
 	return request({
-		url: '/api/coupons/user/'+types,
+		url: '/api/coupons/user/' + types,
 		method: 'get',
 		data
 	});
@@ -66,9 +108,9 @@ export function orderList(data) {
 	});
 }
 // 订单详细
-export function orderDetail(data,orderid) {
+export function orderDetail(data, orderid) {
 	return request({
-		url: '/api/order/detail/'+orderid,
+		url: '/api/order/detail/' + orderid,
 		method: 'get',
 		data
 	});
@@ -127,9 +169,9 @@ export function orderPay(data) {
 }
 
 // 创建订单
-export function createOrderkey(data,key) {
+export function createOrderkey(data, key) {
 	return request({
-		url: '/api/order/create/'+key,
+		url: '/api/order/create/' + key,
 		method: 'post',
 		data
 	});
@@ -138,8 +180,8 @@ export function createOrderkey(data,key) {
 // 统计订单金额
 export function computedOrderkey(data) {
 	return request({
-		url: '/api/order/computed/'+data.orderkey,
+		url: '/api/order/computed/' + data.orderkey,
 		method: 'post',
 		data
 	});
-}
+}

+ 1 - 1
api/product.js

@@ -20,7 +20,7 @@ export function getProducts(data) {
 	});
 }
 // 获取商品详情
-export function goodsDetail(data, id) {
+export function goodsDetails(data, id) {
 	return request({
 		url: '/api/product/detail/' + id,
 		method: 'get',

+ 7 - 6
manifest.json

@@ -1,5 +1,5 @@
 {
-    "name" : "数字藏品",
+    "name" : "艺绘",
     "appid" : "__UNI__6E56E0F",
     "description" : "",
     "versionName" : "1.0.0",
@@ -48,7 +48,8 @@
                     "NSPhotoLibraryUsageDescription" : "使您上传个性化头像",
                     "NSPhotoLibraryAddUsageDescription" : "使您上传个性化头像",
                     "NSCameraUsageDescription" : "使用摄像头可以让你更好的上传个性化头像"
-                }
+                },
+                "dSYMs" : false
             },
             /* ios打包配置 */
             "sdkConfigs" : {
@@ -103,11 +104,11 @@
             "splashscreen" : {
                 "androidStyle" : "default",
                 "android" : {
-                    "hdpi" : "appbase/480.9.png",
-                    "xhdpi" : "appbase/720.9.png",
-                    "xxhdpi" : "appbase/1080.9.png"
+                    "hdpi" : "C:/Users/Administrator/Desktop/数字藏品/480.png",
+                    "xhdpi" : "C:/Users/Administrator/Desktop/数字藏品/720.png",
+                    "xxhdpi" : "C:/Users/Administrator/Desktop/数字藏品/1080.png"
                 },
-                "iosStyle" : "storyboard",
+                "iosStyle" : "common",
                 "ios" : {
                     "storyboard" : "C:/Users/Administrator/Desktop/苹果/wlg.zip"
                 }

+ 14 - 4
pages.json

@@ -7,9 +7,9 @@
 			"style": {
 				"navigationBarBackgroundColor": "#111111",
 				"navigationBarTextStyle": "white", 
-				"navigationBarTitleText": "数字藏品",
+				"navigationBarTitleText": "艺绘",
 				"app-plus": {
-					"titleNView": false
+					// "titleNView": false
 				}
 			}
 		},
@@ -762,7 +762,7 @@
         }
     ],
 	"globalStyle": {
-		"navigationBarTitleText": "微乐种",
+		"navigationBarTitleText": "艺绘",
 		"navigationBarTextStyle": "white", 
 		"navigationBarBackgroundColor": "#111111",
 		"backgroundColor": "#f8f8f8"
@@ -792,7 +792,7 @@
 				"text": "藏品"
 			},
 			{
-				"pagePath": "pages/cart/cart",
+				"pagePath": "pages/index/bazaar",
 				"iconPath": "static/tabBar/tab02.png",
 				"selectedIconPath": "static/tabBar/tab01.png",
 				"text": "市场"
@@ -805,5 +805,15 @@
 			}
 
 		]
+	},
+	"condition" : { //模式配置,仅开发期间生效
+		"current": 0, //当前激活的模式(list 的索引项)
+		"list": [
+			{
+				"name": "", //模式名称
+				"path": "", //启动页面,必选
+				"query": "" //启动参数,在页面的onLoad函数里面得到
+			}
+		]
 	}
 }

+ 142 - 0
pages/collection/bank.vue

@@ -0,0 +1,142 @@
+<template>
+	<view class="content">
+		<view class="box">
+			<view class="item ">
+				<text>姓名</text>
+				<input type="text" v-model="name" value="" placeholder="请输入真实姓名" />
+			</view>
+			<view class="item top">
+				<text>银行卡号</text>
+				<input type="text" v-model="id" value="" placeholder="请输入银行卡账号" />
+			</view>
+			<view class="item">
+				<text>所属银行</text>
+				<input type="text" v-model="idName" value="" placeholder="请输入银行" />
+			</view>
+			<view class="item">
+				<text>所属支行</text>
+				<input type="text" v-model="bankname" value="" placeholder="请输入所属支行" />
+			</view>
+			<view class="item">
+				<text>手机号</text>
+				<input type="text" v-model="phone" value="" placeholder="请输入手机号" />
+			</view>
+		</view>
+		<view class="button" @click="confirm()">确认</view>
+	</view>
+</template>
+
+<script>
+import { auction, pay_list } from '@/api/wallet.js';
+import { orderData, getUserInfo } from '@/api/user.js';
+import { mapState, mapMutations } from 'vuex';
+export default {
+	computed: {
+		...mapState('user', ['userInfo', 'orderInfo', 'hasLogin'])
+	},
+	data() {
+		return {
+			name: '',
+			id: '',
+			idName: '',
+			phone: '',
+			bankname: ''
+		};
+	},
+	onLoad() {
+		pay_list().then(({ data }) => {
+			if (data.bank != '') {
+				this.name = data.bank.name;
+				this.id = data.bank.payment;
+				this.phone = data.bank.phone;
+				this.idName = data.bank.bank;
+				this.bankname = data.bank.bank_name;
+			}
+		});
+	},
+	methods: {
+		...mapMutations('user', ['setUserInfo', 'setOrderInfo']),
+		confirm() {
+			let obj = this;
+			if (!obj.name) {
+				return this.$api.msg('请输入提款人姓名');
+			}
+			if (!obj.idName) {
+				return this.$api.msg('请输入所属银行');
+			}
+			if (!obj.id) {
+				return this.$api.msg('请输入银行卡号');
+			}
+			if (!obj.phone) {
+				return this.$api.msg('请输入手机号码');
+			}
+			if (!obj.bankname) {
+				return this.$api.msg('请输入所属支行');
+			}
+			auction({
+				type: 3,
+				name: obj.name,
+				bank: obj.idName,
+				payment: obj.id,
+				phone: obj.phone,
+				bank_name: obj.bankname
+			}).then(e => {
+				obj.$api.msg('修改成功');
+			});
+		}
+	}
+};
+</script>
+
+<style lang="scss">
+page,
+.content {
+	height: 100%;
+	padding: 0;
+	margin: 0;
+}
+.top {
+	border-top: 1rpx solid #f3f3f3;
+	border-bottom: 1rpx solid #f3f3f3;
+}
+.box {
+	background: #ffffff;
+	margin: 20rpx 0 70rpx 0;
+	.item {
+		display: flex;
+		align-items: center;
+		text {
+			margin: 0 40rpx 0 25rpx;
+			width: 150rpx;
+			font-size: 30rpx;
+			font-family: PingFang SC;
+			font-weight: 400;
+			color: #333333;
+			line-height: 100rpx;
+		}
+		input {
+			width: 500rpx;
+			height: 100rpx;
+			display: inline-block;
+			font-size: 28rpx;
+			font-family: PingFang SC;
+			font-weight: 400;
+			color: #999999;
+			line-height: 100rpx;
+		}
+	}
+}
+.button {
+	text-align: center;
+	width: 560rpx;
+	height: 80rpx;
+	background: #fd3b39;
+	border-radius: 40rpx;
+	font-size: 30rpx;
+	font-family: PingFangSC;
+	font-weight: 500;
+	color: #ffffff;
+	line-height: 80rpx;
+	margin: 0 auto;
+}
+</style>

+ 145 - 0
pages/collection/collection.vue

@@ -0,0 +1,145 @@
+<template>
+	<view class="content">
+		<view class="collection-box">
+			<view class="collection-item">
+				<view class="left">
+					<view class="img"><image src="../../static/user/mybank.png" mode=""></image></view>
+					<view class="bank">银行卡</view>
+				</view>
+				<view class="gg" @click="nav('/pages/collection/bank')">
+					<view class="status" v-if="bankData.name != null">{{ bankData.name}}</view>
+					<view class="status" v-else>未添加</view>
+					<view class="img1"><text class="iconfont iconenter"></text></view>
+				</view>
+			</view>
+			<view class="collection-item">
+				<view class="left">
+					<view class="img"><image src="../../static/user/zfb.png" mode=""></image></view>
+					<view class="bank">支付宝</view>
+				</view>
+				<view class="gg" @click="nav('/pages/collection/zfb')">
+					<view class="status" v-if="aliData.name != null">{{aliData.name}}</view>
+					<view class="status" v-else>未添加</view>
+					<view class="img1"><text class="iconfont iconenter"></text></view>
+				</view>
+			</view>
+			<view class="collection-item">
+				<view class="left">
+					<view class="img">
+						<image src="../../static/user/wx.png" mode=""></image>
+					</view>
+					<view class="bank">
+						微信
+					</view>
+				</view>
+				<view class="gg" @click="nav('/pages/collection/wx')">
+					<view class="status" v-if="wx.name != null">{{wx.name}}</view>
+					<view class="status" v-else>未添加</view>
+					<view class="img1">
+						<text class="iconfont iconenter"></text>
+					</view>
+				</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+import { mapState, mapMutations } from 'vuex';
+import { pay_list } from '../../api/wallet.js'
+export default {
+	data() {
+		return {
+			aliData: {},
+			bankData: {},
+			wx:{},
+		};
+	},
+	computed: {
+		...mapState('user', ['userInfo', 'orderInfo', 'hasLogin']),
+	},
+	onShow() {
+		this.loadDate();
+	},
+	methods: {
+		nav(url) {
+			uni.navigateTo({
+				url
+			});
+		},
+		loadDate() {
+			pay_list().then(({data}) =>{
+				this.wx = data.wx
+				this.aliData = data.zfb
+				this.bankData = data.bank
+			})
+		}
+	}
+};
+</script>
+<style lang="scss">
+page,
+.content {
+	height: 100%;
+	margin: 0;
+	height: 0;
+}
+
+.collection-box {
+	background: #ffffff;
+	margin: 50rpx 20rpx;
+	width: 710rpx;
+	display: flex;
+	flex-direction: column;
+
+	.collection-item {
+		margin: 35rpx 30rpx;
+		display: flex;
+		justify-content: space-between;
+
+		.left {
+			display: flex;
+
+			.img {
+				height: 40rpx;
+				width: 40rpx;
+
+				image {
+					height: 100%;
+					width: 100%;
+				}
+			}
+
+			.bank {
+				margin-left: 25rpx;
+				font-size: 26rpx;
+				font-family: PingFang SC;
+				font-weight: 500;
+				color: #333333;
+			}
+		}
+
+		.gg {
+			display: flex;
+
+			.status {
+				font-size: 26rpx;
+				font-family: PingFang SC;
+				font-weight: 500;
+				color: #999999;
+				margin-right: 20rpx;
+			}
+
+			.img1 {
+				width: 15rpx;
+				height: 25rpx;
+
+				image {
+					width: 100%;
+					height: 100%;
+				}
+			}
+		}
+	}
+}
+</style>

+ 157 - 0
pages/collection/wx.vue

@@ -0,0 +1,157 @@
+<template>
+	<view class="content">
+		<view class="box">
+			<view class="wx">
+				<text>姓名</text>
+				<input type="text" v-model="name" value="" placeholder="请输入姓名" />
+			</view>
+			<view class="wx">
+				<text>微信号</text>
+				<input type="text" v-model="code" value="" placeholder="请输入微信号" />
+			</view>
+			<view class="wx">
+				<text>手机号</text>
+				<input type="text" v-model="phone" value="" placeholder="请输入手机号" />
+			</view>
+			<view class="erweima">
+				<text>微信收款码</text>
+				<view class="img" @click="uploads()">
+					<image src="../../static/user/erweima.png" mode="" v-if="image == ''"></image>
+					<image :src="image" mode="" v-else></image>
+				</view>
+			</view>
+		</view>
+		<view class="button" @click="confirm()">
+			确认
+		</view>
+	</view>
+</template>
+
+<script>
+	import { upload } from '@/api/order.js'
+	import { auction,pay_list } from '@/api/wallet.js';
+	export default {
+		data() {
+			return {
+				code:'',
+				name:'',
+				image:'',
+				phone:''
+			};
+		},
+		onLoad() {
+			pay_list().then(({data}) =>{
+				if(data.wx != ''){
+					this.name = data.wx.name
+					this.code = data.wx.payment
+					this.image = data.wx.image
+					this.phone = data.wx.phone
+				}
+			})
+		},
+		methods: {
+			uploads(){
+				upload({
+					filename: ''
+				}).then(data => {
+					this.image = data[0].url;
+				})
+			},
+			confirm() {
+				let obj = this;
+				if (!obj.name) {
+					return this.$api.msg('请输入提款人姓名');
+				}
+				if (!obj.code) {
+					return this.$api.msg('请输入微信账号');
+				}
+				if (!obj.image) {
+					return this.$api.msg('请上传微信二维码');
+				}
+				if (!obj.phone) {
+					return this.$api.msg('请输入手机号码');
+				}
+				auction({
+					type:1,
+					name: obj.name,
+					payment: obj.code,
+					image: obj.image,
+					phone: obj.phone,
+				})
+					.then(e => {
+						obj.$api.msg('修改成功');
+					})
+					.catch(e => {
+						console.log(e);
+					});
+			},
+		}
+	}
+</script>
+
+<style lang="scss">
+page , .content{
+	height: 100%;
+	margin: 0;
+	padding: 0;
+	
+}
+.box{
+	margin:20rpx 0  100rpx 0;
+	width: 100%;
+	background: #FFFFFF;
+	
+	.wx{
+		border-bottom: #F0F0F0 solid 1rpx;
+		padding: 20rpx 0 30rpx 0;
+		display: flex;
+		text{
+			width: 150rpx;
+			margin: 0 30rpx;
+		}
+		input {
+			height: 100rpx;
+			display: inline-block;
+			font-size: 28rpx;
+			font-family: PingFang SC;
+			font-weight: 400;
+			color: #999999;
+			line-height: 100rpx;
+		}
+	}
+	.erweima{
+		padding: 30rpx 0;
+		display: flex;
+		text{
+			margin: 0 30rpx;
+			width: 150rpx;
+			font-size: 30rpx;
+			font-family: PingFang SC;
+			font-weight: 400;
+			color: #333333;
+			
+		}
+		.img{
+			width: 160rpx;
+			height: 160rpx;
+			image{
+				width: 100%;
+				height: 100%;
+			}
+		}
+	}
+}
+.button{
+	margin: 0 auto;
+	width: 560rpx;
+	height: 80rpx;
+	background: #FD3B39;
+	border-radius: 40rpx;
+	font-size: 30rpx;
+	font-family: PingFangSC;
+	font-weight: 500;
+	color: #FFFFFF;
+	line-height: 80rpx;
+	text-align: center;
+}
+</style>

+ 124 - 0
pages/collection/zfb.vue

@@ -0,0 +1,124 @@
+<template>
+	<view class="content">
+		<view class="box">
+			<view class="item top">
+				<text>真实姓名</text>
+				<input type="text" v-model="name" value="" placeholder="请输入真实姓名" />
+			</view>
+			<view class="item">
+				<text>支付宝账号</text>
+				<input type="text" v-model="id" value="" placeholder="请输入支付宝账号" />
+			</view>
+			<view class="item">
+				<text>手机号</text>
+				<input type="text" v-model="phone" value="" placeholder="请输入手机号" />
+			</view>
+		</view>
+		<view class="button" @click="confirm()">确认</view>
+	</view>
+</template>
+
+<script>
+import { orderData, getUserInfo } from '@/api/user.js';
+import { mapState, mapMutations } from 'vuex';
+import { auction,pay_list } from '@/api/wallet.js';
+export default {
+	computed: {
+		...mapState('user', ['userInfo', 'orderInfo', 'hasLogin'])
+	},
+	data() {
+		return {
+			name: '',
+			id: '',
+			phone:''
+		};
+	},
+	onLoad() {
+		pay_list().then(({data}) =>{
+			if(data.zfb != ''){
+				this.name = data.zfb.name
+				this.id = data.zfb.payment
+				this.phone = data.zfb.phone
+			}
+		})
+	},
+	methods: {
+		...mapMutations('user', ['setUserInfo', 'setOrderInfo']),
+		confirm() {
+			let obj = this;
+			if (!obj.name) {
+				return this.$api.msg('请输入提款人姓名');
+			}
+			if (!obj.id) {
+				return this.$api.msg('请输入支付宝账号');
+			}
+			if (!obj.phone) {
+				return this.$api.msg('请输入手机号码');
+			}
+			auction({
+				type:2,
+				name: obj.name,
+				payment: obj.id,
+				phone: obj.phone,
+			})
+				.then(e => {
+					obj.$api.msg('修改成功');
+				})
+				.catch(e => {
+					console.log(e);
+				});
+		},
+	}
+};
+</script>
+
+<style lang="scss">
+page,
+.content {
+	height: 100%;
+	padding: 0;
+	margin: 0;
+}
+.top {
+	border-bottom: 1rpx solid #f3f3f3;
+}
+.box {
+	background: #ffffff;
+	margin: 20rpx 0 70rpx 0;
+	.item {
+		display: flex;
+		align-items: center;
+		text {
+			margin: 0 40rpx 0 25rpx;
+			width: 150rpx;
+			font-size: 30rpx;
+			font-family: PingFang SC;
+			font-weight: 400;
+			color: #333333;
+			line-height: 100rpx;
+		}
+		input {
+			height: 100rpx;
+			display: inline-block;
+			font-size: 28rpx;
+			font-family: PingFang SC;
+			font-weight: 400;
+			color: #999999;
+			line-height: 100rpx;
+		}
+	}
+}
+.button {
+	text-align: center;
+	width: 560rpx;
+	height: 80rpx;
+	background: #FD3B39;
+	border-radius: 40rpx;
+	font-size: 30rpx;
+	font-family: PingFangSC;
+	font-weight: 500;
+	color: #ffffff;
+	line-height: 80rpx;
+	margin: 0 auto;
+}
+</style>

+ 293 - 194
pages/index/bazaar.vue

@@ -18,33 +18,50 @@
 		<view class="box">
 			<view class="box-title">
 				<view class="left">
-					数字藏品
+					艺绘
 				</view>
-				<view class="right">
+				<view class="right" @click="navTo('/pages/index/cangp')">
 					查看更多 >
 				</view>
 			</view>
-			<view class="box-content">
+			<view class="box-content" v-for="(item,index) in list" @click="buy(item)">
 				<view class="img">
-					<image src="../../static/index/nvwang.png" mode=""></image>
+					<image :src="item.class_info.uri" mode=""></image>
 				</view>
 				<view class="content-title">
 					<view class="title">
+						{{item.class_info.name}}
+					</view>
+					<view class="text">
+						持有者:{{item.user.nickname}}
+					</view>
+					<view class="text">
+					价格: <span style = "font-size: 32rpx; color:#A581FF" >¥{{item.price}}</span>
+					</view>
+				</view>
+			</view>
+			<!-- <view class="box-content">
+				<view class="img">
+					<image src="../../static/index/nvwang.png" mode=""></image>
+				</view>
+				<view class="content-title">
+					<view class="">
 						黑道女王
 					</view>
 					<view class="text">
 						黑道研究会 发行
 					</view>
-					<view class="text ">
-						价格:  <text >¥99.99</text>
+					<view class="text">
+						发行数量: 14521份
 					</view>
 				</view>
-			</view>
+			</view> -->
 		</view>
-		
-		
+		<view class="btm" style="height: 44px;"></view>
+
+
 		<!-- 客服 -->
-		<uni-popup ref="popupkf" type="center">
+		<!-- <uni-popup ref="popupkf" type="center">
 			<view class="popup-box">
 				<view class="img"><image src="../../static/img/img009.png" mode=""></image></view>
 				<view class="mian">
@@ -59,71 +76,141 @@
 					</view>
 				</view>
 			</view>
-		</uni-popup>
+		</uni-popup> -->
+
 	</view>
 </template>
 
 <script>
-import { mapState, mapMutations } from 'vuex';
-// #ifdef H5
-import { weixindata, shareLoad } from '@/utils/wxAuthorized';
-// #endif
-export default {
-	data() {
-		return {
-			text: '',
-			checkid: 0,
-			titleNViewBackground: '',
-			longitude: 0, //经度
-			latitude: 0, //纬度
-			swiperCurrent: 0,
-			swiperLength: 0,
-			carouselList: [], //轮播列表
-			bastList: [], //会员礼包
-			integralList: [], //兑换专区
-			page: 1,
-			limit: 10,
-			loadType: 'more',
-			text: [],
-			article: []
-		};
-	},
-	computed: {
-		...mapState(['loginInterceptor', 'baseURL']),
-		...mapState('user', ['hasLogin', 'userInfo'])
-	},
-	onLoad: function(option) {
-	},
-	onShow: function() {
-	},
-	onReachBottom() {
-		this.getproducts();
-	},
-	methods: {
-		...mapMutations(['setLat', 'setLon']),
-		// 點擊搜索框
-		clickSearch() {
-			uni.navigateTo({
-				// url: '/pages/product/search'
-			});
+	import {
+		getBargainList,
+		getProducts
+	} from '@/api/product.js';
+	import {
+		nftmall,nftDetail
+	} from '@/api/order.js'
+	// import {mapState} from 'vuex'
+	import {
+		loadIndexs
+	} from '@/api/index.js'
+	import {
+		mapState,
+		mapMutations
+	} from 'vuex';
+	// #ifdef H5
+	import {
+		weixindata,
+		shareLoad
+	} from '@/utils/wxAuthorized';
+	// #endif
+	export default {
+		data() {
+			return {
+				isSc:1,//是否是市场
+				text: '',
+				checkid: 0,
+				titleNViewBackground: '',
+				longitude: 0, //经度
+				latitude: 0, //纬度
+				swiperCurrent: 0,
+				swiperLength: 0,
+				carouselList: [], //轮播列表
+				bastList: [], //会员礼包
+				integralList: [], //兑换专区
+				list: [], //卡片信息
+				page: 1,
+				limit: 10,
+				loadType: 'more',
+				text: [],
+				article: [],
+				page:1,
+				limit:10
+			};
 		},
-	
-		
+		computed: {
+			...mapState(['loginInterceptor', 'baseURL']),
+			...mapState('user', ['hasLogin', 'userInfo'])
+		},
+		onLoad: function(option) {
+			if (this.hasLogin) {
+				this.loadIndex()
+				this.getProduct()
+			}
+		},
+		onShow: function() {
+			if (this.hasLogin) {
+				this.loadIndex()
+				this.getProduct()
+			}
+		},
+		// onReachBottom() {
+		// 	this.getproducts();
 		
-	}
-};
+		// },
+		methods: {
+			...mapMutations(['setLat', 'setLon']),
+			//市场列表
+			loadIndex() {
+				let obj = this
+				nftmall({
+					page:obj.page,
+					limit:obj.limit
+				}).then(res => {
+					console.log(res, 'res');
+					obj.list = res.data.list
+					// obj.carouselList = res.data.banner
+					// console.log(res,'res');
+					// obj.list = res.data.info.fastList
+
+				})
+			},
+			getProduct() {
+				let obj = this
+				getProducts().then(res => {
+					// obj.carouselList = res.data.banner
+				// console.log(res,'rrrrrrrrr')
+				// 	obj.list = res.list
+				// 	console.log(obj.list, 'res');
+
+				})
+			},
+			buy(item) {
+				console.log(item, 'res');
+				uni.navigateTo({
+					url: '/pages/product/product?id=' + item.id+'&isSc='+this.isSc
+				})
+			},
+			navTo(url) {
+				uni.switchTab({
+					url
+				})
+			},
+
+			// 點擊搜索框
+			clickSearch() {
+				uni.navigateTo({
+					// url: '/pages/product/search'
+				});
+			},
+			swiperChange() {}
+
+
+
+		}
+	};
 </script>
 
 <style lang="scss">
-page{
-	width: 750rpx;
-	height: 100%;
-	background: #111111;
-}
+	page {
+		width: 750rpx;
+		height: 100%;
+		background: #111111;
+	}
+
 	.top {
 		position: relative;
 		width: 100%;
-		height: 360rpx;
+		// height: 360rpx;
 
 		.top-bg {
 			position: absolute;
@@ -144,7 +231,7 @@ page{
 				width: 698rpx;
 				height: 60rpx;
 				background: #191919;
-				
+
 				// box-shadow: 0px 10rpx 20rpx 0px rgba(4, 114, 69, 0.22);
 				border-radius: 30rpx;
 
@@ -163,201 +250,213 @@ page{
 			}
 		}
 	}
-	.box{
+
+	.box {
 		margin: 0 30rpx;
-		.box-title{
+
+		.box-title {
 			display: flex;
 			justify-content: space-between;
-			.left{
+
+			.left {
 				font-size: 38rpx;
 				font-family: PingFang SC;
 				font-weight: bold;
 				color: #FFFFFF;
 				line-height: 120rpx;
 			}
-			.right{
-				
+
+			.right {
+
 				font-size: 24rpx;
 				font-family: PingFang SC;
 				font-weight: 500;
 				color: #FFFFFF;
 				line-height: 120rpx;
 			}
-			
+
 		}
-		.box-content{
+
+		.box-content {
 			width: 690rpx;
 			height: 915rpx;
 			margin: 50rpx 0;
-			.img{
+
+			.img {
 				width: 690rpx;
 				height: 690rpx;
-				image{
+
+				image {
 					width: 100%;
 					height: 100%;
 				}
 			}
-			.content-title{
+
+			.content-title {
 				margin-top: -10rpx;
-				padding: 30rpx 20rpx ;
-				
+				padding: 30rpx 20rpx;
+
 				border-bottom-left-radius: 10rpx;
 				border-bottom-right-radius: 10rpx;
 				border: 2rpx solid #533A6A;
 				// box-shadow: 0px 0px 20rpx 0px rgba(79,59,103,0.0600);
-				
-				.title{
+
+				.title {
 					font-size: 39rpx;
 					font-weight: bold;
 					color: #FFFFFF;
 					margin-bottom: 20rpx;
-					
+
 				}
-				.text{
+
+				.text {
+					margin: 10rpx 0;
 					color: #FFFFFF;
-					font-size: 28rpx;
-				}
-				.text>text{
-					font-size: 32rpx;
-					font-weight: 500;
-					color: #A581FF;
-					line-height: 39px;
+					font-size: 26rpx;
 				}
 			}
 		}
 	}
-.popup-box {
-	width: 522rpx;
-	height: 605rpx;
-	background-color: #ffffff;
-	border-radius: 20rpx;
-	position: relative;
-
-	.img {
-		position: relative;
-		top: -56rpx;
-		left: 0;
-		width: 522rpx;
-		height: 132rpx;
-		display: flex;
-		justify-content: center;
-
-		image {
-			border-radius: 20rpx 20rpx 0 0;
-			width: 450rpx;
-			height: 132rpx;
-		}
-	}
 
-	.mian {
-		margin-top: -44rpx;
-		display: flex;
-		flex-direction: column;
-		align-items: center;
-		// padding: 32rpx 32rpx;
+	.popup-box {
+		width: 522rpx;
+		height: 605rpx;
 		background-color: #ffffff;
-		border-radius: 0 0 20rpx 20rpx;
-		text-align: center;
+		border-radius: 20rpx;
+		position: relative;
 
-		.delivery {
-			font-size: 40rpx;
-			color: #333333;
+		.img {
+			position: relative;
+			top: -56rpx;
+			left: 0;
+			width: 522rpx;
+			height: 132rpx;
 			display: flex;
-			align-items: center;
-			flex-direction: column;
-
-			.title {
-			}
+			justify-content: center;
 
 			image {
-				margin-top: 48rpx;
-				width: 172rpx;
-				height: 160rpx;
+				border-radius: 20rpx 20rpx 0 0;
+				width: 450rpx;
+				height: 132rpx;
 			}
 		}
 
-		.nocancel {
-			font-size: 32rpx;
-			color: #333333;
-			margin-top: 14rpx;
-		}
-
-		.comfirm-box {
-			margin-top: 52rpx;
+		.mian {
+			margin-top: -44rpx;
 			display: flex;
-			// margin-bottom: 32rpx;
+			flex-direction: column;
+			align-items: center;
+			// padding: 32rpx 32rpx;
+			background-color: #ffffff;
+			border-radius: 0 0 20rpx 20rpx;
+			text-align: center;
 
-			// justify-content: space-around;
-			.cancel {
+			.delivery {
+				font-size: 40rpx;
+				color: #333333;
 				display: flex;
 				align-items: center;
-				justify-content: center;
-				width: 197rpx;
-				height: 74rpx;
-				border: 1px solid #dcc786;
-				border-radius: 38rpx;
+				flex-direction: column;
 
+				.title {}
+
+				image {
+					margin-top: 48rpx;
+					width: 172rpx;
+					height: 160rpx;
+				}
+			}
+
+			.nocancel {
 				font-size: 32rpx;
-				color: #605128;
+				color: #333333;
+				margin-top: 14rpx;
 			}
 
-			.comfirm {
-				margin-left: 32rpx;
+			.comfirm-box {
+				margin-top: 52rpx;
 				display: flex;
-				align-items: center;
-				justify-content: center;
-				width: 197rpx;
-				height: 74rpx;
-				background: linear-gradient(-90deg, #d1ba77 0%, #f7e8ad 100%);
-				border-radius: 38px;
-				font-size: 32rpx;
-				color: #605128;
+				// margin-bottom: 32rpx;
+
+				// justify-content: space-around;
+				.cancel {
+					display: flex;
+					align-items: center;
+					justify-content: center;
+					width: 197rpx;
+					height: 74rpx;
+					border: 1px solid #dcc786;
+					border-radius: 38rpx;
+
+					font-size: 32rpx;
+					color: #605128;
+				}
+
+				.comfirm {
+					margin-left: 32rpx;
+					display: flex;
+					align-items: center;
+					justify-content: center;
+					width: 197rpx;
+					height: 74rpx;
+					background: linear-gradient(-90deg, #d1ba77 0%, #f7e8ad 100%);
+					border-radius: 38px;
+					font-size: 32rpx;
+					color: #605128;
+				}
 			}
 		}
 	}
-}
-.tongz {
-	width: 690rpx;
-	height: 70rpx;
-	margin: 32rpx auto 0;
-	padding: 18rpx 30rpx 18rpx 24rpx;
-	align-items: center;
-	position: relative;
-	.tongz-bg {
-		position: absolute;
-		top: 0;
-		right: 0;
-		left: 0;
+
+	.tongz {
 		width: 690rpx;
 		height: 70rpx;
-		image {
-			width: 100%;
-			height: 100%;
-		}
-	}
-	.tongz-left {
-		width: 640rpx;
-		.image-left {
-			width: 28rpx;
-			height: 34rpx;
+		margin: 32rpx auto 0;
+		padding: 18rpx 30rpx 18rpx 24rpx;
+		align-items: center;
+		position: relative;
+
+		.tongz-bg {
+			position: absolute;
+			top: 0;
+			right: 0;
+			left: 0;
+			width: 690rpx;
+			height: 70rpx;
+
+			image {
+				width: 100%;
+				height: 100%;
+			}
 		}
-		.tongz-font {
-			margin-left: 22rpx;
-			font-size: 28rpx;
-			font-family: Source Han Sans CN;
-			font-weight: 400;
-			color: #0f253a;
+
+		.tongz-left {
+			width: 640rpx;
+
+			.image-left {
+				width: 28rpx;
+				height: 34rpx;
+			}
+
+			.tongz-font {
+				margin-left: 22rpx;
+				font-size: 28rpx;
+				font-family: Source Han Sans CN;
+				font-weight: 400;
+				color: #0f253a;
+			}
 		}
-	}
-	.tongz-right {
-		position: relative;
-		z-index: 11;
-		width: 12rpx;
-		height: 26rpx;
-		image {
-			width: 100%;
-			height: 100%;
+
+		.tongz-right {
+			position: relative;
+			z-index: 11;
+			width: 12rpx;
+			height: 26rpx;
+
+			image {
+				width: 100%;
+				height: 100%;
+			}
 		}
 	}
-}
 </style>

+ 9 - 4
pages/index/cangp.vue

@@ -17,7 +17,7 @@
 		<view class="box">
 			<view class="box-title">
 				<view class="left">
-					数字藏品
+					艺绘
 				</view>
 				<view class="right" @click="navTo('/pages/index/cangp')">
 					查看更多 >
@@ -60,7 +60,7 @@
 		
 		
 		<!-- 客服 -->
-		<uni-popup ref="popupkf" type="center">
+		<!-- <uni-popup ref="popupkf" type="center">
 			<view class="popup-box">
 				<view class="img"><image src="../../static/img/img009.png" mode=""></image></view>
 				<view class="mian">
@@ -75,7 +75,7 @@
 					</view>
 				</view>
 			</view>
-		</uni-popup>
+		</uni-popup> -->
 		
 	</view>
 </template>
@@ -94,6 +94,7 @@ import { weixindata, shareLoad } from '@/utils/wxAuthorized';
 export default {
 	data() {
 		return {
+			isSc:2,
 			text: '',
 			checkid: 0,
 			titleNViewBackground: '',
@@ -132,6 +133,7 @@ export default {
 		loadIndex(){
 			let obj = this
 			loadIndexs().then(res=>{
+				console.log(res,'res');
 				obj.carouselList = res.data.banner
 				// console.log(res,'res');
 				// obj.list = res.data.info.fastList
@@ -149,6 +151,9 @@ export default {
 		},
 		buy(item){
 			console.log(item,'res');
+			uni.navigateTo({
+				url:'/pages/product/product?id='+item.id+'&isSc='+this.isSc
+			})
 		}
 		,
 		navTo(url){
@@ -181,7 +186,7 @@ page{
 	.top {
 		position: relative;
 		width: 100%;
-		height: 360rpx;
+		// height: 360rpx;
 
 		.top-bg {
 			position: absolute;

+ 8 - 5
pages/index/index.vue

@@ -17,7 +17,7 @@
 		<view class="box">
 			<view class="box-title">
 				<view class="left">
-					数字藏品
+					艺绘
 				</view>
 				<view class="right" @click="navTo('/pages/index/cangp')">
 					查看更多 >
@@ -94,6 +94,7 @@ import { weixindata, shareLoad } from '@/utils/wxAuthorized';
 export default {
 	data() {
 		return {
+			isSc:2,
 			text: '',
 			checkid: 0,
 			titleNViewBackground: '',
@@ -117,13 +118,14 @@ export default {
 		...mapState('user', ['hasLogin', 'userInfo'])
 	},
 	onLoad: function(option) {
+		
+	},
+	onShow: function() {
 		if(this.hasLogin){
 			this.loadIndex()
 			this.getProduct()
 		}
 	},
-	onShow: function() {
-	},
 	// onReachBottom() {
 	// 	this.getproducts();
 	// },
@@ -151,7 +153,7 @@ export default {
 		buy(item){
 			console.log(item,'res');
 			uni.navigateTo({
-				url:'/pages/product/product?id='+item.id
+				url:'/pages/product/product?id='+item.id+'&isSc='+this.isSc
 			})
 		}
 		,
@@ -226,8 +228,9 @@ page{
 		}
 	}
 	.box{
-		margin: 0 30rpx;
+		margin:  30rpx;
 		.box-title{
+			margin-top: 20rpx;
 			display: flex;
 			justify-content: space-between;
 			.left{

+ 1 - 1
pages/money/recharge.vue

@@ -560,7 +560,7 @@
 	}
 
 	.active-bg {
-		background: linear-gradient(143.2747deg, #ff6a00, #ee0979) !important;
+		background: linear-gradient(270deg, #6E8DF7, #08aaec);
 		color: #FFFFFF !important;
 	}
 	.aaa{

+ 4 - 2
pages/money/wallet.vue

@@ -22,7 +22,7 @@
 		<view class="center-box">
 			<view class="centet-left">
 				<view class="top">
-					{{cz || 0}}
+					{{userInfo.recharge || 0}}
 				</view>
 				<view class="bottom">
 					历史充值(元)
@@ -31,7 +31,7 @@
 			<view class="" style="width: 2rpx;height: 54rpx;background: #EEEEEE;"></view>
 			<view class="centet-left">
 				<view class="top">
-					{{tx || 0}}
+					{{userInfo.extraxt|| 0}}
 				</view>
 				<view class="bottom">
 					历史提现(元)
@@ -62,6 +62,7 @@
 </template>
 
 <script>
+	import { mapState, mapMutations } from 'vuex';
 	import {
 		getUserInfo
 	} from '@/api/user.js';
@@ -110,6 +111,7 @@
 			this.getUserInfo()
 		},
 		methods: {
+			...mapState('user', ['hasLogin', 'userInfo']),
 			getUserInfo() {
 				getUserInfo().then(res => {
 					this.money = res.data.now_money*1

+ 422 - 127
pages/money/withdrawal.vue

@@ -1,51 +1,107 @@
 <template>
 	<view class="content">
-		<view class="tixian-box">
-			<view class="tixian-left">
-				可提现金额
+		<!-- <uni-notice-bar single="true" text="实际到账98%"></uni-notice-bar> -->
+		<view class="content-money">
+			<view class="flex " style="width: 750rpx;justify-content: space-around;margin-left: 0;">
+				<view class="buttom">
+					<view class="icon">{{ money | getMoneyStyle }}</view>
+					<text class="text">可提现{{showType}}</text>
+				</view>
 			</view>
-			<view class="tixian-right">
-				<span style="font-size: 30rpx;">¥</span>1111<span>{{userInfo.money}}</span>
-			</view>
-		</view>
-		<view class="tixian-box">
-			<view class="tixian-left">
-				申请提现金额
-			</view>
-			<view class="tixian-right">
-				<span style="font-size: 30rpx;">¥</span><input type="number" class="input" v-model="txMoney">
-			</view>
-		</view>
-		<view class="all" @click="tiX">
-			全部提现
 		</view>
-		<view class="center">
 
-		</view>
-		<view class="chooseZh-box">
-			<view class="chooseZh-title">
-				提现到
+		<view class="row-box">
+			<view class="title">提现金额</view>
+			<view class="row">
+				<text class="tit">¥</text>
+				<input class="input" type="number" v-model="withdrawal" placeholder="请输入提现金额"
+					placeholder-class="placeholder" />
+				<view class="buttom butt" @click="withdrawal = money">全部提现</view>
 			</view>
-			<view class="chooseZh-content">
-				<radio-group name="" class="chooseZh-content">
-					<label class="label">
-						<view class="cont-cont">
-							<image src="../../static/img/weixin.png" mode=""></image>
-							<text class="zf">微信支付</text>
+		</view>
+		<!-- #ifndef MP-WEIXIN -->
+		<view class="list">
+			<radio-group @change="tabRadio">
+				<!-- <label>
+					<view class="box">
+						<view class="icon iconfont iconweixin1"></view>
+						<view class="title-box">
+							<view class="title"><text>提现至微信</text></view>
 						</view>
-						<radio :value="weixin" style="transform:scale(0.8);color: #A581FF;" />
-					</label>
-					<label class="label">
-						<view class="cont-cont">
-							<image src="../../static/img/bank.png" mode=""></image>
-							<text class="zf">银行账号</text>
+						<view class="right"><radio value="weixin" color="#5dbc7c" :checked="type == 'weixin'" /></view>
+					</view>
+				</label> -->
+				<label>
+					<view class="box">
+						<view class="icon iconfont iconzhifubao"></view>
+						<view class="title-box">
+							<view class="title">
+								<text v-if="aliData.fullname">提现至支付宝</text>
+								<text v-else>请创建支付宝账号</text>
+							</view>
+							<view class="node">
+								<text v-if="aliData.fullname">真实姓名({{ aliData.fullname }})</text>
+							</view>
 						</view>
-						<radio :value="bank" style="transform:scale(0.8);color: #A581FF;" />
-					</label>
-				</radio-group>
-				<button class="button" >提交申请</button>
-			</view>
+						<view class="right">
+							<radio value="alipay" color="#A581FF" :checked="type == 'alipay'" />
+						</view>
+					</view>
+				</label>
+				<!-- <label>
+					<view class="box">
+						<view class="icon iconfont">
+							<image class="icon-img" src="/static/icon/i8.png" mode="aspectFit"></image>
+						</view>
+						<view class="title-box">
+							<view class="title">
+								<text v-if="bankData.bankno">{{ bankData.bank + ' ' + bankData.bankno }}</text>
+								<text v-else>请创建银行账号</text>
+							</view>
+							<view class="node">
+								<text v-if="bankData.fullname">真实姓名({{ bankData.fullname }})</text>
+							</view>
+						</view>
+						<view class="right">
+							<radio value="bank" color="#ff0060" :checked="type == 'bank'" />
+						</view>
+					</view>
+				</label> -->
+			</radio-group>
+		</view>
+		<!-- #endif -->
+		<view class="row b-b" v-if="type == 'alipay'">
+			<text class="tit">支付宝账号</text>
+			<input class="input" type="text" v-model="alipay_code" placeholder="请输入支付宝账号"
+				placeholder-class="placeholder" />
+		</view>
+		<view class="row b-b" v-if="type == 'alipay'">
+			<text class="tit">支付宝姓名</text>
+			<input class="input" type="text" v-model="alipay_name" placeholder="请输入支付宝姓名"
+				placeholder-class="placeholder" />
+		</view>
+		<view class="row b-b" v-if="type == 'alipay'">
+			<text class="tit">手机号</text>
+			<input class="input" v-model="alipay_phone" type="number" placeholder="请输入手机号"
+			placeholder-class="placeholder"/>
 		</view>
+		<view class="row b-b" v-if="type == 'bank'">
+			<text class="tit">银行卡号</text>
+			<input class="input" type="text" v-model="bank_code" placeholder="请输入银行卡号"
+				placeholder-class="placeholder" />
+		</view>
+		<view class="row b-b" v-if="type == 'bank'">
+			<text class="tit">姓名</text>
+			<input class="input" type="text" v-model="bank_people" placeholder="请输入银行卡姓名"
+				placeholder-class="placeholder" />
+		</view>
+		<view class="row b-b" v-if="type == 'bank'">
+			<text class="tit">所属银行</text>
+			<input class="input" type="text" v-model="bank_name" placeholder="请输入所属银行"
+				placeholder-class="placeholder" />
+		</view>
+		<button class="add-btn up" @click="confirm" :class="{'loading': load}">提交申请</button>
+		<!-- <button class="add-btn " v-if="!weichatBsrowser" @click="navTo('/pages/money/account')">账号管理</button> -->
 	</view>
 </template>
 
@@ -56,6 +112,7 @@
 	import {
 		extractCash,
 		extractBank,
+		setAliInfo,
 		aliInfo,
 		bankInfo,
 		getMoneyType
@@ -70,7 +127,9 @@
 	} from 'vuex';
 	import uniNoticeBar from '@/components/uni-notice-bar/uni-notice-bar.vue';
 	export default {
-
+		filters: {
+			getMoneyStyle
+		},
 		components: {
 			uniNoticeBar
 		},
@@ -79,135 +138,371 @@
 		},
 		data() {
 			return {
-				txMoney: 0, //提现金额
-				weixin: "",
-				bank: "",
-
+				load: true,
+				showType: '',
+				from: '',
+				type: 'alipay', //提现方式
+				money: '0.00', //可提现金额
+				freeze: '0.0', //冻结金额
+				withdrawal: '', //提现金额
+				minPrice: '', //最少提现金额
+				aliData: {},
+				bankData: {},
+				alipay_code: '',
+				alipay_name: '',
+				alipay_phone:'',
+				bank_code: '',
+				bank_people: '',
+				bank_name: '',
+				// #ifdef H5
+				weichatBsrowser: false
+				// #endif
 			};
 		},
 		onLoad(options) {
-			console.log(this.userInfo, 'wwww');
+			// #ifdef H5
+			this.weichatBsrowser = uni.getStorageSync('weichatBrowser');
+			// #endif
+			if (options.type) {
+				this.from = options.type
+				if (this.from == 'purple') {
+					this.showType = '阳光积分'
+				}
+				if (this.from == 'shop') {
+					this.showType = '美好积分'
+				}
+			}
+			//加载提现信息
+			this.loadData();
+			// // 加载提款账号信息
+			// this.loadAli();
+			// this.loadBank();
 		},
 		methods: {
 			...mapMutations('user', ['setUserInfo', 'setOrderInfo']),
-			//全部提现
-			tiX() {
-				this.txMoney = this.userInfo.money
+			// 加载余额信息
+			async loadData() {
+				let obj = this
+				aliInfo().then(e=>{
+					console.log(e,'eeee');
+					obj.alipay_code=e.data.zfb.payment
+					obj.alipay_name=e.data.zfb.name
+					obj.alipay_phone=e.data.zfb.phone
+				});
+				getUserInfo({})
+					.then(({
+						data
+					}) => {
+						console.log(data,'data')
+						this.setUserInfo(data);
+						if (obj.from == 'purple') {
+							obj.money = data.purple_integral
+						}
+						if (obj.from == 'shop') {
+							obj.money = data.business_integral
+						}
+						obj.load = false
+					})
+					.catch(e => {
+						console.log(e);
+					});
+			},
+			// 跳转
+			navTo(url) {
+				uni.navigateTo({
+					url: url
+				});
+			},
+			// 切换选中对象
+			tabRadio(e) {
+				this.type = e.detail.value;
+			},
+			// 提交
+			confirm() {
+				if (this.load) {
+					return
+				}
+				let zfbData= {
+					phone:this.alipay_phone,
+					type:2,
+					payment:this.alipay_code,
+					name:this.alipay_name
+				}
+				let data = {
+					extract_type: this.type, //bank -银行卡 alipay-支付宝 weixin-微信
+					money: this.withdrawal, //金额
+					type: this.from == 'purple' ? 1 : 2 //0佣金1余额  1紫积分 2商家积分
+				};
+				// if (this.withdrawal % 100 != 0) {
+				// 	uni.showToast({
+				// 		title: '提现金额为100的倍数',
+				// 		duration: 2000,
+				// 		mask: false,
+				// 		icon: 'none'
+				// 	});
+				// 	return;
+				// }
+				if (this.withdrawal < this.minPrice) {
+					uni.showToast({
+						title: '提现金额不可少于' + this.minPrice,
+						duration: 2000,
+						mask: false,
+						icon: 'none'
+					});
+					return;
+				}
+				if (this.type == 'alipay') {
+					console.log('alipay');
+					data.name = this.alipay_name;
+					data.alipay_code = this.alipay_code;
+					zfbData.phone=this.alipay_phone;
+				}
+				if (this.type == 'bank') {
+					data.name = this.bank_people;
+					data.bankname = this.bank_name;
+					data.cardnum = this.bank_code;
+				}
+				this.load = true
+				getMoneyType(zfbData)
+					.then(e => {
+						console.log(e,"eeeeee");
+						// uni.showToast({
+						// 	title: '修改成功',
+						// 	duration: 2000,
+						// 	position: 'top'
+						// });
+						// setTimeout(() => {
+						// 	uni.navigateBack({
+						// 		url:'pages/user/shopJf'
+						// 	})
+						// },1500)
+						this.$api.prePage().dataUp()
+						
+					})
+					.catch(e => {
+						console.log(e);
+					});
+				extractCash(data)
+					.then(e => {
+						console.log(e,'eeeeee');
+						this.loadData()
+						uni.showToast({
+							title: '提交成功',
+							duration: 2000,
+							position: 'top'
+						});
+						this.withdrawal = ''
+					})
+					.catch(e => {
+						this.load = false
+						console.log();
+					});
 			}
 		}
 	};
 </script>
 
 <style lang="scss">
-	page,
-	.content {
-		width: 750rpx;
+	page {
 		height: 100%;
-		background: #222222;
+		background: #111111;
 	}
 
-	.tixian-box {
-		display: flex;
-		justify-content: space-between;
-		align-items: center;
+	.content-money {
+		padding: 30rpx 0;
+		background: #111111;
+	}
+
+	.flex {
+		background-color:#111111;
+		text-align: center;
 		margin: 0 30rpx;
-		border-bottom: 1rpx solid #e6e6e6;
-		height: 100rpx;
+		border-radius: $border-radius-sm;
 
+		.buttom {
+			font-size: $font-lg;
+			width: 50%;
+		}
+		.butt{
+			font-size: 26rpx;
+			font-weight: normal;
+			color: #A581FF;
+			line-height: 42rpx;
+		}
 
-		.tixian-left {
-			font-size: 32rpx;
-			font-family: PingFang SC;
-			font-weight: 500;
-			color: #FFFFFF;
-			line-height: 80rpx;
+		.interval {
+			width: 2px;
+			height: 60rpx;
+			background-color: #111111;
 		}
 
-		.tixian-right {
-			width: 200rpx;
-			height: 80rpx;
+		.icon {
+			background-size: 100%;
+			font-size: 42rpx;
+			color:#fff;
+			font-weight: bold;
+			background-repeat: no-repeat;
+			background-position: center;
+		}
+
+		.text {
+			color:#fff;
+		}
+	}
+
+	.row-box {
+		margin-top: 30rpx;
+		padding: 20rpx 30rpx;
+		background:#111111;
+
+		.title {
+			font-size: $font-base + 2rpx;
+			color:#fff;
+		}
+
+		.row {
 			display: flex;
 			align-items: center;
+			position: relative;
+			height: 80rpx;
+			background:#111111;
+			color: #fff;
 
-			font-size: 32px;
-			font-weight: 500;
-			color: #FFFFFF;
-			line-height: 80rpx;
+			.tit {
+				flex-shrink: 0;
+				width: 40rpx;
+				font-size: 30rpx;
+				color: #fff;
+			}
 
 			.input {
-				margin-left: 5rpx;
-				width: 200rpx;
-				font-size: 32px;
-				font-family: SourceHanSansCN;
-				font-weight: 500;
-				color: #FFFFFF;
-				line-height: 80rpx;
+				flex: 1;
+				font-size: 30rpx;
+				color: #fff;
+			}
+			
+
+			.iconlocation {
+				font-size: 36rpx;
+				color: #fff;
+			}
+
+			.buttom {
+				
+				color:#A581FF;
 			}
 		}
 	}
 
-	.all {
-		font-size: 26rpx;
-		font-family: Adobe Heiti Std;
-		font-weight: normal;
-		color: #A581FF;
-		line-height: 42rpx;
-		display: flex;
-		justify-content: end;
-		margin: 20rpx 30rpx;
-	}
+	.add-btn {
+		&.modified {
+			color: #ffffff;
+		}
 
-	.center {
-		width: 750rpx;
-		height: 20rpx;
-		background: #181818;
-		margin-bottom: 30rpx;
-	}
+		&.up {
+			background: linear-gradient(270deg, #6E8DF7, #9977F6);
+			color: #fff;
+		}
 
-	.chooseZh-content {
 		display: flex;
-		flex-direction: column;
-		margin: 0 20rpx;
-		
+		align-items: center;
+		justify-content: center;
+		width: 690rpx;
+		height: 80rpx;
+		margin: 0 auto;
+		margin-top: 30rpx;
+		font-size: $font-lg;
+		border-radius: 10rpx;
+		// box-shadow: 1px 2px 5px rgba(219, 63, 96, 0.4);
+	}
 
-		.label {
-			display: flex;
-			justify-content: space-between;
-				align-items: center;
-				padding: 0 0 0 20rpx;
-			border-bottom: 1rpx solid #e6e6e6;
-		}
+	.list {
+		padding-left: 30rpx;
+		margin-top: 30rpx;
+		// background-color: #ffffff;
+		background:#111111;
 
-		.cont-cont {
-			height: 100rpx;
+		.box {
 			display: flex;
 			align-items: center;
+			width: 100%;
+			height: 120rpx;
+			border-bottom: 1px solid $border-color-light;
 
-			// justify-content: space-between;
-			image {
-				width: 40rpx;
-				height: 40rpx;
+			.icon {
+				font-size: 48rpx;
+				padding-right: 20rpx;
+
+				.icon-img {
+					height: 50rpx;
+					width: 50rpx;
+				}
 			}
 
-			.zf {
-				margin-left: 10rpx;
-				font-size: 26rpx;
-				font-family: SourceHanSansCN;
-				font-weight: 400;
-				color: #FFFFFF;
+			.iconweixin1 {
+				color: #18bf16;
 			}
 
+			.iconzhifubao {
+				color: #08aaec;
+			}
+
+			.title-box {
+				flex-grow: 1;
+				text-align: left;
+
+				.title {
+					font-size: $font-base + 2rpx;
+					color: $font-color-base;
+				}
+
+				.node {
+					font-size: $font-sm;
+					color: $font-color-light;
+				}
+			}
 		}
 	}
-	.button{
-		margin-top: 80rpx;
-		font-size: 32rpx;
-		font-weight: 500;
-		color: #FFFFFF;
-		line-height: 88rpx;
-		width: 670rpx;
-		height: 88rpx;
-		background: linear-gradient(270deg, #6E8DF7, #9977F6);
-		border-radius: 10rpx;
+
+	/deep/ .uni-radio-input {
+		width: 45rpx;
+		height: 45rpx;
+	}
+
+	.row {
+		display: flex;
+		align-items: center;
+		position: relative;
+		padding: 0 30upx;
+		height: 110upx;
+		
+		background:#111111;
+
+		.tit {
+			flex-shrink: 0;
+			width: 250upx;
+			font-size: 30upx;
+			color: #fff;
+		}
+
+		.input {
+			flex: 1;
+			font-size: 30upx;
+			color: #fff;
+		}
+
+		.iconlocation {
+			font-size: 36upx;
+			color: $font-color-light;
+		}
+	}
+
+	.tip {
+		padding: 20rpx;
+		color: #fd3b39;
+	}
+
+	.loading {
+		background: #999;
 	}
 </style>

+ 48 - 43
pages/order/order.vue

@@ -14,7 +14,7 @@
 					<view @click="goToOrderDetail(item)" v-for="(item, index) in tabItem.orderList" :key="index" class="order-item">
 						<view class="i-top b-b">
 							<text class="time">{{ item._add_time }}</text>
-							<text class="state" :style="{ color: item.stateTipColor }">{{ item._status._title }}</text>
+							<text class="state" >{{ item._status._title }}</text>
 							<text v-if="item.status === 4" class="del-btn iconfont icondelete" @click="deleteOrder(index)"></text>
 						</view>
 
@@ -36,23 +36,25 @@
 							<view class="right">
 								<view class="flex-start">
 									<text class="title clamp">{{ goodsItem.productInfo.store_name }}</text>
-									<text class="price">{{ goodsItem.productInfo.price|moneyNum }}</text>
-								</view>
+									<!-- <text class="price">{{ goodsItem.productInfo.price|moneyNum }}</text> -->
+								</view>
+								
 								<view class="row flex">
-									<text class="row_title">{{ goodsItem.productInfo.attrInfo ? goodsItem.productInfo.attrInfo.suk : '' }}</text>
-									<text class="attr-box"> x {{ goodsItem.cart_num }}</text>
+									<!-- <text class="row_title">{{ goodsItem.productInfo.attrInfo ? goodsItem.productInfo.attrInfo.suk : '' }}</text> -->
+									<!-- <text class="attr-box"> x {{ goodsItem.cart_num }}</text> -->
+									<view class="price-box">
+									<!-- 		共
+											<text class="num">{{ item.cartInfo.length }}</text>
+											商品 邮费
+											<text class="price">{{ moneyNum(item.pay_postage)}}</text> -->
+											付款
+											<text class="price">{{ moneyNum(item.pay_price)}}</text>
+										</view>
 								</view>
 							</view>
 						</view>
 
-						<view class="price-box">
-							共
-							<text class="num">{{ item.cartInfo.length }}</text>
-							件商品 邮费
-							<text class="price">{{ moneyNum(item.pay_postage)}}</text>
-							实付款
-							<text class="price">{{ moneyNum(item.pay_price)}}</text>
-						</view>
+						
 						<view class="action-box b-t" v-if="item.status != 5">
 							<button v-if="item._status._title == '未支付'" class="action-btn" @click.stop="cancelOrder(item)">取消订单</button>
 							<button v-if="item._status._title == '未支付'" @click.stop="orderPay(item)" class="action-btn recom">立即支付</button>
@@ -105,22 +107,22 @@ export default {
 					page: 1, //当前页数
 					limit: 10 //每次信息条数
 				},
-				{
-					state: 2,
-					text: '待收货',
-					loadingType: 'more',
-					orderList: [],
-					page: 1, //当前页数
-					limit: 10 //每次信息条数
-				},
-				{
-					state: 3,
-					text: '待评价',
-					loadingType: 'more',
-					orderList: [],
-					page: 1, //当前页数
-					limit: 10 //每次信息条数
-				},
+				// {
+				// 	state: 2,
+				// 	text: '待收货',
+				// 	loadingType: 'more',
+				// 	orderList: [],
+				// 	page: 1, //当前页数
+				// 	limit: 10 //每次信息条数
+				// },
+				// {
+				// 	state: 3,
+				// 	text: '待评价',
+				// 	loadingType: 'more',
+				// 	orderList: [],
+				// 	page: 1, //当前页数
+				// 	limit: 10 //每次信息条数
+				// },
 				{
 					state: 4,
 					text: '已完成',
@@ -340,7 +342,7 @@ export default {
 <style lang="scss">
 page,
 .content {
-	background: $page-color-base;
+	background: #111111;
 	height: 100%;
 }
 
@@ -403,10 +405,13 @@ page,
 		color: $font-color-dark;
 		position: relative;
 		.time {
-			flex: 1;
+			flex: 1;
+			font-size: 24rpx;
+			font-weight: 500;
+			color: #FFFFFF;
 		}
 		.state {
-			color: $base-color;
+			color:#5C5EE5;
 		}
 		.del-btn {
 			padding: 10rpx 0 10rpx 36rpx;
@@ -443,7 +448,8 @@ page,
 		}
 	}
 	/* 单条商品 */
-	.goods-box-single {
+	.goods-box-single {
+		background: #0E0E0E;
 		display: flex;
 		padding: 20rpx 0;
 		.goods-img {
@@ -469,7 +475,7 @@ page,
 			}
 			.title {
 				font-size: $font-base + 2rpx;
-				color: $font-color-dark;
+				color: #fff;
 				line-height: 1;
 				width: 80%;
 			}
@@ -482,7 +488,7 @@ page,
 			.price {
 				display: inline;
 				font-size: $font-base + 2rpx;
-				color: $font-color-dark;
+				color:#5C5EE5;
 				&:before {
 					content: '¥';
 					font-size: $font-sm;
@@ -493,18 +499,17 @@ page,
 	}
 	.price-box {
 		display: flex;
-		justify-content: flex-end;
 		align-items: baseline;
-		padding: 20rpx 30rpx;
+		padding: 20rpx 0;
 		font-size: $font-sm + 2rpx;
-		color: $font-color-light;
+		color:#fff;
 		.num {
 			margin: 0 8rpx;
-			color: $font-color-dark;
+			color: #5C5EE5;
 		}
 		.price {
 			font-size: $font-lg;
-			color: $font-color-dark;
+			color:  #5C5EE5;
 			&:before {
 				content: '¥';
 				font-size: $font-sm;
@@ -529,14 +534,14 @@ page,
 		text-align: center;
 		line-height: 60rpx;
 		font-size: $font-sm + 2rpx;
-		color: $font-color-dark;
-		background: #fff;
+		color: #fff;
+		background: linear-gradient(270deg, #6E8DF7, #9977F6);
 		border-radius: 100px;
 		&:after {
 			border-radius: 100px;
 		}
 		&.recom {
-			color: $base-color;
+			color: #fff;
 			&:after {
 				border-color: $base-color;
 			}

+ 103 - 19
pages/product/product.vue

@@ -1,9 +1,12 @@
 <template>
 	<view class="container">
 		<view class="swiper-box">
-			<view class="img">
+			<view class="img" v-if="isSc==2">
 				<image :src="shopDetail.image" mode=""></image>
 			</view>
+			<view class="img" v-else>
+				<image :src="shopDetail.class_info.uri" mode=""></image>
+			</view>
 		</view>
 		<view class="content-box">
 			<view class="content-top">
@@ -14,7 +17,7 @@
 					<image src="../../static/img/fx.png" mode=""></image>分享
 				</view>
 			</view>
-			<view class="content-center">
+			<view class="content-center" v-if="isSc==2">
 				<view class="title">
 					发行数量: {{shopDetail.ficti+shopDetail.stock}}份
 				</view>
@@ -22,6 +25,14 @@
 					已售数量: {{shopDetail.ficti}}份
 				</view>
 			</view>
+			<view class="content-center" v-else>
+				<view class="title" style="font-size: 38rpx;font-weight: bold;color: #FFFFFF;">
+					{{shopDetail.class_info.name}}
+				</view>
+				<view class="title">
+					持有者: {{shopDetail.user.nickname}}
+				</view>
+			</view>
 			<view class="content-bottom">
 				<view class="price">
 					{{shopDetail.price}} <span>RMB</span>
@@ -84,7 +95,7 @@
 				</view>
 			</view>
 		</view> -->
-		<view class="rz">
+		<view class="rz" v-show="isSc==2">
 			<view class="rz-title">
 				作品描述
 			</view>
@@ -92,12 +103,11 @@
 				{{shopDetail.store_info}}
 			</view>
 		</view>
-		<view class="rz">
+		<view class="rz" v-show="isSc==2">
 			<view class="rz-title">
 				作品详情
 			</view>
-			<rich-text :nodes="shopDetail.description"></rich-text>
-
+			<rich-text class="rich" :nodes="shopDetail.description"></rich-text>
 		</view>
 		<uni-popup ref="popupkf" type="bottom">
 			<view class="popup-box">
@@ -106,7 +116,7 @@
 				</view>
 				<view class="pop-radio">
 					<radio-group name="">
-						<label class="pop-radio-box">
+						<label class="pop-radio-box" @click="changePayType(1)">
 							<view class="pop-radio-cont">
 								<image src="../../static/img/weixin.png" style="width: 40rpx;height: 40rpx;" mode="">
 								</image>
@@ -114,7 +124,7 @@
 							</view>
 							<radio :value="weixin" :checked="type=='weixin'" style="transform: scale(0.8);" />
 						</label>
-						<label class="pop-radio-box">
+						<label class="pop-radio-box" @click="changePayType(2)">
 							<view class="pop-radio-cont">
 								<image src="../../static/img/yue.png" style="width: 40rpx;height: 40rpx;" mode="">
 								</image>
@@ -132,7 +142,8 @@
 								¥<span>{{shopDetail.price}}</span>
 							</view>
 						</view>
-						<view class="buy" @click="!payLoding ? pay() : ''" :class="{ clickbg: payLoding }">
+						<!-- "!payLoding ? pay() : ''" -->
+						<view class="buy" @click="pay()" :class="{ clickbg: payLoding }" >
 							立即支付
 						</view>
 					</view>
@@ -154,13 +165,16 @@
 		mapState
 	} from 'vuex';
 	import {
-		goodsDetail,
+		goodsDetails,
 		cartAdd
 	} from '@/api/product.js';
 	import {
 		confirm,
 		orderPay,
-		createOrderkey
+		createOrderkey,
+		nftmall,
+		nftDetail,
+		nftBuy
 	} from '@/api/order.js'
 
 	export default {
@@ -186,11 +200,20 @@
 					// 'https://img.php.cn/upload/article/202104/15/2021041518005466284.jpg'
 				],
 				froms: '', //保存h5中数据来源对象
+				isSc: 0, //是否是是市场传递过来的参数
 			};
 		},
-		async onLoad(options) {
+		onLoad(options) {
+			console.log(options, 'sss');
+			this.isSc = options.isSc
 			this.shopId = options.id
-			this.goodsDetail()
+			if (this.isSc != 1) {
+				console.log("goods");
+				this.goodsDetail()
+			} else {
+				this.getNftDetail()
+				console.log("getNftDetail");
+			}
 			// 载入余额
 			balance({}).then(({
 				data
@@ -203,9 +226,23 @@
 		computed: {
 			...mapState(['weichatObj', 'baseURL', 'urlFile'])
 		},
-		methods: {
+		methods: {	
+			//选择支付方式
+		changePayType(type) {
+			this.payType = type;
+			if (this.payType == 1) {
+				this.type = 'weixin';
+			}
+			if (this.payType == 2) {
+				this.type = 'yue';
+			}
+			
+		},
+			
+			
 			buy() {
 				let obj = this
+
 				let data = {
 					cartNum: 1,
 					uniqueId: obj.uniqueId, //商品标签.默认无
@@ -214,6 +251,7 @@
 					productId: obj.shopId
 				}
 				//生成订单
+			if(obj.isSc!=1){
 				cartAdd(data).then(res => {
 					console.log(res, 'res');
 					//需要获取购物车号
@@ -222,6 +260,7 @@
 				}).catch(e => {
 					console.log(e);
 				});
+			}
 
 				this.$refs.popupkf.open()
 				//点击购买之后自动生成订单
@@ -248,7 +287,10 @@
 				let obj = this
 				// console.log('eeeeeeeeeeeeeee');
 				console.log(obj.type == 'yue', obj.now_money, obj.shopDetail.price);
-				if (obj.type == 'yue' && obj.now_money < obj.shopDetail.price) {
+
+			
+
+				if (obj.type == 'yue' && obj.now_money*1 < obj.shopDetail.price*1) {
 
 					uni.showModal({
 						title: '提示',
@@ -262,13 +304,38 @@
 					title: "支付中",
 					mask: true
 				})
-				obj.payLoding = true
-				if (obj.type != 1) {
+				console.log(obj.type,'tttttyyy');
+				if (obj.type == 'weixin') {
+					this.$api.msg('微信暂未开通!')
+					uni.hideLoading()
+					obj.payLoding = true
+					return
+				}
+				if (obj.isSc == 1) {
+					nftBuy({
+						pay_type: this.type
+					}, obj.shopId).then(res => {
+						console.log(res, '购入');
+						if(res.status ==200){
+							uni.hideLoading()
+							setTimeout(()=>{
+								this.paySuccessTo()
+							},2000)
+							
+						}else if(res.status==400){
+							obj.payLoding = true
+						}
+					})
+				}
+				
+				if (obj.type != 1 && obj.isSc != 1 ) {
 					// 初次生成订单
 					obj.firstCreateOrder();
 				} else {
 					// 已经生成订单未支付
-					obj.orderMoneyPay();
+					if(obj.isSc != 1){
+						obj.orderMoneyPay();
+					}
 				}
 			},
 			//非第一次支付订单
@@ -317,6 +384,7 @@
 					shipping_type: 1 //提货方式 1 快递 2自提
 				}
 				// 生成订单
+				console.log(obj.orderKey,'obj.orderKey');
 				createOrderkey(data, obj.orderKey)
 					.then(({
 						data,
@@ -358,10 +426,21 @@
 
 			goodsDetail() {
 				let obj = this
-				goodsDetail({}, obj.shopId).then(res => {
+				console.log(obj.isSc, 'issc');
+				goodsDetails({}, obj.shopId).then(res => {
 					obj.uniqueId = res.data.productValue['默认'].unique
 					obj.shopDetail = res.data.storeInfo
 					console.log(obj.shopDetail, obj.uniqueId, 'res1111');
+					return
+				})
+			},
+			getNftDetail() {
+				let obj = this
+				nftDetail({}, obj.shopId).then(res => {
+					// obj.uniqueId = res.data.productValue['默认'].unique
+					// obj.shopDetail = res.data.storeInfo
+					obj.shopDetail = res.data.info
+					console.log(res, obj.isSc, 'res1111');
 
 				})
 			},
@@ -503,6 +582,11 @@
 			color: #FFFFFF;
 			line-height: 42rpx;
 		}
+		.rich{
+			display: block;
+			justify-content: center;
+			margin: 30rpx;
+		}
 
 		.rz-ms {
 			padding: 0 20rpx;

+ 2 - 2
pages/public/login.vue

@@ -1,10 +1,10 @@
 <template>
 	<view class="content">
 		<view class="title-img">
-			<image src="../../static/error/missing-face.png" mode=""></image>
+			<image src="../../static/img/logo.png" mode=""></image>
 		</view>
 		<view class="title-LOGO">
-			LOGO
+			艺绘
 		</view>
 		<view class="bg">
 			<image src="../../static/public/pbbg.png" mode=""></image>

+ 3 - 3
pages/public/register.vue

@@ -1,10 +1,10 @@
 <template>
 	<view class="content">
 		<view class="title-img">
-			<image src="../../static/error/missing-face.png" mode=""></image>
+			<image src="../../static/img/logo.png" mode=""></image>
 		</view>
 		<view class="title-LOGO">
-			LOGO
+			艺绘
 		</view>
 		<view class="bg">
 			<image src="../../static/public/pbbg.png" mode=""></image>
@@ -67,7 +67,7 @@
 				invitation: '', //邀请码
 				code: '', //验证码
 				time: '', //保存倒计时对象
-				countDown: 10 //倒计时
+				countDown: 60 //倒计时
 			};
 		},
 		onLoad() {

+ 193 - 212
pages/set/changePass.vue

@@ -1,237 +1,218 @@
 <template>
-	<view class="content">
-		<view class="box">
-			<!-- <view class="box-top">
-				<view class="shu" style="">
-
-				</view>
-				<view class="pass-title">
-					密码
-				</view>
-			</view> -->
-			<view class="box-bottom">
-				<view class="ipt">
-					<view class="text">
-						手机号
-					</view> <input type="phone" class="input" value="" placeholder="请输入手机号" />
-				</view>
-				<view class="ipt">
-					<view class="text">
-						新密码
-					</view> <input type="password" class="input" value="" placeholder="请输入新的密码" />
-				</view>
-				<view class="ipt">
-					 <view class="text">
-					 	重复密码
-					 </view><input type="password" class="input" value="" placeholder="请重复输入密码" />
-				</view>
-				<view class="ipt">
-					<view class="text">
-						验证码 
-					</view> <input type="number" class="input" value="" placeholder="请输入验证码"/>
-					<view class="yzm" @click="getDjs()" v-if="!isDjs">
-						验证码
-					</view>
-					<view class="yzm" v-else>
-						{{countDown}}
-					</view>
+	<view class="container">
+		<view class="logo-img"><image src="../../static/img/logo.png" mode=""></image></view>
+		<view class="logo">艺绘</view>
+		<view class="login_text">
+			<view class="login_input flex_item">
+				<view class="login_img"><image class="phone" src="/static/img/pass03.png"></image></view>
+				<view class="login_name"><input class="uni-input" type="text" v-model="phone" focus placeholder="请输入手机" /></view>
+			</view>
+			<view class="login_input flex_item">
+				<view class="login_img"><image src="/static/img/pass02.png"></image></view>
+				<view class="login_name"><input class="uni-input" type="password" v-model="password" focus placeholder=" 请输入新的不少于6位的密码" /></view>
+			</view>
+			<view class="login_input flex_item">
+				<view class="login_img"><image src="/static/img/pass02.png"></image></view>
+				<view class="login_name"><input class="uni-input" type="password" v-model="password2" focus placeholder="请重复输入新密码" /></view>
+			</view>
+			<view class="login_input flex">
+				<view class="login_img"><image class="codeimg" src="/static/img/pass01.png"></image></view>
+				<view class="login_name flex">
+					<input class="uni-input width" v-model="code" type="number" focus placeholder="请输入验证码" />
+					<view class="code" @click="verification">{{ countDown == 0 ? '发送验证码' : countDown }}</view>
 				</view>
 			</view>
 		</view>
-		<button class="button">确认</button>
-
-		<!-- 		<image style="z-index: 99;" src="../../static/game/game13.png" mode=""></image>
-		<image style="z-index: 99;" src="../../static/game/reb01.png" mode=""></image> -->
+		<view class="login" @click="updatalogin">确认修改</view>
 	</view>
 </template>
-
 <script>
-	import {
-		verify
-	} from '@/api/login.js';
-	import {
-		mapState
-	} from 'vuex';
-	import {
-		registerReset
-	} from '@/api/set.js';
-	export default {
-		data() {
-			return {
-				phone:'',//手机号
-				time: '', //保存倒计时对象
-				countDown: 0, //倒计时
-				account: '', //手机号
-				captcha: '', //验证码
-				password: '', //新密码
-				loding: false, //是否载入中
-				isDjs:false,//是否在倒计时
-			};
-		},
-		computed: {
-			...mapState(['userInfo'])
-		},
-		onLoad() {
-			if (this.userInfo.phone == null) {
-				this.account = '';
-			} else {
-				this.account = this.userInfo.phone;
-				this.show = false;
+import { registerReset } from '@/api/set.js';
+import { verify } from '@/api/login.js';
+export default {
+	data() {
+		return {
+			phone: '', //用户
+			code: '', //验证码
+			password2: '',
+			password: '',
+			time: '', //保存倒计时对象
+			countDown: 0 //倒计时
+		};
+	},
+	onLoad() {},
+	watch: {
+		// 监听倒计时
+		countDown(i) {
+			if (i == 0) {
+				clearInterval(this.time);
 			}
-		},
-		watch: {
-			// 监听倒计时
-			countDown(i) {
-				if (i == 0) {
-					clearInterval(this.time);
-				}
+		}
+	},
+	methods: {
+		updatalogin() {
+			let obj = this;
+			if (obj.phone == '') {
+				obj.$api.msg('请输入手机号');
+				return;
+			}
+			if (!/^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/.test(obj.phone) && (!/(^1[3|4|5|6|7|8|9][0-9]{9}$)/.test(this.phone))) {
+				obj.$api.msg('请输入正确手机号');
+				return;
+			}
+			if (obj.password == '') {
+				obj.$api.msg('请输入密码');
+				return;
+			}
+			if (obj.password2 == '') {
+				obj.$api.msg('请再次输入密码');
+				return;
+			}
+			if (obj.password2 != obj.password) {
+				obj.$api.msg('两次密码不正确');
+				return;
+			}
+			if (obj.code == '') {
+				obj.$api.msg('请输入验证码');
+				return;
 			}
+			registerReset({
+				account: obj.phone, //账号
+				password: obj.password,
+				password2: obj.password2,
+				type: 1,
+				captcha: obj.code
+			})
+				.then(function(e) {
+					obj.$api.msg(e.msg);
+					uni.navigateTo({
+						url: '/pages/public/login'
+					});
+				})
+				.catch(e => {
+					console.log(e);
+				});
 		},
-		methods: {
-			getDjs(){
-				this.isDjs = true
-				this.countDown= 10
-				let time = setInterval(e=>{
-					this.countDown--
-					console.log(this.countDown);
-					if(this.countDown==0){
-						clearInterval(time)
-						console.log('倒计时结束');
-						console.log(this.countDown,'打印');
-					}
-				},1000)
-			},
-
-			//发送验证码
-			verification() {
-				let obj = this;
-				if (this.account == '') {
-					this.$api.msg('请输入电话号码');
-					return;
-				}
-				if (!/(^1[3|4|5|7|8][0-9]{9}$)/.test(this.account)) {
-					this.$api.msg('请输入正确的手机号');
-					return;
-				}
-				// 判断是否在倒计时
-				if (obj.countDown > 0) {
-					return false;
-				} else {
-					obj.countDown = 60;
-					obj.time = setInterval(() => {
-						obj.countDown--;
-					}, 1000);
-					//调用验证码接口
-					verify({
-							phone: obj.account,
-							type: ''
-						})
-						.then(({
-							data
-						}) => {})
-						.catch(err => {
-							console.log(err);
+		//发送验证码
+		verification() {
+			let obj = this;
+			if (this.phone == '') {
+				this.$api.msg('请手机号码');
+				return;
+			}
+			if (!/^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/.test(obj.phone) && (!/(^1[3|4|5|6|7|8|9][0-9]{9}$)/.test(this.phone))) {
+				obj.$api.msg('请输入正确的手机号码');
+				return;
+			}
+			// 判断是否在倒计时
+			if (obj.countDown > 0) {
+				return false;
+			} else {
+				obj.countDown = 60;
+				obj.time = setInterval(() => {
+					obj.countDown--;
+				}, 1000);
+				//调用验证码接口
+				verify({
+					phone: obj.phone,
+					type: 'login'
+				})
+					.then(({ data }) => {
+						uni.showToast({
+							title: '验证码已发送',
+							duration: 2000,
+							position: 'top',
+							icon: 'none'
 						});
-				}
-			},
-			confirm(e) {
-				this.loding = true;
-				registerReset({
-						account: this.account,
-						captcha: this.captcha,
-						password: this.password,
-					})
-					.then(({
-						data
-					}) => {
-						this.loding = false;
-						this.$api.msg('修改成功');
 					})
 					.catch(err => {
-						this.loding = false;
 						console.log(err);
 					});
 			}
 		}
-	};
+	}
+};
 </script>
 
 <style lang="scss">
-	page,
-	.content {
-		width: 750rpx;
-		height: 100%;
-		background: #111111;
-
-		.box {
-			background: #222222;
-			.box-top {
-				height: 100rpx;
-				display: flex;
-				align-items: center;
-
-				.shu {
-					width: 2rpx;
-					height: 30rpx;
-					background: #A581FF;
-					display: inline-block;
-					margin: 0 20rpx 0 30rpx;
-					line-height: 100rpx;
-				}
-
-				.pass-title {
-					line-height: 100rpx;
-					display: inline-block;
-					font-size: 30rpx;
-					font-weight: 500;
-					color: #FFFFFF;
-				}
-			}
-
-			.box-bottom {
-				margin-top: 50rpx;
-				
-				.ipt{
-					border-top:2rpx solid #F3F3F3;
-					padding: 0 30rpx;
-					display: flex;
-					align-items: center;
-					// justify-content: space-between;
-					
-					.text{
-						width: 150rpx;
-						font-size: 26rpx;
-						font-weight: 500;
-						color: #FFFFFF;
-						line-height: 80rpx;
-					}
-					.input{
-						
-					}
-					.yzm{
-						margin-left: 140rpx;
-						font-size: 26rpx;
-						font-weight: 500;
-						color: #A581FF;
-						line-height: 100rpx;
-					}
-				}
+page {
+	min-height: 100%;
+	background-color: #111111;
+	.container {
+		width: 100%;
+		padding: 60rpx 70rpx;
+	}
+}
+.logo-img {
+	width: 161rpx;
+	height: 161rpx;
+	margin:auto;
+	margin-top: 52rpx !important;
+	margin-bottom: 15rpx !important;
+	box-shadow: 0px 12rpx 13rpx 0px rgba(150, 150, 157, 0.47);
+	border-radius: 50%;
+	image {
+		width: 161rpx;
+		height: 161rpx;
+		border-radius: 50%;
+	}
+}
+.logo {
+	font-size: 36rpx;
+	font-weight: 400;
+	color: #A581FF;
+	text-align: center;
+}
+.phone {
+	height: 43rpx !important;
+	width: 27rpx !important;
+}
+.codeimg {
+	height: 39rpx !important;
+	width: 31rpx !important;
+}
+.login_text {
+	border-radius: 20rpx;
+	margin-top: 80rpx;
+	.login_input {
+		// border-bottom: 1px solid #C5CEE0;
+		margin-bottom: 35rpx;
+		padding-bottom: 60rpx;
+		.login_img {
+			height: 35rpx;
+			width: 31rpx;
+			margin-right: 20rpx;
+			image {
+				width: 100%;
+				height: 100%;
 			}
-
 		}
-
-		.button {
-			margin-top: 60rpx;
-			width: 600rpx;
-			height: 90rpx;
-			background: linear-gradient(270deg, #6E8DF7, #9977F6);
-			border-radius: 10px;
-
-			font-size: 30rpx;
-			font-weight: bold;
-			color: #FFFFFF;
-			line-height: 90rpx;
+		.uni-input {
+			text-align: left;
+			width: 400rpx;
+			color: #A581FF;
+			font-size: 32rpx !important;
+		}
+		.login_name {
+			color: #333333;
+			.code {
+				color: #A581FF;
+				font-size: 23rpx;
+				border-left: 1px solid #eeeeee;
+				width: 150rpx;
+				flex-shrink: 0;
+				text-align: center;
+			}
 		}
-
 	}
+}
+
+.login {
+	background: linear-gradient(270deg, #6E8DF7, #9977F6);
+	margin-top: 96rpx;
+	color: #ffffff;
+	text-align: center;
+	padding: 26rpx 0rpx;
+	border-radius: 20rpx;
+}
 </style>

+ 2 - 2
pages/set/set.vue

@@ -26,7 +26,7 @@
 				<image src="../../static/user/right01.png" mode=""></image>
 			</view>
 		</view>
-		<view class="box" 	@click="navTo('/pages/set/password')">
+		<!-- <view class="box" 	@click="navTo('/pages/set/password')">
 			<view class="box-left">
 				<view class="img">
 					<image src="../../static/user/set03.png" mode=""></image>
@@ -38,7 +38,7 @@
 			<view class="img-right">
 				<image src="../../static/user/right01.png" mode=""></image>
 			</view>
-		</view>
+		</view> -->
 		<view class="list-cell log-out-btn" @click="toLogout"><text class="cell-tit">退出登录</text></view>
 	</view>
 </template>

+ 3 - 4
pages/user/about.vue

@@ -3,16 +3,15 @@
 		<view class="box">
 			<!-- <image src="../../static/img/about.png" class="image" mode=""></image> -->
 			<view class="image"><image src="../../static/img/logo.png" mode=""></image></view>
-			<view class="title">V1.3.9</view>
+			<view class="title">V1.0.0</view>
 		</view>
 		<view class="main">
 			<text>
-				宁德市谦沐商务有限公司,2022年创立于福建宁德 ,公司以网站建设核心业务 专注于创意设计和传播应用 ,探索并实现商业价值最大化,为所有谋求长远发展的企业机构贡献全力。
-				宁德市谦沐商务有限公司注重专业探索,摒弃虚浮夸张,在更深远的认知中,将不断修正服务导向,完善制作品格,以探求精品塑造与理念升华,勇做推动行业发展的中坚力量
+				艺绘,是集一站式、仓储式及市场批发销售的生活用品供应商,公司拥有专业的电子商务团队、物流配送团队及完善的售后服务,公司为了能更好的服务众多客户,在2021年经过多方位考量,扩大营业面积提升购物体验,本着便捷,优惠,高效的六字方针持续为新老客户提供更优质的产品和后续服务。
 			</text>
 		</view>
 		<view class="tip">
-			宁德市谦沐商务有限公司
+		艺绘(浙江)数字科技有限公司
 			<br />
 			版权所有
 		</view>

+ 7 - 2
pages/user/personal.vue

@@ -30,8 +30,11 @@
 			<view class="left">
 				实名认证
 			</view>
-			<view class="right" @click="navTo('/pages/user/realName')">
+			<view class="right" @click="navTo('/pages/user/realName')"  v-if="userInfo.real_name_check.status==2">
 				未认证 >
+			</view>
+			<view class="right" v-else>
+				{{userInfo.real_name_check.status==1?"已认证":"审批中"}} >
 			</view>
 
 		</view>
@@ -40,7 +43,8 @@
 </template>
 
 <script>
-	import { userEdit } from '@/api/set.js';
+	import { userEdit } from '@/api/set.js';
+	import {realname} from '@/api/index.js'
 	import {
 		mapState,
 		mapMutations
@@ -60,6 +64,7 @@
 			...mapState('user', ['userInfo'])
 		},
 		onLoad() {
+		console.log(this.userInfo);
 			this.name = this.userInfo.nickname
 			this.phone = this.userInfo.phone
 			// console.log(this.userInfo)

+ 43 - 1
pages/user/realName.vue

@@ -16,11 +16,12 @@
 			<view class="left">银行卡号</view>
 			<view class="right"><input type="number" placeholder="请输入银行卡号" v-model="card"></view>
 		</view>
-		<button @click="navTo('/pages/money/success')" class="button">提交认证</button>
+		<button @click="button" class="button">提交认证</button>
 	</view>
 </template>
 
 <script>
+	import {realname} from '@/api/index.js'
 	export default {
 		data() {
 			return {
@@ -32,6 +33,47 @@
 			};
 		},
 		methods: {
+			button(){
+				if(this.name==''){
+					this.$api.msg('请输入姓名')
+					return
+				}
+				if(this.idcard==''){
+					this.$api.msg('请输入身份证号')
+					return
+				}
+				if(this.idcard.length!=18){
+					this.$api.msg('请输入正确身份证号')
+					return
+				}
+				if(this.phone==''){
+					this.$api.msg('请输入手机号')
+					return
+				}
+				if(this.phone.length!=11){
+					this.$api.msg('请输入正确手机号')
+					return
+				}
+				if(this.card==''){
+					this.$api.msg('请输入银行卡号')
+					return
+				}
+				realname(
+				{
+					real_name:this.name,
+					phone:this.phone,
+					idcard:this.idcard,
+					bank_code:this.card
+					
+				}).then(res=>{
+					console.log(res,'res');
+					this.$api.msg('已提交,请等待审核')
+					if(res.status==400){
+						return
+					}
+					
+				})
+			},
 			navTo(url) {
 				uni.navigateTo({
 					url

+ 94 - 21
pages/user/user.vue

@@ -74,12 +74,12 @@
 					联系客服
 				</view>
 			</view>
-			<view class="manage" @click="navTo('/pages/user/feedback')">
+			<!-- <view class="manage" @click="navTo('/pages/user/feedback')">
 				<image src="../../static/user/user09.png" mode=""></image>
 				<view class="manage-title">
 					提交意见
 				</view>
-			</view>
+			</view> -->
 			<view class="manage" @click="navTo('/pages/set/set')">
 				<image src="../../static/user/user07.png" mode=""></image>
 				<view class="manage-title">
@@ -101,23 +101,30 @@
 					<view class="flex dy-list">
 						<view class="box-content" v-for="item in navitem.orderList">
 							<view class="img">
-								<image src="../../static/index/nvwang.png" mode=""></image>
+								<image :src="item.class_info.uri" mode=""></image>
 							</view>
 							<view class="content-title">
 								<view class="title">
 									<view class="text clamp">
 										{{item.class_info.name}}
 									</view>
-									<view class="zm">
+									<view class="zm"v-if="item.hang!=null">
 										转卖中
 									</view>
 								</view>
 								<view class="content-price">
 									<view class="price">
-										¥66.60
+									¥{{item.price}}
+										
+										<!-- ¥{{item.class_info.name}} -->
 									</view>
-									<view class="button" @click="navPop(item)">
-										卖出
+									<view class="" v-show="tabCurrentIndex!=1">
+										<view class="button" @click="navPop(item)" v-if="item.hang==null " >
+											卖出
+										</view>
+										<view class="button" @click="qxMai(item.id)" v-else >
+											取消卖出
+										</view>
 									</view>
 								</view>
 							</view>
@@ -151,12 +158,30 @@
 				<view class="mai-title">
 					卖出价格
 				</view>
-				<input type="number">
+				<input type="number" v-model="money" placeholder="请输入">
 				<view class="mai-button">
 					<view class="button-left" @click="maiClose()">
 						取消
 					</view>
-					<view class="button-right">
+					<view class="button-right" @click="buy()">
+						确定
+					</view>
+				</view>
+			</view>
+		</uni-popup>
+		<uni-popup ref="qumaipop" type="center">
+			<view class="mai-box">
+				<view class="mai-title">
+					提示
+				</view>
+				<view class="mai-title">
+					您正在转卖这件藏品确认取消卖出?
+				</view>
+				<view class="mai-button">
+					<view class="button-left" @click="maiClose()">
+						取消
+					</view>
+					<view class="button-right" @click="quxbuy(item)">
 						确定
 					</view>
 				</view>
@@ -165,6 +190,7 @@
 	</view>
 </template>
 <script>
+	import {sell,qxgd} from '@/api/order.js'
 	import uEmpty from '@/uview-ui/components/u-empty/u-empty.vue'
 	import {
 		mapState,
@@ -195,12 +221,16 @@
 		},
 		data() {
 			return {
+				id:0,
+				isBuy:false,//是否卖出
+				item:'',//存放的数据
+				money:'',//卖出价格
 				height: '',
 				// 头部图高度
 				maxheight: '',
 				tabCurrentIndex: 0,
 				greenNum: 0,
-				text: 'weilegou1',
+				text: 'liuniu',
 				coverTransform: 'translateY(0px)',
 				coverTransition: '0s',
 				moving: false,
@@ -231,6 +261,7 @@
 
 		},
 		onShow() {
+			console.log(this.userInfo,'//////');
 			if (this.hasLogin) {
 				this.loadBaseData();
 				// 返回页面刷新我的挂单数据
@@ -258,6 +289,7 @@
 			}
 		},
 		onReady() {
+			
 			// 初始化获取页面宽度
 			let _this = this
 			uni.getSystemInfo({
@@ -277,6 +309,7 @@
 			...mapState('user', ['userInfo', 'orderInfo', 'hasLogin'])
 		},
 		methods: {
+			...mapMutations('user', ['setUserInfo', 'setOrderInfo']),
 			loadBaseData() {
 				getUserInfo({})
 					.then(({
@@ -305,10 +338,46 @@
 					});
 			},
 			navPop(item) {
-				
+				this.item = item
 				this.$refs.maipop.open()
+				
 			},
-			...mapMutations('user', ['setUserInfo', 'setOrderInfo']),
+			
+			buy(){
+				let obj = this
+				console.log(obj.item,'item');
+				if(obj.price == '' ){
+					obj.$api.msg('请输入价格')
+					return
+				}
+				sell({
+					price:obj.money
+				},obj.item.id).then(res=>{
+					console.log(res,'res');
+					obj.$api.msg('挂售成功!')
+					obj.$refs.maipop.close()
+					obj.$set(this.navList[0].orderList,'isBuy',true)
+					
+					// this.getMyNft('tab')
+					
+				})
+			},
+			//取消卖出弹窗
+			qxMai(item){
+				this.$refs.qumaipop.open()
+				console.log(item,'id');
+				this.id = item
+			},
+			quxbuy(){
+				qxgd({},this.id).then(res=>{
+					console.log(res,"取消挂单");
+					this.$refs.qumaipop.close()
+					this.$api.msg(res.msg)
+					
+				})
+				
+			},
+			
 			navGet(index) {
 				this.tabCurrentIndex = index
 				this.getMyNft('tab')
@@ -331,8 +400,6 @@
 				})
 			},
 			navTo(url) {
-
-
 				if (url == '') {
 					this.$api.msg('敬请期待');
 				}
@@ -372,6 +439,7 @@
 			},
 			maiClose() {
 				this.$refs.maipop.close();
+				this.$refs.qumaipop.close();
 			},
 			getMyNft(type) {
 				let obj = this
@@ -389,6 +457,7 @@
 						page: navitem.page,
 						limit: navitem.limit
 					}).then(res => {
+						console.log(res,'res');
 						navitem.orderList = navitem.orderList.concat(res.data.list)
 						navitem.page++
 						if(res.data.list.length == navitem.limit ) {
@@ -407,6 +476,7 @@
 						status: 2,
 					}).then(res => {
 						navitem.orderList = navitem.orderList.concat(res.data.list)
+						console.log(navitem.orderList,'navitem.orderList');
 						navitem.page++
 						if(res.data.list.length == navitem.limit ) {
 							navitem.loadingType = 'more'
@@ -422,10 +492,10 @@
 	};
 </script>
 <style lang="scss">
-	page {
+	page,.container {
+		width: 750rpx;
 		height: 100%;
 		background: #111111;
-		padding: 30rpx;
 	}
 
 	.mai-box {
@@ -439,6 +509,7 @@
 		border-radius: 20rpx;
 
 		.mai-title {
+			margin: 0 60rpx;
 			font-size: 42rpx;
 			font-weight: 500;
 			color: #0C1732;
@@ -486,7 +557,7 @@
 	}
 
 	.title-box {
-		margin: 40rpx 0;
+		margin: 80rpx 0 40rpx 0;
 		display: flex;
 		align-items: center;
 
@@ -557,6 +628,8 @@
 	}
 
 	.manage-box {
+		margin: 30rpx auto;
+		width: 690rpx;
 		display: flex;
 		justify-content: left;
 		background: #181818;
@@ -648,6 +721,7 @@
 
 			.title {
 				display: flex;
+				align-items: center;
 				// font-size: 39rpx;
 				// font-weight: bold;
 				// color: #FFFFFF;
@@ -794,8 +868,8 @@
 		}
 	}
 	.main-box {
-		margin: 20rpx auto 20rpx;
-		width: 710rpx;
+		margin: 30rpx auto;
+		width: 690rpx;
 		background:#181818 ;
 		// box-shadow: 0px 4rpx 14rpx 0px rgba(229, 229, 229, 0.46);
 		border-radius: 20rpx;
@@ -884,7 +958,6 @@
 	}
 	.dy-list {
 		flex-wrap: wrap;
-		padding-top: 20rpx;
-		justify-content: space-between;
+		padding: 30rpx;
 	}
 </style>

binární
static/img/logo.png


binární
static/img/pass01.png


binární
static/img/pass02.png


binární
static/img/pass03.png


binární
unpackage/release/apk/__UNI__CDE33A2__20220615134127.apk → unpackage/cache/apk/__UNI__6E56E0F_cm.apk


+ 1 - 5
unpackage/cache/apk/apkurl

@@ -1,5 +1 @@
-<<<<<<< HEAD
-https://ide.dcloud.net.cn/build/download/121ade50-eee6-11ec-ae6d-ddb7b406c94f
-=======
-https://ide.dcloud.net.cn/build/download/6db09c70-ee1c-11ec-b2e9-891387a8e105
->>>>>>> 91dc169b5ba56666d2aa341d9ed575571008f75d
+https://ide.dcloud.net.cn/build/download/96de91c0-17c2-11ed-9dfb-c51001aac538

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 0 - 1
unpackage/cache/apk/cmManifestCache.json


+ 2 - 2
unpackage/cache/certdata

@@ -1,3 +1,3 @@
-andrCertfile=D:/工作/项目2/微乐购/wlg/appbase/wlg.keystore
-andrCertAlias=com.wlg.cn
+andrCertfile=C:/Users/Administrator/Desktop/szcp.keystore
+andrCertAlias=com.szcp.cn
 andrCertPass=7IwuiYJfyRjKKTfhI7sjzw==

binární
unpackage/cache/wgt/__UNI__6E56E0F/.manifest/google-keystore.keystore


binární
unpackage/cache/wgt/__UNI__6E56E0F/.manifest/icon-android-hdpi.png


binární
unpackage/cache/wgt/__UNI__6E56E0F/.manifest/icon-android-xhdpi.png


binární
unpackage/cache/wgt/__UNI__6E56E0F/.manifest/icon-android-xxhdpi.png


binární
unpackage/cache/wgt/__UNI__6E56E0F/.manifest/icon-android-xxxhdpi.png


binární
unpackage/cache/wgt/__UNI__6E56E0F/.manifest/splash-android-hdpi.png


binární
unpackage/cache/wgt/__UNI__6E56E0F/.manifest/splash-android-xhdpi.png


binární
unpackage/cache/wgt/__UNI__6E56E0F/.manifest/splash-android-xxhdpi.png


+ 0 - 0
unpackage/cache/wgt/__UNI__CDE33A2/__uniappchooselocation.js → unpackage/cache/wgt/__UNI__6E56E0F/__uniappchooselocation.js


+ 0 - 0
unpackage/cache/wgt/__UNI__CDE33A2/__uniapperror.png → unpackage/cache/wgt/__UNI__6E56E0F/__uniapperror.png


+ 0 - 0
unpackage/cache/wgt/__UNI__CDE33A2/__uniappes6.js → unpackage/cache/wgt/__UNI__6E56E0F/__uniappes6.js


+ 0 - 0
unpackage/cache/wgt/__UNI__CDE33A2/__uniappopenlocation.js → unpackage/cache/wgt/__UNI__6E56E0F/__uniappopenlocation.js


+ 0 - 0
unpackage/cache/wgt/__UNI__CDE33A2/__uniapppicker.js → unpackage/cache/wgt/__UNI__6E56E0F/__uniapppicker.js


+ 0 - 0
unpackage/cache/wgt/__UNI__CDE33A2/__uniappquill.js → unpackage/cache/wgt/__UNI__6E56E0F/__uniappquill.js


+ 0 - 0
unpackage/cache/wgt/__UNI__CDE33A2/__uniappquillimageresize.js → unpackage/cache/wgt/__UNI__6E56E0F/__uniappquillimageresize.js


+ 0 - 0
unpackage/cache/wgt/__UNI__CDE33A2/__uniappscan.js → unpackage/cache/wgt/__UNI__6E56E0F/__uniappscan.js


+ 0 - 0
unpackage/cache/wgt/__UNI__CDE33A2/__uniappsuccess.png → unpackage/cache/wgt/__UNI__6E56E0F/__uniappsuccess.png


+ 0 - 0
unpackage/cache/wgt/__UNI__CDE33A2/__uniappview.html → unpackage/cache/wgt/__UNI__6E56E0F/__uniappview.html


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 3 - 0
unpackage/cache/wgt/__UNI__6E56E0F/app-config-service.js


+ 0 - 0
unpackage/cache/wgt/__UNI__CDE33A2/app-config.js → unpackage/cache/wgt/__UNI__6E56E0F/app-config.js


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 0 - 0
unpackage/cache/wgt/__UNI__6E56E0F/app-service.js


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 0 - 0
unpackage/cache/wgt/__UNI__6E56E0F/app-view.js


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 0 - 0
unpackage/cache/wgt/__UNI__6E56E0F/manifest.json


+ 0 - 0
unpackage/cache/wgt/__UNI__CDE33A2/static/css/cmy.css → unpackage/cache/wgt/__UNI__6E56E0F/static/css/cmy.css


+ 0 - 0
unpackage/cache/wgt/__UNI__CDE33A2/static/error/emptyCart.png → unpackage/cache/wgt/__UNI__6E56E0F/static/error/emptyCart.png


+ 0 - 0
unpackage/cache/wgt/__UNI__CDE33A2/static/error/errorImage.jpg → unpackage/cache/wgt/__UNI__6E56E0F/static/error/errorImage.jpg


+ 0 - 0
unpackage/cache/wgt/__UNI__CDE33A2/static/error/missing-face.png → unpackage/cache/wgt/__UNI__6E56E0F/static/error/missing-face.png


+ 0 - 0
unpackage/cache/wgt/__UNI__CDE33A2/static/game/game02.png → unpackage/cache/wgt/__UNI__6E56E0F/static/game/game02.png


+ 0 - 0
unpackage/cache/wgt/__UNI__CDE33A2/static/game/game03.png → unpackage/cache/wgt/__UNI__6E56E0F/static/game/game03.png


+ 0 - 0
unpackage/cache/wgt/__UNI__CDE33A2/static/game/game04.png → unpackage/cache/wgt/__UNI__6E56E0F/static/game/game04.png


+ 0 - 0
unpackage/cache/wgt/__UNI__CDE33A2/static/game/game05.png → unpackage/cache/wgt/__UNI__6E56E0F/static/game/game05.png


+ 0 - 0
unpackage/cache/wgt/__UNI__CDE33A2/static/game/game06.png → unpackage/cache/wgt/__UNI__6E56E0F/static/game/game06.png


+ 0 - 0
unpackage/cache/wgt/__UNI__CDE33A2/static/game/game07.png → unpackage/cache/wgt/__UNI__6E56E0F/static/game/game07.png


+ 0 - 0
unpackage/cache/wgt/__UNI__CDE33A2/static/game/game08.png → unpackage/cache/wgt/__UNI__6E56E0F/static/game/game08.png


+ 0 - 0
unpackage/cache/wgt/__UNI__CDE33A2/static/game/game1.gif → unpackage/cache/wgt/__UNI__6E56E0F/static/game/game1.gif


+ 0 - 0
unpackage/cache/wgt/__UNI__CDE33A2/static/game/game10.png → unpackage/cache/wgt/__UNI__6E56E0F/static/game/game10.png


+ 0 - 0
unpackage/cache/wgt/__UNI__CDE33A2/static/game/game11.png → unpackage/cache/wgt/__UNI__6E56E0F/static/game/game11.png


+ 0 - 0
unpackage/cache/wgt/__UNI__CDE33A2/static/game/game12.png → unpackage/cache/wgt/__UNI__6E56E0F/static/game/game12.png


+ 0 - 0
unpackage/cache/wgt/__UNI__CDE33A2/static/game/game13.png → unpackage/cache/wgt/__UNI__6E56E0F/static/game/game13.png


+ 0 - 0
unpackage/cache/wgt/__UNI__CDE33A2/static/game/game14.png → unpackage/cache/wgt/__UNI__6E56E0F/static/game/game14.png


+ 0 - 0
unpackage/cache/wgt/__UNI__CDE33A2/static/game/game2.gif → unpackage/cache/wgt/__UNI__6E56E0F/static/game/game2.gif


+ 0 - 0
unpackage/cache/wgt/__UNI__CDE33A2/static/game/game3.gif → unpackage/cache/wgt/__UNI__6E56E0F/static/game/game3.gif


+ 0 - 0
unpackage/cache/wgt/__UNI__CDE33A2/static/game/reb01.png → unpackage/cache/wgt/__UNI__6E56E0F/static/game/reb01.png


+ 0 - 0
unpackage/cache/wgt/__UNI__CDE33A2/static/game/reb02.png → unpackage/cache/wgt/__UNI__6E56E0F/static/game/reb02.png


+ 0 - 0
unpackage/cache/wgt/__UNI__CDE33A2/static/game/reb03.png → unpackage/cache/wgt/__UNI__6E56E0F/static/game/reb03.png


+ 0 - 0
unpackage/cache/wgt/__UNI__CDE33A2/static/game/reb04.png → unpackage/cache/wgt/__UNI__6E56E0F/static/game/reb04.png


+ 0 - 0
unpackage/cache/wgt/__UNI__CDE33A2/static/game/reb05.png → unpackage/cache/wgt/__UNI__6E56E0F/static/game/reb05.png


+ 0 - 0
unpackage/cache/wgt/__UNI__CDE33A2/static/icon/1.png → unpackage/cache/wgt/__UNI__6E56E0F/static/icon/1.png


+ 0 - 0
unpackage/cache/wgt/__UNI__CDE33A2/static/icon/add.png → unpackage/cache/wgt/__UNI__6E56E0F/static/icon/add.png


+ 0 - 0
unpackage/cache/wgt/__UNI__CDE33A2/static/icon/appleIcon.png → unpackage/cache/wgt/__UNI__6E56E0F/static/icon/appleIcon.png


+ 0 - 0
unpackage/cache/wgt/__UNI__CDE33A2/static/icon/bdsj.png → unpackage/cache/wgt/__UNI__6E56E0F/static/icon/bdsj.png


+ 0 - 0
unpackage/cache/wgt/__UNI__CDE33A2/static/icon/c3.png → unpackage/cache/wgt/__UNI__6E56E0F/static/icon/c3.png


+ 0 - 0
unpackage/cache/wgt/__UNI__CDE33A2/static/icon/c5.png → unpackage/cache/wgt/__UNI__6E56E0F/static/icon/c5.png


+ 0 - 0
unpackage/cache/wgt/__UNI__CDE33A2/static/icon/c6.png → unpackage/cache/wgt/__UNI__6E56E0F/static/icon/c6.png


+ 0 - 0
unpackage/cache/wgt/__UNI__CDE33A2/static/icon/c7.png → unpackage/cache/wgt/__UNI__6E56E0F/static/icon/c7.png


+ 0 - 0
unpackage/cache/wgt/__UNI__CDE33A2/static/icon/c8.png → unpackage/cache/wgt/__UNI__6E56E0F/static/icon/c8.png


+ 0 - 0
unpackage/cache/wgt/__UNI__CDE33A2/static/icon/dsjh.png → unpackage/cache/wgt/__UNI__6E56E0F/static/icon/dsjh.png


+ 0 - 0
unpackage/cache/wgt/__UNI__CDE33A2/static/icon/fanhui.png → unpackage/cache/wgt/__UNI__6E56E0F/static/icon/fanhui.png


+ 0 - 0
unpackage/cache/wgt/__UNI__CDE33A2/static/icon/goto.png → unpackage/cache/wgt/__UNI__6E56E0F/static/icon/goto.png


+ 0 - 0
unpackage/cache/wgt/__UNI__CDE33A2/static/icon/i1.png → unpackage/cache/wgt/__UNI__6E56E0F/static/icon/i1.png


+ 0 - 0
unpackage/cache/wgt/__UNI__CDE33A2/static/icon/i2.png → unpackage/cache/wgt/__UNI__6E56E0F/static/icon/i2.png


+ 0 - 0
unpackage/cache/wgt/__UNI__CDE33A2/static/icon/i3.png → unpackage/cache/wgt/__UNI__6E56E0F/static/icon/i3.png


+ 0 - 0
unpackage/cache/wgt/__UNI__CDE33A2/static/icon/i4.png → unpackage/cache/wgt/__UNI__6E56E0F/static/icon/i4.png


+ 0 - 0
unpackage/cache/wgt/__UNI__CDE33A2/static/icon/i5.png → unpackage/cache/wgt/__UNI__6E56E0F/static/icon/i5.png


+ 0 - 0
unpackage/cache/wgt/__UNI__CDE33A2/static/icon/i6.png → unpackage/cache/wgt/__UNI__6E56E0F/static/icon/i6.png


+ 0 - 0
unpackage/cache/wgt/__UNI__CDE33A2/static/icon/i7.png → unpackage/cache/wgt/__UNI__6E56E0F/static/icon/i7.png


+ 0 - 0
unpackage/cache/wgt/__UNI__CDE33A2/static/icon/i8.png → unpackage/cache/wgt/__UNI__6E56E0F/static/icon/i8.png


Některé soubory nejsou zobrazeny, neboť je v těchto rozdílových datech změněno mnoho souborů