| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241 | 
							- <template>
 
-   <div class="app-container">
 
-     <div class="head-container" style="margin: 10px 0 10px 0;">
 
-       <!-- 搜索 -->
 
-       <el-input
 
-         v-model="query.value"
 
-         clearable
 
-         placeholder="输入搜索内容"
 
-         style="width: 200px;"
 
-         size="small"
 
-         class="filter-item"
 
-       />
 
-       <el-select v-model="query.type" clearable placeholder="类型" class="filter-item" size="small" style="width: 130px">
 
-         <el-option v-for="item in queryTypeOptions" :key="item.key" :label="item.display_name" :value="item.key" />
 
-       </el-select>
 
-       <el-button class="filter-item" size="small" type="primary" icon="el-icon-search" plain>搜索</el-button>
 
-       <el-button
 
-         class="filter-item"
 
-         size="small"
 
-         type="primary"
 
-         icon="el-icon-plus"
 
-         @click="handleAdd"
 
-       >新增
 
-       </el-button>
 
-     </div>
 
-     <!--表格渲染-->
 
-     <el-table v-loading="loading" :data="data" style="width: 100%;">
 
-       <el-table-column label="序号" width="60" align="center">
 
-         <template slot-scope="scope">
 
-           <span>{{ scope.$index + 1 }}</span>
 
-         </template>
 
-       </el-table-column>
 
-       <el-table-column prop="dictName" label="字典名称" />
 
-       <el-table-column prop="dictCode" label="字典编码" />
 
-       <el-table-column prop="description" :show-overflow-tooltip="true" label="描述" />
 
-       <el-table-column prop="remark" label="备注" />
 
-       <el-table-column prop="createTime" label="创建时间" />
 
-       <el-table-column label="操作" width="250" align="center">
 
-         <template slot-scope="scope">
 
-           <el-button slot="reference" type="text" icon="el-icon-edit" @click="handleEdit(scope.row)">编辑</el-button>
 
-           <el-popover
 
-             :ref="scope.row.dictName"
 
-             placement="top"
 
-             width="180"
 
-           >
 
-             <p>此操作将删除字典与对应的字典详情,确定要删除吗?</p>
 
-             <div style="text-align: right; margin: 0">
 
-               <el-button size="mini" type="text" @click="$refs[scope.row.dictName].doClose()">取消</el-button>
 
-               <el-button :loading="delLoading" type="primary" size="mini" @click="subDelete(scope.row.id)">确定
 
-               </el-button>
 
-             </div>
 
-             <el-button slot="reference" icon="el-icon-delete" type="text">删除</el-button>
 
-           </el-popover>
 
-           <el-button slot="reference" icon="el-icon-s-grid" type="text" @click="a(scope.row.id)">字典值</el-button>
 
-         </template>
 
-       </el-table-column>
 
-     </el-table>
 
-     <!--分页-->
 
-     <div class="pagination">
 
-       <el-pagination
 
-         :current-page.sync="currentPage"
 
-         :page-size="pageSize"
 
-         layout="total, prev, pager, next, jumper"
 
-         :total="total"
 
-         background
 
-         @current-change="handleCurrentChange"
 
-       />
 
-     </div>
 
-     <!--新增-->
 
-     <el-dialog :append-to-body="true" :visible.sync="dialog" :title="isAdd ? '新增字典' : '编辑字典'" width="500px">
 
-       <el-form ref="form" :model="form" :rules="rules" label-width="80px">
 
-         <el-form-item label="字典名称" prop="dictName">
 
-           <el-input v-model="form.dictName" style="width: 370px;" placeholder="请输入字典名称" />
 
-         </el-form-item>
 
-         <el-form-item label="字典编码" prop="dictCode">
 
-           <el-input v-model="form.dictCode" style="width: 370px;" placeholder="请输入字典编码" />
 
-         </el-form-item>
 
-         <el-form-item label="描述" prop="description">
 
-           <el-input v-model="form.description" style="width: 370px;" placeholder="请输入描述" />
 
-         </el-form-item>
 
-         <el-form-item label="备注">
 
-           <el-input v-model="form.remark" style="width: 370px;" placeholder="请输入备注" />
 
-         </el-form-item>
 
-       </el-form>
 
-       <div slot="footer" class="dialog-footer">
 
-         <el-button type="text" @click="dialog = false">取消</el-button>
 
-         <el-button :loading="loading" type="primary" @click="doSubmit">确认</el-button>
 
