管道基础大数据平台系统开发-【前端】-新系統界面
surprise
2024-04-22 fa7ba545bb58983c8dab5f96cd1f010a48d7420c
src/views/datamanage/domainManage.vue
@@ -6,13 +6,21 @@
      ]"></My-bread>
    <el-divider />
    <div class="mainBox">
      <div class="leftTree subpage_Div">
        <el-input v-model="filterInput" style="width:200px"></el-input>
        <div style="width:450px">
      <div
        class="leftTree subpage_Div"
        style="border: 1px solid #dcdfe6;"
      >
        <el-input
          size="small"
          v-model="filterInput"
          style="width: 200px"
          :placeholder="$t('shuJuGuanLi.shuJuJianSuo.valueone')"
          suffix-icon="el-icon-search"
        ></el-input>
        <div style="width: 450px">
          <el-tree
            :data="domainData"
            :props="defaultProps"
            :default-expand-all="true"
            @node-click="toggleTabs"
            :filter-node-method="filterNode"
            ref="tree"
@@ -31,46 +39,58 @@
              prop="name"
            >
              <el-input
                size="small"
                v-model="queryForm.code"
                :placeholder="$t('common.pleaseInput')"
                style="width:200px"
              />
                :placeholder="$t('shuJuGuanLi.lable4')"
                style="width: 200px"
              ><i
                  slot="suffix"
                  class="el-icon-search"
                  @click="queryInfo('queryForm')"
                  style="padding-right: 8px"
                ></i></el-input>
            </el-form-item>
            <el-form-item style="float: right;">
            <el-form-item style="float: right">
              <el-button
                v-if="btnStatus.insert"
                @click="showAddDialog"
                icon="el-icon-plus"
                size="small"
                type="success"
              >{{ $t('common.append') }}</el-button>
              >{{ $t("common.append") }}</el-button>
              <el-button
                v-if="btnStatus.delete"
                @click="deleteInfo"
                type="danger"
                size="small"
                icon="el-icon-delete"
              >{{ $t('common.delete') }}</el-button>
              <el-button
              >{{ $t("common.delete") }}</el-button>
              <!--              <el-button
                @click="queryInfo('queryForm')"
                icon="el-icon-search"
                size="small"
                class="primary"
              >{{ $t('common.iquery') }}</el-button>
                >{{ $t("common.iquery") }}</el-button
              >-->
              <el-button
                @click="resetInfo('queryForm')"
                icon="el-icon-delete"
                size="small"
                type="info"
              >{{ $t('common.empty') }}</el-button>
              >{{ $t("common.empty") }}</el-button>
            </el-form-item>
          </el-form>
        </div>
        <div class="table_box">
        <div class="dividing-line"></div>
        <div
          class="table_box"
          style="height: calc(100% - 60px)"
        >
          <el-table
            :data="tableData"
            @selection-change="handleSelectionChange"
            height="100%"
            border
            height="calc(100% - 57px)"
          >
            <el-table-column
              type="selection"
