index.php 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. <?php
  2. use common\helpers\ComponentHelper;
  3. ?>
  4. <?= ComponentHelper::loadComponentView('cat-list', __DIR__ . '/component') ?>
  5. <?= ComponentHelper::loadComponentView('cat-transfer', __DIR__ . '/component') ?>
  6. <?= ComponentHelper::loadComponentView('cat-style', __DIR__ . '/component') ?>
  7. <?= ComponentHelper::loadComponentView('cat-import', __DIR__ . '/component') ?>
  8. <script src="/resources/js/Sortable.min.js"></script>
  9. <script src="/resources/unpkg/vuedraggable@2.18.1/dist/vuedraggable.umd.min.js"></script>
  10. <style>
  11. .new-table-body {
  12. padding: 20px;
  13. background-color: #fff;
  14. margin-bottom: 20px;
  15. }
  16. </style>
  17. <div id="app" v-cloak>
  18. <el-card class="box-card" shadow="never" style="border:0" body-style="background-color: #f3f3f3;padding: 10px 0 0;">
  19. <div slot="header">
  20. <div>
  21. <span>分类列表</span>
  22. <div style="float: right;margin-top: -5px;display: flex;align-items: center;">
  23. <el-button type="primary" @click="$confirm('更新导入的主商城分类数据?', '数据更新提示', {
  24. confirmButtonText: '确定更新', cancelButtonText: '取消', type: 'warning'}).then(() => syncMallGoodsCate())" size="small" style="margin-right: 8px;" :loading="updateLoading">更新分类</el-button>
  25. <cat-import @selected="handleCateImportSelected" :key="component_key_cat_import"><el-button size="small" type="primary">导入分类</el-button></cat-import>
  26. <el-button type="primary" @click="edit" size="small" style="margin-left: 8px;">添加分类</el-button>
  27. </div>
  28. </div>
  29. </div>
  30. <div class="new-table-body">
  31. <template>
  32. <el-tabs v-model="activeName" @tab-click="handleClick">
  33. <el-tab-pane label="商品分类" name="first">
  34. <template v-if="activeName == 'first'">
  35. <cat-list :key="component_key_cat_list"></cat-list>
  36. </template>
  37. </el-tab-pane>
  38. <el-tab-pane label="商品分类转移" name="second">
  39. <template v-if="activeName == 'second'">
  40. <cat-transfer></cat-transfer>
  41. </template>
  42. </el-tab-pane>
  43. </el-tabs>
  44. </template>
  45. </div>
  46. </el-card>
  47. </div>
  48. <script>
  49. const app = new Vue({
  50. el: '#app',
  51. data() {
  52. return {
  53. activeName: 'first',
  54. component_key_cat_list: Math.random() * 100,
  55. component_key_cat_import: Math.random() * 100,
  56. updateLoading: false
  57. };
  58. },
  59. methods: {
  60. handleClick(tab, event) {
  61. console.log(tab, event);
  62. },
  63. // 编辑
  64. edit(id) {
  65. navigateTo({
  66. r: 'store/client/cate/edit',
  67. });
  68. },
  69. handleCateImportSelected(val) {
  70. if(val.length <= 0) return;
  71. request({
  72. method: 'post',
  73. params: { r: 'store/client/cate/import-cate' },
  74. data: {cates: val}
  75. }).then(res => {
  76. if(res.data.code == 0) {
  77. this.component_key_cat_list = Math.random() * 100;
  78. this.component_key_cat_import = Math.random() * 100;
  79. this.$message.success(res.data.msg);
  80. }else{
  81. this.$message.error(res.data.msg);
  82. }
  83. });
  84. },
  85. syncMallGoodsCate() {
  86. this.updateLoading = true;
  87. request({
  88. method: 'post',
  89. params: { r: 'store/client/cate/sync-cate' }
  90. }).then(res => {
  91. this.updateLoading = false;
  92. if(res.data.code == 0) {
  93. this.component_key_cat_list = Math.random() * 100;
  94. this.$message.success(res.data.msg);
  95. }else{
  96. this.$message.error(res.data.msg);
  97. }
  98. });
  99. }
  100. },
  101. mounted: function() {
  102. },
  103. });
  104. </script>