ソースを参照

Merge branch 'master' into 'pre-prod'

bugfix

See merge request motive-power/yxl/yxl-web-admin-frontend!21
梁展鹏 3 年 前
コミット
3bc68ec0d5

+ 17 - 0
src/api/system/account.js

@@ -0,0 +1,17 @@
+import api from '@/utils/request';
+
+export const getPage = params =>
+  api.post(`/yxl-back-end/framework/uiac/account/page`, params);
+export const getList = params =>
+  api.post(`/yxl-back-end/framework/uiac/role/list`, params);
+export const getItem = ({ id, ...params }) =>
+  api.get(`/yxl-back-end/admin/kindergarten/${id}`, params);
+export const saveItem = params => {
+  if (params.id) {
+    return api.put(`/yxl-back-end/framework/uiac/role/update`, params);
+  } else {
+    return api.post(`/yxl-back-end/framework/uiac/role/save`, params);
+  }
+};
+export const delItem = ({ id, ...params }) =>
+  api.del(`/yxl-back-end/framework/uiac/role/del/${id}`, params);

+ 17 - 0
src/api/system/index.js

@@ -0,0 +1,17 @@
+import api from '@/utils/request';
+
+export const getPage = params =>
+	api.post(`/yxl-back-end/framework/uiac/role/page`, params);
+export const getList = params =>
+	api.post(`/yxl-back-end/framework/uiac/role/list`, params);
+export const getItem = ({ id, ...params }) =>
+	api.get(`/yxl-back-end/admin/kindergarten/${id}`, params);
+export const saveItem = params => {
+	if (params.id) {
+		return api.put(`/yxl-back-end/framework/uiac/role/update`, params);
+	} else {
+		return api.post(`/yxl-back-end/framework/uiac/role/save`, params);
+	}
+};
+export const delItem = ({ id, ...params }) =>
+	api.del(`/yxl-back-end/framework/uiac/role/del/${id}`, params);

+ 1 - 1
src/utils/ali-oss.js

@@ -24,5 +24,5 @@ export const getFileNameUUID = () => {
     return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1)
   }
 
-  return `${+new Date()}_${rx()}${rx()}`
+  return `${rx()}${rx()}`
 }

+ 1 - 1
src/views/baseManagement/infoManagement/modal/ItemModal.vue

@@ -21,7 +21,7 @@
         <el-input v-model="form.author" :disabled="id !== ''"></el-input>
       </el-form-item>
       <el-form-item label="封面" prop="cover">
-        <upload v-model="form.cover" params="prefix=/tweet" />
+        <upload v-model="form.cover" params="prefix=/tweet-cover" />
       </el-form-item>
       <el-form-item label="内容" prop="content">
         <RichText v-model="form.content" />

+ 8 - 17
src/views/photoManagement/eventsList/modal/ItemModal.vue

@@ -24,15 +24,15 @@
       </el-form-item>
 
       <el-form-item label="封面图" prop="cover">
-        <upload v-model="form.cover" params="prefix=/activity" />
+        <upload v-model="form.cover" params="prefix=/activity-cover" />
       </el-form-item>
 
       <el-form-item label="预览图Logo">
-        <upload v-model="form.previewLogo" params="prefix=/activity" />
+        <upload v-model="form.previewLogo" params="prefix=/activity-logo" />
       </el-form-item>
 
       <el-form-item label="高清图Logo">
-        <upload v-model="form.hdLogo" params="prefix=/activity" />
+        <upload v-model="form.hdLogo" params="prefix=/activity-logo" />
       </el-form-item>
 
       <el-form-item label="活动时间" prop="eventTimeArr">
