dictionaries.vue 3.99 KB
<template>
  <div class="from-clues">
    <!-- 表单部分 -->
    <div class="from-clues-header">
      <el-form @submit.native.prevent :model="ruleForm" label-width="120px">
        <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="queryClick">查询</btn>
            <btn nativeType="sb" @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, getChildDictList, refreshDictCache } from "@/api/user.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: "操作",
            width: 170,
            render: (h, scope) => {
              return (
                <div>
                  {
                    scope.row.isenable == '1' ?
                      <el-button type="text" icon="el-icon-edit-outline" onClick={() => { this.editClick(scope.row, 1) }}>修改</el-button> :
                      <el-button type="text" icon="el-icon-view" onClick={() => { this.editClick(scope.row, 2) }}>查看</el-button>
                  }
                </div>
              );
            },
          },
        ]),
        data: []
      }
    }
  },
  methods: {
    // 初始化数据
    queryClick () {
      // this.$startLoading();
      getQlxxDictList({ ...this.ruleForm, ...this.pageData }).then(res => {
        // this.$endLoading();
        let { records, total } = res.result
        this.tableData.data = records ? records : []
        this.tableData.total = total ? total : 0
      })
    },
    handleRefresh () {
      this.$confirm('是否确认刷新', '提示', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        type: 'warning'
      }).then(() => {
        this.$startLoading()
        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">
@import "~@/styles/public.scss";
</style>