ZZJ
2022-07-15 5c0c6ad7ac6f28e970532af9936de638830f1161
bugxiufu
5个文件已添加
24个文件已修改
355 ■■■■ 已修改文件
public/images/register/phone1.png 补丁 | 查看 | 原始文档 | blame | 历史
public/images/register/phone2.png 补丁 | 查看 | 原始文档 | blame | 历史
public/images/register/psw1.png 补丁 | 查看 | 原始文档 | blame | 历史
public/images/register/psw2.png 补丁 | 查看 | 原始文档 | blame | 历史
src/Pool/PollData.ts 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/Pool/TreeData.ts 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/area.ts 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/camera.ts 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/clusterManage.ts 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/IndexHeader.vue 39 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/canvas/index.vue 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/router/index.js 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/scripts/httpRequest.ts 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/equipmentManagement/algorithmDetail/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/equipmentManagement/equipmentList/components/FormList.vue 72 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/hashrate/CameraManage/CameraRules/components/CameraBox.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/hashrate/CameraManage/CameraRules/components/LinkageCameraBox.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/hashrate/CameraManage/CameraRules/components/SdkBox.vue 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/hashrate/CameraManage/index.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/hashrate/HashManage/components/ClusterList.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/hashrate/HashManage/index.vue 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/personalCenter/components/OrderMng.vue 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/personalCenter/components/SubAccount.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/product/components/ProductContent.vue 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/product/index.vue 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/productDetail/components/UploadBox.vue 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/register/index.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/register/registerSuccess/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/register/resetPassword/index.vue 69 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
public/images/register/phone1.png
public/images/register/phone2.png
public/images/register/psw1.png
public/images/register/psw2.png
src/Pool/PollData.ts
@@ -156,7 +156,9 @@
    // 计算系统信息
     let res: any
    if(sessionStorage.getItem("clusterId")) {
      res  = await clusterSysInfo({});
      res  = await clusterSysInfo({
        clusterId: "",
      });
    }
    else {
      res  = await devicesSysInfo({
src/Pool/TreeData.ts
@@ -392,21 +392,21 @@
  }
  async fetchGbTree() {
    // 后门
    // const rsp: any = await getGB28181CameraTree({
    //   searchType: this.searchCamType,
    //   cameraName: this.searchInput
    // })
    const rsp: any = await getGB28181CameraTree({
      parentId: "",
      searchType: this.searchCamType,
      cameraName: this.searchInput
    })
    // if (rsp && rsp.success) {
    //   this.gb28181Data = rsp.data ? rsp.data : []
    //   if (this.gb28181Data && this.gb28181Data.length > 0) {
    //     this.sortTreeData(this.gb28181Data)
    //   }
    if (rsp && rsp.success) {
      this.gb28181Data = rsp.data.treeMenu ? rsp.data.treeMenu : []
      if (this.gb28181Data && this.gb28181Data.length > 0) {
        this.sortTreeData(this.gb28181Data)
      }
    //   this.gb28181DataPure = JSON.parse(JSON.stringify(this.gb28181Data))
    //   this.isFold(this.gb28181Data)
    // }
      this.gb28181DataPure = JSON.parse(JSON.stringify(this.gb28181Data))
      this.isFold(this.gb28181Data)
    }
  }
  async fetchTreeData() {
src/api/area.ts
@@ -12,8 +12,8 @@
export const getGB28181CameraTree = (query: any) => {
  return request({
    url: "/saas/api-s/gb28181/tree",
    method: "get",
    params: query
    method: "post",
    data: query
  });
};
src/api/camera.ts
@@ -81,6 +81,15 @@
  });
};
//刷新国标底图
export const updategb28181 = (data: any) => {
  return request({
    url: "/saas/api-s/gb28181/camera/capture",
    method: "post",
    data:data
  });
};
export const updateCameraTask = (params: any) => {
  return request({
    url: "/data/api-v/cameraTask/updateCameraTaskStatus",
src/api/clusterManage.ts
@@ -176,7 +176,7 @@
//获取集群下cpu
export const clusterSysInfo  = (data: any) => {
  return request({
    url: "/saas/api-d/device/clusterSysInfo",
    url: "/saas/api-d/device/userClusterInfo",
    method: "post",
    data
  })
src/components/IndexHeader.vue
@@ -8,7 +8,7 @@
        </router-link>
        <div class="title" @click="$router.push('/')">工业互联网平台</div>
        <div class="label" @click="$router.push('/')">首页</div>
        <div class="label">云服务</div>
        <!-- <div class="label">云服务</div> -->
        <div class="label" @click="$router.push('/manageCenter')">管理中心</div>
        <div class="label" @click="$router.push('/product')">应用商城</div>
      </div>
@@ -23,7 +23,9 @@
        >
          <div class="iconList" slot="suffix">
            <i class="search iconfont" v-if="!isShow">&#xe607;</i>
            <i class="search iconfont" v-if="isShow">&#xe607;</i>
            <i class="search iconfont" @click="search" v-if="isShow"
              >&#xe607;</i
            >
            <i class="del iconfont" v-if="isShow" @click="showInputBox(false)"
              >&#xe60f;</i
            >
@@ -116,14 +118,18 @@
      <div class="hotKey">
        <div class="title">热门搜索</div>
        <ul class="keyCard">
          <li class="keyItem" v-for="(item, index) in hotKeyArr" :key="index">
          <li
            class="keyItem"
            @click="jumpToSearch(item)"
            v-for="(item, index) in hotKeyArr"
            :key="index"
          >
            {{ item }}
          </li>
          x
        </ul>
      </div>
      <div class="historyKey">
      <!-- <div class="historyKey">
        <div class="title colorLight">历史搜索</div>
        <ul class="keyCard">
@@ -135,7 +141,7 @@
            {{ item }}
          </li>
        </ul>
      </div>
      </div> -->
    </div>
    <!-- 遮罩层 -->
@@ -165,7 +171,7 @@
    return {
      keyWord: "", //输入框内容
      isShow: false, //显示下拉框
      hotKeyArr: ["算法", "智能AI", "云服务", "管理中心", "实时音视频", "短信"], //热门关键词
      hotKeyArr: ["打电话", "离岗", "睡岗", "入侵", "离岗", "安全帽"], //热门关键词
      historyKeyArr: ["云服务", "算法", "管理服务", "应用"], //历史关键词
      isShowBox: false, //输入下拉框
      userInfo: null, //用户信息
@@ -178,6 +184,7 @@
    showInputBox(toggle) {
      this.isShow = toggle;
      this.isShowBox = toggle;
      this.keyWord = "";
      this.$emit("showInputBox", toggle);
    },
@@ -225,6 +232,24 @@
        },
      });
    },
    search() {
      this.$router.push({
        path: "/product",
        query: {
          keyWord: this.keyWord,
        },
      });
    },
    jumpToSearch(keyWord) {
      this.$router.push({
        path: "/product",
        query: {
          keyWord,
        },
      });
    },
  },
};
</script>
src/components/canvas/index.vue
@@ -42,7 +42,7 @@
</template>
<script>
import canvasDialog from "./Dialog";
import { updateSnapshot } from "@/api/camera";
import { updateSnapshot, updategb28181 } from "@/api/camera";
export default {
  name: "myCanvas",
  components: {
@@ -188,6 +188,30 @@
      if (this.currentCamera.cameraId) {
        let _this = this;
        if (_this.currentCamera.type === 1) {
          await updategb28181({
            id: _this.currentCamera.cameraId,
          }).then((res) => {
            if (res.data.cameraId === _this.currentCamera.cameraId) {
              _this.baseImg = "data:image/png;base64," + res.data.base64;
              _this.$emit(
                "refresh",
                _this.baseImg,
                _this.currentCamera.cameraName
              );
              _this.$forceUpdate();
              _this.$notify({
                type: "success",
                message: "底图已刷新",
              });
            }
          });
          this.$emit("changeLoading", false);
          return;
        }
        await updateSnapshot({
          id: _this.currentCamera.cameraId,
          name: _this.currentCamera.cameraName,
src/router/index.js
@@ -23,6 +23,11 @@
      ),
  },
  {
    path: "/register/resetPassword",
    component: () =>
      import(/* webpackChunkName: "about" */ "../views/register/resetPassword"),
  },
  {
    path: "/login",
    name: "login",
    component: () => import(/* webpackChunkName: "about" */ "../views/login"),
src/scripts/httpRequest.ts
@@ -33,6 +33,11 @@
      if(config.url === '/saas/api-s/camera/rule/getLinkRulesByCameraIds') {
         config.data.devId = sessionStorage.getItem('cameraDevId')
      }
      //后门
      if(config.url === '/saas/api-d/device/userClusterInfo') {
         config.data.clusterId = ''
      }
     
    }
src/views/equipmentManagement/algorithmDetail/index.vue
@@ -126,7 +126,7 @@
        {
          label: "应用总数",
          count: "",
          img: "/images/equipmentManagement/应用_红.png",
          img: "/images/equipmentManagement/app.png",
          color: "red",
        },
        {
src/views/equipmentManagement/equipmentList/components/FormList.vue
@@ -114,42 +114,54 @@
        <el-table-column label="操作" min-width="180">
          <template slot-scope="scope">
            <!-- 加入 -->
            <span
              class="iconfont option"
              @click="joinCluster(scope.row)"
            <el-tooltip
              content="加入集群"
              placement="top"
              v-if="!scope.row.clusterId"
              :class="{ disable: scope.row.isOnline != 1 }"
              >&#xe640;</span
            >
              <span
                class="iconfont option"
                @click="joinCluster(scope.row)"
                :class="{ disable: scope.row.isOnline != 1 }"
                >&#xe640;</span
              >
            </el-tooltip>
            <!-- 退出 -->
            <span
              class="iconfont option"
              @click="quitCluster(scope.row)"
              v-else
              :class="{ disable: scope.row.isOnline != 1 }"
              >&#xe63c;</span
            >
            <el-tooltip content="退出集群" placement="top" v-else>
              <span
                class="iconfont option"
                @click="quitCluster(scope.row)"
                :class="{ disable: scope.row.isOnline != 1 }"
                >&#xe63c;</span
              >
            </el-tooltip>
            <!-- 算法详情 -->
            <span
              class="iconfont option"
              :class="{ disable: scope.row.isOnline != 1 }"
              @click="algorithmDetail(scope.row)"
              >&#xe621;</span
            >
            <el-tooltip content="应用详情" placement="top">
              <span
                class="iconfont option"
                :class="{ disable: scope.row.isOnline != 1 }"
                @click="algorithmDetail(scope.row)"
                >&#xe621;</span
              >
            </el-tooltip>
            <!-- 设备详情 -->
            <span
              class="iconfont option"
              :class="{ disable: scope.row.isOnline != 1 }"
              @click="checkDetail(scope.row)"
              >&#xe619;</span
            >
            <el-tooltip content="设备详情" placement="top">
              <span
                class="iconfont option"
                :class="{ disable: scope.row.isOnline != 1 }"
                @click="checkDetail(scope.row)"
                >&#xe619;</span
              >
            </el-tooltip>
            <!-- 解绑 -->
            <span
              class="iconfont option"
              @click="Untying(scope.row)"
              :class="{ disable: scope.row.isOnline != 1 }"
              >&#xe617;</span
            >
            <el-tooltip content="解除绑定" placement="top">
              <span
                class="iconfont option"
                @click="Untying(scope.row)"
                :class="{ disable: scope.row.isOnline != 1 }"
                >&#xe617;</span
              >
            </el-tooltip>
          </template>
        </el-table-column>
      </el-table>
src/views/hashrate/CameraManage/CameraRules/components/CameraBox.vue
@@ -48,7 +48,7 @@
      </div>
      <div class="footer">
        <div class="button addModel">添加到模板</div>
        <!-- <div class="button addModel">添加到模板</div> -->
        <div class="button addRule" @click="addRule">添加新场景</div>
      </div>
    </div>
src/views/hashrate/CameraManage/CameraRules/components/LinkageCameraBox.vue
@@ -48,7 +48,7 @@
      </div>
    </div>
    <div class="footer">
      <div class="button addModel">添加到模板</div>
      <!-- <div class="button addModel">添加到模板</div> -->
      <div class="button addRule" @click="addRule">添加新场景</div>
    </div>
  </div>
src/views/hashrate/CameraManage/CameraRules/components/SdkBox.vue
@@ -4,15 +4,20 @@
    <div class="close iconfont" @click="close()">&#xe60f;</div>
    <div class="sdkList scroll">
      <img
      <el-tooltip
        v-for="(item, index) in this.TaskMange.list1"
        :key="index"
        :src="item.iconBlob"
        alt=""
        draggable="true"
        @dragstart="dragstart(item)"
        @dragend="dragleave"
      />
        :content="item.sdk_name"
        placement="top"
      >
        <img
          :src="item.iconBlob"
          alt=""
          draggable="true"
          @dragstart="dragstart(item)"
          @dragend="dragleave"
        />
      </el-tooltip>
    </div>
  </div>
</template>
@@ -20,6 +25,10 @@
<script>
import bus from "@/plugin/bus";
export default {
  created() {
    console.log(121212);
    console.log(this.TaskMange.list1);
  },
  methods: {
    close() {
      this.$emit("close");
src/views/hashrate/CameraManage/index.vue
@@ -148,10 +148,10 @@
    this.selectedNodes = [];
  },
  beforeDestroy() {
    clearInterval(this.intervalTimer);
    //this.TreeDataPool.treeActiveName = "camera";
    sessionStorage.removeItem("devId");
    sessionStorage.removeItem("clusterId");
    clearInterval(this.intervalTimer);
    //this.TreeDataPool.treeActiveName = "camera";
  },
  mounted() {
    this.$nextTick(() => {
src/views/hashrate/HashManage/components/ClusterList.vue
@@ -84,6 +84,7 @@
    },
    hiddenList() {
      this.showCluster = true;
      this.$emit("refreshCluster");
    },
    back() {
      this.$emit("back");
src/views/hashrate/HashManage/index.vue
@@ -77,6 +77,7 @@
      :list="deviceList"
      @chooseCluster="chooseCluster"
      @chooseDevice="chooseDevice"
      @refreshCluster="chooseCluster(ClusterId)"
      @back="back"
      :listType="listType"
    ></ClusterList>
@@ -88,7 +89,6 @@
import ClusterList from "./components/ClusterList";
import {
  userStatisticRunInfo,
  userSysInfo,
  userStatisticRun,
  clusterStatisticRunInfo,
  clusterSysInfo,
@@ -102,6 +102,8 @@
    ClusterList,
  },
  created() {
    sessionStorage.removeItem("devId");
    sessionStorage.removeItem("clusterId");
    this.getUserInfo();
    this.getUserDevice();
  },
@@ -120,6 +122,7 @@
      },
      deviceList: [],
      listType: "cluster",
      ClusterId: "",
    };
  },
  methods: {
@@ -160,7 +163,9 @@
            res1.data.stackRunningCount,
        };
      }
      const res2 = await userSysInfo();
      const res2 = await clusterSysInfo({
        clusterId: "",
      });
      if (res2 && res2.success) {
        this.systemInfo = {
          cpu: parseInt(res2.data.cpu.usedPercent),
@@ -215,7 +220,10 @@
            res1.data.stackRunningCount,
        };
      }
      const res2 = await clusterSysInfo({ clusterId: id });
      const res2 = await clusterSysInfo(
        //id
        { clusterId: "" }
      );
      if (res2 && res2.success) {
        this.systemInfo = {
          cpu: parseInt(res2.data.cpu.usedPercent),
@@ -283,6 +291,7 @@
    chooseCluster(id) {
      this.getClusterInfo(id);
      this.getClusterDevice(id);
      this.ClusterId = id;
    },
    back() {
      this.getUserInfo();
src/views/personalCenter/components/OrderMng.vue
@@ -93,9 +93,12 @@
        ></el-table-column>
        <el-table-column label="支付方式">
          <template slot-scope="scope">
            <div v-if="scope.row.payMethod == 0">线下汇款</div>
            <div v-if="scope.row.payMethod == 1">支付宝</div>
            <div v-if="scope.row.payMethod == 2">微信</div>
            <div v-if="scope.row.payMethod == 0">尚未支付</div>
            <div v-if="scope.row.payMethod == 1">线下汇款</div>
            <div v-if="scope.row.payMethod == 2">支付宝</div>
            <div v-if="scope.row.payMethod == 3">微信</div>
            <div v-if="scope.row.payMethod == 4">支付宝wap站</div>
            <div v-if="scope.row.payMethod == 5">0元支付</div>
          </template>
        </el-table-column>
        <el-table-column
@@ -264,9 +267,12 @@
      >
        <el-table-column prop="payMethod" label="支付渠道" min-width="80">
          <template slot-scope="scope">
            <div v-if="scope.row.payMethod == 0">尚未支付</div>
            <div v-if="scope.row.payMethod == 1">线下汇款</div>
            <div v-if="scope.row.payMethod == 2">支付宝</div>
            <div v-if="scope.row.payMethod == 3">微信</div>
            <div v-if="scope.row.payMethod == 4">支付宝wap站</div>
            <div v-if="scope.row.payMethod == 5">0元支付</div>
          </template>
        </el-table-column>
        <!-- <el-table-column prop="payTime" label="付款时间" align="center" min-width="150" ></el-table-column> -->
src/views/personalCenter/components/SubAccount.vue
@@ -135,11 +135,11 @@
      <el-form-item label="密码" prop="password">
        <el-input v-model="ruleForm.password" style="width: 350px"></el-input>
      </el-form-item>
      <el-form-item label="重置密码">
      <!--  <el-form-item label="重置密码">
        <el-checkbox v-model="ruleForm.isChangePwd"
          >首次登陆修改密码</el-checkbox
        >
      </el-form-item>
      </el-form-item> -->
      <el-form-item label="用户类型" prop="userType">
        <el-radio v-model="ruleForm.userType" :label="1">个人</el-radio>
        <el-radio v-model="ruleForm.userType" :label="2">公司</el-radio>
@@ -900,4 +900,4 @@
  color: #0065ff;
  border-color: #0065ff;
}
</style>
</style>
src/views/product/components/ProductContent.vue
@@ -79,6 +79,11 @@
import { findAllCenterProduct, findDicByType } from "@/api/product";
import productCard from "@/views/product/components/productCard";
export default {
  created() {
    if (this.$route.query.keyWord) {
      this.inputText = this.$route.query.keyWord;
    }
  },
  mounted() {
    this.getDic();
    this.getProductList();
src/views/product/index.vue
@@ -43,5 +43,11 @@
      color: #666;
    }
  }
  .IndexHeader ::v-deep {
    .el-input {
      display: none;
    }
  }
}
</style>
src/views/productDetail/components/UploadBox.vue
@@ -61,7 +61,13 @@
          <el-form-item label="备注" prop="reserved">
            <el-input type="textarea" v-model="item.reserved"></el-input>
          </el-form-item>
          <el-form-item label="付款凭证" prop="pic">
          <el-form-item
            label="付款凭证"
            :prop="`list[${index}].appendix`"
            :rules="[
              { required: true, message: '请上传凭证', trigger: 'blur' },
            ]"
          >
            <el-image
              class="preview"
              v-if="item.appendix"
src/views/register/index.vue
@@ -74,7 +74,7 @@
  width: 100%;
  min-width: 1280px;
  min-height: 960px;
  background: url("/images/register/注册.png");
  background: url("/images/register/register.png");
  background-size: 100% 100%;
  font-size: 14px;
@@ -90,13 +90,13 @@
  .registerHeart {
    margin: 0 auto;
    width: 1280px;
    width: 1200px;
    overflow: hidden;
    .registerForm {
      position: relative;
      overflow: hidden;
      margin-top: 60px;
      margin-top: 5vh;
      width: 660px;
      height: 730px;
      background: #ffffff;
src/views/register/registerSuccess/index.vue
@@ -70,7 +70,7 @@
    width: 660px;
    height: 450px;
    left: 320px;
    top: 262px;
    top: 22vh;
    text-align: center;
    background: #ffffff;
src/views/register/resetPassword/index.vue
New file
@@ -0,0 +1,69 @@
<template>
  <div class="resetPassword">
    <Header> </Header>
    <div class="container">
      <div class="title">
        <div class="left">请完善账户信息</div>
      </div>
      <div class="stepArea" v-if="step === 0">
        <img src="/images/register/" alt="" />
      </div>
    </div>
    <Footer></Footer>
  </div>
</template>
<script>
import Header from "@/components/Header";
import Footer from "@/components/Footer";
export default {
  components: {
    Header,
    Footer,
  },
};
</script>
<style lang="scss" scoped>
.resetPassword {
  position: absolute;
  height: 100%;
  width: 100%;
  min-width: 1280px;
  background: url("/images/register/success.png");
  background-size: 100% 100%;
  font-size: 14px;
  .title {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin: 0 30px 0 30px;
    height: 74px;
    border-bottom: 1px solid #e9ebee;
    .left {
      font-size: 18px;
      font-weight: 700;
    }
  }
  .container {
    position: absolute;
    width: 660px;
    height: 468px;
    left: 320px;
    top: 22vh;
    text-align: center;
    background: #ffffff;
  }
  .Footer {
    position: absolute;
    width: 100%;
    bottom: 0;
    background-color: #252525;
    color: #9b9ea0;
  }
}
</style>