1
Surpriseplus
2022-11-18 bd6d4e1c5cefef5355afe5f84e09eeb23da94ffd
src/views/datamanage/dictionaryManage.vue
@@ -1,15 +1,19 @@
<template>
  <div class="authorityManagement_box">
    <My-bread :list="['数据管理', '字典管理']"></My-bread>
    <My-bread
      :list="[
        `${$t('dataManage.dataManage')}`,
        `${$t('dataManage.dictionaryManage')}`,
      ]"
    ></My-bread>
    <el-divider />
    <div class="searchComp">
      <el-form ref="ruleForm" :model="ruleForm" :inline="true">
        <el-form-item label="表名称" prop="name">
        <el-form-item :label="$t('dataManage.dictionaryManageObj.tableName')">
          <el-select
            clearable
            v-model="queryName"
            v-model="ruleForm.queryName"
            @change="changeQueryName"
            placeholder="请选择表名称"
            placeholder="图幅角点TIC(b_rg20w_l01t)"
          >
            <el-option
              v-for="(item, i) in selectData"
@@ -23,17 +27,19 @@
        <el-form-item>
          <el-button
            @click="InsertFormdialog = true"
            v-if="btnStatus.insert"
            icon="el-icon-edit"
            type="success"
            size="small"
            >新增</el-button
            >{{ $t('dataManage.dictionaryManageObj.add') }}</el-button
          >
          <el-button
            v-if="btnStatus.delete"
            @click="DelFormData"
            icon="el-icon-delete"
            type="danger"
            size="small"
            >删除</el-button
            >{{ $t('dataManage.dictionaryManageObj.del') }}</el-button
          >
        </el-form-item>
      </el-form>
@@ -49,52 +55,86 @@
            height="98%"
          >
            <el-table-column type="selection" width="55" />
            <el-table-column prop="orderNum" label="编号" />
            <el-table-column min-width="100" prop="field" label="字段名称" />
            <el-table-column min-width="90" prop="alias" label="字段显示名称" />
            <el-table-column min-width="100" prop="type" label="字段类型" />
            <el-table-column min-width="60" prop="len" label="字段长度" />
            <el-table-column min-width="60" prop="precision" label="字段精度" />
            <el-table-column min-width="100" prop="tab" label="值域关联表" />
            <el-table-column min-width="100" prop="bak" label="备注" />
            <el-table-column
              prop="orderNum"
              :label="$t('dataManage.dictionaryManageObj.number')"
            />
            <el-table-column
              min-width="100"
              prop="field"
              :label="$t('dataManage.dictionaryManageObj.fieldName')"
            />
            <el-table-column
              min-width="90"
              prop="alias"
              :label="$t('dataManage.dictionaryManageObj.fieldAliasName')"
            />
            <el-table-column
              min-width="100"
              prop="type"
              :label="$t('dataManage.dictionaryManageObj.fieldType')"
            />
            <el-table-column
              min-width="60"
              prop="len"
              :label="$t('dataManage.dictionaryManageObj.fieldLength')"
            />
            <el-table-column
              min-width="60"
              prop="precision"
              :label="$t('dataManage.dictionaryManageObj.FieldPrecision')"
            />
            <el-table-column
              min-width="100"
              prop="tab"
              :label="
                $t('dataManage.dictionaryManageObj.rangeAssociationTable')
              "
            />
            <el-table-column
              min-width="100"
              prop="bak"
              :label="$t('dataManage.dictionaryManageObj.remark')"
            />
            <el-table-column
              min-width="100"
              prop="createTime"
              label="创建时间"
              :label="$t('dataManage.dictionaryManageObj.creationTime')"
              :formatter="formatData"
            />
            <el-table-column
              min-width="100"
              prop="createUser"
              label="创建人员"
              :label="$t('dataManage.dictionaryManageObj.createPersonnel')"
            />
            <el-table-column
              min-width="100"
              prop="updateTime"
              label="更新时间"
              :label="$t('dataManage.dictionaryManageObj.updateTime')"
              :formatter="formatData"
            />
            <el-table-column
              min-width="100"
              prop="updateUser"
              label="更新人员"
              :label="$t('dataManage.dictionaryManageObj.updatePersonnel')"
            />
            <el-table-column min-width="70" label="操作">
            <el-table-column
              min-width="70"
              :label="$t('dataManage.dictionaryManageObj.operation')"
            >
              <template slot-scope="scope">
                <el-link @click="showDetail(scope.$index, scope.row)"
                  >查看</el-link
                <el-link
                  v-if="btnStatus.select"
                  @click="showDetail(scope.$index, scope.row)"
                  >{{ $t('dataManage.dictionaryManageObj.lookOver') }}</el-link
                >
                <el-link
                  v-if="btnStatus.update"
                  @click="handleEdit(scope.$index, scope.row)"
                  style="margin-left: 10px"
                  >修改</el-link
                  >{{ $t('dataManage.dictionaryManageObj.revamp') }}</el-link
                >
                <!-- <el-link
                  @click="handleDelete(scope.$index, scope.row)"
                  style="margin-left: 10px"
                  >删除</el-link
                > -->
              </template>
            </el-table-column>
          </el-table>
