Browse Source

完善

master
“linchaomei” 4 years ago
parent
commit
387a4e6f67
  1. 30
      App.vue
  2. 13
      api/request.js
  3. 6
      main.js
  4. 31
      manifest.json
  5. 446
      package-lock.json
  6. 3
      package.json
  7. 105
      pages.json
  8. 114
      pages/account/addAddress.vue
  9. 62
      pages/account/changeImg.vue
  10. 83
      pages/account/deleteCount.vue
  11. 12
      pages/account/demo1.vue
  12. 5
      pages/account/favorites.vue
  13. 275
      pages/account/index.vue
  14. 107
      pages/account/message.vue
  15. 30
      pages/account/myOrders.vue
  16. 80
      pages/account/myProfile.vue
  17. 2
      pages/account/myReview.vue
  18. 8
      pages/account/new.vue
  19. 27
      pages/account/pointsDetails.vue
  20. 49
      pages/account/settings.vue
  21. 45
      pages/account/wishlist.vue
  22. 450
      pages/category/index.vue
  23. 563
      pages/category/productList.vue
  24. 156
      pages/index/address.vue
  25. 495
      pages/index/flashSale.vue
  26. 758
      pages/index/index.vue
  27. 1126
      pages/index/index2.vue
  28. 4
      pages/index/pickUpCentre.vue
  29. 121
      pages/index/search.vue
  30. 41
      pages/login/index.vue
  31. 17
      pages/login/verifyEmail.vue
  32. 450
      pages/order/additems.vue
  33. 140
      pages/order/confirmation.vue
  34. 33
      pages/order/details.vue
  35. 30
      pages/order/paypalWebview.vue
  36. 799
      pages/productDetails/index.vue
  37. 41
      pages/productDetails/review.vue
  38. 1195
      pages/shippingCart/index.vue
  39. 139
      pages/specialTitle/index.vue
  40. BIN
      static/icon/big.png
  41. BIN
      static/icon/big2.png
  42. BIN
      static/icon/home.png
  43. BIN
      static/icon/home1.png
  44. BIN
      static/icon/home3.png
  45. BIN
      static/icon/home4.png
  46. BIN
      static/icon/home_white.png
  47. BIN
      static/icon/next.png
  48. BIN
      static/icon/nologin.png
  49. BIN
      static/icon/nologin2.png
  50. BIN
      static/icon/play.png
  51. BIN
      static/icon/user_bg.png
  52. BIN
      static/img/Mes.png
  53. BIN
      static/img/copyLink.png
  54. BIN
      static/img/dope plus_white.png
  55. BIN
      static/img/down.png
  56. BIN
      static/img/facebook1.png
  57. BIN
      static/img/favorites_white.png
  58. BIN
      static/img/like_white.png
  59. BIN
      static/img/more1.png
  60. BIN
      static/img/msg_white.png
  61. BIN
      static/img/qr.png
  62. BIN
      static/img/shop_cart1.png
  63. BIN
      static/img/summer.jpg
  64. 25
      store/store.js
  65. BIN
      unpackage/res/icons/dope.png
  66. BIN
      unpackage/res/icons/dope2.png
  67. BIN
      unpackage/resources/__UNI__C0E0831/www.zip
  68. 1
      unpackage/resources/__UNI__C0E0831/www/__uniappchooselocation.js
  69. BIN
      unpackage/resources/__UNI__C0E0831/www/__uniapperror.png
  70. 1
      unpackage/resources/__UNI__C0E0831/www/__uniappes6.js
  71. 1
      unpackage/resources/__UNI__C0E0831/www/__uniappopenlocation.js
  72. 1
      unpackage/resources/__UNI__C0E0831/www/__uniapppicker.js
  73. 8
      unpackage/resources/__UNI__C0E0831/www/__uniappquill.js
  74. 1
      unpackage/resources/__UNI__C0E0831/www/__uniappquillimageresize.js
  75. 1
      unpackage/resources/__UNI__C0E0831/www/__uniappscan.js
  76. BIN
      unpackage/resources/__UNI__C0E0831/www/__uniappsuccess.png
  77. 25
      unpackage/resources/__UNI__C0E0831/www/__uniappview.html
  78. 3
      unpackage/resources/__UNI__C0E0831/www/androidPrivacy.json
  79. 8
      unpackage/resources/__UNI__C0E0831/www/app-config-service.js
  80. 1
      unpackage/resources/__UNI__C0E0831/www/app-config.js
  81. 45
      unpackage/resources/__UNI__C0E0831/www/app-service.js
  82. 1
      unpackage/resources/__UNI__C0E0831/www/app-view.js
  83. 1
      unpackage/resources/__UNI__C0E0831/www/manifest.json
  84. BIN
      unpackage/resources/__UNI__C0E0831/www/static/icon/1024.png
  85. BIN
      unpackage/resources/__UNI__C0E0831/www/static/icon/left.png
  86. BIN
      unpackage/resources/__UNI__C0E0831/www/static/img/APay.png
  87. BIN
      unpackage/resources/__UNI__C0E0831/www/static/img/About CHIC.png
  88. BIN
      unpackage/resources/__UNI__C0E0831/www/static/img/Account.png
  89. BIN
      unpackage/resources/__UNI__C0E0831/www/static/img/Account1.png
  90. BIN
      unpackage/resources/__UNI__C0E0831/www/static/img/Attention CHIC.png
  91. BIN
      unpackage/resources/__UNI__C0E0831/www/static/img/Cart.png
  92. BIN
      unpackage/resources/__UNI__C0E0831/www/static/img/Category.png
  93. BIN
      unpackage/resources/__UNI__C0E0831/www/static/img/Category1.png
  94. BIN
      unpackage/resources/__UNI__C0E0831/www/static/img/GPay.png
  95. BIN
      unpackage/resources/__UNI__C0E0831/www/static/img/Help Center.png
  96. BIN
      unpackage/resources/__UNI__C0E0831/www/static/img/My Address.png
  97. BIN
      unpackage/resources/__UNI__C0E0831/www/static/img/My Review.png
  98. BIN
      unpackage/resources/__UNI__C0E0831/www/static/img/Processing.png
  99. BIN
      unpackage/resources/__UNI__C0E0831/www/static/img/Return Policy.png
  100. BIN
      unpackage/resources/__UNI__C0E0831/www/static/img/Returns.png

30
App.vue

@ -1,13 +1,41 @@
<script>
import {defaultRequest,defaultRequest4} from 'api/index.js'
export default {
data(){
return {
backButtonPress:0,
}
},
onLaunch: function() {
// console.log('App Launch')
uni.onTabBarMidButtonTap(()=>{
uni.showTabBar()
uni.navigateTo({
url:'/pages/index/index2'
})
})
},
onShow: function() {
// console.log('App Show')
console.log('App Show')
},
onHide: function() {
// console.log('App Hide')
},
methods:{
onBack() {
this.backButtonPress++;
if (this.backButtonPress > 1) {
plus.runtime.quit();
} else {
plus.nativeUI.toast('Click again to exit');
}
setTimeout(function() {
this.backButtonPress = 0;
}, 1000);
return true;
},
}
}
</script>

13
api/request.js

@ -6,7 +6,7 @@ import cryptoJS from "crypto-js"
const httpRequest = (params) => {
if(params.isLoad){
uni.showLoading({
title: "努力加载中..."
// title: "努力加载中..."
});
}
@ -22,6 +22,7 @@ const httpRequest = (params) => {
}
let data=Object.assign(json_data,params.data)
console.info(data)
uni.setStorageSync('appdata',data)
let key=params.key
if(params.isEncryption){
// console.info(JSON.parse(JSON.stringify(data.consignee)))
@ -66,11 +67,11 @@ const httpRequest = (params) => {
// res.data=Base64.decode(decryptDes(res.data,'6780f04cf2e211ec86a8005056c00008'));
// console.info(res.data)
if(res.data.error!=0 && params.errMsg){
uni.showToast({
title: res.data.message,
icon:'none',
duration: 2000
});
// uni.showToast({
// // title: res.data.message,
// icon:'none',
// duration: 2000
// });
}
if(res.data.error!=0 && params.isCookies){
let user_info=uni.getStorageSync('user_info')

6
main.js

@ -1,12 +1,16 @@
import App from './App'
import store from '@/store/store.js'
// #ifndef VUE3
import Vue from 'vue'
Vue.config.productionTip = false
App.mpType = 'app'
const app = new Vue({
...App
...App,
store
})
app.$mount()
// #endif

31
manifest.json

@ -18,29 +18,27 @@
},
/* */
"modules" : {
"Payment" : {}
"Payment" : {},
"VideoPlayer" : {}
},
/* */
"distribute" : {
/* android */
"android" : {
"permissions" : [
"<uses-permission android:name=\"android.permission.CAMERA\"/>",
"<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
"<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
"<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
"<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
"<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
"<uses-permission android:name=\"android.permission.VIBRATE\"/>",
"<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
"<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
"<uses-permission android:name=\"android.permission.CAMERA\"/>",
"<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
"<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
"<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
"<uses-permission android:name=\"android.permission.VIBRATE\"/>",
"<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
"<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
"<uses-feature android:name=\"android.hardware.camera\"/>",
"<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
]
],
"autoSdkPermissions" : true
},
/* ios */
"ios" : {},
@ -50,15 +48,20 @@
"payment" : {
"alipay" : {
"__platform__" : [ "ios", "android" ]
},
"paypal" : {
"__platform__" : [ "ios", "android" ],
"returnURL_ios" : "uni.unicoe0831://paypalpay",
"returnURL_android" : "uni.unicoe0831://paypalpay"
}
}
},
"splashscreen" : {
"androidStyle" : "default",
"android" : {
"hdpi" : "unpackage/res/icons/480_8001.9.png",
"xhdpi" : "unpackage/res/icons/720_1242.9.png",
"xxhdpi" : "unpackage/res/icons/1080_1882.9.png"
"hdpi" : "unpackage/res/icons/dope2.png",
"xhdpi" : "unpackage/res/icons/dope2.png",
"xxhdpi" : "unpackage/res/icons/dope2.png"
},
"useOriginalMsgbox" : false
},

446
package-lock.json

@ -6,9 +6,139 @@
"": {
"dependencies": {
"base-64": "^1.0.0",
"crypto-js": "^4.1.1"
"crypto-js": "^4.1.1",
"vuex": "^4.0.2"
}
},
"node_modules/@babel/parser": {
"version": "7.18.9",
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.9.tgz",
"integrity": "sha512-9uJveS9eY9DJ0t64YbIBZICtJy8a5QrDEVdiLCG97fVLpDTpGX7t8mMSb6OWw6Lrnjqj4O8zwjELX3dhoMgiBg==",
"peer": true,
"bin": {
"parser": "bin/babel-parser.js"
},
"engines": {
"node": ">=6.0.0"
}
},
"node_modules/@vue/compiler-core": {
"version": "3.2.37",
"resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.37.tgz",
"integrity": "sha512-81KhEjo7YAOh0vQJoSmAD68wLfYqJvoiD4ulyedzF+OEk/bk6/hx3fTNVfuzugIIaTrOx4PGx6pAiBRe5e9Zmg==",
"peer": true,
"dependencies": {
"@babel/parser": "^7.16.4",
"@vue/shared": "3.2.37",
"estree-walker": "^2.0.2",
"source-map": "^0.6.1"
}
},
"node_modules/@vue/compiler-dom": {
"version": "3.2.37",
"resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.37.tgz",
"integrity": "sha512-yxJLH167fucHKxaqXpYk7x8z7mMEnXOw3G2q62FTkmsvNxu4FQSu5+3UMb+L7fjKa26DEzhrmCxAgFLLIzVfqQ==",
"peer": true,
"dependencies": {
"@vue/compiler-core": "3.2.37",
"@vue/shared": "3.2.37"
}
},
"node_modules/@vue/compiler-sfc": {
"version": "3.2.37",
"resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.37.tgz",
"integrity": "sha512-+7i/2+9LYlpqDv+KTtWhOZH+pa8/HnX/905MdVmAcI/mPQOBwkHHIzrsEsucyOIZQYMkXUiTkmZq5am/NyXKkg==",
"peer": true,
"dependencies": {
"@babel/parser": "^7.16.4",
"@vue/compiler-core": "3.2.37",
"@vue/compiler-dom": "3.2.37",
"@vue/compiler-ssr": "3.2.37",
"@vue/reactivity-transform": "3.2.37",
"@vue/shared": "3.2.37",
"estree-walker": "^2.0.2",
"magic-string": "^0.25.7",
"postcss": "^8.1.10",
"source-map": "^0.6.1"
}
},
"node_modules/@vue/compiler-ssr": {
"version": "3.2.37",
"resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.37.tgz",
"integrity": "sha512-7mQJD7HdXxQjktmsWp/J67lThEIcxLemz1Vb5I6rYJHR5vI+lON3nPGOH3ubmbvYGt8xEUaAr1j7/tIFWiEOqw==",
"peer": true,
"dependencies": {
"@vue/compiler-dom": "3.2.37",
"@vue/shared": "3.2.37"
}
},
"node_modules/@vue/devtools-api": {
"version": "6.2.1",
"resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.2.1.tgz",
"integrity": "sha512-OEgAMeQXvCoJ+1x8WyQuVZzFo0wcyCmUR3baRVLmKBo1LmYZWMlRiXlux5jd0fqVJu6PfDbOrZItVqUEzLobeQ=="
},
"node_modules/@vue/reactivity": {
"version": "3.2.37",
"resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.37.tgz",
"integrity": "sha512-/7WRafBOshOc6m3F7plwzPeCu/RCVv9uMpOwa/5PiY1Zz+WLVRWiy0MYKwmg19KBdGtFWsmZ4cD+LOdVPcs52A==",
"peer": true,
"dependencies": {
"@vue/shared": "3.2.37"
}
},
"node_modules/@vue/reactivity-transform": {
"version": "3.2.37",
"resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.37.tgz",
"integrity": "sha512-IWopkKEb+8qpu/1eMKVeXrK0NLw9HicGviJzhJDEyfxTR9e1WtpnnbYkJWurX6WwoFP0sz10xQg8yL8lgskAZg==",
"peer": true,
"dependencies": {
"@babel/parser": "^7.16.4",
"@vue/compiler-core": "3.2.37",
"@vue/shared": "3.2.37",
"estree-walker": "^2.0.2",
"magic-string": "^0.25.7"
}
},
"node_modules/@vue/runtime-core": {
"version": "3.2.37",
"resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.2.37.tgz",
"integrity": "sha512-JPcd9kFyEdXLl/i0ClS7lwgcs0QpUAWj+SKX2ZC3ANKi1U4DOtiEr6cRqFXsPwY5u1L9fAjkinIdB8Rz3FoYNQ==",
"peer": true,
"dependencies": {
"@vue/reactivity": "3.2.37",
"@vue/shared": "3.2.37"
}
},
"node_modules/@vue/runtime-dom": {
"version": "3.2.37",
"resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.2.37.tgz",
"integrity": "sha512-HimKdh9BepShW6YozwRKAYjYQWg9mQn63RGEiSswMbW+ssIht1MILYlVGkAGGQbkhSh31PCdoUcfiu4apXJoPw==",
"peer": true,
"dependencies": {
"@vue/runtime-core": "3.2.37",
"@vue/shared": "3.2.37",
"csstype": "^2.6.8"
}
},
"node_modules/@vue/server-renderer": {
"version": "3.2.37",
"resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.2.37.tgz",
"integrity": "sha512-kLITEJvaYgZQ2h47hIzPh2K3jG8c1zCVbp/o/bzQOyvzaKiCquKS7AaioPI28GNxIsE/zSx+EwWYsNxDCX95MA==",
"peer": true,
"dependencies": {
"@vue/compiler-ssr": "3.2.37",
"@vue/shared": "3.2.37"
},
"peerDependencies": {
"vue": "3.2.37"
}
},
"node_modules/@vue/shared": {
"version": "3.2.37",
"resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.37.tgz",
"integrity": "sha512-4rSJemR2NQIo9Klm1vabqWjD8rs/ZaJSzMxkMNeJS6lHiUjjUeYFbooN19NgFjztubEKh3WlZUeOLVdbbUWHsw==",
"peer": true
},
"node_modules/base-64": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/base-64/-/base-64-1.0.0.tgz",
@ -18,9 +148,240 @@
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.1.1.tgz",
"integrity": "sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw=="
},
"node_modules/csstype": {
"version": "2.6.20",
"resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.20.tgz",
"integrity": "sha512-/WwNkdXfckNgw6S5R125rrW8ez139lBHWouiBvX8dfMFtcn6V81REDqnH7+CRpRipfYlyU1CmOnOxrmGcFOjeA==",
"peer": true
},
"node_modules/estree-walker": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
"integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==",
"peer": true
},
"node_modules/magic-string": {
"version": "0.25.9",
"resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz",
"integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==",
"peer": true,
"dependencies": {
"sourcemap-codec": "^1.4.8"
}
},
"node_modules/nanoid": {
"version": "3.3.4",
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz",
"integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==",
"peer": true,
"bin": {
"nanoid": "bin/nanoid.cjs"
},
"engines": {
"node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
}
},
"node_modules/picocolors": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
"integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
"peer": true
},
"node_modules/postcss": {
"version": "8.4.14",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz",
"integrity": "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==",
"funding": [
{
"type": "opencollective",
"url": "https://opencollective.com/postcss/"
},
{
"type": "tidelift",
"url": "https://tidelift.com/funding/github/npm/postcss"
}
],
"peer": true,
"dependencies": {
"nanoid": "^3.3.4",
"picocolors": "^1.0.0",
"source-map-js": "^1.0.2"
},
"engines": {
"node": "^10 || ^12 || >=14"
}
},
"node_modules/source-map": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
"peer": true,
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/source-map-js": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
"integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
"peer": true,
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/sourcemap-codec": {
"version": "1.4.8",
"resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz",
"integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==",
"peer": true
},
"node_modules/vue": {
"version": "3.2.37",
"resolved": "https://registry.npmjs.org/vue/-/vue-3.2.37.tgz",
"integrity": "sha512-bOKEZxrm8Eh+fveCqS1/NkG/n6aMidsI6hahas7pa0w/l7jkbssJVsRhVDs07IdDq7h9KHswZOgItnwJAgtVtQ==",
"peer": true,
"dependencies": {
"@vue/compiler-dom": "3.2.37",
"@vue/compiler-sfc": "3.2.37",
"@vue/runtime-dom": "3.2.37",
"@vue/server-renderer": "3.2.37",
"@vue/shared": "3.2.37"
}
},
"node_modules/vuex": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/vuex/-/vuex-4.0.2.tgz",
"integrity": "sha512-M6r8uxELjZIK8kTKDGgZTYX/ahzblnzC4isU1tpmEuOIIKmV+TRdc+H4s8ds2NuZ7wpUTdGRzJRtoj+lI+pc0Q==",
"dependencies": {
"@vue/devtools-api": "^6.0.0-beta.11"
},
"peerDependencies": {
"vue": "^3.0.2"
}
}
},
"dependencies": {
"@babel/parser": {
"version": "7.18.9",
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.9.tgz",
"integrity": "sha512-9uJveS9eY9DJ0t64YbIBZICtJy8a5QrDEVdiLCG97fVLpDTpGX7t8mMSb6OWw6Lrnjqj4O8zwjELX3dhoMgiBg==",
"peer": true
},
"@vue/compiler-core": {
"version": "3.2.37",
"resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.37.tgz",
"integrity": "sha512-81KhEjo7YAOh0vQJoSmAD68wLfYqJvoiD4ulyedzF+OEk/bk6/hx3fTNVfuzugIIaTrOx4PGx6pAiBRe5e9Zmg==",
"peer": true,
"requires": {
"@babel/parser": "^7.16.4",
"@vue/shared": "3.2.37",
"estree-walker": "^2.0.2",
"source-map": "^0.6.1"
}
},
"@vue/compiler-dom": {
"version": "3.2.37",
"resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.37.tgz",
"integrity": "sha512-yxJLH167fucHKxaqXpYk7x8z7mMEnXOw3G2q62FTkmsvNxu4FQSu5+3UMb+L7fjKa26DEzhrmCxAgFLLIzVfqQ==",
"peer": true,
"requires": {
"@vue/compiler-core": "3.2.37",
"@vue/shared": "3.2.37"
}
},
"@vue/compiler-sfc": {
"version": "3.2.37",
"resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.37.tgz",
"integrity": "sha512-+7i/2+9LYlpqDv+KTtWhOZH+pa8/HnX/905MdVmAcI/mPQOBwkHHIzrsEsucyOIZQYMkXUiTkmZq5am/NyXKkg==",
"peer": true,
"requires": {
"@babel/parser": "^7.16.4",
"@vue/compiler-core": "3.2.37",
"@vue/compiler-dom": "3.2.37",
"@vue/compiler-ssr": "3.2.37",
"@vue/reactivity-transform": "3.2.37",
"@vue/shared": "3.2.37",
"estree-walker": "^2.0.2",
"magic-string": "^0.25.7",
"postcss": "^8.1.10",
"source-map": "^0.6.1"
}
},
"@vue/compiler-ssr": {
"version": "3.2.37",
"resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.37.tgz",
"integrity": "sha512-7mQJD7HdXxQjktmsWp/J67lThEIcxLemz1Vb5I6rYJHR5vI+lON3nPGOH3ubmbvYGt8xEUaAr1j7/tIFWiEOqw==",
"peer": true,
"requires": {
"@vue/compiler-dom": "3.2.37",
"@vue/shared": "3.2.37"
}
},
"@vue/devtools-api": {
"version": "6.2.1",
"resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.2.1.tgz",
"integrity": "sha512-OEgAMeQXvCoJ+1x8WyQuVZzFo0wcyCmUR3baRVLmKBo1LmYZWMlRiXlux5jd0fqVJu6PfDbOrZItVqUEzLobeQ=="
},
"@vue/reactivity": {
"version": "3.2.37",
"resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.37.tgz",
"integrity": "sha512-/7WRafBOshOc6m3F7plwzPeCu/RCVv9uMpOwa/5PiY1Zz+WLVRWiy0MYKwmg19KBdGtFWsmZ4cD+LOdVPcs52A==",
"peer": true,
"requires": {
"@vue/shared": "3.2.37"
}
},
"@vue/reactivity-transform": {
"version": "3.2.37",
"resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.37.tgz",
"integrity": "sha512-IWopkKEb+8qpu/1eMKVeXrK0NLw9HicGviJzhJDEyfxTR9e1WtpnnbYkJWurX6WwoFP0sz10xQg8yL8lgskAZg==",
"peer": true,
"requires": {
"@babel/parser": "^7.16.4",
"@vue/compiler-core": "3.2.37",
"@vue/shared": "3.2.37",
"estree-walker": "^2.0.2",
"magic-string": "^0.25.7"
}
},
"@vue/runtime-core": {
"version": "3.2.37",
"resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.2.37.tgz",
"integrity": "sha512-JPcd9kFyEdXLl/i0ClS7lwgcs0QpUAWj+SKX2ZC3ANKi1U4DOtiEr6cRqFXsPwY5u1L9fAjkinIdB8Rz3FoYNQ==",
"peer": true,
"requires": {
"@vue/reactivity": "3.2.37",
"@vue/shared": "3.2.37"
}
},
"@vue/runtime-dom": {
"version": "3.2.37",
"resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.2.37.tgz",
"integrity": "sha512-HimKdh9BepShW6YozwRKAYjYQWg9mQn63RGEiSswMbW+ssIht1MILYlVGkAGGQbkhSh31PCdoUcfiu4apXJoPw==",
"peer": true,
"requires": {
"@vue/runtime-core": "3.2.37",
"@vue/shared": "3.2.37",
"csstype": "^2.6.8"
}
},
"@vue/server-renderer": {
"version": "3.2.37",
"resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.2.37.tgz",
"integrity": "sha512-kLITEJvaYgZQ2h47hIzPh2K3jG8c1zCVbp/o/bzQOyvzaKiCquKS7AaioPI28GNxIsE/zSx+EwWYsNxDCX95MA==",
"peer": true,
"requires": {
"@vue/compiler-ssr": "3.2.37",
"@vue/shared": "3.2.37"
}
},
"@vue/shared": {
"version": "3.2.37",
"resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.37.tgz",
"integrity": "sha512-4rSJemR2NQIo9Klm1vabqWjD8rs/ZaJSzMxkMNeJS6lHiUjjUeYFbooN19NgFjztubEKh3WlZUeOLVdbbUWHsw==",
"peer": true
},
"base-64": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/base-64/-/base-64-1.0.0.tgz",
@ -30,6 +391,89 @@
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.1.1.tgz",
"integrity": "sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw=="
},
"csstype": {
"version": "2.6.20",
"resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.20.tgz",
"integrity": "sha512-/WwNkdXfckNgw6S5R125rrW8ez139lBHWouiBvX8dfMFtcn6V81REDqnH7+CRpRipfYlyU1CmOnOxrmGcFOjeA==",
"peer": true
},
"estree-walker": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
"integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==",
"peer": true
},
"magic-string": {
"version": "0.25.9",
"resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz",
"integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==",
"peer": true,
"requires": {
"sourcemap-codec": "^1.4.8"
}
},
"nanoid": {
"version": "3.3.4",
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz",
"integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==",
"peer": true
},
"picocolors": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
"integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
"peer": true
},
"postcss": {
"version": "8.4.14",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz",
"integrity": "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==",
"peer": true,
"requires": {
"nanoid": "^3.3.4",
"picocolors": "^1.0.0",
"source-map-js": "^1.0.2"
}
},
"source-map": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
"peer": true
},
"source-map-js": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
"integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
"peer": true
},
"sourcemap-codec": {
"version": "1.4.8",
"resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz",
"integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==",
"peer": true
},
"vue": {
"version": "3.2.37",
"resolved": "https://registry.npmjs.org/vue/-/vue-3.2.37.tgz",
"integrity": "sha512-bOKEZxrm8Eh+fveCqS1/NkG/n6aMidsI6hahas7pa0w/l7jkbssJVsRhVDs07IdDq7h9KHswZOgItnwJAgtVtQ==",
"peer": true,
"requires": {
"@vue/compiler-dom": "3.2.37",
"@vue/compiler-sfc": "3.2.37",
"@vue/runtime-dom": "3.2.37",
"@vue/server-renderer": "3.2.37",
"@vue/shared": "3.2.37"
}
},
"vuex": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/vuex/-/vuex-4.0.2.tgz",
"integrity": "sha512-M6r8uxELjZIK8kTKDGgZTYX/ahzblnzC4isU1tpmEuOIIKmV+TRdc+H4s8ds2NuZ7wpUTdGRzJRtoj+lI+pc0Q==",
"requires": {
"@vue/devtools-api": "^6.0.0-beta.11"
}
}
}
}

