index.vue 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212
  1. <template>
  2. <anji-crud ref="listPage" :option="crudOption">
  3. <template v-slot:buttonLeftOnTable>
  4. <el-button type="primary" icon="el-icon-edit" @click="dictRefresh" v-permission="'dictManage:fresh'">刷新字典项
  5. </el-button>
  6. </template>
  7. <template slot="rowButton" slot-scope="props">
  8. <el-button type="text" @click="editItem(props)" v-permission="'dictItemManage:query'">编辑字典项</el-button>
  9. <el-button type="text" @click="itemRefresh(props)" v-permission="'dictManage:fresh'">刷新字典项</el-button>
  10. </template>
  11. <!--自定义的卡片插槽,将在编辑详情页面,出现在底部新卡片-->
  12. <!-- <template v-slot:cardInEditPage>-->
  13. <!-- <div class="anji-card">-->
  14. <!-- <div class="card-head">-->
  15. <!-- 自定义标题-->
  16. <!-- </div>-->
  17. <!-- <div class="card-body">-->
  18. <!-- 自定义内容区-->
  19. <!-- </div>-->
  20. <!-- </div>-->
  21. <!-- </template>-->
  22. <!--这里可以将自定义的弹出框代码,放入到page中
  23. <template v-slot:pageSection>
  24. <div>插入底部html片段</div>
  25. </template>
  26. -->
  27. </anji-crud>
  28. </template>
  29. <script>
  30. import {dictDetail, getDictList, dictAdd, dictEdit, dictsDelect, freshDict} from '@/api/dict'
  31. export default {
  32. name: 'Dict',
  33. components: {
  34. anjiCrud: require('@/components/AnjiPlus/anji-crud/anji-crud').default,
  35. },
  36. data() {
  37. const that = this
  38. return {
  39. crudOption: {
  40. // 使用菜单做为页面标题
  41. title: '数据字典',
  42. // 详情页中输入框左边文字宽度
  43. labelWidth: '120px',
  44. // 查询表单条件
  45. queryFormFields: [
  46. {
  47. inputType: 'input',
  48. label: '字典名称',
  49. field: 'dictName',
  50. },
  51. {
  52. inputType: 'input',
  53. label: '字典编码',
  54. field: 'dictCode',
  55. },
  56. ],
  57. queryFormChange(queryForm, fileName, fileval) {
  58. if (queryForm['project']) {
  59. that.$store.commit('user/SET_PROJECT', queryForm['project'])
  60. }
  61. },
  62. // 操作按钮
  63. buttons: {
  64. query: {
  65. api: getDictList,
  66. permission: 'dictManage:query',
  67. },
  68. queryByPrimarykey: {
  69. api: dictDetail,
  70. permission: 'dictManage:query',
  71. },
  72. add: {
  73. api: dictAdd,
  74. permission: 'dictManage:insert',
  75. },
  76. delete: {
  77. api: dictsDelect,
  78. permission: 'dictManage:delete',
  79. },
  80. edit: {
  81. api: dictEdit,
  82. permission: 'dictManage:update',
  83. },
  84. // 自定义按钮
  85. customButton: {
  86. operationWidth: 240, // row自定义按钮表格宽度
  87. },
  88. },
  89. // 表格列
  90. columns: [
  91. {
  92. label: '',
  93. field: 'id',
  94. primaryKey: true, // 根据主键查询详情或者根据主键删除时, 主键的
  95. tableHide: true, // 表格中不显示
  96. editHide: true, // 编辑弹框中不显示
  97. },
  98. {
  99. label: '字典名称', // 字典名称
  100. placeholder: '',
  101. field: 'dictName',
  102. editField: 'dictName',
  103. inputType: 'input',
  104. rules: [
  105. {required: true, message: '字典名称不能为空', trigger: 'blur'},
  106. {min: 1, max: 64, message: '不超过64个字符', trigger: 'blur'},
  107. ],
  108. disabled: false,
  109. },
  110. {
  111. label: '字典编码', // 字典编码
  112. placeholder: '',
  113. field: 'dictCode',
  114. editField: 'dictCode',
  115. inputType: 'input',
  116. rules: [
  117. {required: true, message: '字典编码不能为空', trigger: 'blur'},
  118. {min: 1, max: 64, message: '不超过64个字符', trigger: 'blur'},
  119. ],
  120. disabled: 'disableOnEdit',
  121. },
  122. {
  123. label: '描述', // 描述
  124. placeholder: '',
  125. field: 'remark',
  126. editField: 'remark',
  127. inputType: 'input',
  128. rules: [{min: 1, max: 64, message: '不超过64个字符', trigger: 'blur'}],
  129. disabled: false,
  130. },
  131. {
  132. label: '创建时间',
  133. placeholder: '',
  134. field: 'createTime',
  135. editField: 'createTime',
  136. inputType: 'input',
  137. disabled: false,
  138. editHide: true, // 编辑弹框中不显示
  139. },
  140. {
  141. label: '创建人',
  142. placeholder: '',
  143. field: 'createBy',
  144. editField: 'createBy',
  145. inputType: 'input',
  146. disabled: false,
  147. editHide: true, // 编辑弹框中不显示
  148. },
  149. {
  150. label: '更新时间',
  151. placeholder: '',
  152. field: 'updateTime',
  153. editField: 'updateTime',
  154. inputType: 'input',
  155. disabled: false,
  156. editHide: true, // 编辑弹框中不显示
  157. },
  158. {
  159. label: '更新人',
  160. placeholder: '',
  161. field: 'updateBy',
  162. editField: 'updateBy',
  163. inputType: 'input',
  164. disabled: false,
  165. editHide: true, // 编辑弹框中不显示
  166. },
  167. ],
  168. },
  169. }
  170. },
  171. created() {
  172. },
  173. methods: {
  174. // 刷新当前面字典
  175. async dictRefresh() {
  176. var checkRecords = this.$refs.listPage.checkRecords
  177. var dictCodes = []
  178. if (checkRecords.length > 0) {
  179. dictCodes = checkRecords.map((item) => item.dictCode)
  180. }
  181. const {code} = await freshDict(dictCodes)
  182. if (code != '200') return
  183. this.$message.success('刷新成功')
  184. },
  185. // 刷新某个字典
  186. async itemRefresh(val) {
  187. const selectedList = val.msg
  188. let dictCodes = []
  189. if (selectedList.length > 0) {
  190. dictCodes = selectedList.map((item) => item.dictCode)
  191. }
  192. const {code} = await freshDict(dictCodes)
  193. if (code != '200') return
  194. this.$message.success('刷新成功')
  195. },
  196. // 编辑字典项
  197. editItem(val) {
  198. this.$router.push({
  199. path: '/system/dictItem',
  200. query: {
  201. dictCode: val.msg.dictCode,
  202. project: this.$store.state.user.project,
  203. },
  204. })
  205. },
  206. },
  207. }
  208. </script>