Explorar el Código

feat: #对接联表接口,帮助管理基本对接完成

loki hace 3 años
padre
commit
547fed0c33

+ 10 - 0
src/api/scene/index.js

@@ -0,0 +1,10 @@
+import api from '@/utils/request';
+
+export const getList = params =>
+	api.post(`/yxl-back-end/admin/Kindergarten/page`, params);
+export const getItem = ({ id, params }) =>
+	api.get(`/yxl-back-end/admin/Kindergarten/${id}`, params);
+export const saveItem = params =>
+	api.post(`/yxl-back-end/admin/Kindergarten/save`, params);
+export const delItem = ({ id, params }) =>
+	api.del(`/yxl-back-end/admin/Kindergarten/${id}`, params);

+ 2 - 12
src/mixins/filterList.js

@@ -46,24 +46,14 @@ const filterList = (params = {}) => ({
       });
       if ('data' in data) {
         const items = data.data;
-        const total = {
-          page: data.page,
-          pageSize: data.size,
-          total: data.total
-        };
         if (items.length === 0 && this.pagination.page > 1) {
           this.pageChange(1);
         } else {
           this.items = items;
-          this.pagination = total;
+          this.pagination.page += 1;
+          this.pagination.total = data.total;
         }
         this.loadCallBack(data);
-        // } else {
-        //   Message({
-        //     message: msg,
-        //     type: 'error',
-        //     duration: 5 * 1000
-        //   });
       }
     },
 

+ 5 - 1
src/views/baseManagement/infoManagement/toolbar.vue

@@ -3,6 +3,8 @@
 </template>
 
 <script>
