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'; ...@@ -4,6 +4,8 @@ import store from './store';
import '@/assets/iconfont/iconfont.css'; // 引入自定义图标样式文件 import '@/assets/iconfont/iconfont.css'; // 引入自定义图标样式文件
import Vconsole from 'vconsole'; import Vconsole from 'vconsole';
import './styles/flex.scss'; import './styles/flex.scss';
// 字体
import '@/assets/iconfont/font.css';
export function createApp() { export function createApp() {
const app = createSSRApp(App); const app = createSSRApp(App);
const vConsole = new Vconsole(); const vConsole = new Vconsole();
......
...@@ -237,6 +237,12 @@ ...@@ -237,6 +237,12 @@
"style": { "style": {
"navigationBarTitleText": "编辑收货地址" "navigationBarTitleText": "编辑收货地址"
} }
},
{
"path": "pages/assistingAgriculture/order/detail",
"style": {
"navigationBarTitleText": "商品详情页"
}
} }
], ],
"globalStyle": { "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 @@ ...@@ -4,7 +4,8 @@
<view class="top"> <view class="top">
<!-- 搜索 --> <!-- 搜索 -->
<Search @toSearch="toSearch"> <Search @toSearch="toSearch">
<image class="food" :src="pics" mode="widthFix" /> <text class="title-icon">{{ categoryNames }}</text>
<!-- <image class="food" :src="pics" mode="widthFix" /> -->
</Search> </Search>
<!-- 类别选择 --> <!-- 类别选择 -->
<scroll-view <scroll-view
...@@ -96,6 +97,7 @@ ...@@ -96,6 +97,7 @@
<Sort v-show="rotate3" @sortParams="sortParams" /> <Sort v-show="rotate3" @sortParams="sortParams" />
</view> </view>
<FoodDetails :cardData="cardData" /> <FoodDetails :cardData="cardData" />
<wd-status-tip v-if="cardData.length === 0" image="content" tip="暂无内容" />
<view <view
style="width: 100%; text-align: center; font-size: 24rpx; margin-top: 10rpx; color: #888989" style="width: 100%; text-align: center; font-size: 24rpx; margin-top: 10rpx; color: #888989"
v-if="params.isEnd" v-if="params.isEnd"
...@@ -345,6 +347,12 @@ page { ...@@ -345,6 +347,12 @@ page {
min-height: 420rpx; min-height: 420rpx;
border-radius: 0rpx 0rpx 0rpx 0rpx; border-radius: 0rpx 0rpx 0rpx 0rpx;
overflow: hidden; overflow: hidden;
.title-icon {
font-family: '优设标题黑';
font-size: 24 * 2rpx;
margin-left: 30rpx;
color: #ffffff;
}
.food { .food {
width: 178rpx; width: 178rpx;
height: 45rpx; height: 45rpx;
......
...@@ -42,7 +42,7 @@ ...@@ -42,7 +42,7 @@
</view> </view>
</view> </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>
<view class="rectangle-with-semicircles"></view> <view class="rectangle-with-semicircles"></view>
...@@ -643,6 +643,7 @@ page { ...@@ -643,6 +643,7 @@ page {
font-weight: normal; font-weight: normal;
line-height: 24rpx; line-height: 24rpx;
letter-spacing: 0em; letter-spacing: 0em;
width: 640rpx;
} }
} }
} }
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
<wd-tab :title="`${item.name}`" :name="item.value"> <wd-tab :title="`${item.name}`" :name="item.value">
<view class="content" v-if="dataList.length > 0"> <view class="content" v-if="dataList.length > 0">
<view class="box" v-for="(item, index) in dataList" :key="index"> <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"> <view class="left">
<image src="@/static/order/shop.png" /> <image src="@/static/order/shop.png" />
<view class="title">{{ item.shopName }}</view> <view class="title">{{ item.shopName }}</view>
...@@ -467,6 +467,15 @@ const handleRefund = (item) => { ...@@ -467,6 +467,15 @@ const handleRefund = (item) => {
url: `/pages/order/refund?orderNumber=${item.orderNumber}`, url: `/pages/order/refund?orderNumber=${item.orderNumber}`,
}); });
}; };
/**
* 店铺详情
*/
const toShopDetail = (item) => {
xma.navigateTo({
url: `/pages/shop/shop?shopId=${item.shopId}`,
});
};
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
...@@ -479,7 +488,7 @@ page { ...@@ -479,7 +488,7 @@ page {
margin: 0 auto; margin: 0 auto;
.tabs { .tabs {
padding-top: 44px; padding-top: 88px;
.wd-tabs { .wd-tabs {
background-color: #f5f5f5; background-color: #f5f5f5;
......
...@@ -5,11 +5,10 @@ ...@@ -5,11 +5,10 @@
<wd-form ref="form" :model="formdata" :rules="rules" class="remake"> <wd-form ref="form" :model="formdata" :rules="rules" class="remake">
<text class="textarea">{{ shopname }}</text> <text class="textarea">{{ shopname }}</text>
<view class="itemPicker"> <view class="itemPicker">
<view class="item01"> <view class="item01" prop="merchantServices">
<text class="label">评分</text> <text class="label">评分</text>
<!-- 评分 --> <!-- 评分 -->
<wd-rate <wd-rate
prop="merchantServices"
v-model="formdata.merchantServices" v-model="formdata.merchantServices"
active-color="#ff0000" active-color="#ff0000"
size="50rpx" size="50rpx"
...@@ -22,19 +21,22 @@ ...@@ -22,19 +21,22 @@
</view> </view>
</view> </view>
<!-- 内容描述 --> <!-- 内容描述 -->
<view prop="evaluation">
<wd-textarea <wd-textarea
prop="evaluation"
v-model="formdata.evaluation" v-model="formdata.evaluation"
placeholder="亲,分享您的看法,给其他人一个参考哦!" placeholder="亲,分享您的看法,给其他人一个参考哦!"
/> />
</view>
<text class="textarea">上传图片/视频</text> <text class="textarea">上传图片/视频</text>
<!-- 图片上传 --> <!-- 图片上传 -->
<view class="wdUpload" prop="images"> <view class="wdUpload" prop="images">
<wd-upload <wd-upload
multiple multiple
:action="action" :action="action"
@change="handleFile" @change="handleFile"
:file-list="fList" :file-list="formdata.images"
:before-remove="beforeRemove" :before-remove="beforeRemove"
:header="headers" :header="headers"
></wd-upload> ></wd-upload>
...@@ -103,21 +105,33 @@ const formdata = reactive<{ ...@@ -103,21 +105,33 @@ const formdata = reactive<{
* 表单验证规则 * 表单验证规则
*/ */
const rules = { const rules = {
images: [ // images: [
{ // {
required: true, // required: true,
message: '请上传图片', // message: '请上传图片',
validator: (value: any) => { // validator: (value: any) => {
if (value) { // if (value.length) {
console.log('123456'); // console.log('上传成功');
} else { // } else {
console.log('963852'); // console.log('请上传图片');
} // }
}, // },
}, // },
], // ],
evaluation: [{ required: true, message: '请填写评价内容' }], 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 }) => { ...@@ -146,6 +160,7 @@ const handlemerchant = (item: { value: number }) => {
const fList = ref<any[]>([]); const fList = ref<any[]>([]);
function handleFile({ fileList: files }) { function handleFile({ fileList: files }) {
fList.value = files; fList.value = files;
formdata.images = files;
} }
/** /**
* 图片地址处理 * 图片地址处理
...@@ -170,7 +185,7 @@ const deleteImg = () => { ...@@ -170,7 +185,7 @@ const deleteImg = () => {
/** /**
* Release提交 * Release提交
*/ */
const handleSubmit = async () => { const hdSubmit = async () => {
await evaluation({ await evaluation({
...formdata, ...formdata,
images: proImage(), images: proImage(),
...@@ -181,19 +196,21 @@ const handleSubmit = async () => { ...@@ -181,19 +196,21 @@ const handleSubmit = async () => {
}); });
}; };
// const handleSubmit = async () => { const handleSubmit = async () => {
// console.log(form.value.validate()); form.value
// form.value .validate()
// .validate() .then(({ valid, errors }) => {
// .then(({ valid, errors }) => { console.log('valid', errors);
// if (valid) { if (valid) {
// uToast.info({ msg: '校验通过' }); // uToast.info({ msg: '校验通过' });
// } console.log('校验通过');
// }) hdSubmit();
// .catch((error: any) => { }
// console.log(error, 'error'); })
// }); .catch((error: any) => {
// }; console.log(error, 'error');
});
};
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.container { .container {
...@@ -238,8 +255,9 @@ const handleSubmit = async () => { ...@@ -238,8 +255,9 @@ const handleSubmit = async () => {
margin-top: 25rpx; margin-top: 25rpx;
margin-bottom: 172rpx; margin-bottom: 172rpx;
padding: 20rpx; padding: 20rpx;
:deep(.wd-textarea) { :deep(.wd-textarea) {
padding: 0 30rpx; padding: 30rpx 0;
} }
.itemPicker { .itemPicker {
......
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
<view class="info"> <view class="info">
<view class="box"> <view class="box">
<text class="title">{{ orderDetail.orderItems[0].prodName }}</text> <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>
<view class="rectangle-with-semicircles"></view> <view class="rectangle-with-semicircles"></view>
<view class="qrcode line"> <view class="qrcode line">
...@@ -44,13 +44,6 @@ const orderDetail = ref(); ...@@ -44,13 +44,6 @@ const orderDetail = ref();
function getOrderDetailFn(orderNumber) { function getOrderDetailFn(orderNumber) {
getOrderDetail({ orderNumber }).then((res) => { getOrderDetail({ orderNumber }).then((res) => {
orderDetail.value = res.data; 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 ( if (
orderDetail.value.orderStore.status === '2' || orderDetail.value.orderStore.status === '2' ||
orderDetail.value.orderStore.status === '3' orderDetail.value.orderStore.status === '3'
......
...@@ -82,7 +82,6 @@ ...@@ -82,7 +82,6 @@
</view> </view>
</view> </view>
<!-- 店铺信息-end --> <!-- 店铺信息-end -->
<view class="shop-info-box"></view>
<!-- 补贴 --> <!-- 补贴 -->
<view class="subsidy-content" @click="jumpPage"> <view class="subsidy-content" @click="jumpPage">
<view class="subsidy"> <view class="subsidy">
...@@ -815,15 +814,10 @@ page { ...@@ -815,15 +814,10 @@ page {
.content { .content {
width: 750rpx; width: 750rpx;
position: relative; position: relative;
// 商家信息
.shop-info-box {
height: 146 * 2rpx;
height: 116 * 2rpx;
}
.shop-info { .shop-info {
width: 750rpx; width: 750rpx;
background-color: #fdfdfd; background-color: #fdfdfd;
position: absolute; position: relative;
top: -80rpx; top: -80rpx;
border-radius: 16rpx 16rpx 0rpx 0rpx; border-radius: 16rpx 16rpx 0rpx 0rpx;
display: flex; display: flex;
...@@ -957,6 +951,9 @@ page { ...@@ -957,6 +951,9 @@ page {
padding: 10rpx 40rpx 14rpx 12rpx; padding: 10rpx 40rpx 14rpx 12rpx;
background: #ffefee; background: #ffefee;
margin-top: 16rpx; 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); box-shadow: 0rpx 2 * 2rpx 10 * 2rpx 0 * 2rpx rgba(226, 3, 3, 0.08);
.subsidy { .subsidy {
width: 144 * 2rpx; width: 144 * 2rpx;
...@@ -997,6 +994,8 @@ page { ...@@ -997,6 +994,8 @@ page {
border-radius: 8 * 2rpx; border-radius: 8 * 2rpx;
background: #ffffff; background: #ffffff;
display: flex; display: flex;
position: relative;
top: -80rpx;
flex-direction: column; flex-direction: column;
box-sizing: border-box; box-sizing: border-box;
padding: 20rpx; padding: 20rpx;
...@@ -1054,6 +1053,9 @@ page { ...@@ -1054,6 +1053,9 @@ page {
padding: 20rpx 40rpx; padding: 20rpx 40rpx;
background: #fdfdfd; background: #fdfdfd;
margin-top: 20rpx; margin-top: 20rpx;
position: relative;
top: -80rpx;
.title { .title {
display: flex; display: flex;
align-items: center; align-items: center;
...@@ -1181,6 +1183,8 @@ page { ...@@ -1181,6 +1183,8 @@ page {
box-sizing: border-box; box-sizing: border-box;
padding: 11 * 2rpx; padding: 11 * 2rpx;
margin-top: 10rpx; margin-top: 10rpx;
position: relative;
top: -80rpx;
.useer-reviews-title { .useer-reviews-title {
width: 100%; width: 100%;
display: flex; display: flex;
...@@ -1313,6 +1317,8 @@ page { ...@@ -1313,6 +1317,8 @@ page {
box-sizing: border-box; box-sizing: border-box;
padding: 20rpx; padding: 20rpx;
margin-top: 10rpx; margin-top: 10rpx;
position: relative;
top: -80rpx;
.title { .title {
font-size: 13 * 2rpx; font-size: 13 * 2rpx;
font-weight: bold; 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