管道基础大数据平台系统开发-【前端】-新系統界面
Surpriseplus
2023-08-21 dc412901096a7ea7d65d1c7e097d7f9043073d93
src/views/datamanage/uploadmanage.vue
@@ -32,13 +32,24 @@
      </div>
      <div
        class="tabs_pane"
        @click="setTabsChange(4)"
      >
        <div
          class="tabsSpan"
          :class="{ changetabs : active == 'fourth'}"
        >
          <span> {{$t('dataManage.uploadObj.publishTask')}}</span>
        </div>
      </div>
      <div
        class="tabs_pane"
        @click="setTabsChange(3)"
      >
        <div
          class="tabsSpan"
          :class="{ changetabs : active == 'third'}"
        >
          <span> {{$t('dataManage.uploadObj.modelAttachMount')}}</span>
          <span> {{$t('dataManage.uploadObj.attachMount')}}</span>
        </div>
      </div>
    </div>
@@ -93,6 +104,28 @@
            </el-option>
          </el-select>
        </el-form-item>
        <!-- 目录 -->
        <el-form-item v-if="active == 'second'">
          <el-select
            size="small"
            v-model="formInline.dirid2"
            placeholder="请选择项目目录..."
          >
            <el-option
              :value="formInline.dirid2"
              :label="formInline.dirName2"
              style="height: auto"
            >
              <el-tree
                ref="tree"
                :data="dirOption2"
                node-key="id"
                :props="defaultProps"
                @node-click="handleDirChange2"
              />
            </el-option>
          </el-select>
        </el-form-item>
        <!-- 版本 -->
        <el-form-item v-if="active == 'first'">
          <el-select
@@ -124,11 +157,44 @@
            </el-option>
          </el-select>
        </el-form-item>
        <el-form-item v-if="active == 'second'  || active == 'fourth'">
          <el-select
            size="small"
            v-model="formInline.type1"
            @change="handleTypeChange1"
            placeholder="请选择数据类别..."
          >
            <el-option
              v-for="item in typeOption1"
              :key="item.value"
              :label="item.label"
              :value="item.value"
            >
            </el-option>
          </el-select>
        </el-form-item>
        <el-form-item v-if="active == 'fourth'">
          <el-select
            size="small"
            v-model="formInline.status"
            @change="handleTypeChange2"
            placeholder="请选择数据类别..."
          >
            <el-option
              v-for="item in typeOption2"
              :key="item.value"
              :label="item.label"
              :value="item.value"
            >
            </el-option>
          </el-select>
        </el-form-item>
        <el-form-item>
          <el-input
            size="small"
            :title="$t('dataManage.vmobj.keyword')"
            v-model="formInline.name"
            :placeholder="$t('shuJuGuanLi.shuJuJianSuo.valuedataName')"
          > <i
              @click="getTableData"
              :title="$t('common.iquery')"
@@ -167,32 +233,38 @@
      <div class="dividing-line"></div>
      <div class="table_box content_Table">
        <el-table
          v-if="active !='fourth'"
          :data="tableData"
          style="width: 100%"
          @selection-change="handleSelectionChange"
          @cell-dblclick="copyText"
          height="calc(100% - 1px)"
          ref="tableBox"
        >
          <el-table-column
            type="selection"
            width="55"
            key="1"
          />
          <el-table-column
            :label="$t('dataManage.dictionaryManageObj.number')"
            type="index"
            width="50"
            align="center"
            key="2"
          >
          </el-table-column>
          <el-table-column
            prop="name"
            :label="$t('dataManage.vmobj.name')"
            align="center"
            key="3"
          />
          <el-table-column
            prop="type"
            :label="$t('dataManage.vmobj.format')"
            align="center"
            key="4"
          />
          <el-table-column
            v-if="active == 'first'"
