游梦婷 2 years ago
parent 1dbc0c1249
commit 55479046ed
  1. 13
      App.vue
  2. 33
      Utils/physicalObject.js
  3. 553
      components/dataList/dataList.vue
  4. 3
      components/dataList/emptyImage.js
  5. 1
      components/pick-regions/pick-regions.vue
  6. 14
      pages.json
  7. 10
      pages/address/addNewAddress/addNewAddress.vue
  8. 350
      pages/address/addNewAddress/demo.vue
  9. 354
      pages/address/address.vue
  10. 43
      pages/classify/cart-choose/cart-choose.vue
  11. 46
      pages/classify/cart-choose/data.json
  12. 199
      pages/classify/cart/cart.vue
  13. 4
      pages/classify/goods-list/goods-list.vue
  14. 582
      pages/classify/goods-search/data2.json
  15. 11
      pages/classify/goods-search/goods-search.vue
  16. 46
      pages/classify/goodsDetail/data.json
  17. 876
      pages/classify/goodsDetail/goodsDetail.vue
  18. 54
      pages/classify/order/orderDetail.vue
  19. 2
      pages/classify/order/orderList.vue
  20. 600
      pages/classify/order/pay.vue
  21. 70
      pages/classify/order/paymentResult.vue
  22. 497
      pages/settleAccounts/detail-popup/detail-popup.vue
  23. 987
      pages/settleAccounts/settleAccounts.vue
  24. 3
      pages/tabBar/classify/classify.vue
  25. 78
      pages/user/order_list/order_list.vue
  26. 8
      uni.scss

@ -66,8 +66,7 @@
pelletoilList: '',
//
shareNum:0,
//
cartNum:0,
},
onLaunch: function() {},
@ -231,15 +230,7 @@
}
}
})
uni.getStorage({
key: 'cartNum',
success(e) {
if (e.data) {
that.globalData.cartNum = e.data;
console.log(that.globalData.cartNum,"getStorage")
}
}
})
// #endif
},
onHide: function() {}

