edit.php 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. <?php
  2. /**
  3. * @link:http://www.gdqijianshi.com/
  4. * @copyright: Copyright (c) 2020 广东七件事集团
  5. * Created by PhpStorm
  6. * Author: lun
  7. * Date: 2021-09-02
  8. * Time: 12:36
  9. */
  10. ?>
  11. <div id="app" v-cloak>
  12. <el-card v-loading="loading" style="border:0;min-width: 1200px;" shadow="never" body-style="background-color: #f3f3f3;padding: 0 0;">
  13. <el-form :model="ruleForm"
  14. ref="ruleForm"
  15. label-width="172px"
  16. style="position: relative"
  17. size="small">
  18. <el-card shadow="never" class="mt-24">
  19. <div slot="header">
  20. <span>链接编辑</span>
  21. </div>
  22. <el-form-item label="类型">
  23. <el-col :span="12">
  24. <el-cascader
  25. expand-trigger="hover"
  26. v-model="ruleForm.cat_id"
  27. :options="options"
  28. :props="{ checkStrictly: true }"
  29. clearable
  30. :show-all-levels="false"
  31. @change="handleChange">
  32. </el-cascader>
  33. </el-col>
  34. </el-form-item>
  35. <el-form-item label="标题">
  36. <el-col :span="12">
  37. <el-input type="text" v-model="ruleForm.title"></el-input>
  38. </el-col>
  39. </el-form-item>
  40. <el-form-item label="类型">
  41. <el-col :span="12">
  42. <el-radio-group v-model="ruleForm.open_type">
  43. <el-radio v-for="value,key in open_type_list" :key="key" :label="key" border>{{value}}</el-radio>
  44. </el-radio-group>
  45. </el-col>
  46. </el-form-item>
  47. <el-form-item label="U-APP路由" v-if="ruleForm.open_type == 'page'">
  48. <el-col :span="12">
  49. <el-input type="text" v-model="ruleForm.route"></el-input>
  50. </el-col>
  51. </el-form-item>
  52. <el-form-item label="备注">
  53. <el-col :span="12">
  54. <el-input type="text" v-model="ruleForm.remark"></el-input>
  55. </el-col>
  56. </el-form-item>
  57. <el-form-item>
  58. <el-col :span="12">
  59. <el-button :loading="submitLoading" size="small" type="primary"
  60. @click="submit('ruleForm')">保存
  61. </el-button>
  62. </el-col>
  63. </el-form-item>
  64. </el-card>
  65. </el-form>
  66. </el-card>
  67. </div>
  68. <script>
  69. const app = new Vue({
  70. el: '#app',
  71. data() {
  72. return {
  73. loading: false,
  74. submitLoading: false,
  75. options:[],
  76. ruleForm: {
  77. title: '',
  78. cat_id: '',
  79. open_type: 'page',
  80. category: [],
  81. route: '',
  82. },
  83. open_type_list: [],
  84. };
  85. },
  86. created() {
  87. this.loadData();
  88. },
  89. methods: {
  90. loadData() {
  91. this.loading = true;
  92. request({
  93. params: {
  94. r: 'admin/link/edit',
  95. id: getQuery('id')
  96. },
  97. method: 'get',
  98. }).then(e => {
  99. this.loading = false;
  100. if (e.data.code === 0) {
  101. if (e.data.data) {
  102. if (!isEmpty(e.data.data.detail)) this.ruleForm = e.data.data.detail;
  103. if (!isEmpty(e.data.data.menu)) this.options = e.data.data.menu;
  104. if (!isEmpty(e.data.data.open_type_list)) this.open_type_list = e.data.data.open_type_list;
  105. }
  106. } else {
  107. this.$message.error(e.data.msg);
  108. }
  109. }).catch(e => {
  110. });
  111. },
  112. submit(formName) {
  113. this.submitLoading = true;
  114. this.ruleForm.id = getQuery('id');
  115. request({
  116. params: {
  117. r: 'admin/link/edit',
  118. },
  119. method: 'post',
  120. data: {
  121. detail: this.ruleForm
  122. },
  123. }).then(e => {
  124. this.submitLoading = false;
  125. if (e.data.code === 0) {
  126. this.$message.success(e.data.msg);
  127. navigateTo({
  128. r: 'admin/link/index'
  129. })
  130. } else {
  131. this.$message.error(e.data.msg);
  132. }
  133. }).catch(e => {
  134. });
  135. },
  136. handleChange(val) {
  137. if (typeof val != 'undefined') {
  138. this.ruleForm.cat_id = val[val.length-1];
  139. }
  140. },
  141. },
  142. computed: {
  143. }
  144. });
  145. </script>