田源
2024-11-01 8c107924ebc49105fa81f13f972f1710b42c1503
Source/plt-web/plt-web-ui/src/views/systemModel/mangeModel/index.vue
@@ -3,7 +3,8 @@
    <el-aside>
      <basic-container>
        <div style="max-height: calc(100vh - 150px);overflow: auto">
          <avue-tree :key="refresh" node-key="id" ref="tree" :data="treeData" :option="treeOption" @node-click="nodeClick">
          <avue-tree :key="refresh" ref="tree" :data="treeData" :option="treeOption" node-key="id"
                     @node-click="nodeClick">
          <span slot-scope="{ node, data }" class="el-tree-node__label">
           <span style="font-size: 15px">
              <i class="el-icon-s-promotion"></i>
@@ -17,38 +18,96 @@
    <el-main>
      <basic-container>
        <el-form ref="form" :model="form" label-width="85px" style="max-height: calc(100vh - 180px);overflow: auto;">
        <div v-if="form.childType && form.childType !== 0 && !addStatus && !editStatus" class="btnBox">
          <el-button :disabled="mangeShowBtn ? false : !childTypeBtn" icon="el-icon-plus" plain
                     size="small"
                     type="primary" @click="addClickHandler">增加
          </el-button>
          <el-button :disabled="mangeShowBtn" icon="el-icon-edit" plain size="small" type="primary"
                     @click="editClickHandler">修改
          </el-button>
          <el-button :disabled="mangeShowBtn" icon="el-icon-close" plain size="small" type="danger"
                     @click="delClickHandler">删除
          </el-button>
          <el-button :disabled="mangeShowBtn ? true : childTypeBtn" icon="el-icon-circle-plus-outline" plain
                     size="small"
                     type="primary" @click="addMethodsClickHandler">增加操作类型
          </el-button>
          <el-button v-if="this.form.childType ? mangeShowBtn :true" icon="el-icon-circle-close" plain size="small"
                     type="danger"
                     @click="addClickHandler">删除非系统模块
          </el-button>
          <el-button v-if="this.form.childType ? mangeShowBtn :true" icon="el-icon-circle-close" plain size="small"
                     type="danger"
                     @click="addClickHandler">删除业务模块
          </el-button>
          <el-button :disabled="!mangeShowBtn" icon="el-icon-upload2" plain size="small" type="primary"
                     @click="upLoadClickHandler">导入
          </el-button>
          <el-button :disabled="!mangeShowBtn" icon="el-icon-download" plain size="small" type="primary"
                     @click="exportClickHandler">导出
          </el-button>
          <el-button icon="el-icon-upload2" plain size="small" type="primary" @click="sqlClickExportClick">导出sql
          </el-button>
        </div>
        <div v-else-if="form.childType && form.childType !== 0 &&(addStatus || editStatus)" class="btnBox">
          <el-button v-if="addStatus" icon="el-icon-check" plain size="small"
                     type="success" @click="addSaveClickHandler">保存
          </el-button>
          <el-button v-if="editStatus" icon="el-icon-check" plain size="small"
                     type="success" @click="editSaveClickHandler">保存
          </el-button>
          <el-button icon="el-icon-close" plain size="small"
                     type="danger" @click="addStatus=false;editStatus=false;">取消
          </el-button>
        </div>
        <div v-if="form.childType === 0" class="btnBox">
          <el-button icon="el-icon-edit" plain size="small" type="primary" @click="updataAliasClickHandler">修改别名
          </el-button>
          <el-button icon="el-icon-close" plain size="small" type="danger" @click="deleteOperationClickHandler">删除
          </el-button>
        </div>
        <el-form ref="form" :model="form" label-width="85px" style="max-height: calc(100vh - 200px);overflow: auto;">
          <span v-if="form.childType !== 0">
            <el-form-item label="模块名:">
            <el-input v-model="form.name" placeholder="请输入模块名"></el-input>
            <el-input v-model="form.name" :disabled="!editStatus && !addStatus" placeholder="请输入模块名"></el-input>
          </el-form-item>
          <el-form-item label="模块别名:">
            <el-input v-model="form.alias" placeholder="模块别名用来记录日志使用"></el-input>
            <el-input v-model="form.alias" :disabled="!editStatus && !addStatus" placeholder="模块别名用来记录日志使用"></el-input>
          </el-form-item>
                <el-form-item label="C/S:">
            <el-input v-model="form.pathC" :rows="3" placeholder="请输入C/S路径" type="textarea"></el-input>
            <el-form-item label="C/S:">
            <el-input v-model="form.pathC" :disabled="!editStatus && !addStatus" :rows="2" placeholder="请输入C/S路径"
                      type="textarea"></el-input>
          </el-form-item>
          <el-form-item label="B/S:">
            <el-input v-model="form.path" :rows="3" placeholder="请输入B/S路径" type="textarea"></el-input>
            <el-input v-model="form.path" :disabled="!editStatus && !addStatus" :rows="2" placeholder="请输入B/S路径"
                      type="textarea"></el-input>
          </el-form-item>
          <el-form-item label=".NET:">
            <el-input v-model="form.resourceDotNet" :rows="3" placeholder="请输入.NET" type="textarea"></el-input>
            <el-input v-model="form.resourceDotNet" :disabled="!editStatus && !addStatus" :rows="2"
                      placeholder="请输入.NET" type="textarea"></el-input>
          </el-form-item>
          <el-form-item label="Mobile:">
            <el-input v-model="form.resourceMobile" :rows="3" placeholder="请输入Mobile" type="textarea"></el-input>
            <el-input v-model="form.resourceMobile" :disabled="!editStatus && !addStatus" :rows="2"
                      placeholder="请输入Mobile" type="textarea"></el-input>
          </el-form-item>
          <el-form-item label="序号:">
            <el-input v-model="form.sort" placeholder="数字,描述该模块在其父模块下的显示顺序"></el-input>
            <el-input v-model="form.sort" :disabled="!editStatus && !addStatus"
                      placeholder="数字,描述该模块在其父模块下的显示顺序"></el-input>
          </el-form-item>
          <el-form-item label="简图:">
            <el-input v-model="form.source"></el-input>
          <el-form-item label="图标:">
