talk_appAmin/pages/signln/exdetail.vue

722 lines
14 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<!-- 兑换商城详情 -->
<template>
<view class="uninavbar" @click="returnTo()">
<image src="../../static/images/sign/return.png"></image>
</view>
<view>
<image :src="bindIcon(SignProductList[0].coverPic)"></image>
</view>
<view style="background-color: #ffffff; overflow-x: hidden;">
<view style="margin-left: 32rpx; margin-right: 32rpx;">
<view style="margin-top: 33rpx;">
<image class="nv-image" src="../../static/images/sign/one.png"></image>
<text class="nv-text">{{SignProductList[0].goldCoin}}</text>
<text class="nv-ku">库存{{SignProductList[0].inventory}}</text>
</view>
<view>
<text class="nv-con">{{SignProductList[0].title}}</text>
</view>
<view style="
width: 750rpx;
height: 8rpx;
background: #faf9fa;
margin-top: 28rpx;
"></view>
<view style="margin-top: 24rpx;">
<text class="nv-r">兑换规则</text>
</view>
<view style="margin-top: 24rpx;">
<p>
(1)活动参与:通过参加我们组织的促销活动问卷调查或者签到等方式可以获得积分不同活动的积分奖励数额会有所不同请您注意查看活动规则
</p>
<p>
(2)消费累积:您在我们的商城购物进行支付时将会根据您的消费额度累积相应的积分具体积分累积规则可以在购物时的结算界面或活动页面上获得
</p>
<p>
(3)推荐好友:通过邀请好友注册购物等方式参与我们的服务您可以获得定的积分奖励请注意为了避免滥用行为我们可能会对邀请积分进行限制或验证
</p>
</view>
<view style="
width: 750rpx;
height: 8rpx;
background: #faf9fa;
margin-top: 25rpx;
"></view>
<view style="margin-top: 30rpx;">
<text style="
font-weight: Regular;
width: 100rpx;
height: 25rpx;
font-size: 24.37rpx;
text-align: left;
color: #000000;
margin: auto ;
display: block;
">商品详情</text>
</view>
</view>
<view style="overflow-x: hidden;width: 100%; margin-top: 33rpx;background-color: #ffffff;">
<view v-for="(item,index) in SignProductList[0].detailsPic.split(',')" :key="index">
<image style="margin-top: 24rpx;display: block;" :src="bindIcon(item)"></image>
</view>
</view>
<view class="but" @click="butOn()" style="position: fixed; bottom: 92rpx; left: 32rpx;">
<text>立即兑换</text>
</view>
</view>
<!-- 弹起 -->
<uni-popup ref="popup" border-radius="32rpx 32rpx 0 0" background-color="#ffffff">
<view style="position:absolute; right: 32rpx; vertical-align:middle; z-index: 10;">
<image @click="clone()" style="width: 32rpx;height: 32rpx;" src="../../static/images/sign/clone.png">
</image>
</view>
<view class="uni-popup-view">
<view class="uni-top">
<text class="uni-top-text">确认兑换</text>
</view>
<view v-if="queryParams != null" style="margin-top: 57rpx;margin-left: 32rpx;" @click="handerGoTo()">
<view>
<text class="textname">
{{queryParams.name}}<text class="textphone">{{queryParams.phone}}</text>
</text>
<image style="width: 14rpx;height: 23rpx;" class="icons" src="../../static/images/sign/rig.png">
</image>
<text class="textaddress">{{queryParams.address}}{{queryParams.detailedAddress}}</text>
</view>
</view>
<view v-else style="margin-top: 73rpx;margin-left: 32rpx;" @click="handerGoTo()">
<view>
<text class="textname">
请先添加收货信息
</text>
<image style="width: 14rpx;height: 23rpx;" class="icons1" src="../../static/images/sign/rig.png">
</image>
</view>
</view>
<view class="boxconte">
<view style="display: flex;">
<view>
<image :src="bindIcon(SignProductList[0].coverPic)" class="boximage"></image>
</view>
<view>
<text class="boxtext">
{{SignProductList[0].title}}
</text>
<view class="boxbottom-image">
<image class="right-image" src="../../static/images/sign/one.png"></image>
<text>{{SignProductList[0].goldCoin}}</text>
<view class="right-rigth">
<view @click="rightfirstchild()" class="right-first-child">-</view>
<text class="right-text">{{sum}}</text>
<view @click="rightlastchild()" class="right-last-child">+</view>
</view>
</view>
</view>
</view>
</view>
<view class="boxbottom">
<input placeholder="留言备注 (限50字)" placeholder-class="inputcolor" v-model="inputvalue" />
</view>
<view @click="butOnBut()" class="but" style="position: absolute;bottom: 24rpx;left: 32rpx;right: 32rpx;">
<text>立即兑换</text>
</view>
</view>
</uni-popup>
</template>
<script setup>
// import {
// idCard
// } from "uview-plus/libs/function/test";
import {
onMounted,
reactive,
ref,
toRefs,
getCurrentInstance
}
from "vue"
const popup = ref(null);
const images = ref("https://cbu01.alicdn.com/img/ibank/2018/374/990/9121099473_1558693147.jpg");
const inputvalue = ref("");
const IsShow = ref(false);
const sum = ref(1)
const dataProduct = reactive({
formProduct: {},
queryParamsProduct: {
pageNum: 1,
pageSize: 10,
coverPic: null,
title: null,
content: null,
substitutionRe: null,
inventory: null,
goldCoin: null,
detailsPic: null,
time: null,
isListing: null,
discount: null,
id: null
},
rulesProduct: {}
});
const {
queryParamsProduct,
formProduct,
rulesProduct
} = toRefs(dataProduct);
import {
listSignProduct,
getSignProduct,
delSignProduct,
addSignProduct,
updateSignProduct
} from "@/api/signln/SignProduct/SignProduct";
const SignProductList = ref();
//商品id
const productid = ref();
/** 查询商品列表 */
function getListProduct() {
queryParamsProduct.value.id = productid.value;
listSignProduct(queryParamsProduct.value).then(response => {
SignProductList.value = response.rows;
console.log(SignProductList.value)
});
}
import config from '@/config';
function bindIcon(icon) {
return config.baseUrl + icon;
}
const arraddress = reactive([{
id: 1,
name: "1",
phone: "1",
address: "1"
}])
function butOn() {
popup.value.open('bottom');
}
function clone() {
popup.value.close()
}
//地址
function handerGoTo() {
uni.navigateTo({
url: './harvestaddress'
});
}
//减
function rightfirstchild() {
if (sum.value > 1) {
sum = sum.value--;
}
}
//加
function rightlastchild() {
sum = sum.value++;
}
import {
listSignExchange,
getSignExchange,
delSignExchange,
addSignExchange,
updateSignExchange
} from "@/api/signln/SignExchange/SignExchange";
//返回
function returnTo() {
uni.navigateBack({
delta: 1
});
}
const arrImage = reactive([{
address: "https://img2.baidu.com/it/u=498628918,3669803110&fm=253&fmt=auto&app=138&f=JPEG?w=565&h=374"
},
{
address: "https://img1.cfw.cn/editors/attached/image/20231123/202311231332325212.jpg"
},
{
address: "http://t13.baidu.com/it/u=2134668050,4238032983&fm=224&app=112&f=JPEG?w=500&h=500"
},
{
address: "http://t13.baidu.com/it/u=2134668050,4238032983&fm=224&app=112&f=JPEG?w=500&h=500"
}
])
import {
useRouter,
useRoute
} from 'vue-router';
const route = useRoute();
//接受返回的addressid
onMounted(() => {
// console.log(route.query.addressid)
function getList() {
queryParams.id = route.query.addressid;
if (route.query.addressid != undefined) {
listSignAddressid(queryParams).then(response => {
queryParams = response;
// console.log(queryParams)
});
} else {
queryParams.inCommonUse = '1';
listSignAddressUser(queryParams).then(response => {
queryParams = response.rows[0];
// console.log(response)
// console.log(queryParams.name)
});
}
}
getList();
// console.log(route.query.productid)
productid.value = route.query.productid;
getListProduct();
});
import {
listSignAddress,
getSignAddress,
delSignAddress,
addSignAddress,
updateSignAddress,
listSignAddressUser,
listSignAddressid
} from "@/api/signln/SignAddress/SignAddress";
let queryParams = reactive({
id: null,
name: null,
phone: null,
address: null,
detailedAddress: null,
inCommonUse: null,
userId: null
})
//
const {
proxy
} = getCurrentInstance();
//立即越换
function butOnBut() {
// SignProductList._rawValue[0].id
// queryParams.id
// sum.value
// inputvalue.value
if (queryParams == undefined) {
proxy.$modal.msgError("地址不能为空");
return;
}
var addExchange = {
productId: SignProductList._rawValue[0].id,
addressId: queryParams.id,
remark: inputvalue.value,
quantity: sum.value
}
console.log(addExchange)
addSignExchange(addExchange).then(response => {
console.log(response);
if (response == 1) {
uni.navigateTo({
url: './successfulexchange'
});
}
if (response == 0) {
proxy.$modal.msgError("您的校园币不足");
}
if (response == 3) {
proxy.$modal.msgError("库存不足");
}
});
}
</script>
<style scoped>
/* :deep(.uni-popup .uni-popup__wrapper){
background-color:red !important;
} */
.uninavbar {
position: absolute;
z-index: 9999;
top: 110rpx;
left: 32rpx;
}
.uninavbar>image {
width: 31rpx;
height: 44rpx;
color: #000000;
}
view>image {
width: 750rpx;
height: 500rpx;
}
.but {
width: 686rpx;
height: 88rpx;
border-radius: 44rpx 44rpx 44rpx 44rpx;
background: linear-gradient(-90deg, #c9f6f5, #f7f8e3);
}
.but>text,
.buts>text {
font-weight: Regular;
width: 131rpx;
height: 33rpx;
font-size: 32rpx;
text-align: left;
color: #000000;
display: block;
margin: auto;
line-height: 88rpx;
}
.bot-bot {
width: 750rpx;
height: 1000rpx;
border-radius: 32rpx 32rpx 0 0;
/* background: #ffffff; */
background-color: #000000;
position: absolute;
bottom: 40rpx;
left: 0rpx;
transition: bottom 5s;
/* Slide in effect */
}
.buts {
position: absolute;
bottom: 91rpx;
}
.uni-popup-view {
position: relative;
left: 0rpx;
height: 70vh;
width: 750rpx;
margin-top: 31rpx;
}
.uni-top {
display: flex;
}
.uni-top-text {
font-weight: Regular;
width: 124rpx;
/* height: 31rpx; */
font-size: 30rpx;
text-align: left;
color: #000000;
display: block;
margin: auto;
line-height: 31rpx;
}
.textname,
.textphone,
.textaddress {
font-weight: Regular;
width: 48rpx;
height: 29rpx;
font-size: 24rpx;
line-height: 29rpx;
text-align: left;
color: #999999;
}
.icons {
float: right;
margin-top: 19rpx;
margin-right: 32rpx;
}
.icons1 {
float: right;
margin-top: 1rpx;
margin-right: 32rpx;
}
.textphone {
margin-left: 26rpx;
}
.textaddress {
display: block;
width: 501rpx;
/* height: 24rpx; */
line-height: 29rpx;
overflow: hidden;
word-wrap: break-word;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 1;
}
.boxconte {
width: 686rpx;
height: 198rpx;
border-radius: 24rpx 24rpx 24rpx 24rpx;
background: #ffffff;
box-shadow: 0 0 10rpx #ffffff;
margin-left: 32rpx;
margin-top: 24rpx;
margin-right: 32rpx;
}
.boximage {
width: 150rpx;
height: 150rpx;
border-radius: 24rpx 24rpx 24rpx 24rpx;
background: #999999;
margin: 24rpx 0rpx 24rpx 24rpx;
}
.boxtext {
font-weight: Regular;
width: 459rpx;
/* height: 44rpx; */
line-height: 26rpx;
font-size: 20rpx;
text-align: left;
color: #000000;
margin: 24rpx 29rpx 0 29rpx;
overflow: hidden;
word-wrap: break-word;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
/* display: block; */
}
.boxbottom-image {
margin-left: 24rpx;
margin-top: 80rpx;
}
.boxbottom-image>text {
font-weight: Regular;
width: 34rpx;
height: 17rpx;
font-size: 20rpx;
text-align: left;
color: #F99B46;
margin-left: 10rpx;
vertical-align: middle;
}
.boxbottom {
width: 686rpx;
height: 88rpx;
border-radius: 24rpx 24rpx 24rpx 24rpx;
background: #f6f6f6;
margin: 32rpx
}
.boxbottom>input {
width: 686rpx;
height: 88rpx;
padding-left: 25rpx;
}
.right-image {
width: 25rpx;
height: 26rpx;
vertical-align: middle;
}
:deep(.inputcolor) {
font-weight: Regular;
width: 207rpx;
/* height: 88rpx; */
font-size: 24.37rpx;
text-align: left;
color: #999999;
}
.right-rigth {
float: right;
margin-right: 24rpx;
display: flex;
}
.right-first-child {
width: 33.94rpx;
height: 33.94rpx;
/* background: #ffffff; */
background-color: #999999;
line-height: 32rpx;
text-align: center;
border-radius: 32rpx;
color: #F6F6F6;
line-height: 32rpx;
text-align: center;
font-size: 20rpx;
}
.right-text {
vertical-align: middle;
font-weight: Regular;
width: 7rpx;
height: 16rpx;
font-size: 20rpx;
color: #000000;
margin-left: 24rpx;
margin-right: 24rpx;
margin-top: 4rpx;
}
.right-last-child {
vertical-align: middle;
width: 32rpx;
height: 32rpx;
background: #f99b46;
border-radius: 32rpx;
color: #F6F6F6;
line-height: 32rpx;
text-align: center;
font-size: 20rpx;
}
.nv-image {
width: 37rpx;
height: 38rpx;
vertical-align: middle;
}
.nv-text {
font-weight: Regular;
width: 60rpx;
height: 30rpx;
font-size: 36rpx;
text-align: left;
color: #F99B46;
margin-left: 12rpx;
vertical-align: middle;
}
.nv-ku {
font-weight: Regular;
/* width: 94rpx; */
height: 30rpx;
font-size: 30rpx;
text-align: left;
color: #999999;
vertical-align: middle;
float: right;
margin-right: 1rpx;
}
.nv-con {
font-weight: Regular;
width: 659rpx;
height: 66rpx;
font-size: 30rpx;
text-align: left;
color: #000000;
margin-top: 27rpx;
line-height: 30rpx;
overflow: hidden;
word-wrap: break-word;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
}
.nv-r {
font-weight: Regular;
width: 118rpx;
height: 30rpx;
font-size: 30rpx;
text-align: left;
color: #000000;
}
p {
color: #000000;
font-weight: Regular;
font-face: Microsoft YaHei;
font-size: 24rpx;
text-align: left;
line-height: 36rpx;
}
</style>