unit-add.vue 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. <template>
  2. <el-dialog
  3. :title="!id ? '新增': display ? '详情' : '修改'"
  4. width="70%"
  5. :close-on-click-modal="false"
  6. :visible.sync="visible">
  7. <el-form :model="dataForm" :rules="dataRule" ref="dataForm" label-width="auto">
  8. <el-row class="my-row">
  9. <el-form-item label="编码" prop="conversionCode">
  10. <el-input v-model="dataForm.conversionCode" :disabled="true" placeholder="系统自动生成"></el-input>
  11. </el-form-item>
  12. </el-row>
  13. <el-row class="my-row">
  14. <el-col :span="12">
  15. <el-form-item label="转换前数量">
  16. <el-input value="1" :disabled="true" placeholder="数量"></el-input>
  17. </el-form-item>
  18. </el-col>
  19. <el-col :span="12" style="padding-left: 20px">
  20. <el-form-item label="单位" prop="convertUnitBefore">
  21. <el-input v-model="dataForm.convertUnitBefore" :disabled="display" placeholder="单位"></el-input>
  22. </el-form-item>
  23. </el-col>
  24. </el-row>
  25. <el-row class="my-row">
  26. <el-col :span="12">
  27. <el-form-item label="转换后数量" prop="cnt">
  28. <el-input-number v-model="dataForm.cnt" :disabled="display" placeholder="转换后数量" :min="1" :step="1"></el-input-number>
  29. </el-form-item>
  30. </el-col>
  31. <el-col :span="12" style="padding-left: 20px">
  32. <el-form-item label="单位" prop="convertUnit">
  33. <el-input v-model="dataForm.convertUnit" :disabled="display" placeholder="转换后单位"></el-input>
  34. </el-form-item>
  35. </el-col>
  36. </el-row>
  37. <el-row class="my-row">
  38. <el-form-item label="备注说明" prop="notes">
  39. <el-input v-model="dataForm.notes" :disabled="display" placeholder="编码"></el-input>
  40. </el-form-item>
  41. </el-row>
  42. </el-form>
  43. <span slot="footer" class="dialog-footer">
  44. <el-button v-if="!display" @click="visible = false">取消</el-button>
  45. <el-button v-if="!display" type="primary" @click="dataFormSubmit()">确定</el-button>
  46. </span>
  47. </el-dialog>
  48. </template>
  49. <script>
  50. import { getConversionDetail, addOrUpdateConversion } from '../../../api/warehouse'
  51. export default {
  52. name: 'unit-add',
  53. data () {
  54. return {
  55. visible: false,
  56. display: false,
  57. id: 0,
  58. dataForm: {
  59. cnt: 1
  60. },
  61. dataRule: {
  62. convertUnitBefore: [{ required: true, message: '转换前单位不能为空', trigger: 'blur' }],
  63. cnt: [{ required: true, message: '转换后数量不能为空', trigger: 'blur' }],
  64. convertUnit: [{ required: true, message: '转换后单位不能为空', trigger: 'blur' }]
  65. }
  66. }
  67. },
  68. methods: {
  69. async init (id, display) {
  70. this.dataForm = {}
  71. this.visible = true
  72. this.id = id || 0
  73. this.display = display
  74. if (!id) return
  75. await getConversionDetail(this.id).then(({data}) => {
  76. if (data && data.code === '200') {
  77. this.dataForm = data.data
  78. }
  79. })
  80. },
  81. validateField (type) {
  82. this.$refs.dataForm.validateField(type)
  83. },
  84. // 表单提交
  85. dataFormSubmit () {
  86. this.$refs['dataForm'].validate((valid) => {
  87. if (valid) {
  88. let params = {
  89. cnt: this.dataForm.cnt,
  90. conversionCode: this.dataForm.conversionCode,
  91. conversionId: this.id ? this.id : null,
  92. convertUnit: this.dataForm.convertUnit,
  93. convertUnitBefore: this.dataForm.convertUnitBefore,
  94. orgId: this.orgId,
  95. notes: this.dataForm.notes
  96. }
  97. addOrUpdateConversion(params, !this.id).then(({data}) => {
  98. if (data && data.code === '200') {
  99. this.$message({
  100. message: '操作成功',
  101. type: 'success',
  102. duration: 1500,
  103. onClose: () => {
  104. this.visible = false
  105. this.$emit('refreshDataList')
  106. }
  107. })
  108. } else {
  109. this.$message.error(data.msg)
  110. }
  111. }).catch(() => {})
  112. }
  113. })
  114. }
  115. }
  116. }
  117. </script>
  118. <style scoped>
  119. .my-line{
  120. border-bottom: 1px solid #c0c4cc;
  121. margin-bottom: 10px;
  122. }
  123. </style>