@@ -119,56 +159,113 @@
    <div class="infoBox" v-show="showinfoBox">
      <el-card class="box-card">
        <div slot="header" class="clearfix">
          <span>详细信息</span>
          <span>{{ $t('dataManage.dictionaryManageObj.particulars') }}</span>
          <div style="float: right; cursor: pointer" @click="closeDetial">
            <i class="el-icon-close"></i>
          </div>
        </div>
        <div class="contentBox">
          <p>表名称:{{ itemdetail.tab }}</p>
          <p>
            {{ $t('dataManage.dictionaryManageObj.tableName') }}:{{
              itemdetail.tab
            }}
          </p>
          <el-divider></el-divider>
          <p>表显示名称:{{ itemdetail.tabDesc }}</p>
          <p>
            {{ $t('dataManage.dictionaryManageObj.tableAliasName') }}:{{
              itemdetail.tabDesc
            }}
          </p>
          <el-divider></el-divider>
          <!-- <p>表类型:{{ itemdetail.type }}</p>
          <el-divider></el-divider> -->
          <p>字段名称:{{ itemdetail.field }}</p>
          <p>
            {{ $t('dataManage.dictionaryManageObj.fieldName') }}:{{
              itemdetail.field
            }}
          </p>
          <el-divider></el-divider>
          <p>字段显示名称:{{ itemdetail.alias }}</p>
          <p>
            {{ $t('dataManage.dictionaryManageObj.fieldAliasName') }}:{{
              itemdetail.alias
            }}
          </p>
          <el-divider></el-divider>
          <p>字段类型:{{ itemdetail.type }}</p>
          <p>
            {{ $t('dataManage.dictionaryManageObj.fieldType') }}:{{
              itemdetail.type
            }}
          </p>
          <el-divider></el-divider>
          <p>字段长度:{{ itemdetail.len }}</p>
          <p>
            {{ $t('dataManage.dictionaryManageObj.fieldLength') }}:{{
              itemdetail.len
            }}
          </p>
          <el-divider></el-divider>
          <p>字段精度:{{ itemdetail.precision }}</p>
          <p>
            {{ $t('dataManage.dictionaryManageObj.FieldPrecision') }}:{{
              itemdetail.precision
            }}
          </p>
          <el-divider></el-divider>
          <!-- <p>值域关联表:{{ itemdetail.domain_name }}</p>
          <el-divider></el-divider> -->
          <p>备注:{{ itemdetail.bak }}</p>
          <p>
            {{ $t('dataManage.dictionaryManageObj.remark') }}:{{
              itemdetail.bak
            }}
          </p>
          <el-divider></el-divider>
          <p>创建时间:{{ itemdetail.createTime }}</p>
          <p>
            {{ $t('dataManage.dictionaryManageObj.creationTime') }}:{{
              itemdetail.createTime
            }}
          </p>
          <el-divider></el-divider>
          <p>创建人员:{{ itemdetail.createUser }}</p>
          <p>
            {{ $t('dataManage.dictionaryManageObj.createPersonnel') }}:{{
              itemdetail.createUser
            }}
          </p>
          <el-divider></el-divider>
          <p>更新时间:{{ itemdetail.updateTime }}</p>
          <p>
            {{ $t('dataManage.dictionaryManageObj.updateTime') }}:{{
              itemdetail.updateTime
            }}
          </p>
          <el-divider></el-divider>
          <p>更新人员:{{ itemdetail.updateUser }}</p>
          <p>
            {{ $t('dataManage.dictionaryManageObj.updatePersonnel') }}:{{
              itemdetail.updateUser
            }}
          </p>
        </div>
      </el-card>
    </div>
    <el-dialog
      top="3vh"
      style="overflow: hidden"
      title="修改详情"
      :title="$t('dataManage.dictionaryManageObj.revamp')"
      :visible.sync="dialogFormVisible"
    >
      <el-form :model="upform">
        <el-form-item label="编号" :label-width="formLabelWidth">
        <el-form-item
          :label="$t('dataManage.dictionaryManageObj.number')"
          :label-width="formLabelWidth"
        >
          <el-input v-model="upform.orderNum" autocomplete="off"></el-input>
        </el-form-item>
        <el-form-item label="表名" :label-width="formLabelWidth">
        <el-form-item
          :label="$t('dataManage.dictionaryManageObj.tableName')"
          :label-width="formLabelWidth"
        >
          <el-input v-model="upform.tab" autocomplete="off"></el-input>
        </el-form-item>
        <el-form-item label="表别名" :label-width="formLabelWidth">
        <el-form-item
          :label="$t('dataManage.dictionaryManageObj.tableAliasName')"
          :label-width="formLabelWidth"
        >
          <el-input v-model="upform.tabDesc" autocomplete="off"></el-input>
        </el-form-item>
        <!-- <el-form-item label="类型" :label-width="formLabelWidth">
