service-edit.php 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  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/goods/service'})" 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, message: '请输入服务名称', trigger: 'change'},
  41. { max: 50, message: '服务名称最多可以达到50个字符', trigger: 'blur' }
  42. ],
  43. sort: [{
  44. required: true,
  45. message: '请输入排序',
  46. trigger: 'change'
  47. }, ],
  48. },
  49. btnLoading: false,
  50. cardLoading: false,
  51. };
  52. },
  53. methods: {
  54. store(formName) {
  55. this.$refs[formName].validate((valid) => {
  56. let self = this;
  57. if (valid) {
  58. self.btnLoading = true;
  59. request({
  60. params: {
  61. r: 'mall/goods/service-edit'
  62. },
  63. method: 'post',
  64. data: {
  65. form: self.ruleForm,
  66. }
  67. }).then(e => {
  68. self.btnLoading = false;
  69. if (e.data.code == 0) {
  70. self.$message.success(e.data.msg);
  71. navigateTo({
  72. r: 'mall/goods/service'
  73. })
  74. } else {
  75. self.$message.error(e.data.msg);
  76. }
  77. }).catch(e => {
  78. self.$message.error(e.data.msg);
  79. self.btnLoading = false;
  80. });
  81. } else {
  82. console.log('error submit!!');
  83. return false;
  84. }
  85. });
  86. },
  87. getDetail() {
  88. let self = this;
  89. self.cardLoading = true;
  90. request({
  91. params: {
  92. r: 'mall/goods/service-edit',
  93. id: getQuery('id')
  94. },
  95. method: 'get',
  96. }).then(e => {
  97. self.cardLoading = false;
  98. if (e.data.code == 0) {
  99. self.ruleForm = e.data.data.detail;
  100. } else {
  101. self.$message.error(e.data.msg);
  102. }
  103. }).catch(e => {
  104. console.log(e);
  105. });
  106. },
  107. },
  108. mounted: function() {
  109. if (getQuery('id')) {
  110. this.getDetail();
  111. }
  112. }
  113. });
  114. </script>