lin
2026-05-27 2506d5d77b57575df2f0d33fa56d89895fdecbc0
feat:星享购 绑卡 倒计时优化+首页新增“退款政策”弹窗
5 files modified
91 ■■■■ changed files
components/textBox/index.vue 4 ●●●● patch | view | raw | blame | history
main.js 4 ●●●● patch | view | raw | blame | history
pages/index/index.vue 68 ●●●●● patch | view | raw | blame | history
pages/quanyi/add.vue 11 ●●●● patch | view | raw | blame | history
pages/quanyi/index.vue 4 ●●●● patch | view | raw | blame | history
components/textBox/index.vue
@@ -259,7 +259,7 @@
            :disabled="!flag || tiems > 0"
            @click="loadPopup"
            v-if="code"
            :custom-style="{ color: (!flag || tiems > 0 )? '#666' : '#FF1472',border:'none' }"
            :custom-style="{ color: (!flag || tiems > 0 )? '#666' : '#4766FE',border:'none' }"
        >
          确定
          <text v-show="tiems">({{ tiems }}S)</text>
@@ -269,7 +269,7 @@
            @click="loadPopup"
            v-if="getPlatformProtocolNewList.length"
            :custom-style="{
        color: (tiems > 0 || !reachBottom) ? '#666' : '#FF1472',
        color: (tiems > 0 || !reachBottom) ? '#666' : '#4766FE',
        border: 'none'
    }"
        >
main.js
@@ -8,8 +8,8 @@
Vue.config.productionTip = false
App.mpType = 'app'
// Vue.prototype.$webHost = 'https://rbb98765.zrgy-bbg.com'
Vue.prototype.$webHost = 'https://test-skfq.zrgy-bbg.com'
Vue.prototype.$webHost = 'https://rbb98765.zrgy-bbg.com'
// Vue.prototype.$webHost = 'https://test-skfq.zrgy-bbg.com'
Vue.prototype.$util = util
Vue.prototype.$baseUrl = 'https://xxg1996.xjjyxh.com'
Vue.prototype.$bank = [
pages/index/index.vue
@@ -123,6 +123,25 @@
        </view>
      </view>
    </uni-popup>
    <!-- 退改政策弹窗 -->
    <uni-popup maskBackgroundColor='rgba(0, 0, 0, 0.6)' ref="popupXY" type="center"  border-radius="10px" :isMaskClick="false" style="z-index: 666666666">
      <view style="background: white;padding: 40rpx;border-radius: 48rpx;height: 78vh;overflow: scroll;width: 660rpx;">
        <view style="text-align: center;font-weight: 700;font-size: 40rpx;color: #333333;margin-bottom: 28rpx;">新疆疆域星河科技有限公司(星享购)退款政策说明</view>
        <view class="txt">
            新疆疆域星河科技有限公司(下称“星享购”)已建立完善的客户服务与售后机制。在会员期内,如用户对服务或商品不满意,可随时通过官方客服热线(4006332282)提出异议、 申请终止服务或办理退款,我司客服团队将按既定流程及时处理,切实保障用户合法权益。现将退款政策具体流程说明如下:
        </view>
        <view class="txt">一、会员用户如对服务或商品不满意,可拨打星享购客服热线 4006332282 提出异议;</view>
        <view class="txt">二、若会员用户明确要求终止服务或办理退款,客服将提供以下两种方案供用户选择:
1、全额退款:会员用户确认商品完好(不影响二次销售),并将收到的实物商品返还至星享购;
2、折价退款:如实物权益商品已拆封使用、包装破损或影响二次销售,星享购将在扣除相应成本后,向会员用户退还剩余款项;</view>
       <view class="txt">三、客服与会员用户就退款事宜达成一致;</view>
        <view class="txt">四、星享购为会员用户办理会员终止,并将会员费用全额原路退回(一般 1 个工作日内到账);</view>
        <view class="txt">五、会员用户收到退款;</view>
        <view class="">六、退费流程结束。</view>
        <view :class="items?'items':''" style="text-align: center;margin-bottom: 40rpx;background: #4766FE;color: #FFFFFF;font-size: 32rpx;border-radius: 50rpx;padding: 28rpx;margin-top: 40rpx;" @click="agree">同意并继续  <text v-if="items">({{items}}S)</text></view>
        <view  style="text-align: center;font-size: 28rpx;margin-bottom: 20rpx;" @click="noAgree">不同意</view>
      </view>
    </uni-popup>
  </view>
</template>
@@ -171,6 +190,7 @@
        pageIndex: 1,
        pageSize: 10,
        goodsData: [],
        items:10, // 退改政策,倒计时
    }
  },
  onShow() {
@@ -187,6 +207,21 @@
  onLoad() {
    const systemInfo = uni.getSystemInfoSync();
    this.statusBarHeight = systemInfo.statusBarHeight || 30;
    // 退改政策,倒计时
   const ds = setInterval(() => {
      this.items -=1;
      if(!this.items){
        clearInterval(ds)
      }
    }, 1000 );
    setTimeout(() => {
     //  if(!_this.$route.query?.isApp && !uni.getStorageSync('popupXY') && sessionStorage.getItem('APP_ID')!=='b2e24d04-6a97-40a0-9894-a44237c674ac'){
        // this.$refs.popupXY.open()
     //  }
    if(!uni.getStorageSync('popupXY')){
        this.$refs.popupXY.open()
      }
    },200)
  },
  onReady() {
    // #ifdef APP-PLUS
@@ -196,6 +231,29 @@
  mounted() {
  },
  methods: {
      // 退改政策,同意
      agree(){
        if(this.items){
          return;
        }
        uni.setStorageSync('popupXY',1)
        this.$refs.popupXY.close()
      },
      // 不同意
      noAgree(){
        uni.clearStorageSync('popupXY')
        // #ifdef APP-PLUS
            if(plus.os.name.toLowerCase() === 'android') {
                plus.runtime.quit();
            } else {
                const threadClass = plus.ios.importClass("NSThread");
                const mainThread = plus.ios.invoke(threadClass,"mainThread");
                plus.ios.invoke(mainThread,"exit");
                // ios11
                plus.ios.import("UIApplication").sharedApplication().performSelector("exit");
            }
        // #endif
      },
    //获取分类商品
    catesGoods(){
        this.$util.post('Goods/getCatesGoods', {catesId: this.catesId, is_hot: this.is_hot, pageIndex: this.pageIndex, pageSize: this.pageSize}).then(res => {
@@ -445,4 +503,14 @@
    }
  }
}
// 退款政策
.txt{
  font-size: 28rpx;
  color: #333333;
  line-height: 48rpx;
  margin-bottom: 10rpx;
}
.items{
  background: #ccc !important;
}
</style>
pages/quanyi/add.vue
@@ -64,8 +64,8 @@
        fontSize: "30rpx",
        fontWeight: "bold",
      },
      bindStatus:false
      bindStatus:false,
        getSmsCodeTimer: null,
    };
  },