+import TYPE from '@/const/type';
+
 export default {
   name: 'InfoManagementToolbar',
 
@@ -17,7 +19,9 @@ export default {
         {
           type: 'select',
           name: 'status',
-          label: '状态'
+          label: '状态',
+          options: TYPE,
+          format: val => (val !== null && val !== '' ? !!val : null)
         },
         {
           type: 'dateArray',

+ 5 - 1
src/views/baseManagement/trending/toolbar.vue

@@ -3,6 +3,8 @@
 </template>
 
 <script>
+import TYPE from '@/const/type';
+
 export default {
   name: 'TrendingToolbar',
 
@@ -17,7 +19,9 @@ export default {
         {
           type: 'select',
           name: 'status',
-          label: '状态'
+          label: '状态',
+          options: TYPE,
+          format: val => (val !== null && val !== '' ? !!val : null)
         },
         {
           type: 'dateArray',

+ 82 - 12
src/views/sceneManagement/sceneList/index.vue

@@ -3,7 +3,7 @@
     <toolbar @on-filter="filterData" @on-reset="filterData" />
 
     <div class="m-10 bg-w p-20 br-10">
-      <el-button type="primary" icon="el-icon-plus" @click="handleSubmit"
+      <el-button type="primary" icon="el-icon-plus" @click="handleAdd"
         >新增</el-button
       >
       <base-table
@@ -19,6 +19,7 @@
 <script>
 import toolbar from './toolbar';
 import mxFilterList from '@/mixins/filterList';
+import { getList, delItem } from '@/api/scene';
 
 export default {
   name: 'SceneList',
@@ -27,7 +28,11 @@ export default {
 
   mixins: [
     mxFilterList({
-      // fetchList: iGetList // 在下方data再声明一个 fetchList: iGetList 同等效果
+      fetchList: getList, // 在下方data再声明一个 fetchList: iGetList 同等效果
+      internalFilterObj: {
+        isDel: false,
+        auditStatus: 1
+      }
     })
   ],
 
@@ -35,17 +40,17 @@ export default {
     return {
       columns: [
         {
-          key: 'photo',
+          key: 'id',
           name: 'ID',
           width: '160'
         },
         {
-          key: 'region',
+          key: 'name',
           name: '机构名称',
           width: '180'
         },
         {
-          key: 'region',
+          key: 'logo',
           name: 'Logo',
           width: '120'
         },
@@ -55,32 +60,97 @@ export default {
           minWidth: '180'
         },
         {
-          key: 'region',
+          key: 'type',
           name: '机构类型',
           width: '180'
         },
         {
-          key: 'region',
+          key: 'realName',
           name: '申请人',
           width: '180'
         },
         {
-          key: 'region',
-          name: '手机号',
+          key: 'phonenumber',
+          name: '办公号码',
           width: '180'
         },
         {
-          key: 'region',
+          key: 'isShow',
           name: '状态',
-          minWidth: '180'
+          minWidth: '180',
+          type: 'tag',
+          fetchTagType: val => (val ? 'success' : 'info'),
+          tagName: row => (row.isShow ? '显示' : '隐藏')
         },
         {
           key: 'action',
           name: '操作',
-          minWidth: '180'
+          width: '120',
+          render: (h, { row }) => {
+            const action = [];
+            action.push(
+              h(
+                'el-button',
+                {
+                  props: {
+                    type: 'text'
+                  },
+                  on: {
+                    click: () =>
+                      this.$BannerItemModal({
+                        id: row.id
+                      })
+                  }
+                },
+                '编辑'
+              )
+            );
+            action.push(
+              h(
+                'BaseBtn',
+                {
+                  props: {
+                    popip: true,
+                    txt: '删除',
+                    type: 'text'
+                  },
+                  class: 'ml-10',
+                  on: {
+                    ok: () => this.handleDelItem(row)
+                  }
+                },
+                '删除'
+              )
+            );
+
+            return h('div', action);
+          }
         }
       ]
     };
+  },
+
+  created() {
+    this.$g_on('scene_reload', this.reload);
+  },
+
+  beforeDestroy() {
+    this.$g_off('scene_reload', this.reload);
+  },
+
+  methods: {
+    handleAdd() {
+      this.$SceneItemModal();
+    },
+    async handleDelItem(item) {
+      const { success, msg } = await delItem({
+        id: item.id
+      });
+      if (success) {
+        this.$success('删除成功!');
+        this.$g_emit('scene_reload');
+      }
+    }
   }
 };
 </script>

+ 12 - 9
src/views/sceneManagement/sceneList/toolbar.vue

@@ -3,6 +3,8 @@
 </template>
 
 <script>
+import TYPE from '@/const/type';
+
 export default {
   name: 'sceneListToolbar',
 
@@ -11,29 +13,30 @@ export default {
       fields: [
         {
           type: 'text',
-          name: 'title',
+          name: 'name',
           label: '机构名称'
         },
         {
           type: 'text',
-          name: 'status',
-          label: '所在地区',
-          labelWidth: '100px'
+          name: 'area',
+          label: '所在地区'
         },
         {
           type: 'select',
-          name: 'date',
-          label: '状态'
+          name: 'status',
+          label: '状态',
+          options: TYPE,
+          format: val => (val !== null && val !== '' ? !!val : null)
         },
         {
           type: 'select',
-          name: 'date',
+          name: 'type',
           label: '机构类型'
         },
         {
           type: 'text',
-          name: 'title',
-          label: '手机号'
+          name: 'phonenumber',
+          label: '办公号码'
         }
       ]
     };

+ 80 - 19
src/views/sceneManagement/sceneVerify/index.vue

@@ -15,6 +15,7 @@
 <script>
 import toolbar from './toolbar';
 import mxFilterList from '@/mixins/filterList';
+import { getList } from '@/api/scene';
 
 export default {
   name: 'SceneVerify',
@@ -23,7 +24,7 @@ export default {
 
   mixins: [
     mxFilterList({
-      // fetchList: iGetList // 在下方data再声明一个 fetchList: iGetList 同等效果
+      fetchList: getList // 在下方data再声明一个 fetchList: iGetList 同等效果
     })
   ],
 
@@ -32,46 +33,106 @@ export default {
       columns: [
         {
           key: 'id',
-          name: '标题',
-          minWidth: '240'
+          name: 'ID',
+          width: '160'
         },
         {
-          key: 'photo',
-          name: '作者',
-          width: '160'
+          key: 'name',
+          name: '机构名称',
+          width: '180'
+        },
+        {
+          key: 'logo',
+          name: 'Logo',
+          width: '120'
         },
         {
           key: 'region',
-          name: '发布时间',
+          name: '所在地区',
           minWidth: '180'
         },
         {
-          key: 'region',
-          name: '阅读',
-          width: '120'
+          key: 'type',
+          name: '机构类型',
+          width: '180'
         },
         {
-          key: 'region',
-          name: '点赞',
-          width: '120'
+          key: 'realName',
+          name: '申请人',
+          width: '180'
         },
         {
-          key: 'region',
-          name: '收藏',
-          width: '120'
+          key: 'personPhonenumber',
+          name: '手机号码',
+          width: '180'
         },
         {
-          key: 'region',
+          key: 'auditStatus',
           name: '状态',
-          width: '80'
+          minWidth: '180',
+          type: 'tag',
+          fetchTagType: val => {
+            switch (val) {
+              case 1:
+                return 'success';
+              case 0:
+                return 'info';
+              case -1:
+                return 'error';
+              default:
+                return 'info';
+            }
+          },
+          tagName: row => {
+            switch (row.isShow) {
+              case 1:
+                return '通过';
+              case 0:
+                return '待审核';
+              case -1:
+                return '拒绝';
+              default:
+                return '-';
+            }
+          }
         },
         {
           key: 'action',
           name: '操作',
-          width: '120'
+          width: '120',
+          render: (h, { row }) => {
+            const action = [];
+            action.push(
+              h(
+                'el-button',
+                {
+                  props: {
+                    type: 'text'
+                  },
+                  on: {
+                    click: () =>
+                      this.$BannerItemModal({
+                        id: row.id
+                      })
+                  }
+                },
+                '编辑'
+              )
+            );
+
+            return h('div', action);
+          }
         }
       ]
     };
+  },
+
+  created() {
+    this.$g_on('scene_reload', this.reload);
+  },
+
+  beforeDestroy() {
+    this.$g_off('scene_reload', this.reload);
   }
 };
 </script>

+ 9 - 7
src/views/sceneManagement/sceneVerify/toolbar.vue

@@ -11,28 +11,30 @@ export default {
       fields: [
         {
           type: 'text',
-          name: 'title',
+          name: 'name',
           label: '机构名称'
         },
         {
-          type: 'select',
-          name: 'status',
+          type: 'text',
+          name: 'area',
           label: '所在地区'
         },
         {
           type: 'select',
           name: 'status',
-          label: '状态'
+          label: '状态',
+          options: TYPE,
+          format: val => (val !== null && val !== '' ? !!val : null)
         },
         {
           type: 'select',
-          name: 'status',
+          name: 'type',
           label: '机构类型'
         },
         {
           type: 'text',
-          name: 'status',
-          label: '手机号'
+          name: 'personPhonenumber',
+          label: '手机号'
         }
       ]
     };