CheckAndEditModel.vue 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. <template>
  2. <j-modal
  3. :title="title"
  4. :width="700"
  5. :visible="visible"
  6. :mask-closable="false"
  7. cancel-text="关闭"
  8. @close="close"
  9. >
  10. <a-form-model ref="form" :label-col="labelCol" :wrapper-col="wrapperCol" :rules="validatorRules" :model="model">
  11. <a-form-model-item label="部门名称" prop="deptName">
  12. <a-input v-model="model.deptName" />
  13. </a-form-model-item>
  14. <a-form-model-item label="上级部门" prop="parentId">
  15. <a-tree-select
  16. v-model="model.parentId"
  17. allow-clear
  18. tree-default-expand-all
  19. style="width: 100%"
  20. :tree-data="treeData"
  21. :replace-fields="{children:'children', title:'label', key:'id', value: 'id' }"
  22. />
  23. </a-form-model-item>
  24. <a-form-model-item label="主管人员" prop="leader">
  25. <sys-list-select-tag
  26. v-model="model.userId"
  27. dict-code="user"
  28. />
  29. </a-form-model-item>
  30. <a-form-model-item label="部门描述">
  31. <a-textarea v-model="model.remark" placeholder="请输入" :rows="4" />
  32. </a-form-model-item>
  33. <a-form-model-item label="排序">
  34. <a-input-number style="width: 100%" v-model="model.orderNum" :min="0" :max="100000"/>
  35. </a-form-model-item>
  36. </a-form-model>
  37. </j-modal>
  38. </template>
  39. <script>
  40. import { getAction, httpAction } from '@/api/request'
  41. import JModal from '@/components/JModal'
  42. export default {
  43. name: 'CheckAndEditModel',
  44. components: {
  45. JModal
  46. },
  47. data() {
  48. return {
  49. treeData: [],
  50. labelCol: { span: 4 },
  51. wrapperCol: { span: 19 },
  52. dataSource: [],
  53. title: '',
  54. visible: false,
  55. isCheck: false,
  56. model: {},
  57. validatorRules: {
  58. name: [{ required: true, message: '请输入' }],
  59. type: [{ required: true, message: '请选择' }]
  60. },
  61. url: {
  62. add: '/system/dept',
  63. edit: '/system/dept',
  64. tree: '/system/dept/treeSelect'
  65. }
  66. }
  67. },
  68. created() {
  69. },
  70. methods: {
  71. add() {
  72. this.model = {}
  73. this.visible = true
  74. this.loadTree()
  75. },
  76. edit(record) {
  77. debugger
  78. this.model = Object.assign({}, record)
  79. if (this.model.parentId === 0) {
  80. this.model.parentId = null
  81. }
  82. this.visible = true
  83. this.loadTree()
  84. },
  85. loadTree() {
  86. this.treeData = []
  87. getAction(this.url.tree).then((res) => {
  88. if (res.code === 200) {
  89. this.treeData = res.data
  90. }
  91. })
  92. },
  93. close(isSubmit) {
  94. if (isSubmit) {
  95. this.checkData()
  96. } else {
  97. this.visible = false
  98. }
  99. },
  100. checkData() {
  101. this.$refs.form.validate(valid => {
  102. if (valid) {
  103. this.saveData()
  104. } else {
  105. return false
  106. }
  107. })
  108. },
  109. saveData() {
  110. let url, type
  111. if (!this.model.id) {
  112. url = this.url.add
  113. type = 'post'
  114. } else {
  115. url = this.url.edit
  116. type = 'put'
  117. }
  118. httpAction(url, this.model, type).then((res) => {
  119. if (res.code === 200) {
  120. this.$message.success(res.msg)
  121. this.$emit('ok')
  122. this.visible = false
  123. } else {
  124. console.log(res)
  125. }
  126. })
  127. }
  128. }
  129. }
  130. </script>