<!--            <el-input v-model="form.source" :disabled="!editStatus && !addStatus"></el-input>-->
             <avue-input-icon v-model="form.source" :disabled="!editStatus && !addStatus" :icon-list="iconList" placeholder="请选择图标">
             </avue-input-icon>
          </el-form-item>
          <el-form-item label="描述:">
            <el-input v-model="form.remark" :rows="3" placeholder="请输入描述" type="textarea"></el-input>
            <el-input v-model="form.remark" :disabled="!editStatus && !addStatus" :rows="3" placeholder="请输入描述"
                      type="textarea"></el-input>
          </el-form-item>
          <el-form-item label="是否有效:">
            <el-switch
              v-model="form.isValid"
              :disabled="!editStatus && !addStatus"
              active-color="#13ce66"
              inactive-color="#ff4949">
            </el-switch>
@@ -81,50 +140,6 @@
          </el-form-item>
          </span>
        </el-form>
        <div v-if="form.childType && form.childType !== 0" class="btnBox">
          <el-button v-if="!addStatus" :disabled="mangeShowBtn ? false : !childTypeBtn" icon="el-icon-plus" plain
                     size="small"
                     type="primary" @click="addClickHandler">增加
          </el-button>
          <el-button v-if="addStatus" icon="el-icon-check" plain size="small"
                     type="success" @click="addSaveClickHandler">保存
          </el-button>
          <el-button v-if="!editStatus" :disabled="mangeShowBtn" icon="el-icon-edit" plain size="small" type="primary"
                     @click="editClickHandler">修改
          </el-button>
          <el-button v-if="editStatus" icon="el-icon-check" plain size="small"
                     type="success" @click="editSaveClickHandler">保存
          </el-button>
          <el-button :disabled="mangeShowBtn" icon="el-icon-close" plain size="small" type="danger"
                     @click="delClickHandler">删除
          </el-button>
          <el-button :disabled="mangeShowBtn ? true : childTypeBtn" icon="el-icon-circle-plus-outline" plain
                     size="small"
                     type="primary" @click="addMethodsClickHandler">增加操作类型
          </el-button>
          <el-button v-if="this.form.childType ? mangeShowBtn :true" icon="el-icon-circle-close" plain size="small"
                     type="danger"
                     @click="addClickHandler">删除非系统模块
          </el-button>
          <el-button v-if="this.form.childType ? mangeShowBtn :true" icon="el-icon-circle-close" plain size="small"
                     type="danger"
                     @click="addClickHandler">删除业务模块
          </el-button>
          <el-button :disabled="!mangeShowBtn" icon="el-icon-upload2" plain size="small" type="primary"
                     @click="upLoadClickHandler">导入
          </el-button>
          <el-button :disabled="!mangeShowBtn" icon="el-icon-download" plain size="small" type="primary"
                     @click="exportClickHandler">导出
          </el-button>
          <el-button icon="el-icon-upload2" plain size="small" type="primary" @click="sqlClickExportClick">导出sql
          </el-button>
        </div>
        <div v-if="form.childType === 0" class="btnBox">
          <el-button icon="el-icon-edit" plain size="small" type="primary" @click="updataAliasClickHandler">修改别名
          </el-button>
          <el-button icon="el-icon-close" plain size="small" type="danger" @click="deleteOperationClickHandler">删除
          </el-button>
        </div>
      </basic-container>
    </el-main>
    <el-dialog
