This commit is contained in:
zpc 2025-05-24 12:41:46 +08:00
parent 8fa800a522
commit 7fc8762e49
10 changed files with 2 additions and 3334 deletions

View File

@ -131,6 +131,7 @@ class MiniProgramPlatform extends BasePlatform {
*/
chooseAddress() {
return new Promise((resolve, reject) => {
//#ifdef MP-WEIXIN
uni.chooseAddress({
success: res => {
res.detailed_address = res.provinceName + res.cityName + res.countyName +
@ -141,6 +142,7 @@ class MiniProgramPlatform extends BasePlatform {
reject(err)
}
});
//#endif
});
}
downloadFile(url) {

View File

@ -180,22 +180,6 @@
"navigationStyle": "custom"
}
},
{
"path": "pages/user/myCa",
"style": {
"navigationBarTitleText": "我的卡册",
"navigationBarBackgroundColor": "#222222",
"navigationBarTextStyle": "black"
}
},
{
"path": "pages/user/myCaDetail",
"style": {
"navigationStyle": "custom",
"navigationBarBackgroundColor": "#222222",
"navigationBarTextStyle": "black"
}
},
{
"path": "pages/sangdai/sangdai",
@ -419,12 +403,6 @@
"style": {
"navigationStyle": "custom"
}
},
{
"path" : "pages/other/web-detail-lucky-1",
"style": {
"navigationStyle": "custom"
}
}
],
"subPackages": [{

View File

@ -1,86 +0,0 @@
<template>
<view class="content" :style="webviewStyles">
<web ref="webview" class="webview" :src="webUrl" @message="onMessage"></web>
</view>
</template>
<script>
import PageContainer from '@/components/page-container/page-container.vue'
export default {
components: {
PageContainer
},
data() {
const sysinfo = uni.getSystemInfoSync();
return {
hideviewStyles: {
height: "0px",
width: "0px",
},
webviewStyles: {
height: sysinfo.windowHeight + "px",
width: sysinfo.windowWidth + "px",
},
isWebView: false,
status: "init",
prize: [],
// webUrl: 'https://zfunbox.cn/m/chou-box-luck.html',
webUrl: "http://192.168.1.26:5502/%E5%85%AC%E5%8F%B8/%E5%B7%A5%E4%BD%9C/%E5%8F%8B%E8%BE%BE/%E8%90%BD%E5%9C%B0%E9%A1%B5/chou-box-luck.html",
};
},
onLoad(option) {
uni.showToast({
title: "初始化"
})
this.load(option);
// this.$c.msg('aaa')
uni.showToast({
title: "初始化"
})
},
methods: {
async load(option) {
console.log(option);
uni.showToast({
title: "初始化"
})
if (option.key != null) {
this.prize = uni.getStorageSync("prizes-lucky");
console.log(this.prize);
this.sendMessageToWeb("prizes-lucky", this.prize)
}
},
onMessage(e) {
console.log('收到WebView消息:', e)
// this.sendMessageToWeb();
},
sendMessageToWeb(action, data) {
// 获取 webview 引用
const webview = this.$refs.webview;
console.log(webview);
// 向网页发送消息
webview.postMessage({
action: action,
data: data,
timestamp: Date.now()
});
},
}
}
</script>
<style lang="scss">
.content {
background-color: #fff;
}
.webview {
flex: 1;
}
</style>

View File

@ -1,744 +0,0 @@
<template>
<view class="content">
<view class="swiper-box">
<swiper :indicator-dots="true" :autoplay="false" style="width: 750rpx;height: 750rpx;">
<swiper-item v-for="(item, index) in goodsDetail.detail_image" :data-src="item" :key="index">
<view class="swiper-item">
<image class="goods_img" :src="item"></image>
</view>
</swiper-item>
</swiper>
</view>
<view class="goods_v">
<view class="goods_v_left">
<view> <text>{{ goodsDetail.seckill_price }}</text> </view>
<view>已售 {{ goodsDetail.sale_num }}</view>
</view>
<view class="hang2"> {{ goodsDetail.title }} </view>
</view>
<view class="xuanzhe" @click="$refs.mengban_show.open()">
<view>选择</view>
<view class="xuanzhe_con">
<view>已选{{ pop_news.name }}</view>
<image src="/static/mine/yaoqing/point_right.png" mode="widthFix" style="width: 24rpx;"></image>
</view>
</view>
<view class="shop_detail">
<image src="/static/shop/detail_head.png" class="xiangqing_head"></image>
<view class="zhuyi" v-html="goodsDetail.content"></view>
</view>
<view class="bar_box">
<view class="btn_boxs" @click="$refs.mengban_show.open()">立即购买</view>
</view>
<uni-popup ref="mengban_show" type="bottom">
<view class="addcar">
<view class="order_title">
<view>选择规格</view>
<view class="ca" @click="$refs.mengban_show.close()">×</view>
</view>
<scroll-view scroll-y="true" class="guige">
<view class="addcar_head">
<image :src="pop_news.pic"></image>
<view class="addcar_head_r">
<view>单价 <text style="font-size: 40rpx;">{{ pop_news.seckill_price }}</text> </view>
<view>规格{{ pop_news.name }}</view>
<view style="font-size: 24rpx;">库存{{ pop_news.stock }}</view>
</view>
</view>
<view class="size">
<view class="size_z" v-for="(a, b) in goodsDetail.spec_data" :key='b'>
<view class="g_title">{{ a.title }}</view>
<view>
<view :class="v.dis ? 'sel_color' : ''" @click.stop="color_sel(b, i)"
v-for="(v, i) in a.items" :key="i">{{ v.title }} </view>
</view>
</view>
</view>
<view class="duihuan">
<view class="g_title">购买数量</view>
<uni-number-box :min="1" :max="pop_news.stock" v-model="num" background="#FAF8F5" color="#fff">
</uni-number-box>
</view>
</scroll-view>
<view class="btn_boxs" @click="getOrder()">确定</view>
</view>
</uni-popup>
<!-- 确认订单 -->
<uni-popup ref="order_show" type="bottom">
<view class="order animated fadeInUp">
<view class="order_title">
<view>确认订单</view>
<view class="ca" @click="$refs.order_show.close()">×</view>
</view>
<view class="addcar_head">
<image :src="pop_news.pic"></image>
<view class="addcar_head_r">
<view>{{ pop_news.goods_name }}</view>
<view>规格{{ pop_news.name }}</view>
<view class="price_order">
<text> <text style="font-size: 36rpx;">{{ pop_news.price }}</text> </text>
<text>×{{ num }}</text>
</view>
</view>
</view>
<view class="order_title_con2">
<view style="font-size: 28rpx">付款方式</view>
<view class="fangshi" @click="change_yuan_index(1)">
<view class="flex_center">
<image src="/static/shop/bi.png" class="fangshi_img"></image>
<view>
使用星钻抵扣 {{ pay_news.use_integral }}剩余{{ pay_news.integral }}
</view>
</view>
<view class="p_t_r">
<image src="/static/shop/yuan_sel.png" v-if="bi"></image>
<image src="/static/shop/yuan.png" v-else></image>
</view>
</view>
<view class="fangshi" @click="change_yuan_index(2)">
<view class="flex_center">
<image src="/static/shop/yue.png" class="fangshi_img"></image>
<view>
使用星钻抵扣 {{ pay_news.use_money }}剩余{{ pay_news.money }}
</view>
</view>
<view class="p_t_r">
<image src="/static/shop/yuan_sel.png" v-if="yue"></image>
<image src="/static/shop/yuan.png" v-else></image>
</view>
</view>
</view>
<view class="kuaidi">
<view @click="showMulLinkageThreePicker">
<view style="width: 630rpx">
{{ selectCity }}
</view>
<image src="/static/mine/yaoqing/point_right.png"></image>
</view>
<view v-if="pop_news.freight > 0">
提示需支付{{ pop_news.freight }}元运费
</view>
<textarea maxlength="50" placeholder="请输入留言内容" v-model="message" />
</view>
<view @click="gotoPage('/pages/guize/guize?type=4')" class="xieyi">下单购买即表示同意 用户服务协议条款 </view>
<view class="btn_boxs" @click="pay()">确认支付</view>
</view>
</uni-popup>
</view>
</template>
<script>
import xwCountDown from '@/components/xw-CountDown'
export default {
components: {
xwCountDown
},
data() {
return {
num: 1,
goodsDetail: {},
//
is_collect: 2,
// id
goods_id: '',
sku: '',
//
pop_news: {},
//
pay_news: {},
// 1:,
bi: true,
// 2:
yue: false,
cityPickerValueDefault: [0, 0, 0],
selectCity: '选择收货地址',
name: '',
mobile: '',
message: ''
}
},
onLoad(v) {
let that = this;
that.goods_id = v.goods_id;
that.getData()
},
onShareAppMessage() {
let imageUrl = this.$config.getShareImageUrl();
return {
imageUrl: imageUrl,
title: "友达赏,正版潮玩手办一番赏",
path: '/pages/shouye/index?pid=' + uni.getStorageSync('pid')
}
},
methods: {
pay() {
let that = this
that.req({
url: 'shop_order_buy',
data: {
goods_id: that.goods_id,
ks: that.sku,
num: that.num,
is_money: that.yue ? 1 : 2,
is_integral: that.bi ? 1 : 2,
name: that.name,
mobile: that.mobile,
address: that.address,
message: that.message
},
success(res) {
console.log(res)
if (res.status == 1) {
if (res.data.is_weixin == 1) {
uni.requestPayment({
provider: 'wxpay',
timeStamp: res.data.timeStamp,
nonceStr: res.data.nonceStr,
package: res.data.package,
signType: 'MD5',
paySign: res.data.paySign,
success(res) {
console.log(res)
},
complete(res) {
if (res.errMsg == 'requestPayment:fail cancel') {
uni.showToast({
title: '取消支付',
icon: 'loading',
duration: 1000
})
}
if (res.errMsg == 'requestPayment:ok') {
uni.showToast({
title: '支付成功',
icon: 'success',
duration: 1000
})
setTimeout(() => {
that.$refs.order_show.close()
//
that.$customRouter.navigateTo('/pages/miaosha/shop_order', {}, 'redirectTo');
}, 1500)
}
}
})
} else {
uni.showToast({
title: '支付成功',
icon: 'success',
duration: 1000
})
setTimeout(() => {
that.$refs.order_show.close()
//
that.$customRouter.navigateTo('/pages/miaosha/shop_order', {}, 'redirectTo');
}, 1500)
}
} else {
uni.showToast({
title: res.data.msg,
icon: 'none'
})
}
}
})
},
/*三级联动选择*/
showMulLinkageThreePicker() {
let that = this
this.canInit = false
uni.chooseAddress({
success(res) {
that.selectCity = res.userName + '-' + res.provinceName + '-' + res.cityName + '-' + res
.countyName + '-' + res.detailInfo + '-' + res.telNumber
that.name = res.userName
that.mobile = res.telNumber
that.address = res.provinceName + '-' + res.cityName + '-' + res.countyName + '-' + res
.detailInfo
},
complete() {
// console.log('')
setTimeout(() => {
that.canInit = true
}, 500)
}
})
// this.$refs.mpvueCityPicker.show();
},
getOrder() {
this.$refs.mengban_show.close()
this.$refs.order_show.open()
this.change_yuan_index()
},
change_yuan_index(e) {
if (e == 1) {
this.bi = !this.bi
}
if (e == 2) {
this.yue = !this.yue
}
let that = this;
that.req({
url: 'shop_goods_browse',
data: {
goods_id: that.goods_id,
ks: that.sku,
num: that.num,
is_integral: that.bi ? 1 : 2,
is_money: that.yue ? 1 : 2
},
success(res) {
that.pay_news = res.data
that.pop_news = that.pay_news.goods
}
})
},
getData() {
let that = this;
that.req({
url: 'shop_goods_detail',
data: {
goods_id: that.goods_id,
},
success(res) {
if (res.status == 1) {
that.goodsDetail = res.data
let Things = that.goodsDetail.spec_data;
for (let i = 0; i < Things.length; i++) {
for (let j = 0; j < Things[i].length; j++) {
that.$set(Things[i].items[j], 'dis', false)
}
that.$set(Things[i].items[0], 'dis', true)
}
that.product_norms()
}
}
})
},
color_sel(a, b) {
let that = this;
let Things = that.goodsDetail.spec_data;
for (let j = 0; j < Things[a].items.length; j++) {
that.$set(Things[a].items[j], 'dis', false)
that.$set(Things[a].items[b], 'dis', true)
}
that.product_norms()
},
product_norms() {
let that = this;
that.sku = []
let Things = that.goodsDetail.spec_data;
for (let m = 0; m < Things.length; m++) {
for (let n = 0; n < Things[m].items.length; n++) {
if (Things[m].items[n].dis) {
that.sku += Things[m].items[n].k + ','
}
}
}
this.sku = this.sku.substr(0, this.sku.length - 1)
that.req({
url: 'shop_goods_detail_spec',
data: {
goods_id: that.goods_id,
ks: that.sku ? that.sku : '默认'
},
Loading: true,
success(res) {
if (res.status == 1) {
if (res.data.type == 1) {
that.pop_news = res.data.spec_info
}
}
}
})
}
}
}
</script>
<style>
textarea {
width: 630rpx;
height: 120rpx;
background: #333333;
border-radius: 10rpx;
margin-top: 20rpx;
padding: 10rpx 20rpx;
box-sizing: border-box;
font-size: 24rpx;
color: #999999;
}
.kuaidi>view:nth-of-type(2) {
font-size: 24rpx;
color: #999999;
}
.kuaidi>view:nth-of-type(1) {
border-bottom: 1rpx solid #E5E5E5;
padding: 20rpx 0;
display: flex;
justify-content: space-between;
align-items: center;
font-size: 28rpx;
font-weight: 500;
}
.kuaidi>view {
margin-top: 20rpx;
}
.kuaidi image {
width: 32rpx;
height: 32rpx;
}
.kuaidi {
padding: 0 30rpx 30rpx 30rpx;
width: 690rpx;
box-shadow: 0px 0rpx 10rpx 0px #1FF7F0;
border-radius: 20rpx;
margin: 24rpx auto 0;
box-sizing: border-box;
}
.p_t_r>image {
display: block;
width: 100%;
height: 100%;
}
.p_t_r {
width: 40rpx;
height: 40rpx;
background: #FFFFFF;
border: 4rpx solid #CCCCCC;
border-radius: 50%;
box-sizing: border-box;
}
.fangshi_img {
width: 40rpx;
height: 40rpx;
margin-right: 20rpx;
}
.fangshi {
display: flex;
justify-content: space-between;
font-size: 28rpx;
line-height: 76rpx;
align-items: center;
}
.xieyi {
font-size: 24rpx;
font-weight: bold;
color: #FFFFFF;
margin: 20rpx;
}
.price_order {
display: flex;
justify-content: space-between;
align-items: baseline;
width: 386rpx;
font-weight: bold;
color: #1FF7F0;
font-size: 24rpx;
}
.order_title_con2 {
box-shadow: 0px 0rpx 10rpx 0px #1FF7F0;
border-radius: 24rpx;
width: 690rpx;
padding: 20rpx 30rpx;
box-sizing: border-box;
font-weight: 500;
border-radius: 24rpx;
margin-top: 40rpx;
}
.ca {
position: absolute;
top: 0rpx;
right: 0;
font-size: 60rpx;
color: #FFFFFF;
}
.order_title {
display: flex;
justify-content: space-between;
align-items: center;
font-size: 32rpx;
font-weight: 500;
position: relative;
padding: 20rpx 0;
box-sizing: border-box;
}
.order {
width: 750rpx;
background: #0D0D0D;
box-shadow: 0rpx -2rpx 0rpx 0rpx #FFFFFF, 0rpx -2rpx 7rpx 0rpx #1FF7F0;
border-radius: 20rpx 20rpx 0rpx 0rpx;
position: absolute;
bottom: 0;
padding: 10rpx 30rpx 50rpx;
box-sizing: border-box;
color: #ffffff;
}
.confirm_pop {
width: 330rpx;
height: 88rpx;
border-radius: 44rpx;
display: flex;
justify-content: center;
align-items: center;
font-size: 32rpx;
}
.guige {
border-radius: 24rpx;
margin: 20rpx auto;
max-height: 1000rpx;
}
.size {
/* background: #FFFFFF; */
margin-top: 40rpx;
padding: 1rpx 20rpx 40rpx;
box-sizing: border-box;
border-radius: 24rpx;
color: #FFFFFF;
}
.size_z {
margin-top: 40rpx;
font-size: 28rpx;
color: #FFFFFF;
}
.g_title {
font-size: 28rpx;
font-family: Source Han Sans SC;
font-weight: 600;
color: #FFFFFF;
}
.size_z>view:nth-of-type(2) {
display: flex;
flex-wrap: wrap;
margin-top: 10rpx;
}
.size_z>view:nth-of-type(2)>view {
border: 1px solid #1FF7F0;
box-sizing: border-box;
text-align: center;
line-height: 60rpx;
margin-right: 36rpx;
padding: 0 40rpx;
margin-top: 20rpx;
border-radius: 10rpx;
color: #1FF7F0;
font-size: 28rpx;
}
.sel_color {
color: #0D0D0D !important;
background: linear-gradient(90deg, #F4F4F4 15%, #62FFFE 100%) !important;
}
.duihuan {
display: flex;
justify-content: space-between;
padding: 20rpx;
font-size: 28rpx;
margin-top: 30rpx;
/* background: #FFFFFF; */
box-sizing: border-box;
border-radius: 24rpx;
}
.addcar {
width: 100%;
position: absolute;
bottom: 0;
box-sizing: border-box;
padding: 10rpx 30rpx 50rpx;
color: #FFFFFF;
background: #0D0D0D;
box-shadow: 0rpx -2rpx 0rpx 0rpx #FFFFFF, 0rpx -2rpx 7rpx 0rpx #1FF7F0;
border-radius: 20rpx 20rpx 0rpx 0rpx;
}
.addcar_head {
display: flex;
}
.addcar_head>image {
width: 220rpx;
height: 220rpx;
border-radius: 24rpx;
}
.addcar_head_r {
margin-left: 29rpx;
display: flex;
flex-direction: column;
justify-content: space-around;
font-size: 28rpx;
}
.xiangqing_head {
width: 750rpx;
height: 66rpx;
display: block;
margin-bottom: 30rpx;
}
.shop_detail {
width: 100%;
/* background: #FFFFFF; */
padding: 18rpx;
box-sizing: border-box;
color: #120A06;
font-size: 28rpx;
}
::v-deep.shop_detail image {
width: 100%;
}
.content {
padding-bottom: 120rpx;
box-sizing: border-box;
background: #000000;
width: 100vw;
min-height: 100vh;
}
.goods_img {
width: 100%;
height: 760rpx;
}
.swiper-box {
width: 100%;
height: 750rpx;
position: relative;
}
.goods_v_left text {
font-size: 40rpx;
}
.goods_v_left>view:nth-of-type(1) {
font-weight: bold;
color: #1FF7F0;
font-size: 24rpx;
}
.goods_v_left {
display: flex;
justify-content: space-between;
margin: 14rpx auto;
}
.goods_v {
width: 690rpx;
height: 158rpx;
border-radius: 10rpx;
margin: 44rpx auto;
box-sizing: border-box;
padding: 0 30rpx;
font-size: 28rpx;
color: #ffffff;
background: #090909;
border: 1px solid #FFFFFF;
box-shadow: 0rpx 0 5rpx 3rpx #1FF7F0;
}
.xuanzhe {
width: 690rpx;
height: 91rpx;
background: #090909;
border: 1px solid #FFFFFF;
box-shadow: 0rpx 0 5rpx 3rpx #1FF7F0;
border-radius: 10rpx;
margin: 20rpx auto;
display: flex;
align-items: center;
justify-content: space-between;
padding: 0 30rpx;
box-sizing: border-box;
font-size: 28rpx;
color: #FFFFFF;
}
.xuanzhe_con {
display: flex;
align-items: center;
justify-content: space-between;
font-size: 28rpx;
font-weight: 400;
color: #FFFFFF;
width: 560rpx;
}
.bar_box {
box-sizing: border-box;
width: 100%;
height: 120rpx;
display: flex;
justify-content: center;
align-items: center;
position: fixed;
bottom: 30rpx;
background: #000000;
}
.btn_boxs {
width: 692rpx;
height: 88rpx;
color: #FFFFFF;
font-size: 36rpx;
font-family: 'YouSheBiaoTiHei';
display: flex;
justify-content: center;
align-items: center;
background: url('/static/shop/btn_bg.png') no-repeat 0 0 / 100% 100%;
}
</style>

View File

@ -1,346 +0,0 @@
<template>
<view class="content">
<view class="fixed">
<view class="status_bar" :style="'height:'+ statusBarHeight +'px;'"></view>
<view class="header_title">
<view class="title_ipt">
<image src="/static/shop/search.png"></image>
<input type="text" placeholder="在此搜索商品" placeholder-style="color:rgba(255,255,255,0.6)"
confirm-type="search" v-model="keyword" @confirm="show=0,loadData(1)" />
</view>
</view>
</view>
<mescroll-body ref="mescrollRef" @init="mescrollInit" :down="downOption" @down="downCallback" @up="upCallback">
<view class="home_class">
<v-tabs v-model="show" :tabs="cate1" field="title" @change="changeTab">
</v-tabs>
</view>
<view class="lunbo">
<swiper class="lb_swiper">
<swiper-item v-for="(a,index) in bannerdata" :key="index">
<view class="swiper-item">
<image :src="a.imgurl"></image>
</view>
</swiper-item>
</swiper>
</view>
<swiper :indicator-dots="false" :autoplay="false" style="min-height: 80rpx;">
<swiper-item v-for="(v,i) in cate2" :key='i' style="min-height: 80rpx !important;">
<view class="class_box">
<view v-for="(a,b) in v" :key='b' @click="gotoPage('/pages/shop/list?id='+a.id)">
<image :src="a.imgurl"></image>
<view class="hang1">{{a.title}}</view>
</view>
</view>
</swiper-item>
</swiper>
<view class="new_goods_list">
<view class="flex_center">
<image src="/static/shop/gift.png"></image>鉴正品 速发货
</view>
<view>好物集市丨精选搭配丨极速发货</view>
</view>
<view class="goods_ls_zc">
<view class="goods_ls_bx_it" v-for="(a,b) in tui_data" :key="b"
@click="gotoPage('/pages/shop/detail?goods_id='+a.id)">
<image :src="a.image"></image>
<view class="hang2">{{a.title}}</view>
<view class="zuanshi"> {{a.price}} </view>
</view>
</view>
</mescroll-body>
<tab-bar :index="2"></tab-bar>
</view>
</template>
<script>
export default {
data() {
return {
statusBarHeight: uni.getSystemInfoSync().statusBarHeight,
keyword: '',
show: 0,
cate1: [],
cate2: [],
bannerdata: [],
tui_data: [],
classindex: '',
downOption: {
auto: false
},
}
},
onShow() {
// this.getCate()
},
methods: {
changeTab(index) {
console.log('当前选中的项:' + index)
this.show = index
this.tui_data = []
// this.getCate()
this.mescroll.resetUpScroll()
},
getCate() {
let that = this;
},
openUrl(e) {
if (e.target == 1) {
this.$customRouter.navigateTo('../shouye/detail', { id: e.goods_id });
}
if (e.target == 2) {
this.$customRouter.navigateTo('detail', { goods_id: e.product_id });
}
if (e.target == 3) {
this.$customRouter.navigateTo('../web-view', { url: e.url });
}
},
downCallback() {
this.mescroll.resetUpScroll()
},
upCallback(page) {
this.loadData(page.num);
},
loadData(pageNo) {
//
let that = this;
that.req({
url: 'shop_seckill_index',
data: {
cate_id1: that.cate1 && that.cate1.length > 0 ? that.cate1[that.show].id : that.show,
},
Loading: true,
success(res) {
that.cate1 = res.data.cate1;
that.cate2 = res.data.cate2;
that.bannerdata = res.data.advert;
}
})
that.req({
url: 'shop_seckill_product',
Loading: true,
data: {
page: pageNo,
cate_id1: that.cate1 && that.cate1.length > 0 ? that.cate1[that.show].id : that.show,
title: that.keyword,
},
success(res) {
that.mescroll.endByPage(res.data.data.length, res.data.last_page);
if (pageNo == 1) {
that.tui_data = res.data.data;
} else {
that.tui_data = that.tui_data.concat(res.data.data);
}
}
})
},
}
}
</script>
<style>
.new_goods_list>view:nth-of-type(2) {
font-size: 20rpx;
}
.new_goods_list image {
width: 40rpx;
height: 40rpx;
margin-right: 10rpx;
}
.new_goods_list {
display: flex;
justify-content: space-between;
align-items: center;
box-sizing: border-box;
margin: 30rpx auto;
width: 690rpx;
height: 58rpx;
color: #FFFFFF;
font-size: 28rpx;
}
.home_class {
width: 710rpx;
margin: 10rpx auto 20rpx;
}
.title_ipt>image {
width: 50rpx;
height: 50rpx;
position: absolute;
left: 24rpx;
top: 0;
bottom: 0;
margin: auto;
}
.title_ipt {
width: 476rpx;
height: 60rpx;
background: #161616;
border-radius: 30rpx;
position: relative;
}
.title_ipt>input {
width: 380rpx;
height: 60rpx;
background: #161616;
padding-left: 90rpx;
box-sizing: border-box;
border-radius: 30rpx;
font-size: 28rpx;
line-height: 60rpx;
color: #FFFFFF;
}
.header_title {
height: 60rpx;
line-height: 60rpx;
margin-top: 10rpx;
width: 100%;
box-sizing: border-box;
padding-left: 30rpx;
}
.status_bar {
height: var(--status-bar-height);
width: 100%;
}
.fixed {
background: #000000;
/* border: 1rpx solid red; */
width: 750rpx;
box-sizing: border-box;
position: fixed;
/* #ifdef MP */
top: 0;
/* #endif */
/* #ifndef MP */
top: 0rpx;
/* #endif */
z-index: 1995;
}
.content {
padding-top: calc(var(--status-bar-height) + 100rpx);
background: #000000;
box-sizing: border-box;
width: 100vw;
min-height: 100vh;
}
.lunbo {
height: 280rpx;
padding: 0 30rpx;
margin-bottom: 30rpx;
padding-top: 10rpx;
}
.lb_swiper {
width: 100%;
height: 280rpx;
border-radius: 20rpx;
overflow: hidden;
}
.lb_swiper .swiper-item>image {
width: 100%;
height: 280rpx;
border-radius: 20rpx;
}
.class_box {
padding: 0 30rpx;
display: flex;
/* justify-content: space-between; */
flex-wrap: wrap;
font-size: 24rpx;
font-family: Source Han Sans CN;
font-weight: 400;
color: #FFFFFF;
}
.class_box>view {
margin-right: 50rpx;
margin-bottom: 36rpx;
width: 98rpx;
text-align: center;
}
.class_box>view>view {
/* overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis; */
margin-top: 8rpx;
}
.class_box>view:nth-of-type(5n+5) {
margin-right: 0;
}
.class_box image {
width: 90rpx;
height: 78rpx;
display: block;
margin: auto;
}
.goods_ls_zc {
padding: 30rpx;
position: relative;
display: flex;
justify-content: space-between;
flex-wrap: wrap;
color: #FFFFFF;
}
.goods_ls_bx_it {
width: 330rpx;
border-radius: 10rpx;
overflow: hidden;
margin-bottom: 26rpx;
}
.goods_ls_bx_it>image {
width: 330rpx;
height: 330rpx;
border-radius: 16rpx;
}
.goods_ls_bx_it>view:nth-of-type(1) {
font-size: 28rpx;
padding: 0 22rpx;
padding-top: 10rpx;
}
.zuanshi {
font-size: 32rpx;
padding: 0 22rpx;
margin: 14rpx 0 8rpx 0;
color: #0FEFFF;
}
</style>

View File

@ -1,184 +0,0 @@
<template>
<view class="search">
<view class="header">
<view class="head_ss">
<image src="/static/shop/search.png"></image>
<input type="text" confirm-type="search" @confirm="tosearch_result(title)" placeholder="在此搜索商品"
v-model="title" />
</view>
</view>
<mescroll-body ref="mescrollRef" @init="mescrollInit" :down="downOption" @down="downCallback" @up="upCallback">
<view class="goods_ls_zc">
<view class="goods_ls_bx_it" v-for="(a,b) in tui_data" :key="b"
@click="gotoPage('/pages/shop/detail?goods_id='+a.id)">
<image :src="a.image"></image>
<view class="hang2">{{a.title}}</view>
<view class="zuanshi"> {{a.price}} </view>
</view>
</view>
</mescroll-body>
</view>
</template>
<script>
export default {
data() {
return {
xz_index: -1,
head_index: 1,
top_show: true,
bottom_show: false,
tui_data: [],
downOption: {
auto: false
},
cate_id2: '',
title: '',
sort: 1
}
},
onLoad(e) {
uni.setNavigationBarTitle({
title: '商品列表'
})
this.cate_id2 = e.id ? e.id : ''
this.title = e.title ? e.title : ''
},
methods: {
tosearch_result(e) {
let that = this;
// if (e != '') {
this.loadData(1);
// } else {
// uni.showToast({
// title: '',
// icon: 'none',
// duration: 1500
// })
// }
},
downCallback() {
this.mescroll.resetUpScroll()
},
upCallback(page) {
this.loadData(page.num);
},
loadData(pageNo) {
//
let that = this;
that.req({
url: 'shop_seckill_product',
Loading: true,
data: {
page: pageNo,
title: that.title,
cate_id2: that.cate_id2,
},
success(res) {
that.mescroll.endByPage(res.data.data.length, res.data.last_page);
if (pageNo == 1) {
that.tui_data = res.data.data;
} else {
that.tui_data = that.tui_data.concat(res.data.data);
}
}
})
},
}
}
</script>
<style>
.goods_ls_zc {
padding: 30rpx;
position: relative;
display: flex;
justify-content: space-between;
flex-wrap: wrap;
color: #FFFFFF;
}
.goods_ls_bx_it {
width: 330rpx;
border-radius: 10rpx;
overflow: hidden;
margin-bottom: 26rpx;
}
.goods_ls_bx_it>image {
width: 330rpx;
height: 330rpx;
border-radius: 16rpx;
border: 2px solid;
border-image: linear-gradient(108deg, #376232, #574C37, #336365, #692F6B, #718958) 2 2;
box-sizing: border-box;
}
.goods_ls_bx_it>view:nth-of-type(1) {
font-size: 28rpx;
padding: 0 22rpx;
padding-top: 10rpx;
}
.zuanshi {
font-size: 32rpx;
padding: 0 22rpx;
margin: 14rpx 0 8rpx 0;
color: #0FEFFF;
}
.search {
width: 100vw;
min-height: 100vh;
background: #000000;
padding-top: 100rpx;
box-sizing: border-box;
}
.header {
height: 100rpx;
padding: 0 24rpx;
box-sizing: border-box;
font-size: 28rpx;
background: #000000;
position: fixed;
/* #ifdef APP */
top: 0;
/* #endif */
/* #ifndef APP */
top: 88rpx;
/* #endif */
z-index: 15;
}
.head_ss {
width: 690rpx;
height: 68rpx;
background: #161616;
border-radius: 34rpx;
display: flex;
align-items: center;
margin: 20rpx 0;
box-sizing: border-box;
}
.head_ss>image {
width: 40rpx;
height: 40rpx;
margin: 0 20rpx;
}
.head_ss input {
width: 80%;
font-size: 28rpx;
color: #FFFFFF;
}
</style>

View File

@ -1,281 +0,0 @@
<template>
<view class="content">
<!-- 地址 -->
<view class="address_z">
<!-- <image src="../../static/mine/address.png"></image> -->
<view class="address_z_r">
<view>
<text style="font-size: 32rpx;">{{result.shou_name}}</text>
<text style="margin-left: 10rpx;">{{result.shou_mobile}}</text>
</view>
<view style="margin-top: 20rpx;">{{result.shou_region}}</view>
</view>
</view>
<!-- 赏品 -->
<view class="xuyuan">
<view class="xuyuan_item">
<view class="shop_item_img">
<image :src="result.goods_image"></image>
</view>
<view class="xuyuan_item_2">
<view class="hang2">{{result.goods_name}}</view>
<view> 规格{{result.goods_spec}} </view>
<view>
<text>{{result.goods_seckill_price}}</text>
<view style="margin-top: 6rpx;">×{{result.goods_num}}</view>
</view>
</view>
</view>
<view>共计<text style="font-size: 36rpx;">{{result.pay_price}}</text></view>
</view>
<!-- 订单信息 -->
<view class="order_news">
<view>订单信息</view>
<view>
<view>支付方式</view>
<view>微信支付</view>
</view>
<view>
<view>运费</view>
<view>{{result.freight_price=='0.00'?'免运费':result.freight_price+'元'}}</view>
</view>
<view>
<view>合计</view>
<view class="order_price">{{result.pay_price}}</view>
</view>
</view>
<!-- 时间 -->
<view class="dingdan">
<view>订单号 <text>{{result.order_no}}</text> </view>
<view style="border: none;">提交时间{{result.pay_time}}</view>
</view>
<!-- 查看物流 -->
<view class="footer" v-if="result.status>2" @click="gotoPage('/pages/user/wuliu_detail?send_num=' + send_num)">
查看物流</view>
</view>
</template>
<script>
export default {
data() {
return {
result: {},
order_id: ''
}
},
onLoad(e) {
// console.log(e)
this.order_id = e.order_id ? e.order_id : ''
this.getData(e.order_id)
},
methods: {
copy(value) {
uni.setClipboardData({
data: value, //
success: () => { //
uni.showToast({ //
title: "复制成功"
})
}
});
},
getData(e) {
//
let that = this;
that.req({
url: 'seckill_order_detail',
Loading: true,
data: {
id: e
},
success(res) {
if (res.status == 1) {
that.result = res.data
}
}
})
}
}
}
</script>
<style>
.footer {
border: 1rpx solid rgba(47, 180, 255, 0.7);
box-shadow: 0px 0px 12rpx 0px rgba(47, 180, 255, 0.7);
width: 690rpx;
height: 88rpx;
background: #000916;
font-size: 28rpx;
color: #191613;
text-shadow: 0px 0px 12rpx #2FB4FF;
display: flex;
align-items: center;
justify-content: center;
position: fixed;
bottom: 50rpx;
left: 0;
right: 0;
margin: auto;
border-radius: 10rpx;
}
.order_price {
color: #FF2121;
}
.order_news>view {
display: flex;
justify-content: space-between;
align-items: center;
line-height: 70rpx;
}
.order_news {
width: 690rpx;
margin: 20rpx auto;
padding: 20rpx 30rpx;
box-sizing: border-box;
box-shadow: 0px 0rpx 10rpx 0px #1FF7F0;
border-radius: 10rpx;
font-size: 28rpx;
}
.dingdan text {
/* padding: 2rpx 16rpx;
border: 1rpx solid #2FB4FF;
border-radius: 6rpx;
color: #2FB4FF;
font-size: 24rpx;
box-sizing: border-box;
margin-left: 20rpx; */
/* font-size: 20rpx; */
}
.dingdan>view {
border-bottom: 1rpx solid #CCCCCC;
padding: 20rpx 0;
}
.dingdan {
width: 690rpx;
margin: 20rpx auto;
padding: 0 30rpx;
box-sizing: border-box;
box-shadow: 0px 0rpx 10rpx 0px #1FF7F0;
border-radius: 10rpx;
font-size: 28rpx;
}
.address_z_r {
width: 484rpx;
margin-left: 30rpx;
font-size: 28rpx;
}
.address_z>image {
width: 44rpx;
height: 50rpx;
}
.address_z {
width: 690rpx;
margin: 20rpx auto;
border-radius: 20rpx;
padding: 30rpx;
box-sizing: border-box;
display: flex;
align-items: center;
box-shadow: 0px 0rpx 10rpx 0px #1FF7F0;
font-size: 24rpx;
}
.xuyuan_item_2 text {
font-size: 28rpx;
}
.xuyuan_item_2>view:nth-of-type(3) {
display: flex;
justify-content: space-between;
font-size: 20rpx;
}
.xuyuan_item_2>view:nth-of-type(2) {
font-size: 24rpx;
}
.xuyuan_item_2 {
font-size: 28rpx;
width: 440rpx;
/* border: 1rpx solid red; */
margin-top: 10rpx;
margin-left: 20rpx;
display: flex;
justify-content: space-between;
flex-direction: column;
}
.shop_item_img>image {
width: 170rpx;
height: 170rpx;
border-radius: 10rpx 10rpx 0 0;
}
.shop_item_img {
width: 170rpx;
height: 170rpx;
border-radius: 10rpx 10rpx 0 0;
position: relative;
text-align: left;
box-sizing: border-box;
}
.xuyuan_item {
display: flex;
margin: 14rpx auto 0;
width: 630rpx;
box-sizing: border-box;
padding-bottom: 20rpx;
border-bottom: 1rpx solid #cccccc;
}
.xuyuan>view:nth-of-type(2) {
font-size: 28rpx;
display: flex;
justify-content: flex-end;
padding: 20rpx 30rpx;
box-sizing: border-box;
align-items: flex-end;
}
.xuyuan {
width: 690rpx;
/* height: 432rpx; */
box-shadow: 0px 0rpx 10rpx 0px #1FF7F0;
border-radius: 20rpx;
margin: 24rpx auto 0;
padding-top: 24rpx;
box-sizing: border-box;
}
.content {
width: 100vw;
min-height: 100vh;
padding-top: 2rpx;
background: #000000;
box-sizing: border-box;
font-weight: 500;
color: #FFFFFF;
}
</style>

View File

@ -1,323 +0,0 @@
<template>
<view class="content">
<view class="header">
<view class="qiehuan">
<view @click="getlist(i+1)" v-for="(v,i) in arr" :key="i">
<view :class="show==i+1?'xzs':'wzs'">{{v}}</view>
<view class="qiehuan_line" v-if="show==i+1"></view>
</view>
</view>
</view>
<!-- 内容 -->
<mescroll-body ref="mescrollRef" @init="mescrollInit" :down="downOption" @down="downCallback" @up="upCallback">
<view class="xuyuan" v-for="(v,i) in listData" :key='i' v-if="listData.length>0">
<view class="xuyuan_head">
<view>订单号<text style="font-size: 28rpx;">{{v.order_no}}</text></view>
<view style="color: #1FF7F0;" v-if="v.status==1">待发货</view>
<view style="color: #1FF7F0;" v-if="v.status==2">待收货</view>
<view v-if="v.status==3">已完成</view>
</view>
<view class="xuyuan_item">
<view class="shop_item_img">
<image :src="v.goods_info.goods_image"></image>
</view>
<view class="xuyuan_item_2">
<view class="hang2">{{v.goods_info.goods_name}}</view>
<view> 规格{{v.goods_info.goods_spec}} </view>
<view>
<text>{{v.goods_info.goods_seckill_price}}</text>
<view>×{{v.goods_info.goods_num}}</view>
</view>
</view>
</view>
<view class="shifu">
<view> <text style="font-size: 28rpx;margin: 0 6rpx;"> {{v.goods_info.goods_num}}</text> </view>
<view>实付款<text style="font-size: 36rpx;">{{v.pay_price}}</text></view>
</view>
<view class="xuyuan_foot">
<view class="qrsh" style="margin-right: 0;" v-if="v.status==1"
@click="gotoPage('/pages/shop/order_detail?order_id=' + v.id)">查看详情
</view>
<template v-if="v.status==2">
<view class="qrsh" @click="gotoPage('/pages/shop/order_detail?order_id=' + v.id)">查看详情</view>
<view class="qrsh" @click="gotoPage('/pages/shop/wuliu_detail?order_id=' + v.id)">查看物流</view>
<view class="ckwl" @click="quren(v.id)">确认收货</view>
</template>
<view class="detail_gray" v-if="v.status==3"
@click="gotoPage('/pages/shop/order_detail?order_id=' + v.id)">查看详情</view>
</view>
</view>
</mescroll-body>
</view>
</template>
<script>
export default {
data() {
return {
arr: ['待发货', '已发货', '已完成'],
show: 1,
downOption: {
auto: false
},
listData: []
}
},
onLoad(e) {
},
methods: {
quren(e) {
let that = this;
that.req({
url: 'seckill_order_confirm',
data: {
id: e
},
success(res) {
if (res.status == 1) {
uni.showToast({
title: res.msg,
icon: 'success',
duration: 1500,
success() {
setTimeout(() => {
that.loadData(1)
}, 1000)
}
})
}
}
})
},
getlist(v) {
this.show = v;
this.listData = []
this.mescroll.resetUpScroll()
},
/*下拉刷新的回调 */
downCallback() {
this.mescroll.resetUpScroll()
},
/*上拉加载的回调: 其中page.num:当前页 从1开始, page.size:每页数据条数,默认10 */
upCallback(page) {
this.loadData(page.num);
},
loadData(pageNo) {
//
let that = this;
that.req({
url: 'seckill_order_list',
Loading: true,
data: {
page: pageNo,
status: that.show
},
success(res) {
if (res.status == 1) {
that.mescroll.endByPage(res.data.data.length, res.data.last_page);
if (pageNo == 1) {
that.listData = res.data.data;
} else {
that.listData = that.listData.concat(res.data.data);
}
}
}
})
},
}
}
</script>
<style>
.detail_gray {
background: #FFFFFF;
border: 2rpx solid #E5E5E5;
}
.ckwl {
background: #FFFFFF;
border: 2rpx solid #E5E5E5;
}
.qrsh {
background: #1FF7F0;
color: #FFFFFF;
margin-right: 20rpx;
}
.xuyuan_foot>view {
width: 199rpx;
height: 64rpx;
border-radius: 32rpx;
display: flex;
justify-content: center;
align-items: center;
font-size: 32rpx;
}
.xuyuan_foot {
display: flex;
align-items: center;
justify-content: flex-end;
padding: 30rpx;
font-size: 24rpx;
}
.shifu>view:nth-of-type(1) {
font-size: 24rpx;
}
.shifu {
display: flex;
justify-content: space-between;
padding: 20rpx 30rpx 0;
font-size: 28rpx;
}
.xuyuan_item_2 text {
font-size: 28rpx;
}
.xuyuan_item_2>view:nth-of-type(3) {
display: flex;
justify-content: space-between;
align-items: flex-end;
font-size: 20rpx;
}
.xuyuan_item_2>view:nth-of-type(2) {
font-size: 24rpx;
color: rgba(255, 255, 255, 0.6);
}
.xuyuan_item_2 {
color: #FFFFFF;
font-size: 28rpx;
width: 440rpx;
/* border: 1rpx solid red; */
margin-top: 10rpx;
margin-left: 20rpx;
display: flex;
justify-content: space-between;
flex-direction: column;
}
.shop_item_img>image {
width: 170rpx;
height: 170rpx;
border-radius: 10rpx;
}
.shop_item_img {
width: 170rpx;
height: 170rpx;
border-radius: 10rpx;
position: relative;
text-align: left;
box-sizing: border-box;
}
.xuyuan_item {
display: flex;
margin: 14rpx auto 0;
width: 630rpx;
box-sizing: border-box;
padding-bottom: 20rpx;
border-bottom: 1rpx solid #cccccc;
}
.xuyuan_head {
display: flex;
justify-content: space-between;
align-items: center;
font-size: 28rpx;
padding: 0 24rpx;
box-sizing: border-box;
color: #FFFFFF;
font-weight: 500;
}
.xuyuan {
width: 690rpx;
box-shadow: 0px 0rpx 10rpx 0px #1FF7F0;
border-radius: 24rpx;
margin: 24rpx auto 0;
padding-top: 24rpx;
box-sizing: border-box;
}
.qiehuan {
display: flex;
justify-content: space-between;
/* align-items: center; */
color: #FFFFFF;
width: 440rpx;
}
.qiehuan_line {
margin: 10rpx auto;
width: 60rpx;
height: 4rpx;
background: #1FF7F0;
}
.qiehuan>view {
flex: 1;
text-align: center;
}
.wzs {
font-size: 32rpx;
color: #FFFFFF;
/* margin-bottom: 10rpx; */
}
.xzs {
font-size: 32rpx;
color: #1FF7F0;
font-weight: bold;
/* margin-bottom: 10rpx; */
}
.header {
width: 750rpx;
height: 88rpx;
background: #000000;
font-size: 28rpx;
color: #333333;
padding: 10rpx 30rpx 0;
box-sizing: border-box;
position: fixed;
/* #ifdef MP */
top: 0;
/* #endif */
/* #ifndef MP */
top: 88rpx;
/* #endif */
z-index: 15;
}
.content {
width: 100vw;
min-height: 100vh;
padding-top: 88rpx;
background: #000000;
box-sizing: border-box;
}
</style>

View File

@ -1,228 +0,0 @@
<template>
<view class="wuliu">
<view class="status">
<view class="status_image">
<image :src="news.goods_image"></image>
<view class="status_foot">{{news.goods_num}}件商品</view>
</view>
<view>
<view class="sta_1">物流状态<text>{{news.status_name}}</text></view>
<view class="sta_2">快递公司{{news.delivery_name}}</view>
<view class="sta_3">快递单号{{news.delivery_no}}<text @click="copy(news.delivery_no)">复制</text></view>
</view>
</view>
<!-- <block v-for="(item, index) in tracesData" :key="index" >
<trackNode :is-first="index===tracesData.length-1" :is-newest="index===0" :is-main-node="item.isMainNode"
:node-data="item"></trackNode>
</block> -->
<view class="news_z">
<view v-for="(item,index) in tracesData" :key="index" class="con">
<view class="con_l">
<view :class="index==0?'yuan2':'yuan'">
<view v-if="index==0" class="yuan3"></view>
</view>
</view>
<view class="con_r"
:style="index==0?'color:#FFFFFF;':'color:#333333;'+ 'border:'+(index+1==tracesData.length?'none':'') ">
<view class="title" :style="index==0?'font-size:28rpx':''">{{item.node_desc}}</view>
<view class="time">{{item.node_time}}</view>
</view>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
news: '',
tracesData: [],
}
},
onLoad(e) {
this.getData(e.order_id)
},
methods: {
getData(e) {
let that = this;
that.req({
url: 'seckill_order_logistics',
data: {
id: e
},
success(res) {
if (res.status == 1) {
that.news = res.data
that.tracesData = that.news.data
}
}
})
},
copy(value) {
//
// uni.showModal({
// content:value,//
// confirmText:"",
// success:()=>{//
//uni.setClipboardData
uni.setClipboardData({
data: value, //
success: () => { //
uni.showToast({ //
title: "复制成功"
})
}
});
// }
// });
}
}
}
</script>
<style>
.news_z {
width: 690rpx;
margin: 20rpx auto 0;
box-shadow: 0px 0rpx 10rpx 0px #1FF7F0;
border-radius: 20rpx;
}
.yuan3 {
width: 24rpx;
height: 24rpx;
background: #1FF7F0;
border-radius: 50%;
}
.yuan2 {
background: rgba(31, 247, 240, 0.3);
width: 40rpx;
height: 40rpx;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
}
.time {
color: #FFFFFF;
margin-top: 20rpx;
}
.con_l {
width: 120rpx;
display: flex;
justify-content: center;
align-items: center;
/* border: 1px solid red; */
}
.title {
/* color: rgba(255, 255, 255, 0.6); */
line-height: 36rpx;
}
.con_r {
width: 600rpx;
font-size: 24rpx;
border-bottom: 1rpx solid #EEEEEE;
padding: 20rpx 0;
margin-right: 20rpx;
box-sizing: border-box;
}
.yuan {
width: 24rpx;
height: 24rpx;
background: #dddddd;
border-radius: 50%;
}
.con {
display: flex;
align-items: center;
width: 100%;
}
.sta_3 text {
background: #1FF7F0;
border-radius: 16rpx;
font-size: 20rpx;
margin-left: 24rpx;
padding: 2rpx 10rpx;
color: #FFFFFF;
}
.sta_2,
.sta_3 {
font-size: 24rpx;
color: #999999;
margin-top: 24rpx;
}
.sta_1 text {
color: #1FF7F0;
}
.sta_1 {
font-size: 28rpx;
color: #999999;
font-weight: 500;
margin-top: 10rpx;
}
.status_foot {
position: absolute;
bottom: 0;
left: 0;
font-size: 24rpx;
color: #FFFFFF;
border-radius: 0 0 10rpx 10rpx;
background: rgba(0, 0, 0, 0.7);
width: 100%;
height: 40rpx;
text-align: center;
}
.status image {
width: 170rpx;
height: 170rpx;
border-radius: 10rpx;
}
.status_image {
width: 170rpx;
height: 170rpx;
margin-right: 34rpx;
border-radius: 10rpx;
position: relative;
}
.status {
width: 690rpx;
margin: 20rpx auto 0;
box-shadow: 0px 0rpx 10rpx 0px #1FF7F0;
padding: 24rpx 24rpx 48rpx 24rpx;
box-sizing: border-box;
display: flex;
border-radius: 10rpx;
}
.wuliu {
width: 100vw;
background: #000000;
min-height: 100vh;
padding-top: 2rpx;
padding-bottom: 100rpx;
box-sizing: border-box;
position: relative;
}
</style>

File diff suppressed because it is too large Load Diff