@@ -182,54 +279,79 @@
            <el-option label="面几何" value="面几何"></el-option>
          </el-select>
        </el-form-item> -->
        <el-form-item label="字段名称" :label-width="formLabelWidth">
        <el-form-item
          :label="$t('dataManage.dictionaryManageObj.fieldName')"
          :label-width="formLabelWidth"
        >
          <el-input v-model="upform.field" autocomplete="off"></el-input>
        </el-form-item>
        <el-form-item label="字段别名" :label-width="formLabelWidth">
        <el-form-item
          :label="$t('dataManage.dictionaryManageObj.fieldAliasName')"
          :label-width="formLabelWidth"
        >
          <el-input v-model="upform.alias" autocomplete="off"></el-input>
        </el-form-item>
        <el-form-item label="字段类型" :label-width="formLabelWidth">
        <el-form-item
          :label="$t('dataManage.dictionaryManageObj.fieldType')"
          :label-width="formLabelWidth"
        >
          <el-input v-model="upform.type" autocomplete="off"></el-input>
        </el-form-item>
        <el-form-item label="长度" :label-width="formLabelWidth">
        <el-form-item
          :label="$t('dataManage.dictionaryManageObj.fieldLength')"
          :label-width="formLabelWidth"
        >
          <el-input v-model="upform.len" autocomplete="off"></el-input>
        </el-form-item>
        <el-form-item label="精度" :label-width="formLabelWidth">
        <el-form-item
          :label="$t('dataManage.dictionaryManageObj.FieldPrecision')"
          :label-width="formLabelWidth"
        >
          <el-input v-model="upform.precision" autocomplete="off"></el-input>
        </el-form-item>
        <!-- <el-form-item label="值域名称" :label-width="formLabelWidth">
          <el-input v-model="upform.domain_name" autocomplete="off"></el-input>
        </el-form-item> -->
        <el-form-item label="备注" :label-width="formLabelWidth">
        <el-form-item
          :label="$t('dataManage.dictionaryManageObj.remark')"
          :label-width="formLabelWidth"
        >
          <el-input v-model="upform.bak" autocomplete="off"></el-input>
        </el-form-item>
      </el-form>
      <div slot="footer" class="dialog-footer">
        <el-button @click="dialogFormVisible = false">取 消</el-button>
        <el-button type="primary" @click="updateForm">确 定</el-button>
        <el-button @click="dialogFormVisible = false">{{
          $t('dataManage.dictionaryManageObj.cancel')
        }}</el-button>
        <el-button type="primary" @click="updateForm">{{
          $t('dataManage.dictionaryManageObj.confirm')
        }}</el-button>
      </div>
    </el-dialog>
    <el-dialog
      title="添加数据"
      :title="$t('dataManage.dictionaryManageObj.add')"
      top="3vh"
      style="overflow: hidden"
      :visible.sync="InsertFormdialog"
    >
      <el-form :model="insertform">
        <el-form-item label="编号" :label-width="formLabelWidth">
        <el-form-item
          :label="$t('dataManage.dictionaryManageObj.number')"
          :label-width="formLabelWidth"
        >
          <el-input v-model="insertform.orderNum" autocomplete="off"></el-input>
        </el-form-item>
        <el-form-item label="表名" :label-width="formLabelWidth">
          <el-input
            v-model="insertform.tab"
            autocomplete="off"
          ></el-input>
        <el-form-item
          :label="$t('dataManage.dictionaryManageObj.tableName')"
          :label-width="formLabelWidth"
        >
          <el-input v-model="insertform.tab" autocomplete="off"></el-input>
        </el-form-item>
        <el-form-item label="表别名" :label-width="formLabelWidth">
          <el-input
            v-model="insertform.tabDesc"
            autocomplete="off"
          ></el-input>
        <el-form-item
          :label="$t('dataManage.dictionaryManageObj.tableAliasName')"
          :label-width="formLabelWidth"
        >
          <el-input v-model="insertform.tabDesc" autocomplete="off"></el-input>
        </el-form-item>
        <!-- <el-form-item label="类型" :label-width="formLabelWidth">
          <el-select
