DetailModal.vue 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. <template>
  2. <el-dialog
  3. :visible.sync="visible"
  4. v-bind="modalOptions"
  5. append-to-body
  6. >
  7. <el-form
  8. ref="formData"
  9. :model="formData"
  10. size="mini"
  11. label-position="left"
  12. label-suffix=":"
  13. label-width="200px"
  14. >
  15. <!-- 抽奖奖品信息 -->
  16. <el-form-item label="ID" prop="id">
  17. {{ formData.id || '--' }}
  18. </el-form-item>
  19. <el-form-item label="关联抽奖活动ID" prop="lotteryId">
  20. <div style="display: flex;align-items: center;">
  21. <span>{{ formData.lotteryId || '--' }}</span>
  22. <el-button
  23. v-if="formData.lotteryId"
  24. style="margin-left: 14px;" type="warning" size="mini"
  25. @click="$refs.DetailModal1 && $refs.DetailModal1.handleOpen({ id: formData.lotteryId })"
  26. >
  27. 详情
  28. </el-button>
  29. </div>
  30. </el-form-item>
  31. <el-form-item label="奖品名称" prop="prizeName">
  32. {{ formData.prizeName || '--' }}
  33. </el-form-item>
  34. <el-form-item label="奖品类型" prop="prizeType">
  35. <span v-if="formData.prizeType === -1">谢谢参与</span>
  36. <span v-else-if="formData.prizeType === 1">普通奖品</span>
  37. <span v-else-if="formData.prizeType === 2">唯一性奖品</span>
  38. <span v-else>--</span>
  39. </el-form-item>
  40. <el-form-item label="总库存" prop="totalStock">
  41. {{ typeof formData.totalStock === 'number' ? formData.totalStock : '--' }}
  42. </el-form-item>
  43. <el-form-item label="可用库存" prop="validStock">
  44. {{ typeof formData.validStock === 'number' ? formData.validStock : '--' }}
  45. </el-form-item>
  46. <el-form-item label="备注" prop="remark">
  47. {{ formData.remark || '--' }}
  48. </el-form-item>
  49. </el-form>
  50. <!-- 活动详情 -->
  51. <DetailModal1 ref="DetailModal1" />
  52. </el-dialog>
  53. </template>
  54. <script>
  55. import { getByIdLotteryPrize } from '@/api/lotteryManagement/LotteryPrizes'
  56. import DetailModal1 from '../../lotteryActivities/components/DetailModal'
  57. export default {
  58. name: 'DetailModal',
  59. components: {
  60. DetailModal1
  61. },
  62. data() {
  63. return {
  64. modalOptions: {
  65. closeOnClickModal: false,
  66. width: '800px',
  67. title: '查看抽奖奖品详情'
  68. },
  69. visible: false,
  70. formData: {
  71. id: '',
  72. lotteryId: '',
  73. prizeName: '',
  74. prizeType: '',
  75. totalStock: '',
  76. validStock: '',
  77. remark: ''
  78. }
  79. }
  80. },
  81. methods: {
  82. handleClose() {
  83. this.visible = false
  84. },
  85. handleOpen(params = {}) {
  86. this.formData = Object.assign(this.$options.data().formData, params)
  87. if (params.id) {
  88. this.getInfo(params.id)
  89. }
  90. this.visible = true
  91. },
  92. async getInfo(id) {
  93. const loading = this.$loading({ text: '加载中' })
  94. try {
  95. const res = await getByIdLotteryPrize({ id })
  96. this.formData = Object.assign(this.$options.data().formData, res.data, {
  97. id: res.data.id || '',
  98. lotteryId: res.data.lotteryId || '',
  99. prizeName: res.data.prizeName || '',
  100. prizeType: res.data.prizeType,
  101. totalStock: res.data.totalStock,
  102. validStock: res.data.validStock,
  103. remark: res.data.remark || ''
  104. })
  105. } finally {
  106. loading.close()
  107. }
  108. }
  109. }
  110. }
  111. </script>