月球大数据地理空间分析展示平台-【中台】
WX
2023-07-21 aa82e3631a7571ce14f44ab5cb57401abd89692e
Merge branch 'master' of http://192.168.20.39:8989/r/LunarMidplane
已修改8个文件
945 ■■■■ 文件已修改
public/config/config.js 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/api.js 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/lang/en.js 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/lang/zh.js 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/AuthorizationManagement/roleResAuthorization.vue 417 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/datamanage/js/layerManage.js 45 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/datamanage/layerManagement.vue 402 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/maintenance/empowerController.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
public/config/config.js
@@ -8,9 +8,9 @@
var fmeHost = isWeb ? "103.85.165.99" + ":8051" : '192.168.20.83' + ":88";
var iisHost = isWeb ? "103.85.165.99" + ":8050" : '192.168.20.83' + ":80";
const webUrl = isWeb ? "/web" : "";
  //SDK许可
var  StaticFileBaseUrl= webUrl + "/CIMSDK/";
const webUrl = true ? "/middle" : "";
//SDK许可
var StaticFileBaseUrl = webUrl + "/CIMSDK/";
var menuStartName = "SmartEarth三维地理信息系统平台V7.0";
var LFData = "http://" + iisHost + "/LFData";
src/api/api.js
@@ -203,6 +203,45 @@
export function deleteRess(params) {
  return request.get('/res/deleteRess', { params: params });
}
//资源表查询所有
export function res_selectAll(params) {
  return request.get('/res/selectAll', { params: params });
}
//资源列表-插入一条
export function res_insert(params) {
  return request.post('/res/insert', params);
}
//资源列表-插入一条
export function res_delete(params) {
  return request.get('/res/delete', { params: params });
}
//资源列表-更新多条
export function res_updates(params) {
  return request.post('/res/updates', params);
}
//角色资源-根据ID查询
export function roleRes_selectResByRole(params) {
  return request.get('/roleRes/selectResByRole', { params: params });
}
//角色资源-批量新增
export function roleRes_inserts(params) {
  return request.post('/roleRes/inserts', params);
}
//角色资源-删除多条
export function roleRes_deletes(params) {
  return request.get('/roleRes/deletes', { params: params });
}
//资源上传
export function upload_res(params) {
  return request.post('/res/upload', params);
src/assets/lang/en.js
@@ -80,6 +80,7 @@
      menuName: 'menu name',
      menuType: 'Menu Type',
      layerName: 'Layer Name',
      englishName: 'English name',
      layerType: 'Layer Type',
      serviceName: 'service name',
      serviceType: 'service type',
@@ -89,15 +90,28 @@
      dataType: 'data type',
      istrue: 'true',
      isfalse: 'false',
      isEnable: 'Enable',
      isDisuse: 'Disuse',
      isStop: 'Stop',
      testAddress: 'Test Address',
      firm: 'firm',
      descr: 'descr',
      status: 'status',
      proxyAddress: 'Proxy Address',
      enTableName: 'English Table Name',
      prompt1: 'Please enter a layer name',
      prompt2: 'Please select a layer type',
      prompt3: 'Please select a service type',
      prompt4: 'Please enter the service address',
      prompt6: 'Please enter the name of the English table (eg: m_geocontrollpoint)',
      prompt6: 'Please enter an English name',
      prompt7: 'Please enter note information',
      prompt8: 'Please select a data type',
      prompt9: 'Please enter the testing address',
      prompt10: 'Please enter descriptive information',
      prompt11: 'Please enter the proxy address',
      prompt12: 'Please enter a table name',
      tableName: 'Table Name'
    },
    dataStaticObj: {
src/assets/lang/zh.js
@@ -80,6 +80,7 @@
      menuName: '菜单名称',
      menuType: '菜单类型',
      layerName: '图层名称',
      englishName: '英文名称',
      layerType: '图层类型',
      serviceName: '服务名称',
      serviceType: '服务类型',
@@ -89,14 +90,27 @@
      dataType: '数据类型',
      istrue: '是',
      isfalse: '否',
      isEnable: '启用',
      isDisuse: '废弃',
      isStop: '停止',
      testAddress: '测试地址',
      firm: '厂商',
      descr: '描述',
      status: '状态',
      proxyAddress: '代理地址',
      enTableName: '英文表名称',
      prompt1: '请输入图层名称',
      prompt2: '请选择图层类型',
      prompt3: '请选择服务类型',
      prompt4: '请输入服务地址',
      prompt6: '请输入英文表名称(如:m_geocontrolpoint)',
      prompt6: '请输入英文名称',
      prompt7: '请输入备注信息',
      prompt8: '请选择数据类型',
      prompt9: '请输入测试地址',
      prompt10: '请输入描述信息',
      prompt11: '请输入代理地址',
      prompt12: '请输入表名称',
      tableName: '表名称'
    },
    dataStaticObj: {
      type1: '服务名称',
src/views/AuthorizationManagement/roleResAuthorization.vue
@@ -41,7 +41,7 @@
          border
          @row-click="singleElection"
          highlight-current-row
           height="calc(100% - 80px)"
          height="calc(100% - 80px)"
        >
          <el-table-column
            align="center"
@@ -123,221 +123,18 @@
          </div>
        </div>
        <el-divider class="divider" />
        <el-table
          :data="usertableData"
          border
          style="width: 100%"
           height="calc(100% - 80px)"
          @selection-change="handleSelectionChange"
        >
          <el-table-column
            type="selection"
            width="55"
          > </el-table-column>
          <el-table-column
            align="center"
            type="index"
            :label="$t('dataManage.styleObj.index')"
          />
          <el-table-column
            prop="resName"
            :label="$t('operatManage.UserRoleAuthorizationObj.name')"
          >
          </el-table-column>
          <el-table-column
            prop="server"
            :label="$t('operatManage.UserRoleAuthorizationObj.server')"
          >
          </el-table-column>
        </el-table>
        <div
          style="margin-top: 10px; text-align: center"
          class="pagination_box"
        >
          <el-pagination
            @size-change="userhandleSizeChange"
            @current-change="userhandleCurrentChange"
            :current-page="userlistData.pageIndex"
            :page-sizes="[10, 20, 50, 100]"
            :page-size="userlistData.pageSize"
            layout="prev, pager, next"
            :total="usercount"
          >
          </el-pagination>
        </div>
      </div>
    </div>
    <!-- <div class="menuSettings_tree">
      <My-bread
        :list="[
          `${$t('operatManage.operatManage')}`,
          `${$t('operatManage.RoleResAuthorization')}`,
        ]"
      ></My-bread>
      <el-divider />
      <div class="menuTreeBox">
        <el-tree
          :data="depList"
          :props="defaultProps"
          :show-checkbox="true"
          :check-on-click-node="true"
          :check-strictly="true"
          node-key="id"
          @check="treeCheck"
          ref="treeForm"
          ref="tree"
          :props="defaultLayerrops"
          node-key="resid"
          :data="layerData"
          show-checkbox
          :default-expanded-keys="[1]"
        >
        </el-tree>
      </div>
    </div>
    <div
      class="menuSettings_tree"
      style="margin-left: 10px; width: calc(50% - 172px)"
    >
      <div
        style="
          font-size: 14px;
          color: #606266;
          line-height: 1;
          cursor: text;
          position: relative;
          top: 10px;
          margin-left: 10px;
        "
      >
        {{ $t('operatManage.UserRoleAuthorizationObj.RoleTable') }}
      </div>
      <el-divider />
      <el-table
        :data="tableData"
        style="width: 100%"
        @row-click="singleElection"
        highlight-current-row
        height="85%"
        :header-cell-style="{
          background: 'transparent',
        }"
      >
        <el-table-column align="center" width="55">
          <template slot-scope="scope">
            <el-radio
              class="radio"
              v-model="templateSelection"
              :label="scope.row.id"
              >&nbsp;</el-radio
            >
          </template>
        </el-table-column>
        <el-table-column
          align="center"
          type="index"
          :label="$t('dataManage.styleObj.index')"
        />
        <el-table-column
          prop="name"
          :label="$t('operatManage.UserRoleAuthorizationObj.name')"
        >
        </el-table-column>
      </el-table>
      <div style="text-align: center; margin-top: 20px">
        <el-pagination
          @size-change="handleSizeChange"
          @current-change="handleCurrentChange"
          :current-page="listData.pageIndex"
          :page-sizes="[10, 20, 50, 100]"
          :page-size="userlistData.pageSize"
          layout="total, sizes, prev, pager, next, jumper"
          :total="count"
        >
        </el-pagination>
      </div>
    </div>
    <div class="menuSettings">
      <div
        style="
          font-size: 14px;
          color: #606266;
          line-height: 1;
          cursor: text;
          position: relative;
          top: 5px;
          margin-left: 10px;
          display: flex;
          align-items: center;
        "
      >
        <span>
          {{ $t('operatManage.UserRoleAuthorizationObj.userTable') }}</span
        >
        <div class="btn" style="margin-left: auto">
          <el-button
            v-if="menuStatus.insert"
            type="primary"
            icon="el-icon-circle-plus-outline"
            size="small"
            :disabled="roleid == null ? true : false"
            @click="adduser"
            >{{ $t('operatManage.UserRoleAuthorizationObj.Added') }}</el-button
          >
          <el-button
            v-if="menuStatus.delete"
            type="danger"
            icon="el-icon-delete"
            size="small"
            @click="deletesUser"
            :disabled="roleid == null ? true : false"
            >{{ $t('operatManage.UserRoleAuthorizationObj.delete') }}</el-button
          >
        </div>
      </div>
      <el-divider class="divider" />
      <el-table
        :data="usertableData"
        stripe
        style="width: 100%"
        height="85%"
        @selection-change="handleSelectionChange"
        :header-cell-style="{
          background: 'transparent',
        }"
      >
        <el-table-column type="selection" width="55"> </el-table-column>
        <el-table-column
          align="center"
          type="index"
          :label="$t('dataManage.styleObj.index')"
        />
        <el-table-column
          prop="resName"
          :label="$t('operatManage.UserRoleAuthorizationObj.name')"
        >
        </el-table-column>
        <el-table-column
          prop="server"
          :label="$t('operatManage.UserRoleAuthorizationObj.server')"
        >
        </el-table-column>
      </el-table>
      <div style="margin-top: 20px; text-align: center" class="pagination_box">
        <el-pagination
          @size-change="userhandleSizeChange"
          @current-change="userhandleCurrentChange"
          :current-page="userlistData.pageIndex"
          :page-sizes="[10, 20, 50, 100]"
          :page-size="userlistData.pageSize"
          layout="total, sizes, prev, pager, next, jumper"
          :total="usercount"
        >
        </el-pagination>
      </div>
    </div> -->
    <el-dialog
      :title="$t('operatManage.UserRoleAuthorizationObj.Added')"
      :visible.sync="dialogTableVisible"