@@ -242,28 +364,34 @@
            <el-option label="面几何" value="面几何"></el-option>
          </el-select>
        </el-form-item> -->
        <el-form-item label="字段名称" :label-width="formLabelWidth">
          <el-input
            v-model="insertform.field"
            autocomplete="off"
          ></el-input>
        <el-form-item
          :label="$t('dataManage.dictionaryManageObj.fieldName')"
          :label-width="formLabelWidth"
        >
          <el-input v-model="insertform.field" autocomplete="off"></el-input>
        </el-form-item>
        <el-form-item label="字段别名" :label-width="formLabelWidth">
          <el-input
            v-model="insertform.alias"
            autocomplete="off"
          ></el-input>
        <el-form-item
          :label="$t('dataManage.dictionaryManageObj.fieldAliasName')"
          :label-width="formLabelWidth"
        >
          <el-input v-model="insertform.alias" autocomplete="off"></el-input>
        </el-form-item>
        <el-form-item label="字段类型" :label-width="formLabelWidth">
          <el-input
            v-model="insertform.type"
            autocomplete="off"
          ></el-input>
        <el-form-item
          :label="$t('dataManage.dictionaryManageObj.fieldType')"
          :label-width="formLabelWidth"
        >
          <el-input v-model="insertform.type" autocomplete="off"></el-input>
        </el-form-item>
        <el-form-item label="长度" :label-width="formLabelWidth">
        <el-form-item
          :label="$t('dataManage.dictionaryManageObj.fieldLength')"
          :label-width="formLabelWidth"
        >
          <el-input v-model="insertform.len" autocomplete="off"></el-input>
        </el-form-item>
        <el-form-item label="精度" :label-width="formLabelWidth">
        <el-form-item
          :label="$t('dataManage.dictionaryManageObj.FieldPrecision')"
          :label-width="formLabelWidth"
        >
          <el-input
            v-model="insertform.precision"
            autocomplete="off"