@@ -200,51 +272,85 @@
            :label="$t('dataManage.vmobj.size')"
            :formatter="stateFormatSizes"
            align="center"
            key="5"
          />
          <el-table-column
            prop="depName"
            :label="$t('dataManage.vmobj.depName')"
            align="center"
            key="6"
          />
          <el-table-column
            prop="dirName"
            :label="$t('dataManage.vmobj.dirName')"
            width="200"
            align="center"
            key="7"
          />
          <el-table-column
            v-if="active == 'first'"
            prop="verName"
            :label="$t('dataManage.vmobj.versionNumber')"
            align="center"
            key="8"
          />
          <el-table-column
            prop="url"
            :label="$t('common.publishAddress')"
            align="center"
            key="9"
          />
          <el-table-column
            v-if="active == 'first'"
            prop="uname"
            :label="$t('common.rublisher')"
            align="center"
            :key="Math.random()"
            key="10"
          />
          <el-table-column
            v-if="active != 'first'"
            prop="createName"
            :label="$t('common.rublisher')"
            align="center"
            :key="Math.random()"
            key="11"
          />
          <el-table-column
            prop="createTime"
            :label="$t('common.releaseTime')"
            align="center"
            key="12"
          />
          <el-table-column
            v-if="active == 'first'"
            prop="createTime"
            :label="$t('common.publishStatus')"
            align="center"
            key="13"
          >
            <template slot-scope="scope">
              <span v-if="scope.row.url ">已发布</span>
            </template>
          </el-table-column>
          <el-table-column
            prop="updateName"
            :label="$t('dataManage.vmobj.updateonuser')"
            align="center"
            key="14"
          />
          <el-table-column
            prop="updateTime"
            :label="$t('dataManage.vmobj.updateontime')"
            :formatter="formatData"
            align="center"
            key="15"
          />
          <el-table-column
            min-width="150"
            :label="$t('common.operate')"
            v-if="active == 'second'"
          >
            <template slot-scope="scope">
              <el-button
@@ -267,13 +373,107 @@
              </el-button>
              <el-button
                v-if="scope.row.url"
                v-if="scope.row.url && active == 'second'"
                size="small"
                type="success"
                plain
                @click="setPreviewLayer(scope.row)"
              >{{$t('common.preview')}}
              </el-button>
              <el-button
                v-if="scope.row.url && active == 'first'"
                size="small"
                type="success"
                plain
              >已发布
              </el-button>
            </template>
          </el-table-column>
        </el-table>
        <el-table
          v-if="active ==  'fourth'"
          :data="tableData"
          style="width: 100%"
          height="calc(100% - 1px)"
          ref="tableBox"
        >
          <!-- <el-table-column
            prop="name"
            :label="$t('dataManage.vmobj.name')"
            align="center"
            key="1"
          ></el-table-column> -->
          <el-table-column
            prop="name"
            :label="$t('dataManage.vmobj.name')"
            align="center"
            key="3"
          ></el-table-column>
          <el-table-column
            prop="status"
            :label="$t('dataManage.styleObj.status')"
            align="center"
            key="4"
            :formatter="stateFormatStatus"
          ></el-table-column>
          <el-table-column
            prop="type"
            :label="$t('dataManage.styleObj.type')"
            align="center"
            key="5"
          ></el-table-column>
          <el-table-column
            prop="descr"
            :label="$t('dataManage.styleObj.descr')"
            align="center"
            key="6"
          ></el-table-column>
          <el-table-column
            prop="err"
            :label="$t('common.err')"
            align="center"
            key="7"
          ></el-table-column>
          <el-table-column
            prop="createName"
            :label="$t('common.rublisher')"
            align="center"
            key="8"
          />
          <el-table-column
            prop="createTime"
            :label="$t('common.releaseTime')"
            :formatter="formatData"
            align="center"
            key="9"
          />
          <el-table-column
            prop="updateName"
            :label="$t('dataManage.vmobj.updateonuser')"
            align="center"
            key="10"
          />
          <el-table-column
            prop="updateTime"
            :label="$t('dataManage.vmobj.updateontime')"
            :formatter="formatData"
            align="center"
            key="11"
          />
          <el-table-column
            min-width="80"
            :label="$t('common.operate')"
          >
            <template slot-scope="scope">
              <el-button
                v-if="scope.row.status == '1'"
                size="small"
                type="danger"
                plain
                @click="setCannelTask(scope.row)"
              >{{$t('common.endTask')}}
              </el-button>
            </template>
          </el-table-column>
