管道基础大数据平台系统开发-【前端】-新系統界面
王旭
2023-05-10 86cdd4e6eece0ee4679e62ae347ec003db7d7425
src/views/userManage/orgManage.vue
@@ -6,7 +6,7 @@
      ]"></My-bread>
    <el-divider />
    <div class="cataLogContent">
      <div class="left_Tree">
      <div class="left_Tree subpage_Div">
        <div style="min-width:200px">
          <el-tree
            ref="tree"
@@ -14,63 +14,66 @@
            node-key="id"
            :data="depList"
            :expand-on-click-node="false"
            :default-expand-all="true"
            :default-expanded-keys=openKey
            @node-click="handleNodeClick"
          >
          </el-tree>
        </div>
      </div>
      <div class="right_menu">
        <div style="display:flex;justify-content:space-between">
          <el-breadcrumb separator="/">
      <div class="right_menu subpage_Div">
        <div style="display:flex;justify-content:right;align-items: center;padding-bottom: 14px">
          <el-breadcrumb separator="/" style="display: none">
            <el-breadcrumb-item :to="{ path: '/' }">{{
            $t('dataManage.dictionaryManageObj.particulars')
          }}</el-breadcrumb-item>
          </el-breadcrumb>
          <div>
            <el-button
              :disabled="itemdetail.pid == null ? true : false"
              @click="setEditNode(1)"
              type="info"
              icon="el-icon-top"
              size="mini"
            >向上移动</el-button>
            <el-button
              :disabled="itemdetail.pid == null ? true : false"
              @click="setEditNode(2)"
              type="info"
              icon="el-icon-bottom"
              size="mini"
            >向下移动</el-button>
            <el-button
              v-if="menuStatus.insert"
              :disabled="itemdetail.pid == null ? true : false"
              @click="setNewNode(1)"
              type="success"
              icon="el-icon-plus"
              size="mini"
            >新增同级</el-button>
              size="small"
            >{{$t('operatManage.menuSetObj.insert')}}</el-button>
            <el-button
              v-if="menuStatus.insert"
              :disabled="itemdetail.pid == null ? true : false"
              @click="setNewNode(2)"
              type="success"
              icon="el-icon-plus"
              size="mini"
            >新增子级</el-button>
            <el-button
              size="small"
            >{{$t('operatManage.menuSetObj.subInsert')}}</el-button>
                        <el-button
              v-if="menuStatus.delete"
              @click="setDelNode()"
              :disabled="itemdetail.pid == null ? true : false"
              type="danger"
              icon="el-icon-delete"
              size="mini"
            >删除</el-button>
              size="small"
            >{{$t('operatManage.menuSetObj.delete')}}</el-button>
            <el-button
              v-if="menuStatus.update"
              :disabled="itemdetail.pid == null ? true : false"
              @click="setEditNode(1)"
              type="info"
              icon="el-icon-top"
              size="small"
            >{{$t('operatManage.menuSetObj.moveUp')}}</el-button>
            <el-button
              v-if="menuStatus.update"
              :disabled="itemdetail.pid == null ? true : false"
              @click="setEditNode(2)"
              type="info"
              icon="el-icon-bottom"
              size="small"
            >{{$t('operatManage.menuSetObj.moveDown')}}</el-button>
          </div>
        </div>
        <el-divider />
        <div class="dividing-line"></div>
        <div class="form_box">
          <el-form
<!--          <el-divider class="eldivider" />-->
          <el-form label-width="130px"
            :model="itemdetail"
            ref="itemdetail"
            :rules="rules"
@@ -82,6 +85,8 @@
              <el-input
                v-model="itemdetail.name"
                autocomplete="off"
                style="max-width: 400px;"
                :placeholder="$t('userManage.orgManageObj.nameHolder')"
              ></el-input>
            </el-form-item>
            <el-form-item
@@ -91,6 +96,8 @@
              <el-input
                v-model="itemdetail.sname"
                autocomplete="off"
                :placeholder="$t('userManage.orgManageObj.abbreviationHolder')"
                style="max-width: 400px;"
              ></el-input>
            </el-form-item>
            <el-form-item
