mp_page_add_edit.vue 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. <template>
  2. <div class="container add_edit">
  3. <el-form :model="form" :rules="rules" ref="ruleForm" label-width="80px">
  4. <el-form-item label="页面名称" prop="name" ref="name"><el-input v-model="form.name" placeholder="请输入名称"></el-input></el-form-item>
  5. <el-form-item label="跳转类型">
  6. <el-radio-group v-model="form.type">
  7. <el-radio label="页面">页面</el-radio>
  8. <el-radio label="网页">网页</el-radio>
  9. </el-radio-group>
  10. </el-form-item>
  11. <el-form-item label="url地址" prop="url" ref="url"><el-input v-model="form.url" placeholder="请输入地址"></el-input></el-form-item>
  12. <el-form-item label="排序"><el-input v-model.number="form.sort" type="number" min="0" placeholder="请输入排序"></el-input></el-form-item>
  13. <el-form-item label="备注"><el-input v-model="form.remark" placeholder="请输入备注"></el-input></el-form-item>
  14. <el-form-item label="状态">
  15. <el-switch v-model="form.state" active-color="#ff6a6c" inactive-color="#bbb" active-value="启用" inactive-value="禁用"></el-switch>
  16. </el-form-item>
  17. <el-form-item>
  18. <el-button class="confirm_btn" @click="submitForm('ruleForm')">确 定</el-button>
  19. <el-button @click="returnPage">返回列表</el-button>
  20. </el-form-item>
  21. </el-form>
  22. </div>
  23. </template>
  24. <script>
  25. import bus from '@/common/bus';
  26. const __name = 'usemall-app-wxmini-page';
  27. export default {
  28. data() {
  29. return {
  30. dataId: '',
  31. form: {
  32. name: '',
  33. type: '页面',
  34. url: '',
  35. sort: 0,
  36. remark: '',
  37. state: '启用'
  38. },
  39. rules: {
  40. name: [
  41. {
  42. required: true,
  43. message: '请输入页面名称',
  44. trigger: 'change'
  45. }
  46. ],
  47. url: [
  48. {
  49. required: true,
  50. message: '请选择跳转地址',
  51. trigger: 'change'
  52. }
  53. ]
  54. }
  55. };
  56. },
  57. methods: {
  58. async loadData() {
  59. if (!this.dataId) {
  60. return;
  61. }
  62. await this.$db[__name].tofirst(this.dataId).then(res => {
  63. if (res.code == 200) {
  64. for (let item in this.form) {
  65. this.form[item] = res.datas[item];
  66. }
  67. }
  68. });
  69. },
  70. submitForm(formName) {
  71. this.$refs[formName].validate((valid, obj) => {
  72. this.$api.set_unvalidated_form_focus(this, obj);
  73. if (valid) {
  74. if (!this.dataId) {
  75. this.$db[__name].add(this.form).then(res => {
  76. if (res.code == 200) {
  77. this.getOpenerEventChannel().emit('loadData');
  78. this.returnPage();
  79. }
  80. });
  81. } else {
  82. this.$db[__name].update(this.dataId, this.form).then(res => {
  83. if (res.code == 200) {
  84. this.getOpenerEventChannel().emit('loadData');
  85. this.returnPage();
  86. }
  87. });
  88. }
  89. }
  90. });
  91. },
  92. returnPage() {
  93. bus.$emit('tab-close');
  94. this.$router.push('/pages/app/mp/mp_page');
  95. }
  96. },
  97. created() {
  98. this.dataId = this.$route.query.id || '';
  99. this.loadData();
  100. }
  101. };
  102. </script>
  103. <style ></style>