@ -2,8 +2,13 @@ import {
POST
} from "./Request.js";
let app = getApp();
let base = app.globalData.url;
// let orderbase = app.globalData.orderurl;
// let base = "http://192.168.1.16:9301/crest/";
let orderbase = app.globalData.orderurl;
// let userbase = app.globalData.userurl;
// let v1base = app.globalData.v1url;
// let brestBase = app.globalData.brestUrl;
@ -37,8 +42,8 @@ export const insertShoppingCart = params => {
}
// 增加商品数量
export const goodsAddNum = params => {
return POST('GET', `${base}/shoppingCart/goodsAddNum`, params).then(res => res.data);
export const goodsEditNum = params => {
return POST('GET', `${base}/shoppingCart/goodsEditNum`, params).then(res => res.data);
}
// 删除购物车商品
export const deleteShoppingCart = params => {
@ -77,7 +82,7 @@ export const findDeliveryAddressById = params => {
// 根据id 删除收货地址
export const deleteAddress = params => {
return POST('GET', `${base}/deliveryAddress/deleteShoppingCart`, params).then(res => res.data);
return POST('GET', `${base}/deliveryAddress/deleteDeliveryAddress`, params).then(res => res.data);
}
// 查询物流信息
@ -87,4 +92,24 @@ export const getLogisticsMsg = params => {
// 根据区域查询运费和包邮价格
export const getRegionFreight = params => {
return POST('GET', `${base}/common/getRegionFreight`, params).then(res => res.data);
}
// 查询收货地址包邮金额和运费金额
export const getAddressPrice = params => {
return POST('GET', `${base}/deliveryAddress/getAddressPrice`, params).then(res => res.data);
}
//查询可用优惠券
export const getUserExclusiveDiscount = params => {
return POST('GET', `${base}/userDiscount/getUserExclusiveDiscount`, params).then(res => res.data);
}
//下单
export const createOrder = params => {
return POST('POST', `${orderbase}/create`, params).then(res => res.data);
}
//查询用户相关内容,积分
export const findUser = params => {
return POST('GET', `${base}/highUser/findUser`, params).then(res => res.data);
}

@ -1,553 +0,0 @@
<template>
<view
class="data-list-components "
@touchmove.stop.prevent
>
<!-- :class="{ 'safe-area-inset-bottom': safeAreaInsetBottom }" -->
<!-- :style="[dataListStyle]" -->
<scroll-view
class="scroll-view"
:scroll-top="scrollTop"
:scroll-y="scrollingEnabled"
:lower-threshold="lowerThreshold"
:enable-back-to-top="enableBackToTop"
@scroll="handleScroll"
@scrolltolower="handleScrolltolower"
@touchstart="handleTouchStart"
@touchmove="handleTouchMove"
@touchend="handleTouchEnd"
>
<view class="scroll-content" :style="[scrollContentStyle]">
<!-- 下拉 -->
<view class="pull-down-view">
<slot name="refresh" v-if="$slots.refresh"></slot>
<view class="refresh-view" v-else>
<text :class="' pull-down-text icon-ymt '+(refreshStatus == 'soon'?' to-blod-down ':refreshStatus == 'sure'?' to-blod-up ':' ') " >{{ refreshText[refreshStatus] }}</text>
</view>
</view>
<view class="scroll-list"><slot></slot></view>
<view class="loading-view" v-if="loadingMask">
<view class="loading-animation"></view>
<text class="loading-text">加载中...</text>
</view>
<!-- -->
<view class=" empty-content" v-if="showEmpty">
<!-- <image class="empty-image" :src="emptyImage || defaultEmptyImage" mode=""></image> -->
<text class="empty-text">{{ emptyText }}</text>
</view>
<!-- 底部上滑 -->
<view class="pull-up-view" >
<slot name="load" v-if="$slots.load"></slot>
<view class="load-view" v-else>
<view class="loading-animation" v-if="loadStatus == 'loading'"></view>
<text :class="' loading-text icon-ymt '+(loadStatus == 'soon'?' to-blod-up ':loadStatus == 'sure'?' to-blod-down ':' ') " >{{ loadText[loadStatus] }}</text>
</view>
</view>
</view>
</scroll-view>
</view>
</template>
<script>
/**
* data-list 数据列表
* @description 数据列表展示上拉加载更多数据下拉刷新数据
* @tips 如果父组件有设置padding可能造成组件高度不正确的问题
* @property {Number, String} page 默认分页
* @property {Number, String} size 默认分页大小
* @property {Boolean} loading 是否显示首次加载时的loading遮罩层
* @property {Boolean} safeAreaInsetBottom 是否开启底部安全区域适配
* @property {String} emptyImage 空数据提示图片
* @property {String} emptyText 空数据提示文字
* @property {Boolean} enableBackToTop iOS点击顶部状态栏安卓双击标题栏时滚动条返回顶部
* @property {Number, String} refresherThreshold 下拉刷新阈值单位px触发 refresherrefresh 事件
* @property {Number, String} lowerThreshold 距底部多远时单位px触发 scrolltolower 事件
* @methods {Function} loadData 加载数据方法
* @methods {Function} refreshData 刷新数据方法
* @methods {Function} computedHeight 重新计算高度方法有时候页面某些地方布局被改变了会造成组件高度不能撑满的问题就调用此方法
* @event {Function} load 加载 事件参数一分页请求参数参数二回调方法需要将列表和数据总数回调回去计算 {list:数据列表对象,total:后端数据总数}
* @event {Function} refresh 刷新 事件参数一分页请求参数参数二回调方法需要将列表和数据总数回调回去计算 {list:数据列表对象,total:后端数据总数}
* @event {Function} scroll 滚动 事件
* @event {Function} scrolltolower 上拉触底 事件
* @event {Function} refresherpulling 正在下拉 事件
* @event {Function} refresherrestore 下拉刷新被复位 事件
* @event {Function} refresherabort 下拉刷新被终止 事件
* @event {Function} refresherrefresh 下拉刷新被触发 事件
* @example <data-list class="data-list" ref="list" @load="handleLoad" @refresh="handleRefresh" @scroll="handleScroll"></data-list>
*/
import emptyImages from './emptyImage.js';
export default {
name: 'data-list',
props: {
page: {
type: [Number, String],
default: 1
},
size: {
type: [Number, String],
default: 15
},
loading: {
type: Boolean,
default: false
},
safeAreaInsetBottom: {
type: Boolean,
default: true
},
emptyImage: {
type: String
},
emptyText: {
type: String,
default: '暂无数据~'
},
enableBackToTop: {
type: Boolean,
default: false
},
showEmpty:{
type: Boolean,
default: false
},
refresherThreshold: {
type: [Number, String],
default: 50
},
lowerThreshold: {
type: [Number, String],
default: 50
},
selectObject:{
type:Object,
default:{
selectIndex:0,
length:0
}
}
},
data() {
return {
list: [], //
total: -1, //
currentPage: 1, //
currentSize: 10, //
// showEmpty: false, //
waiting: false, //
loadingMask: false, //
scrollTop: 0, //
currentScrollTop: 0, //
scrollingEnabled: true, //
pullingDown: false, //
pullDownHeight: 0, //
pullDownTimeStamp: 0, //
pullingUp: false, //
pullUpHeight: 0, //
pullUpTimeStamp: 0, //
maxDistance:100,
touchDirection:'top',
loadStatus: 'soon',
loadText: {
loading: '加载中~',
nomore: '没有更多啦~',
soon: '上滑查看下一分类',
sure: '释放查看下一分类',
},
refreshStatus: 'soon',
refreshText: {
soon: '下滑查看上一分类',
sure: '释放查看上一分类',
nomore: '没有更多啦~',
refreshing: '正在刷新中~'
},
defaultEmptyImage: emptyImages.data,
componentsHeight: 'auto' //
};
},
watch:{
selectObject:{
handler(n, o) {
if(n.selectIndex == n.length-1){
this.loadStatus = "nomore"
}else{
this.loadStatus = "soon"
}
if(n.selectIndex == 0){
this.refreshStatus = "nomore"
}else{
this.refreshStatus = "soon"
}
},
deep:true, //
immediate:false, //
},
},
computed: {
// dataListStyle() {
// const { componentsHeight } = this;
// return {
// height: componentsHeight
// };
// },
scrollContentStyle() {
const style = {};
const { pullDownHeight, pullingDown,pullUpHeight, pullingUp } = this;
// if(this.touchDirection == 'top'){
style.transform = pullingDown ? `translateY(${pullDownHeight}px)` : `translateY(0px)`;
style.transition = pullingDown ? `transform .1s linear` : `transform 0.3s cubic-bezier(0.19,1.64,0.42,0.72)`;
// }else if(this.touchDirection == 'bottom'){
// style.transform = pullingUp ? `translateY(0px)` : `translateY(0px)`;
// style.transition = pullingUp ? `transform .1s linear` : `transform 0.3s cubic-bezier(0.19,1.64,0.42,0.72)`;
// }
return style;
}
},
mounted() {
this.handleInit();
},
methods: {
//
loadData() {
this.waiting = true;
this.$emit('load',res => {
this.waiting = false;
this.list = res.list;
this.total = res.total;
this.currentPage++;
this.handleComputeData();
// this.computedHeight();
});
},
//
computedHeight() {
// this.getRect('.data-list-components').then(res => {
// console.log(res,"res")
// // #ifdef H5
// this.componentsHeight = `calc(100vh - ${res.top}px - var(--window-top))`;
// // #endif
// // #ifndef H5
// this.componentsHeight = `calc(100vh - ${res.top}px)`;
// // #endif
// });
},
//
handleComputeData() {
const len = this.list.length;
const total = this.total;
console.log(len,total)
if (len >= this.total) {
this.loadStatus = 'soon';
} else if (len < this.total) {
this.loadStatus = 'loading';
}
},
//
handleScrolltolower(e) {
this.$emit('scrolltolower', e);
if (this.loadStatus == 'nomore' || this.waiting) return;
this.loadData();
},
//
handleScroll(e) {
// this.currentScrollTop = e.detail.scrollTop;
// if (e.detail.scrollTop <= 20) {
// this.touchDirection = 'top';
// } else {
// this.touchDirection = 'bottom';
// }
// console.log(e.detail.scrollTop)
this.$emit('scroll', e);
},
//
handleTouchStart(e) {
// if (e.detail.scrollTop <= 20) {
// }
// console.log(e)
// if(this.touchDirection=='top'){
this.pullingDown = true;
// }else if(this.touchDirection=='bottom'){
// this.pullingUp =true;
// }
this.currentTouchStartY = e.touches[0].clientY;
},
//
handleTouchMove(e) {
// this.$emit('refresherpulling', e);
//
console.log(e.touches[0].clientY >= this.currentTouchStartY)
if (e.touches[0].clientY >= this.currentTouchStartY){
this.touchDirection=='top'
const currentTouchMoveY = e.touches[0].clientY;
let movingDistance = (currentTouchMoveY - this.currentTouchStartY) ;
if(this.selectObject.selectIndex == 0){
this.refreshStatus = 'nomore'
}
else if(movingDistance > this.refresherThreshold){
this.refreshStatus = 'sure';//
}else{
this.refreshStatus = 'soon';//
}
let computeDistance = movingDistance;
if(computeDistance > this.maxDistance){
computeDistance = this.maxDistance;
}
this.pullDownHeight = computeDistance ;
}else{
//
this.touchDirection=='bottom';
const currentTouchMoveY = e.touches[0].clientY;
let movingDistance = (this.currentTouchStartY - currentTouchMoveY ) ;
if(this.selectObject.selectIndex == this.selectObject.length-1){
this.loadStatus = 'nomore';
}else if (movingDistance >= this.lowerThreshold) {
this.loadStatus = 'sure';//
} else {
this.loadStatus = 'soon';//
}
let computeDistance = movingDistance;
if(computeDistance > this.maxDistance){
computeDistance = this.maxDistance;
}
this.pullUpHeight = computeDistance;
}
},
//
handleTouchEnd(e) {
console.log(this.touchDirection)
//
if(this.touchDirection == 'top'){
if(this.pullDownHeight>=this.refresherThreshold&&this.selectObject.selectIndex > 0){
this.$emit('refresherrefresh', "prev");
}
this.pullingDown = false;
this.pullDownHeight = 0;
//
}else if(this.touchDirection == 'bottom'){
if(this.pullUpHeight>=this.lowerThreshold&&this.selectObject.selectIndex < (this.selectObject.length-1)){
this.$emit('refresherrefresh', "next");
}
this.pullingUp = false;
this.pullUpHeight = 0;
}
},
//
handleInit() {
this.currentPage = this.page;
this.currentSize = this.size;
// console.log()
// this.computedHeight();
},
// dom
getRect(selector, all) {
return new Promise(resolve => {
uni.createSelectorQuery()
.in(this)
[all ? 'selectAll' : 'select'](selector)
.boundingClientRect(rect => {
if (all && Array.isArray(rect) && rect.length) {
resolve(rect);
}
if (!all && rect) {
resolve(rect);
}
})
.exec();
});
}
}
};
</script>
<style scoped lang="scss">
.data-list-components {
height: 100%;
.scroll-view {
height: 100%;
.scroll-content {
width: 100%;
height: 100%;
position: relative;
.empty-view {
width: 100%;
height: 100%;
display: flex;
align-items: center;
justify-content: center;
}
.empty-content {
height:calc(100% - 20px) ;
display: flex;
align-items: center;
flex-direction: column;
justify-content: center;
.empty-image {
width: 100%;
// height: 100%;
}
.empty-text {
display: block;
color: #606266;
margin-top: 20rpx;
}
}
.pull-down-view {
top: 0;
left: 0;
width: 100%;
padding: 30rpx 0;
display: flex;
position: absolute;
align-items: center;
flex-direction: column;
justify-content: center;
transform: translateY(-100%);
.refresh-view {
display: flex;
align-items: center;
flex-direction: column;
.loading-animation {
width: 50rpx;
height: 50rpx;
}
.pull-down-text {
color: #606266;
font-size: 24rpx;
margin-top: 10rpx;
}
}
}
.scroll-list {
display: flex;
flex-direction: column;
}
.loading-view {
width: 100%;
height: 100%;
display: flex;
align-items: center;
flex-direction: column;
justify-content: center;
.loading-animation {
width: 40rpx;
height: 40rpx;
}
.loading-text {
color: #606266;
font-size: 24rpx;
margin-top: 10rpx;
}
}
.pull-up-view {
width: 100%;
// padding: 15rpx 0;
height: 20px;
display: flex;
align-items: center;
justify-content: center;
.load-view {
display: flex;
align-items: center;
// .loading-animation {
// width: 30rpx;
// height: 30rpx;
// }
.loading-text {
color: #606266;
font-size: 24rpx;
margin-left: 20rpx;
}
}
}
.loading-animation {
position: relative;
&::after,
&::before {
left: 0;
width: 100%;
position: absolute;
border: 0 solid currentColor;
background-color: #b7b7b7;
}
&::after {
content: '';
top: -25%;
z-index: 1;
height: 100%;
border-radius: 10%;
animation: spin 0.6s -0.1s linear infinite;
}
&::before {
content: '';
bottom: -9%;
height: 10%;
background: #000;
border-radius: 50%;
opacity: 0.2;
animation: shadow 0.6s -0.1s linear infinite;
}
@keyframes spin {
17% {
border-bottom-right-radius: 10%;
}
25% {
transform: translateY(25%) rotate(22.5deg);
}
50% {
border-bottom-right-radius: 100%;
transform: translateY(50%) scale(1, 0.9) rotate(45deg);
}
75% {
transform: translateY(25%) rotate(67.5deg);
}
100% {
transform: translateY(0) rotate(90deg);
}
}
@keyframes shadow {
50% {
transform: scale(1.25, 1);
}
}
}
}
}
}
</style>

File diff suppressed because one or more lines are too long

@ -68,6 +68,7 @@
}else if(region&&region.length == 6){
this.handleDefaultRegion(region)
}else{
console.log(region)
console.warn('defaultRegion非有效格式')
}
},

@ -117,13 +117,13 @@
// "enablePullDownRefresh": false
// }
// },
// {
// "path": "pages/classify/order/pay",
// "style": {
// "navigationBarTitleText": "收银台页",
// "enablePullDownRefresh": false
// }
// },
{
"path": "pages/classify/order/pay",
"style": {
"navigationBarTitleText": "收银台页",
"enablePullDownRefresh": false
}
},
{
"path": "pages/classify/order/paymentResult",
"style": {

@ -10,7 +10,7 @@
</view>
<view class="form-gorup-item-right">
<view class="form-gorup-title marb10">联系电话<text class="form-group-tips-must">*</text></view>
<input type="text" name="tel" v-model="userAddress.tel" maxlength="11"
<input type="number" name="tel" v-model="userAddress.tel" maxlength="11"
placeholder-class="fcor666" class="fcor666" placeholder="手机号">
</view>
</view>
@ -147,9 +147,10 @@
address: resData.address,
is_default: resData.whetherDefault,
}
console.log(this.defaultRegionCode)
this.defaultRegionCode = resData.regionId
console.log(this.defaultRegionCode)
// console.log(this.defaultRegionCode)
this.defaultRegionCode = resData.regionId;
this.regionId = resData.regionId;
// console.log(this.defaultRegionCode)
}else{
uni.showToast({
@ -209,7 +210,6 @@
let isVali = this.fields_check(this.userAddress, validation);
if(isVali){
if(this.dataParams.id){
this.updateAddress(this.dataParams.id)
}else{

@ -1,350 +0,0 @@
<template>
<view class="container">
<view class='addAddress'>
<!-- <view class="pad30">
<view class='default acea-row row-middle borderRadius15'>
<input v-model="addressValue" type="text" placeholder="粘贴地址信息,自动拆分姓名、电话和地址"
placeholder-class='placeholder' style="width:100%;"
@blur="identify()">
</view>
</view> -->
<view class="pad30 mt-22">
<view class='list borderRadius15'>
<uni-forms ref="form" label-position="left" :modelValue="userAddress">
<uni-forms-item label="姓名" name="real_name" class='item acea-row row-between-wrapper'>
<input type='text' placeholder='请输入姓名' name='real_name' :value="userAddress.real_name"
placeholder-class='placeholder' class="width100"></input>
</uni-forms-item>
<uni-forms-item label="联系电话" name="phone" class='item acea-row row-between-wrapper'>
<input type='number' placeholder='请输入联系电话' name="phone" v-model='userAddress.phone'
placeholder-class='placeholder' pattern="\d*"></input>
</uni-forms-item>
<uni-forms-item label="所在地区" name="region" class='item acea-row row-between-wrapper'>
<view class="address acea-row row-between height100" @click="chooseAddress">
<input type='text' placeholder='请选择地址' :disabled="true" name='region' placeholder-class='placeholder'
v-model='userAddress.region' class="detail"></input>
<view class="icon-ymt to-right font14 fcor666">
</view>
</view>
</uni-forms-item>
<uni-forms-item label="详细地址" name="detail" class='item acea-row row-between-wrapper'>
<input type='text' placeholder='请填写具体地址' name='detail' placeholder-class='placeholder'
v-model='userAddress.detail' class="detail"></input>
</uni-forms-item>
</uni-forms>
</view>
</view>
<button class='keepBnt bg-color' @click="formSubmit">立即保存</button>
</view>
<AddressPicker ref="AddressPicker" @getAddress="getAddress"></AddressPicker>
</view>
</template>
<script>
import uniForms from '@/components/uni-forms/components/uni-forms/uni-forms.vue'
import uniFormsItem from '@/components/uni-forms/components/uni-forms-item/uni-forms-item.vue'
import AddressPicker from '@/pages/address/addNewAddress/addressPicker.vue'
let dataList = require('./address.json')
export default {
data() {
return {
userAddress: {
real_name:"",
phone:"",
region:"",
detail:"",
}, //
addressValue:"",
addressId:null,
/* rulesObject:{
real_name:{
rules:[
// name
{
required: true,
errorMessage: '请填写姓名',
},
// name
{
minLength: 2,
maxLength: 5,
errorMessage: '{label}长度在 {minLength} 到 {maxLength} 个字符',
}
],
},
phone:{
rules:[
{
required: true,
errorMessage: '请输入手机号',
},
{
validateFunction: function(rule, value, data, callback) {
let iphoneReg = /^1[0-9]{10}$/
if (!iphoneReg.test(value)) {
callback('手机号码格式不正确,请重新填写')
}
return true
}
}
],
},
region:{
rules:[
{
required: true,
errorMessage: '请选择地址',
},
],
},
detail:{
rules:[
{
required: true,
errorMessage: '请填写详细地址',
},
{
minLength: 5,
errorMessage: '{label}长度不能少于{minLength}个字符',
}
],
},
}
*/
}
},
components:{
AddressPicker,
"uni-forms":uniForms,
"uni-forms-item":uniFormsItem
// uniForms,
// uniFormsItem
},
onReady() {
// onReady
// this.$refs.form.setRules(this.rulesObject)
// if(this.addressId){
// uni.setNavigationBarTitle({
// title: ''
// });
// }
},
onLoad(options){
if(options.id){
this.addressId = options.id
uni.setNavigationBarTitle({
title: '编辑地址'
});
}
},
methods: {
identify(){
const options = {
type: 0, // 01
textFilter: [], //
nameMaxLength: 4, //
}
// type0使1, textFilter
// if(!!this.addressValue){
// const parseResult = AddressParse(this.addressValue, options)
// // console.log(parseResult);
// this.userAddress.real_name = parseResult.name;
// this.userAddress.phone = parseResult.phone;
// this.userAddress.detail = parseResult.detail;
// this.userAddress.region = parseResult.province + '/' + parseResult.city + '/' + parseResult.area;
// }
},
formSubmit(form) {
//
// this.$refs.form.validate().then(res => {
// console.log('success', res);
// uni.showToast({
// title: ``
// })
// }).catch(err => {
// console.log('err', err);
// })
let _this = this;
this.$refs.form.validate().then(res=>{
console.log(_this.userAddress,res)
})
},
chooseAddress(){
this.$refs.AddressPicker.show()
},
getAddress(address){
console.log(address,"address")
this.userAddress.region=address
}
},
}
</script>
<style lang="scss" scoped>
.container{
background-color: #f5f5f5;
height: 100vh;
box-sizing: border-box;
padding-top:30rpx;
}
/deep/ .uni-forms-item__label .label-text{
font-size: 30rpx !important;
}
/deep/ .uni-forms-item{
width: 100% !important;
}
.pad30 {
padding: 0 30rpx
}
.acea-row {
display: flex;
align-items: center;
}
.row-middle {
align-items: center
}
.row-between-wrapper {
align-items: center;
justify-content: space-between
}
.borderRadius15 {
border-radius: 15rpx !important;
}
.addAddress .list {
background-color: #fff;
}
.addAddress .list .item {
padding: 30rpx ;
padding-bottom: 0;
border-top: 1rpx solid #eee;
position: relative;
}
.addAddress .list .item .detail{
// width: 368rpx;
}
.addAddress .list .item .location{
position: absolute;
right: 46rpx;
top: 50%;
margin-top: -40rpx!important;
font-size: 24rpx;
text-align: center;
}
.addAddress .list .item .name {
width: 195rpx;
font-size: 30rpx;
color: #333;
}
.addAddress .list .item .address {
flex: 1;
}
.addAddress .list .item .address .addressCon{
width: 360rpx;
}
.addAddress .list .item .address .addressCon .tip{
font-size: 21rpx;
margin-top: 4rpx;
}
.addAddress .list .item input {
// width: 475rpx;
flex: 1;
font-size: 30rpx;
display: flex;
flex-direction: column;
justify-content: center;
height: 100%;
}
.placeholder {
color: #ccc;
}
.addAddress .list .item .picker {
width: 430rpx;
font-size: 30rpx;
}
.addAddress .default {
padding: 0 30rpx;
height: 90rpx;
background-color: #fff;
}
.addAddress .keepBnt {
width: 690rpx;
height: 86rpx;
border-radius: 50rpx;
text-align: center;
line-height: 86rpx;
margin: 50rpx auto;
font-size: 32rpx;
color: #fff;
}
.mt-22{
margin-top: 22rpx;
}
.bg-color {
background-color: #dd524d;
}
</style>

@ -1,135 +1,152 @@
<template>
<view class="user-address backcor9 ">
<scroll-view scroll-y="true" class="address-contain paading10" >
<scroll-view scroll-y="true" class="address-contain paading10">
<radio-group @change="radioChange">
<view v-for="(item,index) in addressList" :key="item.id" class="border-8r paading10 backcolorfff marb10">
<view class="user-msg border-b paddbotm5">
<view class=" mart3 " >
<text class="address-name">{{item.consignee}}</text>
<text class=" margle10 ">{{item.phone}}</text>
</view>
<view class="color999 mart5" >
地址:{{item.regionName +" " +item.address}}
</view>
</view>
<view class="user-handle mart10">
<view class="handle-left">
<!-- <radio :checked="item.whetherDefault" style="transform:scale(0.7)" :value="item.id" color="#FF1A34" /> -->
<radio :checked="selectId == item.id" style="transform:scale(0.7)" :value="item.id" color="#FF1A34" />
<text class=" margle">默认地址</text>
<view v-for="(item,index) in addressList" @click.stop="chooseAddress(item)" :key="item.id"
class="border-8r paading10 backcolorfff marb10">
<view class="user-msg border-b paddbotm5">
<view class=" mart3 ">
<text class="address-name">{{item.consignee}}</text>
<text class=" margle10 ">{{item.phone}}</text>
</view>
<view class="color999 mart5">
地址:{{item.regionName +" " +item.address}}
</view>
</view>
<view class="handle-right">
<button type="primary" class="marRight10" plain="true" size="mini" @click="editAddress(item.id)">编辑</button>
<button type="warn" plain="true" size="mini" @click="deleteAddress(item.id)">删除</button>
<view class="user-handle mart10">
<view class="handle-left">
<!-- <radio :checked="item.whetherDefault" style="transform:scale(0.7)" :value="item.id" color="#FF1A34" /> -->
<radio :checked="selectId == item.id" style="transform:scale(0.7)" :value="item.id"
color="#FF1A34" />
<text class=" margle">默认地址</text>
</view>
<view class="handle-right">
<button type="primary" class="marRight10" plain="true" size="mini"
@click.stop="editAddress(item.id)">编辑</button>
<button type="warn" plain="true" size="mini"
@click.stop="deleteAddress(item.id)">删除</button>
</view>
</view>
</view>
</view>
</radio-group>
<noMore></noMore>
</scroll-view>
<view class="address-btn fcorfff font16">
<view class="add-btn" @click="addNewAddress">添加新地址</view>
<view class="add-btn" @click="daoRu">导入系统地址</view>
<!-- <view class="add-btn" @click="daoRu">导入系统地址</view> -->
</view>
</view>
</template>
<script>
import noMore from '@/pages/classify/no-more/no-more.vue'
import { getDeliveryAddressList,deleteAddress,updateDeliveryAddress } from '@/Utils/physicalObject.js'
import {
getDeliveryAddressList,
deleteAddress,
updateDeliveryAddress
} from '@/Utils/physicalObject.js'
export default {
components:{
components: {
noMore,
},
data(){
return{
addressId:[
111,222,333,444
data() {
return {
addressId: [
111, 222, 333, 444
],
selectId:0,
addressList:[]
selectId: 0,
addressList: [],
status: 0, //
}
},
onLoad(){
onLoad(options) {
if (options.status) { //1:
this.status = options.status;
}
this.initData()
},
methods:{
initData(){
methods: {
initData() {
this.selectId = 0;
getDeliveryAddressList().then(res=>{
uni.showLoading({
title: '加载中',
mask:true,
});
getDeliveryAddressList().then(res => {
uni.hideLoading();
if (res.return_code == '000000') {
if(res.return_data.length>0){
// console.log(res.return_data)
this.addressList = res.return_data;
this.addressList.map(item=>{
if(item.whetherDefault){
this.selectId = item.id;
}
})
if (res.return_data.length > 0) {
// console.log(res.return_data)
this.addressList = res.return_data;
this.addressList.map(item => {
if (item.whetherDefault) {
this.selectId = item.id;
}
})
}
}else{
} else {
uni.showToast({
title: res.return_msg,
icon: 'none',
duration: 2000
})
}
})
},
//
radioChange(e){
let select = e.detail.value
let content =null;
this.addressList.map(item=>{
if(item.id == select){
radioChange(e) {
console.log(e)
let select = e.detail.value
let content = null;
this.addressList.map(item => {
if (item.id == select) {
content = item;
}
})
let params ={
let params = {
"id": content.id,
"address": content.address,
"consignee": content.consignee,
"phone": content.phone,
"regionId": content.regionId,
"regionName":content.regionName,
"regionName": content.regionName,
"whetherDefault": true
}
updateDeliveryAddress(params).then(res=>{
let title ;
if (res.return_code == '000000') {
title = res.return_data;
this.selectId = e.detail.value;
}else{
title = res.return_msg;
}
uni.showToast({
title: title,
icon: 'none',
duration: 2000
})
})
updateDeliveryAddress(params).then(res => {
let title;
if (res.return_code == '000000') {
title = res.return_data;
this.selectId = e.detail.value;
} else {
title = res.return_msg;
}
uni.showToast({
title: title,
icon: 'none',
duration: 2000
})
})
},
editAddress(id){
editAddress(id) {
uni.navigateTo({
url:"./addNewAddress/addNewAddress?id="+id
url: "./addNewAddress/addNewAddress?id=" + id
})
},
deleteAddress(id){
deleteAddress(id) {
uni
let _this = this;
uni.showModal({
@ -137,123 +154,142 @@
content: '确定删除该地址吗?',
success: function(res) {
if (res.confirm) {
let params={
id:id
let params = {
id: id
}
deleteAddress(params).then(res=>{
let title ;
deleteAddress(params).then(res => {
let title;
if (res.return_code == '000000') {
title = res.return_data;
}else{
title = res.return_data;
} else {
title = res.return_msg;
}
uni.showToast({
title: title,
icon: 'none',
duration: 2000
})
})
_this.initData();
})
} else if (res.cancel) {
// console.log('');
}
}
});
},
//
addNewAddress(){
addNewAddress() {
uni.navigateTo({
url:"./addNewAddress/addNewAddress"
url: "./addNewAddress/addNewAddress"
})
},
//
daoRu(){
uni.chooseAddress({
daoRu() {
uni.chooseAddress({
success: (res) => {
console.log(res)
var data = {
"name": res.userName || '',
"tel": res.telNumber || '',
"province": res.provinceName || '',
"city": res.cityName || '',
"county": res.countyName || '',
"address": res.detailInfo || ''
"name": res.userName || '',
"tel": res.telNumber || '',
"province": res.provinceName || '',
"city": res.cityName || '',
"county": res.countyName || '',
"address": res.detailInfo || ''
};
//
},
fail: (err) => {
}
})
},
chooseAddress(addressItem) {
console.log(addressItem, "addressItem")
if (this.status == 1) {
let pages = getCurrentPages(); //
let beforePage = pages[pages.length - 2]; //
uni.navigateBack({
success: function() {
beforePage.$vm.getRegiFreight(addressItem);
console.log("返回成功!");
}
})
}
}
}
}
</script>
<style lang="scss" scoped>
.border-b {
border-bottom: 1px solid #f6f6f6;
}
.user-address {
height: 100vh;
overflow: hidden;
.address-contain {
height: calc(100vh - 70px);
width: calc(100% - 20px);
}
.user-handle {
display: flex;
align-items: center;
justify-content: space-between;
}
.border-b{
border-bottom: 1px solid #f6f6f6;
}
.user-address{
height: 100vh;
overflow: hidden;
.address-contain{
height: calc(100vh - 70px);
width: calc(100% - 20px);
.handle-right {
vertical-align: middle;
}
}
.user-handle{
//
.address-btn {
position: absolute;
bottom: 0;
left: 0;
right: 0;
height: 50px;
line-height: 50px;
box-sizing: border-box;
display: flex;
justify-content: space-around;
align-items: center;
justify-content: space-between;
}
.handle-right{
vertical-align: middle;
}
}
//
.address-btn{
position: absolute;
bottom: 0;
left: 0;
right: 0;
height: 50px;
line-height: 50px;
box-sizing: border-box;
display: flex;
justify-content: space-around;
align-items: center;
.add-btn{
width:45%;
height: 40px;
line-height: 40px;
text-align: center;
border-radius: 20px;
&:first-of-type{
background-color:#F6C133;
}
&:last-of-type{
background-color: #3da7e7;
.add-btn {
width: 45%;
height: 40px;
line-height: 40px;
text-align: center;
border-radius: 20px;
&:first-of-type {
background-color: #F6C133;
}
&:last-of-type {
background-color: #3da7e7;
}
}
}
}
</style>
</style>

@ -16,7 +16,7 @@
</view>
<!-- 地址 -->
<view class="select-address width100 mart10 " @click="goAddress">
<!-- <view class="select-address width100 mart10 " @click="goAddress">
<view v-if="true" class="address-left font14">
<view class=" " >
重庆市渝中区不是的聚钓具偶家
@ -34,7 +34,7 @@
</view>
<view class="icon-ymt to-right"></view>
</view>
</view> -->
<!-- 选分类 -->
<view class="choose-bottom">
@ -69,7 +69,7 @@
加入购物车
</view>
<view class="fcorfff way bgcolor-ri" @click="toBuy">
领券购买
立即购买
</view>
</view>
<view class="choose-way" v-if="status == 0">
@ -77,6 +77,11 @@
加入购物车
</view>
</view>
<view class="choose-way" v-if="status == 2">
<view class="fcorfff way1 bgcolor-left" @click="toBuy">
立即购买
</view>
</view>
</view>
</view>
@ -108,6 +113,10 @@
status:{
type:Number,
default:0,
},
goodsDetail:{
type:Object,
default:{}
}
},
components:{
@ -157,7 +166,7 @@
goodsId:this.specificationList[this.chooseIndex].goodsId,
num:this.chooseNumber,
sku:this.specificationList[this.chooseIndex].id,
whetherCheck:true
whetherCheck:false
}
insertShoppingCart(params).then(async res=>{
@ -175,7 +184,7 @@
duration: 2000
})
this.chooseNumber = 1;
this.$emit("close")
@ -184,9 +193,29 @@
},
//
//
toBuy(){
this.$emit("close")
console.log(this.specificationList[this.chooseIndex],this.goodsDetail)
let _this = this
let obj =[{
goodsId:_this.specificationList[this.chooseIndex].goodsId,
img: _this.specificationList[this.chooseIndex].showImg,
num: _this.chooseNumber,
price: _this.specificationList[this.chooseIndex].price,
sku: _this.specificationList[this.chooseIndex].id,
skuName: _this.specificationList[this.chooseIndex].name,
title: _this.goodsDetail.name,
originalPrice:_this.specificationList[this.chooseIndex].originalPrice
}]
obj = JSON.stringify(obj)
uni.navigateTo({
url: '/pages/settleAccounts/settleAccounts?goodsList='+obj
})
// this.$emit("close")
},
//
select(index){

@ -1,46 +0,0 @@
{
"id": "2",
"realstore_id": "0",
"realstore_goods_id": "0",
"shop_id": "1",
"shop_user_id": "1",
"shop_category_id": "1",
"shop_settle_price": "0.00",
"shop_settle_rate": "0.00",
"brand_id": "2",
"site_type": "-1",
"title": "苹果(Apple)iPhone 6 Plus (A1524)移动联通电信4G手机 金色 16G",
"title_color": "",
"simple_desc": "1.芯片功能强大 iPhone芯片的更新频率比友商少,但每次iPhone芯片更新时,都会成为关注和追赶的对象。",
"model": "iPhone 6 Plus",
"place_origin": "0",
"inventory": "7983",
"inventory_unit": "步",
"images": ["https://gw.alicdn.com/bao/uploaded/i2/708446530/O1CN01WZY06s1y6mybMkFwh_!!708446530.jpg_300x300q90.jpg_.webp","https://d1.shopxo.vip/static/upload/images/goods/2019/01/14/1547451274847894.jpg"],
"original_price": "4500.00-6800.00",
"min_original_price": "4500.00",
"max_original_price": "6800.00",
"price": "4500.00-6800.00",
"min_price": "4500.00",
"max_price": "6800.00",
"give_integral": "30",
"buy_min_number": "1",
"buy_max_number": "0",
"is_deduction_inventory": "1",
"is_shelves": "1",
"content_web": "<p style=\"margin:0;\"><a href=\"https://store.shopxo.net/\" target=\"_blank\" title=\"进入指定页面&gt;&gt;\">进入指定页面&gt;&gt;</a></p><p style=\"margin:0;\"><video class=\"edui-faked-video video-js\" controls=\"\" preload=\"none\" width=\"420\" height=\"280\" src=\"https://d1.shopxo.vip/static/upload/video/goods/2019/01/14/1547458876723311.mp4\" data-setup=\"{}\"></video></p><p style=\"margin:0;\"><a href=\"https://shopxo.net/?q=test&u=hello你好!\" target=\"_blank\" title=\"打开一个a标签地址\"><strong><span style=\"font-size: 24px; color: rgb(255, 0, 0);\">打开一个a标签地址</span></strong></a><br/></p><p style=\"margin:0;\"><a href=\"/pages/plugins/blog/index/index\" target=\"_self\" title=\"进入博客页面\">进入博客</a></p><p style=\"margin:0;\"><img style=\"max-width:100%;height:auto;margin:0;padding:0;display:block;\" src=\"https://d1.shopxo.vip/static/upload/images/goods/2019/01/14/1547451595700972.jpg\" title=\"1547451595700972.jpg\"/></p><p style=\"margin:0;\"><img style=\"max-width:100%;height:auto;margin:0;padding:0;display:block;\" src=\"https://d1.shopxo.vip/static/upload/images/goods/2019/01/14/1547451595528800.jpg\" title=\"1547451595528800.jpg\"/></p><p style=\"margin:0;\"><img style=\"max-width:100%;height:auto;margin:0;padding:0;display:block;\" src=\"https://d1.shopxo.vip/static/upload/images/goods/2019/01/14/1547451595616298.jpg\" title=\"1547451595616298.jpg\"/></p><p style=\"margin:0;\"><br/></p>",
"photo_count": "2",
"sales_count": "266",
"access_count": "13333",
"is_exist_many_spec": "1",
"spec_base": "",
"plugins_membershiplevelvip_price_extends": "",
"seo_title": "",
"seo_keywords": "",
"seo_desc": "",
"is_delete_time": "0",
"add_time": "2019-01-14 15:40:24",
"upd_time": "2023-03-24 17:46:26"
}

@ -1,27 +1,27 @@
<template>
<view class="">
<!-- v-if="cartList.length>0" -->
<view class="cart-container backcor9">
<view class="cart-container backcor9">
<scroll-view :scroll-y="true" class="cart-list">
<uni-swipe-action>
<!-- 从这里开始遍历-->
<view v-for="(item,index) in cartList"
:class="(item.isFailure?' isFailure ':' ')+'marb10 border-8r backcolorfff paading10'"
:class="(item.loseEfficacy?' loseEfficacy ':' ')+'marb10 border-8r backcolorfff paading10'"
:key="item.id">
<!-- :disabled="item.isFailure" -->
<!-- :disabled="item.loseEfficacy" -->
<uni-swipe-action-item :auto-close="autoClose" :right-options="swipe_options"
@click="swipe_opt_event($event,item.id)" @change="swipe_change($event, item.id)">
<view class="cart-container2">
<checkbox-group @change="checkClick(item)">
<checkbox class="mycheck" :disabled="!isEdit&&item.isFailure" color="#FFC71E"
<checkbox class="mycheck" :disabled="!isEdit&&item.loseEfficacy" color="#FFC71E"
:value="item.id" :checked="item.whetherCheck" />
</checkbox-group>
<view class="cart-detail">
<view class="cart-detail" >
<view class="cart-img">
<image :src="imageUrl+item.img" class="img border-8r" mode="aspectFill"></image>
</view>
@ -33,14 +33,21 @@
</view>
<view class="cart-msg-price">
<view class="cart-price font16 fcorred">
<!-- ¥ <text class="font20">18 </text>.8 -->
¥{{item.price}}
<view class="dis-flex">
<view class="cart-price font16 fcorred">
<!-- ¥ <text class="font20">18 </text>.8 -->
¥{{item.price}}
</view>
<!-- <view class="fcor666 margle10 font14 text-lt">
¥{{item.originalPrice}}
</view> -->
</view>
<view class="cart-num">
<view :class="'cart-num'+(item.loseEfficacy?' pont-event ':' ')">
<uni-number-box v-model="item.num" :min="1" @noMoreLess="noMoreLess(item.id+'')"
@change="changeNumValue($event,item.id)" />
<uni-number-box v-model="item.num" :min="1"
@noMoreLess="noMoreLess(item.id+'')"
@change="changeNumValue($event,item.id)" :max="999999999" />
</view>
</view>
@ -75,7 +82,11 @@
<text v-if="isEdit" class="tool-right paddleft5 fcorred" @click="editDelete">退出编辑</text>
<view v-if="!isEdit" class="tool-right">
<view class="tool-jiesuan marRight10 ">
<!-- <text v-if="priceOrigin > 0" class="fcor666 margle10 marRight10 font14 text-lt">¥{{priceOrigin}}</text> -->
合计:<text class="fcorred">¥{{priceAll}}</text>
</view>
<view class="jiesuan-btn fcorfff " @click="settleAccount">
结算
@ -103,7 +114,7 @@
import uniNumberBox from '@/uni_modules/uni-number-box/components/uni-number-box/uni-number-box.vue'
import {
getShoppingCartList,
goodsAddNum,
goodsEditNum,
deleteShoppingCart
} from '@/Utils/physicalObject.js'
@ -123,20 +134,24 @@
},
//
swipe_options: [{
isCheck: false,
text: "收藏",
icon: ' shoucang32 ',
style: {
backgroundColor: '#f6c133'
}
}, {
text: '删除',
icon: ' delete ',
style: {
backgroundColor: '#E64340'
}
}],
swipe_options: [
{
text: '删除',
icon: ' delete ',
style: {
backgroundColor: '#E64340'
}
},
// {
// isCheck: false,
// text: "",
// icon: ' shoucang32 ',
// style: {
// backgroundColor: '#f6c133'
// }
// },
],
swipe_item_index: null,
numberValue: 0,
cartList: [],
@ -154,8 +169,8 @@
"uni-number-box": uniNumberBox
},
computed: {
//
priceAll() {
//
var str = 0;
for (var i = 0; i < this.cartList.length; i++) {
if (this.cartList[i].whetherCheck) {
@ -163,15 +178,22 @@
}
}
return str;
},
//
priceOrigin(){
var str = 0;
for (var i = 0; i < this.cartList.length; i++) {
if (this.cartList[i].whetherCheck) {
str += this.cartList[i].num * this.cartList[i].originalPrice;
}
}
return str;
}
},
onLoad() {
// this.cartList=[
// {id:111,name:"",isFailure:true,img:"https://d1.shopxo.vip/static/upload/images/goods/2019/01/14/1547451274847894.jpg",title:"insSP",price:20,num:1},
// {id:222,name:"",isFailure:false,img:"https://d1.shopxo.vip/static/upload/images/goods/2019/01/14/1547451274847894.jpg",title:"insSP",price:30,num:1},
// {id:333,name:"",isFailure:false,img:"https://d1.shopxo.vip/static/upload/images/goods/2019/01/14/1547451274847894.jpg",title:"insSP",price:20,num:1},
// {id:444,name:"",isFailure:false,img:"https://d1.shopxo.vip/static/upload/images/goods/2019/01/14/1547451274847894.jpg",title:"insSP",price:30,num:1},
// ]
// this.cartList.map(item=>{
// this.$set(item, 'checked', false);
// })
@ -187,7 +209,7 @@
console.log(res.return_data)
this.cartList = res.return_data;
this.allCheckInit();
} else {
uni.showToast({
title: res.return_msg,
@ -201,7 +223,7 @@
this.isEdit = !this.isEdit;
if (!this.isEdit) { //退
this.cartList.map(item => {
if (item.whetherCheck && item.isFailure) {
if (item.whetherCheck && item.loseEfficacy) {
item.whetherCheck = false;
}
})
@ -220,8 +242,8 @@
this.allCheck.whetherCheck = !this.allCheck.whetherCheck;
if (this.allCheck.whetherCheck) {
this.cartList.map(item => {
if (!this.isEdit) { //
if (!item.isFailure) {
if (!this.isEdit) { //,loseEfficacyundefined
if (!item.loseEfficacy) {
item.whetherCheck = true
}
} else { //
@ -239,9 +261,9 @@
//
checkClick(item) {
item.whetherCheck = !item.whetherCheck;
if (!item.whetherCheck) {
if (!this.isEdit && !item.isFailure) { //
if (!this.isEdit && !item.loseEfficacy) { //
this.allCheck.whetherCheck = false;
} else if (this.isEdit) {
this.allCheck.whetherCheck = false;
@ -251,7 +273,7 @@
// //
// const goods = this.cartList.every(item => {
// if(!this.isEdit){//
// if(item.isFailure){
// if(item.loseEfficacy){
// return true;
// }
// }
@ -269,19 +291,19 @@
}
},
allCheckInit() {
if(this.cartList.length == 0){
if (this.cartList.length == 0) {
this.allCheck.whetherCheck = false;
return
}
//
const goods = this.cartList.every(item => {
// if (!this.isEdit) { //
// if (item.isFailure) {
// return true;
// }
// }
if (!this.isEdit) { //
if (item.loseEfficacy) {
return true;
}
}
return item.whetherCheck === true
})
if (goods) {
@ -289,7 +311,7 @@
} else {
this.allCheck.whetherCheck = false
}
// console.log(this.allCheck.whetherCheck,goods)
},
//
@ -324,7 +346,7 @@
return
} else {
// console.log(select.join(), "id")
let str=select.join();
let str = select.join();
this.noMoreLess(str)
}
@ -335,8 +357,12 @@
if (!this.isHaveGoods()) return;
if (this.priceAll > 0) {
let selestArr = this.cartList.filter(item=>item.whetherCheck == true)
selestArr = JSON.stringify(selestArr)
// console.log(selestArr)
uni.navigateTo({
url: '/pages/settleAccounts/settleAccounts'
url: '/pages/settleAccounts/settleAccounts?goodsList='+selestArr
})
} else {
uni.showToast({
@ -348,10 +374,10 @@
},
//
swipe_opt_event(e,id) {
swipe_opt_event(e, id) {
console.log(e, "dianji")
if (e.index == 0) { //
if (e.index == 1) { //
// console.log(e.content.isCheck)
// e.content.isCheck=!e.content.isCheck
@ -365,16 +391,11 @@
return
}
if (e.index == 1) { //
this.noMoreLess(id+"")
// this.showAction = 'right';
if (e.index == 0) { //
this.noMoreLess(id + "")
return
}
},
//
swipe_change(e, id) {
@ -389,25 +410,27 @@
content: '确定把该商品移除购物车吗?',
success: function(res) {
if (res.confirm) {
console.log('用户点击确定,要删除的id',ids);
let params={ids:ids};
deleteShoppingCart(params).then(res=>{
let title ;
console.log('用户点击确定,要删除的id', ids);
let params = {
ids: ids
};
deleteShoppingCart(params).then(res => {
let title;
if (res.return_code == '000000') {
title = res.return_data;
}else{
title = res.return_data;
} else {
title = res.return_msg;
}
uni.showToast({
title: title,
icon: 'none',
duration: 2000
})
})
_this.initData();
})
} else if (res.cancel) {
console.log('用户点击取消');
@ -416,15 +439,16 @@
});
},
changeNumValue(v, id) {
// console.log(v,id)
console.log(v,id)
// console.log(this.cartList)
let params = {
id: id
id: id,
num:v
}
goodsAddNum(params).then(res => {
goodsEditNum(params).then(res => {
if (res.return_code == '000000') {
uni.showToast({
title: res.return_data,
@ -432,12 +456,26 @@
duration: 2000
})
} else {
//
// this.cartList.map(item=>{
// if(item.id == id){
// item.num = 1;
// }
// })
//
this.initData();
uni.showToast({
title: res.return_msg,
icon: 'none',
duration: 2000
})
}
})
}
@ -516,8 +554,13 @@
}
.pont-event{
pointer-events: none;
}
//
.isFailure {
.loseEfficacy {
.cart-img {
position: relative;

@ -34,7 +34,7 @@
<view class="goods-title">
<view class="goods-text">{{item.name}}</view>
<!-- <view v-if="(item.simple_desc || null) != null" class="goods-desc">{{item.simple_desc}}</view> -->
<view class="goods-desc">{{item.listDescribe}}</view>
<view class="goods-desc">{{item.listDescribe || ''}}</view>
</view>
<view class="goods-item-bottom">
<view class="goods-price">
@ -93,7 +93,7 @@
<view class="goods-title">
<view class="goods-text">{{item.name}}</view>
<!-- <view v-if="(item.simple_desc || null) != null" class="goods-desc">{{item.simple_desc}}</view> -->
<view class="goods-desc">{{item.listDescribe}}</view>
<view class="goods-desc">{{item.listDescribe || ''}}</view>
</view>
<view class="goods-item-bottom">
<view class="goods-price">

File diff suppressed because one or more lines are too long

@ -10,7 +10,7 @@
</block>
<!-- 搜索列表 -->
<view class="search-list">
<goodsList typeList="goodsSearch" @loadData="loadData" :propData="data_list" :paddBottom="0">
<goodsList v-if="hackReset" typeList="goodsSearch" @loadData="loadData" :propData="data_list" :paddBottom="0">
</goodsList>
</view>
@ -37,13 +37,20 @@
pageNum: 7, //
navigateLastPage: 1, //
allData: 0 //
}
},
hackReset:false,
}
},
components: {
componentSearch,
goodsList
},
onShow(){
this.hackReset = false;
this.$nextTick(() => {
this.hackReset = true;
})
},
methods: {
//
search_button_event(keywords) {

@ -1,46 +0,0 @@
{
"id": "2",
"realstore_id": "0",
"realstore_goods_id": "0",
"shop_id": "1",
"shop_user_id": "1",
"shop_category_id": "1",
"shop_settle_price": "0.00",
"shop_settle_rate": "0.00",
"brand_id": "2",
"site_type": "-1",
"title": "苹果(Apple)iPhone 6 Plus (A1524)移动联通电信4G手机 金色 16G",
"title_color": "",
"simple_desc": "1.芯片功能强大 iPhone芯片的更新频率比友商少,但每次iPhone芯片更新时,都会成为关注和追赶的对象。",
"model": "iPhone 6 Plus",
"place_origin": "0",
"inventory": "7983",
"inventory_unit": "步",
"images": ["https://gw.alicdn.com/bao/uploaded/i2/2200817857369/O1CN013I5Mae24J3O6w9wOE_!!2-item_pic.png_300x300q90.jpg_.webp","https://d1.shopxo.vip/static/upload/images/goods/2019/01/14/1547451274847894.jpg"],
"original_price": "4500.00-6800.00",
"min_original_price": "4500.00",
"max_original_price": "6800.00",
"price": "4500.00-6800.00",
"min_price": "4500.00",
"max_price": "6800.00",
"give_integral": "30",
"buy_min_number": "1",
"buy_max_number": "0",
"is_deduction_inventory": "1",
"is_shelves": "1",
"content_web": "<p style=\"margin:0;\"><a href=\"https://store.shopxo.net/\" target=\"_blank\" title=\"进入指定页面&gt;&gt;\">进入指定页面&gt;&gt;</a></p><p style=\"margin:0;\"><video class=\"edui-faked-video video-js\" controls=\"\" preload=\"none\" width=\"420\" height=\"280\" src=\"https://d1.shopxo.vip/static/upload/video/goods/2019/01/14/1547458876723311.mp4\" data-setup=\"{}\"></video></p><p style=\"margin:0;\"><a href=\"https://shopxo.net/?q=test&u=hello你好!\" target=\"_blank\" title=\"打开一个a标签地址\"><strong><span style=\"font-size: 24px; color: rgb(255, 0, 0);\">打开一个a标签地址</span></strong></a><br/></p><p style=\"margin:0;\"><a href=\"/pages/plugins/blog/index/index\" target=\"_self\" title=\"进入博客页面\">进入博客</a></p><p style=\"margin:0;\"><img style=\"max-width:100%;height:auto;margin:0;padding:0;display:block;\" src=\"https://d1.shopxo.vip/static/upload/images/goods/2019/01/14/1547451595700972.jpg\" title=\"1547451595700972.jpg\"/></p><p style=\"margin:0;\"><img style=\"max-width:100%;height:auto;margin:0;padding:0;display:block;\" src=\"https://d1.shopxo.vip/static/upload/images/goods/2019/01/14/1547451595528800.jpg\" title=\"1547451595528800.jpg\"/></p><p style=\"margin:0;\"><img style=\"max-width:100%;height:auto;margin:0;padding:0;display:block;\" src=\"https://d1.shopxo.vip/static/upload/images/goods/2019/01/14/1547451595616298.jpg\" title=\"1547451595616298.jpg\"/></p><p style=\"margin:0;\"><br/></p>",
"photo_count": "2",
"sales_count": "266",
"access_count": "13333",
"is_exist_many_spec": "1",
"spec_base": "",
"plugins_membershiplevelvip_price_extends": "",
"seo_title": "",
"seo_keywords": "",
"seo_desc": "",
"is_delete_time": "0",
"add_time": "2019-01-14 15:40:24",
"upd_time": "2023-03-24 17:46:26"
}

File diff suppressed because it is too large Load Diff

@ -216,6 +216,7 @@
<script>
import wuliuPopup from '@/components/wuliuPupup/wuliuPupup.vue'
const app =getApp()
import {getDetailByOrderNo} from '@/Utils/Api.js'
export default {
data(){
return{
@ -228,24 +229,61 @@
countdownm: '', //
countdowns:'',//
timers:null,
recinfo:{
createTime:1680744355375,
}
// recinfo:{
// createTime:1680744355375,
// },
//
orderId:'',//id
recinfo: [],
}
},
components:{
wuliuPopup
},
onLoad(option) {
this.orderId = option.id
},
onUnload() {
clearInterval(this.timers);
},
onShow(){
//
if(this.status == 0){
this.timers = setInterval(() => {
this.showtime()
}, 1000)
}
// if(this.status == 0){
// this.timers = setInterval(() => {
// this.showtime()
// }, 1000)
// }
//
this.getDetailByOrderNo();
},
methods:{
//
getDetailByOrderNo() {
uni.showLoading({
title: '加载中...'
})
let params = {
orderNo: this.orderId,
}
getDetailByOrderNo(params).then(res => {
uni.hideLoading();
if (res.return_code == '000000') {
this.recinfo = res.return_data;
// if (res.return_data.productType == 6) {
// this.getOrderByOrderNo();
// }
if (res.return_data.orderStatus == 1) {
this.timers = setInterval(() => {
this.showtime()
}, 1000)
}
}
})
},
showtime() {
var nowtime = (new Date()).getTime();//
var endtime = this.recinfo.createTime + 600000; // 60000010

@ -55,7 +55,7 @@
props:{ //12
orderType:{
type:Number,
default:0,
default:2,
}
},

@ -2,106 +2,226 @@
<view class="backcor9 pay-syt pd-main">
<view class="fotct">
<view class="">
¥<text class="font28 fontwig6">37.13</text>
¥<text class="font28 fontwig6">{{payPrice}}</text>
</view>
<view class="fcor666 font14 paddtop10 paddbotm10">
支付剩余时间<text class="paddleft10">{{countdownm}}:{{countdowns}}</text>
</view>
</view>
<view class="content pd-main backcolorfff border-8r">
<checkbox-group @change="changeCheckBox">
<view class="dis-flex border-b pd15-v">
<image class="pay-img paddtright10" src="../../../static/img/zfb.png" mode="aspectFit"></image>
<view class="flex-1 dis-flex flex-sp ">
<view class="">
<!-- <radio-group @change="radioChange"> -->
<view v-for="(item,index) in paytypeList" :key="index" class="">
<view class="dis-flex bor-b pd15-v" v-if="item == 4" @tap="paytype='4'">
<image class="pay-img paddtright10" src="../../../static/img/yl.png" mode="aspectFit"></image>
<view class="flex-1 dis-flex flex-sp ">
<view class="">
支付宝
</view>
<view class="fcor666">
周五光大信用卡支付随机优惠
<view class="">
银联
</view>
<!-- <view class="fcor666">
建行信用卡支付满40减16,先到先得
</view> -->
</view>
<radio class="radio-ca" :checked="paytype=='4'" color="#FF1A34" />
</view>
<checkbox class="mycheck" :value="1" color="#55B836" :checked="isCheck[0]" />
</view>
</view>
<view class="dis-flex border-b pd15-v">
<image class="pay-img paddtright10" src="../../../static/img/yl.png" mode="aspectFit"></image>
<view class="flex-1 dis-flex flex-sp ">
<view class="">
<view class="dis-flex bor-b pd15-v" v-if="item == 2" @tap="paytype='2'">
<image class="pay-img paddtright10" src="../../../static/img/wechat.png" mode="aspectFit"></image>
<view class="flex-1 dis-flex flex-sp ">
<view class="">
银联云闪付
</view>
<view class="fcor666">
建行信用卡支付满40减16,先到先得
<view class="">
微信支付
</view>
</view>
<radio class="radio-ca" :checked="paytype=='2'" color="#FF1A34" />
</view>
<checkbox class="mycheck" :value="2" color="#55B836" :checked="isCheck[1]" />
</view>
</view>
<view class="dis-flex pd15-v">
<image class="pay-img paddtright10" src="../../../static/img/wechat.png" mode="aspectFit"></image>
<view class="flex-1 dis-flex flex-sp ">
<view class="">
<view class="dis-flex bor-b pd15-v" v-if="item == 3" @tap="paytype='3'">
<image class="pay-img paddtright10" src="../../../static/img/unioncard.png" mode="aspectFit">
</image>
<view class="flex-1 dis-flex flex-sp ">
<view class="">
微信支付
<view class="">
汇联通工会卡<text class="font14 fcor666 margle">余额: {{tongCardPrice}}</text>
</view>
</view>
<radio class="radio-ca" :checked="paytype=='3'" @click="changeRiado()" color="#FF1A34" />
</view>
<checkbox class="mycheck" :value="3" color="#55B836" :checked="isCheck[2]" />
</view>
</view>
</checkbox-group>
<!-- </radio-group> -->
</view>
<view class="btn-contain backcolorfff">
<view class="btn-edit fotct fcorfff font18" @click="payMoney()">确认支付<text class="paddleft5">¥37.13</text></view>
<view class="btn-edit fotct fcorfff font18" @click="payMoney()">确认支付<text class="paddleft5">¥{{payPrice}}</text>
</view>
</view>
<ssPaymentPassword ref="paymentPassword" :mode="1" @submit="submitHandle" />
</view>
</template>
<script>
import {
getThirdPartyByDetail,
findUser,
getHuiLianTongCardBalance,
wechatPay,
cardPay
} from '@/Utils/Api.js'
import ssPaymentPassword from '@/components/sanshui-payment-password/index.vue'
const app = getApp();
// #ifdef H5
var jweixin = require('jweixin-module');
// #endif
export default {
data(){
return{
isCheck:[false,false,false],
data() {
return {
//
countdownh: '', //
countdownm: '', //
countdowns:'',//
timers:null,
recinfo:{
createTime:1680774642959,
countdowns: '', //
timers: null,
recinfo: {
createTime: 1680774642959,
},
//start
orderNo: '', //id 20230420145524695497
payPrice: '', //
paytypeList: [], //
tongCardPrice: 0, //
paytype: '', //
user: '', //
PaymentPassword: '',
}
},
onShow(){
components: {
ssPaymentPassword
},
onShow() {
//
// if(this.status == 0){
this.timers = setInterval(() => {
this.showtime()
}, 1000)
this.timers = setInterval(() => {
this.showtime()
}, 1000)
// }
this.findUser()
this.getThirdPartyByDetail()
},
onLoad(options) {
let obj =JSON.parse(options.obj)
this.orderNo = obj.orderNo;
this.recinfo.createTime = obj.createTime;
this.payPrice = obj.payPrice
},
methods:{
methods: {
//
findUser() {
let params;
findUser(params).then(res => {
if (res.return_code == '000000') {
app.globalData.userInfo = res.return_data;
this.user = res.return_data;
this.getHuiLianTongCardBalance(); //
uni.setStorage({
key: "user",
data: res.return_data
})
}
});
},
//radioChange
changeRiado() {
if (!this.user.setHltCard) {
uni.showToast({
icon: 'none',
title: '当前账号还未绑定,前往绑定',
duration: 2000,
success() {
setTimeout(() => {
uni.navigateTo({
url: '/pages/user/bindingCard/bindingCard'
})
}, 1000)
}
});
return;
}
},
//
getHuiLianTongCardBalance() {
if (this.user.setHltCard && this.user.hltCardNo && this.user.hltCardNo.cardNo) {
let params = {
cardNo: this.user.hltCardNo.cardNo
}
getHuiLianTongCardBalance(params).then(res => {
if (res.return_code == '000000') {
this.tongCardPrice = res.return_data.balance;
}
});
}
},
onUnload() {
clearInterval(this.timers);
},
//
getThirdPartyByDetail() {
// #ifdef H5
this.showType = 2;
// #endif
// #ifdef MP
this.showType = 1;
// #endif
let datas = {
platformId: this.showType,
"companyId": app.globalData.companyId,
productType: 10
}
getThirdPartyByDetail(datas).then(res => {
if (res.return_code == '000000') {
this.paytypeList = res.return_data.productPayType.split(',');
this.paytypeList = this.paytypeList.slice(0, this.paytypeList.length - 1);
console.log(this.paytypeList, "this.paytypeList1111111111111111111")
} else {
uni.showToast({
title: res.return_msg,
icon: 'none',
duration: 2000
})
}
});
},
//
showtime() {
var nowtime = (new Date()).getTime();//
var endtime = this.recinfo.createTime + 600000; // 60000010
var nowtime = (new Date()).getTime(); //
var endtime = this.recinfo.createTime + 600000; // 60000010
var lefttime = endtime - nowtime; //
var leftd = Math.floor(lefttime / (1000 * 60 * 60 * 24)); //
var lefth = Math.floor((lefttime / (1000 * 60 * 60) % 24) + leftd * 24) < 10 ? "0" + Math.floor((lefttime /
(1000 * 60 * 60) % 24) + leftd * 24) : Math.floor((lefttime / (1000 * 60 * 60) % 24) + leftd *
24); //
var leftm = Math.floor(lefttime / (1000 * 60) % 60) < 10 ? "0" + Math.floor(lefttime / (1000 * 60) % 60) :
var leftd = Math.floor(lefttime / (1000 * 60 * 60 * 24)); //
var lefth = Math.floor((lefttime / (1000 * 60 * 60) % 24) + leftd * 24) < 10 ? "0" + Math.floor((lefttime /
(1000 * 60 * 60) % 24) + leftd * 24) : Math.floor((lefttime / (1000 * 60 * 60) % 24) + leftd *
24); //
var leftm = Math.floor(lefttime / (1000 * 60) % 60) < 10 ? "0" + Math.floor(lefttime / (1000 * 60) % 60) :
Math.floor(lefttime / (1000 * 60) % 60); //
var lefts = Math.floor(lefttime / 1000 % 60) < 10 ? "0" + Math.floor(lefttime / 1000 % 60) : Math.floor(
lefttime / 1000 % 60); //
var lefts = Math.floor(lefttime / 1000 % 60) < 10 ? "0" + Math.floor(lefttime / 1000 % 60) : Math.floor(
lefttime / 1000 % 60); //
this.countdownh = lefth; //
this.countdownm = leftm; //
this.countdowns = lefts; //
@ -110,100 +230,300 @@
clearInterval(this.timers);
// this.getDetailByOrderNo();
this.countdownh = this.countdownm = this.countdowns = "00";
}
},
//changeCheckBox
changeCheckBox(e){
if(e.detail.value.length>1){
let val = e.detail.value[e.detail.value.length-1]
this.isCheck.map((item,index)=>{
if(index-1 == val){
this.isCheck=[]
}
})
this.isCheck=[false,false,false];
this.isCheck[val-1]=true;
}else if(e.detail.value.length==1){
this.isCheck=[false,false,false];
this.isCheck[e.detail.value[0]-1]=true;
}else{
this.isCheck=[false,false,false];
}
// radioChange(e) {
// // this.yhqType = e.detail.value;
// },
//
payMoney() {
// uni.reLaunch({
// url: "/pages/classify/order/paymentResult?id=202304201646301166509"
// // url: '../../user/order_details/order_details?id=' +that.orderNo
// });
// console.log(this.isCheck,e.detail.value)
// return
//
},
payMoney(){
let isSelect=false;
console.log(this.isCheck,"支付确认")
this.isCheck.map((item,index)=>{
if(item){
isSelect=true;
if(index == 0){
this.pay('zfb')
return
}
if(index == 1){
this.pay('yl')
return
}
if(index == 2){
this.pay('wx')
return
let that = this;
if (that.paytype == '') {
uni.showToast({
title: '请选择支付方式',
icon: 'none',
duration: 2000
})
return;
}
if (that.paytype == '2') {
// #ifdef H5
let params = {
"orderNo": that.orderNo,
"openId": app.globalData.openId,
"openIdType": 2
}
// #endif
// #ifdef MP
let params = {
"orderNo": that.orderNo,
"openId": app.globalData.openId,
"openIdType": 1
}
// #endif
wechatPay(params).then(res => {
if (res.return_code == '000000') {
// #ifdef MP
uni.showLoading({
title: '支付中...'
})
uni.requestPayment({
"appId": res.return_data.appId,
"nonceStr": res.return_data.nonceStr,
"package": res.return_data.package,
"paySign": res.return_data.sign,
"signType": "MD5",
"timeStamp": res.return_data.timeStamp,
success: function(res) {
uni.hideLoading();
uni.showToast({
title: '支付成功'
})
uni.reLaunch({
url: "/pages/classify/order/paymentResult?id=" + that
.orderNo
// url: '../../user/order_details/order_details?id=' +that.orderNo
});
},
fail: function(err) {
uni.hideLoading();
uni.navigateBack({})
},
});
// #endif
//
// #ifdef H5
//
that.payRequest(res);
// #endif
} else {
// that.cancel();
uni.showToast({
title: res.return_msg,
icon: 'none'
})
}
}
})
})
return;
}
//使
if (that.paytype == '3') {
if (!that.user.isSetPayPwd) {
uni.navigateTo({
url: '/pages/login/updatePas/updatePas'
// url: '../../login/updatePas/updatePas'
})
return;
}
if (!that.user.setHltCard) {
uni.showToast({
icon: 'none',
title: '当前账号还未绑定,前往绑定',
duration: 2000,
success() {
setTimeout(() => {
uni.navigateTo({
url: '/pages/user/bindingCard/bindingCard'
// url: '../../user/bindingCard/bindingCard'
})
}, 1000)
}
});
return;
}
that.$refs.paymentPassword.modalFun('show');
}
if(!isSelect){
},
payRequest: function(self) {
let that = this;
uni.showLoading({
title: '支付中...'
})
jweixin.config({
// debug: true, // ,apialertpclogpc
appId: self.return_data.appId, //
timestamp: self.return_data.timeStamp, //
nonceStr: self.return_data.nonceStr, //
signature: self.return_data.sign, // 1
jsApiList: ['chooseWXPay'] // 使JSJS2
});
uni.hideLoading();
jweixin.ready(function() {
jweixin.checkJsApi({
jsApiList: ['chooseWXPay'], // JSJS2,
success: function(res) {},
fail: function(res) {}
});
jweixin.chooseWXPay({
appId: self.return_data.appId,
timestamp: self.return_data
.timeStamp, // jssdk使timestamp使timeStampS
nonceStr: self.return_data.nonceStr, // 32
package: self.return_data
.package, // prepay_idprepay_id=***
signType: 'MD5', // 'SHA1'使'MD5'
paySign: self.return_data.sign, //
success: function(res) {
//
uni.showToast({
title: '支付成功'
})
uni.reLaunch({
url: "/pages/classify/order/paymentResult?id=" + that
.orderNo
// url: '../../user/order_details/order_details?id=' +that.orderNo
});
},
cancel: function(r) {
uni.navigateBack({})
},
fail: function(res) {
uni.navigateBack({})
},
complete: function(res) {
}
});
});
jweixin.error(function(res) {
uni.showToast({
title: '请选择支付方式',
duration: 2000,
icon:"error"
icon: 'none',
title: '支付失败了',
duration: 4000
});
}
// configerrorconfigdebugresSPA
/*alert("config信息验证失败");*/
});
},
pay(type){
uni.navigateTo({
url:"/pages/classify/order/paymentResult?type="+type
//
submitHandle(e) {
this.PaymentPassword = e.value;
if (this.PaymentPassword == '') {
uni.showToast({
title: '请勿手动关闭弹窗',
icon: 'none',
duration: 2000
})
return;
}
uni.showLoading({
title: '支付中...'
})
}
}
let cardNo;
if (this.paytype == 3) {
cardNo = this.user.hltCardNo.cardNo;
}
let params = {
"orderNo": this.orderNo,
"cardNo": cardNo,
"password": this.PaymentPassword,
"carLicensePlate": ''
}
cardPay(params).then(res => {
uni.hideLoading();
if (res.return_code == '000000') {
uni.showToast({
title: '支付成功'
})
uni.reLaunch({
url: "/pages/classify/order/paymentResult?id=" + that.orderNo
// url: '../../user/order_details/order_details?id=' +this.orderNo
})
return;
}
// if (res.return_code == '102130') {
// // this.cancel();//
// uni.navigateTo({
// url: '../../login/updatePas/updatePas'
// })
// return;
// }
// if (res.return_code == '102132') {
// // this.cancel();
// uni.showToast({
// title: res.return_msg,
// icon: 'none'
// })
// return;
// }
uni.navigateBack({})
uni.showToast({
title: res.return_msg,
icon: 'none'
})
})
return;
},
// pay(type) {
// uni.navigateTo({
// url: "/pages/classify/order/paymentResult?type=" + type
// })
// }
}
}
</script>
<style scoped>
.pay-syt{
height: 100vh;
}
.pay-img{
width: 30px;
height: 30px;
}
.pd15-v{
padding: 15px 0;
}
.btn-contain{
position: fixed;
bottom: 0;
left: 0;
right: 0;
<style lang="scss" scoped>
.bor-b {
border-bottom: 1px solid #f6f6f6;
&:last-of-type {
border-bottom: none;
}
}
.pay-syt {
height: 100vh;
}
.pay-img {
width: 30px;
height: 30px;
}
.pd15-v {
padding: 15px 0;
}
.btn-contain {
position: fixed;
bottom: 0;
left: 0;
right: 0;
padding: 10px;
box-sizing: border-box;
}
.btn-edit{
height: 40px;
border-radius: 20px;
line-height: 40px;
background-color: #EA3E44;
}
</style>
}
.btn-edit {
height: 40px;
border-radius: 20px;
line-height: 40px;
background-color: #EA3E44;
}
</style>

@ -3,22 +3,22 @@
<view class="top-con font18">
<view class="colorgr icon-ymt zhenque font22"></view>
<view class="mart5">支付成功</view>
<view class="mart5">¥<text class="fontwig6 font24">32.9</text></view>
<view class="mart5 font16 color999">微信支付</view>
<view class="mart5">¥<text class="fontwig6 font24">{{recinfo.payablePrice}}</text></view>
<view class="mart5 font16 color999">{{ recinfo.payType | filtersType}}支付</view>
</view>
<view class="min-con color999 font18">
<!-- <view class="min-con color999 font18">
<view class="">
订单签收后奖励
</view>
<view class="">
26积分
</view>
</view>
</view> -->
<view class="bottom-con">
<view class="btn1 btn">
<view class="btn1 btn" @click="orderDetail">
查看订单
</view>
<view class="btn2 btn">
<view class="btn2 btn" @click="yaoqin">
邀请有礼
</view>
</view>
@ -26,20 +26,72 @@
</template>
<script>
import { getDetailByOrderNo } from '@/Utils/Api.js'
export default {
data(){
return{
payType:'',
orderId:'',
recinfo:{},
}
},
onLoad(option){
this.payType=option.type
this.orderId=option.id
console.log(option)
},
onShow(){
this.getDetailByOrderNo()
},
filters:{
filtersType(v){
if(v == 1){
return "支付宝"
}
if(v == 2){
return "微信"
}
if(v == 3){
return "金币"
}
if(v == 4){
return "汇联通工会卡"
}
if(v == 5){
return "银联"
}
return ''
}
},
methods:{
//
getDetailByOrderNo() {
uni.showLoading({
title: '加载中...'
})
let params = {
orderNo: this.orderId,
}
getDetailByOrderNo(params).then(res => {
uni.hideLoading();
if (res.return_code == '000000') {
this.recinfo = res.return_data;
}
})
},
orderDetail(){
uni.reLaunch({
url:"/pages/user/order_list/order_list"
})
},
yaoqin(){
uni.navigateTo({
url:"/pages/user/generatePoster/generatePoster"
})
}
}
}
</script>

@ -1,274 +1,365 @@
<template>
<!-- 选择类别 -->
<wybPopup ref="popup" @hide="hide" type="bottom" width="500" scrollY="true" radius="0" :showCloseIcon="true">
<!-- 货品 -->
<view v-if="keywords == 'goods'" class="pop-contain pd-main">
<view class="pop-title fontwig6"><text>商品列表</text></view>
<view class="pop-content">
<view class="flex-row bottom-border pd15">
<view class="">
即时达
</view>
<view class="">
共16件
</view>
<!-- 选择类别 -->
<wybPopup ref="popup" @hide="hide" type="bottom" width="500" scrollY="true" radius="0" :showCloseIcon="true">
<!-- 货品 -->
<view v-if="keywords == 'goods'" class="pop-contain pd-main">
<view class="pop-title fontwig6"><text>商品列表</text></view>
<view class="pop-content">
<view class="flex-row bottom-border pd15">
<view class="">
数量
</view>
<!-- 遍历商品 -->
<view v-for="item in [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]" class="goods-pop bottom-border pd15">
<view class="">
<image class="st-img" :src="images" mode="aspectFill"></image>
<view class="">
{{getNumberAll}}
</view>
</view>
<!-- 遍历商品 -->
<view v-for="(item,index) in goodsList" :key="index" class="goods-pop bottom-border pd15">
<view class="">
<image class="st-img" v-if="item.img" :src="imageUrl + item.img" mode="aspectFill"></image>
</view>
<view class="goods-flex1">
<view class="marb10 font16">
{{item.title}}
</view>
<view class="goods-flex1">
<view class="marb10 font16">
天友原味减糖活性乳酸菌饮品 300ml
</view>
<view class="flex-row">
<view class="flex-row">
<view class="dis-flex">
<view class="fcorred">
¥5.2
¥{{item.price}}
</view>
<view class="fcor666">
×1
<view class="text-lt fcor666 margle10">
¥{{item.originalPrice}}
</view>
</view>
<view class="fcor666">
×{{item.num}}
</view>
</view>
</view>
</view>
</view>
<!-- 运费 -->
<view v-if="keywords == 'freight'" class="pop-contain pd-main">
<view class="pop-title fontwig6"><text>运费说明</text></view>
<view class="pop-content">
<view class="flex-row pd10">
<view class="font16">
运费总计
</view>
<view class="">
¥0
</view>
</view>
<!-- 运费 -->
<view v-if="keywords == 'freight'" class="pop-contain pd-main">
<view class="pop-title fontwig6"><text>运费说明</text></view>
<view class="pop-content">
<view class="flex-row pd10">
<view class="font16">
运费总计
</view>
<view class="flex-row font14 color999 marb5">
<view class="">
<text class="font20 paddtright5">·</text>运费
</view>
<view class="">
¥6
</view>
</view>
<view class="flex-row font14 color999">
<view class="">
<text class="font20 paddtright5">·</text>运费优惠
</view>
<view class="">
-¥6
</view>
<view class="">
¥{{postPriceAll}}
</view>
<view class="pd10">
<view class="font15">
基础运费
</view>
</view>
<view class="flex-row font14 color999 marb5">
<view class="">
<text class="font20 paddtright5">·</text>运费
</view>
<view class="font14 color999 marb5">
基础运费6元
<view class="">
¥{{postPrice.freightPrice}}
</view>
<view class="font14 color999 marb5">
不同城市地区之间收费规则会略有不同
</view>
<view class="flex-row font14 color999">
<view class="">
<text class="font20 paddtright5">·</text>运费优惠
</view>
<view class="font14 color999 marb5">
运费优惠仅针对基础运费部分进行抵扣;
<view class="fcorred">
商品金额满{{postPrice.freePostPrice}}元包邮
</view>
</view>
<view class="font16 color999 mart10">
不同城市地区之间收费规则会略有不同
</view>
</view>
<!-- 积分 -->
<view v-if="keywords == 'integral'" class="pop-contain pd-main">
<view class="pop-title fontwig6"><text>积分说明</text></view>
<view class="pop-content">
<view class="flex-row pd10">
<view class="font16">
运费总计
</view>
<view class="">
¥0
</view>
</view>
<!-- 积分 -->
<view v-if="keywords == 'integral'" class="pop-contain pd-main">
<view class="pop-title fontwig6"><text>积分说明</text></view>
<view class="pop-content">
<view class="flex-row pd10">
<view class="font16">
运费总计
</view>
<view class="flex-row font14 color999 marb5">
<view class="">
<text class="font20 paddtright5">·</text>运费
</view>
<view class="">
¥6
</view>
<view class="">
¥0
</view>
<view class="flex-row font14 color999">
<view class="">
<text class="font20 paddtright5">·</text>运费优惠
</view>
<view class="">
-¥6
</view>
</view>
<view class="flex-row font14 color999 marb5">
<view class="">
<text class="font20 paddtright5">·</text>运费
</view>
<view class="pd10">
<view class="font15">
基础运费
</view>
<view class="">
¥6
</view>
<view class="font14 color999 marb5">
基础运费6元
</view>
<view class="flex-row font14 color999">
<view class="">
<text class="font20 paddtright5">·</text>运费优惠
</view>
<view class="font14 color999 marb5">
不同城市地区之间收费规则会略有不同
<view class="">
-¥6
</view>
<view class="font14 color999 marb5">
运费优惠仅针对基础运费部分进行抵扣;
</view>
<view class="pd10">
<view class="font15">
基础运费
</view>
</view>
<view class="font14 color999 marb5">
基础运费6元
</view>
<view class="font14 color999 marb5">
不同城市地区之间收费规则会略有不同
</view>
<view class="font14 color999 marb5">
运费优惠仅针对基础运费部分进行抵扣;
</view>
</view>
<!-- 优惠券 -->
<view v-if="keywords == 'coupon'" class="backcor9 height100 pop-contain pd-main">
<view class="pop-title fontwig6"><text>选择优惠券</text></view>
<view @click="noUse" class="fcor666 fotct pd-main mart10 border-8r backcolorfff">
不使用优惠券
</view>
<!-- 优惠券 -->
<view v-if="keywords == 'coupon'" class="backcor9 pop-contain pd-main">
<view class="pop-title fontwig6"><text>选择优惠券</text></view>
<radio-group @change="radioChange" >
<view class="dis-flex flex-sp fcor666 pd-main mart10 border-8r backcolorfff">
<view class="">
不使用优惠券
</view>
<view class="">
<radio class="radio-ca" :checked="yhqType == 0" :value="0" color="#FF1A34" />
</view>
</view>
<radio-group @change="radioChange">
<view v-for="(item,index) in yhqId" :key="item" class="dis-flex flex-sp pd-main mart10 border-8r backcolorfff">
<view class="wid25 fotct paddtright5 right-border">
<view class="fotred font20 fontwig6">
8.8折券
</view>
<view class="font13 mart5 fcor666">
最高抵10元
<view v-for="(item,index) in discountList" :key="index" class="pd-main mart10 border-8r backcolorfff" style="box-sizing: border-box;">
<view class="dis-flex flex-sp ">
<view class="wid25 fotct paddtright5 right-border">
<view class="fotred font20 fontwig6">
<image class="st-img" v-if="item.discountImg" :src="imageUrl+item.discountImg" mode="aspectFill">
</image>
</view>
</view>
</view>
<view class="flex-1 paddleft5">
<view class="font14">
新人专享全品类可用(特殊商品除外)
<view class="flex-1 paddleft5">
<view :class="' font14 '+item.discountCondition<=totalPrice?' ':' fcor666 '">
{{item.discountName}}
</view>
<view class="font13 mart5 fcor666">
截止时间:{{item.useEndTime | formatDate }}
</view>
</view>
<view class="font13 mart5 fcor666">
2023.03.27-2023.04.10
<view class="" v-if="item.discountCondition<=totalPrice">
<radio class="radio-ca" :checked="yhqType == item.id" :value="item.id" color="#FF1A34" />
</view>
</view>
<view class="">
<radio class="radio-ca" :checked="yhqType == item" :value="item" color="#FF1A34" />
<view v-if="item.discountCondition>totalPrice&&item.discountType == 1" class="paddtop10 mart10 border-t font14">
<view class="fotred fontwig6 ">不可用原因</view>
<view class="fcor666">
使用门槛为{{item.discountCondition}}还差{{item.discountCondition-totalPrice}}元才能使用
</view>
</view>
</view>
</radio-group>
</view>
</radio-group>
</wybPopup>
</view>
</wybPopup>
</template>
<script>
import wybPopup from '@/components/wyb-popup/wyb-popup.vue'
const app = getApp();
export default {
data(){
return{
images:"https://d1.shopxo.vip/static/upload/images/goods/2019/01/14/1547451274847894.jpg",
keywords:'',
yhqType:111,
yhqId:[
111,222,333,444
],
data() {
return {
imageUrl: app.globalData.imgUrl, //
keywords: '',
//
// yhqId: [
// 111, 222, 333, 444
// ],
//
goodsList: [],//
imageUrl: app.globalData.imgUrl, //
postPrice: null, //
discountList:[],//
totalPrice:0,//
yhqType: 0,//id
}
},
components:{
filters:{
formatDate(value, spe = '/') {
let data = new Date(value);
let year = data.getFullYear();
let month = data.getMonth() + 1;
let day = data.getDate();
let h = data.getHours();
let mm = data.getMinutes();
let s = data.getSeconds();
month = month >= 10 ? month : "0" + month;
day = day >= 10 ? day : "0" + day;
h = h >= 10 ? h : "0" + h;
mm = mm >= 10 ? mm : "0" + mm;
s = s >= 10 ? s : "0" + s;
return `${year}${spe}${month}${spe}${day} ${h}:${mm}:${s}`;
},
},
computed: {
getNumberAll() {
if (this.goodsList.length > 0) {
let num = 0;
this.goodsList.map(item => {
num += Number(item.num);
})
return num;
} else {
return 0
}
},
//
postPriceAll() {
if (this.postPrice) {
if (this.postPrice.totalPrice >= this.postPrice.freePostPrice) {
return 0
} else {
return this.postPrice.freightPrice;
}
} else {
return 0;
}
},
},
components: {
wybPopup
},
methods:{
methods: {
// //goods freight,integral,coupon
show(str){
show(str, data) {
this.goodsList = [];
this.postPrice = null;
this.discountList = [];
this.totalPrice = 0;
this.keywords = str;
if (str == 'goods') {
this.goodsList = data;
} else if (str == 'freight') {
this.postPrice = data;
console.log(this.postPrice, "obj")
}else if(str == 'coupon'){
this.discountList =data.discountList//
this.totalPrice =data.totalPrice //
}
this.$refs.popup.show();
},
radioChange(e){
radioChange(e) {
this.yhqType = e.detail.value;
console.log(this.yhqType)
this.$refs.popup.close()
},
hide(){
console.log(this.yhqType)
//
hide() {
this.$emit('selectYhq',this.yhqType)
},
noUse(){
this.yhqType = 0
this.$refs.popup.close();
}
// noUse() {
// this.yhqType = 0
// this.$refs.popup.close();
// }
}
}
</script>
<style lang="scss" scoped>
.flex-row{
display: flex;
justify-content: space-between;
align-items: center;
}
.bottom-border{
border-bottom: 1px solid #f6f6f6;
&:last-of-type{
border-bottom: none;
.flex-row {
display: flex;
justify-content: space-between;
align-items: center;
}
}
.right-border{
border-right: 1px dotted #EEEEEE;
}
.bottom-border {
border-bottom: 1px solid #f6f6f6;
.pd10{
padding: 10px 0;
}
.pd15{
padding: 15px 0;
}
&:last-of-type {
border-bottom: none;
}
}
.fotred{
color: #FF1A34;
}
.right-border {
border-right: 1px dotted #EEEEEE;
.pop-contain{
// text-align: center;
padding-top: 50px;
.pop-title{
text-align: center;
height: 50px;
line-height: 50px;
font-size: 18px;
position: fixed;
z-index:10;
top:0;
left: 0;
right: 0;
background-color: #ffffff;
}
}
//
.goods-pop{
display: flex;
align-items: center;
.st-img{
width: 82px;
height: 82px;
.pd10 {
padding: 10px 0;
}
.goods-flex1{
flex: 1;
padding: 0 20rpx;
text-align: left;
.pd15 {
padding: 15px 0;
}
}
.fotred {
color: #FF1A34;
}
.pop-contain {
// text-align: center;
padding-top: 50px;
.pop-title {
text-align: center;
height: 50px;
line-height: 50px;
font-size: 18px;
position: fixed;
z-index: 10;
top: 0;
left: 0;
right: 0;
background-color: #ffffff;
}
}
//
.goods-pop {
display: flex;
align-items: center;
//
.radio-ca{
// width: 20rpx;
// height: 20rpx;
}
.goods-flex1 {
flex: 1;
padding: 0 20rpx;
text-align: left;
}
}
</style>
.st-img {
width: 82px;
height: 82px;
}
//
.radio-ca {
// width: 20rpx;
// height: 20rpx;
}
</style>

File diff suppressed because it is too large Load Diff

@ -130,6 +130,7 @@
},
onShow(){
console.log("121212")
this.hackReset = false;
this.$nextTick(() => {
this.hackReset = true;
@ -232,7 +233,7 @@
pageSize:_this.pageData.pageNum,
price:price,
}
console.log(params,"params")
// console.log(params,"params")
getListGoodsDetail(params).then(res=>{
if (res.return_code == '000000') {
if(res.return_data.list.length > 0){

@ -103,77 +103,7 @@
<!-- start -->
<view class="row" v-for="(row,index) in orderList" :key="index"
@click="jumpDetails(row.orderNo,row.productType)">
<view class="width96 mart10 alijusstart">
<view class="width70">
<!-- edit -->
<view class="orderlabel" v-if="false">{{orderTyplist | msgFormat(row.productType)}}</view>
<view class="unread" v-if="row.orderStatus == 3 && !row.whetherCheck"></view>
</view>
<view class="width30 fotrt fcor666 font12">
{{typeText[row.orderStatus]}}
</view>
</view>
<view class="width96 mart10">
<!-- <view class="width70 flleft fotlt ">
<view class="font16 fontwig6 fcor333 alijusstart">
<image mode="widthFix" src="../../../static/img/order2.png" v-if="row.productType == 4"
class="marglerig" style="width: 50rpx;height: 50rpx;"></image>
<image mode="widthFix" src="../../../static/img/order3.png" v-if="row.productType == 3"
class="marglerig" style="width: 50rpx;height: 50rpx;"></image>
<image mode="widthFix" src="../../../static/img/order4.png" v-if="row.productType == 6"
class="marglerig" style="width: 50rpx;height: 50rpx;"></image>
<image mode="widthFix" src="../../../static/img/order5.png" v-if="row.productType == 5"
class="marglerig" style="width: 50rpx;height: 50rpx;"></image>
<image mode="widthFix" src="../../../static/img/order6.png" v-if="row.productType == 9"
class="marglerig" style="width: 50rpx;height: 50rpx;"></image>
<image mode="widthFix" src="../../../static/img/order8.png" v-if="row.productType == 7"
class="marglerig" style="width: 50rpx;height: 50rpx;"></image>
<image mode="widthFix" src="../../../static/img/order7.png" v-if="row.productType == 1"
class="marglerig" style="width: 50rpx;height: 50rpx;"></image>
<image mode="widthFix" src="../../../static/img/unioncard.png" v-if="row.productType == 8"
class="marglerig" style="width: 50rpx;height: 50rpx;"></image>
<image mode="widthFix" src="../../../static/img/order9.png" v-if="row.productType == 2"
class="marglerig" style="width: 50rpx;height: 50rpx;"></image>
<view class="width100 text1">{{row.title}}</view>
</view>
</view>
<view class="width30 flright fotrt fcor666 font15 fotrt">
<view class="font14 fcor333">
x1
</view>
</view> -->
<orderList :orderType="1"></orderList>
</view>
<view class="width96 mart10 font12 fcor999">
订单编号:{{row.orderNo}}
</view>
<view class="width96 height25 paddbotm10 alijusstart">
<view class="width60 fotlt ">
<view class="font12 text1 fcor999 mart5">
下单时间 : {{row.createTime | formatDate('-')}}
</view>
</view>
<view class="width40 fotrt fcor666 font15 fotrt alijusend">
<view class="font12 width25 fcor999">合计:</view>
<view class="fotlt text1 font18 fcor333 ">
{{row.payPrice}}
</view>
</view>
</view>
<view class="width96 mart10 marb5" style="border:1px dashed #f4f4f4;" v-if="(row.orderStatus==1)">
</view>
<view class="btns" v-if="(row.orderStatus==1)">
<block>
<view class="default" @click.stop="cancel(row.orderNo)">
取消订单
</view>
<view class="pay" @click.stop="toPayment(row)">立即支付</view>
</block>
</view>
</view>
<!-- end -->
@ -349,6 +279,14 @@
})
return;
}
//
if(item == 12){
uni.navigateTo({
url: '/pages/classify/order/orderDetail?id='+e
})
return;
}
uni.navigateTo({
url: '../order_details/order_details?id=' + e
})

@ -962,7 +962,15 @@ $uni-font-size-paragraph:30upx;
.border-b{
border-bottom: 1px solid #f6f6f6;
}
.border-t{
border-top: 1px solid #f6f6f6;
}
// 盒模型
.border-box{
box-sizing: border-box;
}
//text
.text-lt{
text-decoration: line-through;
}
Loading…
Cancel
Save