@@ -98,8 +105,10 @@
              :label-width="formLabelWidth"
            >
              <el-input
               disabled
                v-model="itemdetail.code"
                autocomplete="off"
                style="max-width: 400px;"
              ></el-input>
            </el-form-item>
            <el-form-item
@@ -109,6 +118,8 @@
              <el-input
                v-model="itemdetail.uncode"
                autocomplete="off"
                :placeholder="$t('userManage.orgManageObj.organizationCodeHolder')"
                style="max-width: 400px;"
              ></el-input>
            </el-form-item>
            <el-form-item
@@ -118,6 +129,8 @@
              <el-input
                v-model="itemdetail.addr"
                autocomplete="off"
                :placeholder="$t('userManage.orgManageObj.cmpanyAddressHolder')"
                style="max-width: 400px;"
              ></el-input>
            </el-form-item>
            <el-form-item
@@ -127,6 +140,8 @@
              <el-input
                v-model="itemdetail.contact"
                autocomplete="off"
                :placeholder="$t('userManage.orgManageObj.continformationHolder')"
                style="max-width: 400px;"
              ></el-input>
            </el-form-item>
            <el-form-item
@@ -135,7 +150,9 @@
            >
              <el-input
                v-model="itemdetail.fax"
                :placeholder="$t('userManage.orgManageObj.faxHolder')"
                autocomplete="off"
                style="max-width: 400px;"
              ></el-input>
            </el-form-item>
            <el-form-item
@@ -144,7 +161,9 @@
            >
              <el-input
                v-model="itemdetail.email"
                :placeholder="$t('userManage.orgManageObj.EMailHolder')"
                autocomplete="off"
                style="max-width: 400px;"
              ></el-input>
            </el-form-item>
            <el-form-item
@@ -153,7 +172,9 @@
            >
              <el-input
                v-model="itemdetail.post"
                :placeholder="$t('userManage.orgManageObj.postalCodeHolder')"
                autocomplete="off"
                style="max-width: 400px;"
              ></el-input>
            </el-form-item>
            <el-form-item
@@ -162,7 +183,9 @@
            >
              <el-input
                v-model="itemdetail.website"
                :placeholder="$t('userManage.orgManageObj.WebsiteAddressHolder')"
                autocomplete="off"
                style="max-width: 400px;"
              ></el-input>
            </el-form-item>
            <el-form-item
@@ -172,41 +195,42 @@
              <el-input
                v-model="itemdetail.bak"
                autocomplete="off"
                :placeholder="$t('userManage.orgManageObj.remarksHolder')"
                style="max-width: 400px;"
              ></el-input>
            </el-form-item>
            <div
              class="btnBox"
              v-if="menuStatus.update"
            >
              <el-button
                style="
                  background: #409eff;
                  border: 1px solid #409eff;
                  color: white;
                "
                @click="updDep('itemdetail')"
              >{{ $t('common.submit') }}</el-button>
              <el-button @click="reset('itemdetail')">{{
                $t('common.cancel')
              }}</el-button>
            <div v-if="menuStatus.update">
              <el-form-item>
                <el-button
                    type="primary"
                    size="small"
                    @click="updDep('itemdetail')"
                >{{ $t('common.submit') }}</el-button>
                <el-button
                    size="small"
                    @click="reset('itemdetail')"
                >{{
                    $t('common.cancel')
                  }}</el-button>
              </el-form-item>
            </div>
          </el-form>
        </div>
      </div>
    </div>
    <el-dialog
      width="30%"
      top="5vh"
      :title="$t('common.append')"
      :visible.sync="dialogFormVisible"
      :before-close="handleClose"
    >
     <div style="height: 500px; overflow: auto">
      <el-form
        :model="ruleForm"
        ref="ruleForm"
        :rules="rules"
        label-position="top"
      >
        <el-form-item
          prop="name"
@@ -216,6 +240,8 @@
          <el-input
            v-model="ruleForm.name"
            autocomplete="off"
            style="width:85%"
              :placeholder="$t('shuJuGuanLi.shuJuJianSuo.valuetwo')+$t('userManage.orgManageObj.name')"
          ></el-input>
        </el-form-item>
        <el-form-item
@@ -225,6 +251,8 @@
          <el-input
            v-model="ruleForm.sname"
            autocomplete="off"
            style="width:85%"
             :placeholder="$t('shuJuGuanLi.shuJuJianSuo.valuetwo')+$t('userManage.orgManageObj.abbreviation')"
          ></el-input>
        </el-form-item>
        <el-form-item
