MrShi
2025-04-11 3a45da15c947c2d478a44a51bd0f926647b1b841
wx/pages/addition_subtraction/addition_subtraction.vue
@@ -21,9 +21,15 @@
                  <view class="label">投保年龄:</view>
                  <view class="value">{{info.minAge}}至{{info.maxAge}}周岁</view>
               </view>
               <view class="box_head_info_list_item">
               <view class="box_head_info_list_item" v-if="info.solutionType !== 1">
                  <view class="label">费用:</view>
                  <view class="value">{{info.price}}元</view>
                  <view class="value">
                     {{info.price}}元
                     <text v-if="info.timeUnit === 0">/天</text>
                     <text v-if="info.timeUnit === 1">/半月</text>
                     <text v-if="info.timeUnit === 2">/月</text>
                     <text v-if="info.timeUnit === 3">/年</text>
                  </view>
               </view>
            </view>
         </view>
@@ -44,6 +50,7 @@
                     <view class="top_a_tips" v-else>加保</view>
                  </view>
                  <view class="top_b">身份证号:{{item.idCard}}</view>
                  <view class="top_b" v-if="type ===0">备注:{{item.remark||''}}</view>
               </view>
               <view class="center"></view>
               <view class="bottom">
@@ -67,7 +74,7 @@
         <view style="width: 100%; height: calc(230rpx + env(safe-area-inset-bottom));"></view>
      </view>
      <view class="box_footer">
         <view class="box_footer_xy">
         <view class="box_footer_xy" @click="show = true">
            <image src="@/static/icon/ic_tips@2x.png" mode="widthFix"></image>
            <text>请阅读《投保须知》</text>
         </view>
@@ -93,7 +100,17 @@
            </view>
         </view>
         <view style="width: 100%; height: env(safe-area-inset-bottom); background-color: #ffffff;"></view>
         <u-toast ref="uToast"></u-toast>
      </view>
      <!-- 投保须知 -->
      <u-popup :show="show" round="20" :closeable="true" @close="show = false" mode="bottom">
         <view class="info">
            <view class="info_title">投保须知</view>
            <scroll-view scroll-y="true" class="info_nr">
               <view>{{fangan.specialAgreement}}</view>
            </scroll-view>
         </view>
      </u-popup>
   </view>
</template>
@@ -102,7 +119,9 @@
      data() {
         return {
            id: null,
            show: false,
            codeId: null,
            fangan: {},
            code: null,
            startDate: null,
            cyclePrice: null,
@@ -121,6 +140,13 @@
         this.cyclePrice = options.cyclePrice
         this.getDetails()
         uni.$on('add', (res) => {
            if (JSON.stringify(this.add).indexOf(res.model.idCard) !== -1) {
               this.$refs.uToast.show({
                  type: 'default',
                  message: `[${res.model.name}]人员身份证重复`
               })
               return
            }
            this.add.unshift(res.model)
         })
         uni.$on('del', (res) => {
@@ -130,7 +156,13 @@
      computed: {
         // 总金额
         totalPrice() {
            return (this.cyclePrice * (this.add.length + this.del.length)).toFixed(2)
            // return (this.cyclePrice * (this.add.length + this.del.length)).toFixed(2)
            var totalReductPrice = 0;
            this.del.forEach(item =>{
               totalReductPrice = totalReductPrice+item.fee
            })
            // return ((this.cyclePrice * this.add.length) - (this.cyclePrice * this.del.length)).toFixed(2)
            return ((this.cyclePrice * this.add.length) +totalReductPrice).toFixed(2)
         }
      },
      methods: {
@@ -159,13 +191,14 @@
            })
            let delDetailList = this.del.map(item => {
               return {
                  memberId: item.id,
                  duId: item.pqId,
                  duName: item.pqName,
                  idcardNo: item.idCard,
                  memberName: item.name,
                  workTypeName: item.gzName,
                  worktypeId: item.gzId,
                  fee: this.cyclePrice
                  fee: item.fee
               }
            })
            this.$u.api.applyChangeCreate({
@@ -176,14 +209,9 @@
               type: 0
            }).then(res => {
               if (res.code === 200) {
                  uni.showToast({
                     title: '提交成功',
                     icon: 'success'
                  })
                  uni.showToast({ title: '提交成功', icon: 'success' })
                  setTimeout(() => {
                     uni.navigateBack({
                        delta: 2
                     })
                     uni.navigateBack({ delta: 2 })
                  }, 1500)
               }
            })
@@ -218,9 +246,14 @@
             }
         },
         getDetails() {
            this.$u.api.insuranceApplyById(this.codeId)
            var that = this
            that.$u.api.insuranceApplyById(that.codeId)
               .then(res => {
                  this.info = res.data
                  that.info = res.data
                  that.$u.api.solutionsById(res.data.newVersionSolutionId)
                     .then(data => {
                        that.fangan = data.data
                     })
               })
         },
         jump() {
@@ -248,6 +281,60 @@
<style lang="scss" scoped>
   .box {
      width: 100%;
      .info {
         width: 100%;
         padding: 32rpx 30rpx;
         box-sizing: border-box;
         .info_title {
            width: 100%;
            text-align: center;
            font-weight: 500;
            font-size: 30rpx;
            color: #222222;
            font-style: normal;
         }
         .info_nr {
            width: 100%;
            max-height: 70vh;
            margin-top: 40rpx;
            font-size: 30rpx;
            color: black;
            white-space: pre-wrap;
         }
         .info_data {
            width: 100%;
            margin-top: 40rpx;
            .info_data_label {
               font-weight: 500;
               font-size: 32rpx;
               color: #222222;
               font-style: normal;
               margin-bottom: 20rpx;
            }
            .info_data_item {
               width: 100%;
               display: flex;
               align-items: center;
               margin-bottom: 20rpx;
               &:last-child {
                  margin-bottom: 0 !important;
               }
               .info_data_item_label {
                  flex-shrink: 0;
                  font-weight: 400;
                  font-size: 26rpx;
                  color: #777777;
                  font-style: normal;
               }
               .info_data_item_val {
                  font-weight: 400;
                  font-size: 26rpx;
                  color: #222222;
                  font-style: normal;
               }
            }
         }
      }
      .box_footer {
         width: 100%;
         position: fixed;
@@ -443,6 +530,7 @@
                        color: #FF971D;
                        font-style: normal;
                        margin-left: 8rpx;
                        box-sizing: border-box;
                     }
                     .top_a_tips {
                        width: 64rpx;