Commit 23bfa87d authored by 张娇(东信)'s avatar 张娇(东信)

Merge remote-tracking branch 'origin/master'

parents b382d8d7 80adf706
@font-face {
font-family: "优设标题黑";
src: url('./优设标题黑.ttf');
font-weight: normal;
font-style: normal;
}
\ No newline at end of file
......@@ -4,6 +4,8 @@ import store from './store';
import '@/assets/iconfont/iconfont.css'; // 引入自定义图标样式文件
import Vconsole from 'vconsole';
import './styles/flex.scss';
// 字体
import '@/assets/iconfont/font.css';
export function createApp() {
const app = createSSRApp(App);
const vConsole = new Vconsole();
......
......@@ -237,6 +237,12 @@
"style": {
"navigationBarTitleText": "编辑收货地址"
}
},
{
"path": "pages/assistingAgriculture/order/detail",
"style": {
"navigationBarTitleText": "商品详情页"
}
}
],
"globalStyle": {
......
<template>
<view class="container">
<Header title="商品详情页"></Header>
<view style="height: 600rpx; background-color: aquamarine"></view>
<view class="content">
<view class="info">
<view class="top">
<view class="left">
<image class="logo" src="/static/ticket/logo.png" mode="aspectFill"></image>
<text>中通快递78810259271088</text>
</view>
<view class="right">
<text>复制</text>
<text></text>
<text>打电话</text>
</view>
</view>
<view class="steps">
<view class="step-box">
<view class="header">
<view class="dot"></view>
<view class="line"></view>
</view>
<view class="content">
<view class="rowbox">
<view class="textbox">
<text class="title">待取件</text>
<text class="text">06-25 17:37</text>
</view>
<text class="detail">详细信息 ></text>
</view>
<view class="infobox">
<text class="addr">贵阳市市政公园菜鸟驿站店</text>
<view class="row">
<text class="text">取件码</text>
<text class="code">2-7-4109</text>
</view>
</view>
</view>
</view>
<view class="step-box">
<view class="header">
<view class="past-dot"></view>
<!-- <view class="line"></view> -->
</view>
<view class="content">
<text class="title">送至 贵阳市市政公园正门菜鸟驿站</text>
<view class="rowbox">
<text class="text1">李先生 +86-187****4253</text>
<text class="text">隐藏保护中</text>
</view>
<view class="rowbox">
<text class="text1">取件时可初始虚拟号码 172****4532-3113</text>
<wd-icon name="browse" size="22px" color="#999"></wd-icon>
</view>
</view>
</view>
</view>
</view>
<view class="product">
<view class="header">
<view class="icon">物流</view>
<text class="title">焗中焗盐焗鸡麻辣鸡</text>
</view>
</view>
</view>
</view>
</template>
<script setup>
import Header from '@/pages/order/components/Header/index.vue';
</script>
<style lang="scss" scoped>
page {
background: #f3f3f3;
}
.container {
width: 375 * 2rpx;
margin: 0 auto;
.content {
position: relative;
top: -20rpx;
border-radius: 20rpx 20rpx 0 0;
.info {
background-color: #fff;
border-radius: 20rpx 20rpx 0 0;
padding: 30rpx;
display: flex;
flex-direction: column;
gap: 38rpx;
.top {
display: flex;
justify-content: space-between;
align-items: center;
.left {
display: flex;
align-items: center;
gap: 16rpx;
.logo {
width: 36rpx;
height: 36rpx;
border-radius: 50%;
}
text {
font-family: PingFang SC;
font-weight: 500;
font-size: 28rpx;
color: #333333;
}
}
.right {
display: flex;
align-items: center;
justify-content: flex-end;
gap: 16rpx;
text {
font-family: PingFang SC;
font-weight: 500;
font-size: 24rpx;
color: #333333;
}
}
}
.steps {
display: flex;
flex-direction: column;
margin-top: 40rpx;
.step-box {
display: flex;
gap: 18rpx;
.header {
display: flex;
flex-direction: column;
align-items: center;
position: relative;
width: 30rpx;
.dot {
width: 30rpx;
height: 30rpx;
background: #f12a2a;
border-radius: 50%;
position: absolute;
top: -12rpx;
}
.past-dot {
width: 30rpx;
height: 30rpx;
background: #ffd5d5;
border-radius: 50%;
position: absolute;
top: -12rpx;
}
.line {
height: 100%;
width: 2rpx;
background-color: #ffd5d5;
}
}
.content {
display: flex;
flex-direction: column;
gap: 22rpx;
width: 100%;
.title {
font-family:
PingFang SC,
PingFang SC;
font-weight: bold;
font-size: 32rpx;
color: #333333;
}
.rowbox {
display: flex;
justify-content: space-between;
align-items: center;
.textbox {
display: flex;
flex-direction: row;
gap: 30rpx;
align-items: center;
}
.title {
font-family: PingFang SC;
font-weight: bold;
font-size: 32rpx;
color: #ff0909;
}
.text {
font-family: PingFang SC;
font-weight: 500;
font-size: 28rpx;
color: #ff0909;
}
.detail {
font-family: PingFang SC;
font-weight: 500;
font-size: 28rpx;
color: #ff0909;
}
.text1 {
font-family: PingFang SC;
font-weight: 500;
font-size: 28rpx;
color: #333333;
}
}
.infobox {
display: flex;
flex-direction: column;
background-color: #f7f8fa;
border-radius: 12rpx;
padding: 20rpx 0 34rpx 50rpx;
gap: 28rpx;
margin-bottom: 54rpx;
.addr {
font-family: PingFang SC;
font-weight: bold;
font-size: 28rpx;
color: #333333;
}
.row {
display: flex;
align-items: center;
gap: 28rpx;
color: #333333;
.text {
font-family: PingFang SC;
font-size: 28rpx;
}
.code {
font-family: PingFang SC;
font-weight: bold;
font-size: 52rpx;
}
}
}
}
}
}
.product {
display: flex;
flex-direction: column;
align-items: center;
.header {
display: flex;
}
}
}
}
}
</style>
......@@ -4,7 +4,8 @@
<view class="top">
<!-- 搜索 -->
<Search @toSearch="toSearch">
<image class="food" :src="pics" mode="widthFix" />
<text class="title-icon">{{ categoryNames }}</text>
<!-- <image class="food" :src="pics" mode="widthFix" /> -->
</Search>
<!-- 类别选择 -->
<scroll-view
......@@ -96,6 +97,7 @@
<Sort v-show="rotate3" @sortParams="sortParams" />
</view>
<FoodDetails :cardData="cardData" />
<wd-status-tip v-if="cardData.length === 0" image="content" tip="暂无内容" />
<view
style="width: 100%; text-align: center; font-size: 24rpx; margin-top: 10rpx; color: #888989"
v-if="params.isEnd"
......@@ -345,6 +347,12 @@ page {
min-height: 420rpx;
border-radius: 0rpx 0rpx 0rpx 0rpx;
overflow: hidden;
.title-icon {
font-family: '优设标题黑';
font-size: 24 * 2rpx;
margin-left: 30rpx;
color: #ffffff;
}
.food {
width: 178rpx;
height: 45rpx;
......
......@@ -42,7 +42,7 @@
</view>
</view>
</view>
<wd-icon name="chevron-right" size="22px" color="#333"></wd-icon>
<!-- <wd-icon name="chevron-right" size="22px" color="#333"></wd-icon> -->
</view>
<view class="rectangle-with-semicircles"></view>
......@@ -643,6 +643,7 @@ page {
font-weight: normal;
line-height: 24rpx;
letter-spacing: 0em;
width: 640rpx;
}
}
}
......
......@@ -7,7 +7,7 @@
<wd-tab :title="`${item.name}`" :name="item.value">
<view class="content" v-if="dataList.length > 0">
<view class="box" v-for="(item, index) in dataList" :key="index">
<view class="header" @click="handleDetail(item.orderNumber)">
<view class="header" @click="toShopDetail(item)">
<view class="left">
<image src="@/static/order/shop.png" />
<view class="title">{{ item.shopName }}</view>
......@@ -467,6 +467,15 @@ const handleRefund = (item) => {
url: `/pages/order/refund?orderNumber=${item.orderNumber}`,
});
};
/**
* 店铺详情
*/
const toShopDetail = (item) => {
xma.navigateTo({
url: `/pages/shop/shop?shopId=${item.shopId}`,
});
};
</script>
<style scoped lang="scss">
......@@ -479,7 +488,7 @@ page {
margin: 0 auto;
.tabs {
padding-top: 44px;
padding-top: 88px;
.wd-tabs {
background-color: #f5f5f5;
......
......@@ -5,11 +5,10 @@
<wd-form ref="form" :model="formdata" :rules="rules" class="remake">
<text class="textarea">{{ shopname }}</text>
<view class="itemPicker">
<view class="item01">
<view class="item01" prop="merchantServices">
<text class="label">评分</text>
<!-- 评分 -->
<wd-rate
prop="merchantServices"
v-model="formdata.merchantServices"
active-color="#ff0000"
size="50rpx"
......@@ -22,19 +21,22 @@
</view>
</view>
<!-- 内容描述 -->
<view prop="evaluation">
<wd-textarea
prop="evaluation"
v-model="formdata.evaluation"
placeholder="亲,分享您的看法,给其他人一个参考哦!"
/>
</view>
<text class="textarea">上传图片/视频</text>
<!-- 图片上传 -->
<view class="wdUpload" prop="images">
<wd-upload
multiple
:action="action"
@change="handleFile"
:file-list="fList"
:file-list="formdata.images"
:before-remove="beforeRemove"
:header="headers"
></wd-upload>
......@@ -103,21 +105,33 @@ const formdata = reactive<{
* 表单验证规则
*/
const rules = {
images: [
{
required: true,
message: '请上传图片',
validator: (value: any) => {
if (value) {
console.log('123456');
} else {
console.log('963852');
}
},
},
],
// images: [
// {
// required: true,
// message: '请上传图片',
// validator: (value: any) => {
// if (value.length) {
// console.log('上传成功');
// } else {
// console.log('请上传图片');
// }
// },
// },
// ],
evaluation: [{ required: true, message: '请填写评价内容' }],
merchantServices: [{ required: true, message: '请选择商家服务评分' }],
// merchantServices: [
// {
// required: true,
// message: '请选择商家服务评分',
// validator: (value: any) => {
// if (value >= 1 && value <= 5) {
// console.log('评分成功');
// } else {
// console.log('请选择评分');
// }
// },
// },
// ],
};
/**
......@@ -146,6 +160,7 @@ const handlemerchant = (item: { value: number }) => {
const fList = ref<any[]>([]);
function handleFile({ fileList: files }) {
fList.value = files;
formdata.images = files;
}
/**
* 图片地址处理
......@@ -170,7 +185,7 @@ const deleteImg = () => {
/**
* Release提交
*/
const handleSubmit = async () => {
const hdSubmit = async () => {
await evaluation({
...formdata,
images: proImage(),
......@@ -181,19 +196,21 @@ const handleSubmit = async () => {
});
};
// const handleSubmit = async () => {
// console.log(form.value.validate());
// form.value
// .validate()
// .then(({ valid, errors }) => {
// if (valid) {
// uToast.info({ msg: '校验通过' });
// }
// })
// .catch((error: any) => {
// console.log(error, 'error');
// });
// };
const handleSubmit = async () => {
form.value
.validate()
.then(({ valid, errors }) => {
console.log('valid', errors);
if (valid) {
// uToast.info({ msg: '校验通过' });
console.log('校验通过');
hdSubmit();
}
})
.catch((error: any) => {
console.log(error, 'error');
});
};
</script>
<style lang="scss" scoped>
.container {
......@@ -238,8 +255,9 @@ const handleSubmit = async () => {
margin-top: 25rpx;
margin-bottom: 172rpx;
padding: 20rpx;
:deep(.wd-textarea) {
padding: 0 30rpx;
padding: 30rpx 0;
}
.itemPicker {
......
......@@ -12,7 +12,7 @@
<view class="info">
<view class="box">
<text class="title">{{ orderDetail.orderItems[0].prodName }}</text>
<text class="code">{{ orderDetail.orderStore.orderNumber }}</text>
<text class="code">{{ orderDetail.orderStore.orderNumber.slice(6) }}</text>
</view>
<view class="rectangle-with-semicircles"></view>
<view class="qrcode line">
......@@ -44,13 +44,6 @@ const orderDetail = ref();
function getOrderDetailFn(orderNumber) {
getOrderDetail({ orderNumber }).then((res) => {
orderDetail.value = res.data;
const outTradeNo = res.data.orderStore.orderNumber;
const indexOfDash = outTradeNo.indexOf('-');
if (indexOfDash !== -1) {
res.data.orderStore.orderNumber = outTradeNo.substring(indexOfDash + 1);
} else {
console.log(`订单编号 ${outTradeNo} 中没有找到 "-" 符号。`);
}
if (
orderDetail.value.orderStore.status === '2' ||
orderDetail.value.orderStore.status === '3'
......
......@@ -82,7 +82,6 @@
</view>
</view>
<!-- 店铺信息-end -->
<view class="shop-info-box"></view>
<!-- 补贴 -->
<view class="subsidy-content" @click="jumpPage">
<view class="subsidy">
......@@ -815,15 +814,10 @@ page {
.content {
width: 750rpx;
position: relative;
// 商家信息
.shop-info-box {
height: 146 * 2rpx;
height: 116 * 2rpx;
}
.shop-info {
width: 750rpx;
background-color: #fdfdfd;
position: absolute;
position: relative;
top: -80rpx;
border-radius: 16rpx 16rpx 0rpx 0rpx;
display: flex;
......@@ -957,6 +951,9 @@ page {
padding: 10rpx 40rpx 14rpx 12rpx;
background: #ffefee;
margin-top: 16rpx;
flex-shrink: 0;
top: -80rpx;
position: relative;
box-shadow: 0rpx 2 * 2rpx 10 * 2rpx 0 * 2rpx rgba(226, 3, 3, 0.08);
.subsidy {
width: 144 * 2rpx;
......@@ -997,6 +994,8 @@ page {
border-radius: 8 * 2rpx;
background: #ffffff;
display: flex;
position: relative;
top: -80rpx;
flex-direction: column;
box-sizing: border-box;
padding: 20rpx;
......@@ -1054,6 +1053,9 @@ page {
padding: 20rpx 40rpx;
background: #fdfdfd;
margin-top: 20rpx;
position: relative;
top: -80rpx;
.title {
display: flex;
align-items: center;
......@@ -1181,6 +1183,8 @@ page {
box-sizing: border-box;
padding: 11 * 2rpx;
margin-top: 10rpx;
position: relative;
top: -80rpx;
.useer-reviews-title {
width: 100%;
display: flex;
......@@ -1313,6 +1317,8 @@ page {
box-sizing: border-box;
padding: 20rpx;
margin-top: 10rpx;
position: relative;
top: -80rpx;
.title {
font-size: 13 * 2rpx;
font-weight: bold;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment