ext.liuqiwen3 2 days ago
parent
commit
9dd8409d78
52 changed files with 453 additions and 71 deletions
  1. 1 1
      api/merchant.js
  2. 21 6
      components/OrderListCard/index.vue
  3. 21 2
      components/orderGoods/index.vue
  4. 6 3
      components/productWindow/index.vue
  5. 15 0
      pages.json
  6. 1 1
      pages/goods/goods_details/index.vue
  7. 9 1
      pages/goods_cate/goods_cate.vue
  8. 17 3
      pages/index/index.vue
  9. 37 22
      pages/merchantCenter/index.vue
  10. 1 1
      pages/merchantCenters/merchant.vue
  11. 6 3
      pages/order_details/index.vue
  12. 35 27
      pages/user/index.vue
  13. 282 0
      pages/users/goods_return/index.vue
  14. 1 1
      pages/users/my_merchant/index.vue
  15. BIN
      static/images/2-001.png
  16. BIN
      static/images/2-003.png
  17. BIN
      static/images/phone.png
  18. BIN
      static/images/phoneyellow.png
  19. BIN
      static/images/setting.png
  20. BIN
      static/images/setting/bofang.png
  21. BIN
      static/images/setting/cunliao.png
  22. BIN
      static/images/setting/daifahuo.png
  23. BIN
      static/images/setting/daifukuan.png
  24. BIN
      static/images/setting/daishouhuo.png
  25. BIN
      static/images/setting/dianpu.png
  26. BIN
      static/images/setting/dingwei.png
  27. BIN
      static/images/setting/fabu.png
  28. BIN
      static/images/setting/jinqian.png
  29. BIN
      static/images/setting/kabao.png
  30. BIN
      static/images/setting/kucun.png
  31. BIN
      static/images/setting/lianxikefu.png
  32. BIN
      static/images/setting/mailiao.png
  33. BIN
      static/images/setting/mailiao2.png
  34. BIN
      static/images/setting/mendian.png
  35. BIN
      static/images/setting/shangpin.png
  36. BIN
      static/images/setting/shoucang.png
  37. BIN
      static/images/setting/tiliao.png
  38. BIN
      static/images/setting/tuikuan.png
  39. BIN
      static/images/setting/vip.png
  40. BIN
      static/images/setting/vipIcon.png
  41. BIN
      static/images/setting/xiazaiapp.png
  42. BIN
      static/images/setting/yijianjianyi.png
  43. BIN
      static/images/setting/yiwancheng.png
  44. BIN
      static/images/setting/zuji.png
  45. BIN
      static/images/share.png
  46. BIN
      static/images/shishijinjia.png
  47. BIN
      static/images/tabbar/1-001.png
  48. BIN
      static/images/tabbar/1-003.png
  49. BIN
      static/images/tabbar/3-001.png
  50. BIN
      static/images/tabbar/3-003.png
  51. BIN
      static/images/tabbar/4-001.png
  52. BIN
      static/images/tabbar/4-003.png

+ 1 - 1
api/merchant.js

