addAdv.vue 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167
  1. <template>
  2. <div class="addBanner app-container">
  3. <el-form
  4. :model="setQuery"
  5. ref="setQuery"
  6. :rules="rules"
  7. label-width="130px"
  8. >
  9. <el-form-item label="名称:" prop="advertsName">
  10. <el-input
  11. v-model="setQuery.advertsName"
  12. class="item-width-300"
  13. ></el-input>
  14. </el-form-item>
  15. <el-form-item label="广告图:" prop="advertsImg">
  16. <Upload
  17. type="advertsImg"
  18. id="advertsImg"
  19. width="300px"
  20. height="200px"
  21. uploadType="SHOP_INFO"
  22. :imgUrl="setQuery.advertsImg"
  23. @uploadEnd="uploadEnd"
  24. ></Upload>
  25. </el-form-item>
  26. <el-form-item label="广告类型:" prop="advertsType">
  27. <el-select
  28. v-model="setQuery.advertsType"
  29. clearable
  30. class="item-width-200"
  31. placeholder="请选择广告类型"
  32. >
  33. <el-option
  34. v-for="item in options"
  35. :key="item.value"
  36. :label="item.label"
  37. :value="item.value"
  38. >
  39. </el-option>
  40. </el-select>
  41. </el-form-item>
  42. <el-form-item label="跳转链接:" prop="jumpUrl">
  43. <el-input
  44. v-model="setQuery.jumpUrl"
  45. class="item-width-300"
  46. placeholder="请输入跳转链接"
  47. ></el-input>
  48. </el-form-item>
  49. <el-form-item label="权重排序:" prop="sort">
  50. <el-input
  51. v-model.number="setQuery.sort"
  52. class="item-width-300"
  53. ></el-input>
  54. </el-form-item>
  55. <el-form-item label="展示位置顺序:" prop="showSort">
  56. <el-input
  57. v-model.number="setQuery.showSort"
  58. class="item-width-300"
  59. ></el-input>
  60. </el-form-item>
  61. <el-form-item label="是否显示:">
  62. <el-radio-group v-model="setQuery.status">
  63. <el-radio :label="1">显示</el-radio>
  64. <el-radio :label="2">隐藏</el-radio>
  65. </el-radio-group>
  66. </el-form-item>
  67. </el-form>
  68. <div class="btn-group">
  69. <el-button>取 消</el-button>
  70. <el-button type="primary" :loading="loading" @click="save">确 定</el-button>
  71. </div>
  72. </div>
  73. </template>
  74. <script>
  75. import Upload from '@/components/Upload'
  76. import {addOrUpdateAdv} from '@/api/appConfig'
  77. export default {
  78. components: {
  79. Upload,
  80. },
  81. data() {
  82. return {
  83. loading:false,
  84. setQuery: {
  85. "advertsImg": "",
  86. "advertsName": "",
  87. "advertsType": 1,
  88. "jumpUrl": "",
  89. "menuId": '',
  90. "sort": 0,
  91. "showSort":0,
  92. "status":1
  93. },
  94. options:[
  95. {
  96. label:'首页Banner',
  97. value:1
  98. },
  99. {
  100. label:'首页广告位',
  101. value:2
  102. }
  103. ]
  104. };
  105. },
  106. computed: {
  107. rules() {
  108. return {
  109. advertsImg: [{ required: true, message: "请上传广告图", trigger: "change" }],
  110. advertsType: [{ required: true, message: "请选择广告类型", trigger: "change" }],
  111. advertsName: [{ required: true, message: "请输入广告名称", trigger: "blur" }],
  112. jumpUrl: [{ required: true, message: "请输入调整链接", trigger: "blur" }],
  113. sort: [{ required: true, message: "请输入排序权重", trigger: "blur" }],
  114. showSort: [{ required: true, message: "请输入广告顺序", trigger: "blur" }],
  115. }
  116. }
  117. },
  118. methods: {
  119. uploadEnd(val){
  120. this.setQuery.advertsImg = val.url
  121. },
  122. save() {
  123. this.$refs.setQuery.validate((v) => {
  124. if (v) {
  125. if(this.loading) return
  126. this.loading = true
  127. addOrUpdateAdv(this.setQuery).then(res=>{
  128. this.loading = false
  129. if(res.state == 'Success'){
  130. this.$notify({
  131. title: '成功',
  132. message: '操作成功',
  133. type: 'success'
  134. });
  135. this.$router.push('/operationManage/advertisingManage/index')
  136. }
  137. })
  138. }
  139. });
  140. },
  141. },
  142. created () {
  143. if(this.$route.query.mode == 'edit'){
  144. this.setQuery = JSON.parse(sessionStorage.getItem('advItem'))
  145. }
  146. },
  147. };
  148. </script>
  149. <style lang="scss" scoped>
  150. .addBanner {
  151. padding-bottom: 40px;
  152. .btn-group{
  153. display: flex;
  154. align-items: center;
  155. justify-content: center;
  156. }
  157. }
  158. </style>