addMenu.vue 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193
  1. <template>
  2. <div class="addMenu 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="menuName">
  10. <el-input
  11. v-model="setQuery.menuName"
  12. class="item-width-300"
  13. ></el-input>
  14. </el-form-item>
  15. <el-form-item label="小程序:" prop="belongType">
  16. <el-select
  17. v-model="setQuery.belongType"
  18. clearable
  19. class="item-width-200"
  20. placeholder="请选择小程序"
  21. >
  22. <el-option
  23. v-for="item in belongTypeOptions"
  24. :key="item.value"
  25. :label="item.label"
  26. :value="item.value"
  27. >
  28. </el-option>
  29. </el-select>
  30. </el-form-item>
  31. <el-form-item label="菜单上方文字:">
  32. <el-input
  33. v-model="setQuery.labelAbove"
  34. class="item-width-300"
  35. ></el-input>
  36. </el-form-item>
  37. <el-form-item label="菜单下方文字:">
  38. <el-input
  39. v-model="setQuery.labelBelow"
  40. class="item-width-300"
  41. ></el-input>
  42. </el-form-item>
  43. <el-form-item label="域名地址:" prop="domainUrl">
  44. <el-input
  45. v-model="setQuery.domainUrl"
  46. class="item-width-300"
  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="status">
  56. <el-switch
  57. v-model="setQuery.status"
  58. active-text="显示"
  59. inactive-text="隐藏"
  60. :active-value="2"
  61. :inactive-value="1"
  62. active-color="#13ce66"
  63. inactive-color="#ff4949">
  64. </el-switch>
  65. </el-form-item>
  66. <el-form-item label="图标:" prop="imgUrl">
  67. <Upload
  68. type="imgUrl"
  69. id="imgUrl"
  70. width="150px"
  71. height="150px"
  72. uploadType="SHOP_INFO"
  73. :imgUrl="setQuery.imgUrl"
  74. @uploadEnd="uploadEnd"
  75. ></Upload>
  76. </el-form-item>
  77. </el-form>
  78. <div class="btn-group">
  79. <el-button @click="cancel">取 消</el-button>
  80. <el-button type="primary" :loading="loading" @click="save">确 定</el-button>
  81. </div>
  82. </div>
  83. </template>
  84. <script>
  85. import Upload from '@/components/Upload'
  86. import {addOrUpdate} from '@/api/appConfig'
  87. export default {
  88. components: {
  89. Upload,
  90. },
  91. data() {
  92. return {
  93. loading:false,
  94. setQuery: {
  95. "menuLevel":1,
  96. "parentId":'',
  97. "domainUrl": "",
  98. "id": 0,
  99. "imgUrl": "",
  100. "labelAbove": "",
  101. "labelBelow": "",
  102. "linkUrl": "",
  103. "menuCode": "",
  104. "menuName": "",
  105. "note": "",
  106. "secondaryImg": "",
  107. "sort": 0,
  108. "status": 0,
  109. "belongType":'2'
  110. },
  111. belongTypeOptions:[
  112. {
  113. label: "贵大",
  114. value: '1',
  115. },
  116. {
  117. label: "慧研学",
  118. value: '2',
  119. },
  120. ],
  121. rules: {
  122. menuName: [{ required: true, message: "请输入菜单名称", trigger: "blur" }],
  123. domainUrl: [{ required: true, message: "请输入链接地址", trigger: "blur" }],
  124. belongType: [{ required: true, message: "请选择小程序", trigger: "change" }],
  125. imgUrl: [{ required: true, message: "请输入图标", trigger: "blur" }],
  126. sort: [{ required: true, message: "请输入权重", trigger: "blur" }],
  127. secondaryImg: [{ required: true, message: "请上传分类顶部图", trigger: "change" }],
  128. },
  129. };
  130. },
  131. methods: {
  132. uploadEnd(val){
  133. this.setQuery[val.type] = val.url
  134. },
  135. cancel(){
  136. this.$router.push('/operationManage/appMenuManage/index')
  137. },
  138. save() {
  139. this.$refs.setQuery.validate((v) => {
  140. if (v) {
  141. this.loading = true
  142. addOrUpdate(this.setQuery).then(res=>{
  143. this.loading = false
  144. if(res.state == 'Success'){
  145. this.$notify({
  146. title: '成功',
  147. message: '操作成功',
  148. type: 'success'
  149. });
  150. this.$router.push('/operationManage/appMenuManage/index')
  151. }
  152. })
  153. }
  154. });
  155. },
  156. },
  157. created () {
  158. if(this.$route.query.title == '编辑菜单'){
  159. this.setQuery = JSON.parse(sessionStorage.getItem('menuItem'))
  160. }else{
  161. this.setQuery.parentId = this.$route.query.parentId
  162. this.setQuery.menuLevel = this.$route.query.menuLevel || 1
  163. }
  164. },
  165. };
  166. </script>
  167. <style lang="scss" scoped>
  168. .addMenu {
  169. padding-bottom: 40px;
  170. .btn-group{
  171. display: flex;
  172. align-items: center;
  173. justify-content: center;
  174. }
  175. }
  176. </style>