lex vor 1 Jahr
Ursprung
Commit
8d2a97450f

+ 8 - 8
src/router/routes-student.ts

@@ -46,6 +46,14 @@ const noLoginRouter = [
     meta: {
       title: '管乐团组建家长会'
     }
+  },
+  {
+    path: '/preGoodsSuccess',
+    name: 'preGoodsSuccess',
+    component: () => import('@/student/music-group/pre-goods-apply/success'),
+    meta: {
+      title: ''
+    }
   }
 ]
 
@@ -188,14 +196,6 @@ export default [
         }
       },
       {
-        path: '/preGoodsSuccess',
-        name: 'preGoodsSuccess',
-        component: () => import('@/student/music-group/pre-goods-apply/success'),
-        meta: {
-          title: ''
-        }
-      },
-      {
         path: '/orderDetail',
         name: 'orderDetail',
         component: () => import('@/student/music-group/pre-apply/order-detail'),

+ 234 - 232
src/student/music-group/goods-detail/index.tsx

@@ -1,232 +1,234 @@
-import request from '@/helpers/request'
-import { moneyFormat } from '@/helpers/utils'
-import { Swipe, SwipeItem, Image, CellGroup, Cell, showImagePreview } from 'vant'
-import { defineComponent } from 'vue'
-import styles from './index.module.less'
-import iconGives from '../pre-apply/images/icon-gives.png'
-
-export default defineComponent({
-  name: 'goods-detail',
-  props: {
-    groupPrice: {
-      type: Number,
-      default: 0
-    },
-    goodsInfo: {
-      type: Object,
-      default: () => ({})
-    },
-    id: {
-      type: String,
-      defualt: ''
-    }
-  },
-  data() {
-    return {
-      albumPics: [] as any[],
-      product: {} as Record<string | number | symbol, any>,
-      radio: 0,
-      skuStockListTemp: [],
-      detailMobileHtml: '',
-      loading: false,
-      addGoodsShow: false,
-      selectGoodsItem: {},
-      cartCount: 0,
-      showType: 'cart',
-      shareShow: false // 分享弹窗
-    }
-  },
-  computed: {
-    skuStockList() {
-      // 处理规格
-      const product = this.product
-      const skuStockList: any =
-        this.skuStockListTemp.length > 0
-          ? this.skuStockListTemp
-          : [
-              {
-                id: -1,
-                price: product.price,
-                pic: product.pic,
-                stock: product.stock,
-                spData: null
-              }
-            ]
-      skuStockList.forEach((item: any) => {
-        if (item.spData) {
-          const spData = JSON.parse(item.spData)
-          item.spDataJson = spData.reduce((spDataJson, value) => {
-            spDataJson += value.value
-            return spDataJson
-          }, '')
-          item.sku = spData
-            .reduce((sku, value) => {
-              sku.push(`${value.key}: ${value.value}`)
-              return sku
-            }, [])
-            .join(',')
-        } else {
-          item.spDataJson = '默认'
-        }
-      })
-      return skuStockList
-    },
-    getPrice() {
-      const item = this.skuStockList.filter((n) => n.id == this.radio) as any
-      if (item && Array.isArray(item) && item.length) {
-        return item[0].price
-      }
-      return 0
-    }
-  },
-  async mounted() {
-    try {
-      this.loading = true
-      const res = await request.get(`/api-student/open/mall/product/detail/${this.id}`)
-      this.loading = false
-      const result = res.data || {}
-      this.albumPics = [result.product.pic]
-        .concat(result.product.albumPics.split(','))
-        .filter((n) => n)
-      this.product = result.product
-      this.skuStockListTemp = result.skuStockList || []
-      if (this.skuStockListTemp.length) {
-        const len = this.skuStockListTemp.length
-        for (let i = 0; i < len; i++) {
-          const item = this.skuStockListTemp[i] as any
-          if (item.stock >= 0) {
-            this.radio = item.id
-            break
-          }
-        }
-      }
-      this.detailMobileHtml = result.product.detailMobileHtml || result.product.detailHtml
-    } catch {
-      //
-    }
-  },
-  methods: {
-    onPreview(index: number) {
-      // 图片预览
-      showImagePreview({
-        images: this.albumPics,
-        startPosition: index,
-        closeable: true,
-        className: styles.imagesOverlayWrap
-      })
-    },
-    onShowImg(target: any) {
-      const { localName } = target.srcElement
-      if (localName !== 'img') {
-        return
-      }
-      let startPosition = 0
-      const domList = document.querySelectorAll('.msgWrap img')
-      const imgList = Array.from(domList).map((item: any, index: number) => {
-        if (target.srcElement == item) {
-          startPosition = index
-        }
-        return item.src
-      })
-
-      showImagePreview({
-        images: imgList,
-        startPosition: startPosition,
-        closeable: true,
-        className: styles.imagesOverlayWrap
-      })
-    },
-    onShowCart(type = 'cart') {
-      this.selectGoodsItem = {
-        price: this.product.pic,
-        stock: this.product.stock,
-        skuStockList: this.skuStockListTemp.length ? this.skuStockListTemp : undefined,
-        brandName: this.product.brandName,
-        productCategoryId: this.product.productCategoryId,
-        name: this.product.name,
-        productSn: this.product.productSn,
-        productSubTitle: this.product.subTitle,
-        id: this.product.id
-      }
-      this.showType = type
-      // 打开购物弹框
-      this.addGoodsShow = true
-    }
-  },
-  render() {
-    const product = this.product
-    const selectSku = this.skuStockList.find((n: any) => n.id === this.radio)
-    return (
-      <div class={styles.goodsDetail}>
-        <Swipe
-          class={styles.swipe}
-          lazyRender
-          v-slots={{
-            indicator: (item: any) =>
-              item.total > 1 && (
-                <div class={styles['custom-indicator']}>
-                  {(item.active || 0) + 1} / {item.total}
-                </div>
-              )
-          }}
-        >
-          {this.albumPics.map((item: string, index: number) => (
-            <SwipeItem>
-              <Image
-                class={styles.swipeItemImg}
-                src={item}
-                onClick={() => this.onPreview(index)}
-                fit="cover"
-              />
-            </SwipeItem>
-          ))}
-        </Swipe>
-
-        <CellGroup border={false} class={[styles.goodsHead, 'mb12']}>
-          <Cell
-            center
-            border={false}
-            v-slots={{
-              title: () => (
-                <div class={styles.priceGroup}>
-                  <span class={styles.price}>
-                    <i>¥ </i>
-                    {moneyFormat(this.groupPrice)}
-                  </span>
-                  <del class={styles.delPrice}>¥ {moneyFormat(product.originalPrice)}</del>
-                </div>
-              )
-              // default: () => <div class={styles.stock}>销量4件</div>
-            }}
-          />
-          <Cell
-            center
-            border={false}
-            title={product.name}
-            titleClass={[styles.goodsName, 'van-ellipsis']}
-          />
-          {this.goodsInfo.showFree && (
-            <div class={styles.sectionTips}>
-              <Image src={iconGives} class={styles.iconGives} />
-              赠价值{this.goodsInfo.originalPrice}元乐器维保服务一年
-            </div>
-          )}
-        </CellGroup>
-
-        {this.detailMobileHtml && (
-          <div class={[styles.section]}>
-            <div class={styles.detail}>
-              <span>图文详情</span>
-            </div>
-
-            <div
-              class={[styles.photoDetail, 'msgWrap']}
-              onClick={this.onShowImg}
-              v-html={this.detailMobileHtml}
-            ></div>
-          </div>
-        )}
-      </div>
-    )
-  }
-})
+import request from '@/helpers/request'
+import { browser, moneyFormat } from '@/helpers/utils'
+import { Swipe, SwipeItem, Image, CellGroup, Cell, showImagePreview } from 'vant'
+import { defineComponent } from 'vue'
+import styles from './index.module.less'
+import iconGives from '../pre-apply/images/icon-gives.png'
+import OHeader from '@/components/o-header'
+
+export default defineComponent({
+  name: 'goods-detail',
+  props: {
+    groupPrice: {
+      type: Number,
+      default: 0
+    },
+    goodsInfo: {
+      type: Object,
+      default: () => ({})
+    },
+    id: {
+      type: String,
+      defualt: ''
+    }
+  },
+  data() {
+    return {
+      albumPics: [] as any[],
+      product: {} as Record<string | number | symbol, any>,
+      radio: 0,
+      skuStockListTemp: [],
+      detailMobileHtml: '',
+      loading: false,
+      addGoodsShow: false,
+      selectGoodsItem: {},
+      cartCount: 0,
+      showType: 'cart',
+      shareShow: false // 分享弹窗
+    }
+  },
+  computed: {
+    skuStockList() {
+      // 处理规格
+      const product = this.product
+      const skuStockList: any =
+        this.skuStockListTemp.length > 0
+          ? this.skuStockListTemp
+          : [
+              {
+                id: -1,
+                price: product.price,
+                pic: product.pic,
+                stock: product.stock,
+                spData: null
+              }
+            ]
+      skuStockList.forEach((item: any) => {
+        if (item.spData) {
+          const spData = JSON.parse(item.spData)
+          item.spDataJson = spData.reduce((spDataJson, value) => {
+            spDataJson += value.value
+            return spDataJson
+          }, '')
+          item.sku = spData
+            .reduce((sku, value) => {
+              sku.push(`${value.key}: ${value.value}`)
+              return sku
+            }, [])
+            .join(',')
+        } else {
+          item.spDataJson = '默认'
+        }
+      })
+      return skuStockList
+    },
+    getPrice() {
+      const item = this.skuStockList.filter((n) => n.id == this.radio) as any
+      if (item && Array.isArray(item) && item.length) {
+        return item[0].price
+      }
+      return 0
+    }
+  },
+  async mounted() {
+    try {
+      this.loading = true
+      const res = await request.get(`/api-student/open/mall/product/detail/${this.id}`)
+      this.loading = false
+      const result = res.data || {}
+      this.albumPics = [result.product.pic]
+        .concat(result.product.albumPics.split(','))
+        .filter((n) => n)
+      this.product = result.product
+      this.skuStockListTemp = result.skuStockList || []
+      if (this.skuStockListTemp.length) {
+        const len = this.skuStockListTemp.length
+        for (let i = 0; i < len; i++) {
+          const item = this.skuStockListTemp[i] as any
+          if (item.stock >= 0) {
+            this.radio = item.id
+            break
+          }
+        }
+      }
+      this.detailMobileHtml = result.product.detailMobileHtml || result.product.detailHtml
+    } catch {
+      //
+    }
+  },
+  methods: {
+    onPreview(index: number) {
+      // 图片预览
+      showImagePreview({
+        images: this.albumPics,
+        startPosition: index,
+        closeable: true,
+        className: styles.imagesOverlayWrap
+      })
+    },
+    onShowImg(target: any) {
+      const { localName } = target.srcElement
+      if (localName !== 'img') {
+        return
+      }
+      let startPosition = 0
+      const domList = document.querySelectorAll('.msgWrap img')
+      const imgList = Array.from(domList).map((item: any, index: number) => {
+        if (target.srcElement == item) {
+          startPosition = index
+        }
+        return item.src
+      })
+
+      showImagePreview({
+        images: imgList,
+        startPosition: startPosition,
+        closeable: true,
+        className: styles.imagesOverlayWrap
+      })
+    },
+    onShowCart(type = 'cart') {
+      this.selectGoodsItem = {
+        price: this.product.pic,
+        stock: this.product.stock,
+        skuStockList: this.skuStockListTemp.length ? this.skuStockListTemp : undefined,
+        brandName: this.product.brandName,
+        productCategoryId: this.product.productCategoryId,
+        name: this.product.name,
+        productSn: this.product.productSn,
+        productSubTitle: this.product.subTitle,
+        id: this.product.id
+      }
+      this.showType = type
+      // 打开购物弹框
+      this.addGoodsShow = true
+    }
+  },
+  render() {
+    const product = this.product
+    const selectSku = this.skuStockList.find((n: any) => n.id === this.radio)
+    return (
+      <div class={styles.goodsDetail}>
+        {browser().isApp && <OHeader border={false} />}
+        <Swipe
+          class={styles.swipe}
+          lazyRender
+          v-slots={{
+            indicator: (item: any) =>
+              item.total > 1 && (
+                <div class={styles['custom-indicator']}>
+                  {(item.active || 0) + 1} / {item.total}
+                </div>
+              )
+          }}
+        >
+          {this.albumPics.map((item: string, index: number) => (
+            <SwipeItem>
+              <Image
+                class={styles.swipeItemImg}
+                src={item}
+                onClick={() => this.onPreview(index)}
+                fit="cover"
+              />
+            </SwipeItem>
+          ))}
+        </Swipe>
+
+        <CellGroup border={false} class={[styles.goodsHead, 'mb12']}>
+          <Cell
+            center
+            border={false}
+            v-slots={{
+              title: () => (
+                <div class={styles.priceGroup}>
+                  <span class={styles.price}>
+                    <i>¥ </i>
+                    {moneyFormat(this.groupPrice)}
+                  </span>
+                  <del class={styles.delPrice}>¥ {moneyFormat(product.originalPrice)}</del>
+                </div>
+              )
+              // default: () => <div class={styles.stock}>销量4件</div>
+            }}
+          />
+          <Cell
+            center
+            border={false}
+            title={product.name}
+            titleClass={[styles.goodsName, 'van-ellipsis']}
+          />
+          {this.goodsInfo.showFree && (
+            <div class={styles.sectionTips}>
+              <Image src={iconGives} class={styles.iconGives} />
+              赠价值{this.goodsInfo.originalPrice}元乐器维保服务一年
+            </div>
+          )}
+        </CellGroup>
+
+        {this.detailMobileHtml && (
+          <div class={[styles.section]}>
+            <div class={styles.detail}>
+              <span>图文详情</span>
+            </div>
+
+            <div
+              class={[styles.photoDetail, 'msgWrap']}
+              onClick={this.onShowImg}
+              v-html={this.detailMobileHtml}
+            ></div>
+          </div>
+        )}
+      </div>
+    )
+  }
+})

+ 36 - 18
src/student/music-group/pre-apply/component/payment.tsx

@@ -54,6 +54,7 @@ export default defineComponent({
       selectGoodsInfo: {} as any,
       dialogStatus: false,
       dialogMessage: '',
+      dialogOrchestraStatus: false, // 是否为不同的乐团
       dialogConfig: {} as any
     })
 
@@ -81,9 +82,16 @@ export default defineComponent({
         })
         // 判断是否有待支付订单
         if (data.id) {
-          state.dialogMessage = '您有待支付的订单,是否继续支付'
-          state.dialogStatus = true
-          state.dialogConfig = data
+          if (data.orchestraId !== route.query.id) {
+            state.dialogMessage = '您在其它乐团存在待支付订单,取消后才可继续报名,是否确认取消?'
+            state.dialogStatus = true
+            state.dialogOrchestraStatus = true
+            state.dialogConfig = data
+          } else {
+            state.dialogMessage = '您有待支付的订单,是否继续支付'
+            state.dialogStatus = true
+            state.dialogConfig = data
+          }
         }
       } catch {
         //
@@ -663,23 +671,33 @@ export default defineComponent({
           title="提示"
           v-model:show={state.dialogStatus}
           message={state.dialogMessage}
-          confirmButtonText="继续支付"
+          confirmButtonText={state.dialogOrchestraStatus ? '确认取消' : '继续支付'}
           cancelButtonText="取消订单"
-          showCancelButton
-          onConfirm={() => {
-            const paymentConfig = state.dialogConfig.paymentConfig
-
-            router.push({
-              path: '/orderDetail',
-              query: {
-                pm: 1, // h5乐团报名
-                config: JSON.stringify({
-                  ...paymentConfig.paymentConfig,
-                  paymentType: paymentConfig.paymentType
-                }),
-                orderNo: paymentConfig.orderNo
+          showCancelButton={!state.dialogOrchestraStatus}
+          messageAlign={state.dialogOrchestraStatus ? 'left' : 'center'}
+          onConfirm={async () => {
+            if (state.dialogOrchestraStatus) {
+              try {
+                await request.post(
+                  '/api-student/userPaymentOrder/cancelPayment/' + state.dialogConfig.orderNo
+                )
+              } catch {
+                //
               }
-            })
+            } else {
+              const paymentConfig = state.dialogConfig.paymentConfig
+              router.push({
+                path: '/orderDetail',
+                query: {
+                  pm: 1, // h5乐团报名
+                  config: JSON.stringify({
+                    ...paymentConfig.paymentConfig,
+                    paymentType: paymentConfig.paymentType
+                  }),
+                  orderNo: paymentConfig.orderNo
+                }
+              })
+            }
           }}
           onCancel={async () => {
             try {

+ 3 - 1
src/student/music-group/pre-apply/order-detail.module.less

@@ -156,6 +156,7 @@
       display: flex;
       align-items: center;
       justify-content: space-between;
+      padding-top: 4px;
     }
 
     .brandName {
@@ -170,6 +171,7 @@
       font-size: 13px;
       color: #777;
       line-height: 18px;
+      max-width: 74%;
     }
   }
 }
@@ -332,4 +334,4 @@
       color: #ff4e19;
     }
   }
-}
+}

+ 21 - 17
src/student/music-group/pre-apply/order-detail.tsx

@@ -205,11 +205,15 @@ export default defineComponent({
         if (orderType.value === 'VIP') {
           state.paymentStatus = true
         } else {
-          // 直接去拉取微信支付
-          onConfirm({
-            payCode: 'payResult',
-            pay_channel: 'wx_pub'
-          })
+          if (browser().isApp) {
+            state.paymentStatus = true
+          } else {
+            // 直接去拉取微信支付
+            onConfirm({
+              payCode: 'payResult',
+              pay_channel: 'wx_pub'
+            })
+          }
         }
       }
     }
@@ -279,7 +283,6 @@ export default defineComponent({
           }
         })
         // console.log(data)
-        state.pay_channel = data.paymentChannel
         if (data.status !== 'WAIT_PAY' && data.status !== 'PAYING') {
           checkOrderTypeJump()
         } else {
@@ -373,10 +376,6 @@ export default defineComponent({
                     icon: () => <Image class={styles.img} src={goods.goodsUrl} />,
                     title: () => (
                       <div class={styles.goodsContent}>
-                        {/* <h2>{goods.goodsName}</h2>
-                        <Tag type="primary">{goods.brandName}</Tag>
-                        <p class={styles.goodsNum}>{goods.goodsType === 'VIP' ? '6个月' : 'x 1'}</p> */}
-
                         <h2>
                           <span>{goods.goodsName}</span>
                           <span class={styles.goodsNum}>
@@ -384,7 +383,7 @@ export default defineComponent({
                           </span>
                         </h2>
                         <div class={styles.goodsPrice}>
-                          {goods.goodsType === 'INSTRUMENT_INSPECT' ? (
+                          {/* {goods.goodsType === 'INSTRUMENT_INSPECT' ? (
                             <span>1-2次/学期</span>
                           ) : (
                             <Tag
@@ -394,6 +393,13 @@ export default defineComponent({
                             >
                               {goods.brandName}
                             </Tag>
+                          )} */}
+                          {goods.goodsType === 'INSTRUMENT_INSPECT' ? (
+                            <span class={[styles.model, 'van-multi-ellipsis--l2']}>1-2次/学期</span>
+                          ) : (
+                            <span class={[styles.model, 'van-multi-ellipsis--l2']}>
+                              {goods.description}
+                            </span>
                           )}
 
                           <span
@@ -407,19 +413,17 @@ export default defineComponent({
                                 <span class={styles.numPrefix}>¥ </span>
                                 {moneyFormat(goods.paymentCashAmount)}
                               </>
+                            ) : state.orderInfo.orchestraRegisterType === 'GROUP_BUY' &&
+                              goods.goodsType === 'INSTRUMENTS' ? (
+                              '免费提供'
                             ) : (
                               '免费'
                             )}
                           </span>
                         </div>
-                        <p class={styles.model}>{goods.description}</p>
+                        {/* <p class={styles.model}>{goods.description}</p> */}
                       </div>
                     )
-                    // value: () => (
-                    //   <span class={styles.cellPrice}>
-                    //     {goods.currentPrice > 0 ? '¥' + moneyFormat(goods.currentPrice) : '赠送'}
-                    //   </span>
-                    // )
                   }}
                 </Cell>
               ))}

+ 13 - 1
src/student/music-group/pre-goods-apply/index.module.less

@@ -2,6 +2,18 @@
   background: linear-gradient(to right, #F7E3AA 0%, #FFAC9B 100%);
   min-height: 100vh;
   position: relative;
+
+  .dialogSubmit {
+    :global {
+      .van-dialog__cancel {
+        color: #f67146;
+      }
+
+      .van-dialog__confirm {
+        color: #777777;
+      }
+    }
+  }
 }
 
 .headBg {
@@ -444,4 +456,4 @@
 .inspectPopup {
   width: calc(100% - 50px);
   border-radius: 16px;
-}
+}

+ 41 - 21
src/student/music-group/pre-goods-apply/index.tsx

@@ -84,6 +84,7 @@ export default defineComponent({
       musicPaymentType: '', // 乐团中对应支付方式
       dialogStatus: false,
       dialogMessage: '',
+      dialogOrchestraStatus: false, // 是否为不同的乐团
       dialogConfig: {} as any,
       orderInfo: {
         needPrice: 0,
@@ -335,9 +336,16 @@ export default defineComponent({
         })
         // 判断是否有待支付订单
         if (data.id) {
-          state.dialogMessage = '您有待支付的订单,是否继续支付'
-          state.dialogStatus = true
-          state.dialogConfig = data
+          if (data.orchestraId !== route.query.id) {
+            state.dialogMessage = '您在其它乐团存在待支付订单,取消后才可继续报名,是否确认取消?'
+            state.dialogStatus = true
+            state.dialogOrchestraStatus = true
+            state.dialogConfig = data
+          } else {
+            state.dialogMessage = '您有待支付的订单,是否继续支付'
+            state.dialogStatus = true
+            state.dialogConfig = data
+          }
         }
       } catch {
         //
@@ -957,15 +965,16 @@ export default defineComponent({
           message={
             '<p style="text-align: left;">请确认您准备的乐器和AI学练工具符合<span style="color: #F67146;font-weight: bold;">《乐团训练工具标准配置表》</span></p>'
           }
+          class={styles.dialogSubmit}
           allowHtml
-          confirmButtonText="确认"
-          cancelButtonText="返回"
+          confirmButtonText="返回"
+          cancelButtonText="确认"
           showCancelButton
           onConfirm={() => {
-            onRegisterUser()
+            state.submitStatus = false
           }}
           onCancel={async () => {
-            state.submitStatus = false
+            onRegisterUser()
           }}
         />
 
@@ -973,22 +982,33 @@ export default defineComponent({
           title="提示"
           v-model:show={state.dialogStatus}
           message={state.dialogMessage}
-          confirmButtonText="继续支付"
+          confirmButtonText={state.dialogOrchestraStatus ? '确认取消' : '继续支付'}
           cancelButtonText="取消订单"
-          showCancelButton
-          onConfirm={() => {
-            const paymentConfig = state.dialogConfig.paymentConfig
-            router.push({
-              path: '/orderDetail',
-              query: {
-                pm: 1, // h5乐团报名
-                config: JSON.stringify({
-                  ...paymentConfig.paymentConfig,
-                  paymentType: paymentConfig.paymentType
-                }),
-                orderNo: paymentConfig.orderNo
+          showCancelButton={!state.dialogOrchestraStatus}
+          messageAlign={state.dialogOrchestraStatus ? 'left' : 'center'}
+          onConfirm={async () => {
+            if (state.dialogOrchestraStatus) {
+              try {
+                await request.post(
+                  '/api-student/userPaymentOrder/cancelPayment/' + state.dialogConfig.orderNo
+                )
+              } catch {
+                //
               }
-            })
+            } else {
+              const paymentConfig = state.dialogConfig.paymentConfig
+              router.push({
+                path: '/orderDetail',
+                query: {
+                  pm: 1, // h5乐团报名
+                  config: JSON.stringify({
+                    ...paymentConfig.paymentConfig,
+                    paymentType: paymentConfig.paymentType
+                  }),
+                  orderNo: paymentConfig.orderNo
+                }
+              })
+            }
           }}
           onCancel={async () => {
             try {

+ 16 - 0
src/student/payment-result/index.module.less

@@ -10,6 +10,7 @@
     align-items: center;
     justify-content: center;
     color: #fff;
+
     .img {
       width: 52px;
       height: 52px;
@@ -44,22 +45,33 @@
     padding: 0 6px;
     border-radius: 4px;
   }
+
   :global {
     .van-cell {
       padding: 16px 17px;
       font-size: 16px;
       color: #333333;
     }
+
     .van-cell__value {
       flex: 0 auto;
     }
   }
 
+  .model {
+    padding-top: 3px;
+    font-size: 13px;
+    color: #777;
+    line-height: 18px;
+    max-width: 98%;
+  }
+
   .buyDetail {
     display: flex;
     align-items: center;
     justify-content: space-between;
     padding: 18px 18px 0;
+
     i {
       display: inline-block;
       margin-right: 6px;
@@ -68,6 +80,7 @@
       background: #ff8057;
       border-radius: 2px;
     }
+
     font-size: 16px;
     font-weight: 500;
     color: #333333;
@@ -77,6 +90,7 @@
       display: flex;
       align-items: center;
     }
+
     .refundBtn {
       font-size: 16px;
       color: #777777;
@@ -122,6 +136,7 @@
 
 .refundContent {
   padding: 0 20px 25px;
+
   .tips {
     font-size: 15px;
     color: #333333;
@@ -135,6 +150,7 @@
   font-weight: 600;
   color: #333333;
   line-height: 22px;
+
   span {
     color: #f44541;
   }

+ 5 - 2
src/student/payment-result/index.tsx

@@ -287,13 +287,16 @@ export default defineComponent({
                 title: () => (
                   <div class={styles.buyContent}>
                     <p class={styles.goodsTitle}>{goods.goodsName}</p>
-                    <Tag
+                    {/* <Tag
                       color="linear-gradient(135deg, #FF8C4A 0%, #FF531C 100%)"
                       textColor="#fff"
                       class={styles.brandName}
                     >
                       {goods.brandName}
-                    </Tag>
+                    </Tag> */}
+                    <span class={[styles.model, 'van-multi-ellipsis--l2']}>
+                      {goods.description}
+                    </span>
                   </div>
                 ),
                 value: () => <span>{goods.goodsType === 'VIP' ? '6个月' : 'x 1'}</span>