-       </div>
 
-     </el-dialog>
 
-     <dictItem ref="dictItem" />
 
-   </div>
 
- </template>
 
- <script>
 
- import { saveDict, getDict, updateDict, deleteDict } from '@/api/dict'
 
- import dictItem from './dictItem'
 
- export default {
 
-   components: { dictItem },
 
-   data() {
 
-     return {
 
-       data: [],
 
-       dictDetailData: [],
 
-       loading: false,
 
-       dloading: false,
 
-       qqdialog: false,
 
-       dialog: false,
 
-       ddialog: false,
 
-       isAdd: false,
 
-       isValueAdd: false,
 
-       visible: false,
 
-       form: {
 
-         id: '',
 
-         dictName: '',
 
-         dictCode: '',
 
-         description: '',
 
-         remark: ''
 
-       },
 
-       currentPage: 1,
 
-       pageSize: 10,
 
-       total: 0, // 总数量
 
-       // 名称
 
-       dictName: '',
 
-       delLoading: false,
 
-       rules: {
 
-         dictName: [
 
-           { required: true, message: '字典名称不为空', trigger: 'blur' }
 
-         ],
 
-         dictCode: [
 
-           { required: true, message: '字典编码不为空', trigger: 'blur' }
 
-         ],
 
-         description: [
 
-           { required: true, message: '描述不为空', trigger: 'blur' }
 
-         ]
 
-       },
 
-       queryTypeOptions: [
 
-         { key: 'name', display_name: '字典名称' },
 
-         { key: 'remark', display_name: '描述' }
 
-       ],
 
-       query: {
 
-         type: '',
 
-         value: ''
 
-       }
 
-     }
 
-   },
 
-   created() {
 
-     this.getDictData()
 
-   },
 
-   methods: {
 
-     a: function(val) {
 
-       this.$refs.dictItem.doSubmit(val)
 
-     },
 
-     // 获取字典详情
 
-     getDictData: function() {
 
-       this.loading = true
 
-       const params = new URLSearchParams()
 
-       params.append('current', this.currentPage)
 
-       params.append('size', this.pageSize)
 
-       getDict(params).then(res => {
 
-         console.log(res)
 
-         this.data = res.data.data.records
 
-         this.total = res.data.data.total
 
-         this.loading = false
 
-       })
 
-     },
 
-     // 字典名称提交动作
 
-     doSubmit() {
 
-       this.$refs['form'].validate((valid) => {
 
-         if (valid) {
 
-           if (this.isAdd) {
 
-             // 新增字典
 
-             saveDict(this.form).then((res) => {
 
-               if (res.data.code === 200) {
 
-                 this.$message({ message: '操作成功', type: 'success' })
 
-               } else {
 
-                 this.$message({ message: res.data.msg, type: 'error' })
 
-               }
 
-               this.dialog = false
 
-               this.getDictData()
 
-               this.$refs['form'].resetFields()
 
-             })
 
-           } else {
 
-             // 更新字典
 
-             updateDict(this.form).then((res) => {
 
-               if (res.data.code === 200) {
 
-                 this.$message({ message: '操作成功', type: 'success' })
 
-               } else {
 
-                 this.$message({ message: res.data.msg, type: 'error' })
 
-               }
 
-               this.dialog = false
 
-               this.getDictData()
 
-             })
 
-           }
 
-         }
 
-       })
 
-     },
 
-     // 添加字典
 
-     handleAdd: function() {
 
-       this.dialog = true
 
-       this.isAdd = true
 
-       this.form = {}
 
-     },
 
-     // 编辑字典
 
-     handleEdit: function(row) {
 
-       this.dialog = true
 
-       this.isAdd = false
 
-       this.form = row
 
-     },
 
-     // 删除操作
 
-     subDelete(val) {
 
-       deleteDict(val).then(res => {
 
-         if (res.data.code === 200) {
 
-           this.delLoading = false
 
-           this.$message({ message: '删除成功', type: 'success' })
 
-           this.getDictData()
 
-         }
 
-       }).catch(err => {
 
-         this.delLoading = false
 
-         console.log(err.response.data.message)
 
-       })
 
-     },
 
-     // 换页
 
-     handleCurrentChange: function(val) {
 
-       this.currentPage = val
 
-       this.getDictData()
 
-     }
 
-   }
 
- }
 
- </script>
 
- <style scoped>
 
- </style>
 
 
  |