@@ -129,99 +149,100 @@
            >
              <template slot-scope="scope">
                <el-button
                  class="primary"
                  @click="showDetail(scope.row)"
                  type="primary"
                  size="small"
                >{{ $t('common.details') }}</el-button>
                  plain
                >{{ $t("common.details") }}</el-button>
                <el-button
                  v-if="btnStatus.update"
                  type="warning"
                  @click="handleEdit(scope.$index, scope.row)"
                  size="small"
                >{{ $t('common.update') }}</el-button>
                  plain
                >{{ $t("common.update") }}</el-button>
              </template>
            </el-table-column>
          </el-table>
        </div>
        <div
          class="pagination_box"
          style="margin-top: 20px"
        >
          <el-pagination
            @size-change="handleSizeChange"
            @current-change="handleCurrentChange"
            :current-page="listData.pageIndex"
            :page-sizes="[10, 20, 50, 100]"
            :page-size="listData.pageSize"
            layout="total, sizes, prev, pager, next, jumper"
            :total="count"
          <div
            class="pagination_box"
            style="margin-top: 15px"
          >
          </el-pagination>
            <el-pagination
              @size-change="handleSizeChange"
              @current-change="handleCurrentChange"
              :current-page="listData.pageIndex"
              :page-sizes="[10, 50, 100, 200]"
              :page-size="listData.pageSize"
              layout="total, sizes, prev, pager, next, jumper"
              :total="count"
            >
            </el-pagination>
          </div>
        </div>
      </div>
    </div>
    <div
      class="infoBox subpage_Div box_div"
      class="infoBox_box"
      v-show="showinfoBox"
    >
      <div
        slot="header"
        class="clearfix"
      >
        <span>{{ $t('common.details') }}</span>
      <div class="infoBox subpage_Div box_div">
        <div
          style="float: right; cursor: pointer"
          @click="closeDetial"
          slot="header"
          class="clearfix"
        >
          <i class="el-icon-close"></i>
          <span>{{ $t("common.details") }}</span>
          <div
            style="float: right; cursor: pointer"
            @click="closeDetial"
          >
            <i class="el-icon-close"></i>
          </div>
        </div>
      </div>
      <el-divider></el-divider>
      <div class="contentBox">
        <p>
          {{ $t('dataManage.domainManage.domName') }}:{{
        <el-divider></el-divider>
        <div class="contentBox">
          <p>
            {{ $t("dataManage.domainManage.domName") }}:{{
              itemdetail.domName
            }}
        </p>
        <el-divider></el-divider>
        <p>
          {{ $t('dataManage.domainManage.domDesc') }}:{{
          </p>
          <el-divider></el-divider>
          <p>
            {{ $t("dataManage.domainManage.domDesc") }}:{{
              itemdetail.domDesc
            }}
        </p>
        <el-divider></el-divider>
        <p>
          {{ $t('dataManage.domainManage.domCode') }}:{{
          </p>
          <el-divider></el-divider>
          <p>
            {{ $t("dataManage.domainManage.domCode") }}:{{
              itemdetail.domCode
            }}
        </p>
        <el-divider></el-divider>
        <p>
          {{ $t('dataManage.domainManage.codeDesc') }}:{{
          </p>
          <el-divider></el-divider>
          <p>
            {{ $t("dataManage.domainManage.codeDesc") }}:{{
              itemdetail.codeDesc
            }}
        </p>
        <el-divider></el-divider>
        <p>{{ $t('dataManage.domainManage.bsm') }}:{{ itemdetail.bsm }}</p>
        <el-divider></el-divider>
        <p>
          {{ $t('dataManage.domainManage.level') }}:{{ itemdetail.level }}
        </p>
        <el-divider></el-divider>
        <p>
          {{ $t('dataManage.domainManage.orderid') }}:{{
          </p>
          <el-divider></el-divider>
          <p>{{ $t("dataManage.domainManage.bsm") }}:{{ itemdetail.bsm }}</p>
          <el-divider></el-divider>
          <p>
            {{ $t("dataManage.domainManage.level") }}:{{ itemdetail.level }}
          </p>
          <el-divider></el-divider>
          <p>
            {{ $t("dataManage.domainManage.orderid") }}:{{
              itemdetail.orderid
            }}
        </p>
        <el-divider></el-divider>
        <p>{{ $t('dataManage.domainManage.bak') }}:{{ itemdetail.bak }}</p>
          </p>
          <el-divider></el-divider>
          <p>{{ $t("dataManage.domainManage.bak") }}:{{ itemdetail.bak }}</p>
        </div>
      </div>
    </div>
    <el-dialog
      width="510px"
      top="5vh"
      top="2vh"
      :title="
        behavior == '新增用户'
          ? `${$t('common.append')}`
@@ -230,95 +251,112 @@
      :visible.sync="dialogFormVisible"
      :before-close="handleClose"
    >
      <el-form
        :model="editForm"
        ref="editForm"
      >
        <el-form-item
          :label="$t('dataManage.domainManage.domName')"
          :label-width="formLabelWidth"
      <div style="height: 500px; overflow: auto">
        <el-form
          :model="editForm"
          ref="editForm"
          label-position="top"
        >
          <el-select
            :popper-append-to-body="false"
            style="width:100%"
            v-model="editForm.domName"
            placeholder="请选择"
          <el-form-item
            :label="$t('dataManage.domainManage.domName')"
            :label-width="formLabelWidth"
          >
            <el-option
              v-for="item in domainOptions"
              :key="item.value"
              :label="item.label"
              :value="item.value"
            <el-select
              :popper-append-to-body="false"
              style="width:85%"
              v-model="editForm.domName"
               :placeholder="$t('shuJuGuanLi.shuJuJianSuo.rangeName')"
            >
            </el-option>
          </el-select>
          <!-- <el-input v-model="editForm.domName" autocomplete="off"></el-input> -->
        </el-form-item>
        <el-form-item
          :label="$t('dataManage.domainManage.domDesc')"
          :label-width="formLabelWidth"
        >
          <el-input
            v-model="editForm.domDesc"
            autocomplete="off"
          ></el-input>
        </el-form-item>
              <el-option
                v-for="item in domainOptions"
                :key="item.value"
                :label="item.label"
                :value="item.value"
              >
              </el-option>
            </el-select>
            <!-- <el-input v-model="editForm.domName" autocomplete="off"></el-input> -->
          </el-form-item>
          <el-form-item
            :label="$t('dataManage.domainManage.domDesc')"
            :label-width="formLabelWidth"
          >
            <el-input
              v-model="editForm.domDesc"
              autocomplete="off"
              style="width:85%"
               :placeholder="$t('shuJuGuanLi.shuJuJianSuo.descriptionRange')"
            ></el-input>
          </el-form-item>
        <el-form-item
          :label="$t('dataManage.domainManage.domCode')"
          :label-width="formLabelWidth"
        >
          <el-input
            v-model="editForm.domCode"
            autocomplete="off"
          ></el-input>
        </el-form-item>
        <el-form-item
          :label="$t('dataManage.domainManage.codeDesc')"
          :label-width="formLabelWidth"
        >
          <el-input
            v-model="editForm.codeDesc"
            autocomplete="off"
          ></el-input>
        </el-form-item>
        <el-form-item
          :label="$t('dataManage.domainManage.bsm')"
          :label-width="formLabelWidth"
        >
          <el-input
            v-model="editForm.bsm"
            autocomplete="off"
          ></el-input>
        </el-form-item>
        <el-form-item
          :label="$t('dataManage.domainManage.level')"
          :label-width="formLabelWidth"
        >
          <el-input
            v-model="editForm.level"
            autocomplete="off"
          ></el-input>
        </el-form-item>
        <el-form-item
          :label="$t('dataManage.domainManage.orderid')"
          :label-width="formLabelWidth"
        >
          <el-input
            v-model="editForm.orderid"
            autocomplete="off"
          ></el-input>
        </el-form-item>
        <el-form-item
          :label="$t('dataManage.domainManage.bak')"
          :label-width="formLabelWidth"
        >
          <el-input
            v-model="editForm.bak"
            autocomplete="off"
          ></el-input>
        </el-form-item>
      </el-form>
          <el-form-item
            :label="$t('dataManage.domainManage.domCode')"
            :label-width="formLabelWidth"
          >
            <el-input
              v-model="editForm.domCode"
              autocomplete="off"
              style="width:85%"
                :placeholder="$t('shuJuGuanLi.shuJuJianSuo.valuecode')"
            ></el-input>
          </el-form-item>
          <el-form-item
            :label="$t('dataManage.domainManage.codeDesc')"
            :label-width="formLabelWidth"
          >
            <el-input
              v-model="editForm.codeDesc"
              autocomplete="off"
              style="width:85%"
               :placeholder="$t('shuJuGuanLi.shuJuJianSuo.codeDescription')"
            ></el-input>
          </el-form-item>
          <el-form-item
            :label="$t('dataManage.domainManage.bsm')"
            :label-width="formLabelWidth"
          >
            <el-input
              v-model="editForm.bsm"
              autocomplete="off"
              style="width:85%"
              :placeholder="$t('shuJuGuanLi.shuJuJianSuo.identificationcode')"
            ></el-input>
          </el-form-item>
          <el-form-item
            :label="$t('dataManage.domainManage.level')"
            :label-width="formLabelWidth"
          >
            <el-input
              v-model="editForm.level"
              autocomplete="off"
              style="width:85%"
               :placeholder="$t('shuJuGuanLi.shuJuJianSuo.hierarchy')"
            ></el-input>
          </el-form-item>
          <el-form-item
            :label="$t('dataManage.domainManage.orderid')"
            :label-width="formLabelWidth"
          >
            <el-input
              v-model="editForm.orderid"
              autocomplete="off"
              style="width:85%"
                :placeholder="$t('shuJuGuanLi.shuJuJianSuo.serialnumber')"
            ></el-input>
          </el-form-item>
          <el-form-item
            :label="$t('dataManage.domainManage.bak')"
            :label-width="formLabelWidth"
          >
            <el-input
              v-model="editForm.bak"
              autocomplete="off"
              style="width:85%"
              :placeholder="$t('shuJuGuanLi.shuJuJianSuo.valueRemarks')"
            ></el-input>
          </el-form-item>
        </el-form>
      </div>
      <div
        v-if="behavior == '修改信息'"
        slot="footer"
@@ -327,14 +365,16 @@
        <el-button
          size="small"
          @click="cancelEdit()"
        >{{ $t('common.reset') }}</el-button>
        >{{
          $t("common.reset")
        }}</el-button>
        <el-button
          size="small"
          class="primary"
          type="info"
          @click="sendEdit('editForm')"
          v-loading.fullscreen.lock="fullscreenLoading"
        >{{ $t('common.confirm') }}</el-button>
        >{{ $t("common.confirm") }}</el-button>
      </div>
      <div
        v-else
@@ -346,14 +386,14 @@
          size="small"
          @click="cancelAdd('editForm')"
        >{{
          $t('common.reset')
          $t("common.reset")
        }}</el-button>
        <el-button
          size="small"
          class="primary"
          @click="sendAdd('editForm')"
          v-loading.fullscreen.lock="fullscreenLoading"
        >{{ $t('common.confirm') }}</el-button>
        >{{ $t("common.confirm") }}</el-button>
      </div>
    </el-dialog>
  </div>
@@ -367,37 +407,40 @@
  deleteDomain,
  updateDomain,
  domain_selectDomainNames,
} from '../../api/api';
import MyBread from '../../components/MyBread.vue';
} from "../../api/api";
import MyBread from "../../components/MyBread.vue";
import {
  getTreeData
} from "../../utils/treeData.js"
export default {
  name: 'domainManage',
  name: "domainManage",
  components: { MyBread },
  data() {
    return {
      filterInput: '',
      filterInput: "",
      domainOptions: [],
      multipleSelection: [],
      behavior: '',
      formLabelWidth: '100px',
      behavior: "",
      formLabelWidth: "100px",
      dialogFormVisible: false,
      showinfoBox: false,
      fullscreenLoading: false,
      itemdetail: {},
      editForm: {
        domName: '',
        domName: "",
      },
      queryForm: {
        code: '',
        code: "",
      },
      insertform: {},
      initialForm: '',
      initialForm: "",
      tableData: [],
      count: 0,
      rowFlag: null,
      listData: {
        ns: '',
        tab: '',
        ns: "",
        tab: "",
        pageIndex: 1,
        pageSize: 10,
      },
@@ -410,18 +453,11 @@
        update: false,
      },
      domainData: [
        {
          val: '基础数据',
          children: [],
        },
        {
          val: '业务数据',
          children: [],
        },
      ],
      defaultProps: {
        children: 'children',
        label: 'val',
        children: "children",
        label: "label",
      },
    };
  },
@@ -442,6 +478,9 @@
      return data.val.indexOf(value) !== -1;
    },
    async toggleTabs(data) {
      if (data.children != null) {
        return
      }
      this.fullscreenLoading = true;
      this.listData.ns = data.ns;
      this.listData.tab = data.tab;
@@ -449,7 +488,7 @@
      this.listData.pageSize = 10;
      const res = await domain_selectDomainNames(data);
      if (res.code != 200) {
        this.$message.error('domain调用失败');
        this.$message.error("domain调用失败");
      }
      var std = [];
      for (var i = 0; i < res.result.length; i++) {
@@ -484,18 +523,28 @@
    },
    getAllTabelData() {
      getDomainTabs().then((res) => {
        let bdres = res.result.filter((item) => item.ns == 'bd');
        let bsres = res.result.filter((item) => item.ns == 'bs');
        for (var i in bdres) {
          // bdres[i].val = bdres[i].tabDesc + '(' + bdres[i].tab + ')';
          bdres[i].val = bdres[i].tabDesc;
        }
        for (var i in bsres) {
          // bsres[i].val = bsres[i].tabDesc + '(' + bsres[i].tab + ')';
          bsres[i].val = bsres[i].tabDesc;
        }
        this.domainData[0].children = bdres;
        this.domainData[1].children = bsres;
        var val = res.result;
        this.domainData = getTreeData(val)
        //   var std = [];
        //   val.filter((item) => {
        //     if (std.indexOf(item.bak) == -1) {
        //       std.push(item.bak);
        //       this.domainData.push(
        //         {
        //           val: item.bak,
        //           children: [],
        //         }
        //       )
        //     }
        //   });
        //   this.domainData.filter((item) => {
        //     val.filter((res) => {
        //       if (item.val === res.bak) {
        //         res.val = res.tabDesc
        //         item.children.push(res)
        //       }
        //     })
        //   })
      });
    },
    handleSelectionChange(val) {
@@ -526,21 +575,21 @@
    resetInfo() {
      this.queryForm = {};
      this.$store.state.verCateNode = {};
      this.$bus.$emit('clearTressLabel', true);
      this.$bus.$emit("clearTressLabel", true);
      this.listData.pageIndex = 1;
      this.listData.pageSize = 10;
      this.queryInfo();
    },
    // 删除多条
    deleteInfo() {
      this.$confirm('确定是否删除所选内容?', '提示', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        type: 'warning',
      this.$confirm("确定是否删除所选内容?", "提示", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning",
      })
        .then(() => {
          if (this.multipleSelection.length == 0) {
            alert('请选择要删除的对象');
            alert("请选择要删除的对象");
            return;
          } else {
            var std = [];
@@ -548,13 +597,14 @@
              std.push(this.multipleSelection[i].id);
            }
            deleteDomain({ ids: std.toString() }).then((res) => {
              console.log(res);
              if (res.code == 200) {
                this.$message({
                  type: 'success',
                  message: '删除成功!',
                  type: "success",
                  message: "删除成功!",
                });
                this.multipleSelection = [];
                this.listData.pageIndex = 1;
                getSingleTab(this.listData).then((res) => {
                  setTimeout(() => {
                    this.tableData = res.result;
@@ -563,18 +613,18 @@
                  }, 500);
                });
              } else {
                this.$message.error('删除失败');
                this.$message.error("删除失败");
                this.multipleSelection = [];
              }
            });
          }
        })
        .catch(() => {
          this.$message('已取消删除');
          this.$message("已取消删除");
        });
    },
    showAddDialog() {
      this.behavior = '新增用户';
      this.behavior = "新增用户";
      this.editForm = {};
      this.dialogFormVisible = true;
    },
@@ -593,8 +643,8 @@
                this.fullscreenLoading = false;
                if (res.code == 200) {
                  this.$message({
                    message: '添加成功',
                    type: 'success',
                    message: "添加成功",
                    type: "success",
                  });
                  getSingleTab(this.listData).then((res) => {
                    setTimeout(() => {
@@ -609,17 +659,17 @@
              }, 500);
            })
            .catch((res) => {
              alert('添加失败,请重试!');
              alert("添加失败,请重试!");
              this.fullscreenLoading = false;
            });
        } else {
          console.log('error submit!!');
          console.log("error submit!!");
          return false;
        }
      });
    },
    handleClose(done) {
      this.$confirm('关闭后无法保存,是否关闭?')
      this.$confirm("关闭后无法保存,是否关闭?")
        .then((_) => {
          this.editForm = {};
          done();
@@ -641,7 +691,7 @@
      this.dialogFormVisible = true;
      this.initialForm = JSON.stringify(row); //备份
      this.editForm = row;
      this.behavior = '修改信息';
      this.behavior = "修改信息";
    },
    editFromDataClose() {
      this.dialogFormVisible = false;
@@ -650,10 +700,10 @@
    // 提交修改
    sendEdit() {
      this.$confirm('是否确定编辑?', '提示', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        type: 'warning',
      this.$confirm("是否确定编辑?", "提示", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning",
      })
        .then(() => {
          this.dialogFormVisible = false;
@@ -669,22 +719,22 @@
                  }, 500);
                });
                this.$message({
                  message: '修改成功',
                  type: 'success',
                  message: "修改成功",
                  type: "success",
                });
                this.editForm = {};
              } else {
                alert('修改失败,请重试!');
                alert("修改失败,请重试!");
                this.fullscreenLoading = false;
              }
            })
            .catch(() => {
              alert('修改失败,请重试!');
              alert("修改失败,请重试!");
              this.fullscreenLoading = false;
            });
        })
        .catch(() => {
          alert('修改失败,请重试!');
          alert("修改失败,请重试!");
          this.fullscreenLoading = false;
        });
    },
@@ -722,7 +772,7 @@
    },
    filterInput(val) {
      this.$refs.tree.filter(val);
    }
    },
  },
};
</script>
@@ -731,56 +781,37 @@
.domainBox {
  height: 98%;
  width: 98%;
  padding: 1%;
  padding: 0.5%;
  .mainBox {
    padding-top: 10px;
    width: 100%;
    height: 92%;
    height: calc(100% - 75px);
    display: flex;
    justify-content: space-between;
    justify-content: space-around;
    .leftTree {
      width: 15%;
      height: 91%;
      width: calc(23% - 0px);
      height: 100%;
      border-radius: 5px;
      padding: 1%;
      max-height: 670px;
      padding: 10px;
      box-sizing: border-box;
      overflow-y: auto;
    }
    .right {
      width: 80%;
      height: 91%;
      width: 75%;
      height: 100%;
      border-radius: 5px;
      padding: 1%;
      max-height: 670px;
      // overflow-y: auto;
      padding: 0 10px;
      box-sizing: border-box;
      border: 1px solid #dcdfe6;
      .inquire {
        // margin-bottom: 10px;
        padding: 1%;
        padding: 8px;
        // margin-top: 10px;
        border-radius: 5px;
        border: 1px solid #dcdfe6;
        //border: 1px solid #dcdfe6;
        //margin-bottom: 20px;
        .el-form-item {
          margin: 5px;
        }
      }
      .table_box {
        width: 100%;
        height: 80%;
        margin: 0 auto;
        overflow: auto;
        margin-top: 10px;
        .el-table /deep/ th.el-table__cell > .cell {
          padding: 15px !important;
        }
        .el-table--border::after,
        .el-table--group::after {
          width: 0;
        }
        .el-table::before {
          height: 0;
        }
      }
    }