@@ -133,7 +148,7 @@
      append-to-body="true"
      class="avue-dialog"
      title="操作分类"
      width="60%"
      width="500px"
    >
      <avue-crud
        ref="methodsCrud"
@@ -142,15 +157,14 @@
        :table-loading="methodsLoading"
        @row-click="rowMethodsClickHandler"
        @selection-change="selectMethodsChange">
      </avue-crud>
      <span slot="footer" class="dialog-footer">
         <el-button @click="methodsVisble = false">取 消</el-button>
         <el-button type="primary" @click="methodsSaveClickHandler">保 存</el-button>
         <el-button @click="methodsVisble = false">取 消</el-button>
        </span>
    </el-dialog>
    <!--导入    -->
    <upload-file ref="upload" fileName="files" :fileType="upFileType" :fileUrl="fileUrl" :tipList="tipList" title="导入"
    <upload-file ref="upload" :fileType="upFileType" :fileUrl="fileUrl" :tipList="tipList" fileName="files" title="导入"
                 @updata="resetFormValue"></upload-file>
  </el-container>
</template>
@@ -170,11 +184,13 @@
} from "@/api/systemModel/mangeModel/api"
import func from "@/util/func";
import basicOption from "@/util/basic-option";
import iconList from "@/config/iconList";
export default {
  name: "index",
  data() {
    return {
      iconList: iconList,
      tipList: [],
      upFileType: ['xls', 'xlsx'],
      fileUrl: 'api/hmSysModConfigController/importModule',
@@ -187,6 +203,7 @@
        addBtn: false,
        menu: false,
        height: 500,
        header: false,
        column: [
          {
            label: '操作分类',
@@ -202,7 +219,7 @@
      addStatus: false,
      editStatus: false,
      nodeRow: {},
      currentClickNode:null,
      currentClickNode: null,
      form: {},
      treeData: [],
      treeOption: {
@@ -256,7 +273,7 @@
  },
  methods: {
    // 树行点击
    nodeClick(row,node) {
    nodeClick(row, node) {
      console.log(row.childType);
      this.form = {...row};
      this.nodeRow = {...row};
@@ -405,12 +422,14 @@
    // 增加操作类型
    addMethodsClickHandler() {
      this.methodsLoading = true;
      getSysModelTreeMenuByPID({parentId: 'sysOptionNode'}).then(res => {
        if (res.data.code === 200) {
      getSysModelTreeMenuByPID({parentId: 'operateNode'}).then(res => {
        if (res.data.code === 200 && res.data.data.length > 0) {
          this.methodsVisble = true;
          const data = res.data.data[0].children;
          const data = res.data.data;
          this.methodsData = data;
          this.methodsLoading = false;
        } else {
          this.$message.error('未找到可增加的操作类型');
        }
      })
    },
@@ -433,7 +452,7 @@
          this.methodsVisble = false;
          this.$message.success(res.data.msg);
          this.form.childType = null;
          this.refresh = Math.random(); // 刷新左侧树
          this.handleRefreshTree('add')
        }
      })
    },
@@ -498,17 +517,17 @@
    },
    handleRefreshTree(type) {
      //type:add\edit\del
      if(type=="del"){
      if (type == "del") {
        this.$refs.tree.remove(this.currentClickNode);
        this.currentClickNode=null;
        this.form={};
      }else{
        this.currentClickNode = null;
        this.form = {};
      } else {
        if (this.currentClickNode) {
          let node = this.currentClickNode.parent;
          node.loaded = false;
          node.expand();
          this.$refs.tree.setCurrentNode(this.currentClickNode);
        }else {
        } else {
          this.refresh = Math.random(); // 刷新左侧树
        }
      }
@@ -526,6 +545,8 @@
.btnBox {
  display: flex;
  justify-content: center;
  justify-content: left;
  margin-bottom: 15px;
}
</style>