zhangzengfei
2022-07-20 4a800a8fc83c6bd1f86a8e847b079a51a7532c09
src/pages/desktop/index/components/Desktop.vue
@@ -12,7 +12,9 @@
    <div class="warn-tag" v-if="showFreeVersion">
      <span v-if="!snExpire" class="text"
        >试用版尚未激活,仅支持使用部分功能,如需使用全部功能,请尽快激活。</span
        >{{
          versionName
        }}尚未激活,仅支持使用部分功能,如需使用全部功能,请尽快激活。</span
      >
      <span v-else class="text">SmartAIOS 试用期已到期,请您尽快激活系统</span>
      <div>
@@ -51,7 +53,6 @@
        <div class="login-content">
          <el-form
            :model="phone"
            status-icon
            :rules="phoneCodeRule"
            :validate-on-rule-change="false"
            ref="phoneLogin"
@@ -92,13 +93,11 @@
        </span>
      </el-dialog>
      <div class="ver">
        <span class="ver-text">版本:</span>{{ versionName }}
        <span class="ver-text">版本:</span>SmartAI{{ versionName }}
      </div>
      <div class="ver">
        <span class="ver-text">状态:</span>{{ versionState }}
      </div>
      <div class="ver"><span class="ver-text">状态:</span>尚未激活</div>
      <el-divider></el-divider>
      <div class="info" v-if="versionName == 'SmartAI正式版'">
      <div class="info" v-if="versionName == '正式版'">
        <span style="font-weight: bold; font-size: 18px">· </span>
        <span style="font-size: 14px; line-height: 21px; color: #5f5f5f">
          如果您已连接到Internet并且已购买产品密钥,可以尝试验证SmartAI商城账户激活系统。
@@ -109,13 +108,13 @@
          </el-button>
        </div>
      </div>
      <div class="info" v-if="versionName == 'SmartAI正式版'">
      <div class="info" v-if="versionName == '正式版'">
        <span style="font-weight: bold; font-size: 18px">· </span>
        <span style="font-size: 14px; line-height: 21px; color: #5f5f5f">
          如果您未连接Internet或激活失败,可尝试离线激活,请用手机扫码购买产品或验证SmartAI商城账户激活系统。
        </span>
      </div>
      <div class="info" v-if="versionName !== 'SmartAI正式版'">
      <div class="info" v-if="versionName !== '正式版'">
        <span style="font-weight: bold; font-size: 18px">· </span>
        <span style="font-size: 14px; line-height: 21px; color: #5f5f5f">
          如果还没有产品密钥,你可以使用手机扫码或前往此链接
@@ -157,16 +156,18 @@
      <!-- <el-divider></el-divider> -->
      <span slot="footer" class="dialog-footer">
        <!-- v-if="!snExpire && versionName != 'SmartAI正式版'" -->
        <div class="btns">
          <el-button class="cancel" @click="activeDialog = false"
          <el-button
            v-if="!snExpire && versionName != '正式版'"
            class="cancel"
            @click="activeDialog = false"
            >继续试用</el-button
          >
          <el-button
            class="cancel"
            v-if="snExpire && versionName != 'SmartAI正式版'"
            v-if="snExpire && versionName != '正式版'"
            @click="$emit('quit')"
            >退出登录
            >退出登陆
          </el-button>
          <el-button class="ok" type="primary" @click="activateVersion"
            >激活</el-button
@@ -186,7 +187,7 @@
    >
      <div class="tip">
        <i class="el-icon-info"></i>
        <span> 请检查订单信息,确认无误后再激活系统。 </span>
        <span>请检查订单信息是否正确,确认无误后再激活系统</span>
      </div>
      <div class="order-list" v-if="orderList.length">
@@ -205,18 +206,33 @@
              <span>{{ item.orderMoney }} 元</span>
            </div>
            <div class="desc">
              <div>订单生成日期:{{ item.createTime }}</div>
              <div>产品名称:{{ prod.productName }}</div>
              <div>产品类型:{{ prod.productTypeName }}</div>
              <div>系统版本:{{ prod.edition }}</div>
              <div>通道数量:{{ prod.ChCount }}</div>
              <div>摄像机数量:{{ prod.cameraCount }}</div>
              <div>服务时长:{{ prod.serveYear }} 年</div>
              <div>授权数量:{{ prod.authCount }}</div>
              <div>
                起止服务时间 :{{
                  startAndEnd(item.createTime, prod.serveYear)
                }}
              </div>
            </div>
          </div>
        </div>
      </div>
      <div class="no-order-list" v-else>抱歉,没有查询到订单。</div>
      <div class="no-order-list" v-else>
        {{
          loadingOrders ? "订单加载中,请稍后..." : "抱歉,未查询到订单信息!"
        }}
      </div>
      <span slot="footer" class="dialog-footer">
        <el-button @click="$emit('quit')">退出登录</el-button>
        <el-button type="primary" @click="activeVerByOrd">激活</el-button>
        <div class="btns">
          <el-button class="cancel" @click="$emit('quit')">退出登录</el-button>
          <el-button class="ok" type="primary" @click="activeVerByOrd"
            >激活</el-button
          >
        </div>
      </span>
    </el-dialog>
  </div>
@@ -250,7 +266,6 @@
      innerDialog: false,
      versionName: "",
      codeMsg: "获取验证码",
      versionState: "尚未激活",
      secrectKey: "",
      curOrder: {},
      curProd: {},
