detail.vue 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  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. // name:"goodsListDetail",
  44. mixins: [locMixin],
  45. data() {
  46. return {
  47. // 表单
  48. form: {
  49. sort: 0
  50. },
  51. // 有效期
  52. date: []
  53. }
  54. },
  55. watch: {
  56. date(val) {
  57. this.form.startTime = val[0]
  58. this.form.endTime = val[1]
  59. }
  60. },
  61. mounted() {
  62. if (this.$route.query.id) {
  63. detail({
  64. id: this.$route.query.id
  65. }).then(res => {
  66. if (res.code === 0) {
  67. this.form = res.data
  68. this.date = [res.data.startTime, res.data.endTime]
  69. }
  70. })
  71. }
  72. },
  73. methods: {
  74. // 上传图片
  75. getUpload(e) {
  76. this.form.pic = e.file
  77. },
  78. // 取消
  79. cancel() {
  80. this.$tab.closeOpenPage("/goods/goodsList");
  81. },
  82. // 提交
  83. getSubmit() {
  84. if (this.$route.query.id) {
  85. edit(this.form).then(res => {
  86. if (res.code === 0) {
  87. this.$message.success('修改成功!')
  88. this.cancel()
  89. }
  90. })
  91. } else {
  92. create(this.form).then(res => {
  93. if (res.code === 0) {
  94. this.$message.success('新增成功!')
  95. this.cancel()
  96. }
  97. })
  98. }
  99. }
  100. }
  101. }
  102. </script>
  103. <style lang="scss" scoped>
  104. .el-form {
  105. width: 500px;
  106. }
  107. </style>