k94314517
2025-05-19 cdd6551b190b981b807a3b95e9635c559ccc769d
wx/pages/addition_subtraction/addition_subtraction.vue
@@ -50,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">
@@ -73,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>
@@ -99,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>
@@ -108,7 +119,9 @@
      data() {
         return {
            id: null,
            show: false,
            codeId: null,
            fangan: {},
            code: null,
            startDate: null,
            cyclePrice: null,
@@ -127,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) => {
@@ -137,7 +157,12 @@
         // 总金额
         totalPrice() {
            // return (this.cyclePrice * (this.add.length + this.del.length)).toFixed(2)
            return ((this.cyclePrice * this.add.length) - (this.cyclePrice * 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: {
@@ -166,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({
@@ -183,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)
               }
            })
@@ -225,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() {
@@ -255,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;
@@ -450,6 +530,7 @@
                        color: #FF971D;
                        font-style: normal;
                        margin-left: 8rpx;
                        box-sizing: border-box;
                     }
                     .top_a_tips {
                        width: 64rpx;