@@ -109,8 +109,8 @@ export default {
         previewLogo: [],
         hdLogo: [],
         eventTimeArr: [
-          this.$moment(new Date()).format('yyyy-MM-dd HH:mm:ss'),
-          this.$moment(new Date()).format('yyyy-MM-dd HH:mm:ss')
+          this.$moment(new Date()).format('YYYY-MM-DD HH:mm:ss'),
+          this.$moment(new Date()).format('YYYY-MM-DD HH:mm:ss')
         ],
         isShow: false,
         sort: 1
@@ -189,18 +189,9 @@ export default {
         }
 
         let params = Object.assign({}, _that.form);
-        params.cover =
-          _that.form.cover &&
-          _that.form.cover.length > 0 &&
-          _that.form.cover[0].url;
-        params.previewLogo =
-          _that.form.previewLogo &&
-          _that.form.previewLogo.length > 0 &&
-          _that.form.previewLogo[0].url;
-        params.hdLogo =
-          _that.form.hdLogo &&
-          _that.form.hdLogo.length > 0 &&
-          _that.form.hdLogo[0].url;
+        params.cover = (_that.form.cover && _that.form.cover.length > 0) ? _that.form.cover[0].url : '';
+        params.previewLogo = (_that.form.previewLogo && _that.form.previewLogo.length > 0) ? _that.form.previewLogo[0].url : '';
+        params.hdLogo = (_that.form.hdLogo && _that.form.hdLogo.length > 0) ? _that.form.hdLogo[0].url : '';
         params.eventStartDate = _that.form.eventTimeArr[0];
         params.eventEndDate = _that.form.eventTimeArr[1];
 

+ 1 - 1
src/views/photographerManagement/photoVerify/modal/ali-oss-multi.vue

@@ -159,7 +159,7 @@ export default {
             temporary + 1,
             fileNameLength
           );
-          let fileName = getFileNameUUID() + '.' + fileFormat;
+          let fileName = _that.$moment(new Date()).format('YYYYMMDDHHmm') + '_' + getFileNameUUID() + '.' + fileFormat;
 
           // https://github.com/ali-sdk/ali-oss#multipartuploadname-file-options
           client(_that.dataObj)

+ 4 - 8
src/views/sceneManagement/sceneList/modal/ItemModal.vue

@@ -34,20 +34,16 @@
       </el-form-item>
       <el-form-item label="幼儿园logo" prop="logo" required>
         <!-- TODO 043 -->
-        <upload
-          v-model="form.logo"
-          :config="[1, 1]"
-          params="prefix=/kindergarten"
-        />
+        <upload v-model="form.logo" :config="[1, 1]" params="prefix=/kindergarten-logo"/>
       </el-form-item>
       <el-form-item label="幼儿园预览图logo" prop="previewLogo" required>
-        <upload v-model="form.previewLogo" params="prefix=/kindergarten" />
+        <upload v-model="form.previewLogo" params="prefix=/kindergarten-logo" />
       </el-form-item>
       <el-form-item label="幼儿园高清图logo" prop="hdLogo" required>
-        <upload v-model="form.hdLogo" params="prefix=/kindergarten" />
+        <upload v-model="form.hdLogo" params="prefix=/kindergarten-logo" />
       </el-form-item>
       <el-form-item label="门店图片" prop="cover" required>
-        <upload v-model="form.cover" :limit="3" params="prefix=/kindergarten" />
+        <upload v-model="form.cover" :limit="9" params="prefix=/kindergarten-cover" />
       </el-form-item>
       <el-form-item label="办公电话" prop="phonenumber">
         <el-input v-model="form.phonenumber" placeholder="请输入办公电话" />

+ 55 - 28
src/views/systemManagement/accountManagement/index.vue

@@ -3,9 +3,9 @@
     <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="handleSubmit"
         >新增</el-button
-      >
+      > -->
       <base-table
         :columns="columns"
         :items="items"
@@ -19,6 +19,7 @@
 <script>
 import toolbar from './toolbar';
 import mxFilterList from '@/mixins/filterList';
+import { getPage } from '@/api/system/account';
 
 export default {
   name: 'AccountManagement',
@@ -27,7 +28,10 @@ export default {
 
   mixins: [
     mxFilterList({
-      // fetchList: iGetList // 在下方data再声明一个 fetchList: iGetList 同等效果
+      fetchList: getPage, // 在下方data再声明一个 fetchList: iGetList 同等效果
+      internalFilterObj: {
+        isDel: false
+      }
     })
   ],
 
@@ -36,44 +40,67 @@ export default {
       columns: [
         {
           key: 'id',
-          name: '标题',
-          minWidth: '240'
+          name: '#',
+          width: '180'
         },
         {
-          key: 'photo',
-          name: '作者',
+          key: 'mobileNumber',
+          name: '手机号码',
           width: '160'
         },
         {
-          key: 'region',
-          name: '发布时间',
+          key: 'nickname',
+          name: '昵称',
           width: '140'
         },
         {
-          key: 'region',
-          name: '阅读',
-          width: '120'
+          key: 'avatarUrl',
+          name: '头像',
+          width: '120',
+          render: (h, { row }) => {
+            if (!row.avatarUrl) {
+              return h('span', '-');
+            }
+            return h('img', {
+              style: {
+                width: '160px',
+                height: '90px'
+              },
+              class: 'pre-img',
+              attrs: {
+                src: row.avatarUrl
+              },
+              on: {
+                click: () =>
+                  this.$AdvanceViewImageModal({
+                    items: [{ src: row.avatarUrl }]
+                  })
+              }
+            });
+          }
         },
         {
-          key: 'region',
-          name: '点赞',
-          width: '120'
+          key: 'gender',
+          name: '性别',
+          width: '120',
+          type: 'tag',
+          fetchTagType: val => 'info',
+          tagName: row =>
+            row.gender === '0' ? '未知' : row.gender === '1' ? '男' : '女'
         },
         {
-          key: 'region',
-          name: '收藏',
-          width: '120'
-        },
-        {
-          key: 'region',
-          name: '状态',
-          width: '80'
-        },
-        {
-          key: 'action',
-          name: '操作',
-          width: '120'
+          key: 'isLocked',
+          name: '封锁状态',
+          width: '80',
+          type: 'tag',
+          fetchTagType: val => (val ? 'error' : 'info'),
+          tagName: row => (row.isLocked ? '是' : '否')
         }
+        // {
+        //   key: 'action',
+        //   name: '操作',
+        //   width: '120'
+        // }
       ]
     };
   }

+ 5 - 11
src/views/systemManagement/accountManagement/toolbar.vue

@@ -11,19 +11,13 @@ export default {
       fields: [
         {
           type: 'text',
-          name: 'title',
-          label: '标题'
+          name: 'mobileNumber',
+          label: '手机号码'
         },
         {
-          type: 'select',
-          name: 'status',
-          label: '状态'
-        },
-        {
-          type: 'dateArray',
-          name: 'date',
-          label: '发布日期',
-          apiName: ['start', 'end']
+          type: 'text',
+          name: 'nickname',
+          label: '昵称'
         }
       ]
     };

+ 83 - 32
src/views/systemManagement/roleManagement/index.vue

@@ -3,9 +3,9 @@
     <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
         :columns="columns"
         :items="items"
@@ -19,6 +19,7 @@
 <script>
 import toolbar from './toolbar';
 import mxFilterList from '@/mixins/filterList';
+import { getPage, delItem } from '@/api/system';
 
 export default {
   name: 'RoleManagement',
@@ -27,7 +28,10 @@ export default {
 
   mixins: [
     mxFilterList({
-      // fetchList: iGetList // 在下方data再声明一个 fetchList: iGetList 同等效果
+      fetchList: getPage, // 在下方data再声明一个 fetchList: iGetList 同等效果
+      internalFilterObj: {
+        isDel: false
+      }
     })
   ],
 
@@ -36,47 +40,94 @@ export default {
       columns: [
         {
           key: 'id',
-          name: 'ID',
-          width: '60'
+          name: '#',
+          width: '180'
         },
         {
-          key: 'photo',
-          name: '图片',
+          key: 'name',
+          name: '角色名',
           width: '240'
         },
         {
-          key: 'region',
-          name: '位置',
+          key: 'code',
+          name: '角色值',
           minWidth: '120'
         },
         {
-          key: 'region',
-          name: '标题',
+          key: 'remarks',
+          name: '备注',
           minWidth: '180'
-        },
-        {
-          key: 'region',
-          name: '链接',
-          minWidth: '240',
-          showOverflowTooltip: true
-        },
-        {
-          key: 'region',
-          name: '排序',
-          width: '80'
-        },
-        {
-          key: 'region',
-          name: '状态',
-          width: '80'
-        },
-        {
-          key: 'action',
-          name: '操作',
-          width: '120'
         }
+
+        // {
+        //   key: 'action',
+        //   name: '操作',
+        //   width: '180',
+        //   render: (h, { row }) => {
+        //     const action = [];
+        //     action.push(
+        //       h(
+        //         'el-button',
+        //         {
+        //           props: {
+        //             type: 'text'
+        //           },
+        //           on: {
+        //             click: () =>
+        //               this.$SceneItemModal({
+        //                 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('system_reload', this.reload);
+  },
+
+  beforeDestroy() {
+    this.$g_off('system_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('system_reload');
+      }
+    }
   }
 };
 </script>