wangting
2025-01-08 832688e48b3b6351ba3cd9ba490d9de0ab83e2fe
Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/Icons/index.vue
@@ -4,7 +4,7 @@
      <basic-container>
        <div style="display: flex;justify-content: space-between;flex-wrap: wrap">
          <div class="tag-group">
            <span class="tag-group__title">分组</span>
            <span class="tag-group__title" v-if="types.length>0">分组</span>
            <el-tag
              v-for="item in types"
              :key="item.key"
@@ -17,13 +17,19 @@
        </div>
        <div style="height: calc(100vh - 190px)">
          <div>
            <el-button icon="el-icon-plus" type="primary" size="mini" @click="addHandler">添加</el-button>
            <el-button icon="el-icon-upload" type="primary" size="mini" @click="uploadHandler">上传</el-button>
            <el-button v-if="permissionList.addBtn" class="button-custom-icon" type="primary" size="small" @click="addHandler">
              <icon-show :name="permissionList.addBtn.source"></icon-show>
              添加
            </el-button>
            <el-button v-if="permissionList.uploadBtn" class="button-custom-icon" type="primary" size="small" @click="uploadHandler">
              <icon-show :name="permissionList.uploadBtn.source"></icon-show>
              上传
            </el-button>
          </div>
          <el-tabs v-model="activeName" @tab-click="handleClick">
            <el-tab-pane v-for="item in iconList" :label="item.lable" :name="item.lable" style="height: calc(100vh - 270px);overflow: auto ">
              <div class="iconList">
              <div class="iconList" :key="key">
                <div class="iconItem" v-for="svg in item.list"
                     :data-value="svg.name" v-right-click="{action:checkSvg,data:svg}">
                  <div class="svgContent" v-html="svg.content"></div>
@@ -51,11 +57,11 @@
          <pre style="font-size: 12px;color: #909399;margin-top: 0;padding:5px;background-color: #F5F7FA">上传文件为json文件,示例如下
[{
    "name": "图标库名:图标名称",
    "svg": "html代码"
    "svg": "svg的html代码"
  },
  {
    "name": "图标库名:图标名称",
    "svg": "html代码"
    "svg": "svg的html代码"
 }]
 文件内容须严格按照示例格式,name为图标库名+图标名称,以“:”分隔,svg为图标html代码</pre>
        </el-dialog>
@@ -87,6 +93,7 @@
import {getStore} from "@/util/store";
import store from "@/store";
import {getToken} from "@/util/auth";
import {mapGetters} from "vuex";
export default {
name: "index",
@@ -103,6 +110,7 @@
  },
  data() {
    return {
      key:1,
      types: [],
      checkedTypes:[],
      searchText:'',
@@ -215,6 +223,13 @@
        "Authorizationtoken":getToken(),
      };
    },
    ...mapGetters(["permission"]),
    permissionList() {
      return {
        addBtn: this.vaildData(this.permission[this.$route.query.id].ADD, false),
        uploadBtn: this.vaildData(this.permission[this.$route.query.id].UPLOAD, false),
      };
    },
  },
  watch:{
    'form.groups'(val){
@@ -226,7 +241,8 @@
  },
  created() {
    this.getGroups();
    this.initList();  },
    this.initList();
  },
  methods:{
    getGroups() {
      getDicts('EnumIconGroups').then(res => {
@@ -249,6 +265,7 @@
            if (this.iconList.length > 0) {
              this.activeName = this.iconList[0].lable;
            }
            this.key++;
          } else {
            this.$message.error(res.data.msg);
          }
@@ -472,7 +489,14 @@
}
</script>
<style scoped>
<style scoped lang="scss">
::v-deep{
  svg{
    font-size: inherit;
    height: 100%;
    width:100%;
  }
}
.tag-group{font-size: 14px;}
.el-tag{
  margin: 0 0 10px 10px;
@@ -489,7 +513,10 @@
  text-align: center;
}
.iconList .iconItem .svgContent{
  font-size: 26px;
  font-size: 24px;
  width: 24px;
  height: 24px;
  margin: 0 auto;
}
.iconList .iconItem .svgContent:hover{
  transform: scale(1.5);