@@ -234,6 +262,8 @@
          <el-input
            v-model="ruleForm.code"
            autocomplete="off"
            style="width:85%"
              :placeholder="$t('shuJuGuanLi.shuJuJianSuo.valuetwo')+$t('userManage.orgManageObj.unitCode')"
          ></el-input>
        </el-form-item>
        <el-form-item
@@ -243,6 +273,8 @@
          <el-input
            v-model="ruleForm.uncode"
            autocomplete="off"
            style="width:85%"
            :placeholder="$t('shuJuGuanLi.shuJuJianSuo.valuetwo')+$t('userManage.orgManageObj.organizationCode')"
          ></el-input>
        </el-form-item>
        <el-form-item
@@ -252,6 +284,8 @@
          <el-input
            v-model="ruleForm.addr"
            autocomplete="off"
            style="width:85%"
             :placeholder="$t('shuJuGuanLi.shuJuJianSuo.valuetwo')+$t('userManage.orgManageObj.cmpanyAddress')"
          ></el-input>
        </el-form-item>
        <el-form-item
@@ -261,6 +295,8 @@
          <el-input
            v-model="ruleForm.contact"
            autocomplete="off"
            style="width:85%"
            :placeholder="$t('shuJuGuanLi.shuJuJianSuo.valuetwo')+$t('userManage.orgManageObj.continformation')"
          ></el-input>
        </el-form-item>
        <el-form-item
@@ -270,6 +306,8 @@
          <el-input
            v-model="ruleForm.fax"
            autocomplete="off"
            style="width:85%"
              :placeholder="$t('shuJuGuanLi.shuJuJianSuo.valuetwo')+$t('userManage.orgManageObj.fax')"
          ></el-input>
        </el-form-item>
        <el-form-item
@@ -279,6 +317,8 @@
          <el-input
            v-model="ruleForm.email"
            autocomplete="off"
            style="width:85%"
            :placeholder="$t('shuJuGuanLi.shuJuJianSuo.valuetwo')+$t('userManage.orgManageObj.EMail')"
          ></el-input>
        </el-form-item>
        <el-form-item
@@ -288,6 +328,8 @@
          <el-input
            v-model="ruleForm.post"
            autocomplete="off"
            style="width:85%"
            :placeholder="$t('shuJuGuanLi.shuJuJianSuo.valuetwo')+$t('userManage.orgManageObj.postalCode')"
          ></el-input>
        </el-form-item>
        <el-form-item
@@ -297,6 +339,8 @@
          <el-input
            v-model="ruleForm.website"
            autocomplete="off"
            style="width:85%"
            :placeholder="$t('shuJuGuanLi.shuJuJianSuo.valuetwo')+$t('userManage.orgManageObj.WebsiteAddress')"
          ></el-input>
        </el-form-item>
        <el-form-item
