| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366 | <template>  <view class="safeArea">    <nav-bar title="预约考试"></nav-bar>    <view class="appointment">      <view class="appointmentItem appointmentHead">        <view class="imgBox"          ><image            :src="$method.splitImgHost(listData.applyUrl)"            mode="widthFix"          ></image        ></view>        <u-line color="#EEEEEE" />        <view class="title">{{ listData.applyName }}</view>      </view>      <view class="appointmentItem appointmentTime">        <view class="item">          <view class="labelName">报名时间:</view>          <view class="valName"            >{{ $method.timestampToTime(listData.applyStartTime) }} ~            {{ $method.timestampToTime(listData.applyEndTime) }}</view          >        </view>        <u-line color="#EEEEEE" />        <view class="item">          <view class="labelName">温馨提示:</view>          <text class="valName">{{ listData.applyIntroduce || "" }}</text>        </view>      </view>      <view class="appointmentItem appointmentMajor">        <view class="top">          <view class="labelName">报考专业:</view>          <view class="valName">{{ listData.major || "" }}</view>        </view>      </view>      <view class="appointmentItem appointmentInfo">        <view class="item">          <text class="labelName">            姓            <text style="opacity: 0">姓</text>            名:          </text>          {{ listData.realname }}        </view>        <u-line color="#EEEEEE" />        <view class="item">          <text class="labelName">身份证:</text>          {{ listData.idCard }}        </view>      </view>      <view class="appointmentItem appointmentType">        <view class="item">          <view class="labelName">学员类型:</view>          <u-radio-group placement="column" v-model="radioInfo">            <u-radio              :customStyle="{ marginBottom: '8px' }"              v-for="(item, index) in radiolist"              :key="index"              :name="item.name"              v-if="listData.applyStatus.indexOf(item.name) !== -1"            >              {{ item.label }}            </u-radio>          </u-radio-group>        </view>      </view>      <view class="btn" @click="next">下一步</view>    </view>    <!-- 弹框-->    <u-popup v-model="showTip" mode="center" class="tipModel">      <view class="tipBox">        <view class="title">温馨提示</view>        <view class="main">          <view class="item">您所报考的{{ listData.major || "" }}专业,</view>          <view class="item">考试次数已经用完。</view>          <view class="item">需要预约考试的补考学员,</view>          <view class="item">请先购买补考机会。</view>        </view>        <view class="btn">          <view class="btn1 cancel" @click="showTip = false">知道了</view>          <view class="btn1 submit" @click="submit">马上缴费</view>        </view>      </view>    </u-popup>  </view></template><script>import { mapGetters } from "vuex";export default {  data() {    return {      showTip: false,      radiolist: [        { name: "1", label: "非补考学员" },        { name: "2", label: "补考学员" },      ],      goodsId: 0,      gradeId: 0,      orderGoodsId: "",      applyStatus: "",      applyId: 0,      listData: {        applyStatus: [],      }, //页面数据      radioInfo: "",      goodsIdBK: null, //补考商品ID      reportStatus: 0, // 是否线上签署疫情防控承诺书, 1是,0否    };  },  onLoad(option) {    this.applyId = option.applyId || '';    this.goodsId = Number(option.goodsId);    this.gradeId = Number(option.gradeId);    this.orderGoodsId = Number(option.orderGoodsId) || "";      },  onShow() {    if (this.$method.isGoLogin()) { // 从公众号消息进来的没登录需要跳到登录页,登录后返回			return;		}    if (this.applyId) {      this.getInfo();    } else {      this.getAppoint()    }  },  methods: {    getAppoint() {      this.$http({        url: '/user/subscribe/listSubscribe',        methods: 'get',        data: {          orderGoodsId: this.orderGoodsId,          goodsId: this.goodsId,        }      }).then((res) => {        console.log('----listSubscribe-', res)        if (res.data.code == 200) {          this.applyId = res.data.data.applyId          this.getInfo()        }      })    },    getInfo() {      var data = {        goodsId: this.goodsId,        gradeId: this.gradeId,        orderGoodsId: this.orderGoodsId,        applyId: this.applyId,      };      // /apply/subscribe      this.$api.getApplysubscribe(data).then((res) => {        if (res.data.data.applyStatus) {          res.data.data.applyStatus = res.data.data.applyStatus.split(",");        }        this.listData = res.data.data;        this.reportStatus = res.data.data.reportStatus        console.log('reportStatus', this.reportStatus)      });    },    next() {      if (!this.radioInfo) {        uni.showToast({          title: "请选择您的考试身份",          icon: "none",        });        return;      }      let data = {        applyId: this.listData.applyId,        applyStatus: this.radioInfo,        goodsId: this.goodsId,        applyId: this.applyId,        gradeId: this.gradeId,        orderGoodsId: this.orderGoodsId,      };      this.$api.getApplysubscribeNext(data).then((res) => {        if (res.data.code === 500) {          uni.showModal({            content: res.data.msg,            showCancel: false,          });        } else {          if (res.data.data === 1 || res.data.data === 2) {            this.$navTo.togo("/pages2/appointment/order", {              applyId: this.listData.applyId,              applyStatus: this.radioInfo,              goodsId: this.goodsId,              dataId: res.data.data,              applyId: this.applyId,              orderGoodsId: this.orderGoodsId,              reportStatus: this.reportStatus,            });          }          if (res.data.data === 3) {            this.$api              .goodsList({                makeGoodsId: this.goodsId,                goodsType: 3,                orderGoodsId: this.orderGoodsId,              })              .then((res) => {                if (res.data.code === 200) {                  if (res.data.rows.length) {                    console.log(res.data.rows[0].goodsId);                    this.goodsIdBK = res.data.rows[0].goodsId;                  }                }              });            this.showTip = true;          }        }      });    },    submit() {      if (!this.goodsIdBK) {        uni.showModal({          showCancel: false,          content: "请联系管理员配置补考商品",        });      } else {        this.showTip = false;        this.$store.commit("updateBackApplyData", {          goodsId: this.goodsId,          orderGoodsId: this.orderGoodsId,          gradeId: this.gradeId,          applyId: this.applyId,        });        this.$navTo.togo("/pages2/order/confirm_list", {          id: this.goodsIdBK,          isBK: "1",          orderGoodsId: this.orderGoodsId,        });      }    },  },};</script><style>page {  background-color: #eaeef1;}.appointmentType .u-radio__label {  margin-left: 16rpx !important;  margin-right: 116rpx !important;}.tipModel .u-mode-center-box {  background-color: transparent !important;}</style><style scoped lang="scss">.appointment {  padding: 16rpx;  .appointmentItem {    background: #ffffff;    border-radius: 16rpx;    margin-bottom: 16rpx;    .item {      padding: 24rpx 0;    }    .labelName {      font-size: 28rpx;      font-family: PingFang SC;      font-weight: 500;      color: #999999;      margin-bottom: 16rpx;      line-height: 1;    }    .valName {      font-size: 30rpx;      font-family: PingFang SC;      font-weight: 500;      color: #333333;    }  }  .appointmentHead {    padding: 16rpx;    .imgBox {      overflow: hidden;      image {        border-radius: 24rpx;        display: block;        width: 100%;      }    }    .title {      padding: 24rpx 28rpx 31rpx 31rpx;      font-size: 30rpx;      font-weight: bold;      font-family: PingFang SC;      color: #333333;    }  }  .appointmentTime {    padding: 10rpx 30rpx 0;  }  .appointmentMajor {    padding: 34rpx 30rpx 24rpx;  }  .appointmentInfo {    padding: 8rpx 30rpx;  }  .appointmentType {    padding: 8rpx 30rpx 4rpx;    .u-radio__label {      margin-left: 16rpx;      margin-right: 116rpx;    }  }  .btn {    width: 526rpx;    height: 80rpx;    line-height: 80rpx;    background: #007aff;    border-radius: 40rpx;    font-size: 30rpx;    font-family: PingFang SC;    font-weight: bold;    color: #ffffff;    margin: 40rpx auto;    text-align: center;  }}.tipBox {  width: 640rpx;  padding: 30rpx 36rpx 40rpx;  background: #ffffff;  border-radius: 24rpx;  font-family: PingFang SC;  .title {    text-align: center;    font-size: 30rpx;    font-weight: bold;    color: #333333;    margin-bottom: 40rpx;  }  .main {    font-size: 30rpx;    font-weight: 500;    color: #666666;    line-height: 48rpx;    margin-bottom: 40rpx;  }  .btn {    display: flex;    justify-content: center;    .btn1 {      width: 200rpx;      height: 80rpx;      line-height: 80rpx;      text-align: center;      background: #f5f5f5;      border-radius: 40px;      font-size: 30rpx;      font-weight: bold;      color: #007aff;      margin: 0 20rpx;      &.submit {        background: #007aff;        color: #fff;      }    }  }}</style>
 |