@@ -411,6 +208,10 @@
  roleResDeletes,
  resSelectCountForRole,
  roleResInserts,
  res_selectAll,
  roleRes_selectResByRole,
  roleRes_inserts,
  roleRes_deletes
} from '../../api/api';
export default {
  //import引入的组件需要注入到对象中才能使用
@@ -443,7 +244,10 @@
      templateSelection: '',
      //   当前选择的行的数据
      checkList: [],
      defaultLayerrops: {
        children: "children",
        label: "cnName",
      },
      defaultProps: {
        children: 'children',
        label: 'name',
@@ -461,6 +265,9 @@
      debid: null,
      roleid: null,
      addmultipleSelection: [],
      layerData: [],
      layeroption: []
    };
  },
  methods: {
@@ -489,50 +296,91 @@
        })
        .catch(() => { });
    },
    adduser() {
      this.dialogTableVisible = true;
      this.getadduserList();
    async adduser() {
      var val = this.$refs.tree.getCheckedNodes(false, true); // 利用这个方法就可以获取到子节点+父节点)
      var std = [];
      for (var i in val) {
        if (val[i].id == 0) {
          val[i].roleid = this.roleid
          std.push(val[i])
        }
      }
      if (std.length == 0) {
        return
      }
      const data = await roleRes_inserts(std)
      if (data.code != 200) {
        this.$message.error('授权失败');
      } else {
        this.$message({
          type: 'success',
          message: '授权成功!',
        });
      }
      this.getuserList();
      // this.dialogTableVisible = true;
      // this.getadduserList();
    },
    //用户删除
    async deletesUser() {
      let arr = [];
      this.usermultipleSelection.forEach((e) => {
        arr.push(e.id);
      });
      this.$confirm('此操作将永久删除该权限, 是否继续?', '提示', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        type: 'warning'
      }).then(async () => {
        const data = await roleResDeletes({ ids: arr.toString() });
        if (data.code == 200) {
          this.InsertFormdialog = false;
          this.$message({
            message: '删除成功!',
            type: 'success',
          });
          this.getuserList();
        } else {
          this.$message({
            message: '删除失败!',
            type: 'warning',
          });
      var val = this.$refs.tree.getCheckedNodes(false, true); // 利用这个方法就可以获取到子节点+父节点)
      var std = [];
      for (var i in val) {
        if (val[i].id > 0) {
          std.push(val[i].id)
        }
      }).catch(() => {
      }
      var res = this.layeroption;
      var arr = [];
      for (var i in res) {
        if (res[i].id > 0 && std.indexOf(res[i].id) == -1) {
          arr.push(res[i].id)
        }
      }
      if (arr.length == 0) {
        return
      }
      const data = await roleRes_deletes({ ids: arr.toString() });
      if (data.code != 200) {
        this.$message.error('授权失败');
      } else {
        this.$message({
          type: 'info',
          message: '已取消删除'
          type: 'success',
          message: '授权成功!',
        });
      });
      // const data = await roleResDeletes({ ids: arr.toString() });
      // if (data.code !== 200) {
      //   return this.$message.error('删除失败');
      // }
      // this.$message({
      //   message: '删除成功',
      //   type: 'success',
      }
      this.getuserList()
      // let arr = [];
      // this.usermultipleSelection.forEach((e) => {
      //   arr.push(e.id);
      // });
      // this.getuserList();
      // this.$confirm('此操作将永久删除该权限, 是否继续?', '提示', {
      //   confirmButtonText: '确定',
      //   cancelButtonText: '取消',
      //   type: 'warning'
      // }).then(async () => {
      //   const data = await roleResDeletes({ ids: arr.toString() });
      //   if (data.code == 200) {
      //     this.InsertFormdialog = false;
      //     this.$message({
      //       message: '删除成功!',
      //       type: 'success',
      //     });
      //     this.getuserList();
      //   } else {
      //     this.$message({
      //       message: '删除失败!',
      //       type: 'warning',
      //     });
      //   }
      // }).catch(() => {
      //   this.$message({
      //     type: 'info',
      //     message: '已取消删除'
      //   });
      // });
    },
    //用户表多选
    handleSelectionChange(val) {
@@ -571,6 +419,35 @@
    handleCurrentChange(val) {
      this.listData.pageIndex = val;
      this.getRole();
    },
    //获取资源列表
    async getlayerTree() {
      this.layerData = []
      const data = await res_selectAll();
      if (data.code != 200) {
        return this.$message.error("图层列表查询失败");
      }
      var val = this.setTreeData(data.result);
      val.sort(function (a, b) {
        return a.sort - b.sort
      })
      this.layerData = val
    },
    setTreeData(source) {
      let cloneData = JSON.parse(JSON.stringify(source)); // 对源数据深度克隆
      return cloneData.filter((father) => {
        // 循环所有项
        let branchArr = cloneData.filter((child) => father.resid == child.pid);
        if (branchArr.length > 0) {
          branchArr.sort(function (a, b) {
            return a.sort - b.sort
          })
        }
        branchArr.length > 0 ? (father.children = branchArr) : ""; // 给父级添加一个children属性,并赋值
        // 属于同一对象问题,例如:令 a=b、c=1 ,然后再令 b.c=c , 那么 a.c=b.c=c=1 ;同理,后续令 c.d=2 ,那么 a.c.d 也是=2;
        // 由此循环多次后,就能形成相应的树形数据结构
        return father.pid == 0; // 返回一级菜单
      });
    },
    // 角色单选
    singleElection(row) {
@@ -620,25 +497,41 @@
      }
    },
    async getadduserList() {
      this.addlistData.roleid = this.roleid;
      // this.addlistData.roleid = this.roleid;
      // this.addlistData.debid = this.debid;
      const data = await resSelectCountForRole(this.addlistData);
      if (data.code !== 200) {
        return this.$message.error('新增资源列表请求错误');
      }
      // // this.addlistData.debid = this.debid;
      // const data = await resSelectCountForRole(this.addlistData);
      // if (data.code !== 200) {
      //   return this.$message.error('新增资源列表请求错误');
      // }
      this.gridData = data.result;
      this.addcount = data.count;
      // this.gridData = data.result;
      // this.addcount = data.count;
    },
    // 用户表请求
    async getuserList() {
      const data = await roleReselectByPageAndCount(this.userlistData);
      this.layerData = [];
      this.layeroption = [];
      const data = await roleRes_selectResByRole({ roleid: this.userlistData.roleid });
      if (data.code !== 200) {
        return this.$message.error('用户资源列表请求错误');
        return this.$message.error('根据ID查询资源失败');
      }
      this.usertableData = data.result;
      this.usercount = data.count;
      var std = [];
      this.layeroption = data.result;
      for (var i in data.result) {
        if (data.result[i].id > 0 && data.result[i].type != 1) {
          std.push(data.result[i].resid)
        }
      }
      var val = this.setTreeData(data.result);
      val.sort(function (a, b) {
        return a.sort - b.sort
      })
      this.layerData = val
      this.$refs.tree.setCheckedKeys(std);
    },
    // 角色表请求
    async getRole() {
@@ -676,6 +569,7 @@
      }
    }
    this.getMenuTree();
    // this.getlayerTree();
  },
};
</script>
@@ -685,14 +579,14 @@
  height: calc(100% - 20px);
  //height: 98%;
  width: 98%;
  padding:10px 1%;
  padding: 10px 1%;
  .menuSettings_tree {
    width: 100%;
    height: 100%;
    display: flex;
    justify-content: space-around;
    .content_left_box{
    .content_left_box {
      padding: 10px;
      width: 20%;
      height: calc(100% - 20px);
@@ -717,5 +611,4 @@
.el-table /deep/ tr {
  background-color: transparent !important;
}
</style>
src/views/datamanage/js/layerManage.js
@@ -1,8 +1,43 @@
export const serve_type = [
    'Mpt', 'Tileset', 'WMS', 'TMS'
];
export const data_type = [
    '基础勘察', '基础地灾', '基础测绘', '工程线路', '工程测绘', '工程洞库',
    '自动发布模型', '工程勘察', '工程地灾', '自动发布影像', '自动发布地形场景', '其他'
    {
        name: 'URL',
        value: 0
    }, {
        name: 'TMS',
        value: 1
    }, {
        name: 'WMTS',
        value: 2
    }, {
        name: 'WFS',
        value: 3
    }, {
        name: 'Tileset',
        value: 4
    },
]
export const data_type = [
    {
        name: 'GisServer',
        value: 1
    }, {
        name: 'GeoServer',
        value: 2
    }, {
        name: '数简',
        value: 3
    }, {
        name: '其他',
        value: 0
    }
]
src/views/datamanage/layerManagement.vue
@@ -58,7 +58,7 @@
                  >{{ $t("shuJuGuanLi.butten.NewPeer") }}</el-button>
                </el-form-item>
                <!-- 子级节点添加 -->
                <el-form-item v-show="menuStatus.insert">
                <el-form-item v-show="menuStatus.insert && formInline.type == 1">
                  <el-button
                    type="success"
                    size="small"
@@ -108,40 +108,70 @@
            <!-- 菜单名称 -->
            <el-form-item :label="$t('dataManage.layerObj.layerName')">
              <el-input
                :placeholder="$t('dataManage.layerObj.prompt1')"
                style="width: 60%;"
                style="width: 80%;"
                v-model="formInline.cnName"
                :placeholder="$t('dataManage.layerObj.prompt1')"
              ></el-input>
            </el-form-item>
            <!-- 英文名称 -->
            <el-form-item :label="$t('dataManage.layerObj.englishName')">
              <el-input
                style="width: 80%;"
                v-model="formInline.enName"
                :placeholder="$t('dataManage.layerObj.prompt6')"
              ></el-input>
            </el-form-item>
            <!-- 菜单类型 -->
            <el-form-item :label="$t('dataManage.layerObj.layerType')">
              <el-select
                :placeholder="$t('dataManage.layerObj.prompt2')"
                clearable
                style="width: 60%;"
                style="width: 80%;"
                v-model="formInline.type"
                :placeholder="$t('dataManage.layerObj.prompt2')"
              >
                <el-option
                  label="目录"
                  value='1'
                  label="图层组"
                  :value='1'
                ></el-option>
                <el-option
                  label="图层"
                  value='2'
                  label="普通图层"
                  :value='2'
                ></el-option>
                <el-option
                  label="代理图层"
                  :value='3'
                ></el-option>
              </el-select>
            </el-form-item>
            <!-- 数据类型 -->
            <el-form-item
              v-show="formInline.type ===  2 || formInline.type === 3 "
              :label="$t('dataManage.layerObj.firm')"
            >
              <el-select
                clearable
                style="width: 80%;"
                v-model="formInline.firm"
                :placeholder="$t('dataManage.layerObj.prompt8')"
              >
                <el-option
                  v-for="item in dataType"
                  :key="item.value"
                  :label="item.label"
                  :value="item.value"
                >
                </el-option>
              </el-select>
            </el-form-item>
            <!-- 服务类型 -->
            <el-form-item
              v-show="formInline.type == 2"
              v-show="formInline.type ===  2 || formInline.type === 3 "
              :label="$t('dataManage.layerObj.serviceType')"
            >
              <el-select
                clearable
                style="width: 60%;"
                v-model="formInline.serveType"
                style="width: 80%;"
                v-model="formInline.category"
                :placeholder="$t('dataManage.layerObj.prompt3')"
              >
                <el-option
@@ -155,77 +185,86 @@
            </el-form-item>
            <!-- 服务地址 -->
            <el-form-item
              v-show="formInline.type == 2"
              v-show="formInline.type ===  2 || formInline.type === 3 "
              :label="$t('dataManage.layerObj.serviceAddress')"
            >
              <el-input
                :placeholder="$t('dataManage.layerObj.prompt4')"
                style="width: 60%;"
                style="width: 80%;"
                v-model="formInline.url"
              ></el-input>
            </el-form-item>
            <!-- 测试地址 -->
            <el-form-item
              v-show="formInline.type ===  2 || formInline.type === 3 "
              :label="$t('dataManage.layerObj.testAddress')"
            >
              <el-input
                :placeholder="$t('dataManage.layerObj.prompt9')"
                style="width: 80%;"
                v-model="formInline.test"
              ></el-input>
            </el-form-item>
            <!-- 代理地址 -->
            <el-form-item
              v-show="formInline.type ===  2 || formInline.type === 3 "
              :label="$t('dataManage.layerObj.proxyAddress')"
            >
              <el-input
                :disabled="!formInline.proxy"
                :placeholder="$t('dataManage.layerObj.prompt11')"
                style="width: 80%;"
                :value="formInline.proxy"
              ></el-input>
            </el-form-item>
            <!-- 英文表名 -->
            <el-form-item
              v-show="formInline.type == 2 && formInline.serveType =='WMS'"
              :label="$t('dataManage.layerObj.enTableName')"
              v-show="formInline.type ===  2 || formInline.type === 3 "
              :label="$t('dataManage.layerObj.tableName')"
            >
              <el-input
                :placeholder="$t('dataManage.layerObj.prompt6')"
                style="width: 60%;"
                v-model="formInline.enName"
                :placeholder="$t('dataManage.layerObj.prompt12')"
                style="width: 80%;"
                v-model="formInline.tab"
              ></el-input>
            </el-form-item>
            <!-- 数据类型 -->
            <el-form-item :label="$t('dataManage.layerObj.dataType')">
              <el-select
                clearable
                style="width: 60%;"
                v-model="formInline.dataType"
                :placeholder="$t('dataManage.layerObj.prompt8')"
              >
                <el-option
                  v-for="item in dataType"
                  :key="item.value"
                  :label="item.label"
                  :value="item.value"
                >
                </el-option>
              </el-select>
            </el-form-item>
            <!-- 是否显示 -->
            <el-form-item
              v-show="formInline.type == 2"
              :label="$t('dataManage.layerObj.displayOrNot')"
              v-show="formInline.type ===  2 || formInline.type === 3 "
              :label="$t('dataManage.layerObj.status')"
            >
              <el-radio
                v-model="formInline.isShow"
                label="0"
              > {{$t('dataManage.layerObj.isfalse')}}</el-radio>
                v-model="formInline.status"
                :label="0"
              > {{$t('dataManage.layerObj.isStop')}}</el-radio>
              <el-radio
                v-model="formInline.isShow"
                label="1"
              >{{$t('dataManage.layerObj.istrue')}}</el-radio>
                v-model="formInline.status"
                :label="1"
              >{{$t('dataManage.layerObj.isEnable')}}</el-radio>
              <el-radio
                v-model="formInline.status"
                :label="-1"
              >{{$t('dataManage.layerObj.isDisuse')}}</el-radio>
            </el-form-item>
            <!-- 是否为项目数据 -->
            <el-form-item
              v-show="formInline.type == 2"
              :label="$t('dataManage.layerObj.isItProjectData')"
            >
              <el-radio
                v-model="formInline.isProject"
                label="0"
              > {{$t('dataManage.layerObj.isfalse')}}</el-radio>
              <el-radio
                v-model="formInline.isProject"
                label="1"
              >{{$t('dataManage.layerObj.istrue')}}</el-radio>
            </el-form-item>
            <!-- <el-form-item :label="$t('dataManage.layerObj.isItProjectData')">
            <el-radio
              v-model="insertData.isProject"
              label="0"
            > {{$t('dataManage.layerObj.isfalse')}}</el-radio>
            <el-radio
              v-model="insertData.isProject"
              label="1"
            >{{$t('dataManage.layerObj.istrue')}}</el-radio>
          </el-form-item> -->
            <!-- 描述 -->
            <el-form-item :label="$t('common.bak')">
            <el-form-item :label="$t('dataManage.layerObj.descr')">
              <el-input
                style="width: 60%;"
                v-model="formInline.bak"
                :placeholder="$t('dataManage.layerObj.prompt7')"
                :placeholder="$t('dataManage.layerObj.prompt10')"
                style="width: 80%;"
                v-model="formInline.descr"
                type="textarea"
              ></el-input>
            </el-form-item>
            <el-form-item v-show="menuStatus.update">
@@ -263,6 +302,14 @@
              :placeholder="$t('dataManage.layerObj.prompt1')"
            ></el-input>
          </el-form-item>
          <!-- 英文名称 -->
          <el-form-item :label="$t('dataManage.layerObj.englishName')">
            <el-input
              style="width: 80%;"
              v-model="insertData.enName"
              :placeholder="$t('dataManage.layerObj.prompt6')"
            ></el-input>
          </el-form-item>
          <!-- 菜单类型 -->
          <el-form-item :label="$t('dataManage.layerObj.layerType')">
            <el-select
@@ -272,24 +319,48 @@
              :placeholder="$t('dataManage.layerObj.prompt2')"
            >
              <el-option
                label="目录"
                value='1'
                label="图层组"
                :value='1'
              ></el-option>
              <el-option
                label="图层"
                value='2'
                label="普通图层"
                :value='2'
              ></el-option>
              <el-option
                label="代理图层"
                :value='3'
              ></el-option>
            </el-select>
          </el-form-item>
          <!-- 数据类型 -->
          <el-form-item
            v-show="insertData.type === 2 || insertData.type === 3"
            :label="$t('dataManage.layerObj.firm')"
          >
            <el-select
              clearable
              style="width: 80%;"
              v-model="insertData.firm"
              :placeholder="$t('dataManage.layerObj.prompt8')"
            >
              <el-option
                v-for="item in dataType"
                :key="item.value"
                :label="item.label"
                :value="item.value"
              >
              </el-option>
            </el-select>
          </el-form-item>
          <!-- 服务类型 -->
          <el-form-item
            v-show="insertData.type == 2"
            v-show="insertData.type === 2 || insertData.type === 3"
            :label="$t('dataManage.layerObj.serviceType')"
          >
            <el-select
              clearable
              style="width: 80%;"
              v-model="insertData.serveType"
              v-model="insertData.category"
              :placeholder="$t('dataManage.layerObj.prompt3')"
            >
              <el-option
@@ -303,7 +374,7 @@
          </el-form-item>
          <!-- 服务地址 -->
          <el-form-item
            v-show="insertData.type == 2"
            v-show="insertData.type === 2 || insertData.type === 3"
            :label="$t('dataManage.layerObj.serviceAddress')"
          >
            <el-input
@@ -312,53 +383,48 @@
              v-model="insertData.url"
            ></el-input>
          </el-form-item>
          <!-- 英文表名 -->
          <el-form-item
            v-show="insertData.type == 2 && insertData.serveType =='WMS'"
            :label="$t('dataManage.layerObj.enTableName')"
            v-show="insertData.type === 2 || insertData.type === 3"
            :label="$t('dataManage.layerObj.testAddress')"
          >
            <el-input
              :placeholder="$t('dataManage.layerObj.prompt6')"
              :placeholder="$t('dataManage.layerObj.prompt9')"
              style="width: 80%;"
              v-model="insertData.enName"
              v-model="insertData.test"
            ></el-input>
          </el-form-item>
          <!-- 数据类型 -->
          <el-form-item :label="$t('dataManage.layerObj.dataType')">
            <el-select
              clearable
          <!-- 英文表名 -->
          <el-form-item
            v-show="formInline.type ===  2 || formInline.type === 3 "
            :label="$t('dataManage.layerObj.tableName')"
          >
            <el-input
              :placeholder="$t('dataManage.layerObj.prompt12')"
              style="width: 80%;"
              v-model="insertData.dataType"
              :placeholder="$t('dataManage.layerObj.prompt8')"
            >
              <el-option
                v-for="item in dataType"
                :key="item.value"
                :label="item.label"
                :value="item.value"
              >
              </el-option>
            </el-select>
              v-model="insertData.tab"
            ></el-input>
          </el-form-item>
          <!-- 是否显示 -->
          <el-form-item
            v-show="insertData.type == 2"
            :label="$t('dataManage.layerObj.displayOrNot')"
            v-show="insertData.type === 2 || insertData.type === 3"
            :label="$t('dataManage.layerObj.status')"
          >
            <el-radio
              v-model="insertData.isShow"
              label="0"
            > {{$t('dataManage.layerObj.isfalse')}}</el-radio>
              v-model="insertData.status"
              :label="0"
            > {{$t('dataManage.layerObj.isStop')}}</el-radio>
            <el-radio
              v-model="insertData.isShow"
              label="1"
            >{{$t('dataManage.layerObj.istrue')}}</el-radio>
              v-model="insertData.status"
              :label="1"
            >{{$t('dataManage.layerObj.isEnable')}}</el-radio>
            <el-radio
              v-model="insertData.status"
              :label="-1"
            >{{$t('dataManage.layerObj.isDisuse')}}</el-radio>
          </el-form-item>
          <!-- 是否为项目数据 -->
          <el-form-item
            v-show="insertData.type == 2"
            :label="$t('dataManage.layerObj.isItProjectData')"
          >
          <!-- <el-form-item :label="$t('dataManage.layerObj.isItProjectData')">
            <el-radio
              v-model="insertData.isProject"
              label="0"
@@ -367,14 +433,14 @@
              v-model="insertData.isProject"
              label="1"
            >{{$t('dataManage.layerObj.istrue')}}</el-radio>
          </el-form-item>
          </el-form-item> -->
          <!-- 描述 -->
          <el-form-item :label="$t('common.bak')">
          <el-form-item :label="$t('dataManage.layerObj.descr')">
            <el-input
              :placeholder="$t('dataManage.layerObj.prompt7')"
              :placeholder="$t('dataManage.layerObj.prompt10')"
              style="width: 80%;"
              v-model="insertData.bak"
              v-model="insertData.descr"
              type="textarea"
            ></el-input>
          </el-form-item>
          <el-form-item v-show="menuStatus.update">
@@ -386,6 +452,7 @@
            <el-button
              type="info"
              size="small"
              @click="cannelForm( )"
            >{{$t('common.cancel')}}</el-button>
          </el-form-item>
@@ -398,11 +465,11 @@
import MyBread from "../../components/MyBread.vue";
import {
  getPerms,
  layer_selectAll,
  layer_update,
  layer_updates,
  layer_insert,
  layer_delete
  res_selectAll,
  res_insert,
  res_delete,
  res_updates,
  res_update,
} from "../../api/api";
import $ from 'jquery'
import { getToken } from '../../utils/auth';
@@ -486,11 +553,18 @@
                arr.push(res);
              }
            });
            var token = getToken();
            if (arr[1].proxy && arr[1].proxy.indexOf(token) > -1) {
              arr[1].proxy.replace(token, "{token}")
            }
            const orderNum = arr[1].orderNum
            arr[1].orderNum = arr[0].orderNum
            arr[0].orderNum = orderNum
            if (arr[0].proxy && arr[0].proxy.indexOf(token) > -1) {
              arr[0].proxy.replace(token, "{token}")
            }
            const orderNum = arr[1].sort
            arr[1].sort = arr[0].sort
            arr[0].sort = orderNum
            this.newData = arr;
            this.sendChange();
          } else {
@@ -517,9 +591,18 @@
                arr.push(res);
              }
            });
            const orderNum = arr[1].orderNum
            arr[1].orderNum = arr[0].orderNum
            arr[0].orderNum = orderNum
            var token = getToken();
            if (arr[1].proxy && arr[1].proxy.indexOf(token) > -1) {
              arr[1].proxy.replace(token, "{token}")
            }
            if (arr[0].proxy && arr[0].proxy.indexOf(token) > -1) {
              arr[0].proxy.replace(token, "{token}")
            }
            const orderNum = arr[1].sort
            arr[1].sort = arr[0].sort
            arr[0].sort = orderNum
            this.newData = arr;
            this.sendChange();
          } else {
@@ -532,7 +615,7 @@
      }
    },
    async sendChange() {
      const data = await layer_updates(this.newData)
      const data = await res_updates(this.newData)
      if (data.code != 200) {
        return this.$message.error("移动失败");
      }
@@ -540,7 +623,7 @@
    },
    async setDeleteNode() {
      const data = await layer_delete({ id: this.formInline.id });
      const data = await res_delete({ id: this.formInline.id });
      if (data.code != 200) {
        return this.$message.error("删除失败");
      }
@@ -562,7 +645,7 @@
      var val = this.insertData;
      val.isShow = parseInt(val.isShow);
      val.isProject = parseInt(val.isProject);
      const data = await layer_insert(val);
      const data = await res_insert(val);
      if (data.code != 200) {
        return this.$message.error("新增失败");
      }
@@ -594,14 +677,18 @@
      }
      this.insertData.pid = id;
      this.insertData.level = lever;
      this.insertData.orderNum = orderNum;
      this.insertData.sort = orderNum;
      this.dialogVisible = true;
    },
    cannelForm() {
      this.dialogVisible = false;
      this.insertData = {}
    },
    getMaxOrderNum(res) {
      var val = -100;
      var val = 1;
      for (var i in res) {
        if (res[i].data.orderNum > val) {
          val = res[i].data.orderNum;
        if (res[i].data.sort > val) {
          val = res[i].data.sort;
        }
      }
      val = val + 1;
@@ -609,21 +696,17 @@
    },
    insertStart() {
      this.insertData = {
        cnName: null,
        type: null,
        serveType: null,
        serveType: null,
        url: null,
        dataType: null,
        bak: null,
        isShow: '0',
        isProject: '0'
      }
    },
    //修改数据
    async updateSend() {
      var val = JSON.parse(JSON.stringify(this.formInline));
      const data = await layer_update(val);
      var token = getToken()
      if (val.proxy && val.proxy.indexOf(token) > -1) {
        val.proxy = val.proxy.replace(token, "{token}");
      }
      const data = await res_update(val);
      this.currentData = JSON.stringify(this.formInline)
      if (data.code != 200) {
        return this.$message.error("修改失败");
@@ -637,20 +720,27 @@
    //修改重置
    updateRest() {
      var res = JSON.parse(this.backUpData);
      var token = getToken()
      if (res.proxy && res.proxy.indexOf('{token}') > -1) {
        res.proxy = res.proxy.replace("{token}", token);
      }
      this.formInline = res;
      this.formInline.type = res.type.toString();
      this.formInline.isShow = res.isShow.toString();
      this.formInline.isProject = res.isProject.toString();
      // this.formInline.type = res.type.toString();
      // this.formInline.isShow = res.isShow.toString();
      // this.formInline.isProject = res.isProject.toString();
    },
    //获取图层列表
    async getLayerTree() {
      const data = await layer_selectAll();
      const data = await res_selectAll();
      if (data.code != 200) {
        return this.$message.error("图层列表查询失败");
      }
      this.oriData = data.result;
      this.newData = data.result;
      var val = this.setTreeData(data.result);
      val.sort(function (a, b) {
        return a.sort - b.sort
      })
      this.treeData = val;
      var cdata;
      if (this.currentData) {
@@ -665,17 +755,23 @@
      });
    },
    layerFormInline(res) {
      var token = getToken();
      var val = JSON.parse(JSON.stringify(res))
      var data = this.$refs.tree.getNode(val.id).data;
      var result = JSON.parse(JSON.stringify(data))
      this.backUpData = JSON.stringify(result)
      this.currentData = JSON.stringify(result)
      this.formInline = result;
      this.formInline.type = result.type.toString();
      this.formInline.isShow = result.isShow.toString();
      this.formInline.isProject = result.isProject.toString();
      if (result.proxy && result.proxy.indexOf('{token}') > -1) {
        this.formInline.proxy = result.proxy.replace("{token}", token);
      } else {
        this.formInline.proxy = result.proxy
      }
      // this.formInline.type = result.type.toString();
      // this.formInline.isShow = result.isShow.toString();
      // this.formInline.isProject = result.isProject.toString();
    },
    //图层列表点击事件
    handleNodeClick(data, node) {
@@ -690,7 +786,7 @@
          branchArr.sort(function (a, b) {
            return a.orderNum - b.orderNum
            return a.sort - b.sort
          })
        }
@@ -711,15 +807,15 @@
      var ste = [];
      for (var i in serve_type) {
        std.push({
          value: serve_type[i],
          label: serve_type[i],
          value: serve_type[i].value,
          label: serve_type[i].name,
        })
      }
      this.serveType = std;
      for (var i in data_type) {
        ste.push({
          value: data_type[i],
          label: data_type[i],
          value: data_type[i].value,
          label: data_type[i].name,
        })
      }
      this.dataType = ste;
@@ -809,7 +905,10 @@
    padding: 10px;
    box-sizing: border-box;
    border: 1px solid #dcdfe6;
    overflow: auto;
    .menuTop {
      overflow: auto;
      height: 100%;
      /deep/ .el-form-item {
        margin: 5px;
      }
@@ -817,8 +916,7 @@
  }
}
/deep/ .el-input__suffix {
    top: 50%;
    transform: translateY(-50%);
  top: 50%;
  transform: translateY(-50%);
}
</style>
src/views/maintenance/empowerController.vue
@@ -31,8 +31,8 @@
        <menu-role-authorization v-if="setMenuFlag == 'menuRoleAuthorization'"></menu-role-authorization>
        <role-menu-authorization v-if="setMenuFlag == 'roleMenuAuthorization'">
        </role-menu-authorization>
        <!-- <role-res-authorization v-if="setMenuFlag == 'roleResAuthorization'"></role-res-authorization>
        <log-log v-if="setMenuFlag == 'logLog'"> </log-log>
        <role-res-authorization v-if="setMenuFlag == 'roleResAuthorization'"></role-res-authorization>
        <!--    <log-log v-if="setMenuFlag == 'logLog'"> </log-log>
        <operation-log v-if="setMenuFlag == 'operationLog'"></operation-log>
        <eventlog-manage v-if="setMenuFlag == 'eventlogManage'"></eventlog-manage>
        <tokentool v-if="setMenuFlag == 'tokentool'"></tokentool>