shikeying
2023-03-10 31b647535e49f0a7b85d87a8c1e34c5ab92ca9d0
修改数据字典 支持树结构
2个文件已修改
66 ■■■■ 已修改文件
src/views/system/dict/data.vue 44 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/system/user/index.vue 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/system/dict/data.vue
@@ -92,20 +92,21 @@
    <el-table v-loading="loading" :data="dataList" @selection-change="handleSelectionChange">
      <el-table-column type="selection" width="55" align="center" />
      <el-table-column label="字典编码" align="center" prop="dict_code" />
      <el-table-column label="字典标签" align="center" prop="dict_label">
      <el-table-column label="字典ID" align="center" prop="dict_code" />
      <el-table-column label="字典名称" align="center" prop="dict_label">
        <template slot-scope="scope">
          <span v-if="scope.row.list_class == '' || scope.row.list_class == 'default'">{{scope.row.dict_label}}</span>
          <el-tag v-else :type="scope.row.list_class == 'primary' ? '' : scope.row.list_class">{{scope.row.dict_label}}</el-tag>
        </template>
      </el-table-column>
      <el-table-column label="字典键值" align="center" prop="dict_value" />
      <el-table-column label="字典排序" align="center" prop="dict_sort" />
      <el-table-column label="字典值" align="center" prop="dict_value" />
      <el-table-column label="排序" align="center" prop="dict_sort" />
      <el-table-column label="状态" align="center" prop="status">
        <template slot-scope="scope">
          <dict-tag :options="dict.type.sys_normal_disable" :value="scope.row.status"/>
        </template>
      </el-table-column>
      <el-table-column label="父id" align="center" prop="parent_id" />
      <el-table-column label="备注" align="center" prop="remark" :show-overflow-tooltip="true" />
      <el-table-column label="创建时间" align="center" prop="create_time" width="180">
<!--        <template slot-scope="scope">-->
@@ -143,14 +144,17 @@
    <!-- 添加或修改参数配置对话框 -->
    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
        <el-form-item label="字典ID">
          <el-input v-model="form.dict_code" :disabled="false" placeholder="一个唯一数字"/>
        </el-form-item>
        <el-form-item label="字典类型">
          <el-input v-model="form.dict_type" :disabled="true" />
        </el-form-item>
        <el-form-item label="数据标签" prop="dict_label">
        <el-form-item label="字典名称" prop="dict_label">
          <el-input v-model="form.dict_label" placeholder="请输入数据标签" />
        </el-form-item>
        <el-form-item label="数据键值" prop="dict_value">
          <el-input v-model="form.dict_value" placeholder="请输入数据键值" />
        <el-form-item label="字典值" prop="dict_value">
          <el-input v-model="form.dict_value" placeholder="不填和字典ID一致" />
        </el-form-item>
        <el-form-item label="样式属性" prop="css_class">
          <el-input v-model="form.css_class" placeholder="请输入样式属性" />
@@ -176,6 +180,9 @@
              :label="dict.value * 1"
            >{{dict.label}}</el-radio>
          </el-radio-group>
        </el-form-item>
        <el-form-item label="父字典ID" prop="dict_label">
          <el-input v-model="form.parent_id" placeholder="父字典id,必填" />
        </el-form-item>
        <el-form-item label="备注" prop="remark">
          <el-input v-model="form.remark" type="textarea" placeholder="请输入内容"></el-input>
@@ -250,7 +257,7 @@
      // 查询参数
      queryParams: {
        pageNum: 1,
        pageSize: 10,
        pageSize: 15,
        dictName: undefined,
        dictType: undefined,
        status: undefined
@@ -259,16 +266,23 @@
      form: {},
      // 表单校验
      rules: {
        dict_code: [
          { required: true, message: "字典id必须输入", trigger: "blur" }
        ],
        dict_label: [
          { required: true, message: "数据标签不能为空", trigger: "blur" }
        ],
        dict_value: [
          { required: true, message: "数据键值不能为空", trigger: "blur" }
        parent_id: [
          { required: true, message: "父id不能为空", trigger: "blur" }
        ],
        // dict_value: [
        //   { required: true, message: "数据键值不能为空", trigger: "blur" }
        // ],
        dict_sort: [
          { required: true, message: "数据顺序不能为空", trigger: "blur" }
        ]
      }
      },
      editMode: false
    };
  },
  created() {
@@ -316,6 +330,7 @@
        list_class: 'default',
        dict_sort: 0,
        status: "0",
        parent_id: undefined,
        remark: undefined
      };
      this.resetForm("form");
@@ -339,6 +354,7 @@
    /** 新增按钮操作 */
    handleAdd() {
      this.reset();
      this.editMode = false;
      this.open = true;
      this.title = "添加字典数据";
      // this.form.dictType = this.queryParams.dictType;
@@ -353,6 +369,7 @@
    /** 修改按钮操作 */
    handleUpdate(row) {
      this.reset();
      this.editMode = true;
      const dictCode = row.dict_code || this.ids
      getData(dictCode).then(response => {
        this.form = response.data;
@@ -364,7 +381,8 @@
    submitForm: function() {
      this.$refs["form"].validate(valid => {
        if (valid) {
          if (this.form.dict_code != undefined) {
          // if (this.form.dict_code != undefined) {
          if (this.editMode == true) {
            updateData(this.form).then(response => {
              this.$store.dispatch('dict/removeDict', this.queryParams.dictType);
              this.$modal.msgSuccess("修改成功");
@@ -372,7 +390,7 @@
              this.getList();
            });
          } else {
            // console.log(this.form);
            console.log(this.form);
            addData(this.form).then(response => {
              this.$store.dispatch('dict/removeDict', this.queryParams.dictType);
              this.$modal.msgSuccess("新增成功");
src/views/system/user/index.vue
@@ -425,7 +425,7 @@
      // 查询参数
      queryParams: {
        pageNum: 1,
        pageSize: 10,
        pageSize: 15,
        userName: undefined,
        phonenumber: undefined,
        status: undefined,
@@ -498,10 +498,18 @@
      );
    },
    /** 查询部门下拉树结构 */
    getTreeselect() {
      treeselect(this.queryParams.deptId).then(response => {
    getTreeselect(deptId) {
      // treeselect(this.queryParams.deptId).then(response => {
      //   this.deptOptions = response.data;
      // });
      if(deptId == undefined || deptId == ""){
        this.$modal.alert("请选择一个部门");
        return false;
      }
      treeselect(deptId).then(response => {
        this.deptOptions = response.data;
      });
      return true;
    },
    // 2022-12-08,加载顶级机构树列表
@@ -594,7 +602,9 @@
      //   this.$modal.msgSuccess("请先选择一个顶级机构");
      //   return;
      // }
      this.getTreeselect();
      if(!this.getTreeselect(this.queryParams.deptId)){
        return;
      }
      // getUser().then(response => {
      getNewUserRoles(this.queryParams.deptId).then(response => {
        // this.postOptions = response.posts;
@@ -603,11 +613,12 @@
        this.title = "添加用户";
        this.form.password = this.initPassword;
      });
    },
    /** 修改按钮操作 */
    handleUpdate(row) {
      this.reset();
      this.getTreeselect();
      // this.getTreeselect();
      // const userId = row.id || this.ids;
      const userId = row.id;
      getUser(userId).then(response => {
@@ -619,6 +630,7 @@
        this.open = true;
        this.title = "修改用户";
        this.form.password = "";
        this.getTreeselect(this.form.dept_id);
      });
    },
    /** 重置密码按钮操作 */