brandDetail.vue 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. <template> 
  2. <div class="form-container container-frame">
  3. <el-form :model="brand" :rules="rules" ref="brandFrom" label-width="150px">
  4. <el-form-item label="品牌名称:" prop="name">
  5. <el-input v-model="brand.name"></el-input>
  6. </el-form-item>
  7. <el-form-item label="品牌首字母:">
  8. <el-input v-model="brand.firstLetter"></el-input>
  9. </el-form-item>
  10. <el-form-item label="品牌LOGO:" prop="logo">
  11. <el-input v-model="brand.logo"></el-input>
  12. </el-form-item>
  13. <el-form-item label="品牌专区大图:">
  14. <el-input v-model="brand.bigPic"></el-input>
  15. </el-form-item>
  16. <el-form-item label="品牌故事:">
  17. <el-input
  18. placeholder="请输入内容"
  19. type="textarea"
  20. v-model="brand.brandStory"
  21. autosize="true"></el-input>
  22. </el-form-item>
  23. <el-form-item label="排序:" prop="sort">
  24. <el-input v-model.number="brand.sort"></el-input>
  25. </el-form-item>
  26. <el-form-item label="是否显示:">
  27. <el-radio-group v-model="brand.showStatus">
  28. <el-radio :label="1">是</el-radio>
  29. <el-radio :label="0">否</el-radio>
  30. </el-radio-group>
  31. </el-form-item>
  32. <el-form-item label="品牌制造商:">
  33. <el-radio-group v-model="brand.factoryStatus">
  34. <el-radio :label="1">是</el-radio>
  35. <el-radio :label="0">否</el-radio>
  36. </el-radio-group>
  37. </el-form-item>
  38. <el-form-item>
  39. <el-button type="primary" @click="onSubmit('brandFrom')">提交</el-button>
  40. <el-button v-if="!isEdit" @click="resetForm('brandFrom')">重置</el-button>
  41. </el-form-item>
  42. </el-form>
  43. </div>
  44. </template>
  45. <script>
  46. import {createBrand, getBrand, updateBrand} from '@/api/brand'
  47. export default {
  48. name: 'brandDetail',
  49. props: {
  50. isEdit: {
  51. type: Boolean,
  52. default: false
  53. }
  54. },
  55. data() {
  56. return {
  57. brand: {
  58. bigPic: '',
  59. brandStory: '',
  60. factoryStatus: 0,
  61. firstLetter: '',
  62. logo: '',
  63. name: '',
  64. showStatus: 0,
  65. sort: 0
  66. },
  67. rules: {
  68. name: [
  69. {required: true, message: '请输入品牌名称', trigger: 'blur'},
  70. {min: 2, max: 140, message: '长度在 2 到 140 个字符', trigger: 'blur'}
  71. ],
  72. logo: [
  73. {required: true, message: '请输入品牌logo', trigger: 'blur'}
  74. ],
  75. sort: [
  76. {type: 'number', message: '排序必须为数字'}
  77. ]
  78. }
  79. }
  80. },
  81. created() {
  82. if (this.isEdit) {
  83. getBrand(this.$route.query.id).then(response => {
  84. this.brand = response.data;
  85. });
  86. }
  87. },
  88. methods: {
  89. onSubmit(formName) {
  90. this.$refs[formName].validate((valid) => {
  91. if (valid) {
  92. this.$confirm('是否提交数据', '提示', {
  93. confirmButtonText: '确定',
  94. cancelButtonText: '取消',
  95. type: 'warning'
  96. }).then(() => {
  97. if (this.isEdit) {
  98. updateBrand(this.$route.query.id, this.brand).then(response => {
  99. this.$refs[formName].resetFields();
  100. this.$message({
  101. message: '修改成功',
  102. type: 'success'
  103. });
  104. });
  105. } else {
  106. createBrand(this.brand).then(response => {
  107. this.$refs[formName].resetFields();
  108. this.$message({
  109. message: '提交成功',
  110. type: 'success'
  111. });
  112. });
  113. }
  114. });
  115. } else {
  116. this.$message({
  117. message: '验证失败',
  118. type: 'error'
  119. });
  120. return false;
  121. }
  122. });
  123. },
  124. resetForm(formName) {
  125. this.$refs[formName].resetFields();
  126. }
  127. }
  128. }
  129. </script>
  130. <style>
  131. .form-container {
  132. position: absolute;
  133. left: 0;
  134. right: 0;
  135. width: 520px;
  136. padding: 35px 35px 15px 35px;
  137. margin: 20px auto;
  138. }
  139. </style>