3
package.json

@ -1,6 +1,7 @@
{
"dependencies": {
"base-64": "^1.0.0",
"crypto-js": "^4.1.1"
"crypto-js": "^4.1.1",
"vuex": "^4.0.2"
}
}

105
pages.json

@ -4,9 +4,11 @@
"path": "pages/index/index",
"style": {
"navigationBarTitleText": "uni-app",
"enablePullDownRefresh":true,
"app-plus":{
"titleNView":false
}
},
"navigationBarTextStyle":"white"
}
},
{
@ -17,12 +19,20 @@
}
}
},
{
"path": "pages/index/address",
"style": {
"navigationStyle":"custom"
}
},
{
"path": "pages/category/index",
"style": {
"app-plus":{
"titleNView":false
}
}
},
{
@ -30,7 +40,21 @@
"style": {
"app-plus":{
"titleNView":false
}
},
"navigationBarBackgroundColor":"#000000",
"navigationBarTextStyle":"white",
"enablePullDownRefresh":true
}
},
{
"path": "pages/account/deleteCount",
"style": {
"navigationBarBackgroundColor":"#000000",
"navigationBarTitleText": "delete Count",
"navigationBarTextStyle":"white"
}
},
{
@ -73,10 +97,18 @@
"titleNView":false
}
},
{
"path": "pages/account/new",
"style": {
"navigationBarTitleText": "nothing",
"navigationBarBackgroundColor":"#FFFFFF"
}
},
{
"path": "pages/login/index",
"style": {
"titleNView":false
"navigationBarTitleText": " ",
"navigationBarBackgroundColor":"#FFFFFF"
}
},
{
@ -100,10 +132,25 @@
"navigationBarBackgroundColor":"#FFFFFF"
}
},
{
"path": "pages/order/additems",
"style": {
"app-plus":{
"titleNView":false
}
}
},
{
"path": "pages/order/confirmation",
"style": {
"navigationBarTitleText": "0rder Confirmation",
"navigationBarTitleText": "Order Confirmation",
"navigationBarBackgroundColor":"#FFFFFF"
}
},
{
"path": "pages/order/paypalWebview",
"style": {
"navigationBarTitleText": " ",
"navigationBarBackgroundColor":"#FFFFFF"
}
},
@ -119,6 +166,12 @@
"titleNView":false
}
},
{
"path": "pages/index/index2",
"style": {
"titleNView":false
}
},
{
"path": "pages/order/paySuccess",
"style": {
@ -194,14 +247,18 @@
{
"path": "pages/shippingCart/index",
"style": {
"titleNView":false
"titleNView":false,
"enablePullDownRefresh":true
}
},
{
"path": "pages/productDetails/index",
"style": {
"titleNView":false
"titleNView":false,
"navigationBarBackgroundColor": "#000000",
"navigationBarTextStyle": "white"
}
},
{
"path": "pages/productDetails/goodsReview",
@ -217,6 +274,13 @@
"navigationBarBackgroundColor":"#FFFFFF"
}
},
{
"path": "pages/account/demo1",
"style": {
"navigationBarTitleText": "My demo",
"navigationBarBackgroundColor":"#FFFFFF"
}
},
{
"path": "pages/productDetails/review",
"style": {
@ -229,15 +293,24 @@
"titleNView":false
}
}
],
,{
"path" : "pages/specialTitle/index",
"style" :
{
"navigationStyle":"custom",
"enablePullDownRefresh": false
}
}
],
"globalStyle": {
"navigationBarTextStyle": "black",
"navigationBarTitleText": "DOPE PLUS",
"navigationBarBackgroundColor": "#F8F8F8",
"backgroundColor": "#F8F8F8"
"navigationBarTitleText": "DOPE PLUS"
},
"tabBar": {
"borderStyle": "black",
"borderStyle": "white",
"backgroundColor": "#FFFFFF",
"color": "#999999",
"selectedColor": "#000000",
@ -247,12 +320,15 @@
"height":"70px",
"iconWidth":"60px",
"iconPath":"static/img/tabbar_img.png"
},
"list": [{
"pagePath": "pages/index/index",
"iconPath": "static/img/home.png",
"selectedIconPath": "static/img/home1.png",
"iconPath": "static/icon/home3.png",
"selectedIconPath": "static/icon/home4.png",
"text": "Home"
},
{
"pagePath": "pages/category/index",
@ -264,6 +340,7 @@
"pagePath": "pages/shippingCart/index",
"iconPath": "static/img/Cart.png",
"selectedIconPath": "static/img/cart1.png",
"navigationBarTextStyle": "black",
"text": "Cart"
},
{
@ -273,5 +350,7 @@
"text": "Account"
}
]
}
}

114
pages/account/addAddress.vue

@ -171,7 +171,8 @@
},
province:'',
city:'',
address:''
address:'',
listAll:[]
}
},
methods:{
@ -274,55 +275,122 @@
getCountry(){
let data={_action:'getregions',parent_region_id:0}
defaultRequest2(data).then(res=>{
// console.info(res)
let list =[]
let listAll = []
console.info(res)
console.log(this.countryText)
if(res.error==0){
this.countryList=res.data
if(this.countryText){
res.data.map( item =>{
if(item.region_name == this.countryText){
item.regions.map(item2 =>{
list.push(item2.region_name)
listAll.push({
name:item2.region_name,
list:item2.regions
})
this.provinceList = list
if(item2.region_name == this.provinceText){
this.cityList = item2.regions
}
})
}
})
console.log(listAll,'ppp')
this.listAll = listAll
}
}
})
},
//
bindPickerChange(e){
this.isSelect = true
if(this.index!=e.detail.value){
this.provinceText=''
this.cityText=''
this.query.consignee.city=0
this.query.consignee.province=0
}
let list =[]
let listAll = []
this.index=e.detail.value
if(this.countryList[this.index].regions){
this.isSelect=true
this.provinceList=this.countryList[this.index].regions
}else{
this.isSelect=false
this.isSelect1=false
}
this.query.consignee.country=this.countryList[this.index].region_id
this.countryText=this.countryList[this.index].region_name
if(this.countryText){
this.countryList.map( item =>{
if(item.region_name == this.countryText){
item.regions.map(item2 =>{
list.push(item2.region_name)
listAll.push({
name:item2.region_name,
list:item2.regions
})
if(item2.region_name == this.provinceText){
this.cityList = item2.regions
if(this.cityList[0].region_name!=undefined)
{
this.cityText = this.cityList[0].region_name
}else{
this.isSelect1 = false
}
}
})
}
})
console.log(listAll)
this.provinceList = list
this.listAll = listAll
}
},
//
bindPickerChange1(e){
if(this.provinceIndex!=e.detail.value){
this.cityText=''
this.query.consignee.city=0
}
this.isSelect1 = true
this.provinceIndex=e.detail.value
if(this.provinceList[this.provinceIndex].regions){
this.isSelect1=true
this.cityList=this.provinceList[this.provinceIndex].regions
}else{
this.isSelect1=false
this.cityText=''
}
this.provinceText=this.provinceList[this.provinceIndex]
this.listAll.map(item =>{
if(item.name == this.provinceText){
this.cityList = item.list
if(this.cityList&&this.cityList[0].region_name!=undefined)
{
this.cityText = this.cityList[0].region_name
}
else{
this.isSelect1 = false
}
}
})
// this.provinceList = this.countryList[this.index].regions
// if(this.provinceIndex!=e.detail.value){
// this.cityText=''
// this.query.consignee.city=0
// }
// this.isSelect1=true
// this.cityList=this.provinceList[this.provinceIndex].regions
// if(this.provinceList[this.provinceIndex].regions){
// this.isSelect1=true
// this.cityList=this.provinceList[this.provinceIndex].regions
// }else{
// this.isSelect1=false
// this.cityText=''
// }
this.query.consignee.province=this.provinceList[this.provinceIndex].region_id
this.provinceText=this.provinceList[this.provinceIndex].region_name
// this.provinceText=this.provinceList[this.provinceIndex].region_name
},
//
bindPickerChange2(e){
this.cityIndex=e.detail.value
this.query.consignee.city=this.cityList[this.cityIndex].region_id
this.cityText=this.cityList[this.cityIndex].region_name
this.query.consignee.city=this.cityList[this.cityIndex].region_id
}
},
onLoad(e) {

62
pages/account/changeImg.vue

@ -1,13 +1,13 @@
<template>
<view>
<view class="foot fixed">
<uni-section title="左侧文字+右侧文字" subTitle="使用 left-text/right-text 设置左右文字" type="line"
<uni-section type="line"
style="margin-bottom: 3px;">
<view class="box-bg">
<uni-nav-bar border="false" title="标题" >
<uni-nav-bar border="false" title="image" >
<block slot="left">
<!-- <view ><uni-icons type="back" size="30"></uni-icons></view> -->
<view class="icon-all"><image class="imgsize"src='../../static/icon/left.png'/></view>
<view class="icon-all"><image class="imgsize"src='../../static/icon/left.png' @click="back()"/></view>
</block>
<block slot="right">
@ -26,9 +26,9 @@
<view class="icon" @click="tabActive(index,item)">
<image class="imgsize":src="item"></image>
<radio class="main-icon-radio" v-show="current>0" :checked="index == current?true:false" />
<radio class="main-icon-radio" v-show="current>-1" :checked="index == current?true:false" />
</view>
</view>
</view>
</view>
@ -79,24 +79,31 @@
},
//
Sub(){
console.log( this.active_img,'选择的图片')
this.query2.user_head = this.active_img;
defaultRequest(this.query2).then( res => {
console.log(res,'yyyy')
if(res.error==0){
uni.showToast({
title:'succuss',
duration: 2000,
icon:'none'
})
uni.navigateBack({
delta:1
setTimeout(() =>{
uni.showToast({
title:'ok!',
icon:'none'
})
},500)
uni.switchTab({
url:'./index'
})
}
})
},
back(){
uni.navigateBack({
delta:1
})
}
}
}
</script>
@ -120,7 +127,7 @@
.detail{
display: flex;
flex-wrap: wrap;
margin:10rpx 50rpx 10rpx 50rpx;
margin:10rpx 4vw 10rpx 2vw;
padding: 100rpx 0;
background-color: #fff;
@ -133,20 +140,21 @@
border-radius: 15rpx;
}
.contain{
width: 180rpx;
height: 160rpx;
width: 26vw;
height: 200rpx;
display: flex;
/* background-color: antiquewhite; */
flex-direction: column;
margin: 50rpx 10rpx 10rpx 10rpx;
padding: 10rpx;
margin: 50rpx 20rpx 10rpx 20rpx;
/* padding: 10rpx; */
position: relative;
justify-content: center;
align-items: center;
/* align-items: center; */
}
.icon{
height: 160rpx;
width:160rpx;
margin: 12rpx;
height: 100%;
width:26vw;
/* margin: 15rpx; */
display: flex;
justify-content: flex-end;
position: absolute;
@ -158,8 +166,8 @@
}
.main-icon-radio {
position: absolute;
z-index: 9;
margin-top: 110rpx;
margin-left: 20rpx;
margin-top: 15vw;
}
</style>

83
pages/account/deleteCount.vue

@ -0,0 +1,83 @@
<template>
<view>
<view class="address_foot">
<button @click="deleteuserinfo()">Delete account</button>
</view>
</view>
</template>
<script>
import {defaultRequest} from '../../api/index.js'
export default {
data(){
return {
delete:{
_action:'unregistuser',
username:'',
password:''
}
}
},
methods:{
getuserinfo(){
let data={_action:'getinfo'}
defaultRequest(data).then(res =>{
console.log(res)
})
},
deleteuserinfo(){
uni.showModal({
title: 'Confirm Delet?',
content: 'All the data of the account will disappear, including the balance of money, historical orders, etc. will disappear',
cancelText: "cancel", //
confirmText: "confirm", //
showCancel: true, // true
confirmColor: '#f55850',
cancelColor: '#39B54A',
success: (res) => {
if(res.confirm) {
console.log('comfirm') //
defaultRequest(this.delete).then(res =>{
if(res.error == 0){
uni.showToast({
icon:'none',
title:'ok to delete!'
})
}
})
} else {
console.log('cancel') //
}
}
})
}
},
onShow() {
let user = uni.getStorageInfoSync('user_info')
console.log(user)
this.getuserinfo()
}
}
</script>
<style lang="scss" scoped>
.address_foot{
padding: 42rpx 24rpx;
border-top: #E2E2E2 solid 1px;
position: fixed;
bottom: 0;
width: 100%;
box-sizing: border-box;
button{
color: white;
background-color: #000000 !important;
font-size: 26.67rpx;
font-weight: bold;
margin: 0;
}
}
</style>

12
pages/account/demo1.vue

@ -0,0 +1,12 @@
<template>
<view>
</view>
</template>
<script>
</script>
<style>
</style>

5
pages/account/favorites.vue