@@ -88,7 +88,7 @@ export function productOffShell(id) {
  * @param
  */
 export function productCategory(data) {
-  return request.get(`category/list/tree`,data);
+  return request.get(`category/list/tree`,data,{noAuth: true});
 }
 /**
  * 获取运费模板

+ 21 - 6
components/OrderListCard/index.vue

@@ -2,17 +2,22 @@
   <view class="item">
     <view @click="goOrderDetails(order.orderId)">
       <view class="title acea-row row-between-wrapper">
-        <view class="acea-row row-middle">
+        <view class="acea-row row-middle" @click.stop="toMerchant(order.sbMerchant.id)">
+          <image class="merchantImg" :src="order.sbMerchant.merchantLogo"></image>
+          <view>{{order.sbMerchant.merchantName}}</view>
+          <uni-icons style="margin-left: 10rpx;" type="right" size="16" color="#999999"></uni-icons>
+<!--          <view>{{ order.createTime }}</view>-->
+        </view>
+        <view class="font-color">
           <text
-            class="sign cart-color acea-row row-center-wrapper"
-            v-if="
+              class="sign cart-color acea-row row-center-wrapper"
+              v-if="
               order.activityType !== '普通' && order.activityType !== '核销'
             "
-            >{{ order.activityType }}</text
+          >{{ order.activityType }}</text
           >
-          <view>{{ order.createTime }}</view>
+          {{ order.orderStatus }}
         </view>
-        <view class="font-color">{{ order.orderStatus }}</view>
       </view>
       <view
         class="item-info acea-row row-between row-top"
@@ -66,6 +71,8 @@
 </template>
 
 <script setup>
+import UniIcons from "../../uni_modules/uni-icons/components/uni-icons/uni-icons.vue";
+
 const props = defineProps({
   order: Object,
   index: Number,
@@ -93,6 +100,9 @@ function goOrderDetails(orderId) {
 function delOrder() {
   emit("delOrder", props.order.id, props.index);
 }
+const toMerchant = (merchantId) => {
+  uni.navigateTo({ url:"/pages/merchantCenters/merchant?merchantId="+merchantId });
+}
 </script>
 
 <style scoped lang="scss">
@@ -195,4 +205,9 @@ function delOrder() {
     }
   }
 }
+.merchantImg{
+  width: 60rpx;
+  height: 60rpx;
+  border-radius: 50%;
+}
 </style>

+ 21 - 2
components/orderGoods/index.vue

@@ -1,8 +1,14 @@
 <template>
   <view class="orderGoods borRadius14">
-    <view class="total"
-      >共{{ orderProNum ? orderProNum : totalNmu }}件商品</view
+<!--    <view class="total"-->
+<!--      >共{{ orderProNum ? orderProNum : totalNmu }}件商品</view-->
+<!--    >-->
+    <view class="total"  @click="toMerchant(sbMerchant.id)"
     >
+      <image class="merchantImg" :src="sbMerchant.merchantLogo"></image>
+      <text>{{sbMerchant.merchantName}}</text>
+      <uni-icons style="margin-left: 10rpx;" type="right" size="16" color="#999999"></uni-icons>
+    </view>
     <view class="goodWrapper pad30">
       <view
         class="item acea-row row-between-wrapper"
@@ -37,6 +43,7 @@
 
 <script setup>
 import { ref, watch } from "vue";
+import UniIcons from "../../uni_modules/uni-icons/components/uni-icons/uni-icons.vue";
 
 const props = defineProps({
   evaluate: {
@@ -51,6 +58,10 @@ const props = defineProps({
     type: Array,
     default: () => [],
   },
+  sbMerchant: {
+    type: Object,
+    default: () => {},
+  },
   orderId: {
     type: String,
     default: "",
@@ -101,6 +112,9 @@ function jumpCon(id) {
     });
   }
 }
+const toMerchant = (merchantId) => {
+  uni.navigateTo({ url:"/pages/merchantCenters/merchant?merchantId="+merchantId });
+}
 </script>
 
 <style scoped lang="scss">
@@ -123,4 +137,9 @@ function jumpCon(id) {
 .pictrue image {
   background: #f4f4f4;
 }
+.merchantImg{
+  width: 60rpx;
+  height: 60rpx;
+  border-radius: 50%;
+}
 </style>

+ 6 - 3
components/productWindow/index.vue

@@ -373,10 +373,11 @@ function getCheckedValue() {
 
         .itemn {
           height: 60rpx;
+          line-height: 56rpx;
           border: 1px solid #f2f2f2;
           font-size: 26rpx;
           color: #282828;
-          padding: 7rpx 33rpx;
+          padding: 0rpx 33rpx;
           border-radius: 10rpx;
           margin: 20rpx 0 0 14rpx;
           background-color: #f2f2f2;
@@ -418,6 +419,8 @@ function getCheckedValue() {
       height: 100%;
       line-height: 54rpx;
       color: #282828;
+      border-left: 2rpx solid #DCDFE6;
+      border-right: 2rpx solid #DCDFE6;
     }
 
     .reduce {
@@ -437,7 +440,7 @@ function getCheckedValue() {
       width: 58rpx;
       border-left: 0;
       border-radius: 0 6rpx 6rpx 0;
-      line-height: 46rpx;
+      line-height: 48rpx;
 
       &.on {
         border-color: #e3e3e3;
@@ -452,7 +455,7 @@ function getCheckedValue() {
       font-size: 24rpx;
       border-radius: 12rpx;
       line-height: 29px;
-      height: 54rpx;
+      height: 50rpx;
 
       input {
         display: -webkit-inline-box;

+ 15 - 0
pages.json

@@ -300,6 +300,21 @@
 						"navigationBarTextStyle": "black",
 						"enablePullDownRefresh": false
 					}
+				},
+				{
+					"path": "goods_return/index",
+					"style": {
+						"navigationBarTitleText": "申请退货",
+						"navigationBarBackgroundColor": "#ffe079",
+						"navigationBarTextStyle": "black",
+						"app-plus": {
+							// #ifdef APP-PLUS
+							"titleNView": {
+								"type": "default"
+							}
+							// #endif
+						}
+					}
 				}
 			]
 		},

+ 1 - 1
pages/goods/goods_details/index.vue

@@ -157,7 +157,7 @@
               <view class="divider"></view>
 
               <!-- 规格选择区域 -->
-              <view class="spec-section" @click="handleSpecSelect">
+              <view class="spec-section">
                 <view style="width: 60rpx;text-align: center;">
                   <image style="width: 40rpx;" src="@/static/images/2-001.png" mode="widthFix"></image>
                 </view>

+ 9 - 1
pages/goods_cate/goods_cate.vue

@@ -61,6 +61,7 @@ const height = ref(0);
 const hightArr = ref([]);
 const toView = ref("");
 const tabbarH = ref(0);
+const query = ref({})
 
 // 获取分类列表
 const getAllCategory = async () => {
@@ -77,6 +78,10 @@ const getAllCategory = async () => {
     })
     productList.value = newArr.filter(item => item.code !== 'bb_mall')
 
+    if(query.value.id){
+      const index = productList.value.findIndex(item => item.id === query.value.id);
+      tap(index,query.value.id)
+    }
     // 使用 nextTick 确保 DOM 已更新
     nextTick(() => {
       setTimeout(() => {
@@ -162,7 +167,10 @@ const searchSubmitValue = (e) => {
 };
 
 // 页面加载
-onLoad(() => {
+onShow(() => {
+  const params = uni.getStorageSync('goods_cate');
+  uni.removeStorageSync('goods_cate');
+  query.value = params;
   getAllCategory();
 });
 

File diff suppressed because it is too large
+ 17 - 3
pages/index/index.vue


+ 37 - 22
pages/merchantCenter/index.vue

@@ -2,7 +2,7 @@
   <view class="container">
     <up-navbar
         class="inde-nav-bar"
-        bgColor="rgba(255,255,255,0)"
+        :bgColor="navBgColor"
     >
       <template #left>
         <view></view>
@@ -81,7 +81,7 @@
 
       <view class="functions">
         <template v-for="func in commonFunctions" :key="func.name">
-          <view class="function-item" @click="handleFunctionClick(func.pageUrl)" v-if="func.show">
+          <view class="function-item" @click="handleFunctionClick(func.pageUrl,func.name)" v-if="func.show">
             <view class="function-icon">
               <image class="img" :src="func.src" mode="widthFix"></image>
             </view>
@@ -96,18 +96,21 @@
 
 <script setup>
 import { ref, reactive } from 'vue'
-import { onLoad, onShow, onReachBottom } from "@dcloudio/uni-app";
+import { onLoad, onShow, onPageScroll } from "@dcloudio/uni-app";
 import UniIcons from "../../uni_modules/uni-icons/components/uni-icons/uni-icons.vue";
 import { isHttpsImage } from "@/utils/util";
 import { useAppStore } from "@/stores/app";
 import { useToast } from "@/hooks/useToast";
 import { merchantSalesSummary } from "@/api/merchant.js";
 import { toLogin } from "@/libs/login.js";
+import { HTTP_REQUEST_URL_IMG } from "@/config/app";
 
 const appStore = useAppStore();
 const { Toast } = useToast();
 const isLogin = appStore.isLogin;
 
+const navBgColor = ref('rgba(255,255,255,0)');
+
 // 经营概况
 const businessOverview = ref([
   { name:'在售商品数' ,num:123},
@@ -117,30 +120,30 @@ const businessOverview = ref([
 ])
 // 主要功能列表
 const mainFunctions = ref([
-  { src: '/static/images/setting/mailiao.png', name: '买料',pageUrl:'/pages/users/vault/buy?type=buygold' },
-  { src: '/static/images/setting/mailiao2.png', name: '卖料',pageUrl:'/pages/users/vault/storeMetal/index?type=soldgold' },
-  { src: '/static/images/setting/cunliao.png', name: '存料',pageUrl:'/pages/users/vault/storeMetal/goldBullionStock?type=savegold' },
-  { src: '/static/images/setting/tiliao.png', name: '提料',pageUrl:'/pages/users/vault/storeMetal/metalExchange?type=materialdeduction' }
+  { src: `${HTTP_REQUEST_URL_IMG}setting/mailiao.png`, name: '买料',pageUrl:'/pages/users/vault/buy?type=buygold' },
+  { src: `${HTTP_REQUEST_URL_IMG}setting/mailiao2.png`, name: '卖料',pageUrl:'/pages/users/vault/storeMetal/index?type=soldgold' },
+  { src: `${HTTP_REQUEST_URL_IMG}setting/cunliao.png`, name: '存料',pageUrl:'/pages/users/vault/storeMetal/goldBullionStock?type=savegold' },
+  { src: `${HTTP_REQUEST_URL_IMG}setting/tiliao.png`, name: '提料',pageUrl:'/pages/users/vault/storeMetal/metalExchange?type=materialdeduction' }
 ])
 
 // 订单状态
 const orderStatus = ref([
-  { src: '/static/images/setting/daifukuan.png', name: '待付款',id:0 },
-  { src: '/static/images/setting/daifahuo.png', name: '待发货',id:1 },
-  { src: '/static/images/setting/daishouhuo.png', name: '待收货',id:2 },
-  { src: '/static/images/setting/tuikuan.png', name: '退款/换货' ,id:5},
-  { src: '/static/images/setting/yiwancheng.png', name: '已完成',id:4 },
+  { src: `${HTTP_REQUEST_URL_IMG}setting/daifukuan.png`, name: '待付款',id:0 },
+  { src: `${HTTP_REQUEST_URL_IMG}setting/daifahuo.png`, name: '待发货',id:1 },
+  { src: `${HTTP_REQUEST_URL_IMG}setting/daishouhuo.png`, name: '待收货',id:2 },
+  { src: `${HTTP_REQUEST_URL_IMG}setting/tuikuan.png`, name: '退款/换货' ,id:5},
+  { src: `${HTTP_REQUEST_URL_IMG}setting/yiwancheng.png`, name: '已完成',id:4 },
 ])
 
 // 常用功能
 const commonFunctions = ref([
-  { src: '/static/images/setting/fabu.png', name: '发布商品',pageUrl:'/pages/merchantCenters/postInformation',show:true },
-  { src: '/static/images/setting/shangpin.png', name: '商品管理',pageUrl:'/pages/merchantCenters/productManagement',show:true },
-  { src: '/static/images/setting/kucun.png', name: '库存管理',pageUrl:'/pages/users/user_asset/asset_info/asset_info' ,show:true},
-  { src: '/static/images/setting/jinqian.png', name: '我的收益',pageUrl: '/pages/users/my_merchant/index' ,show:appStore.merchantId?true:false},
-  { src: '/static/images/setting/kabao.png', name: '卡包管理',pageUrl: '/pages/users/card_page/index' ,show:true},
-  { src: '/static/images/setting/mendian.png', name: '门店推广',pageUrl: '/pages/users/my_merchant/index',show:true },
-  { src: '/static/images/setting/dianpu.png', name: '我的商城',pageUrl: `/pages/merchantCenters/merchant?merchantId=${appStore.userInfo.merchant?.id}` ,show:true},
+  { src: `${HTTP_REQUEST_URL_IMG}setting/fabu.png`, name: '发布商品',pageUrl:'/pages/merchantCenters/postInformation',show:true },
+  { src: `${HTTP_REQUEST_URL_IMG}setting/shangpin.png`, name: '商品管理',pageUrl:'/pages/merchantCenters/productManagement',show:true },
+  { src: `${HTTP_REQUEST_URL_IMG}setting/kucun.png`, name: '库存管理',pageUrl:'/pages/users/user_asset/asset_info/asset_info' ,show:true},
+  { src: `${HTTP_REQUEST_URL_IMG}setting/jinqian.png`, name: '我的收益',pageUrl: '/pages/users/my_merchant/index' ,show:appStore.merchantId?true:false},
+  { src: `${HTTP_REQUEST_URL_IMG}setting/kabao.png`, name: '卡包管理',pageUrl: '/pages/users/card_page/index' ,show:true},
+  { src: `${HTTP_REQUEST_URL_IMG}setting/mendian.png`, name: '门店推广',pageUrl: '/pages/users/my_merchant/index',show:true },
+  { src: `${HTTP_REQUEST_URL_IMG}setting/dianpu.png`, name: '我的商城',pageUrl: `/pages/index/index` ,show:true},
 ])
 const params = ref({
   page: 1,
@@ -155,6 +158,14 @@ onShow(() => {
   getMerchantSalesSummary()
 })
 
+onPageScroll((e) => {
+  if(e.scrollTop > 0){
+    navBgColor.value ='#ffe079';
+  }else{
+    navBgColor.value ='rgba(252,255,255,0)';
+  }
+})
+
 // 编辑资料
 const editProfile = () => {
   uni.showToast({
@@ -176,10 +187,14 @@ const getMerchantSalesSummary = async () =>{
   businessOverview.value[3].num =  formatMoney(data.totalSalesAmount);
 }
 // 功能点击
-const handleFunctionClick = (url) => {
-  console.log(url)
+const handleFunctionClick = (url,name) => {
   if (!url) return;
-  uni.navigateTo({ url });
+  if(name != '我的商城'){
+    uni.navigateTo({ url });
+  }else{
+    uni.switchTab({url})
+  }
+
 }
 
 // 查看商家

+ 1 - 1
pages/merchantCenters/merchant.vue

@@ -16,7 +16,7 @@
       <view class="tel" @click="makePhoneCall">
         <image class="phone mr20" src="@/static/images/phone2.png" mode="widthFix"></image>
         <text>联系电话:{{merchantInfo.merchantPhone}}</text>
-        <image class="phone fr" src="@/static/images/phoneyellow.png" mode="widthFix"></image>
+        <image class="phone fr" src="@/static/images/phone.png" mode="widthFix"></image>
       </view>
     </view>
 <!--    商品-->

+ 6 - 3
pages/order_details/index.vue

@@ -17,7 +17,7 @@
       <view v-if="!isGoodsReturn" class="pad30">
         <view class="nav">
           <uni-steps
-            :current="curOrderStep"
+            :active="curOrderStep"
             :options="orderSteps"
             activeColor="#e9c279"
           ></uni-steps>
@@ -85,6 +85,7 @@
           :ids="id"
           :uniId="uniId"
           :cartInfo="cartInfo"
+          :sbMerchant="sbMerchant"
           :jump="true"
         ></orderGoods>
         <!-- <div class="goodCall borRadius14" @click="kefuClick">
@@ -341,6 +342,7 @@ const codeImg = ref("");
 const order_id = ref("");
 const evaluate = ref(0);
 const cartInfo = ref([]);
+const sbMerchant = ref({});
 const orderInfo = reactive({
   systemStore: {},
   pstatus: {},
@@ -461,6 +463,7 @@ function getOrderInfo() {
       system_store.value = res.data.systemStore;
       id.value = res.data.id;
       cartInfo.value = res.data.orderInfoList;
+      sbMerchant.value = res.data.sbMerchant;
       if (res.data.refundStatus != 0) isGoodsReturn.value = true;
       if (orderInfo.shippingType == 2 && orderInfo.paid)
         markCode(res.data.verifyCode);
@@ -769,8 +772,8 @@ const setOrderId = () => {
       font-size: 27rpx;
 
       &.cancel {
-        color: #aaa;
-        border: 1rpx solid #ddd;
+        color: #F8C008;
+        border: 1rpx solid #F8C008;
       }
 
       & ~ .bnt {

+ 35 - 27
pages/user/index.vue

@@ -2,7 +2,7 @@
   <view class="container">
     <up-navbar
         class="inde-nav-bar"
-        bgColor="rgba(255,255,255,0)"
+        :bgColor="navBgColor"
     >
       <template #left>
         <view></view>
@@ -24,7 +24,7 @@
           <view class="user-detail">
             <view class="name-vip" v-if="appStore.isLogin">
               <text class="name">{{ appStore.$userInfo?.nickname }}</text>
-              <image class="vip-tag" v-if="appStore.$userInfo?.svip" mode="widthFix" src="@/static/images/setting/vip.png">VIP</image>
+              <image class="vip-tag" v-if="appStore.$userInfo?.svip" mode="widthFix" :src="HTTP_REQUEST_URL_IMG+'setting/vip.png'">VIP</image>
             </view>
             <view class="name-vip" v-else @click="navigateTo('/pages/users/login/index')">
               <text class="name">未登录</text>
@@ -44,10 +44,10 @@
         <image class="vipBG" :src="HTTP_REQUEST_URL_IMG+'vipBG.png'" mode="scaleToFill"></image>
         <view class="vip-text">
           <view class="title">
-            <image class="vipIcon" src="@/static/images/setting/vipIcon.png" mode="widthFix"></image>
+            <image class="vipIcon" :src="HTTP_REQUEST_URL_IMG+'setting/vipIcon.png'" mode="widthFix"></image>
             <text>开通<text class="bigText">会员</text>享受更多<text class="bigText">权益</text></text>
           </view>
-          <button class="open-vip" @click="goVIP">去开通<image class="bofang" src="@/static/images/setting/bofang.png" mode="widthFix"></image></button>
+          <button class="open-vip" @click="goVIP">去开通<image class="bofang" :src="HTTP_REQUEST_URL_IMG+'setting/bofang.png'" mode="widthFix"></image></button>
         </view>
       </view>
     </view>
@@ -153,7 +153,7 @@
 
 <script setup>
 import { ref, reactive, watch } from 'vue'
-import { onLoad, onShow, onReachBottom } from "@dcloudio/uni-app";
+import { onLoad, onShow, onPageScroll } from "@dcloudio/uni-app";
 import UniIcons from "../../uni_modules/uni-icons/components/uni-icons/uni-icons.vue";
 import { HTTP_REQUEST_URL_IMG } from "@/config/app";
 import { isHttpsImage } from "@/utils/util";
@@ -167,6 +167,7 @@ const appStore = useAppStore();
 const { Toast } = useToast();
 const isLogin = appStore.isLogin;
 
+const navBgColor = ref('rgba(255,255,255,0)');
 // 钱包信息
 const wallet = ref({
   balance: appStore.userInfo?.nowMoney || '0.00',
@@ -179,10 +180,10 @@ const wallet = ref({
 
 // 主要功能列表
 const mainFunctions = ref([
-  { src: '/static/images/setting/mailiao.png', name: '买料',pageUrl:'/pages/users/vault/rechargeGold' },
-  { src: '/static/images/setting/mailiao2.png', name: '卖料',pageUrl:'/pages/users/vault/storeMetal/index' },
-  { src: '/static/images/setting/cunliao.png', name: '存料',pageUrl:'/pages/users/vault/storeMetal/goldBullionStock' },
-  { src: '/static/images/setting/tiliao.png', name: '提料',pageUrl:'/pages/users/vault/storeMetal/metalExchange' }
+  { src: `${HTTP_REQUEST_URL_IMG}setting/mailiao.png`, name: '买料',pageUrl:'/pages/users/vault/rechargeGold' },
+  { src: `${HTTP_REQUEST_URL_IMG}setting/mailiao2.png`, name: '卖料',pageUrl:'/pages/users/vault/storeMetal/index' },
+  { src: `${HTTP_REQUEST_URL_IMG}setting/cunliao.png`, name: '存料',pageUrl:'/pages/users/vault/storeMetal/goldBullionStock' },
+  { src: `${HTTP_REQUEST_URL_IMG}setting/tiliao.png`, name: '提料',pageUrl:'/pages/users/vault/storeMetal/metalExchange' }
 ])
 
 // 最近访问的商家
@@ -190,24 +191,24 @@ const recentStores = ref([])
 
 // 订单状态
 const orderStatus = ref([
-  { src: '/static/images/setting/daifukuan.png', name: '待付款',id:0 },
-  { src: '/static/images/setting/daifahuo.png', name: '待发货',id:1 },
-  { src: '/static/images/setting/daishouhuo.png', name: '待收货',id:2 },
-  { src: '/static/images/setting/tuikuan.png', name: '退款/换货' ,id:5},
-  { src: '/static/images/setting/yiwancheng.png', name: '已完成',id:4 },
+  { src: `${HTTP_REQUEST_URL_IMG}setting/daifukuan.png`, name: '待付款',id:0 },
+  { src: `${HTTP_REQUEST_URL_IMG}setting/daifahuo.png`, name: '待发货',id:1 },
+  { src: `${HTTP_REQUEST_URL_IMG}setting/daishouhuo.png`, name: '待收货',id:2 },
+  { src: `${HTTP_REQUEST_URL_IMG}setting/tuikuan.png`, name: '退款/换货' ,id:5},
+  { src: `${HTTP_REQUEST_URL_IMG}setting/yiwancheng.png`, name: '已完成',id:4 },
 ])
 
 // 常用功能
 const commonFunctions = ref([
-  { src: '/static/images/setting/zuji.png', name: '浏览足迹',pageUrl:'/pages/users/browsing_history/index',show:true },
-  { src: '/static/images/setting/shoucang.png', name: '我的收藏',pageUrl:'/pages/users/user_goods_collection/index' ,show:true},
-  { src: '/static/images/setting/dingwei.png', name: '收货地址',pageUrl:'/pages/users/user_address_list/index' ,show:true},
-  { src: '/static/images/setting/dianpu.png', name: '联系商家',pageUrl: '/pages/users/my_merchant/index' ,show:appStore.merchantId?true:false},
-  { src: '/static/images/setting/dianpu.png', name: '门店主页',pageUrl: '/pages/merchantCenter/index' ,show:appStore.userInfo?.merchant?.id?true:false},
-  { src: '/static/images/setting/yijianjianyi.png', name: '意见建议' ,show:true},
-  { src: '/static/images/setting/xiazaiapp.png', name: '下载APP',show:true },
-  { src: '/static/images/setting/lianxikefu.png', name: '平台客服' ,show:true},
-  // { src: '/static/images/setting/lianxikefu.png', name: '资产明细' ,pageUrl:'/pages/users/user_asset/asset_info/asset_info',show:true}
+  { src: `${HTTP_REQUEST_URL_IMG}setting/zuji.png`, name: '浏览足迹',pageUrl:'/pages/users/browsing_history/index',show:true },
+  { src: `${HTTP_REQUEST_URL_IMG}setting/shoucang.png`, name: '我的收藏',pageUrl:'/pages/users/user_goods_collection/index' ,show:true},
+  { src: `${HTTP_REQUEST_URL_IMG}setting/dingwei.png`, name: '收货地址',pageUrl:'/pages/users/user_address_list/index' ,show:true},
+  { src: `${HTTP_REQUEST_URL_IMG}setting/dianpu.png`, name: '联系商家',pageUrl: '/pages/users/my_merchant/index' ,show:appStore.merchantId?true:false},
+  { src: `${HTTP_REQUEST_URL_IMG}setting/dianpu.png`, name: '门店主页',pageUrl: '/pages/merchantCenter/index' ,show:appStore.userInfo.merchant.id?true:false},
+  // { src: `${HTTP_REQUEST_URL_IMG}setting/yijianjianyi.png`, name: '意见建议' ,show:true},
+  { src: `${HTTP_REQUEST_URL_IMG}setting/xiazaiapp.png`, name: '下载APP',show:true },
+  { src: `${HTTP_REQUEST_URL_IMG}setting/lianxikefu.png`, name: '平台客服' ,show:true},
+  // { src: \`${HTTP_REQUEST_URL_IMG}setting/lianxikefu.png', name: '资产明细' ,pageUrl:'/pages/users/user_asset/asset_info/asset_info',show:true}
 ])
 const params = ref({
   page: 1,
@@ -220,6 +221,13 @@ onShow(() => {
   fetchMetalBalance()
   getHistoryList()
 })
+onPageScroll((e) => {
+  if(e.scrollTop > 0){
+    navBgColor.value ='#ffe079';
+  }else{
+    navBgColor.value ='rgba(252,255,255,0)';
+  }
+})
 
 const wxConfig = ref({});
 const tradeList = ref([]);
@@ -233,17 +241,17 @@ watch(
     tradeList.value = [list[0],list[1]];
 	useList.value = [{
 		...list[2],
-		src: '/static/images/setting/mailiao.png'
+		src: `${HTTP_REQUEST_URL_IMG}setting/mailiao.png`
 	},{
 		...list[3],
-		src: '/static/images/setting/mailiao2.png'
+		src: `${HTTP_REQUEST_URL_IMG}setting/mailiao2.png`
 	},{
 		...list[4],
-		src: '/static/images/setting/cunliao.png',
+		src: `${HTTP_REQUEST_URL_IMG}setting/cunliao.png`,
 		iconName: '存料'
 	},{
 		...list[5],
-		src: '/static/images/setting/tiliao.png'
+		src: `${HTTP_REQUEST_URL_IMG}setting/tiliao.png`
 	}]
 	console.log(tradeList.value)
   },

+ 282 - 0
pages/users/goods_return/index.vue

@@ -0,0 +1,282 @@
+<template>
+  <view>
+    <form @submit="subRefund" report-submit="true">
+      <view class="apply-return">
+        <view
+          class="goodsStyle acea-row row-between borRadius14"
+          v-for="(item, idx) in orderInfo.orderInfoList"
+          :key="idx"
+        >
+          <view class="pictrue">
+            <image :src="item.image"></image>
+          </view>
+          <view class="text acea-row row-between">
+            <view class="name line2">{{ item.storeName }}</view>
+            <view class="money">
+              <view>¥{{ item.price }}</view>
+              <view class="num">x{{ item.cartNum }}</view>
+            </view>
+          </view>
+        </view>
+        <view class="list borRadius14">
+          <view class="item acea-row row-between-wrapper">
+            <view>退货件数</view>
+            <view class="num">{{ orderInfo.totalNum }}</view>
+          </view>
+          <view class="item acea-row row-between-wrapper">
+            <view>退款金额</view>
+            <view class="num">¥{{ orderInfo.payPrice }}</view>
+          </view>
+          <view
+            class="item acea-row row-between-wrapper"
+            @tap="toggleTab('region')"
+          >
+            <view>退款原因</view>
+            <picker
+              class="num"
+              @change="bindPickerChange"
+              :value="index"
+              :range="RefundArray"
+            >
+              <view class="picker acea-row row-between-wrapper">
+                <view class="reason">{{ RefundArray[index] }}</view>
+                <text class="iconfont icon-jiantou"></text>
+              </view>
+            </picker>
+          </view>
+          <view class="item textarea acea-row row-between">
+            <view>快递单号</view>
+            <input name="refund_express_num" placeholder-class="express-num" placeholder="请输入快递单号" />
+          </view>
+          <view class="item textarea acea-row row-between">
+            <view>备注说明</view>
+            <textarea
+              placeholder="填写备注信息,100字以内"
+              class="num"
+              name="refund_reason_wap_explain"
+              placeholder-class="填写备注信息,100字以内"
+            ></textarea>
+          </view>
+          <button class="returnBnt bg-color" form-type="submit">
+            申请退款
+          </button>
+        </view>
+      </view>
+    </form>
+  </view>
+</template>
+
+<script setup>
+import {
+  ref,
+  reactive,
+  watch,
+} from "vue";
+import { useAppStore } from "@/stores/app";
+import { onLoad } from "@dcloudio/uni-app";
+import {
+  ordeRefundReason,
+  orderRefundVerify,
+  applyRefund,
+} from "@/api/order.js";
+import { toLogin } from "@/libs/login.js";
+
+const appStore = useAppStore();
+import { useToast } from "@/hooks/useToast";
+
+const refund_reason_wap_imgPath = ref([]);
+const orderInfo = reactive({});
+const RefundArray = ref([]);
+const index = ref(0);
+const orderId = ref(0);
+
+const { Toast } = useToast();
+
+
+watch(() => appStore.isLogin, (newV) => {
+  if (newV) {
+    getOrderInfo();
+    getRefundReason();
+  }
+});
+
+onLoad((options) => {
+  if (!options.orderId)
+    return Toast({ title: "缺少订单id,无法退款" }, { tab: 3, url: 1 });
+  orderId.value = options.orderId;
+  if (appStore.isLogin) {
+    getOrderInfo();
+    getRefundReason();
+  } else {
+    toLogin();
+  }
+});
+
+function onLoadFun() {
+  getOrderInfo();
+  getRefundReason();
+}
+
+/**
+ * 获取订单详情
+ */
+function getOrderInfo() {
+  applyRefund(orderId.value).then((res) => {
+    Object.assign(orderInfo, res.data);
+  });
+}
+
+/**
+ * 获取退款理由
+ */
+function getRefundReason() {
+  ordeRefundReason().then((res) => {
+    RefundArray.value = res.data;
+  });
+}
+
+/**
+ * 申请退货
+ */
+function subRefund(e) {
+  const value = e.detail.value;
+  orderRefundVerify({
+    text: RefundArray.value[index.value] || "",
+    refund_reason_wap_explain: value.refund_reason_wap_explain,
+    refund_express_num: value.refund_express_num,
+    refund_reason_wap_img: refund_reason_wap_imgPath.value.join(","),
+    uni: orderId.value,
+  })
+    .then((res) => {
+      return Toast(
+        { title: "申请成功", icon: "success" },
+        { tab: 5, url: "/pages/users/user_return_list/index?isT=1" }
+      );
+    })
+    .catch((err) => {
+      return Toast({ title: err });
+    });
+}
+
+function bindPickerChange(e) {
+  index.value = e.detail.value;
+}
+
+function toggleTab() {
+  // 保留原逻辑
+}
+</script>
+
+<style scoped lang="scss">
+.apply-return {
+  padding: 20rpx 30rpx 70rpx 30rpx;
+
+  .list {
+    background-color: #fff;
+    margin-top: 18rpx;
+    padding: 0 24rpx 70rpx 24rpx;
+
+    .item {
+      min-height: 90rpx;
+      border-bottom: 1rpx solid #eee;
+      font-size: 30rpx;
+      color: #333;
+
+      .num {
+        color: #282828;
+        width: 427rpx;
+        text-align: right;
+
+        .picker {
+          .reason {
+            width: 385rpx;
+          }
+          .iconfont {
+            color: #666;
+            font-size: 30rpx;
+            margin-top: 2rpx;
+          }
+        }
+      }
+
+      ::v-deep .express-num {
+        text-align: right;
+      }
+
+      &.textarea {
+        padding: 24rpx 0;
+
+        textarea {
+          height: 100rpx;
+          font-size: 30rpx;
+        }
+      }
+
+      .placeholder {
+        color: #bbb;
+      }
+
+      .title {
+        height: 95rpx;
+        width: 100%;
+
+        .tip {
+          font-size: 30rpx;
+          color: #bbb;
+        }
+      }
+
+      .upload {
+        padding-bottom: 36rpx;
+
+        .pictrue {
+          border-radius: 14rpx;
+          margin: 22rpx 23rpx 0 0;
+          width: 156rpx;
+          height: 156rpx;
+          position: relative;
+          font-size: 24rpx;
+          color: #bbb;
+
+          &:nth-of-type(4n) {
+            margin-right: 0;
+          }
+
+          image {
+            width: 100%;
+            height: 100%;
+            border-radius: 14rpx;
+          }
+
+          .icon-guanbi1 {
+            position: absolute;
+            font-size: 45rpx;
+            top: -10rpx;
+            right: -10rpx;
+          }
+
+          .icon-icon25201 {
+            color: #bfbfbf;
+            font-size: 50rpx;
+          }
+
+          &:nth-last-child(1) {
+            border: 1rpx solid #ddd;
+            box-sizing: border-box;
+          }
+        }
+      }
+    }
+    .returnBnt {
+      font-size: 32rpx;
+      color: #fff;
+      width: 100%;
+      height: 86rpx;
+      border-radius: 50rpx;
+      text-align: center;
+      line-height: 86rpx;
+      margin: 43rpx auto;
+    }
+  }
+}
+</style>

+ 1 - 1
pages/users/my_merchant/index.vue

@@ -18,7 +18,7 @@
       <view class="tel" @click="makePhoneCall">
         <image class="phone mr20" src="@/static/images/phone2.png" mode="widthFix"></image>
         <text>联系电话:{{merchantInfo.merchantPhone}}</text>
-        <image class="phone fr" src="@/static/images/phoneyellow.png" mode="widthFix"></image>
+        <image class="phone fr" src="@/static/images/phone.png" mode="widthFix"></image>
       </view>
     </view>
 

BIN
static/images/2-001.png


BIN
static/images/2-003.png


BIN
static/images/phone.png


BIN
static/images/phoneyellow.png


BIN
static/images/setting.png


BIN
static/images/setting/bofang.png


BIN
static/images/setting/cunliao.png


BIN
static/images/setting/daifahuo.png


BIN
static/images/setting/daifukuan.png


BIN
static/images/setting/daishouhuo.png


BIN
static/images/setting/dianpu.png


BIN
static/images/setting/dingwei.png


BIN
static/images/setting/fabu.png


BIN
static/images/setting/jinqian.png


BIN
static/images/setting/kabao.png


BIN
static/images/setting/kucun.png


BIN
static/images/setting/lianxikefu.png


BIN
static/images/setting/mailiao.png


BIN
static/images/setting/mailiao2.png


BIN
static/images/setting/mendian.png


BIN
static/images/setting/shangpin.png


BIN
static/images/setting/shoucang.png


BIN
static/images/setting/tiliao.png


BIN
static/images/setting/tuikuan.png


BIN
static/images/setting/vip.png


BIN
static/images/setting/vipIcon.png


BIN
static/images/setting/xiazaiapp.png


BIN
static/images/setting/yijianjianyi.png


BIN
static/images/setting/yiwancheng.png


BIN
static/images/setting/zuji.png


BIN
static/images/share.png


BIN
static/images/shishijinjia.png


BIN
static/images/tabbar/1-001.png


BIN
static/images/tabbar/1-003.png


BIN
static/images/tabbar/3-001.png


BIN
static/images/tabbar/3-003.png


BIN
static/images/tabbar/4-001.png


BIN
static/images/tabbar/4-003.png