@@ -259,6 +274,7 @@
      snExpire: false,
      timer: null,
      token: "",
      loadingOrders: true,
      orderList: [],
      phone: {
        phoneNum: "",
@@ -276,6 +292,11 @@
    this.validateSn();
  },
  methods: {
    startAndEnd(createTime, serveYear) {
      let year = createTime.split("-")[0];
      let endTime = parseInt(year) + serveYear + createTime.slice(4);
      return createTime + " - " + endTime;
    },
    activeVerByOrd() {
      activeByOrder({
        token: this.token,
@@ -295,6 +316,7 @@
    validateSn() {
      getSN().then((res) => {
        this.snExpire = res.data.expire;
        this.activeDialog = res.data.expire;
        this.showFreeVersion = res.data.sn == "" || res.data.expire;
        this.versionName = this.getVersionName(res.data.edition);
      });
@@ -314,24 +336,23 @@
      }
    },
    choseProd(order, prod) {
      debugger;
      this.curOrder = order;
      this.curProd = prod;
    },
    getVersionName(s) {
      switch (s) {
        case "alpha":
          return "SmartAI内测版";
          return "内测版";
        case "beta":
          return "SmartAI公测版";
          return "公测版";
        case "trial":
          return "SmartAI试用版";
          return "试用版";
        case "test":
          return "SmartAI测试版";
          return "测试版";
        case "official":
          return "SmartAI正式版";
          return "正式版";
        default:
          return "SmartAI定制版";
          return "定制版";
          break;
      }
    },
@@ -345,11 +366,13 @@
          loginShopInSmart(param).then((res) => {
            this.innerDialog = true;
            this.activeDialog = false;
            this.token = res.data.access_token;
            getShopOrderList({ token: this.token })
              .then((res) => {
                if (res.code == 200) {
                  this.orderList = res.data.list;
                  this.loadingOrders = false;
                } else {
                  this.$notify.error("获取订单列表失败");
                }
@@ -399,7 +422,6 @@
      }
      activateVersion({ code: this.secrectKey.trim() })
        .then((res) => {
          debugger;
          if (res.code == 200) {
            this.$notify.success("激活成功");
            this.validateSn();
@@ -420,7 +442,6 @@
      this.activeDialog = true;
    },
    uploadKey(params) {
      debugger;
      let param = new FormData();
      param.append("code", params.file);
      uploadKey(param).then(
@@ -540,10 +561,10 @@
.el-dialog.my-account {
  border-radius: 24px;
  .btns {
   display: flex;
    display: flex;
    justify-content: right;
    .cancel {
         width: 76px;
      width: 76px;
      height: 40px;
      cursor: pointer;
      border-radius: 20px;
@@ -551,7 +572,6 @@
      font-size: 14px;
      color: var(--colorCard);
      border-color: var(--colorCard) !important;
      margin-right: 12px;
      display: flex;
      align-items: center;
      justify-content: center;
@@ -606,10 +626,11 @@
    }
  }
  .el-dialog__footer {
    padding: 30px ;
    padding: 30px;
    text-align: left;
    box-sizing: border-box;
    box-shadow: 0px -1px 0px rgb(0 0 0 / 8%);}
    box-shadow: 0px -1px 0px rgb(0 0 0 / 8%);
  }
  .el-dialog__header {
    padding: 14px 20px 13px;
    text-align: center;
@@ -669,19 +690,58 @@
  }
}
.el-dialog.my-order {
  border-radius: 24px;
  .el-dialog__body {
    padding: 22px 20px;
  }
  .btns {
    display: flex;
    justify-content: right;
    .cancel {
      width: 140px;
      height: 40px;
      cursor: pointer;
      border-radius: 20px;
      line-height: 40px;
      font-size: 14px;
      color: var(--colorCard);
      border-color: var(--colorCard) !important;
      display: flex;
      align-items: center;
      justify-content: center;
    }
    .ok {
      width: 140px;
      height: 40px;
      cursor: pointer;
      border-radius: 20px;
      background-color: var(--colorCard) !important;
      border-color: var(--colorCard) !important;
      color: #fff;
      line-height: 40px;
      font-size: 14px;
      display: flex;
      align-items: center;
      justify-content: center;
    }
  }
  .tip {
    width: auto;
    height: 40px;
    background: rgb(145, 213, 255, 0.2);
    box-sizing: border-box;
    border: 1px rgb(145, 213, 255) solid;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    padding: 0 10px;
    border-radius: 5px;
    color: #5f5f5f;
    line-height: 20px;
    font-weight: bold;
    -ms-flex-align: center;
    align-items: center;
    justify-content: center;
    i {
      margin-right: 5px;
      font-size: 16px;
      font-size: 24px;
      color: var(--colorCard);
    }
    span {
@@ -698,10 +758,8 @@
    height: 550px;
    overflow-y: auto;
    .order-card {
      height: 150px;
      background: #fff;
      margin-bottom: 15px;
      border-radius: 8px;
      box-shadow: 0px 0px 4px rgb(0 0 0 / 25%);
      .head {
@@ -719,10 +777,12 @@
        display: flex;
        flex-direction: column;
        justify-content: space-evenly;
        height: 110px;
        text-align: left;
        box-sizing: border-box;
        padding: 0 20px;
        font-size: 13px;
        padding: 8px 20px;
        line-height: 20px;
      }
    }
  }