@@ -306,18 +350,25 @@
          <el-input
            v-model="ruleForm.bak"
            autocomplete="off"
            style="width:85%"
            :placeholder="$t('shuJuGuanLi.shuJuJianSuo.valuetwo')+$t('userManage.orgManageObj.remarks')"
          ></el-input>
        </el-form-item>
      </el-form>
       </div>
      <div
        slot="footer"
        class="dialog-footer"
      >
        <el-button @click="resetForm('ruleForm')">{{
        <el-button
          size="small"
          @click="resetForm('ruleForm')"
        >{{
          $t('common.cancel')
        }}</el-button>
        <el-button
          style="background: #409eff; border: 1px solid #409eff; color: white"
          size="small"
          type="primary"
          @click="submitForm('ruleForm')"
          v-loading.fullscreen.lock="fullscreenLoading"
        >{{ $t('common.submit') }}</el-button>
@@ -335,6 +386,7 @@
  queryMaxId,
  insertDep,
  deleteDep,
  getPerms
} from '../../api/api';
export default {
  //import引入的组件需要注入到对象中才能使用
@@ -402,6 +454,7 @@
        name: [{ required: true, validator: validName, trigger: 'blur' }],
      },
      newNode: null,
      openKey: [1],
    };
  },
  methods: {
@@ -547,11 +600,15 @@
      // console.log(node);
    },
    resetForm(formName) {
      this.dialogFormVisible = false;
      this.$nextTick(() => {
        this.ruleForm = {};
        this.$refs[formName].resetFields();
      });
      this.$confirm("关闭后无法保存,是否关闭?")
        .then((_) => {
          this.dialogFormVisible = false;
          this.$nextTick(() => {
            this.ruleForm = {};
            this.$refs[formName].resetFields();
          });
        })
        .catch((_) => { });
    },
    submitForm(formName) {
      this.$refs[formName].validate((valid) => {
@@ -597,6 +654,7 @@
        .then(() => {
          //兄弟重新排序
          const parent = node.parent;
          this.openKey.push(parent.id)
          const children = parent.data.children || parent.data;
          children.splice(data.orderNum - 1, 1);
          children.forEach((item, index) => {
@@ -611,7 +669,6 @@
            updateDepTrees(children),
          ])
            .then((res) => {
              console.log(res);
              if (res[0].code == 200 && res[1].code == 200) {
                this.$message({
                  type: 'success',
@@ -741,6 +798,7 @@
        });
    },
    handleNodeClick(data, node) {
      this.openKey.push(data.id)
      this.newNode = node
      this.backUpData = JSON.stringify(data);
      this.itemdetail = JSON.parse(JSON.stringify(data));
@@ -790,19 +848,48 @@
          break;
      }
    },
    getPerms() {
      var val = this.$store.state.currentPerms;
      var permsEntity = this.$store.state.permsEntity;
      if (permsEntity.length == 0) {
        getPerms().then((res) => {
          if (res.code == 200) {
            permsEntity = res.result;
          }
        });
      }
      for (var i = 0; i < permsEntity.length; i++) {
        if (permsEntity[i].perms == val) {
          console.log(permsEntity[i])
          this.showPermsMenu(permsEntity[i]);
        }
      }
    },
    handleClose() {
      this.$confirm("关闭后无法保存,是否关闭?")
        .then((_) => {
          this.dialogFormVisible = false
        })
        .catch((_) => { });
    },
  },
  mounted() {
    this.getMenuTree();
    this.getPerms();
  },
  created() {
    var val = this.$store.state.currentPerms;
    var permsEntity = this.$store.state.permsEntity;
    for (var i = 0; i < permsEntity.length; i++) {
      if (permsEntity[i].perms == val) {
        this.showPermsMenu(permsEntity[i]);
      }
    }
    // var val = this.$store.state.currentPerms;
    // var permsEntity = this.$store.state.permsEntity;
    // for (var i = 0; i < permsEntity.length; i++) {
    //   if (permsEntity[i].perms == val) {
    //     this.showPermsMenu(permsEntity[i]);
    //   }
    // }
  },
  beforeDestroy() {
    this.openKey = [1]
  }
};
</script>
<style lang="less" scoped>
@@ -810,8 +897,8 @@
.menuSettings_box {
  height: 98%;
  width: 98%;
  padding: 1%;
  position: absolute;
  padding:0.5% 1%;
  .cataLogContent {
    width: 100%;
    height: 92%;
@@ -820,184 +907,33 @@
  }
  .left_Tree {
    width: 15%;
    height: 91%;
    border: 1px solid white;
    //height: 94%;
    height: 100%;
    border-radius: 5px;
    padding: 1%;
    overflow-y: auto;
    .el-icon-circle-plus {
      color: gray;
    }
    .el-icon-delete-solid {
      color: gray;
    }
    border-right: 1px solid  #dcdfe6;
  }
  .right_menu {
    width: 80%;
    height: 91%;
    border: 1px solid white;
    //height: 91%;
    height: 98%;
    border-radius: 5px;
    padding: 1%;
    overflow: auto;
    .form_box {
      box-sizing: border-box;
      padding-top: 22px;
      width: 100%;
      .el-input {
        width: 400px;
      }
      /deep/.el-form-item__label {
        color: white;
      }
  }
  .el-card-define {
    height: 680px;
    background: #303030;
    border: 1px solid gray;
    padding: 1px;
  }
  .card_tree {
    display: block;
    height: 650px;
    overflow-y: auto;
    // 更改指标树图标颜色
    /deep/ .el-tree .el-icon-caret-right:before {
      color: white; /** 这里是要修改图标的颜色 **/
    }
    /deep/ .el-tree {
      color: white; /** 这里是要修改图标的颜色 **/
      background: transparent;
    }
    /deep/.el-tree-node__content {
      &:hover {
        background-color: rgba(255, 255, 255, 0.3) !important;
      }
    }
    /deep/.el-tree-node.is-current > .el-tree-node__content {
      background-color: rgba(255, 255, 255, 0.3) !important;
      color: #409eff;
    }
  }
  // .menuSettings_tree {
  //   position: relative;
  //   width: 344px;
  //   height: 100%;
  //   background: rgb(240, 242, 245);
  //   padding: 20px;
  //   border-radius: 10px;
  //   box-sizing: border-box;
  //   overflow: auto;
  //   .saveBtn {
  //     position: absolute;
  //     left: 250px;
  //     top: 23px;
  //   }
  //   .depTreeBox {
  //     height: 88%;
  //     width: 100%;
  //     overflow: auto;
  //     .el-tree {
  //       background: transparent;
  //       font-size: 15px;
  //       font-family: Microsoft YaHei;
  //       font-weight: 400;
  //       color: #000000;
  //       /deep/ .el-tree-node {
  //         padding-top: 10px;
  //         // padding-bottom: 10px;
  //       }
  //       /deep/ .el-tree-node:focus > .el-tree-node__content {
  //         background-color: #b9b9b9;
  //       }
  //       /deep/ .el-tree-node__content:hover {
  //         background-color: rgb(153, 153, 153);
  //       }
  //       .btnBox {
  //         margin: 0 10px 0 5px;
  //         .el-button + .el-button {
  //           margin-left: 5px;
  //         }
  //       }
  //     }
  //   }
  // }
  // .itemSettings {
  //   width: calc(100% - 344px);
  //   border-radius: 10px;
  //   background: rgb(240, 242, 245);
  //   margin-left: 10px;
  //   height: 100%;
  //   padding: 10px;
  //   box-sizing: border-box;
  //   .title_box {
  //     background: #fff;
  //     padding: 10px;
  //     margin-bottom: 24px;
  //     display: flex;
  //     border-radius: 10px;
  //     border: 1px solid rgb(202, 201, 204);
  //     box-sizing: border-box;
  //   }
  //   .form_box {
  //     border: 1px solid rgb(202, 201, 204);
  //     border-radius: 10px;
  //     background: #fff;
  //     padding-top: 30px;
  //     box-sizing: border-box;
  //     width: 100%;
  //     .el-input,
  //     /deep/ .el-textarea {
  //       width: 400px;
  //     }
  //     .btnBox {
  //       margin: 0 270px 20px;
  //       width: 200px;
  //       display: flex;
  //       justify-content: space-between;
  //     }
  //   }
  // }
  /deep/ .el-dialog__body {
    padding: 0 30px 0 0;
  }
  /*里面的代码可以根据自己需求去进行更改*/
  /* 设置滚动条的样式 */
  ::-webkit-scrollbar {
    width: 4px;
  }
  /* 滚动槽 */
  ::-webkit-scrollbar-track {
    -webkit-box-shadow: inset006pxrgba(0, 0, 0, 0.3);
    border-radius: 10px;
  }
  /* 滚动条滑块 */
  ::-webkit-scrollbar-thumb {
    border-radius: 10px;
    background: #8b8b8b;
    -webkit-box-shadow: inset006pxrgba(0, 0, 0, 0.5);
  }
  ::-webkit-scrollbar-thumb:window-inactive {
    background: #8b8b8b;
    height: 289px;
  }
  /deep/ .el-input__inner {
    background-color: transparent !important;
    border: 1px solid;
    color: white;
  }
  /deep/ .el-dialog {
    background: #303030;
  }
  /deep/.el-range-editor.is-active,
  .el-range-editor.is-active:hover,
  .el-select .el-input.is-focus .el-input__inner {
    border: 1px solid;
  }
  /deep/.el-dialog__title {
    color: white;
  }
  /deep/.el-form-item__label {
    color: white;
  }
}
.btnBox{
  //position: absolute;
  //bottom: 0;
  //right: 0;
}
</style>