k94314517
2025-05-19 16e8c7adbee6c9ee9bac09a80d44d3bfd3fe2f0c
wx/pages/details_dispatch_unit/details_dispatch_unit.vue
@@ -17,6 +17,7 @@
                  <image v-if="info.status === 3 || info.status === 4" src="@/static/icon/progress_shenqingtuihui@2x.png" mode="widthFix"></image>
                  <image v-if="info.status === 5 || info.status === 8" src="@/static/icon/progress_yituihui@2x.png" mode="widthFix"></image>
                  <image v-if="info.status === 6" src="@/static/icon/progress_yiguanbi@2x.png" mode="widthFix"></image>
                  <image v-if="info.status === 7" src="@/static/icon/progress_daichudan@2x.png" mode="widthFix"></image>
               </view>
            </template>
            <view class="box_info_center">
@@ -49,6 +50,9 @@
                     <view class="item_head_bottom">
                        身份证号:{{item.memberIdcardNo}}
                     </view>
                     <view class="item_head_bottom">
                        备注:{{item.remark||''}}
                     </view>
                  </view>
                  <view class="item_x"></view>
                  <view class="item_list">
@@ -80,7 +84,7 @@
      <template v-if="info && info.solutionType === 0">
         <!-- 已生效 -->
         <view class="details_footer" v-if="info.status === 2">
            <u-button type="primary" shape="circle" color="#437CB3" text="查看申请单" @click="seePdf(info.applyFile.fileurlFull)"></u-button>
            <u-button type="primary" shape="circle" color="#437CB3" text="查看申请单" @click="seePdf(info.applyUnitFile.fileurlFull)"></u-button>
            <view style="width: 44rpx; height: 50rpx;"></view>
            <u-button type="primary" shape="circle" color="#437CB3" text="查看批单" @click="seePdf(info.pidanFile.fileurlFull)"></u-button>
         </view> 
@@ -88,32 +92,38 @@
         <view class="details_footer" v-if="info.status === 1">
            <u-button type="primary" shape="circle" color="#437CB3" @click="show = true" :plain="true" text="申请退回"></u-button>
            <view style="width: 44rpx; height: 50rpx;"></view>
            <u-button type="primary" shape="circle" color="#437CB3" text="查看申请单" @click="seePdf(info.applyFile.fileurlFull)"></u-button>
            <u-button type="primary" shape="circle" color="#437CB3" text="查看申请单" @click="seePdf(info.applyUnitFile.fileurlFull)"></u-button>
         </view>
         <!-- 待签署 -->
         <view class="details_footer" v-if="info.status === 0">
            <u-button type="primary" shape="circle" color="#437CB3" @click="show = true" :plain="true" text="申请退回"></u-button>
            <view style="width: 44rpx; height: 50rpx;"></view>
            <u-button type="primary" shape="circle" color="#437CB3" text="签署申请单" @click="openmessage(2)"></u-button>
            <u-button type="primary" shape="circle" color="#437CB3" :loading="loading" text="签署申请单" @click="openmessage(2)"></u-button>
         </view>
         <!-- 已退回 -->
         <view class="details_footer" v-if="info.status === 5 || info.status === 8">
            <u-button type="primary" shape="circle" color="#437CB3" @click="show2 = true" :plain="true" text="关闭订单"></u-button>
            <u-button type="primary" shape="circle" color="#437CB3" @click="show2 = true" :plain="true" text="关闭申请"></u-button>
         </view>
      </template>
      <!-- 委托 -->
      <template v-if="info && info.solutionType === 1">
         <!-- 已生效 -->
         <view class="details_footer" v-if="info.status === 2">
            <u-button type="primary" shape="circle" color="#437CB3" text="查看申请单" @click="seePdf(info.applyUnitFile.fileurlFull)"></u-button>
            <view style="width: 44rpx; height: 50rpx;"></view>
            <u-button type="primary" shape="circle" color="#437CB3" text="查看批单" @click="seePdf(info.pidanFile.fileurlFull)"></u-button>
         </view>
         <!-- 待审核/待出单/投保中 -->
         <view class="details_footer" v-if="info.status === 1 || info.status === 9 || info.status === 7">
            <u-button type="primary" shape="circle" color="#437CB3" text="查看申请单" @click="seePdf(info.applyFile.fileurlFull)"></u-button>
            <u-button type="primary" shape="circle" color="#437CB3" text="查看申请单" @click="seePdf(info.applyUnitFile.fileurlFull)"></u-button>
         </view>
         <!-- 已退回 -->
         <view class="details_footer" v-if="info.status === 5">
            <u-button type="primary" shape="circle" color="#437CB3" @click="show2 = true" :plain="true" text="关闭订单"></u-button>
            <u-button type="primary" shape="circle" color="#437CB3" @click="show2 = true" :plain="true" text="关闭申请"></u-button>
         </view>
         <!-- 待签署 -->
         <view class="details_footer" v-if="info.status === 0">
            <u-button type="primary" shape="circle" color="#437CB3" text="签署申请单" @click="openmessage(2)"></u-button>
            <u-button type="primary" shape="circle" color="#437CB3" :loading="loading" text="签署申请单" @click="openmessage(2)"></u-button>
         </view>
      </template>
      <!-- 申请退回确认弹窗 -->
