detail.vue 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. <template>
  2. <div class="app-container">
  3. <el-form label-width="100px">
  4. <el-form-item label="推荐位置:">
  5. <el-select v-model="form.position" placeholder="请选择推荐位置">
  6. <el-option v-for="item in locationOptions" :key="item.value" :label="item.label"
  7. :value="item.value" />
  8. </el-select>
  9. </el-form-item>
  10. <el-form-item label="商品名称:">
  11. <el-input v-model="form.name" placeholder="请输入商品名称" />
  12. </el-form-item>
  13. <el-form-item label="商品简介:">
  14. <el-input v-model="form.description" type="textarea" rows="4" placeholder="请输入商品简介" />
  15. </el-form-item>
  16. <el-form-item label="商品价格:">
  17. <el-input v-model="form.price" placeholder="请输入商品价格" />
  18. </el-form-item>
  19. <el-form-item label="商品图片:">
  20. <Upload listType="picture-card" :url="form.pic" @upload="getUpload" />
  21. </el-form-item>
  22. <el-form-item label="跳转链接:">
  23. <el-input v-model="form.forwardUrl" placeholder="请输入跳转链接" />
  24. </el-form-item>
  25. <el-form-item label="有效期:">
  26. <el-date-picker v-model="date" type="datetimerange" start-placeholder="开始日期" end-placeholder="结束日期"
  27. value-format="yyyy-MM-dd HH:mm:ss" />
  28. </el-form-item>
  29. <el-form-item label="权重:">
  30. <el-input-number v-model="form.sort" :min="0" :max="9" />
  31. </el-form-item>
  32. <el-form-item>
  33. <el-button @click="cancel">取消</el-button>
  34. <el-button type="primary" @click="getSubmit">提交</el-button>
  35. </el-form-item>
  36. </el-form>
  37. </div>
  38. </template>
  39. <script>
  40. import { create, detail, edit } from '@/api/goods/list'
  41. import { locMixin } from './mixin'
  42. export default {
  43. mixins: [locMixin],
  44. data() {
  45. return {
  46. // 表单
  47. form: {
  48. sort: 0
  49. },
  50. // 有效期
  51. date: []
  52. }
  53. },
  54. watch: {
  55. date(val) {
  56. this.form.startTime = val[0]
  57. this.form.endTime = val[1]
  58. }
  59. },
  60. mounted() {
  61. if (this.$route.query.id) {
  62. detail({
  63. id: this.$route.query.id
  64. }).then(res => {
  65. if (res.code === 0) {
  66. this.form = res.data
  67. this.date = [res.data.startTime, res.data.endTime]
  68. }
  69. })
  70. }
  71. },
  72. methods: {
  73. // 上传图片
  74. getUpload(e) {
  75. this.form.pic = e.file
  76. },
  77. // 取消
  78. cancel() {
  79. this.$tab.closeOpenPage("/goods/goodsList");
  80. },
  81. // 提交
  82. getSubmit() {
  83. if (this.$route.query.id) {
  84. edit(this.form).then(res => {
  85. if (res.code === 0) {
  86. this.$message.success('修改成功!')
  87. this.cancel()
  88. }
  89. })
  90. } else {
  91. create(this.form).then(res => {
  92. if (res.code === 0) {
  93. this.$message.success('新增成功!')
  94. this.cancel()
  95. }
  96. })
  97. }
  98. }
  99. }
  100. }
  101. </script>
  102. <style lang="scss" scoped>
  103. .el-form {
  104. width: 500px;
  105. }
  106. </style>