@ -3,7 +3,7 @@
<view class="status_bar"></view>
<uni-nav-bar left-icon="left" :rightText="isDelete?'Done':'Delete'" title="Favorites" color="#000000" @clickLeft="back" @clickRight="$refs.alertDialog.open()"/>
<view class="wishlist">
<view class="wishlist_item" v-for="(item,index) in goodsList" :key="index" @click="goDetails(item.goods_id)">
<view class="wishlist_item" v-for="(item,index) in goodsList" :key="index" @click="goDetails(item)">
<view class="wishlist_item_img">
<image :src="item.goods_img" mode="" class="wishlist_item_img_goods"></image>
<image src="../../static/img/select.png" mode="" class="select" v-show="isDelete"></image>
@ -42,8 +42,9 @@
},
methods:{
goDetails(id){
uni.navigateTo({
url:"../productDetails/index?goods_id="+id
url:"../productDetails/index?goodid="+id.id
})
},
//

275
pages/account/index.vue

@ -1,10 +1,11 @@
<template>
<view>
<view class="status_bar"></view>
<!-- <view class="status_bar"></view> -->
<view class="account_info">
<image src="../../static/img/logo.png" mode="" class="header_img" v-show="!user_info.isLogin"></image>
<image :src="user_info.user_head?user_info.user_head:user_info.headicons[5]" mode="" class="header_img" v-if="user_info.isLogin"></image>
<view class="account_info " :style="{background:`url(${userbg})`}">
<image src="../../static/icon/nologin2.png" mode="" class="header_img" v-show="!user_info.isLogin"></image>
<image :src="user_info.user_head" mode="" class="header_img" v-show="user_info.isLogin"></image>
<!-- <image :src="user_info.user_head?user_info.user_head:user_info.headicons[5]" mode="" class="header_img" v-if="user_info.isLogin"></image> -->
<view class="info_name" v-if="!user_info.isLogin">
<navigator url="/pages/login/index" >
LOGIN / SIGUP>
@ -17,59 +18,59 @@
</view>
<view class="info_like">
<navigator url="/pages/account/myCoupons" class="info_like_item">
<text class="info_like_item_img">6</text>
<navigator :url="noLogin==0?'/pages/account/myCoupons':'../login/index'" class="info_like_item">
<text class="info_like_item_img">{{ hb_num }}</text>
<text class="info_like_item_span">Coupons</text>
</navigator>
<navigator url="/pages/account/pointsDetails" class="info_like_item">
<text class="info_like_item_img">25</text>
<navigator :url="noLogin==0?'/pages/account/pointsDetails':'../login/index'" class="info_like_item">
<text class="info_like_item_img">{{ count }}</text>
<text class="info_like_item_span">Points</text>
</navigator>
<navigator url="/pages/account/wishlist" class="info_like_item">
<image src="../../static/img/like.png" mode="" class="info_like_item_img"></image>
<navigator :url="noLogin==0?'/pages/account/wishlist':'../login/index'" class="info_like_item">
<image src="../../static/img/like_white.png" mode="" class="info_like_item_img"></image>
<text class="info_like_item_span">Wishlist</text>
</navigator>
<navigator url="/pages/account/favorites" class="info_like_item">
<image src="../../static/img/favorites.png" mode="" class="info_like_item_img"></image>
<navigator :url="noLogin==0?'/pages/account/favorites':'../login/index'" class="info_like_item">
<image src="../../static/img/favorites_white.png" mode="" class="info_like_item_img"></image>
<text class="info_like_item_span">Favorites</text>
</navigator>
</view>
</view>
<view class="order">
<navigator url="/pages/account/myOrders?scroll_active=0" class="order_title">My Orders</navigator>
<navigator url="/pages/account/myOrders?scroll_active=0" class="order_title">My Orders<view class="icon_right"><image mode="" src="../../static/img/right.png"></image></view></navigator>
<view class="order_info">
<navigator url="/pages/account/myOrders?scroll_active=1" class="order_info_item">
<navigator :url="noLogin==0?'/pages/account/myOrders?scroll_active=1':'../login/index'" class="order_info_item">
<image src="../../static/img/unpaid.png" mode="" class="info_img"></image>
<text>Unpaid</text>
</navigator>
<navigator url="/pages/account/myOrders?scroll_active=2" class="order_info_item">
<navigator :url="noLogin==0?'/pages/account/myOrders?scroll_active=2':'../login/index'" class="order_info_item">
<image src="../../static/img/Processing.png" mode="" class="info_img"></image>
<text>Processing</text>
</navigator>
<navigator url="/pages/account/myOrders?scroll_active=3" class="order_info_item">
<navigator :url="noLogin==0?'/pages/account/myOrders?scroll_active=3':'../login/index'" class="order_info_item">
<image src="../../static/img/Shipped.png" class="info_img" mode=""></image>
<text>Shipped</text>
</navigator>
<navigator url="/pages/account/myOrders?scroll_active=4" class="order_info_item">
<navigator :url="noLogin==0?'/pages/account/myOrders?scroll_active=4':'../login/index'" class="order_info_item">
<image src="../../static/img/Returns.png" class="info_img" mode=""></image>
<text>Returns</text>
<text>Completed</text>
</navigator>
</view>
</view>
<view class="order">
<view class="order_title">My Service</view>
<view class="order_info">
<navigator url="/pages/account/message" class="order_info_item">
<image src="../../static/img/msg.png" class="info_img" mode=""></image>
<text>Message</text>
<view class="order_info" >
<navigator v-for="(item,index) in indexDate.blocks" :key="item.block_title" @click="gotopage(item.block_title,item.block_link)" class="order_info_item">
<image :src="item.block_pic" class="info_img" mode=""></image>
<text>{{ item.block_title }}</text>
</navigator>
<navigator url="/pages/account/myReview" class="order_info_item">
<!-- <navigator :url="noLogin==0?'/pages/account/myReview':'../login/index'" class="order_info_item">
<image src="../../static/img/My Review.png" class="info_img" mode=""></image>
<text>My Review</text>
</navigator>
<navigator url="/pages/account/address" class="order_info_item">
<navigator :url="noLogin==0?'/pages/account/address':'../login/index'" class="order_info_item">
<image src="../../static/img/My Address.png" class="info_img" mode=""></image>
<text>My Address</text>
</navigator>
@ -91,14 +92,14 @@
</view>
<navigator url="/pages/account/settings" class="order_info_item">
<!-- <view class="order_info_item"> -->
<image src="../../static/img/Setting.png" class="info_img" mode=""></image>
<text>Setting</text>
<!-- </view> -->
</navigator>
</navigator> -->
</view>
<image src="../../static/img/mine_banner.png" class="mine_banner" mode=""></image>
<scroll-view scroll-x="true"><image :src="item.block_pic" v-for="(item,index) in Imglist" :key="item.block_pic"class="mine_banner" mode="" @click="imgto(item)"></image></scroll-view>
<template v-if="catList.length!=0">
<view class="order_title">Recommend</view>
<scroll-view class="spike1" scroll-x="true" :show-scrollbar="false">
@ -107,7 +108,7 @@
<image :src="item.thumb" mode=""></image>
</view>
<view class="spike1_item_bottom1">
<view class="spike1_item_text">{{item.name}}</view>
<!-- <view class="spike1_item_text">{{item.name}}</view> -->
<text class="spike1_item_text1">US${{item.is_promote==0? item.shop_price :item.promote_price}}</text>
</view>
</view>
@ -132,15 +133,120 @@
_action:'getgoods',
page_index:1,
page_size:30,
type:'best'
type:'hot'
},
catList:[]
catList:[],
hb_num:0,
noLogin:-1,
isLogin:-1,
Imglist:[],
count:0,
backButtonPress:0,
indexDate:[],
userbg:''
}
},
onBackPress(options) {
this.backButtonPress++;
if (this.backButtonPress > 1) {
plus.runtime.quit();
} else {
plus.nativeUI.toast('Click again to exit');
}
setTimeout(function() {
this.backButtonPress = 0;
}, 1000);
return true;
},
methods:{
goDetails(id){
uni.navigateTo({
url:'/pages/productDetails/index?goods_id='+id
url:'/pages/productDetails/index?goodid='+id
})
},
gotopage(title,url){
const a = url.indexOf('?')
console.log(a)
const s = url.substring(17);
console.log(title)
console.log(url)
if(this.isLogin == 1 &&url==''){
if(title.includes('Setting')){
uni.navigateTo({
url:'./settings'
})
}
if(title.includes('Review')){
uni.navigateTo({
url:'./myReview'
})
}
}
else if(this.isLogin == 1 &&url.includes('dope.addressmanage')){
uni.navigateTo({
url:'./address'
})
}
else if(this.isLogin == 1 &&url.includes('meiqu.meiqu')){
uni.navigateTo({
url:'./message'
})
}
else if(url.includes('html')){
plus.runtime.openURL(url)
}
else if(url.includes('dope.adspecial')){
uni.navigateTo({
url:'../specialTitle/index'+s
})
}
else{
uni.navigateTo({
url:'../login/index'
})
}
},
getList(){
this.isLogin = uni.getStorageSync('isLogin')
let data={_action:'getuserbonus'}
defaultRequest(data).then(res=>{
console.info(res,)
if(res.error==0&&this.isLogin == 1){
this.hb_num=res.data.length
}
})
defaultRequest({
_action:'getusersummarydata'
}).then(res =>{
if(res.error ==0){
this.count = res.data.user_info.rank_points
}
})
},
getImg(){
let data ={
_action:'getpagedata',
pagecode:'006-PERSONALCENTERPAGE'
}
let imglist
defaultRequest(data).then( res =>{
if(res.error ==0){
console.log(res,'\\')
res.data.zones.map(item =>{
if(item.zone_code== 'CBANNER'){
imglist = item
this.Imglist = imglist.blocks
}
if(item.zone_code =='USERBG'){
this.userbg = item.blocks[0].block_pic
}
})
}
})
},
//
@ -158,54 +264,97 @@
getIndex(){
let data={_action:'getpagedata',pagecode:'006-PERSONALCENTERPAGE'}
defaultRequest(data).then(res=>{
console.info(res)
console.info(res.data.zones,'页面配置')
if(res.error==0){
// this.indexDate=res.data
// res.data.zones.map(item=>{
// if(item.zone_code=='ICON'){
// item.content=''
// this.info.push(item)
// }
// })
res.data.zones.map( item =>{
if(item.zone_code == 'service'){
this.indexDate = item
}
})
console.log(this.indexDate,'页面')
}
})
},
getUserInfo(){
let data={_action:'getinfo'}
defaultRequest2(data).then(res=>{
console.info(res)
defaultRequest(data).then(res=>{
// console.info(res,'pppppp')
if(res.error==0){
res.data.isLogin=true
this.user_info=res.data
uni.setStorageSync('user_info',this.user_info)
}else{
res.data.isLogin=true
// this.user_info=res.data
this.noLogin = 0
this.hb_num = 0
uni.setStorageSync('user_info',res.data)
this.user_info=uni.getStorageSync('user_info')
console.log(this.user_info)
}else if(res.error ==-1){
this.noLogin = 1
}
})
},
imgto(item){
const i = item.block_link.indexOf('?')
const url = item.block_link.substring(i)
console.log(item.block_link)
if(item.block_link.includes('dope.dope'))
{
uni.navigateTo({
url:'../productDetails/index'+url
})
}
}
},
onShow() {
this.user_info=uni.getStorageSync('user_info')
if(this.user_info){
this.getUserInfo()
onLoad(e) {
this.isLogin = uni.getStorageSync('isLogin')
if(this.isLogin==0){
this.user_info =' '
}else{
this.getUserInfo()
}
// this.getIndex()
this.getIndex()
// this.getUserInfo()
this.getCatList()
this.getList()
this.getImg()
},
onShow() {
this.isLogin = uni.getStorageSync('isLogin')
uni.startPullDownRefresh()
},
onPullDownRefresh() {
this.isLogin = uni.getStorageSync('isLogin')
console.log(this.isLogin)
if(this.isLogin==0){
this.user_info =' '
}else{
this.getUserInfo()
}
setTimeout(function() {
uni.stopPullDownRefresh();
}, 500);
},
}
</script>
<style lang="scss" scoped>
.account_info{
padding: 0 58rpx;
padding-top: 50rpx;
padding-bottom: 30rpx;
padding: 0 50rpx;
padding-top: 66rpx;
padding-bottom: 40rpx;
border-bottom: 13.33rpx #F7F7F7 solid;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
// background: url("@/static/icon/user_bg.png");
background-size: 100%;
.header_img{
width: 144rpx;
@ -217,6 +366,7 @@
.info_name{
font-size: 36rpx;
font-weight: bold;
color: #F7F7F7;
margin-bottom: 74.67rpx;
}
.info_like{
@ -224,6 +374,7 @@
justify-content: space-between;
align-items: center;
width: 100%;
color: #F7F7F7;
.info_like_item{
font-size: 40rpx;
font-weight: 400;
@ -253,7 +404,18 @@
.order_title{
font-size: 26.67rpx;
font-weight: bold;
font-weight: bold;
display: flex;
justify-content: space-between;
.icon_right{
height: 25rpx;
width: 25rpx;
image{
height: 100%;
width: 100%;
}
}
}
.order_info{
width: 100%;
@ -325,12 +487,13 @@
}
.spike1_item_text1{
// color: #9D9D9D;
text-align: center;
font-size: 27.33rpx !important;
font-weight: bold !important;
}
}
.spike1_item_bottom1{
padding-left: 9.33rpx;
padding-left: 80.77rpx;
margin-top: 19.33rpx;
font-weight: bold;

107
pages/account/message.vue

@ -1,24 +1,22 @@
<template>
<view>
<uni-nav-bar left-icon="left" :statusBar="true" title="Message"
color="#000000" rightIcon="info" @clickLeft="back" :border="false"/>
color="#000000" @clickLeft="back" :border="false"/>
<view class="body">
<view class="msg_item" v-for="(item,index) in list" :key="index">
<view class="msg_time">{{item.start_time}}~{{item.end_time}}</view>
<view class="msg_title">{{item.act_name}}</view>
<view class="msg_content">{{item.act_range}}</view>
<!-- <view class="msg_img"></view> -->
<view class="msg_item" v-for="(item,index) in list.blocks" :key="item.block_title" @click="gotopage(item)">
<view class="msg_time">{{item.block_avaiable_from | Mes}}</view>
<view class="msg_title">{{item.block_title}}</view>
<!-- <view class="msg_content">{{item.}}</view> -->
<view class="msg_img" v-if="item.block_pic"><image :src="item.block_pic" class="imagesize"></image></view>
</view>
<!-- <view class="msg_item">
<view class="msg_time">21/04/2022 14:42:31</view>
<view class="msg_title">Message heading</view>
<view class="msg_item" v-for="(item,index) in app_Mes" :key ="item.id">
<view class="msg_time">{{ item.add_time | Mes}}</view>
<view class="msg_title">{{ item.mtitle }}</view>
<view class="msg_content">
estimated to be deliverd on estimated to be deliverd on estim
ated to be deliverd on estimated to be deliverd on
</view>
</view>
<view class="msg_item">
<!-- <view class="msg_item">
<view class="msg_time">21/04/2022 14:42:31</view>
<view class="msg_title">Message heading</view>
<view class="msg_content">
@ -37,25 +35,85 @@
export default {
data() {
return {
list:[]
list:[],
myMes:{
_action:'getmessagelist',
type:0,
// importance:'',
// label:'',
page_index:1,
page_size:10
},
app_Mes:[]
}
},
filters:{
Mes(e){
let str = e
str=str.substring(0,10);
const year = str.substring(0,4)
let date = str.substring(5,10)
date = date.replace('-','/')
let time = date + '/'+year
return time
}
},
methods:{
getList(){
let data={_action:'getfavourableactivities'}
defaultRequest(data).then(res=>{
console.info(res)
if(res.error==0){
this.list=res.data
// getList(){
// let data={_action:'getfavourableactivities'}
// defaultRequest(data).then(res=>{
// console.info(res)
// if(res.error==0){
// // this.list=res.data
// }
// })
// },
getMes(){
let data ={ _action:'getpagedata',pagecode:'006-PERSONALCENTERPAGE'
}
defaultRequest(data).then(res =>{
let list = res.data.zones
list.map(item =>{
if(item.zone_code =='XIAOXI'){
this.list = item
}
})
console.log(this.list.blocks[0].block_avaiable_from)
let str = this.list.blocks[0].block_avaiable_from
})
defaultRequest(this.myMes).then(res =>{
console.log(res)
if(res.error ==0){
this.app_Mes = res.data.message_list
}
})
},
gotopage(item){
console.log(item.block_link)
const i = item.block_link.indexOf('?')
const src = item.block_link.substring(i)
if(item.block_link.includes('goodslist')){
uni.navigateTo({
url:'../category/productList'+src
})
}else{
uni.navigateTo({
url:'../productDetails/index'+src
})
}
},
back(){
uni.navigateBack()
}
},
onLoad() {
this.getList()
// this.getList()
this.getMes()
}
}
</script>
@ -92,12 +150,19 @@
}
.msg_img{
margin-top: 37.33rpx;
background-color: #FEF6F4;
width: 100%;
height: 281.33rpx;
background-color: #ffdcd3 ;
}
}
.msg_item:last-child{
border-bottom: none;
}
.imagesize{
width: 100%;
height: 100%;
}
</style>

30
pages/account/myOrders.vue

@ -37,7 +37,7 @@
<view class="left_info">
<view class="info_name">{{item1.goods_name}}</view>
<view class="left_info_bottom">
<view class="info_lable">
<view class="info_lable" v-if="item1.goods_attr">
<text>{{item1.goods_attr |goodsAttr}}</text>
<image src="/static/img/bottom.png" mode=""></image>
</view>
@ -63,10 +63,10 @@
<view class="good_price">total:US${{item.total_fee_o}}</view>
<view class="good_points" v-if="item.pay_status_code==0 && item.order_status_code==0">
<!-- <view class="good_points" v-if="item.pay_status_code==0 && item.order_status_code==0">
<image src="/static/img/gantan1.png" mode=""></image>
<text>Reward 10 points</text>
</view>
</view> -->
<view class="order_button">
<!-- 待支付订单 -->
<template v-if="item.pay_status_code==0 && item.order_status_code==0">
@ -114,7 +114,7 @@
<view class="left_info">
<view class="info_name">{{item1.goods_name}}</view>
<view class="left_info_bottom">
<view class="info_lable">
<view class="info_lable" v-if="item1.goods_attr ">
<text>{{item1.goods_attr |goodsAttr}}</text>
<image src="/static/img/bottom.png" mode=""></image>
</view>
@ -138,10 +138,10 @@
</view>
</template>
<view class="good_price">total:US${{item.total_fee_o}}</view>
<view class="good_points" v-if="item.pay_status_code==0 && item.order_status_code==0">
<!-- <view class="good_points" v-if="item.pay_status_code==0 && item.order_status_code==0">
<image src="/static/img/gantan1.png" mode=""></image>
<text>Reward 10 points</text>
</view>
</view> -->
<view class="order_button">
<button class="cancel" @click.stop="openTips(item.order_id,0)">CANCEL ORDER</button>
<button class="pay" @click.stop="payNow(item.order_id,0)">PAY NOW</button>
@ -175,7 +175,7 @@
<view class="left_info">
<view class="info_name">{{item1.goods_name}}</view>
<view class="left_info_bottom">
<view class="info_lable">
<view class="info_lable" v-if="item1.goods_attr">
<text>{{item1.goods_attr |goodsAttr}}</text>
<image src="/static/img/bottom.png" mode=""></image>
</view>
@ -497,7 +497,7 @@
<view class="left_info">
<view class="info_name">{{item.goods_name}}</view>
<view class="left_info_bottom">
<view class="info_lable">
<view class="info_lable" v-if="item.goods_attr">
<text>{{item.goods_attr |goodsAttr}}</text>
<image src="/static/img/bottom.png" mode=""></image>
</view>
@ -523,7 +523,7 @@
export default {
data() {
return {
scrollList:[{text:'All'},{text:'Unpaid'},{text:'Processing'},{text:'Shipped'},{text:'Returns'},{text:'Completed'},{text:'Closed'}],
scrollList:[{text:'All'},{text:'Unpaid'},{text:'Processing'},{text:'Shipped'},{text:'Completed'},{text:'Closed'}],
scroll_active:0,
isList:true,
orderList:[],
@ -553,7 +553,7 @@
//
goGoodsDetails(id){
uni.navigateTo({
url:'/pages/productDetails/index?goods_id='+id
url:'/pages/productDetails/index?goodid='+id
})
},
//
@ -607,6 +607,15 @@
},
//
getPayDate(){
if(this.pay_index ==0){
let data={_action:'payorder',order_id:this.payQuery.order_id,order_type:'GOODSBUY',payment_method:'paypal'}
defaultRequest2(data).then(res=>{
console.info(res,'支付')
if(res.error == 0){
plus.runtime.openURL(res.data.prepay_data.checkoutnow_url)
}
})
}else{
defaultRequest2(this.payQuery).then(res=>{
console.info(res)
if(res.error==0){
@ -632,6 +641,7 @@
});
}
})
}
},
payNow(id,type){
this.payQuery.order_id=id

80
pages/account/myProfile.vue

@ -5,7 +5,7 @@
<text>Photo</text>
<view class="profile_item_right">
<image src="../../static/img/logo.png" mode="" class="head_img" v-show="!user_info.isLogin"></image>
<image :src="user_info.user_head?user_info.user_head:user_info.headicons[5]" mode="" class="head_img" v-if="user_info.isLogin"></image>
<image :src="user_info.user_head" mode="" class="head_img" ></image>
<image src="../../static/img/right1.png" alt="" class="right_img"></image>
</view>
</view>
@ -20,7 +20,8 @@
<text>Email</text>
<view class="profile_item_right">
<image src="../../static/img/gantan.png" alt="" class="right_img1" v-if="user_info.is_validated==0"></image>
<text>{{user_info.is_validated==0?'unverified':user_info.email}}</text>
<image src="../../static/img/qr.png" alt="" class="right_img1" v-if="user_info.is_validated!=0"></image>
<text>{{user_info.is_validated==0?'Unverified':''+user_info.email}}</text>
<image src="../../static/img/right1.png" alt="" class="right_img"></image>
</view>
</view>
@ -34,20 +35,29 @@
</navigator>
<view class="profile_item ">
<text>Ship to</text>
<view class="profile_item_right" @click="gotoaddress">
<!-- <text>{{addressDate.country_name || 'United States'}}</text> -->
<text>{{ country }}</text>
<image src="../../static/img/right1.png" alt="" class="right_img"></image>
</view>
</view>
<navigator url="/pages/account/deleteCount" >
<view class="profile_item ">
<text>Delete account</text>
<view class="profile_item_right">
<text>{{addressDate.country_name || 'United States'}}</text>
<image src="../../static/img/right1.png" alt="" class="right_img"></image>
</view>
</view>
</navigator>
<uni-popup ref="inputDialog" type="dialog">
<uni-popup-dialog ref="inputClose" mode="input" title="输入内容"
placeholder="请输入姓名" @confirm="dialogInputConfirm"></uni-popup-dialog>
<uni-popup-dialog ref="inputClose" mode="input" title="Edit Name" cancelText="Cancel" confirmText="OK"
placeholder="please enter your name" @confirm="dialogInputConfirm"></uni-popup-dialog>
</uni-popup>
</view>
</template>
<script>
import {defaultRequest2} from '../../api/index.js'
import {defaultRequest,defaultRequest2} from '../../api/index.js'
export default {
data() {
return {
@ -56,9 +66,11 @@
},
query:{
_action:'updateinfo',
nickname:''
nickname:'',
user_head:''
},
addressDate:{}
addressDate:{},
country:''
}
},
methods:{
@ -68,6 +80,14 @@
url:'./changeImg'
})
},
getaddress(){
let data ={
_action:'getregions',parent_region_id:0
}
defaultRequest(data).then( res =>{
console.log(JSON.parse(res),'p')
})
},
//
getDefaultAddress(){
let data={_action:'getdefaultconsignee'}
@ -78,35 +98,54 @@
}
})
},
getUserInfo(){
let data={_action:'getinfo'}
defaultRequest2(data).then(res=>{
console.info(res)
console.info(res,'pph')
if(res.error==0){
res.data.isLogin=true
res.data.isLogin=true
this.user_info=res.data
uni.setStorageSync('user_info',this.user_info)
}else{
// this.user_info=uni.getStorageSync('user_info')
}
else{
this.user_info=uni.getStorageSync('user_info')
}
})
},
dialogInputConfirm(val){
this.query.nickname=val
this.query.user_head = this.user_info.user_head
defaultRequest2(this.query).then(res=>{
console.info(res)
console.info(res,'///')
if(res.error==0){
uni.showToast({
title:'修改成功',
title:'OK',
icon:'none'
})
this.getUserInfo()
}
})
}
},
gotoaddress(){
uni.navigateTo({
url:'../index/address'
})
},
},
onLoad(e) {
console.log(e,'address')
this.country=uni.getStorageSync('country')
console.log(this.country)
},
onShow() {
this.user_info=uni.getStorageSync('user_info')
this.user_info=uni.getStorageSync('user_info')
console.log(this.user_info,'ppppp')
this.getUserInfo()
this.getDefaultAddress()
}
@ -123,14 +162,16 @@
<style lang="scss" scoped>
.profile_item{
width: 100%;
width: 97%;
display: flex;
margin-right: 3%;
align-items: center;
justify-content: space-between;
font-size: 24rpx;
font-weight: bold;
padding: 40rpx 0;
padding-right: 33.33rpx;
padding: 40rpx 0rpx;
padding-right: 30.33rpx;
border-bottom: 1.33rpx #ECECEC solid;
box-sizing: border-box;
@ -156,7 +197,8 @@
}
.profile_item1{
padding: 17.33rpx 0;
padding: 17.33rpx 0rpx;
padding-right: 33.33rpx;
}
</style>

2
pages/account/myReview.vue

@ -48,7 +48,7 @@
},
onLoad(e) {
this.query.goods_id=e.goods_id
// this.getList()
this.getList()
}
}
</script>

8
pages/account/new.vue

@ -0,0 +1,8 @@
<template>
</template>
<script>
</script>
<style>
</style>

27
pages/account/pointsDetails.vue

@ -1,6 +1,6 @@
<template>
<view>
<uni-nav-bar left-icon="left" title="Points Details" color="#000000" rightIcon="info" @clickLeft="back" :border="false" :statusBar="true" />
<uni-nav-bar left-icon="left" right-icon="info"title="Points Details" color="#000000" @clickRight="goto()" @clickLeft="back" :border="false" :statusBar="true" />
<view class="points">
<view class="points_item" v-for="(item,index) in 10" :key="index">
<view class="points_item_title">
@ -14,16 +14,39 @@
</template>
<script>
import {defaultRequest} from '../../api/index.js'
export default {
data() {
return {
query:{
_action:'getpagedata',pagecode:'006-PERSONALCENTERPAGE'
}
}
},
methods:{
back(){
uni.navigateBack()
},
getUserinfo(){
let data ={
_action:'getuseraccountlog',page_index:'1',page_size:'20'
}
defaultRequest(data).then( res =>{
console.log( res,'pppp')
})
},
goto(){
console.log('///////')
uni.navigateTo({
url:'../specialTitle/index?id='+'POINTSRULE'
})
}
},
onLoad() {
this.getUserinfo()
defaultRequest(this.query).then( res => {
console.log(res,'p')
})
}
}
</script>

49
pages/account/settings.vue

@ -1,22 +1,22 @@
<template>
<view>
<view class="profile_item ">
<!-- <view class="profile_item ">
<text>Country</text>
<image src="../../static/img/right1.png" mode="" class="right_img"></image>
</view>
<view class="profile_item ">
<text>Language</text>
<image src="../../static/img/right1.png" mode="" class="right_img"></image>
</view>
<view class="profile_item ">
</view> -->
<view class="profile_item "@click="gotopage(1)">
<text>My account</text>
<image src="../../static/img/right1.png" mode="" class="right_img"></image>
</view>
<view class="profile_item ">
<view class="profile_item "@click="gotopage(2)">
<text>Privacy policy</text>
<image src="../../static/img/right1.png" mode="" class="right_img"></image>
</view>
<view class="profile_item ">
<view class="profile_item "@click="gotopage(3)">
<text>Legal</text>
<image src="../../static/img/right1.png" mode="" class="right_img"></image>
</view>
@ -25,7 +25,7 @@
</view>
<view class="edition">
<view class="edition_title">CHIC BUYER</view>
<text>Version 1.0</text>
<text>Version {{appver}}</text>
</view>
</view>
</template>
@ -35,7 +35,7 @@
export default {
data() {
return {
appver:''
}
},
methods:{
@ -45,12 +45,42 @@
console.info(res)
if(res.error==0){
uni.clearStorageSync()
uni.reLaunch({
uni.setStorageSync('isLogin',0)
uni.setStorageSync('user_info',' ')
// uni.reLaunch({
// url:'../login/index'
// })
uni.navigateTo({
url:'../login/index'
})
}
})
},
gotopage(a){
if(a==1){
uni.navigateTo({
url:'./myProfile'
})
}else if(a==2) {
var urlStr = encodeURI("https://en.meixx.com/help/privacy.html")
// plus.runtime.openURL(urlStr);
uni.navigateTo({
url:'../order/paypalWebview?src='+urlStr
})
}
else{
var urlStr2 = encodeURI("https://dopeplus.com/help/Terms.html")
// plus.runtime.openURL(urlStr);
uni.navigateTo({
url:'../order/paypalWebview?src='+urlStr2
})
}
}
},
onLoad() {
let v = uni.getStorageSync('appdata')
console.log(v)
this.appver = v.appver
}
}
</script>
@ -107,8 +137,9 @@
position: fixed;
bottom: 0;
width: 100%;
text-align: center;
line-height: 50rpx;
font-size: 20rpx;
text-align: center;
font-weight: bold;
margin-bottom: 112rpx;
.edition_title{

45
pages/account/wishlist.vue

@ -1,32 +1,32 @@
<template>
<view class="wishlist_body">
<view class="status_bar"></view>
<uni-nav-bar left-icon="left" :rightText="isDelete?'Done':'Delete'" title="Wishlist" color="#000000" @clickLeft="back" @clickRight="isDelete=true"/>
<uni-nav-bar left-icon="left" :rightText="isDelete?'Done':'Delete'" title="Wishlist" color="#000000" @clickLeft="back" @clickRight="clickRight()"/>
<view class="wishlist">
<view class="wishlist_item" v-for="(item,index) in goodsList" :key="index" @click="isDelete?selectGoods(item.goods_id): goDetails(item.goods_id)">
<view class="wishlist_item_img">
<view class="wishlist_item" v-for="(item,index) in goodsList" :key="index" >
<view class="wishlist_item_img"@click="isDelete?selectGoods(item.goods_id): goDetails(item.goods_id)">
<image :src="item.goods_img" mode="" class="wishlist_item_img_goods"></image>
<image src="../../static/img/select1.png" mode="" class="select" v-if="isDelete && item.goods_id==goods_id || isAll"></image>
<image src="../../static/img/select.png" mode="" class="select" v-else-if="isDelete && item.goods_id!=goods_id"></image>
</view>
<view class="wishlist_item_bottom">
<text>US${{item.promote_price?item.promote_price:item.shop_price}}</text>
<image src="../../static/img/cart2.png" mode="" class="wishlist_item_bottom_icon"></image>
<image src="../../static/img/delete1.png" mode="" class="wishlist_item_bottom_icon" @click="removeL(item)"></image>
</view>
</view>
</view>
<view class="wishlist_foot" v-show="isDelete">
<view class="wishlist_foot_left" @click="isAll=true">
<view class="wishlist_foot_left" @click="isAll=!isAll">
<image src="../../static/img/select2.png" mode="" v-if="!isAll"></image>
<image src="../../static/img/select1.png" mode="" v-else></image>
<text>All</text>
</view>
<view class="wishlist_foot_right">
<button :disabled="goods_id==''" @click="$refs.alertDialog.open()" :class="goods_id==''?'':'wishlist_foot_right_button'">DELETE</button>
<button :disabled="!isAll" @click="$refs.alertDialog.open()" :class="isAll?'wishlist_foot_right_button':''">DELETE</button>
</view>
</view>
<uni-popup ref="alertDialog" type="dialog">
<uni-popup-dialog type="error" cancelText="Close" confirmText="Cancel" title="Tips" content="Cancel the collection of this product?"
<uni-popup-dialog type="error" cancelText="Close" confirmText="Sure" title="Tips" content="Cancel the collection of this product?"
@confirm="removeLike()" ></uni-popup-dialog>
</uni-popup>
</view>
@ -50,12 +50,29 @@
}else{
this.goods_id=id
}
if(this.isAll ==true){
this.isDelete=true
}
},
removeL(e){
console.log(e.goods_id)
let data={_action:'unsetfaviouritegoods',goods_id:e.goods_id}
defaultRequest2(data).then(res=>{
console.info(res)
if(res.error==0){
uni.showToast({
title:'ok!',
icon:'none'
})
this.getList()
}
})
},
goDetails(id){
uni.navigateTo({
url:"../productDetails/index?goods_id="+id
url:"../productDetails/index?goodid="+id
})
},
getList(){
@ -91,12 +108,22 @@
title:res.message,
icon:'none'
})
this.isAll = false
this.isDelete = false
this.getList()
}
})
},
back(){
uni.navigateBack()
},
clickRight(){
// this.isDelete=!this.isDelete
// this.isAll=false
if(this.goodsList){
this.isAll=false
this.isDelete=!this.isDelete
}
}
},
onLoad() {

450
pages/category/index.vue

@ -1,6 +1,5 @@
<template>
<view class="body">
<view class="u-wrap">
<view class="search">
<view class="status_bar"></view>
<view class="search1">
@ -15,7 +14,7 @@
<image src="../../static/img/like.png" mode=""></image>
</navigator>
<navigator url="/pages/shippingCart/index" open-type="switchTab">
<uni-badge :text="5" type="error" absolute="rightTop">
<uni-badge :text="sum" type="error" absolute="rightTop">
<image src="../../static/img/shop_cart.png" mode=""></image>
</uni-badge>
</navigator>
@ -23,51 +22,118 @@
</view>
</view>
<view class="category">
<view class="category_left">
<view class="category_left_item" :class="categoryIndex==item.cat_id?'categoryActive':''" v-for="(item,index) in categoryList" :key="item.cat_id"
@click="changeCategory(item.cat_id)">
{{item.cat_name}}
<view class="u-menu-wrap">
<scroll-view scroll-y scroll-with-animation class="u-tab-view menu-scroll-view category_left" :scroll-top="scrollTop"
:scroll-into-view="itemId">
<view v-for="(item,index) in categoryList" :key="item.cat_name" class="u-tab-item" :class="[current == index ? 'u-tab-item-active' : '']"
@tap.stop="swichMenu(index)">
<text class="u-line-1">{{item.cat_name}}</text>
</view>
</view>
<view class="good_body">
<view class="good_title">PICKS FOR YOU</view>
<view class="good_content" v-for="(item,index) in categoryList" :key="item.cat_id" v-show="categoryIndex==item.cat_id">
<view class="good_item" v-for="(item1,index1) in item.subcategories" :key="item1.cat_id" @click="goPets(item1.cat_id)">
<img :src="item1.first_goods_thumb" alt="" class="good_item_img">
<text>{{item1.cat_name}}</text>
</scroll-view>
<scroll-view :scroll-top="scrollRightTop" scroll-y scroll-with-animation class="right-box" @scroll="rightScroll">
<view class="page-view">
<view class="class-item" :id="'item' + index" v-for="(item , index) in categoryList" :key="item.cat_name">
<view class="item-title">
<text>{{item.cat_name}}</text>
</view>
<view class="good_content">
<view class="good_item" v-for="(item1, index1) in item.subcategories" :key="index1">
<view @click="toDetial(item1)">
<view class="good_item_img"><image :src="item1.first_goods_thumb" alt=""></view>
</view>
<text>{{item1.cat_name}}</text>
</view>
</view>
</view>
</view>
<!-- <view class="good_title">YOU MAY ALSO LIKE</view>
<view class="good_content">
<view class="good_item" v-for="(item,index) in 5" :key="index">
<view class="good_item_img"></view>
<text>Women Drese</text>
</view>
</view> -->
</view>
</scroll-view>
</view>
</view>
</template>
<script>
import {defaultRequest} from '../../api/index.js'
import {defaultRequest,defaultRequest4} from '../../api/index.js'
export default {
data() {
return {
categoryIndex:0,
categoryList:['CHOICE','WOMEN','MEN','KIDS','PETS','SWIMWEAR','LINGERUE&LOUNGEAR','DENIM&JEANS','ACTIVEWEAR','BEAUTY','SHOES']
scrollTop: 0, //tab
oldScrollTop: 0,
current: 0, //
menuHeight: 0, //
menuItemHeight: 0, // item
itemId: '', // scroll-viewid
tabbar: [],
menuItemPos: [],
arr: [],
scrollRightTop: 0, // scroll-view
timer: null, //
categoryList:[],
sum:0,
backButtonPress:0,
homeIndex: 0
}
},
methods:{
changeCategory(i){
this.categoryIndex=i
onShow() {
this.sum =0
this.getList()
this.getCartNum()
uni.showTabBar()
},
onLoad() {
this.getList()
this.getCartNum()
},
onReady() {
this.getMenuItemTop()
},
onBackPress(options) {
this.backButtonPress++;
if (this.backButtonPress > 1) {
plus.runtime.quit();
} else {
plus.nativeUI.toast('Click again to exit');
}
setTimeout(function() {
this.backButtonPress = 0;
}, 1000);
return true;
},
methods: {
//
async swichMenu(index) {
if(this.arr.length == 0) {
await this.getMenuItemTop();
}
if ( this.current === index) return;
// this.scrollRightTop = this.oldScrollTop;
this.scrollRightTop = this.arr[index];
// this.$nextTick(function(){
// this.scrollRightTop = this.arr[index];
this.current = index;
// this.leftMenuStatus(index);
// })
},
getCartNum(){
let data={_action:'getcartgoods'}
defaultRequest(data).then(res=>{
console.info(res)
if(res.error==0){
this.sum = res.data.goods_list.length
console.log(this.sum,'////')
// uni.setStorageSync('cartSum',this.sum)
}
})
},
goPets(id){
toDetial(item){
console.log(item)
uni.navigateTo({
url:"productList?cat_id="+id+'&type=0'
url:"../category/productList?typethree="+item.cat_id+'&type=0'+'&title='+item.cat_name
})
},
getList(){
@ -76,38 +142,137 @@
console.info(res)
if(res.error==0){
this.categoryList=res.data
console.log(res.data,'////')
this.categoryIndex=res.data[0].cat_id
}
})
},
//
getElRect(elClass, dataVal) {
new Promise((resolve, reject) => {
const query = uni.createSelectorQuery().in(this);
query.select('.' + elClass).fields({
size: true
}, res => {
// resnull
if (!res) {
setTimeout(() => {
this.getElRect(elClass);
}, 10);
return;
}
this[dataVal] = res.height;
resolve();
}).exec();
})
},
//
async observer() {
this.tabbar.map((val, index) => {
let observer = uni.createIntersectionObserver(this);
// scroll-viewiditemxxright-box
// .right-box
observer.relativeTo('.right-box', {
top: 0
}).observe('#item' + index, res => {
if (res.intersectionRatio > 0) {
let id = res.id.substring(4);
this.leftMenuStatus(id);
}
})
})
},
//
async leftMenuStatus(index) {
// console.log(index,'index')
if (index == this.current) return;
this.current = index
// 0
if (this.menuHeight == 0 || this.menuItemHeight == 0) {
await this.getElRect('menu-scroll-view', 'menuHeight');
await this.getElRect('u-tab-item', 'menuItemHeight');
}
// item
this.scrollTop = index * this.menuItemHeight + this.menuItemHeight / 2 - this.menuHeight / 2;
},
// item
getMenuItemTop() {
new Promise(resolve => {
let selectorQuery = uni.createSelectorQuery();
selectorQuery.selectAll('.class-item').boundingClientRect((rects) => {
// rects[](selectAll)
if(!rects.length) {
setTimeout(() => {
this.getMenuItemTop();
}, 10);
return ;
}
rects.forEach((rect) => {
// rects[0].top()
this.arr.push(rect.top - rects[0].top);
resolve();
})
}).exec()
})
},
//
async rightScroll(e) {
// this.current = 0
this.oldScrollTop = e.detail.scrollTop;
// if(this.arr.length == 0) {
// await this.getMenuItemTop();
// }
if(this.timer) return ;
if(!this.menuHeight) {
await this.getElRect('menu-scroll-view', 'menuHeight');
}
setTimeout(() => { //
this.timer = null;
// scrollHeight
let scrollHeight = e.detail.scrollTop + this.menuHeight / this.categoryList.length;
for (let i = 0; i < this.arr.length; i++) {
let height1 = this.arr[i];
let height2 = this.arr[i + 1];
// this.scrollRightTop = this.arr[i];
// height2
if (!height2 || scrollHeight >=height1 && scrollHeight < height2) {
this.leftMenuStatus(i);
return ;
}
}
}, 10)
}
},
onShow() {
this.getList()
}
}
</script>
<style lang="scss">
page{
padding-top: 200rpx;
height: 100%;
}
</style>
<style lang="scss" scoped>
.body{
height: 100%;
.u-wrap {
height: calc(100vh);
/* #ifdef H5 */
height: calc(100vh - var(--window-top));
/* #endif */
display: flex;
flex-direction: column;
}
.search{
width: 100%;
background-color: white;
background-color:#fff;
box-sizing: border-box;
padding: 33.33rpx 26.67rpx;
position: fixed;
top: 0;
z-index: 99;
border-bottom: 1px solid #F5F6FA;
// border-bottom: 1px solid #F5F6FA;
.search1{
display: flex;
@ -148,67 +313,144 @@
}
}
.category{
.u-menu-wrap {
flex: 1;
height: 100%;
display: flex;
overflow: hidden;
margin-top: 185rpx;
}
.category_left{
height: 100%;
// background-color: #F5F6FA;
width: 197.33rpx;
}
.u-tab-view {
width: 200rpx;
height: 100%;
}
.u-tab-item {
width: 197.33rpx;
padding: 0 18rpx;
height: 94rpx;
font-size: 28.67rpx;
font-weight: bold;
box-sizing: border-box;
font-family: PingFang SC;
display: flex;
align-items: center;
word-wrap: break-word;
word-break: break-all;
}
.u-tab-item-active {
position: relative;
font-size: 26rpx;
font-weight: 600;
background-color: black;
color: white;
}
.u-tab-item-active::before {
content: "";
position: absolute;
height: 32rpx;
left: 0;
top: 39rpx;
}
.u-tab-view {
height: 100%;
}
.right-box {
background-color: rgb(250, 250, 250);
}
.page-view {
padding: 16rpx;
}
.class-item {
margin-bottom: 30rpx;
background-color: #fff;
padding: 16rpx;
border-radius: 8rpx;
}
.class-item:last-child {
min-height: 100vh;
}
.item-title {
font-size: 26rpx;
font-weight: bold;
margin-bottom: 20rpx;
}
.item-menu-name {
font-weight: normal;
font-size: 24rpx;
}
.item-container {
display: flex;
flex-wrap: wrap;
}
.thumb-box {
// width: 33.333333%;
width: 100%;
display: flex;
align-items: center;
justify-content: center;
flex-direction: column;
margin-top: 20rpx;
}
.item-menu-image {
width: 120rpx;
height: 120rpx;
}
.good_content{
display: flex;
flex-wrap: wrap;
.category_left{
height: 100%;
background-color: #F5F6FA;
width: 197.33rpx;
.category_left_item{
width: 100%;
padding: 0 18rpx;
height: 96rpx;
font-size: 26.67rpx;
font-weight: 600;
box-sizing: border-box;
font-family: PingFang SC;
display: flex;
align-items: center;
word-wrap: break-word;
word-break: break-all;
}
.categoryActive{
background-color: black;
color: white;
}
}
.good_body{
margin-left: 36rpx;
width: 552.67rpx;
// padding-top: 39.33rpx;
.good_item{
font-size: 22.67rpx;
text-align: center;
margin-right: 25.33rpx;
margin-bottom: 51.33rpx;
.good_title{
height: 96rpx;
line-height: 96rpx;
font-size: 28rpx;
font-weight: 600;
}
.good_content{
display: flex;
flex-wrap: wrap;
.good_item_img{
display: block;
background-color: #999999;
width: 146.67rpx;
height: 146.67rpx;
margin-bottom: 22rpx;
.good_item{
font-size: 22.67rpx;
text-align: center;
margin-right: 25.33rpx;
margin-bottom: 51.33rpx;
.good_item_img{
display: block;
background-color: #999999;
width: 146.67rpx;
height: 146.67rpx;
margin-bottom: 22rpx;
}
}
.good_item:nth-child(3n+3){
margin-right: 0;
}
}
}
.good_item:nth-child(3n+3){
margin-right: 0;
}
}
</style>
.good_item_img{
height: 100rpx;
width: 100rpx;
image{
height: 100%;
width: 100%;
}
}
</style>

563
pages/category/productList.vue

@ -1,6 +1,6 @@
<template>
<view>
<uni-nav-bar :statusBar="true" title="Pets" color="#000000" :border="false" :fixed="true">
<uni-nav-bar :statusBar="true" :title="Pet" color="#000000" :border="false" :fixed="true">
<block slot="left">
<view class="nav_left">
<image src="../../static/img/left.png" mode="" @click="back"></image>
@ -11,7 +11,7 @@
<block slot="right">
<view class="nav_right">
<navigator url="/pages/shippingCart/index" open-type="switchTab">
<uni-badge :text="5" type="error" absolute="rightTop">
<uni-badge :text="sum" type="error" absolute="rightTop">
<image src="../../static/img/shop_cart.png" mode=""></image>
</uni-badge>
</navigator>
@ -38,8 +38,8 @@
</view>
</view>
<view class="body">
<view class="product" v-show="pets_index==0">
<view class="product_item" v-for="(item,index) in list" :key="index" @click="goDetails(item)">
<view class="product" v-show="pets_index==0">
<view class="product_item" v-for="(item,index) in list" :key="index" @click="goDetails(item,1)">
<image class="product_item_image" :src="item.goods_img"></image>
<view class="product_item_right">
<view >{{item.short_name}}</view>
@ -51,7 +51,7 @@
<view class="right_price_operation">
<image src="../../static/img/like.png" mode="" v-show="item.is_attention==0" @click.stop="addLike(item.id)"></image>
<image src="../../static/img/like1.png" mode="" v-show="item.is_attention==1" @click.stop="removeLike(item.id)"></image>
<image src="../../static/img/cart2.png" mode=""></image>
<image src="../../static/img/cart2.png" mode=""@click.stop="gotoCart(item)"></image>
</view>
</view>
</view>
@ -62,18 +62,56 @@
<custom-waterfalls-flow ref="waterfallsFlowRef" :value="list" imageKey="goods_img" @wapperClick="goDetails" @imageClick="goDetails">
<template v-slot:default="item">
<view class="product1_item">
<view>{{item.short_name}}</view>
<view class="item_text">{{item.short_name}}</view>
<view class="desc">
<text>US${{item.shop_price}}</text>
<image src="../../static/img/cart2.png" mode=""></image>
<image src="../../static/img/cart2.png" mode="" @click.stop="gotoCart(item)"></image>
</view>
<view class="lable" v-if="item.tags!=''">{{item.tags}}</view>
</view>
</template>
</custom-waterfalls-flow>
</view>
<view class="mask" @click="isCart=false" v-show="isCart"></view>
<view class="addCard" v-show="isCart">
<image src="/static/img/close1.png" mode="" class="addCard_close" @click="isCart=false"></image>
<scroll-view class="spike1 " scroll-x="true" :show-scrollbar="false">
<image :src="item.img_url" mode="" class="addCard_scroll" v-for="(item,index) in gallery_list" ></image>
</scroll-view>
<scroll-view class="addCard_body" scroll-y="true">
<view >{{ goodsDate.goods_name}}</view>
<view class="addCard_price">US${{goodsDate.is_promote==0? goodsDate.shop_price :goodsDate.promote_price}}</view>
<view v-for="(item,index) in goods_attr_list" :key="item.attr_id">
<view >{{item.name}}</view>
<view class="color_select variations_select_size">
<view class="color_select_item" v-for="(item1,index1) in item.list" :key="item1.attr_value"
:class="goods_attr_list[index].goods_attr_id==item1.goods_attr_id?'active_color':''" @click="selectAttr(item.attr_id,item1.goods_attr_id,index1)">
<view class="color_select_item_zoom" v-if="item1.attr_img!=''">
<image src="/static/icon/big2.png" mode=""></image>
</view>
<image :src="item1.attr_img" mode="" v-if="item1.attr_img!=''"></image>
<view class="color_select_item_bottom" v-if="item1.attr_img!=''">{{ item1.attr_value}}</view>
<view class="color_select_item_bottom" v-if="!item1.attr_img">{{ item1.attr_value}}</view>
</view>
</view>
</view>
</scroll-view>
<view class="quantity">
<text>Quantity</text>
<uni-number-box background="#fff" v-model="cartQuery.goods_number" :min="1"></uni-number-box>
</view>
<button @click="addCart">ADD TO CART</button>
</view>
</view>
</view>
</template>
@ -84,19 +122,59 @@
return {
pets_index:0,
navWidth:"160rpx",
sum:0,
query:{
_action:'getgoods',
order_type:0,
page_index:1,
page_size:10
},
cartBtn:false,
list:[],
isReachBottom:true
isReachBottom:true,
isCart:false,
goodsDate:{
comment_summary:[
{comment_summary:'',commentlabel: ""}
],
gallery_list:[
{content:''}
],
},
gallery_list:[],
goods_attr_list:[],
//
cartQuery:{
_action:'addtocart',
goods_id:'',
goods_parent_id:0,
goods_number:1,
goods_attr_id:'',
goods_is_package:0
},
Is_attr:0,//
Pet:'',
isLogin:-1,
current:0,
}
},
methods:{
getCartNum(){
let data={_action:'getcartgoods'}
defaultRequest(data).then(res=>{
console.info(res)
if(res.error==0){
this.sum = res.data.goods_list.length
// uni.setStorageSync('cartSum',this.sum)
}
})
},
//
addLike(id){
if(this.isLogin ==1){
let data={_action:'setfaviouritegoods',goods_id:id}
defaultRequest2(data).then(res=>{
console.info(res)
@ -108,7 +186,13 @@
this.changeImage(id,0)
}
})
}else if(this.isLogin ==0){
uni.navigateTo({
url:'../login/index'
})
}
},
//
removeLike(id){
let data={_action:'unsetfaviouritegoods',goods_id:id}
@ -116,13 +200,146 @@
console.info(res)
if(res.error==0){
uni.showToast({
title:res.message,
title:'ok',
icon:'none'
})
this.changeImage(id,1)
}
})
},
//
addCart(){
this.isLogin = uni.getStorageSync('isLogin')
console.log(this.isLogin)
// console.log(this.goods_attr_list.length)
// if(this.goods_attr_list.length==0&&this.Is_attr>0){
// uni.showToast({
// title:'Please select the product specification',
// icon:'none'
// })
// return
// }else
let isall = 1
this.goods_attr_list.map(item =>{
console.log(item.goods_attr_id)
if(item.goods_attr_id==''){
isall = 0
}
})
if(this.Is_attr>0){
let goods_attr_id =''
this.goods_attr_list.map(item=>{
if(item.goods_attr_id!=''){
goods_attr_id+=item.goods_attr_id+','
}
})
if(isall==0){
uni.showToast({
title:'Please select the product specification',
icon:'none'
})
return
}
this.cartQuery.goods_attr_id=goods_attr_id.substring(0,goods_attr_id.lastIndexOf(','));
}
if(this.isLogin == 1){
defaultRequest2(this.cartQuery).then(res=>{
console.info(res,'购物车')
if(res.error==0){
if(res.data[0].success){
setTimeout(() =>{
uni.showToast({
title:'Successfully added',
icon:'none'
})
},500)
this.isCart = false
}
else{
uni.showToast({
title:res.data.message,
icon:'none'
})
}
this.getCartNum()
}
})
}else if(this.isLogin ==0){
uni.navigateTo({
url:'../login/index'
})
}
},
gotoCart(item){
this.goods_attr_list =[]
this.cartQuery.goods_id = item.id
this.isCart = true
let query ={
_action:'getgoodsdetail',
goods_id:item.id
}
defaultRequest(query).then( res =>{
if(res.error==0){
this.goodsDate = res.data
this.gallery_list = res.data.gallery_list
// console.log(this.goodsDate.attr_list[0].goods_attrs.length,'000')
if(this.goodsDate.attr_list){
this.Is_attr = this.goodsDate.attr_list[0].goods_attrs.length
this.goodsDate.attr_list.map(item=>{
if(item.attr_name=="Color"){
this.colorNum=item.goods_attrs.length
}
let data={name:item.attr_name,goods_attr_id:'',attr_id:item.attr_id,list:item.goods_attrs}
this.goods_attr_list.push(data)
})
}else if (this.goodsDate.attr_list==undefined){
this.goods_attr_list =[] //
this.Is_attr = 0
console.log(this.goods_attr_list,'p')
}
}
})
},
//
selectAttr(attr_id,goods_attr_id,index){
this.current = index
let data={attr_id:attr_id,goods_attr_id:goods_attr_id}
if(this.goods_attr_list.length==0){
this.goods_attr_list.push(data)
}else{
//
let isNew=false
for(let i in this.goods_attr_list){
let item=this.goods_attr_list[i]
if(item.attr_id==attr_id){
if(item.goods_attr_id==goods_attr_id){
this.goods_attr_list[i].goods_attr_id=''
}else{
this.goods_attr_list[i].goods_attr_id=goods_attr_id
console.log(this.goods_attr_list)
}
isNew=false
break
}else{
isNew=true
}
}
if(isNew){
this.goods_attr_list.splice(index,0,data)
}
}
},
//
changeImage(id,type){
this.list.map(item=>{
@ -138,10 +355,10 @@
back(){
uni.navigateBack()
},
goDetails(item){
goDetails(item,e){
console.info(item)
uni.navigateTo({
url:"../productDetails/index?goods_id="+item.id
url:`../productDetails/index?goodid=${item.id}&e=${e}`
})
},
goPage(){
@ -166,8 +383,11 @@
this.getList(0)
},
getList(type){
console.log(this.query,'指令')
defaultRequest(this.query).then(res=>{
console.info(res)
if(res.error==0){
if(res.data){
if(type==0){
@ -191,18 +411,37 @@
}
},
onLoad(e) {
if(e.type==0){
this.query.cat=e.cat_id
}else{
this.query.keyword=e.keyword
console.log(e)
if(e.gid){
this.query.gid = e.gid
}
this.isLogin = uni.getStorageSync('isLogin')
const a = parseInt(e.typethree)
this.Pet = e.title
if(e.type ==0||e.goodslist ==1){
this.query.cat= a
}
else{
this.query.keyword=e.keyword
this.Pet = e.keyword
}
this.getCartNum()
this.getList(0)
},
onShow() {
this.isLogin = uni.getStorageSync('isLogin')
this.getCartNum()
},
//
onReachBottom(){
if(!this.isReachBottom)return
this.query.page_index++
this.getList(1)
},
onPullDownRefresh(){
uni.stopPullDownRefresh()
@ -244,9 +483,9 @@
position: fixed;
background-color: white;
top: 0;
margin-top: 155rpx;
margin-top: 135rpx;
/* #ifdef H5 */
margin-top: 85rpx;
margin-top: 25rpx;
/* #endif */
width: 100%;
box-sizing: border-box;
@ -308,6 +547,7 @@
font-weight: 400;
padding-top: 32rpx;
color: #000000;
.desc{
margin-top: 28.67rpx;
display: flex;
@ -335,7 +575,7 @@
}
}
.product{
padding-top: 34.67rpx;
padding-top: 34rpx;
.product_item{
display: flex;
align-items: center;
@ -350,15 +590,17 @@
}
.product_item_right{
width: 440rpx;
height: 213.33rpx;
display: flex;
// background-color: #B22234;
flex-direction: column;
justify-content: center;
justify-content: space-between;
margin-left: 36rpx;
.item_right_lable{
display: flex;
flex-wrap: wrap;
margin-top: 20.33rpx;
margin-top: 20.33rpx;
margin-bottom: 30.67rpx;
.right_lable_item{
padding: 11.33rpx 18rpx;
@ -393,4 +635,285 @@
}
}
}
.addCard{
z-index: 999;
position: fixed;
bottom: 0;
left: 0;
background-color: white;
padding-left: 29.33rpx;
padding-right: 29.33rpx;
box-sizing: border-box;
padding-top: 77.67rpx;
width: 100%;
font-size: 30.67rpx;
font-weight: 400;
padding-bottom: 44.67rpx;
.addCard_close{
width: 21.33rpx;
height: 21.33rpx;
position: absolute;
right: 24.67rpx;
top: 18.67rpx;
}
.spike1{
margin-top: 0;
margin-bottom: 34rpx;
padding-bottom: 0;
border-bottom: none;
.addCard_scroll{
width: 286.67rpx;
height: 286.67rpx;
margin-left: 10.67rpx;
&:first-child{
margin-left: 0;
}
&:last-child{
margin-right: 15rpx;
}
}
}
.addCard_body{
padding-right: 31.33rpx;
max-height: 600rpx;
min-height: 400rpx;
.addCard_price{
font-size: 44rpx;
font-weight: 500;
margin-top: 27.33rpx;
margin-bottom: 51.33rpx;
}
.color_select{
display: flex;
font-size: 16.67rpx;
color: #666666;
flex-wrap: wrap;
margin-bottom: 59.33rpx;
.color_select_item{
margin-top: 22rpx;
position: relative;
background-color: #F9F7FA;
border-radius: 6.67rpx;
margin-right: 12.67rpx;
width: 134.67rpx;
image{
width: 134.67rpx;
height: 133.33rpx;
border-radius: 6.67rpx 6.67rpx 0 0;
}
.color_select_item_zoom{
width: 20.33rpx;
height: 20.33rpx;
// background-color: rgba(0, 0, 0, 0.3);
display: flex;
align-items: center;
justify-content: center;
position: absolute;
right: 12.67rpx;
top: 9.33rpx;
z-index: 99;
image{
width: 100%;
height: 100%;
}
}
.color_select_item_bottom{
padding: 10rpx 0rpx;
font-size: 24rpx;
text-align: center;
}
}
.active_color{
color: #B22234;
background-color: white;
border: 1px solid #000000;
}
}
.variations_select_size{
margin-left: 0;
margin-top: 26.67rpx;
margin-bottom: 40.67rpx;
.select_size_item{
margin-bottom: 16.67rpx !important;
&:nth-child(4n+4){
margin-right: 0;
}
}
}
}
}
.quantity{
display: flex;
align-items: center;
background-color: white;
justify-content: space-between;
margin-bottom: 43.33rpx;
.uni-numbox{
border: 1px solid #999999;
border-radius: 14rpx;
height: 42.67rpx;
/deep/ .uni-numbox__minus{
border-radius: 14rpx;
}
/deep/.uni-numbox__plus{
border-radius: 14rpx;
}
/deep/.uni-numbox__value{
border-left: 1px solid #999999;
border-right: 1px solid #999999;
height: 100%;
width: 63.33rpx;
font-size: 21.33rpx;
}
}
}
button{
width: 100%;
height: 73.33rpx;
line-height: 73.33rpx;
background-color: #191919;
color: white;
font-weight: bold;
font-size: 26.67rpx;
}
.spike1{
white-space: nowrap;
width: 100%;
margin-top: 36.67rpx;
padding-bottom: 34rpx;
border-bottom: 1px solid #E2E2E2;
::-webkit-scrollbar {
width: 0;
height: 0;
background-color: transparent;
}
.spike1_item{
width: 410rpx;
background-color: #F6F6F6;
padding: 21.33rpx 24.67rpx;
margin-right: 19.33rpx;
font-size: 20rpx;
display: inline-block;
color: #737373;
&:last-child{
margin-right: 0;
}
view{
margin-bottom: 10rpx;
}
.spike1_item_title{
font-weight: bold;
.text_black{
color: black;
display: inline-block;
margin-left: 10rpx;
}
.text_red{
color: #B22234;
display: inline-block;
margin-left: 10rpx;
}
}
}
.spike1_item1{
color: #191919;
font-size: 29.33rpx;
margin-right: 16.67rpx;
width: 200rpx;
display: inline-block;
font-weight: bold;
.spike1_item_img{
width: 200rpx;
height: 200rpx;
background-color: #999999;
}
.spike1_item_bottom{
padding-left: 9.33rpx;
margin-top: 22.67rpx;
.spike1_item_text{
color: #9D9D9D;
font-size: 21.33rpx;
text-decoration: line-through;
}
.spike1_item_text1{
color: #9D9D9D;
font-size: 21.33rpx;
}
}
.spike1_item_bottom1{
padding-left: 9.33rpx;
margin-top: 19.33rpx;
font-weight: bold;
.spike1_item_text{
color: #000000;
font-size: 16rpx;
font-weight: 400;
margin-bottom: 20.67rpx;
white-space: break-spaces;
}
}
}
.spike1_item:last-child{
margin-right: 0;
}
}
.variations_select_size{
margin-left: 20.67rpx;
display: flex;
flex-wrap: wrap;
.select_size_item{
background-color: #F8F8F8;
min-width: 121.33rpx;
height: 54.67rpx;
display: flex;
align-items: center;
justify-content: center;
border-radius: 12.67rpx;
color: #666666;
font-size: 24rpx;
margin-right: 18.67rpx;
border: 1px solid #F8F8F8;
padding: 0 10rpx;
margin-bottom: 16.67rpx;
// &:nth-child(-n+2){
// margin-bottom: 16.67rpx;
// }
}
}
.item_text{
height: 80rpx;
line-height: 40rpx;
overflow: hidden;
text-overflow: ellipsis;
}
.mask {
position: fixed;
width: 100%;
height: 100%;
background-color: black;
opacity: 0.5;
z-index: 998;
top: 0;
left: 0;
}
</style>

156
pages/index/address.vue

@ -0,0 +1,156 @@
<template>
<view>
<view class="body">
<view class="font">
<uni-icons type="arrow-left" size="30" @click="back"></uni-icons>
<text style="margin-left: 30rpx;color: #0b0b0b;">Ship to</text>
</view>
<text class="color_b">Popular Countries/Regions</text>
<view class="address" v-for="(item2,index2) in popularlist" :key="item2.name" >
<text>{{ item2.name}}</text>
<radio class="Radio"v-model="item2.name" :checked="current==item2.name"@click="Active(item2,index2)"></radio>
</view>
<view v-for ="(item,index) in list " :key="index">
<text class="color_red">{{ item.title}}</text>
<view class="address" v-for="(item1,index1) in item.sur_name" :key="item1.name" >
<text>{{ item1.name}}</text>
<radio class="Radio"v-model="item1.name" :checked="current==item1.name"@click="Active(item1,index1)"></radio>
</view>
</view>
</view>
</view>
</template>
<script>
import {defaultRequest,defaultRequest2} from '../../api/index.js'
export default {
data() {
return {
citys:[],
current:'',
list:[],
popularlist:[
{
name:'India'
},
{
name:'United States of America'
},
{
name:'Turkey'
},
{
name:'United Kingdom'
},
{
name:'China'
},
]
}
},
async onLoad() {
await this.getaddress()
},
methods: {
getaddress(){
let data ={
_action:'getregions',
parent_region_id:0
}
defaultRequest(data).then( res => {
console.log(res,'p')
if(res.error==0){
this.citys = res.data
}
let citys =[]
for(let i of this.citys){
citys.push({
sort:i.region_name.substring(0, 1),
name:i.region_name
})
}
var moth = [],
flag = 0,
list = citys;
var sortlist = {
title: '',
sur_name: ''
}
for (var i = 0; i < list.length; i++) {
var az = '';
for (var j = 0; j < moth.length; j++) {
if (moth[j].title == list[i]['sort']) {
flag = 1;
az = j;
break;
}
}
if (flag == 1) {
var ab = moth[az];
ab.sur_name.push(list[i]);
flag = 0;
} else if (flag == 0) {
sortlist = {};
sortlist.title = list[i]['sort'];
sortlist.sur_name = new Array();
sortlist.sur_name.push(list[i]);
moth.push(sortlist);
}
}
this.list = moth
console.log(moth,'pppp');
})
},
Active(item,index){
this.current = item.name
console.log(item.name,'fff')
uni.setStorageSync('country',item.name)
uni.navigateTo({
url:'../account/myProfile?address='+item.name
})
},
back()
{
uni.navigateBack({
delta:1
})
}
}
}
</script>
<style>
.body{
margin: 80rpx 0 5rpx 5rpx;
background-color: #fff;
padding: 0 10rpx;
}
.font{
display: flex;
height: 50rpx;
line-height: 50rpx;
text-align: center;
margin: 30rpx 0;
font-size: 20px;
font-weight: bold;
}
.address{
margin-top: 6rpx;
height: 20rpx;
align-items: center;
background-color: #fff;
}
.color_red{
color: #ff5f15;
}
.color_b{
color: #6b6b6b;
}
</style>

495
pages/index/flashSale.vue

@ -1,7 +1,7 @@
<template>
<view>
<uni-nav-bar left-icon="left" :statusBar="true" title="Flash Sale"
color="#000000" rightIcon="info" @clickLeft="back" @clickRight="isDelete=!isDelete" :border="false"/>
color="#000000" @clickLeft="back" @clickRight="isDelete=!isDelete" :border="false"/>
<view class="body">
<view class="countDown">
@ -16,9 +16,9 @@
<view class="tips1">The quantity of special price commodities is limited and will be sold out</view>
<view class="recommend">
<view class="recommend_content">
<view class="recommend_content_item" v-for="(item,index) in list " :key="index" @click="goDetails(item.id)">
<view class="recommend_content_item" v-for="(item,index) in list " :key="index" >
<view class="recommend_content_item_image">
<image :src="item.goods_img" mode=""></image>
<image :src="item.goods_img" mode="" @click="goDetails(item.id)"></image>
</view>
<view class="recommend_content_item_name">{{item.name}}</view>
<view class="recommend_item_operation">
@ -26,22 +26,98 @@
<view class="recommend_content_item_pric">US${{item.promote_price?item.promote_price:item.shop_price}}</view>
<view class="recommend_content_item_pric1">US${{item.shop_price}}</view>
</view>
<image src="../../static/img/add.png" mode=""></image>
<image src="../../static/img/add.png" @click="Cart(item)" ></image>
</view>
</view>
</view>
</view>
<view class="mask" @click="isCart=false" v-show="isCart"></view>
<view class="addCard" v-show="isCart">
<image src="/static/img/close1.png" mode="" class="addCard_close" @click="isCart=false"></image>
<scroll-view class="spike1 " scroll-x="true" :show-scrollbar="false" >
<image mode="" class="addCard_scroll" :src="item.img_url" v-for="(item,index) in gallery_list" :key="index" ></image>
</scroll-view>
<scroll-view class="addCard_body" scroll-y="true">
<view >{{ goodsDate.goods_name}}</view>
<view class="addCard_price">US${{goodsDate.is_promote==0? goodsDate.shop_price :goodsDate.promote_price}}</view>
<view v-for="(item,index) in goods_attr_list" :key="item.attr_id">
<view >{{item.name}}</view>
<view class="color_select variations_select_size">
<!-- <view class="select_size_item"
v-for="(item1,index1) in item.goods_attrs"
:key="item1.goods_attr_id"
:class="goods_attr_list[index].goods_attr_id==item1.goods_attr_id?'active_color':''"
@click="selectAttr(item.attr_id,item1.goods_attr_id,index)">
{{item1.attr_value}}
</view> -->
<view class="color_select_item" v-for="(item1,index1) in item.list" :key="item1.attr_value"
:class="goods_attr_list[index].goods_attr_id==item1.goods_attr_id?'active_color':''" @click="selectAttr(item.attr_id,item1.goods_attr_id,index1)">
<view class="color_select_item_zoom" v-if="item1.attr_img!=''">
<image src="/static/icon/big2.png" mode=""></image>
</view>
<image :src="item1.attr_img" mode="" v-if="item1.attr_img!=''"></image>
<view class="color_select_item_bottom" v-if="item1.attr_img!=''">{{ item1.attr_value}}</view>
<view class="color_select_item_bottom" v-if="!item1.attr_img">{{ item1.attr_value}}</view>
</view>
</view>
</view>
</scroll-view>
<view class="quantity">
<text>Quantity</text>
<uni-number-box background="#fff" v-model="cartQuery.goods_number" :min="1"></uni-number-box>
</view>
<button @click="addCart">ADD TO CART</button>
</view>
</view>
</view>
</template>
<script>
import {defaultRequest} from '../../api/index.js'
import {defaultRequest,defaultRequest2} from '../../api/index.js'
export default {
data() {
return {
list:[]
list:[],
isCart:false,
query:{
_action:'getgoodsdetail',
goods_id:''
},
Is_attr:0,//
goodsDate:{
comment_summary:[
{comment_summary:'',commentlabel: ""}
],
gallery_list:[
{content:''}
],
},
//
goods_attr_list:[],
gallery_list:[],
catQuery:{
_action:'getgoods',
cat:'',
page_index:1,
page_size:10
},
//
cartQuery:{
_action:'addtocart',
goods_id:'',
goods_parent_id:0,
goods_number:1,
goods_attr_id:'',
goods_is_package:0
},
isLogin:-1,
current:0,
}
},
computed:{
@ -74,26 +150,152 @@
},
methods:{
goDetails(id){
uni.navigateTo({
url:"../productDetails/index?goods_id="+id
url:"../productDetails/index?goodid="+id
})
},
getList(){
let data ={_action:'getseckillgoods',gid:'213'}
defaultRequest(data).then(res=>{
console.info(res)
let data ={_action:'getseckillgoods',gid:''}
let query={
_action:'getgoods',type:'promote',order_type:0,page_size:50,page_index:0
}
defaultRequest(query).then(res=>{
console.info(res,'p')
let gid_lists = ''
if(res.error==0){
this.list=res.data
}
})
},
back(){
uni.navigateBack()
}
},
Cart(e){
this.isCart = true
this.goods_attr_list =[]
this.query.goods_id = e.id
this.cartQuery.goods_id = e.id
defaultRequest(this.query).then(res=>{
if(res.error==0){
console.log(res)
this.goodsDate=res.data
this.gallery_list = res.data.gallery_list
if(this.goodsDate.attr_list){
this.Is_attr = this.goodsDate.attr_list[0].goods_attrs.length
this.goodsDate.attr_list.map(item=>{
if(item.attr_name=="Color"){
this.colorNum=item.goods_attrs.length
}
let data={name:item.attr_name,goods_attr_id:'',attr_id:item.attr_id,list:item.goods_attrs}
this.goods_attr_list.push(data)
})
}else{
this.goods_attr_list=[]
this.Is_attr = 0
}
this.catQuery.cat=res.data.cat_id
}
})
},
//
selectAttr(attr_id,goods_attr_id,index){
this.current = index
let data={attr_id:attr_id,goods_attr_id:goods_attr_id}
if(this.goods_attr_list.length==0){
this.goods_attr_list.push(data)
}else{
//
let isNew=false
for(let i in this.goods_attr_list){
let item=this.goods_attr_list[i]
if(item.attr_id==attr_id){
if(item.goods_attr_id==goods_attr_id){
this.goods_attr_list[i].goods_attr_id=''
}else{
this.goods_attr_list[i].goods_attr_id=goods_attr_id
}
isNew=false
break
}else{
isNew=true
}
}
if(isNew){
this.goods_attr_list.splice(index,0,data)
}
}
},
//
addCart(){
let isall = 1
if(this.Is_attr>0){
console.log(this.goods_attr_list,'规格')
let goods_attr_id =''
for(let i of this.goods_attr_list){
if(i.goods_attr_id!=''){
goods_attr_id+=i.goods_attr_id+','
}
}
// this.goods_attr_list.map(item=>{
// if(item.goods_attr_id!=''){
// goods_attr_id+=item.goods_attr_id+','
// }
// })
this.goods_attr_list.map(item =>{
console.log(item.goods_attr_id)
if(item.goods_attr_id==''){
isall = 0
}
})
if(isall==0){
uni.showToast({
title:'Please select the product specification',
icon:'none'
})
return
}
this.cartQuery.goods_attr_id=goods_attr_id.substring(0,goods_attr_id.lastIndexOf(','));
// console.log(this.cartQuery,'yyy')
}
if(this.isLogin == 1){
defaultRequest2(this.cartQuery).then(res=>{
if(res.error==0){
if(res.data[0].success){
uni.showToast({
title:'Successfully added',
icon:'none'
})
}
this.isCart = false
}
})
}
else if (this.isLogin == 0){
uni.navigateTo({
url:'../login/index'
})
}
},
},
onLoad() {
this.getList()
this.isLogin = uni.getStorageSync('isLogin')
}
}
</script>
@ -166,4 +368,275 @@
margin-bottom: 30rpx;
text-align: center;
}
.addCard{
z-index: 999;
position: fixed;
bottom: 0;
left: 0;
background-color: white;
padding-left: 29.33rpx;
box-sizing: border-box;
padding-top: 77.67rpx;
width: 100%;
font-size: 30.67rpx;
font-weight: 400;
padding-bottom: 44.67rpx;
.addCard_close{
width: 21.33rpx;
height: 21.33rpx;
position: absolute;
right: 24.67rpx;
top: 18.67rpx;
}
.spike1{
margin-top: 0;
margin-bottom: 34rpx;
padding-bottom: 0;
border-bottom: none;
.addCard_scroll{
width: 286.67rpx;
height: 286.67rpx;
margin-left: 10.67rpx;
&:first-child{
margin-left: 0;
}
&:last-child{
margin-right: 15rpx;
}
}
}
.addCard_body{
padding-right: 31.33rpx;
min-height: 400rpx;
max-height: 600rpx;
.addCard_price{
font-size: 44rpx;
font-weight: 500;
margin-top: 27.33rpx;
margin-bottom: 51.33rpx;
}
.color_select{
display: flex;
font-size: 16.67rpx;
color: #666666;
flex-wrap: wrap;
margin-bottom: 59.33rpx;
.color_select_item{
margin-top: 22rpx;
position: relative;
background-color: #F9F7FA;
border-radius: 6.67rpx;
margin-right: 12.67rpx;
width: 134.67rpx;
image{
width: 134.67rpx;
height: 133.33rpx;
border-radius: 6.67rpx 6.67rpx 0 0;
}
.color_select_item_zoom{
width: 20.33rpx;
height: 20.33rpx;
// background-color: rgba(0, 0, 0, 0.3);
display: flex;
align-items: center;
justify-content: center;
position: absolute;
right: 12.67rpx;
top: 9.33rpx;
z-index: 99;
image{
width: 100%;
height: 100%;
}
}
.color_select_item_bottom{
padding: 10rpx 0rpx;
font-size: 24rpx;
text-align: center;
}
}
.active_color{
color: #B22234;
background-color: white;
border: 1px solid #000000;
}
}
.variations_select_size{
margin-left: 0;
margin-top: 26.67rpx;
margin-bottom: 40.67rpx;
.select_size_item{
margin-bottom: 16.67rpx !important;
&:nth-child(4n+4){
margin-right: 0;
}
}
}
}
}
.quantity{
display: flex;
background-color: white;
align-items: center;
justify-content: space-between;
margin-bottom: 43.33rpx;
margin-left: 10rpx;
.uni-numbox{
border: 1px solid #999999;
border-radius: 14rpx;
height: 42.67rpx;
margin-right: 17rpx;
/deep/ .uni-numbox__minus{
border-radius: 14rpx;
}
/deep/.uni-numbox__plus{
border-radius: 14rpx;
}
/deep/.uni-numbox__value{
border-left: 1px solid #999999;
border-right: 1px solid #999999;
height: 100%;
width: 63.33rpx;
font-size: 21.33rpx;
}
}
}
button{
width: 98%;
margin: 0 1%;
height: 73.33rpx;
line-height: 73.33rpx;
background-color: #191919;
color: white;
font-weight: bold;
font-size: 26.67rpx;
}
.spike1{
white-space: nowrap;
width: 100%;
margin-top: 36.67rpx;
padding-bottom: 34rpx;
border-bottom: 1px solid #E2E2E2;
::-webkit-scrollbar {
width: 0;
height: 0;
background-color: transparent;
}
.spike1_item{
width: 410rpx;
background-color: #F6F6F6;
padding: 21.33rpx 24.67rpx;
margin-right: 19.33rpx;
font-size: 20rpx;
display: inline-block;
color: #737373;
&:last-child{
margin-right: 0;
}
view{
margin-bottom: 10rpx;
}
.spike1_item_title{
font-weight: bold;
.text_black{
color: black;
display: inline-block;
margin-left: 10rpx;
}
.text_red{
color: #B22234;
display: inline-block;
margin-left: 10rpx;
}
}
}
.spike1_item1{
color: #191919;
font-size: 29.33rpx;
margin-right: 16.67rpx;
width: 200rpx;
display: inline-block;
font-weight: bold;
.spike1_item_img{
width: 200rpx;
height: 200rpx;
background-color: #999999;
}
.spike1_item_bottom{
padding-left: 9.33rpx;
margin-top: 22.67rpx;
.spike1_item_text{
color: #9D9D9D;
font-size: 21.33rpx;
text-decoration: line-through;
}
.spike1_item_text1{
color: #9D9D9D;
font-size: 21.33rpx;
}
}
.spike1_item_bottom1{
padding-left: 9.33rpx;
margin-top: 19.33rpx;
font-weight: bold;
.spike1_item_text{
color: #000000;
font-size: 16rpx;
font-weight: 400;
margin-bottom: 20.67rpx;
white-space: break-spaces;
}
}
}
.spike1_item:last-child{
margin-right: 0;
}
}
.variations_select_size{
margin-left: 20.67rpx;
display: flex;
flex-wrap: wrap;
.select_size_item{
background-color: #F8F8F8;
min-width: 121.33rpx;
height: 54.67rpx;
display: flex;
align-items: center;
justify-content: center;
border-radius: 12.67rpx;
color: #666666;
font-size: 24rpx;
margin-right: 18.67rpx;
border: 1px solid #F8F8F8;
padding: 0 10rpx;
margin-bottom: 16.67rpx;
// &:nth-child(-n+2){
// margin-bottom: 16.67rpx;
// }
}
}
.mask {
position: fixed;
width: 100%;
height: 100%;
background-color: black;
opacity: 0.5;
z-index: 998;
top: 0;
left: 0;
}
</style>

758
pages/index/index.vue

File diff suppressed because it is too large

1126
pages/index/index2.vue

File diff suppressed because it is too large

4
pages/index/pickUpCentre.vue

@ -1,12 +1,12 @@
<template>
<view>
<uni-nav-bar left-icon="left" :statusBar="true" title="Pick up centre" color="#000000" @clickLeft="back" :border="false">
<block slot="right">
<!-- <block slot="right">
<view class="head_coupons">
<image src="../../static/img/coupons.png" mode=""></image>
</view>
</block>
</block> -->
</uni-nav-bar>
<view class="body">

121
pages/index/search.vue

@ -10,11 +10,11 @@
<view class="history">
<view class="history_title">
<text>Recently Searched</text>
<image src="../../static/img/delete.png" mode=""></image>
<image src="../../static/img/delete.png" mode="" @click="empty()"></image>
</view>
<view class="history_lable">
<view class="lable_item">Gold Necklaces</view>
<view class="lable_item">Push Up Swimsuit</view>
<view class="history_lable" >
<view class="lable_item" v-for="(item,index) in searchHistoryList" :key="index" @click="tapSearch(item)">{{ item }}</view>
</view>
</view>
@ -22,11 +22,10 @@
<view class="history_title">
<text>Figured youd want it</text>
</view>
<!-- <view class="history_lable">
<view class="lable_item">Gold Necklaces</view>
<view class="lable_item">Push Up Swimsuit</view>
</view> -->
<scroll-view class="spike1 page_padding_left" scroll-x="true" :show-scrollbar="false">
<view class="history_lable">
<view class="lable_item" v-for="(item,index) in searchHot" :key="item.block_title" @click="TapHot(item.block_title)">{{item.block_title}}</view>
</view>
<!-- <scroll-view class="spike1 page_padding_left" scroll-x="true" :show-scrollbar="false">
<view class="spike1_item" v-for="(item,index) in catList" :key="index" @click="goDetails(item.id)">
<view class="spike1_item_img">
<image :src="item.thumb" mode=""></image>
@ -36,7 +35,7 @@
<view class="spike1_item_text" v-if="item.is_promote==1">US${{ item.shop_price }}</view>
</view>
</view>
</scroll-view>
</scroll-view> -->
</view>
</view>
@ -55,7 +54,9 @@
page_size:30,
type:'best'
},
catList:[]
searchHistoryList:[],
catList:[],
searchHot:[]
}
},
methods:{
@ -65,21 +66,22 @@
})
},
//
getCatList(type){
defaultRequest4(this.catQuery).then(res=>{
console.info(res)
if(res.error==0){
if(res.data){
this.catList=res.data
}
}
})
},
// getCatList(type){
// defaultRequest4(this.catQuery).then(res=>{
// console.info(res)
// if(res.error==0){
// if(res.data){
// this.catList=res.data
// }
// }
// })
// },
//
getIndex(){
let data={_action:'getpagedata',pagecode:'SEARCHHOT'}
let searchHot =[]
let data={_action:'getpagedata',pagecode:'CLASS'}
defaultRequest(data).then(res=>{
console.info(res)
console.info(res.data.zones,'有毒')
if(res.error==0){
// this.indexDate=res.data
// res.data.zones.map(item=>{
@ -88,19 +90,84 @@
// this.info.push(item)
// }
// })
res.data.zones.map(item =>{
if(item.zone_code=='SEARCHHOT'){
searchHot= item
}
console.log(searchHot.blocks,'pp')
this.searchHot = searchHot.blocks
})
}
})
},
search(){
if(this.searchValue=='')return
// this.$store.commit('addSave', this.searchValue)
// console.log(this.$store.state)
if (!this.searchHistoryList.includes(this.searchValue)) {
this.searchHistoryList.unshift(this.searchValue);
uni.setStorage({
key: 'searchList',
data: JSON.stringify(this.searchHistoryList)
});
} else {
//push
let i = this.searchHistoryList.indexOf(this.searchValue);
this.searchHistoryList.splice(i, 1);
this.searchHistoryList.unshift(this.searchValue);
uni.setStorage({
key: 'searchList',
data: JSON.stringify(this.searchHistoryList)
});
}
let data ={
_action:'getgoods',keyword:this.searchValue
}
// defaultRequest(data).then(res=>{
// console.log(res,'ke')
// })
uni.navigateTo({
url:'../category/productList?keyword='+this.searchValue+'&type=1'
})
}
},
tapSearch(i){
this.searchValue = i
},
//
empty() {
uni.showToast({
title: 'emptied'
});
uni.removeStorage({
key: 'searchList'
});
this.searchHistoryList = [];
},
TapHot(e){
this.searchValue = e
uni.navigateTo({
url:'../category/productList?keyword='+this.searchValue+'&type=1'
})
}
},
onLoad() {
// this.getIndex()
this.getCatList()
async onLoad() {
this.getIndex()
// this.getCatList()
let list = await uni.getStorage({
key: 'searchList'
});
if (list.length>1) {
// console.log(list[1].data);
this.searchHistoryList = JSON.parse(list[1].data);
}
}
}
</script>

41
pages/login/index.vue

@ -13,7 +13,7 @@
<image src="../../static/img/select2.png" mode="" class="agreement_image" @click="loginSelect=!loginSelect,loginErr=false" v-show="!loginSelect"></image>
<image src="../../static/img/select1.png" mode="" class="agreement_image" @click="loginSelect=!loginSelect" v-show="loginSelect"></image>
<view class="agreement_right">
by continuong, you agree to be <text class="text"> terms of use </text> and <text class="text"> privacy policy</text>.
by continuong, you agree to be <text class="text" @click="gotonewpage(1)"> terms of use </text> and <text class="text"@click="gotonewpage"> privacy policy</text>.
</view>
</view>
@ -28,7 +28,7 @@
<image src="../../static/img/select2.png" mode="" class="agreement_image" @click="regSelect=!regSelect" v-show="!regSelect"></image>
<image src="../../static/img/select1.png" mode="" class="agreement_image" @click="regSelect=!regSelect" v-show="regSelect"></image>
<view class="agreement_right">
by continuong, you agree to be <text class="text"> terms of use </text> and <text class="text"> privacy policy</text>.
by continuong, you agree to be <text class="text"@click="gotonewpage(2)" > terms of use </text> and <text class="text" @click="gotonewpage()"> privacy policy</text>.
</view>
</view>
</view>
@ -75,6 +75,7 @@
regSelect:false,
loginSelect:false,
//
backButtonPress:0,
loginErr:false,
regErr:false,
errMsg:'The email address or password you enterde is incorrect.',
@ -84,6 +85,18 @@
}
}
},
// onBackPress(options) {
// this.backButtonPress++;
// if (this.backButtonPress > 1) {
// plus.runtime.quit();
// } else {
// plus.nativeUI.toast('Click again to exit');
// }
// setTimeout(function() {
// this.backButtonPress = 0;
// }, 1000);
// return true;
// },
methods:{
forgotPwd(){
if(this.loginDate.username==''){
@ -116,11 +129,13 @@
this.loginErr=true
return
}
console.log(this.loginDate)
defaultRequest1(this.loginDate).then(res=>{
console.info(res)
if(res.error==0){
this.loginErr=false
res.data.isLogin=true
uni.setStorageSync('isLogin',1)
uni.setStorageSync('user_info',res.data)
uni.switchTab({
url:'../index/index'
@ -138,6 +153,7 @@
},
//
dialogConfirm(){
console.log(this.query,'////')
defaultRequest(this.query).then(res=>{
console.info(res)
if(res.error==0){
@ -153,7 +169,7 @@
Reg(){
if(!this.regSelect){
uni.showToast({
title:'请先同意并勾选用户协议',
title:'please agree to and tick the User Agreement first',
icon:'none',
})
return
@ -164,7 +180,7 @@
if(res.error==0){
this.regErr=false
uni.showToast({
title:'注册成功,请进行邮箱验证!',
title:'Successful registration, please verify your email address!',
icon:'success',
})
}else{
@ -188,11 +204,28 @@
}else{
this.isReg=true
}
},
//
gotonewpage(e){
if(e==1){
var urlStr = encodeURI("https://en.meixx.com/help/privacy.html")
// plus.runtime.openURL(urlStr);
uni.navigateTo({
url:'../order/paypalWebview?src='+urlStr
})
}
else{
}
}
},
onLoad() {
this.configuration()
}
}
</script>

17
pages/login/verifyEmail.vue

@ -28,7 +28,7 @@
export default {
data() {
return {
isShow:false,
isShow:true,
isErr:false,
isLogin:true,
username:'',
@ -49,14 +49,15 @@
})
},
sendresetcode(){
console.log(this.query)
defaultRequest(this.query).then(res=>{
console.info(res)
console.log(res)
if(res.error==0){
uni.showToast({
title:res.message,
icon:'none'
})
this.isShow=true
}
})
},
@ -68,6 +69,16 @@
this.isLogin=true
}
},
// getcode(){
// this.isShow = false
// let data ={
// _action:'sendresetcode',
// username:this.username
// }
// defaultRequest2(data).then(res =>{
// console.log(res,'ppppp')
// })
// }
},
onLoad(e) {
console.info(e)

450
pages/order/additems.vue

@ -0,0 +1,450 @@
<template>
<view class="u-wrap">
<view class="search">
<view class="status_bar"></view>
<view class="search1">
<navigator url="/pages/index/search">
<view class="navigation_seach">
<image src="../../static/img/seach.png" mode=""></image>
<text>search</text>
</view>
</navigator>
<view class="navigation_title_right">
<navigator url="/pages/account/wishlist">
<image src="../../static/img/like_white.png" mode=""></image>
</navigator>
<navigator url="/pages/shippingCart/index" open-type="switchTab">
<uni-badge :text="sum" type="error" absolute="rightTop">
<image src="../../static/img/shop_cart1.png" mode=""></image>
</uni-badge>
</navigator>
</view>
</view>
</view>
<view class="u-menu-wrap">
<scroll-view scroll-y scroll-with-animation class="u-tab-view menu-scroll-view category_left" :scroll-top="scrollTop"
:scroll-into-view="itemId">
<view v-for="(item,index) in categoryList" :key="item.cat_name" class="u-tab-item" :class="[current == index ? 'u-tab-item-active' : '']"
@tap.stop="swichMenu(index)">
<text class="u-line-1">{{item.cat_name}}</text>
</view>
</scroll-view>
<scroll-view :scroll-top="scrollRightTop" scroll-y scroll-with-animation class="right-box" @scroll="rightScroll">
<view class="page-view">
<view class="class-item" :id="'item' + index" v-for="(item , index) in categoryList" :key="item.cat_name">
<view class="item-title">
<text>{{item.cat_name}}</text>
</view>
<view class="good_content">
<view class="good_item" v-for="(item1, index1) in item.subcategories" :key="index1">
<view @click="toDetial(item1.first_goods_thumb)">
<view class="good_item_img"><image :src="item1.first_goods_thumb" alt=""></view>
</view>
<text>{{item1.cat_name}}</text>
</view>
</view>
</view>
</view>
</scroll-view>
</view>
</view>
</template>
<script>
import {defaultRequest,defaultRequest4} from '../../api/index.js'
export default {
data() {
return {
scrollTop: 0, //tab
oldScrollTop: 0,
current: 0, //
menuHeight: 0, //
menuItemHeight: 0, // item
itemId: '', // scroll-viewid
tabbar: [],
menuItemPos: [],
arr: [],
scrollRightTop: 0, // scroll-view
timer: null, //
categoryList:[],
sum:0,
homeIndex: 0
}
},
onShow() {
this.sum =0
this.getList()
this.getCartNum()
uni.showTabBar()
},
onLoad() {
this.getList()
this.getCartNum()
},
onReady() {
this.getMenuItemTop()
},
onBackPress(options) {
this.backButtonPress++;
if (this.backButtonPress > 1) {
plus.runtime.quit();
} else {
plus.nativeUI.toast('Click again to exit');
}
setTimeout(function() {
this.backButtonPress = 0;
}, 1000);
return true;
},
methods: {
//
async swichMenu(index) {
if(this.arr.length == 0) {
await this.getMenuItemTop();
}
if ( this.current === index) return;
console.log(index,'现在的index')
// this.scrollRightTop = this.oldScrollTop;
this.scrollRightTop = this.arr[index];
// this.$nextTick(function(){
// this.scrollRightTop = this.arr[index];
this.current = index;
// this.leftMenuStatus(index);
// })
},
getCartNum(){
let data={_action:'getcartgoods'}
defaultRequest(data).then(res=>{
console.info(res)
if(res.error==0){
this.sum = res.data.goods_list.length
console.log(this.sum,'////')
// uni.setStorageSync('cartSum',this.sum)
}
})
},
goPets(id,name){
uni.navigateTo({
url:"productList?typethree="+id+'&type=0'+'&title='+name
})
},
getList(){
let data={_action:'getcategorytree'}
defaultRequest(data).then(res=>{
console.info(res)
if(res.error==0){
this.categoryList=res.data
console.log(res.data,'////')
this.categoryIndex=res.data[0].cat_id
}
})
},
//
getElRect(elClass, dataVal) {
new Promise((resolve, reject) => {
const query = uni.createSelectorQuery().in(this);
query.select('.' + elClass).fields({
size: true
}, res => {
// resnull
if (!res) {
setTimeout(() => {
this.getElRect(elClass);
}, 10);
return;
}
this[dataVal] = res.height;
resolve();
}).exec();
})
},
//
async observer() {
this.tabbar.map((val, index) => {
let observer = uni.createIntersectionObserver(this);
// scroll-viewiditemxxright-box
// .right-box
observer.relativeTo('.right-box', {
top: 0
}).observe('#item' + index, res => {
if (res.intersectionRatio > 0) {
let id = res.id.substring(4);
this.leftMenuStatus(id);
}
})
})
},
//
async leftMenuStatus(index) {
// console.log(index,'index')
if (index == this.current) return;
this.current = index
// 0
if (this.menuHeight == 0 || this.menuItemHeight == 0) {
await this.getElRect('menu-scroll-view', 'menuHeight');
await this.getElRect('u-tab-item', 'menuItemHeight');
}
// item
this.scrollTop = index * this.menuItemHeight + this.menuItemHeight / 2 - this.menuHeight / 2;
},
// item
getMenuItemTop() {
new Promise(resolve => {
let selectorQuery = uni.createSelectorQuery();
selectorQuery.selectAll('.class-item').boundingClientRect((rects) => {
// rects[](selectAll)
if(!rects.length) {
setTimeout(() => {
this.getMenuItemTop();
}, 10);
return ;
}
rects.forEach((rect) => {
// rects[0].top()
this.arr.push(rect.top - rects[0].top);
resolve();
})
}).exec()
})
},
//
async rightScroll(e) {
this.oldScrollTop = e.detail.scrollTop;
if(this.arr.length == 0) {
await this.getMenuItemTop();
}
if(this.timer) return ;
if(!this.menuHeight) {
await this.getElRect('menu-scroll-view', 'menuHeight');
}
setTimeout(() => { //
this.timer = null;
// scrollHeight
let scrollHeight = e.detail.scrollTop + this.menuHeight / 2;
for (let i = 0; i < this.arr.length; i++) {
let height1 = this.arr[i];
let height2 = this.arr[i + 1];
// height2
if (!height2 || scrollHeight > height1 && scrollHeight < height2) {
// this.leftMenuStatus(i);
return ;
}
}
}, 10)
}
}
}
</script>
<style lang="scss" scoped>
.u-wrap {
height: calc(100vh);
/* #ifdef H5 */
height: calc(100vh - var(--window-top));
/* #endif */
display: flex;
flex-direction: column;
}
.search{
width: 100%;
background-color:#000000;
box-sizing: border-box;
padding: 33.33rpx 26.67rpx;
position: fixed;
top: 0;
z-index: 99;
border-bottom: 1px solid #F5F6FA;
.search1{
display: flex;
align-items: center;
justify-content: space-between;
.navigation_seach{
width: 546.67rpx;
background-color: #F5F6FA;
border-radius: 6.67rpx;
height: 66.67rpx;
display: flex;
align-items: center;
color: #8F9094;
font-size: 26.67rpx;
padding-left: 22rpx;
box-sizing: border-box;
image{
width: 29.33rpx;
height: 29.33rpx;
margin-right: 22rpx;
}
}
.navigation_title_right{
display: flex;
align-items: center;
image{
width: 44rpx;
height: 44rpx;
}
>uni-navigator:first-child{
margin-right: 32.67rpx;
}
}
}
}
.u-menu-wrap {
flex: 1;
height: 100%;
display: flex;
overflow: hidden;
margin-top: 120rpx;
}
.category_left{
height: 100%;
background-color: #F5F6FA;
width: 197.33rpx;
}
.u-tab-view {
width: 200rpx;
height: 100%;
}
.u-tab-item {
width: 197.33rpx;
padding: 0 18rpx;
height: 94rpx;
font-size: 26.67rpx;
font-weight: 600;
box-sizing: border-box;
font-family: PingFang SC;
display: flex;
align-items: center;
word-wrap: break-word;
word-break: break-all;
}
.u-tab-item-active {
position: relative;
font-size: 26rpx;
font-weight: 600;
background-color: black;
color: white;
}
.u-tab-item-active::before {
content: "";
position: absolute;
height: 32rpx;
left: 0;
top: 39rpx;
}
.u-tab-view {
height: 100%;
}
.right-box {
background-color: rgb(250, 250, 250);
}
.page-view {
padding: 16rpx;
}
.class-item {
margin-bottom: 30rpx;
background-color: #fff;
padding: 16rpx;
border-radius: 8rpx;
}
.class-item:last-child {
min-height: 100vh;
}
.item-title {
font-size: 26rpx;
font-weight: bold;
}
.item-menu-name {
font-weight: normal;
font-size: 24rpx;
}
.item-container {
display: flex;
flex-wrap: wrap;
}
.thumb-box {
// width: 33.333333%;
width: 100%;
display: flex;
align-items: center;
justify-content: center;
flex-direction: column;
margin-top: 20rpx;
}
.item-menu-image {
width: 120rpx;
height: 120rpx;
}
.good_content{
display: flex;
flex-wrap: wrap;
.good_item{
font-size: 22.67rpx;
text-align: center;
margin-right: 25.33rpx;
margin-bottom: 51.33rpx;
.good_item_img{
display: block;
background-color: #999999;
width: 146.67rpx;
height: 146.67rpx;
margin-bottom: 22rpx;
}
}
.good_item:nth-child(3n+3){
margin-right: 0;
}
}
.good_item_img{
height: 100rpx;
width: 100rpx;
image{
height: 100%;
width: 100%;
}
}
</style>

140
pages/order/confirmation.vue

@ -1,17 +1,20 @@
<template>
<view>
<view class="address" @click="goAddress">
<view class="address_left">
<view class="address_title">
<view class="address_left" >
<view class="address_title" >
<image src="../../static/img/address.png" mode=""></image>
<view class="address_title_name">{{address.consignee}}</view>
<text>{{address.mobile}}</text>
<view class="address_title_name" v-if="address">{{address.consignee}}</view>
<text v-if="address">{{address.mobile}}</text>
</view>
<view class="address_content">
<view class="address_content" v-if="address">
{{address.sign_building}}
{{address.country_name}}{{address.province_name}}{{address.city_name}}{{address.address}}{{address.zipcode}}
</view>
<view class="address_title" v-if="!address">Add Shipping Address</view>
</view>
<image src="../../static/img/right.png" class="address_more"></image>
<image src="../../static/img/address_xian.png" class="address_xian" mode=""></image>
</view>
@ -110,7 +113,7 @@
<view class="left_info">
<view class="info_name">{{item.goods_name}}</view>
<view class="left_info_bottom">
<view class="info_lable">
<view class="info_lable" v-if="item.goods_attr">
<text>{{item.goods_attr |goodsAttr}}</text>
<image src="/static/img/bottom.png" mode=""></image>
</view>
@ -193,7 +196,7 @@
</view>
</view>
<!-- <pay :payShow="" :orderId=""></pay> -->
</view>
</template>
@ -220,7 +223,8 @@
total:{},
order:{},
// : 0 1 2 4
pay_index:0
pay_index:0,
}
},
methods:{
@ -228,7 +232,7 @@
useCoupons(id){
let data={_action:'cartselectbonus',bonus:id,consignee:this.address}
defaultRequest3(data,'consignee').then(res=>{
console.info(res)
if(res.error==0){
this.total=res.data.total
this.order=res.data.order
@ -237,30 +241,84 @@
},
//
getPayDate(id,will_get_integral){
let data={_action:'payorder',order_id:id,order_type:'GOODSBUY',payment_method:'alipay.native'}
defaultRequest2(data).then(res=>{
console.info(res)
if(res.error==0){
//
if(res.data.need_pay_amount==0) return
uni.requestPayment({
provider: 'alipay',
orderInfo: res.data.prepay_data.order_info, //
success: function (res) {
console.log('success:' + JSON.stringify(res));
uni.redirectTo({
url: 'paySuccess?type=0&order_id='+id+'&will_get_integral='+will_get_integral
});
},
fail: function (err) {
console.log('fail:' + JSON.stringify(err));
uni.redirectTo({
url: 'paySuccess?type=1&order_id='+id+'&will_get_integral='+will_get_integral
});
}
});
}
})
let data
if(this.pay_index ==0){
data={_action:'payorder',order_id:id,order_type:'GOODSBUY',payment_method:'paypal'}
defaultRequest2(data).then(res=>{
console.info(res,'支付')
if(res.error == 1){
}
if(res.error == 0){
if(res.data.need_pay_amount==0) return
// plus.runtime.openURL(res.data.prepay_data.checkoutnow_url)
// this.src = res.data.prepay_data.checkoutnow_url
uni.navigateTo({
url:'./paypalWebview?src='+res.data.prepay_data.checkoutnow_url
})
//
// var paypalorderInfo = {
// "clientId": 'AWYz9HwM2yVVK5PUGHIbd7xZvFDJopgMLp-5QlyeP7CjA8v1MRgYmWAqtl1mqRdtzCgvhL7iH5btuBix', //id
// "orderId": id, //id
// "userAction": "continue", // paynow/continue
// "currency":"USD", //
// "environment":"sandbox", // sandbox/live
// };
// uni.getProvider({
// service: 'payment',
// success: function (res) {
// console.log(res.provider)
// if (~res.provider.indexOf('paypal')) {
// uni.requestPayment({
// "provider": "paypal",
// "orderInfo": paypalorderInfo,
// success: function (res) {
// var rawdata = JSON.parse(res.rawdata);
// console.log("orderId" + rawdata.orderId);
// },
// fail: function (err) {
// console.log('fail:' + JSON.stringify(err));
// }
// });
// }
// }
// });
}
})
}else{
data={_action:'payorder',order_id:id,order_type:'GOODSBUY',payment_method:'alipay.native'}
defaultRequest2(data).then(res=>{
console.info(res,'支付宝')
if(res.error==0){
//
if(res.data.need_pay_amount==0) return
uni.requestPayment({
provider: 'alipay',
orderInfo: res.data.prepay_data.order_info, //
success: function (res) {
console.log('success:' + JSON.stringify(res));
uni.redirectTo({
url: 'paySuccess?type=0&order_id='+id+'&will_get_integral='+will_get_integral
});
},
fail: function (err) {
console.log('fail:' + JSON.stringify(err));
uni.redirectTo({
url: 'paySuccess?type=1&order_id='+id+'&will_get_integral='+will_get_integral
});
}
});
}
})
}
},
//
@ -272,6 +330,7 @@
url:'../account/address?type=1'
})
},
//
submitorder(){
let data={
@ -335,6 +394,7 @@
return
}
}else if(i==3){
if(this.orderDate.allow_use_integral==0){
uni.showToast({
icon:'none',
@ -342,15 +402,27 @@
})
return
}
}else{
if(!this.address){
uni.showToast({
icon:'none',
title:'please add address'
})
}else{
this.isShow=true
}
}
this.isShow=true
// this.isShow=true
}
},
onLoad(e) {
this.query=JSON.parse(e.query)
console.log(this.query,'///')
this.getList()
},
onShow() {
this.getList()
uni.$once('query' ,(query)=>{
console.info(query)
if(query.type=='address'){

33
pages/order/details.vue

@ -75,7 +75,7 @@
<view >{{goodsDate.address_detail}}</view>
</view>
</view>
<image src="../../static/img/right.png" class="address_more"></image>
<!-- <image src="../../static/img/right.png" class="address_more"></image> -->
<image src="../../static/img/address_xian.png" class="address_xian" mode=""></image>
</view>
@ -87,10 +87,10 @@
</view>
<view class="left_info">
<view class="info_name">{{item.goods_name}}</view>
<view class="left_info_bottom">
<view class="left_info_bottom" v-if="item.goods_attr">
<view class="info_lable">
<text>{{item.goods_attr |goodsAttr}}</text>
<image src="/static/img/bottom.png" mode=""></image>
<!-- <image src="/static/img/bottom.png" mode=""></image> -->
</view>
<text>x{{item.goods_number}}</text>
</view>
@ -125,10 +125,10 @@
<view>Order total</view>
<view>US${{goodsDate.total_fee}}</view>
</view>
<view class="summary_tips" v-if="details_index==0">
<!-- <view class="summary_tips" v-if="details_index==0">
<image src="../../static/img/gantan1.png" mode=""></image>
<text>Reward 10 points</text>
</view>
</view> -->
</view>
<view class="summary">
@ -137,7 +137,7 @@
<view>Order id</view>
<view class="summary_item_right">
<text>{{goodsDate.order_sn}}</text>
<button>copy</button>
<button @click="Copy(goodsDate.order_sn)">copy</button>
</view>
</view>
<view class="summary_item">
@ -271,7 +271,7 @@
//
goDetails(id){
uni.navigateTo({
url:'/pages/productDetails/index?goods_id='+id
url:'/pages/productDetails/index?goodid='+id
})
},
//
@ -328,8 +328,9 @@
},
//
getPayDate(){
console.info(this.payQuery,'支付宝')
defaultRequest2(this.payQuery).then(res=>{
console.info(res)
console.info(res,'支付宝')
if(res.error==0){
//
if(res.data.need_pay_amount==0) return
@ -377,6 +378,20 @@
this.logisticsinfo=res.data[0]
}
})
},
//
Copy(e){
console.log(e)
uni.setClipboardData({
data:e,
success:()=>{
uni.showToast({
title:'ok!',
icon:'none'
})
}
})
}
},
onLoad(e){
@ -384,7 +399,7 @@
this.details_index=e.details_index
this.query.order_id=e.id
this.cancelQuery.order_id=e.id
this.payQuery.order_id = e.id
this.getDate()
},
filters:{

30
pages/order/paypalWebview.vue

@ -0,0 +1,30 @@
<template>
<view>
<web-view :webview-styles="webviewStyles" :src="src"></web-view>
</view>
</template>
<script>
export default {
data() {
return {
webviewStyles: {
progress: {
color: '#FF3333'
}
},
src:''
}
},
onLoad(e) {
this.src = e.src
},
methods:{
}
}
</script>
<style>
</style>

799
pages/productDetails/index.vue

File diff suppressed because it is too large

41
pages/productDetails/review.vue

@ -17,7 +17,7 @@
<view class="left_info">
<view class="info_name">{{item.goods_name}}</view>
<view class="left_info_bottom">
<view class="info_lable">
<view class="info_lable" v-if="item.goods_attr">
<text>{{item.goods_attr |goodsAttr}}</text>
<image src="/static/img/bottom.png" mode=""></image>
</view>
@ -38,17 +38,19 @@
<textarea placeholder="Write reviews" v-else v-model="query1.comments[index].comment"></textarea>
</view>
<view class="reason_upload">
<view class="reason_upload_item">
<image src="/static/img/vedio.png" class="upload_item_camera1" mode=""></image>
<view class="reason_upload_item" @click="UploadVideo">
<image src="/static/img/vedio.png" class="upload_item_camera1" mode=""v-if="!VideoSrc"></image>
<image :src="VideoSrc" class="upload_item_camera" mode="" v-else></image>
<view>Upload the video</view>
</view>
<view class="reason_upload_item">
<image src="/static/img/camera.png" class="upload_item_camera" mode=""></image>
<view class="reason_upload_item" @click="Upimg" >
<image src="/static/img/camera.png" class="upload_item_camera" mode="" v-if="!imgSrc"></image>
<image :src="imgSrc" class="upload_item_camera" mode="" v-else></image>
<view>Upload pictures</view>
</view>
<view class="reason_upload_item reason_upload_item1">
<image src="/static/img/logo.png" class="upload_item_image" mode=""></image>
<!-- <image :src="" class="upload_item_image" mode=""></image> -->
</view>
</view>
@ -82,7 +84,9 @@
order_id:'',
order_sn:'',
comments:[]
}
},
VideoSrc:'',
imgSrc:''
}
},
methods:{
@ -130,6 +134,29 @@
back(){
uni.navigateBack()
},
//
UploadVideo(){
var that = this
uni.chooseVideo({
sourceType: ['camera', 'album'],
success: function (res) {
console.log(res)
that.VideoSrc = res.tempFilePath;
}
})
},
//
Upimg(){
uni.chooseImage({
count: 6, //9
sizeType: ['original', 'compressed'], //
sourceType: ['album'], //
success: function (res) {
console.log(JSON.stringify(res.tempFilePaths));
}
});
}
},
onLoad(e) {

1195
pages/shippingCart/index.vue

File diff suppressed because it is too large

139
pages/specialTitle/index.vue

@ -0,0 +1,139 @@
<template>
<view class="body">
<uni-nav-bar left-icon="left" @clickLeft="back()" :title="title" />
<view v-for="(item,index) in list " :key="item.zone_id">
<view v-for="(item1,index1) in item.blocks " :key="item1.block_pic">
<view class="ONEPIC" v-if="item.zone_code=='ONEPIC' && item.zone_status=='NORMAL'" :style="{height:(item.zone_code=='ONEPIC')?item.zone_column+'rpx':'200rpx'}">
<!-- class="discount page_padding" -->
<image :src="item1.block_pic" mode="" @click="imgTo()" ></image>
</view>
<view class="TWOPIC" v-if="item.zone_code =='TWOPIC'">
<image :src="item1.block_pic"></image>
</view>
<!-- TWOPIC -->
<view class="TWOPIC" :style="{height:(item.zone_code=='TWOPIC')?item.zone_column+'rpx':'200rpx'}" v-if="item.zone_code=='TWOPIC' && item.zone_status=='NORMAL'">
<image :src="item1.block_pic" @click="imgTo(item1)"mode="" v-for="(item1,index1) in item.blocks" :key="item1.block_id"></image>
</view>
<!-- THREEPIC -->
<view class="THREEPIC":style="{height:(item.zone_code=='THREEPIC')?item.zone_column+'rpx':'200rpx'}" v-if="item.zone_code=='THREEPIC' && item.zone_status=='NORMAL'">
<image :src="item1.block_pic" @click="imgTo(item1)" mode="" v-for="(item1,index1) in item.blocks" :key="item1.block_id"></image>
</view>
<!-- FOURPIC -->
<view class="FOURPIC":style="{height:(item.zone_code=='FOURPIC')?item.zone_column+'rpx':'200rpx'}" v-if="item.zone_code=='FOURPIC' && item.zone_status=='NORMAL'">
<image :src="item1.block_pic" mode="" @click="imgTo(item1)" v-for="(item1,index1) in item.blocks" :key="item1.block_id"></image>
</view>
<!-- FIVEPIC -->
<view class="FIVEPIC" :style="{height:(item.zone_code=='FIVEPIC')?item.zone_column+'rpx':'200rpx'}" v-if="item.zone_code=='FIVEPIC' && item.zone_status=='NORMAL'">
<image :src="item1.block_pic" mode="" @click="imgTo(item1)" v-for="(item1,index1) in item.blocks" :key="item1.block_id"></image>
</view>
<!-- SIXPIC -->
<view class="SIXPIC":style="{height:(item.zone_code=='SIXPIC')?item.zone_column+'rpx':'200rpx'}" v-if="item.zone_code=='SIXPIC' && item.zone_status=='NORMAL'">
<image :src="item1.block_pic" mode="" @click="imgTo(item1)" v-for="(item1,index1) in item.blocks" :key="item1.block_id"></image>
</view>
</view>
</view>
</view>
</template>
<script>
import {defaultRequest,defaultRequest4} from '../../api/index.js'
export default {
data() {
return {
list:[],
data: {
_action:'getpagedata',
pagecode:''
},
title:''
}
},
onLoad(e) {
console.log(e)
this.title = e.title
this.data.pagecode = e.id
this.getpage()
},
methods: {
getpage(){
let imglist
defaultRequest(this.data).then( res =>{
if(res.error ==0){
console.log(res,'数据')
this.list= res.data.zones
console.log(this.list)
this.list.map( item =>{
console.log(item,'item')
})
}
})
},
back(){
uni.navigateBack({
delta:1
})
}
}
}
</script>
<style lang="scss" scoped>
page{
background-color: aliceblue;
margin: 20rpx;
}
.ONEPIC{
width: 100%;
height: 480rpx;
margin-top: -1rpx;
image{
height: 100%;
width: 100%;
}
}
.TWOPIC{
width: 100%;
display: flex;
image{
width: 50%;
}
}
.THREEPIC{
width: 100%;
display: flex;
margin: 0;
justify-content: space-between;
image{
width: 100%;
}
}
.FOURPIC{
width: 100%;
display: flex;
justify-content: space-between;
image{
width: 100%;
}
}
.FIVEPIC{
width: 100%;
display: flex;
justify-content: space-between;
image{
width: 100%;
}
}
.SIXPIC{
width: 100%;
display: flex;
justify-content: space-between;
image{
width: 100%;
}
}
.body{
padding-top: 50.33rpx;
}
</style>

BIN
static/icon/big.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

BIN
static/icon/big2.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

BIN
static/icon/home.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1012 B

BIN
static/icon/home1.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

BIN
static/icon/home3.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.3 KiB

BIN
static/icon/home4.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

BIN
static/icon/home_white.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

BIN
static/icon/next.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

BIN
static/icon/nologin.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

BIN
static/icon/nologin2.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

BIN
static/icon/play.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

BIN
static/icon/user_bg.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 966 KiB

BIN
static/img/Mes.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.9 KiB

BIN
static/img/copyLink.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

BIN
static/img/dope plus_white.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

BIN
static/img/down.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

BIN
static/img/facebook1.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

BIN
static/img/favorites_white.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

BIN
static/img/like_white.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

BIN
static/img/more1.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

BIN
static/img/msg_white.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

BIN
static/img/qr.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

BIN
static/img/shop_cart1.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

BIN
static/img/summer.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

25
store/store.js

@ -0,0 +1,25 @@
import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
const store = new Vuex.Store({
state(){
return{
count: 0,
goodslist:[]
}
},
mutations: {
addSave(state, data) {
let str = [];
str.push(data);
console.log(data)
state.goodslist.push(str)
},
increment (state) {
state.count++
console.log(store.state.count) // -> 1
}
},
actions: {}
})
export default store

BIN
unpackage/res/icons/dope.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

BIN
unpackage/res/icons/dope2.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

BIN
unpackage/resources/__UNI__C0E0831/www.zip

Binary file not shown.

1
unpackage/resources/__UNI__C0E0831/www/__uniappchooselocation.js

File diff suppressed because one or more lines are too long

BIN
unpackage/resources/__UNI__C0E0831/www/__uniapperror.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

1
unpackage/resources/__UNI__C0E0831/www/__uniappes6.js

File diff suppressed because one or more lines are too long

1
unpackage/resources/__UNI__C0E0831/www/__uniappopenlocation.js

File diff suppressed because one or more lines are too long

1
unpackage/resources/__UNI__C0E0831/www/__uniapppicker.js

File diff suppressed because one or more lines are too long

8
unpackage/resources/__UNI__C0E0831/www/__uniappquill.js

File diff suppressed because one or more lines are too long

1
unpackage/resources/__UNI__C0E0831/www/__uniappquillimageresize.js

File diff suppressed because one or more lines are too long

1
unpackage/resources/__UNI__C0E0831/www/__uniappscan.js

File diff suppressed because one or more lines are too long

BIN
unpackage/resources/__UNI__C0E0831/www/__uniappsuccess.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

25
unpackage/resources/__UNI__C0E0831/www/__uniappview.html

@ -0,0 +1,25 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8" />
<script>
var __UniViewStartTime__ = Date.now();
var coverSupport = 'CSS' in window && typeof CSS.supports === 'function' && (CSS.supports('top: env(a)') ||
CSS.supports('top: constant(a)'))
document.write(
'<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' +
(coverSupport ? ', viewport-fit=cover' : '') + '" />')
</script>
<title>View</title>
<link rel="stylesheet" href="view.css" />
</head>
<body>
<div id="app"></div>
<script src="__uniappes6.js"></script>
<script src="view.umd.min.js"></script>
<script src="app-view.js"></script>
</body>
</html>

3
unpackage/resources/__UNI__C0E0831/www/androidPrivacy.json

@ -0,0 +1,3 @@
{
"prompt" : "none"
}

8
unpackage/resources/__UNI__C0E0831/www/app-config-service.js

@ -0,0 +1,8 @@
var isReady=false;var onReadyCallbacks=[];
var isServiceReady=false;var onServiceReadyCallbacks=[];
var __uniConfig = {"pages":["pages/index/index","pages/index/search","pages/index/address","pages/category/index","pages/account/index","pages/account/myProfile","pages/account/settings","pages/account/changeImg","pages/account/wishlist","pages/account/favorites","pages/account/message","pages/account/new","pages/login/index","pages/login/verifyEmail","pages/login/changePwd","pages/account/myOrders","pages/order/confirmation","pages/account/myCoupons","pages/index/pickUpCentre","pages/order/paySuccess","pages/account/address","pages/account/addAddress","pages/account/pointsDetails","pages/order/details","pages/order/logisticsDetails","pages/order/refund","pages/order/refundDetails","pages/category/productList","pages/shippingCart/index","pages/productDetails/index","pages/productDetails/goodsReview","pages/account/myReview","pages/productDetails/review","pages/index/flashSale"],"window":{"navigationBarTextStyle":"black","navigationBarTitleText":"DOPE PLUS","navigationBarBackgroundColor":"#F8F8F8","backgroundColor":"#F8F8F8"},"tabBar":{"borderStyle":"black","backgroundColor":"#FFFFFF","color":"#999999","selectedColor":"#000000","height":"60px","midButton":{"width":"80px","height":"70px","iconWidth":"60px","iconPath":"static/img/tabbar_img.png"},"list":[{"pagePath":"pages/index/index","iconPath":"static/img/home.png","selectedIconPath":"static/img/home1.png","text":"Home"},{"pagePath":"pages/category/index","iconPath":"static/img/Category.png","selectedIconPath":"static/img/Category1.png","text":"Category"},{"pagePath":"pages/shippingCart/index","iconPath":"static/img/Cart.png","selectedIconPath":"static/img/cart1.png","text":"Cart"},{"pagePath":"pages/account/index","iconPath":"static/img/Account.png","selectedIconPath":"static/img/Account1.png","text":"Account"}]},"nvueCompiler":"uni-app","nvueStyleCompiler":"uni-app","renderer":"auto","splashscreen":{"alwaysShowBeforeRender":true,"autoclose":false},"appname":"DOPE PLUS","compilerVersion":"3.4.18","entryPagePath":"pages/index/index","networkTimeout":{"request":60000,"connectSocket":60000,"uploadFile":60000,"downloadFile":60000}};
var __uniRoutes = [{"path":"/pages/index/index","meta":{"isQuit":true,"isTabBar":true},"window":{"navigationBarTitleText":"uni-app","titleNView":false}},{"path":"/pages/index/search","meta":{},"window":{"titleNView":false}},{"path":"/pages/index/address","meta":{},"window":{"navigationBarTitleText":"Address","navigationBarBackgroundColor":"#FFFFFF"}},{"path":"/pages/category/index","meta":{"isQuit":true,"isTabBar":true},"window":{"titleNView":false}},{"path":"/pages/account/index","meta":{"isQuit":true,"isTabBar":true},"window":{"titleNView":false}},{"path":"/pages/account/myProfile","meta":{},"window":{"navigationBarTitleText":"My Profile","navigationBarBackgroundColor":"#FFFFFF"}},{"path":"/pages/account/settings","meta":{},"window":{"navigationBarTitleText":"Settings","navigationBarBackgroundColor":"#FFFFFF"}},{"path":"/pages/account/changeImg","meta":{},"window":{"navigationStyle":"custom","enablePullDownRefresh":false}},{"path":"/pages/account/wishlist","meta":{},"window":{"titleNView":false}},{"path":"/pages/account/favorites","meta":{},"window":{"titleNView":false}},{"path":"/pages/account/message","meta":{},"window":{"titleNView":false}},{"path":"/pages/account/new","meta":{},"window":{"navigationBarTitleText":"nothing","navigationBarBackgroundColor":"#FFFFFF"}},{"path":"/pages/login/index","meta":{},"window":{"titleNView":false}},{"path":"/pages/login/verifyEmail","meta":{},"window":{"navigationBarTitleText":"Verify Email Address","navigationBarBackgroundColor":"#FFFFFF"}},{"path":"/pages/login/changePwd","meta":{},"window":{"navigationBarTitleText":"Change Password","navigationBarBackgroundColor":"#FFFFFF"}},{"path":"/pages/account/myOrders","meta":{},"window":{"navigationBarTitleText":"My orders","navigationBarBackgroundColor":"#FFFFFF"}},{"path":"/pages/order/confirmation","meta":{},"window":{"navigationBarTitleText":"0rder Confirmation","navigationBarBackgroundColor":"#FFFFFF"}},{"path":"/pages/account/myCoupons","meta":{},"window":{"titleNView":false}},{"path":"/pages/index/pickUpCentre","meta":{},"window":{"titleNView":false}},{"path":"/pages/order/paySuccess","meta":{},"window":{"navigationBarTitleText":"Pay success","navigationBarBackgroundColor":"#FFFFFF","enablePullDownRefresh":true}},{"path":"/pages/account/address","meta":{},"window":{"navigationBarTitleText":"Shipping Address","navigationBarBackgroundColor":"#FFFFFF"}},{"path":"/pages/account/addAddress","meta":{},"window":{"navigationBarTitleText":"Shipping Address","navigationBarBackgroundColor":"#FFFFFF"}},{"path":"/pages/account/pointsDetails","meta":{},"window":{"titleNView":false,"enablePullDownRefresh":true}},{"path":"/pages/order/details","meta":{},"window":{"navigationBarTitleText":"Order details","navigationBarBackgroundColor":"#FFFFFF"}},{"path":"/pages/order/logisticsDetails","meta":{},"window":{"navigationBarTitleText":"Logistics details","navigationBarBackgroundColor":"#FFFFFF"}},{"path":"/pages/order/refund","meta":{},"window":{"navigationBarTitleText":"Refund","navigationBarBackgroundColor":"#FFFFFF"}},{"path":"/pages/order/refundDetails","meta":{},"window":{"navigationBarTitleText":"Refund Details","navigationBarBackgroundColor":"#FFFFFF"}},{"path":"/pages/category/productList","meta":{},"window":{"titleNView":false,"enablePullDownRefresh":true}},{"path":"/pages/shippingCart/index","meta":{"isQuit":true,"isTabBar":true},"window":{"titleNView":false}},{"path":"/pages/productDetails/index","meta":{},"window":{"titleNView":false}},{"path":"/pages/productDetails/goodsReview","meta":{},"window":{"navigationBarTitleText":"Review","navigationBarBackgroundColor":"#FFFFFF"}},{"path":"/pages/account/myReview","meta":{},"window":{"navigationBarTitleText":"My Review","navigationBarBackgroundColor":"#FFFFFF"}},{"path":"/pages/productDetails/review","meta":{},"window":{"titleNView":false}},{"path":"/pages/index/flashSale","meta":{},"window":{"titleNView":false}}];
__uniConfig.onReady=function(callback){if(__uniConfig.ready){callback()}else{onReadyCallbacks.push(callback)}};Object.defineProperty(__uniConfig,"ready",{get:function(){return isReady},set:function(val){isReady=val;if(!isReady){return}const callbacks=onReadyCallbacks.slice(0);onReadyCallbacks.length=0;callbacks.forEach(function(callback){callback()})}});
__uniConfig.onServiceReady=function(callback){if(__uniConfig.serviceReady){callback()}else{onServiceReadyCallbacks.push(callback)}};Object.defineProperty(__uniConfig,"serviceReady",{get:function(){return isServiceReady},set:function(val){isServiceReady=val;if(!isServiceReady){return}const callbacks=onServiceReadyCallbacks.slice(0);onServiceReadyCallbacks.length=0;callbacks.forEach(function(callback){callback()})}});
service.register("uni-app-config",{create(a,b,c){if(!__uniConfig.viewport){var d=b.weex.config.env.scale,e=b.weex.config.env.deviceWidth,f=Math.ceil(e/d);Object.assign(__uniConfig,{viewport:f,defaultFontSize:Math.round(f/20)})}return{instance:{__uniConfig:__uniConfig,__uniRoutes:__uniRoutes,global:void 0,window:void 0,document:void 0,frames:void 0,self:void 0,location:void 0,navigator:void 0,localStorage:void 0,history:void 0,Caches:void 0,screen:void 0,alert:void 0,confirm:void 0,prompt:void 0,fetch:void 0,XMLHttpRequest:void 0,WebSocket:void 0,webkit:void 0,print:void 0}}}});

1
unpackage/resources/__UNI__C0E0831/www/app-config.js

@ -0,0 +1 @@
(function(e){function r(r){for(var n,l,i=r[0],p=r[1],a=r[2],c=0,s=[];c<i.length;c++)l=i[c],Object.prototype.hasOwnProperty.call(o,l)&&o[l]&&s.push(o[l][0]),o[l]=0;for(n in p)Object.prototype.hasOwnProperty.call(p,n)&&(e[n]=p[n]);f&&f(r);while(s.length)s.shift()();return u.push.apply(u,a||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,i=1;i<t.length;i++){var p=t[i];0!==o[p]&&(n=!1)}n&&(u.splice(r--,1),e=l(l.s=t[0]))}return e}var n={},o={"app-config":0},u=[];function l(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,l),t.l=!0,t.exports}l.m=e,l.c=n,l.d=function(e,r,t){l.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},l.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},l.t=function(e,r){if(1&r&&(e=l(e)),8&r)return e;if(4&r&&"object"===typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(l.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var n in e)l.d(t,n,function(r){return e[r]}.bind(null,n));return t},l.n=function(e){var r=e&&e.__esModule?function(){return e["default"]}:function(){return e};return l.d(r,"a",r),r},l.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},l.p="/";var i=this["webpackJsonp"]=this["webpackJsonp"]||[],p=i.push.bind(i);i.push=r,i=i.slice();for(var a=0;a<i.length;a++)r(i[a]);var f=p;t()})([]);

45
unpackage/resources/__UNI__C0E0831/www/app-service.js

File diff suppressed because one or more lines are too long

1
unpackage/resources/__UNI__C0E0831/www/app-view.js

File diff suppressed because one or more lines are too long

1
unpackage/resources/__UNI__C0E0831/www/manifest.json

@ -0,0 +1 @@
{"@platforms":["android","iPhone","iPad"],"id":"__UNI__C0E0831","name":"DOPE PLUS","version":{"name":"1.0.0","code":"100"},"description":"","launch_path":"__uniappview.html","developer":{"name":"","email":"","url":""},"permissions":{"Payment":{},"UniNView":{"description":"UniNView原生渲染"}},"plus":{"useragent":{"value":"uni-app","concatenate":true},"splashscreen":{"target":"id:1","autoclose":true,"waiting":true,"delay":0},"popGesture":"close","launchwebview":{"id":"1","kernel":"WKWebview"},"statusbar":{"immersed":"supportedDevice","style":"dark","background":"#F8F8F8"},"usingComponents":true,"nvueStyleCompiler":"uni-app","compilerVersion":3,"uniStatistics":{"enable":false},"allowsInlineMediaPlayback":true,"safearea":{"background":"#FFFFFF","bottom":{"offset":"auto"}},"uni-app":{"compilerVersion":"3.4.18","control":"uni-v3","nvueCompiler":"uni-app","renderer":"auto","nvue":{"flex-direction":"column"},"nvueLaunchMode":"normal"},"tabBar":{"borderStyle":"rgba(0,0,0,0.4)","backgroundColor":"#FFFFFF","color":"#999999","selectedColor":"#000000","height":"60px","midButton":{"width":"80px","height":"70px","iconWidth":"60px","iconPath":"static/img/tabbar_img.png"},"list":[{"pagePath":"pages/index/index","iconPath":"static/img/home.png","selectedIconPath":"static/img/home1.png","text":"Home"},{"pagePath":"pages/category/index","iconPath":"static/img/Category.png","selectedIconPath":"static/img/Category1.png","text":"Category"},{"pagePath":"pages/shippingCart/index","iconPath":"static/img/Cart.png","selectedIconPath":"static/img/cart1.png","text":"Cart"},{"pagePath":"pages/account/index","iconPath":"static/img/Account.png","selectedIconPath":"static/img/Account1.png","text":"Account"}],"child":["lauchwebview"],"selected":0},"launch_path":"__uniappview.html"}}

BIN
unpackage/resources/__UNI__C0E0831/www/static/icon/1024.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

BIN
unpackage/resources/__UNI__C0E0831/www/static/icon/left.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 355 B

BIN
unpackage/resources/__UNI__C0E0831/www/static/img/APay.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

BIN
unpackage/resources/__UNI__C0E0831/www/static/img/About CHIC.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

BIN
unpackage/resources/__UNI__C0E0831/www/static/img/Account.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

BIN
unpackage/resources/__UNI__C0E0831/www/static/img/Account1.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

BIN
unpackage/resources/__UNI__C0E0831/www/static/img/Attention CHIC.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

BIN
unpackage/resources/__UNI__C0E0831/www/static/img/Cart.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

BIN
unpackage/resources/__UNI__C0E0831/www/static/img/Category.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

BIN
unpackage/resources/__UNI__C0E0831/www/static/img/Category1.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

BIN
unpackage/resources/__UNI__C0E0831/www/static/img/GPay.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

BIN
unpackage/resources/__UNI__C0E0831/www/static/img/Help Center.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

BIN
unpackage/resources/__UNI__C0E0831/www/static/img/My Address.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

BIN
unpackage/resources/__UNI__C0E0831/www/static/img/My Review.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

BIN
unpackage/resources/__UNI__C0E0831/www/static/img/Processing.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

BIN
unpackage/resources/__UNI__C0E0831/www/static/img/Return Policy.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

BIN
unpackage/resources/__UNI__C0E0831/www/static/img/Returns.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save