EditGoods.vue 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. <template>
  2. <el-form ref="form" :model="form" label-width="80px">
  3. <el-form-item label="商品名称">
  4. <el-input v-model="form.name"></el-input>
  5. </el-form-item>
  6. <el-form-item label="商品简介">
  7. <el-input v-model="form.describe"></el-input>
  8. </el-form-item>
  9. <el-form-item label="商品图标">
  10. <el-upload class="avatar-uploader" :action="uploadAction" :show-file-list="false" :on-success="onUploadSuccess" :before-upload="onBeforeUpload">
  11. <img v-if="form.icon" :src="form.icon" class="avatar">
  12. <i v-else class="el-icon-plus avatar-uploader-icon"></i>
  13. </el-upload>
  14. <p class="zy">
  15. 注意:图标比例一定要1:1
  16. </p>
  17. </el-form-item>
  18. <el-form-item>
  19. <el-button type="primary" @click="save">保存</el-button>
  20. <el-button>取消</el-button>
  21. </el-form-item>
  22. </el-form>
  23. </template>
  24. <script>
  25. export default {
  26. data() {
  27. return {
  28. uploadAction: process.env.SERVER_PATH + 'upload',
  29. form: {
  30. name: '',
  31. describe: '',
  32. icon: '',
  33. status: false
  34. }
  35. }
  36. },
  37. methods: {
  38. onBeforeUpload: function(file) {
  39. const isJPG = file.type === 'image/jpeg'
  40. const isPNG = file.type === 'image/png'
  41. if (!isJPG && !isPNG) {
  42. this.$message.error('上传商品图标只能是 JPG/PNG 格式!')
  43. return false
  44. } else {
  45. return true
  46. }
  47. },
  48. onUploadSuccess: function(res, file) {
  49. if (res.code != 0) {
  50. this.$message.error(
  51. '上传图片失败 原因:' + res.msg + '(' + res.code + ')'
  52. )
  53. return
  54. } else {
  55. this.form.icon = res.obj
  56. }
  57. },
  58. save: function() {
  59. let goods = {
  60. name: this.form.name,
  61. describe: this.form.describe,
  62. icon: this.form.icon
  63. }
  64. this.$http.editGoods(goods, this).then(data => {
  65. console.log(data)
  66. })
  67. }
  68. }
  69. }
  70. </script>
  71. <style>
  72. .avatar-uploader .el-upload {
  73. border: 1px dashed #d9d9d9;
  74. border-radius: 6px;
  75. cursor: pointer;
  76. position: relative;
  77. overflow: hidden;
  78. width: 178px;
  79. }
  80. .avatar-uploader .el-upload:hover {
  81. border-color: #409eff;
  82. }
  83. .avatar-uploader-icon {
  84. font-size: 28px;
  85. color: #8c939d;
  86. width: 178px;
  87. height: 178px;
  88. line-height: 178px;
  89. text-align: center;
  90. }
  91. .avatar {
  92. width: 178px;
  93. height: 178px;
  94. display: block;
  95. }
  96. .zy {
  97. color: red;
  98. }
  99. </style>