label-edit.php 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  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:'mch/client/goods/goods-label'})" class="text">商品标签</span>/标签编辑</div>
  6. </div>
  7. </div>
  8. <div class="form-body">
  9. <el-form :model="form" :rules="rules" size="small" ref="form" label-width="120px">
  10. <el-form-item label="标签标题" prop="title">
  11. <el-input v-model="form.title"></el-input>
  12. <!-- <p class="tips-text">多个标签使用“|”分隔,例如:推荐|智能|电器</p> -->
  13. </el-form-item>
  14. <el-form-item label="标签副标题" prop="sub_title">
  15. <el-input v-model="form.sub_title"></el-input>
  16. </el-form-item>
  17. <el-form-item label="排序" prop="sort">
  18. <el-input type="number" v-model="form.sort"></el-input>
  19. </el-form-item>
  20. <el-button class="button-item" :loading="btnLoading" type="primary" @click="store('form')" size="small">保存</el-button>
  21. </el-form>
  22. </div>
  23. </el-card>
  24. </div>
  25. <script>
  26. const app = new Vue({
  27. el: '#app',
  28. data() {
  29. return {
  30. form: {
  31. title:'',
  32. sub_title:'',
  33. sort: 999,
  34. },
  35. rules: {
  36. title: [{
  37. required: true,
  38. message: '请输入标签名称',
  39. trigger: 'change'
  40. }, ],
  41. sort: [{
  42. required: true,
  43. message: '请输入排序',
  44. trigger: 'change'
  45. }, ],
  46. },
  47. btnLoading: false,
  48. cardLoading: false,
  49. };
  50. },
  51. methods: {
  52. store(formName) {
  53. this.$refs[formName].validate((valid) => {
  54. let self = this;
  55. if (valid) {
  56. self.btnLoading = true;
  57. request({
  58. params: {
  59. r: 'mch/client/goods/label-edit'
  60. },
  61. method: 'post',
  62. data: {
  63. form: self.form,
  64. }
  65. }).then(e => {
  66. self.btnLoading = false;
  67. if (e.data.code == 0) {
  68. self.$message.success(e.data.msg);
  69. navigateTo({
  70. r: 'mch/client/goods/goods-label'
  71. })
  72. } else {
  73. self.$message.error(e.data.msg);
  74. }
  75. }).catch(e => {
  76. self.$message.error(e.data.msg);
  77. self.btnLoading = false;
  78. });
  79. } else {
  80. console.log('error submit!!');
  81. return false;
  82. }
  83. });
  84. },
  85. getDetail() {
  86. let self = this;
  87. self.cardLoading = true;
  88. request({
  89. params: {
  90. r: 'mch/client/goods/label-edit',
  91. id: getQuery('id')
  92. },
  93. method: 'get',
  94. }).then(e => {
  95. self.cardLoading = false;
  96. if (e.data.code == 0) {
  97. self.form = e.data.data.detail;
  98. } else {
  99. self.$message.error(e.data.msg);
  100. }
  101. }).catch(e => {
  102. console.log(e);
  103. });
  104. },
  105. },
  106. mounted: function() {
  107. if (getQuery('id')) {
  108. this.getDetail();
  109. }
  110. }
  111. });
  112. </script>