dictionaries.vue 3.83 KB
<template>
  <div class="from-clues">
    <!-- 表单部分 -->
    <div class="from-clues-header">
      <el-form @submit.native.prevent :model="ruleForm" label-width="120px">
        <el-form-item>
          <Breadcrumb />
        </el-form-item>
        <el-row :gutter="20">
          <el-col :span="6">
            <el-form-item label="字典类型编码">
              <el-input v-model="ruleForm.dcode" @clear="queryClick" clearable placeholder="字典类型编码"></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="6">
            <el-form-item label="字典类型名称">
              <el-input v-model="ruleForm.dname" @clear="queryClick" clearable placeholder="字典类型名称"></el-input>
            </el-form-item>
          </el-col>
          <!-- 操作按钮 -->
          <el-col :span="12" class="btnColRight">
            <btn nativeType="cx" @click="handleSearch">查询</btn>
            <btn nativeType="cx" @click="handleRefresh">刷新缓存</btn>
          </el-col>
        </el-row>
      </el-form>
    </div>
    <!-- 表格 -->
    <div class="from-clues-content">
      <lb-table :page-size="pageData.pageSize" class="loadingtext" :current-page.sync="pageData.currentPage"
        :total="tableData.total" @size-change="handleSizeChange" @p-current-change="handleCurrentChange"
        :column="tableData.columns" :data="tableData.data">
      </lb-table>
    </div>
    <editDialog v-model="isDialog" :details="details" />
  </div>
</template>
<script>
import table from "@/utils/mixin/table"
import { getQlxxDictList, refreshDictCache } from "@/api/dict.js"
import { datas, sendThis } from "./dictionaries"
import editDialog from "./components/editDialog.vue"
export default {
  name: "djbcx",
  components: {
    editDialog
  },
  mixins: [table],
  mounted () {
    sendThis(this);
    this.queryClick()
  },
  data () {
    return {
      isDialog: false,
      details: {
        dictid: '',
        isenable: 1,
        rowData: {}
      },
      ruleForm: {
        dcode: '',
        dname: ''
      },
      tableData: {
        total: 0,
        columns: datas.columns().concat([
          {
            label: "操作",
            render: (h, scope) => {
              return (
                <el-button type="text"
                  class='successColor'
                  onClick={() => { this.editClick(scope.row, 1) }}>修改</el-button>
              )
            }
          }
        ]),
        data: []
      }
    }
  },
  methods: {
    // 初始化数据
    queryClick () {
      getQlxxDictList({ ...this.ruleForm, ...this.pageData }).then(res => {
        let { records, total } = res.result
        this.tableData.data = records ? records : []
        this.tableData.total = total ? total : 0
      })
    },
    handleSearch () {
      this.pageData.currentPage = 1
      this.tableData.data = []
      this.queryClick()
    },
    handleRefresh () {
      this.$confirm('是否确认刷新', '提示', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        type: 'warning'
      }).then(() => {
        refreshDictCache().then(res => {
          if (res.code == 200) {
            let refech = this.$store.dispatch('dict/generateDic')
            this.$endLoading()
            refech && this.$message({
              message: '刷新成功',
              type: 'success'
            });
          } else {
            this.$message.error(res.message)
          }
        })
      }).catch(() => {
        this.$message({
          type: 'info',
          message: '取消刷新'
        });
      });
    },
    editClick (row, val) {
      this.details.rowData = row
      this.details.isenable = val
      this.details.dictid = row.dictid
      this.isDialog = true
    }
  }
};
</script>
<style scoped lang="scss">
/deep/.dialogBox .dialog_title {
  top: 0;
  margin-left: 5px;
}
</style>