index.vue 6.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200
  1. <template>
  2. <div class="subPage">
  3. <div class="content">
  4. <div class="input-div">
  5. <div style="float: left; font-size: 20px;">
  6. 活动名称:
  7. </div>
  8. <div style="float: left; margin-left: 30px;">
  9. <template>
  10. <el-input v-model="activityName" placeholder="请输入内容" style="width: 300px;"></el-input>
  11. </template>
  12. </div>
  13. </div>
  14. <div class="input-div">
  15. <div style="float: left; font-size: 20px;">
  16. 活动类型:
  17. </div>
  18. <div style="float: left; margin-left: 30px;">
  19. <template>
  20. <el-select v-model="regValue" placeholder="请选择" style="width: 300px;">
  21. <el-option
  22. v-for="item in regOptions"
  23. :key="item.regValue"
  24. :label="item.label"
  25. :value="item.regValue">
  26. </el-option>
  27. </el-select>
  28. </template>
  29. </div>
  30. </div>
  31. <div class="input-div">
  32. <div style="float: left; font-size: 20px;">
  33. 赠券卡券:
  34. </div>
  35. <div style="float: left; margin-left: 30px;">
  36. <template>
  37. <el-select v-model="giftValue" placeholder="请选择" style="width: 300px;">
  38. <el-option
  39. v-for="item in giftOptions"
  40. :key="item.giftValue"
  41. :label="item.label"
  42. :value="item.giftValue">
  43. </el-option>
  44. </el-select>
  45. </template>
  46. </div>
  47. </div>
  48. <div class="input-div">
  49. <div style="float: left; font-size: 20px;">
  50. 赠券数量:
  51. </div>
  52. <div style="float: left; margin-left: 30px;">
  53. <template>
  54. <el-input v-model="giftNum" placeholder="请输入内容" style="width: 300px;"></el-input>
  55. </template>
  56. </div>
  57. </div>
  58. <div class="input-div">
  59. <div style="float: left; font-size: 20px;">
  60. 活动描述:
  61. </div>
  62. <div style="float: left; margin-left: 30px;">
  63. <template>
  64. <el-input
  65. type="textarea"
  66. :rows="10"
  67. placeholder="请输入内容"
  68. v-model="desc" style="width: 300px; height: 200px;">
  69. </el-input>
  70. </template>
  71. </div>
  72. </div>
  73. <div class="input-div">
  74. <el-row>
  75. <el-button type="warning" style="float: right;" @click="redirection('activitiesList')">返回</el-button>
  76. <el-button type="primary" style="float: right; margin-right: 10px;" @click="submitData">提交</el-button>
  77. </el-row>
  78. </div>
  79. </div>
  80. </div>
  81. </template>
  82. <script>
  83. import { mapState } from 'vuex'
  84. export default {
  85. data () {
  86. return {
  87. msg: '添加活动',
  88. postData: {
  89. TableId: '', // 桌位id
  90. AreaId: '', // 区域id
  91. CaseId: '', // 案场id
  92. OrgId: '', // 机构id
  93. TableNo: '', // 桌位编号
  94. Order: '', // 排序
  95. },
  96. regOptions: [{
  97. regValue: '1',
  98. label: '注册类型'
  99. }],
  100. regValue: '',
  101. giftOptions: [], // [{giftValue: '1',label: '饮品通用券'}, {giftValue: '2',label: '课程通用券'}, {giftValue: '3',label: '小小外交官体验券'}]
  102. giftValue: '',
  103. giftLabel: '',
  104. activityName: '', // 活动名称
  105. activityType: this.regValue, // 活动类型
  106. resourceDesc: '', // 存储JSON (赠券类型,赠送数量,活动描述)
  107. giftNum: 0, // 赠送数量
  108. desc: '', // 活动描述
  109. giftList: [] // 赠券卡券数据体
  110. }
  111. },
  112. mounted () {
  113. this.getCouponList()
  114. },
  115. computed: {
  116. ...mapState({
  117. defaultCaseId: x => x.app.cases.default,
  118. }),
  119. giftData: {
  120. get () {
  121. let jsonData = this.$data.giftList
  122. console.log('请求到的:' + this.$data.giftList)
  123. let data = []
  124. for (let i = 0; i < jsonData.length; i++) {
  125. let tempData = []
  126. tempData.giftValue = jsonData[i].CouponId
  127. tempData.label = jsonData[i].CouponName
  128. console.log('卡券编号:' + tempData.giftValue + ' ' + tempData.label)
  129. data.push(tempData)
  130. }
  131. console.log('giftData 数据:')
  132. return data
  133. }
  134. }
  135. },
  136. methods: {
  137. redirection (pathName) { // 重定向
  138. this.$router.push({ name: pathName })
  139. },
  140. submitData () { // 提交数据
  141. // 判断是否提交成功
  142. // 提交成功,跳转页面
  143. // let subData = []
  144. // subData.activityName = this.$data.activityName
  145. // subData.activityType = this.$data.regValue
  146. // let obj = []
  147. // obj.giftValue = this.$data.giftValue
  148. // obj.giftNum = this.$data.giftNum
  149. // obj.desc = this.$data.desc
  150. // subData.resourceDesc = obj
  151. // console.log(subData)
  152. // let obj = []
  153. // obj.giftValue = this.$data.giftValue
  154. // obj.giftNum = this.$data.giftNum
  155. // obj.desc = this.$data.desc
  156. let tempGiftOptions = this.$data.giftOptions
  157. let tempGiftValue = this.$data.giftValue
  158. for (let i = 0; i < tempGiftOptions.length; i++) {
  159. if (tempGiftOptions[i].giftValue === tempGiftValue) {
  160. this.$data.giftLabel = tempGiftOptions[i].label
  161. break
  162. }
  163. }
  164. let jsonString = '{"giftValue":"' + this.$data.giftValue + '","giftLabel":"' + this.$data.giftLabel + '","giftNum":"' + this.$data.giftNum + '","desc":"' + this.$data.desc + '"}'
  165. this.$ajax(this.$api.marketingActivities.addMarketing.url, {
  166. method: this.$api.marketingActivities.addMarketing.method,
  167. queryData: {activityName: this.$data.activityName, activityType: this.$data.regValue, resourceDesc: jsonString, CaseId: this.defaultCaseId}
  168. }).then(res => {
  169. // console.log(res)
  170. this.$message({
  171. type: 'success',
  172. message: '操作成功'
  173. })
  174. // 跳转路由
  175. this.redirection('activitiesList')
  176. })
  177. },
  178. getCouponList () {
  179. this.$ajax(this.$api.marketingActivities.getCouponList.url, {
  180. method: this.$api.marketingActivities.getCouponList.method,
  181. queryData: {}
  182. }).then(res => {
  183. // console.log(res)
  184. this.giftList = res.list
  185. this.giftOptions = this.giftData
  186. })
  187. },
  188. }
  189. }
  190. </script>
  191. <!-- Add "scoped" attribute to limit CSS to this component only -->
  192. <style lang="scss" scoped>
  193. @import "page.scss";
  194. </style>