CheckAndEditModel.vue 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  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="lineSjbh">
  12. <a-input-number v-model="model.lineSjbh" style="width: 100%" />
  13. </a-form-model-item>
  14. <a-form-model-item label="线路名称" prop="lineName">
  15. <a-input v-model="model.lineName" />
  16. </a-form-model-item>
  17. <a-form-model-item label="所属车间" prop="deptId">
  18. <a-tree-select
  19. v-model="model.deptId"
  20. :show-search="true"
  21. allow-clear
  22. tree-default-expand-all
  23. style="width: 100%"
  24. :tree-data="treeData"
  25. tree-node-filter-prop="label"
  26. :replace-fields="{children:'children', title:'label', key:'id', value: 'id' }"
  27. />
  28. </a-form-model-item>
  29. <a-form-model-item label="行别" prop="xingbie">
  30. <j-dict-select-tag
  31. v-model="model.xingbie"
  32. type="radioButton"
  33. dict-code="xingbie"
  34. />
  35. </a-form-model-item>
  36. <a-form-model-item label="开始公里标" prop="lineStartMarker">
  37. <a-input v-model="model.lineStartMarker" style="width: 100%" />
  38. </a-form-model-item>
  39. <a-form-model-item label="结束公里标" prop="lineEndMarker">
  40. <a-input v-model="model.lineEndMarker" style="width: 100%" />
  41. </a-form-model-item>
  42. </a-form-model>
  43. </j-modal>
  44. </template>
  45. <script>
  46. import { httpAction, getAction } from '@/api/request'
  47. import JModal from '@/components/JModal'
  48. export default {
  49. name: 'CheckAndEditModel',
  50. components: {
  51. JModal
  52. },
  53. data() {
  54. return {
  55. treeData: [],
  56. labelCol: { span: 4 },
  57. wrapperCol: { span: 19 },
  58. dataSource: [],
  59. title: '',
  60. visible: false,
  61. isCheck: false,
  62. model: {},
  63. validatorRules: {
  64. lineSjbh: [{ required: true, message: '请输入' }],
  65. lineName: [{ required: true, message: '请输入' }],
  66. deptId: [{ required: true, message: '请选择' }],
  67. xingbie: [{ required: true, message: '请选择' }],
  68. lineStartMarker: [{ required: true, message: '请输入' }],
  69. lineEndMarker: [{ required: true, message: '请输入' }]
  70. },
  71. url: {
  72. add: '/business/catenary/bus/line/add',
  73. edit: '/business/catenary/bus/line/update',
  74. tree: '/system/dept/treeSelect'
  75. }
  76. }
  77. },
  78. created() {
  79. this.loadTree()
  80. },
  81. methods: {
  82. loadTree() {
  83. this.treeData = []
  84. getAction(this.url.tree).then((res) => {
  85. if (res.code === 200) {
  86. this.treeData = res.data
  87. }
  88. })
  89. },
  90. add() {
  91. this.model = {}
  92. this.visible = true
  93. },
  94. edit(record) {
  95. this.model = Object.assign({}, record)
  96. this.visible = true
  97. },
  98. close(isSubmit) {
  99. if (isSubmit) {
  100. this.checkData()
  101. } else {
  102. this.visible = false
  103. }
  104. },
  105. checkData() {
  106. this.$refs.form.validate(valid => {
  107. if (valid) {
  108. this.saveData()
  109. } else {
  110. return false
  111. }
  112. })
  113. },
  114. saveData() {
  115. let url, type
  116. if (!this.model.lineId) {
  117. url = this.url.add
  118. type = 'post'
  119. } else {
  120. url = this.url.edit
  121. type = 'put'
  122. }
  123. httpAction(url, this.model, type).then((res) => {
  124. if (res.code === 200) {
  125. this.$message.success(res.msg)
  126. this.$emit('ok')
  127. this.visible = false
  128. } else {
  129. console.log(res)
  130. }
  131. })
  132. }
  133. }
  134. }
  135. </script>