service-edit.php 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. <div id="app" v-cloak>
  2. <el-card shadow="never" style="border:0" class="box-card" body-style="background-color: #f3f3f3;padding: 10px 0 0;" class="box-card" v-loading="cardLoading">
  3. <div slot="header">
  4. <div flex="cross:center box:first">
  5. <div><span @click="$navigate({r:'mall/service/index'})" class="text">服务</span>/服务编辑</div>
  6. </div>
  7. </div>
  8. <div class="form-body">
  9. <el-form :model="ruleForm" :rules="rules" size="small" ref="ruleForm" label-width="120px">
  10. <el-form-item label="服务名称" prop="name">
  11. <el-input v-model="ruleForm.name"></el-input>
  12. <p class="tips-text">多个服务使用“|”分隔,例如:正品保障|极速发货|7天退换货</p>
  13. </el-form-item>
  14. <el-form-item label="排序" prop="sort">
  15. <el-input type="number" v-model="ruleForm.sort"></el-input>
  16. </el-form-item>
  17. <el-form-item label="备注" prop="remark">
  18. <el-input type="textarea" v-model="ruleForm.remark"></el-input>
  19. </el-form-item>
  20. <!-- <el-form-item label="是否默认" prop="is_default">
  21. <el-switch v-model="ruleForm.is_default" active-value="1" inactive-value="0"></el-switch>
  22. </el-form-item> -->
  23. <el-button class="button-item" :loading="btnLoading" type="primary" @click="store('ruleForm')" size="small">保存</el-button>
  24. </el-form>
  25. </div>
  26. </el-card>
  27. </div>
  28. <script>
  29. const app = new Vue({
  30. el: '#app',
  31. data() {
  32. return {
  33. ruleForm: {
  34. is_default: '0',
  35. remark: '',
  36. sort: 100,
  37. },
  38. rules: {
  39. name: [{
  40. required: true,
  41. message: '请输入服务名称',
  42. trigger: 'change'
  43. }, ],
  44. sort: [{
  45. required: true,
  46. message: '请输入排序',
  47. trigger: 'change'
  48. }, ],
  49. },
  50. btnLoading: false,
  51. cardLoading: false,
  52. };
  53. },
  54. methods: {
  55. store(formName) {
  56. this.$refs[formName].validate((valid) => {
  57. let self = this;
  58. if (valid) {
  59. self.btnLoading = true;
  60. request({
  61. params: {
  62. r: 'mall/goods/service-edit'
  63. },
  64. method: 'post',
  65. data: {
  66. form: self.ruleForm,
  67. }
  68. }).then(e => {
  69. self.btnLoading = false;
  70. if (e.data.code == 0) {
  71. self.$message.success(e.data.msg);
  72. navigateTo({
  73. r: 'mall/goods/service'
  74. })
  75. } else {
  76. self.$message.error(e.data.msg);
  77. }
  78. }).catch(e => {
  79. self.$message.error(e.data.msg);
  80. self.btnLoading = false;
  81. });
  82. } else {
  83. console.log('error submit!!');
  84. return false;
  85. }
  86. });
  87. },
  88. getDetail() {
  89. let self = this;
  90. self.cardLoading = true;
  91. request({
  92. params: {
  93. r: 'mall/goods/service-edit',
  94. id: getQuery('id')
  95. },
  96. method: 'get',
  97. }).then(e => {
  98. self.cardLoading = false;
  99. if (e.data.code == 0) {
  100. self.ruleForm = e.data.data.detail;
  101. } else {
  102. self.$message.error(e.data.msg);
  103. }
  104. }).catch(e => {
  105. console.log(e);
  106. });
  107. },
  108. },
  109. mounted: function() {
  110. if (getQuery('id')) {
  111. this.getDetail();
  112. }
  113. }
  114. });
  115. </script>