@@ -122,7 +132,7 @@
      </u-modal>
      <!-- 关闭确认弹窗 -->
      <u-modal :show="show2" title="温馨提示" :showCancelButton="true" cancelText="我再想想" confirmColor="#437CB3" @cancel="cancel2" @confirm="confirm2">
         确认关闭订单?
         确认关闭申请?
      </u-modal>
      <!-- 签署投保单验证码弹窗 -->
      <u-modal :show="show1" title="获取验证码" :showCancelButton="true" confirmColor="#437CB3" @cancel="cancel1" @confirm="confirm1">
@@ -144,6 +154,7 @@
</template>
<script>
   import { mapState } from 'vuex'
   export default {
      data() {
         return {
@@ -165,7 +176,9 @@
            code: '',
            num: 0,
            error: false,
            timer: null
            timer: null,
            loading: false
         };
      },
      onLoad(option) {
@@ -175,61 +188,90 @@
      onReachBottom() {
         this.getList()
      },
      computed: {
         ...mapState(['userInfo'])
      },
      methods: {
         send () {
            this.$u.api.sendSms({
               phone: this.userInfo.mobile
            }).then(res => {
               if (res.code === 200) {
                  this.num = 60
                  this.setTime()
               }
            })
         },
         setTime () {
            this.timer = setInterval(() => {
               if (this.num === 0) {
                  clearInterval(this.timer)
                  this.timer = null
                  return
               }
               this.num = this.num - 1
            }, 1000)
         },
         // 签署
         confirm1() {
            if (!this.code) {
               this.error = 1
               return
            }
            // if (!this.code) {
            //    this.error = 1
            //    return
            // }
            this.loading = true
            // 签署投保单
            if (this.type === 1) {
               this.$u.api.validateCode({
                  code: this.code
               }).then(res => {
                  if (res.code === 200) {
                     this.error = ''
                     this.show1 = false
                     // this.error = ''
                     // this.show1 = false
                     this.$u.api.getJiajianBaoSignLink({ id: this.info.id })
                        .then(url => {
                           this.loading = false
                           if (url.code === 200) {
                              uni.navigateTo({
                                 url: `/pages/webView/webView?url=${encodeURIComponent(url.data)}`
                              })
                           }
                        })
                  } else {
                     this.error = 2
                  }
                  //  else {
                  //    this.error = 2
                  // }
               })
               this.show1 = false
               // this.show1 = false
            // 申请单
            } else if (this.type === 2) {
               this.$u.api.getChangeMemberListOnlineSignLink({
                  businessId: this.info.id,
                  code: this.code
               }).then(res => {
                  this.loading = false
                  if (res.code === 200) {
                     this.error = ''
                     this.show1 = false
                     // this.error = ''
                     // this.show1 = false
                     uni.navigateTo({
                        url: `/pages/webView/webView?url=${encodeURIComponent(res.data)}`
                     })
                  } else {
                     this.error = 2
                  }
                  //  else {
                  //    this.error = 2
                  // }
               })
            }
         },
         // 打开发送验证码弹窗
         openmessage(type) {
            this.code = ''
            clearInterval(this.timer)
            this.error = ''
            this.timer = null
            this.num = 0
            // this.code = ''
            // clearInterval(this.timer)
            // this.error = ''
            // this.timer = null
            // this.num = 0
            this.type = type
            this.show1 = true
            this.confirm1()
            // this.show1 = true
         },
         // 查看pdf
         seePdf(url) {
@@ -308,7 +350,7 @@
         returnStyle(type) {
            if ([2].includes(type)) {
               return 'linear-gradient(#97DDC5 0%, #F7F7F7 100%);'
            } else if ([1,0].includes(type)) {
            } else if ([1,0,7].includes(type)) {
               return 'linear-gradient( 180deg, #FBC88C 0%, #F7F7F7 100%);'
            } else if ([3,4,5,8,6].includes(type)) {
               return ''
@@ -317,7 +359,7 @@
         returnStyle1(type) {
            if ([2].includes(type)) {
               return 'linear-gradient( 180deg, #E5F7F1 0%, rgba(255,255,255,0) 100%)'
            } else if ([1,0].includes(type)) {
            } else if ([1,0,7].includes(type)) {
               return 'linear-gradient( 180deg, #FFF2E3 0%, rgba(255,255,255,0) 100%);'
            } else if ([3,4,5,8,6].includes(type)) {
               return '#ffffff'
@@ -541,12 +583,11 @@
         position: fixed;
         bottom: 0;
         left: 0;
         padding: 10rpx 30rpx;
         padding: 10rpx 30rpx calc(env(safe-area-inset-bottom) + 10rpx) 30rpx;
         box-sizing: border-box;
         background-color: #ffffff;
         display: flex;
         align-items: center;
         padding-bottom: env(safe-area-inset-bottom);
      }
      .code {
         width: 100%;