@@ -340,7 +540,7 @@
        id="MapDiv"
        style="background:red;widht:100%;height:calc(100% - 10px)"
      ></div>
      <!--
    </el-dialog> -->
    <!-- 修改数据 -->
    <el-dialog
@@ -440,7 +640,7 @@
      :close-on-click-modal="false"
      :show-close="false"
    >
      <div style="width:100%;height:30vh">
      <div style="width:100%; ">
        <el-form
          ref="form"
          :model="insertLayer"
@@ -458,7 +658,28 @@
              v-model="insertLayer.number"
            ></el-input>
          </el-form-item>
          <el-form-item :label="$t('dataManage.vmobj.minLevel')">
          <el-form-item
            :label="$t('dataManage.vmobj.labe14')"
            v-show="formInline.type =='DOM'"
          >
            <el-select
              style="width:100%"
              v-model="insertLayer.noData"
            >
              <el-option
                label="黑色"
                value="0"
              ></el-option>
              <el-option
                label="白色"
                value="255"
              ></el-option>
            </el-select>
          </el-form-item>
          <el-form-item
            v-show="formInline.type !='DEM'"
            :label="$t('dataManage.vmobj.minLevel')"
          >
            <!-- <el-input
              v-model="insertLayer.min"
              :placeholder="$t('dataManage.vmobj.labe11')"
@@ -477,7 +698,10 @@
              </el-option>
            </el-select>
          </el-form-item>
          <el-form-item :label="$t('dataManage.vmobj.maxLevel')">
          <el-form-item
            :label="$t('dataManage.vmobj.maxLevel')"
            v-show="formInline.type !='DEM'"
          >
            <!-- <el-input
              v-model="insertLayer.max"
              :placeholder="$t('dataManage.vmobj.labe12')"
@@ -511,7 +735,130 @@
        </el-form>
      </div>
    </el-dialog>
    <!--模型发布 -->
    <el-dialog
      :title="$t('common.publish')"
      :visible.sync="insertModelVisible"
      width="25%"
      :close-on-click-modal="false"
      :show-close="false"
    >
      <div style="width:100%; ">
        <div
          v-for="item in modelOptions"
          style="margin: 5px;"
        >
          <el-row :gutter="20">
            <el-col :span="10">
              <div
                class="contLable"
                style="height: 64px; display: flex; align-items: center;"
              >
                {{ item.name }}
              </div>
            </el-col>
            <el-col :span="10">
              <div style="height: 64px; display: flex; align-items: center;">
                <el-select
                  size="small"
                  v-model="item.isModel"
                  placeholder="请选择数据类型"
                >
                  <el-option
                    label="单体模型"
                    value="1"
                  ></el-option>
                  <el-option
                    label="倾斜模型"
                    value="0"
                  >倾斜模型</el-option>
                </el-select>
              </div>
            </el-col>
          </el-row>
        </div>
        <div style="display: flex; justify-content: end;margin-top:10px;">
          <el-button
            size="small"
            type="primary"
            @click="setModelInsert"
          >{{$t('common.submit')}}</el-button>
          <el-button
            size="small"
            type="info"
            @click="setModelCanel"
          >{{$t('common.cancel')}}</el-button>
        </div>
      </div>
    </el-dialog>
    <!-- OSGB LAS -->
    <el-dialog
      :title="$t('common.publish')"
      :visible.sync="insertOsgbVisible"
      :close-on-click-modal="false"
      :show-close="false"
      width="35%"
    >
      <div>
        <div
          v-for="item in osgbLasOption"
          style="margin-top: 10px; display: flex; justify-content: center; align-items: center; "
        >
          <div style=" text-align: center; ">
            {{ item.name }}
          </div>
          <!-- <div style="display: flex; align-items: center; margin: 0px 10px;">
            <label class="contLable">高度偏移量:</label>
            <el-input
              size="small"
              v-model="item.zs"
            >
              <i slot="suffix">m</i></el-input>
          </div>
          <div style="display: flex;  align-items: center; ">
            <label class="contLable">坐标系:</label>
            <el-select
              v-if="!item.lids"
              v-model="item.srids"
              style="width: 100%;"
              size="small"
            >
              <el-option
                v-for="item in stridOption"
                :key="item.id"
                :label="item.coordinate"
                :value="item.epsgcode"
              >
              </el-option>
            </el-select>
            <el-input
              v-if="item.lids"
              v-model="item.srids"
              size="small"
              disabled
            ></el-input>
          </div> -->
        </div>
        <div style="display: flex; justify-content: end;margin-top:10px;">
          <el-button
            size="small"
            type="primary"
            @click="setOsgbInsert"
          >{{$t('common.submit')}}</el-button>
          <el-button
            size="small"
            type="info"
            @click="setOsgbCanel"
          >{{$t('common.cancel')}}</el-button>
        </div>
      </div>
    </el-dialog>
    <div
      class="loadBox"
      v-if="loadDialogVisible"