@@ -275,13 +403,20 @@
            autocomplete="off"
          ></el-input>
        </el-form-item> -->
        <el-form-item label="备注" :label-width="formLabelWidth">
        <el-form-item
          :label="$t('dataManage.dictionaryManageObj.remark')"
          :label-width="formLabelWidth"
        >
          <el-input v-model="insertform.bak" autocomplete="off"></el-input>
        </el-form-item>
      </el-form>
      <div slot="footer" class="dialog-footer">
        <el-button @click="InsertFormdialog = false">取 消</el-button>
        <el-button type="primary" @click="insertFromData">确 定</el-button>
        <el-button @click="InsertFormdialog = false">{{
          $t('dataManage.dictionaryManageObj.cancel')
        }}</el-button>
        <el-button type="primary" @click="insertFromData">{{
          $t('dataManage.dictionaryManageObj.confirm')
        }}</el-button>
      </div>
    </el-dialog>
  </div>
@@ -293,16 +428,16 @@
  selectDictTab,
  deleteDicts,
  updateDict,
  insertDict
} from "../../api/api";
import MyBread from "../../components/MyBread.vue";
  insertDict,
} from '../../api/api';
import MyBread from '../../components/MyBread.vue';
export default {
  name: "dictionaryManage",
  name: 'dictionaryManage',
  components: { MyBread },
  data() {
    return {
      multipleSelection: [],
      formLabelWidth: "120px",
      formLabelWidth: '120px',
      dialogFormVisible: false,
      InsertFormdialog: false,
      insertform: {},
@@ -310,57 +445,96 @@
      showinfoBox: false,
      itemdetail: {},
      ruleForm: {
        name: "",
        name: '',
        queryName: '图幅角点TIC(b_rg20w_l01t) ',
      },
      tableData: [],
      count: 0,
      currentPage: 1,
      searchName: "",
      searchName: '',
      selectName: [],
      queryName: "",
      queryName: 'sdas',
      listData: {
        pageIndex: 1,
        pageSize: 10,
        tab: null,
        ns: null,
      },
      selectData: [],
      btnStatus: {
        select: false,
        delete: false,
        upload: false,
        download: false,
        insert: false,
        update: false,
      },
    };
  },
  created() {
    this.startQueryNameData();
    this.getSelectDictTab();
    this.showPermsBtn();
  },
  methods: {
    showPermsBtn() {
      let currentPerms = this.$store.state.currentPerms;
      let permsEntity = this.$store.state.permsEntity;
      permsEntity
        .filter((item) => item.perms == currentPerms)
        .map((item) => (this.btnStatus[item.tag.substr(1)] = true));
    },
    //下拉选项调用
    async getSelectDictTab() {
      this.selectData = [];
      const data = await selectDictTab();
      if (data.code != 200) {
        this.$message.error("下拉调用失败");
        this.$message.error('下拉调用失败');
      }
      data.result.forEach((e) => {
        if (e) {
          this.selectData.push({
            tab: e.tab,
            tabDesc: `${e.tabDesc}(${e.tab})`,
          });
        }
      var val_res = data.result[0];
      // this.ruleForm.queryName = JSON.toString(
      //   val_res.tabDesc + '(' + val_res.tab + ')'
      // );
      this.listData.tab = val_res.tab;
      this.listData.ns = val_res.ns;
      this.selectData.push({
        tab: val_res.tab,
        ns: val_res.ns,
        tabDesc: val_res.tabDesc,
      });
      // data.result.forEach((e) => {
      //   if (e) {
      //     this.selectData.push({
      //       tab: e.tab,
      //       ns: e.ns,
      //       tabDesc: e.tabDesc,
      //     });
      //   }
      // });
      this.startQueryNameData();
    },
    //列表请求
    async startQueryNameData() {
      if (this.listData.tab == "") {
      if (this.listData.tab == '') {
        delete this.listData.tab;
      }
      const data = await selectByPageAndCount(this.listData);
      if (data.code != 200) {
        this.$message.error("列表调用失败");
        this.$message.error('列表调用失败');
      }
      this.tableData = data.result;
      this.count = data.count;
    },
    //格式化时间
    add0(m) {
      return m < 10 ? "0" + m : m;
      return m < 10 ? '0' + m : m;
    },
    //格式化时间
    format(shijianchuo) {
@@ -373,7 +547,7 @@
      var mm = time.getMinutes();
      var s = time.getSeconds();
      return (
        y + "-" + this.add0(m) + "-" + this.add0(d)
        y + '-' + this.add0(m) + '-' + this.add0(d)
        // " " +
        // this.add0(h) +
        // ":" +
@@ -392,21 +566,29 @@
    },
    //修改详情
    updateForm() {
      this.$confirm("是否确定保存修改内容?", "提示", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning",
      })
      this.$confirm(
        `${$t('dataManage.dictionaryManageObj.tipsUp')}`,
        `${$t('dataManage.dictionaryManageObj.tips')}`,
        {
          confirmButtonText: `${$t('dataManage.dictionaryManageObj.confirm')}`,
          cancelButtonText: `${$t('dataManage.dictionaryManageObj.cancel')}`,
          type: 'warning',
        }
      )
        .then(async () => {
          const data = await updateDict(this.upform);
          if (data.code != 200) {
            this.$message.error("修改失败");
            this.$message.error(
              `${$t('dataManage.dictionaryManageObj.failModify')}`
            );
          }
          this.dialogFormVisible = false;
          this.startQueryNameData();
          this.$message({
            message: "修改成功",
            type: "success",
            message: `${$t(
              'dataManage.dictionaryManageObj.modifySuccessfully'
            )}`,
            type: 'success',
          });
        })
        .catch(() => {});
@@ -441,27 +623,31 @@
    },
    //新增
    insertFromData() {
      this.$confirm("是否确定添加?", "提示", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning",
      })
      this.$confirm(
        `${$t('dataManage.dictionaryManageObj.tipsAdd')}`,
        `${$t('dataManage.dictionaryManageObj.tips')}`,
        {
          confirmButtonText: `${$t('dataManage.dictionaryManageObj.confirm')}`,
          cancelButtonText: `${$t('dataManage.dictionaryManageObj.cancel')}`,
          type: 'warning',
        }
      )
        .then(async () => {
          const data = await insertDict(this.insertform);
          if (data.code != 200) {
            this.$message.error("新增失败");
            this.$message.error(
              `${$t('dataManage.dictionaryManageObj.FailedAdd')}`
            );
          }
          this.InsertFormdialog = false;
          this.startQueryNameData();
          this.$message({
            message: "新增成功",
            type: "success",
            message: `${$t('dataManage.dictionaryManageObj.NewSuccess')}`,
            type: 'success',
          });
        })
        .catch(() => {});
    },
    //列表选择
    handleSelectionChange(val) {
@@ -474,19 +660,27 @@
      for (var i in this.multipleSelection) {
        std.push(this.multipleSelection[i].id);
      }
      this.$confirm("确定是否删除所选内容?", "提示", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning",
      })
      this.$confirm(
        `${$t('dataManage.dictionaryManageObj.tipsDelete')}`,
        `${$t('dataManage.dictionaryManageObj.tips')}`,
        {
          confirmButtonText: `${$t('dataManage.dictionaryManageObj.confirm')}`,
          cancelButtonText: `${$t('dataManage.dictionaryManageObj.cancel')}`,
          type: 'warning',
        }
      )
        .then(async () => {
          const data = await deleteDicts({ ids: std.toString() });
          if (data.code != 200) {
            this.$message.error("列表删除失败");
            this.$message.error(
              `${$t('dataManage.dictionaryManageObj.DeleteFailed')}`
            );
          }
          this.$message({
            type: "success",
            message: "删除成功!",
            type: 'success',
            message: `${$t(
              'dataManage.dictionaryManageObj.deletedSuccessfully'
            )}`,
          });
          this.startQueryNameData();
        })
@@ -494,8 +688,10 @@
    },
    //搜索框
    changeQueryName(val) {
      this.listData.tab = val;
    changeQueryName(e) {
      this.listData.tab = e.tab;
      this.listData.ns = e.ns;
      this.startQueryNameData();
    },
  },