@@ -585,6 +585,7 @@
    },
      getSmsCode(){
        const that = this;
        clearInterval(that.getSmsCodeTimer);
        console.log(that.getPayBindCardInfo[0].paymentMethod);
        if(this.isCounting){
          return
@@ -709,11 +710,11 @@
            that.countText = `${count}s秒后重新获取`;
            const timer = setInterval(() => {
            that.getSmsCodeTimer = setInterval(() => {
              count--;
              that.countText = `${count}s秒后重新获取`;
              if (count <= 0) {
                clearInterval(timer);
                clearInterval(that.getSmsCodeTimer);
                that.isCounting = false;
                that.countText = '';
              }
@@ -1089,7 +1090,7 @@
                  <text>银行卡号</text>
                </view>
                <view class="inp_box">
                  <input type="number" maxlength="30"  @blur="validateAndCacheCardInfo" v-model="cardNumber" class="inp" placeholder="请输入银行卡号" />
                  <input type="number" maxlength="19"  @blur="validateAndCacheCardInfo" v-model="cardNumber" class="inp" placeholder="请输入银行卡号" />
                  <image @click="cardNumber=''" v-show="!bindStatus && cardNumber" :src="offIcon" style="width: 40rpx;height: 40rpx;position: absolute;right: 0rpx;top: 30rpx;"></image>
                </view>
pages/quanyi/index.vue
@@ -227,8 +227,8 @@
        >立即开通<text v-if="!tm">({{text}}秒)</text></button>
      </view>
      <view style="font-size: 24rpx;color: #666666;display: flex;align-items: center;margin: 40rpx 0;height: 50rpx;justify-content: center;">
        <uv-checkbox-group activeColor="#000218"   @change='isAgree=!isAgree'  style="">
          <uv-checkbox  :checked="isAgree ? true : false" iconColor="#fff" iconSize="22" size="22" :name="1" shape="circle">
        <uv-checkbox-group activeColor="#4766FE"   @change='isAgree=!isAgree'  style="">
          <uv-checkbox  :checked="isAgree ? true : false" iconColor="#fff" iconSize="14" size="14" :name="1" shape="circle">
            <text style="color: #20110E;">我已阅读并同意</text>
          </uv-checkbox>
        </uv-checkbox-group>