122 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Vue
		
	
	
			
		
		
	
	
			122 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Vue
		
	
	
<template>
 | 
						|
  <view>
 | 
						|
    <detail-cell
 | 
						|
      v-if="modelValue.length > 0"
 | 
						|
      label="保障"
 | 
						|
      :value="state.paramsTitle"
 | 
						|
      @click="state.show = true"
 | 
						|
    >
 | 
						|
    </detail-cell>
 | 
						|
    <su-popup :show="state.show" round="10" :showClose="true" @close="state.show = false">
 | 
						|
      <view class="ss-modal-box">
 | 
						|
        <view class="modal-header">服务保障</view>
 | 
						|
        <scroll-view
 | 
						|
          class="modal-content"
 | 
						|
          scroll-y="true"
 | 
						|
          :scroll-with-animation="true"
 | 
						|
          :show-scrollbar="false"
 | 
						|
          @touchmove.stop
 | 
						|
        >
 | 
						|
          <view class="sale-item ss-flex ss-col-top" v-for="item in modelValue" :key="item.id">
 | 
						|
            <image
 | 
						|
              class="title-icon ss-m-r-14"
 | 
						|
              :src="sheep.$url.cdn(item.image)"
 | 
						|
              mode="aspectFill"
 | 
						|
            ></image>
 | 
						|
            <view class="title-box">
 | 
						|
              <view class="item-title ss-m-b-20">{{ item.name }}</view>
 | 
						|
              <view class="item-value">{{ item.description }}</view>
 | 
						|
            </view>
 | 
						|
          </view>
 | 
						|
        </scroll-view>
 | 
						|
        <view class="modal-footer ss-flex ss-row-center ss-m-b-20">
 | 
						|
          <button class="ss-reset-button save-btn ui-Shadow-Main" @tap="state.show = false"
 | 
						|
            >确定</button
 | 
						|
          >
 | 
						|
        </view>
 | 
						|
      </view>
 | 
						|
    </su-popup>
 | 
						|
  </view>
 | 
						|
</template>
 | 
						|
 | 
						|
<script setup>
 | 
						|
  import { reactive, computed } from 'vue';
 | 
						|
  import sheep from '@/sheep';
 | 
						|
  import detailCell from './detail-cell.vue';
 | 
						|
  const props = defineProps({
 | 
						|
    modelValue: {
 | 
						|
      type: Object,
 | 
						|
      default() {},
 | 
						|
    },
 | 
						|
  });
 | 
						|
 | 
						|
  const state = reactive({
 | 
						|
    show: false,
 | 
						|
    paramsTitle: computed(() => {
 | 
						|
      let nameArray = [];
 | 
						|
      props.modelValue.map((item) => {
 | 
						|
        nameArray.push(item.name);
 | 
						|
      });
 | 
						|
      return nameArray.join(' · ');
 | 
						|
    }),
 | 
						|
  });
 | 
						|
</script>
 | 
						|
 | 
						|
<style lang="scss" scoped>
 | 
						|
  .ss-modal-box {
 | 
						|
    border-radius: 30rpx 30rpx 0 0;
 | 
						|
    max-height: 730rpx;
 | 
						|
 | 
						|
    .modal-header {
 | 
						|
      position: relative;
 | 
						|
      padding: 30rpx 20rpx 40rpx;
 | 
						|
      font-size: 36rpx;
 | 
						|
      font-weight: bold;
 | 
						|
    }
 | 
						|
 | 
						|
    .modal-content {
 | 
						|
      padding: 0 30rpx;
 | 
						|
      max-height: 500rpx;
 | 
						|
      box-sizing: border-box;
 | 
						|
 | 
						|
      .sale-item {
 | 
						|
        margin-bottom: 44rpx;
 | 
						|
 | 
						|
        .title-icon {
 | 
						|
          width: 36rpx;
 | 
						|
          height: 36rpx;
 | 
						|
        }
 | 
						|
		.title-box{
 | 
						|
			flex: 1;
 | 
						|
		}
 | 
						|
 | 
						|
        .item-title {
 | 
						|
          font-size: 28rpx;
 | 
						|
          font-weight: 500;
 | 
						|
          line-height: normal;
 | 
						|
        }
 | 
						|
 | 
						|
        .item-value {
 | 
						|
          font-size: 26rpx;
 | 
						|
          font-weight: 400;
 | 
						|
          color: $dark-9;
 | 
						|
          line-height: 42rpx;
 | 
						|
        }
 | 
						|
      }
 | 
						|
    }
 | 
						|
 | 
						|
    .modal-footer {
 | 
						|
      height: 120rpx;
 | 
						|
      background-color: #fff;
 | 
						|
 | 
						|
      .save-btn {
 | 
						|
        width: 710rpx;
 | 
						|
        height: 80rpx;
 | 
						|
        border-radius: 40rpx;
 | 
						|
        background: linear-gradient(90deg, var(--ui-BG-Main), var(--ui-BG-Main-gradient));
 | 
						|
        color: $white;
 | 
						|
      }
 | 
						|
    }
 | 
						|
  }
 | 
						|
</style>
 |