@@ -527,7 +874,7 @@
      <div
        v-loading="true"
        element-loading-background="rgba(0, 0, 0, 0.0) "
        element-loading-text="数据发布中"
        :element-loading-text="loadingText"
        style="margin: 0px 20px;widht:100%;height:calc(100% - 80px); "
      >
      </div>
@@ -550,7 +897,12 @@
  publish_deletes,
  publish_update,
  publish_insert,
  dataUpload_selectCoords,
  publish_selectLasCs,
  task_selectByPageAndCount,
  task_deleteTask
} from '../../api/api.js'
import { conditions } from '../Archive/Archive';
export default {
  components: {
@@ -562,12 +914,16 @@
      active: 'first',
      formInline: {
        dirid: null,
        dirid2: null,
        dirName: null,
        dirName2: null,
        depid: null,
        verid: null,
        depName: null,
        name: "",
        type: ""
        type: "",
        type1: "All",
        status: 'All'
      },
      listData: {
        pageIndex: 1,
@@ -577,20 +933,81 @@
      multipleSelection: [],
      tableData: [],
      depOption: [],
      dirOption2: [],
      dirOption: [],
      verOption: [],
      modelOptions: [],
      typeOption: [{
        value: 'DOM',
        label: '影像数据(.tif, .img)'
      }, {
        value: 'DEM',
        label: '高程数据(.tif)'
      }, {
        value: 'MPT',
        label: '场景数据(.mpt)'
      }, {
        value: 'OSGB',
        label: '倾斜数据(.osgb)'
      }, {
        value: 'LAS',
        label: '点云数据(.las, .laz)'
      }, {
        value: 'CPT',
        label: '点云数据(.cpt)'
      }, {
        value: '3DML',
        label: '三维模型(.3dml)'
      }, {
        value: 'BIM',
        label: '三维模型(.fbx, .ifc, .rvt)'
      }],
      typeOption1: [{
        value: 'All',
        label: '全部'
      }, {
        value: 'DOM',
        label: '影像数据(.tif, .img)'
      }, {
        value: 'DEM',
        label: '高程数据(.tif)'
      }, {
        value: 'MPT',
        label: '场景数据(.mpt)'
      }, {
        value: 'OSGB',
        label: '倾斜数据(.osgb)'
      }, {
        value: 'LAS',
        label: '点云数据(.las, .laz)'
      }, {
        value: 'CPT',
        label: '点云数据(.cpt)'
      }, {
        value: '3DML',
        label: '三维模型(.3dml)'
      }, {
        value: 'BIM',
        label: '三维模型(.fbx, .ifc, .rvt)'
      }],
      typeOption2: [{
        label: '全部',
        value: 'All'
      }, {
        label: '未开始',
        value: 0
      }, {
        label: '进行中',
        value: 1
      }, {
        label: '正常结束',
        value: 2
      }, {
        label: '用户结束',
        value: 3
      }, {
        label: '运行出错',
        value: 4
      }],
      defaultProps: {
        label: "name",
@@ -608,13 +1025,153 @@
      detailsDialogVisible: false,
      itemdetail: {},
      insertDialogVisible: false,
      insertLayer: { name: '', number: null, min: 4, max: 18 },
      insertModelVisible: false,
      insertLayer: { name: '', number: null, min: 4, max: 18, noData: '0' },
      loadDialogVisible: false,
      options: [],
      isFullscreen: false,
      insertOsgbVisible: false,
      osgbLasLayer: {
        z: '0',
        strid: ''
      },
      stridOption: [],
      osgbLasOption: [],
      loadingText: '数据发布中'
    }
  },
  methods: {
    setOsgbCanel() {
      this.insertOsgbVisible = false;
      this.osgbLasLayer = {
        z: '0',
        strid: ''
      }
    },
    async setOsgbInsert() {
      var ids = [];
      var zs = []
      var models = []
      var srids = [];
      var lerro = [];
      for (var i in this.osgbLasOption) {
        ids.push(this.osgbLasOption[i].id)
        // zs.push(this.osgbLasOption[i].zs)
        zs.push(0)
        srids.push(0)
        models.push(0)
      }
      var name = this.osgbLasOption[0].name
      if (this.formInline.type == 'LAS') {
        for (var i in this.osgbLasOption) {
          // if (this.osgbLasOption[i].srids) {
          //   //var epsg = this.osgbLasOption[i].srids.replace('EPSG:', '')
          //   // srids.push(epsg)
          //   srids.push("00")
          // } else {
          //   lerro.push(this.osgbLasOption[i].name)
          // }
          srids.push(0)
        }
        // if (lerro.length > 0) {
        //   return this.$message(lerro + '未选择发布数据的坐标系');
        // }
        // if (!this.osgbLasLayer.strid) {
        //   return this.$message('请选择发布数据的坐标系');
        // } else {
        //   strid = this.osgbLasLayer.strid.replace('EPSG:', '')
        // }
      }
      var obj = {
        dircode: this.formInline.dirid,
        depcode: this.formInline.depid,
        min: 0,
        max: 0,
        name: name,
        type: this.formInline.type,
        noData: 0,
        ids: ids,
        models: models,
        srids: [],
        zs: zs
      }
      this.loadingText = '数据发布中';
      this.loadDialogVisible = true
      this.setOsgbCanel();
      const data = await publish_insert(obj);
      if (data.code == 200 && data.result > 0) {
        this.$message({
          message: '数据发布成功',
          type: 'success'
        });
      } else {
        this.$message.error("数据发布失败")
      }
      this.loadDialogVisible = false
      this.getTableData();
    },
    setModelCanel() {
      this.insertModelVisible = false;
      this.modelOptions = [];
    },
    async setModelInsert() {
      var val = this.modelOptions.filter(res => {
        if (!res.isModel) {
          return res
        }
      })
      var str = [];
      if (val.length > 0) {
        for (var i in val) {
          str.push(val[i].name)
        }
        var mesage = str.toString() + '未选择数据类型'
        this.$message(mesage);
        return;
      }
      var ids = [];
      var models = [];
      for (var i in this.modelOptions) {
        ids.push(this.modelOptions[i].id)
        models.push(parseInt(this.modelOptions[i].isModel))
      }
      var obj = {
        dircode: this.formInline.dirid,
        depcode: this.formInline.depid,
        min: null,
        max: null,
        name: null,
        type: this.formInline.type,
        noData: null,
        ids: ids,
        models: models
      }
      this.loadingText = '数据发布中';
      this.loadDialogVisible = true
      this.insertModelVisible = false;
      const data = await publish_insert(obj);
      if (data.code == 200 && data.result > 0) {
        this.$message({
          message: '数据发布成功',
          type: 'success'
        });
      } else {
        this.$message.error("数据发布失败")
      }
      this.loadDialogVisible = false
      this.getTableData();
    },
    copyText(row, column, cell, event) {
      // 双击复制
      let save = function (e) {
@@ -627,7 +1184,7 @@
    },
    setOptions() {
      var std = [];
      for (var i = 0; i < 21; i++) {
      for (var i = 0; i < 23; i++) {
        std.push({
          value: i,
          label: i
@@ -636,7 +1193,9 @@
      this.options = std;
    },
    setloadDialogVisible() {
      this.loadDialogVisible = false
      this.loadDialogVisible = false;
      this.loadingText = '数据发布中';
    },
    setinsertLayerCancel() {
      this.insertDialogVisible = false;
@@ -644,32 +1203,31 @@
    },
    //发布提交
    async setinsertLayerSubmit() {
      var min = this.insertLayer.min;
      var max = this.insertLayer.max;
      var name = this.insertLayer.name;
      if (this.formInline.type == 'DEM') {
        min = 0;
        max = 18;
      }
      if (!name) {
        this.$message.error("名称不能为空")
        return
      }
      if (!min) {
        this.$message.error("请输入最小级别(0 ~ 20)")
        return
      } else {
        if (parseInt(min) < 0 || parseInt(min) > 20) {
          this.$message.error(" 最小级别不能小于 0 或大于 20 ")
          return
        }
      }
      if (!max) {
        this.$message.error("请输入最大级别(0 ~ 20)")
      if (parseInt(min) < 0 || parseInt(min) > 20) {
        this.$message.error("最小级别不能小于 0 或大于 20 ")
        return
      } else {
        if (parseInt(max) < 0 || parseInt(max) > 20) {
          this.$message.error(" 最大级别不能小于 0 或大于 20 ")
          return
        }
      }
      if (parseInt(max) < 0 || parseInt(max) > 20) {
        this.$message.error(" 最大级别不能小于 0 或大于 20 ")
        return
      }
      if (parseInt(min) > parseInt(max)) {
        this.$message.error("最小级别不得大于最大级别")
        return
@@ -685,20 +1243,22 @@
        max: max,
        name: name,
        ids: std,
        type: this.formInline.type
        type: this.formInline.type,
        noData: this.insertLayer.noData
      }
      this.loadingText = '数据发布中';
      this.loadDialogVisible = true
      this.insertDialogVisible = false;
      const data = await publish_insert(obj);
      if (data.code != 200 || data.count > 0) {
        this.$message.error("数据发布失败")
      } else {
      if (data.code == 200 && data.result > 0) {
        this.$message({
          message: '数据发布成功',
          type: 'success'
        });
      } else {
        this.$message.error("数据发布失败")
      }
      this.loadDialogVisible = false
      this.getTableData();
@@ -707,38 +1267,94 @@
    //数据发布
    async setPagePublish() {
      if (this.multipleSelection.length == 0) {
        this.$message.error("请选择要发布的数据")
        this.$message("请选择要发布的数据")
        return
      }
      if (this.formInline.type == "DOM") {
        this.insertLayer.name = this.formInline.dirName;
      if (this.formInline.type == "DOM" || this.formInline.type == "DEM") {
        this.insertLayer.name = this.multipleSelection[0].name.split('.')[0];
        this.insertLayer.number = this.multipleSelection.length
        this.insertLayer.noData = '0';
        this.insertDialogVisible = true;
      } else if (this.formInline.type == "3DML" || this.formInline.type == "BIM") {
        var val = JSON.parse(JSON.stringify(this.multipleSelection))
        for (var i in val) {
          val[i].isModel = null
        }
        this.modelOptions = val;
        this.insertModelVisible = true;
      } else if (this.formInline.type == "OSGB") {
        var val = JSON.parse(JSON.stringify(this.multipleSelection))
        for (var i in val) {
          val[i].zs = 0;
          val[i].srids = null;
        }
        this.osgbLasOption = val;
        this.insertOsgbVisible = true;
      } else if (this.formInline.type == "LAS") {
        var lids = [];
        var val = JSON.parse(JSON.stringify(this.multipleSelection))
        for (var i in val) {
          val[i].zs = 0;
          val[i].srids = null;
          val[i].lids = false;
          lids.push('ids=' + val[i].id)
        }
        var url = lids.join('&')
        const data1 = await publish_selectLasCs(url);
        if (data1.code != 200) {
          this.$message('Las文件坐标系ID失败');
        } else {
          for (var i = 0; i < val.length; i++) {
            var coord = data1.result[i]
            if (coord > 0) {
              val[i].srids = "EPSG:" + coord;
              val[i].lids = true;
            }
          }
        }
        const data = await dataUpload_selectCoords();
        if (data.code != 200) {
          this.$message('坐标系数据获取失败');
        }
        this.stridOption = data.result;
        this.osgbLasOption = val;
        this.insertOsgbVisible = true;
      } else {
        var std = [];
        for (var i in this.multipleSelection) {
          std.push(this.multipleSelection[i].id)
        }
        var obj = {
          dircode: this.formInline.dirid,
          depcode: this.formInline.depid,
          ids: std,
          type: this.formInline.type
        }
        this.loadingText = '数据发布中';
        this.loadDialogVisible = true
        this.insertDialogVisible = false;
        const data = await publish_insert(obj);
        if (data.code != 200) {
          this.$message.error("数据发布失败")
        } else {
        if (data.code == 200 && data.result > 0) {
          this.$message({
            message: '数据发布成功',
            type: 'success'
          });
        } else {
          this.$message.error("数据发布失败")
        }
        this.loadDialogVisible = false
        this.getTableData();
      }
@@ -754,6 +1370,7 @@
        var url = this.editLayer.url;
        this.editLayer.url = url.replace(iisHost, "{host}");
      }
      const data = await publish_update(this.editLayer);
      if (data.code != 200) {
        this.$message.error("数据修改失败")
@@ -781,6 +1398,24 @@
          });
      }
    },
    async setCannelTask(res) {
      const data = await task_deleteTask({ id: res.id })
      if (data.result == 200) {
        this.$message({
          message: '任务结束成功',
          type: 'success'
        });
      } else {
        this.$message.error({
          message: '任务结束失败',
        });
      }
      this.getTableData();
    },
    //修改弹窗
    setPreviewEdit(res) {
      this.updateLayer = JSON.stringify(res) //备份;
@@ -795,14 +1430,17 @@
        var that = this
        this.$confirm('确定是否删除所选内容?')
          .then(_ => {
            done();
            that.deletePage()
          })
          .catch(_ => {
            that.deletePage()
          });
      }
    },
    async deletePage() {
      this.loadingText = '数据删除中';
      this.loadDialogVisible = true;
      var std = [];
      for (var i in this.multipleSelection) {
        std.push(this.multipleSelection[i].id);
@@ -818,6 +1456,7 @@
        });
        this.getTableData();
      }
      this.loadDialogVisible = false;
    },
    //预览弹窗打开
    setPreviewLayer(res) {
@@ -849,6 +1488,26 @@
        return row.sizes + " MB"
      }
    },
    stateFormatStatus(row, column) {
      switch (row.status) {
        case 0:
          return '未开始';
          break;
        case 1:
          return '进行中';
          break;
        case 2:
          return '正常结束';
          break;
        case 3:
          return '用户结束';
          break;
        case 4:
          return '运行出错';
          break;
      }
    },
    //格式化地址
    formatLayer(row, column) {
      let data = row.layer
@@ -869,13 +1528,13 @@
    //分页切换
    handleCurrentChange(val) {
      this.listData.pageIndex = val;
      this.getTableData();
      this.getTableData_one();
    },
    //每页显示数量
    handleSizeChange(val) {
      this.listData.pageSize = val;
      this.listData.pageIndex = 1;
      this.getTableData();
      this.getTableData_one();
    },
    //tabs切換
    setTabsChange(res) {
@@ -893,22 +1552,44 @@
            url: "menuLayer"
          }
          this.active = 'third';
          break;
        case 4:
          this.active = 'fourth';
          this.setPageStart();
          break;
          this.$nextTick(() => {
            this.$refs.tableBox.doLayout()
          })
      }
    },
    //页面初始化
    setPageStart() {
      this.formInline = {
        dirid: null,
        dirid2: null,
        dirName: null,
        dirName2: null,
        depid: null,
        verid: null,
        depName: null,
        name: "",
        type: ""
        type: "",
        type1: "All",
        status: 'All'
      }
      if (this.active == "first") {
        this.listData = {
          pageIndex: 1,
          pageSize: 10,
          count: 0
        }
        this.showPageSize = [10, 50, 100, 200]
      } if (this.active == "fourth") {
        this.listData = {
          pageIndex: 1,
          pageSize: 10,
@@ -921,7 +1602,14 @@
          pageSize: 10,
          count: 0
        }
        this.showPageSize = [10, 50, 100, 200]
        this.showPageSize = [10, 50, 100, 200, 500]
        this.formInline.type1 = this.typeOption1[0].value;
        if (this.dirOption2.length > 0) {
          this.formInline.dirid2 = this.dirOption2[0].code;
          this.formInline.dirName2 = this.dirOption2[0].name;
        }
      }
      this.formInline.type = this.typeOption[0].value;
@@ -935,9 +1623,25 @@
        this.$message.error("单位列表获取失败")
        return
      }
      var res = JSON.parse(JSON.stringify(data.result));
      var res_val = res.filter((rs) => {
        if (rs.pid == 0) {
          return rs
        }
      })
      res_val.unshift({
        name: '全部',
        id: 'All',
        pid: 0,
        code: "All"
      })
      this.dirOption2 = this.treeData(res_val)
      this.dirOption = this.treeData(data.result);
      this.formInline.dirid = this.dirOption[0].code;
      this.formInline.dirName = this.dirOption[0].name;
      this.formInline.dirid2 = this.dirOption2[0].code;
      this.formInline.dirName2 = this.dirOption2[0].name;
      this.getVerList(this.dirOption[0].id)
    },
    //获取版本列表
@@ -953,13 +1657,22 @@
    },
    //版本列表切换
    handleVerChange(value) {
      this.formInline.verid = value;
      this.getTableData();
    },
    //服务类型列表切换
    handleTypeChange(value) {
      this.formInline.type = value;
      this.getTableData();
    },
    handleTypeChange1(value) {
      this.formInline.type1 = value;
      this.getTableData();
    },
    handleTypeChange2(value) {
      this.formInline.status = value;
      this.getTableData();
    },
    //单位列表切换
@@ -974,11 +1687,21 @@
      this.formInline.dirName = data.name
      this.getVerList(data.id)
    },
    //目录列表切换
    handleDirChange2(data, node, nodeData) {
      this.formInline.dirid2 = data.code
      this.formInline.dirName2 = data.name
      this.getTableData();
    },
    //获取Table表格数据
    async getTableData() {
      this.tableData = [];
      this.listData.count = 0;
      this.listData.pageIndex = 1;
      this.getTableData_one();
    },
    async getTableData_one() {
      this.tableData = [];
      if (this.active == "first") {
        this.listData.depcode = this.formInline.depid;
@@ -1008,28 +1731,64 @@
          this.tableData = val;
          this.listData.count = data.count;
        }
      }
      else {
        if (this.formInline.name) {
          this.listData.name = this.formInline.name
      } else if (this.active == "fourth") {
        if (this.formInline.status == 'All') {
          this.listData.status = null;
        } else {
          this.listData.status = this.formInline.status
        }
        if (this.formInline.type1 == 'All') {
          this.listData.type = null;
        } else {
          this.listData.type = this.formInline.type1
        }
        if (this.formInline.name) {
          this.listData.name = this.formInline.name;
        }
        this.tableData = [];
        const data = await task_selectByPageAndCount(this.listData)
        if (data.code != 200) {
        }
        this.tableData = data.result;
        this.listData.count = data.count;
      } else {
        this.listData.name = this.formInline.name
        if (this.formInline.dirid2 == 'All') {
          this.listData.dircode = this.formInline.dirid2.replace('All', '');
        } else {
          this.listData.dircode = this.formInline.dirid2
        }
        if (this.formInline.type1 == 'All') {
          this.listData.type = this.formInline.type1.replace('All', '');
        } else {
          this.listData.type = this.formInline.type1
        }
        const data = await publish_selectByPage(this.listData);
        if (data.result) {
          var that = this
          var val = data.result.filter((res) => {
            if (res.createTime) {
              res.createTime = that.format(res.createTime);
          var val = data.result.filter((rs) => {
            if (rs.createTime) {
              rs.createTime = that.format(rs.createTime);
            }
            if (res.updateTime) {
              res.updateTime = that.format(res.updateTime);
            if (rs.updateTime) {
              rs.updateTime = that.format(rs.updateTime);
            }
            if (res.url) {
              res.url = res.url.replace("{host}", iisHost);
            if (rs.url) {
              rs.url = rs.url.replace("{host}", iisHost);
            }
            return res
            return rs
          })
          this.tableData = val;
          this.listData.count = data.count;
        }
@@ -1162,5 +1921,9 @@
  /deep/.el-dialog__header {
    padding: 10px !important;
  }
  .contLable {
    width: 140px;
    text-align: right;
  }
}
</style>