瀏覽代碼

feature:项目初始化修改

ZZH-wl 3 年之前
父節點
當前提交
57e8b8c82d

+ 8 - 80
.env

@@ -1,84 +1,12 @@
-
-  VUE_GITHUB_USER_NAME=test
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-# 以下内容不建议修改建议将VUE_APP_SECRET_KEY配置到【.env.local】中
+VUE_GITHUB_USER_NAME=test
 VUE_APP_SECRET_KEY=preview
 
 
+# 租户码
+VUE_APP_TENANT=default
+# 登录验证微服务名称
+VUE_APP_AdminPath=dashoo.opms.admin-0.0.1
+VUE_APP_MicroSrvProxy_API=http://127.0.0.1:9981/
 
+SSO_LOGIN=''
+SSO_HREF=''

+ 0 - 0
src/api/departmentManagement.js → src/api/department.js


+ 18 - 0
src/api/menu.js

@@ -0,0 +1,18 @@
+import micro_request from '@/utils/micro_request'
+
+const basePath = process.env.VUE_APP_AdminPath
+export default {
+  // 获取列表
+  getList(query) {
+    return micro_request.postRequest(basePath, 'Menu', 'GetList', query)
+  },
+  getTree(query) {
+    return micro_request.postRequest(basePath, 'Menu', 'GetList', query)
+  },
+  doEdit(query) {
+    return micro_request.postRequest(basePath, 'Menu', 'GetList', query)
+  },
+  doDelete(query) {
+    return micro_request.postRequest(basePath, 'Menu', 'GetList', query)
+  },
+}

+ 0 - 25
src/api/menuManagement.js

@@ -1,25 +0,0 @@
-import request from '@/utils/request'
-
-export function getTree(params) {
-  return request({
-    url: '/menuManagement/getList',
-    method: 'get',
-    params,
-  })
-}
-
-export function doEdit(data) {
-  return request({
-    url: '/menuManagement/doEdit',
-    method: 'post',
-    data,
-  })
-}
-
-export function doDelete(data) {
-  return request({
-    url: '/menuManagement/doDelete',
-    method: 'post',
-    data,
-  })
-}

+ 0 - 0
src/api/roleManagement.js → src/api/role.js


+ 24 - 0
src/api/user.js

@@ -21,3 +21,27 @@ export function logout() {
     method: 'get',
   })
 }
+
+export function getList(params) {
+  return request({
+    url: '/userManagement/getList',
+    method: 'get',
+    params,
+  })
+}
+
+export function doEdit(data) {
+  return request({
+    url: '/userManagement/doEdit',
+    method: 'post',
+    data,
+  })
+}
+
+export function doDelete(data) {
+  return request({
+    url: '/userManagement/doDelete',
+    method: 'post',
+    data,
+  })
+}

+ 0 - 25
src/api/userManagement.js

@@ -1,25 +0,0 @@
-import request from '@/utils/request'
-
-export function getList(params) {
-  return request({
-    url: '/userManagement/getList',
-    method: 'get',
-    params,
-  })
-}
-
-export function doEdit(data) {
-  return request({
-    url: '/userManagement/doEdit',
-    method: 'post',
-    data,
-  })
-}
-
-export function doDelete(data) {
-  return request({
-    url: '/userManagement/doDelete',
-    method: 'post',
-    data,
-  })
-}

+ 53 - 0
src/utils/auth.js

@@ -0,0 +1,53 @@
+/*
+ * @Author: wanglj
+ * @Date: 2022-01-07 19:14:27
+ * @LastEditors: wanglj
+ * @LastEditTime: 2022-01-21 17:40:59
+ * @Description: file content
+ * @FilePath: \biobank_frontend02\src\utils\auth.js
+ */
+import Cookies from 'js-cookie'
+
+const AppName = process.env.VUE_APP_TENANT + '-'
+const TokenKey = AppName + 'Token'
+const UuidKey = AppName + 'UUID'
+
+export function getToken() {
+  return sessionStorage.getItem(TokenKey)
+}
+
+export function setToken(token) {
+  return sessionStorage.setItem(TokenKey, token)
+}
+
+export function removeToken() {
+  return sessionStorage.removeItem(TokenKey)
+}
+
+export function getUUID() {
+  return Cookies.get(UuidKey)
+}
+
+export function setUUID(uuid) {
+  return Cookies.set(UuidKey, uuid)
+}
+
+export function removeUUID() {
+  return Cookies.remove(UuidKey)
+}
+
+export function setProject(Project) {
+  return Cookies.set('Project', Project)
+}
+
+export function getProject() {
+  return Cookies.get('Project')
+}
+
+export function removeProject() {
+  return Cookies.remove('Project')
+}
+
+export function authUser() {
+  return JSON.stringify(Cookies.get('user'))
+}

+ 6 - 0
src/utils/errorCode.js

@@ -0,0 +1,6 @@
+export default {
+  401: '认证失败,无法访问系统资源',
+  403: '当前操作没有权限',
+  404: '访问资源不存在',
+  default: '系统未知错误,请反馈给管理员',
+}

+ 229 - 0
src/utils/micro_request.js

@@ -0,0 +1,229 @@
+import axios from 'axios'
+import { Notification, MessageBox, Message } from 'element-ui'
+import store from '@/store'
+import { getToken } from '@/utils/auth'
+import errorCode from '@/utils/errorCode'
+
+axios.defaults.headers['Content-Type'] = 'application/jsoncharset=utf-8'
+
+const service = axios.create({
+  // axios中请求配置有baseURL选项,表示请求URL公共部分
+  baseURL: process.env.VUE_APP_MicroSrvProxy_API,
+  // 超时
+  timeout: 60000,
+})
+
+// request拦截器
+service.interceptors.request.use(
+  (config) => {
+    config.headers['Tenant'] = process.env.VUE_APP_TENANT
+    // 是否需要设置 token
+    const isToken = (config.headers || {}).isToken === false
+    if (getToken() && !isToken) {
+      config.headers['Authorization'] = 'Bearer ' + getToken() // 让每个请求携带自定义token 请根据实际情况自行修改
+    }
+    return config
+  },
+  (error) => {
+    console.log(error)
+    Promise.reject(error)
+  }
+)
+
+// 响应拦截器
+service.interceptors.response.use(
+  (res) => {
+    if (res.request.responseType == 'blob') {
+      // 判断是否是文件流
+      let fileReader = new FileReader()
+      fileReader.readAsText(res.data)
+      fileReader.onload = function () {
+        try {
+          let jsonData = JSON.parse(this.result) // 解析成功说明是普通对象数据,后端返回的是文件上传的错误信息
+          res.data = jsonData
+          processResponse(res)
+          return
+        } catch (err) {
+          // 解析成对象失败,说明是文件流
+          downLoadBlobFile(res)
+          return
+        }
+      }
+    }
+
+    // 常规响应处理
+    return processResponse(res)
+  },
+  (error) => {
+    console.log('err' + error)
+    Message({
+      message: error.message,
+      type: 'error',
+      duration: 5 * 1000,
+    })
+    return Promise.reject(error)
+  }
+)
+
+service.postRequest = function postRequest(basePath, srvName, funcName, data) {
+  if (data == undefined) {
+    let nullParam = {
+      nullparam: 0,
+    }
+    data = nullParam
+  }
+
+  // console.log( basePath ,'   basePath   ')
+  var base_Path = ''
+  if (basePath == process.env.VUE_APP_FOSHAN_PATH) {
+    base_Path = process.env.VUE_APP_MicroSrvProxy_foshan_API + basePath
+  } else if (basePath == process.env.VUE_APP_AdminPath) {
+    base_Path = process.env.VUE_APP_MicroSrvProxy_API + basePath
+  }
+
+  // console.log(base_Path, '   base_Path   ')
+
+  return service.request({
+    url: base_Path,
+    method: 'post',
+    headers: {
+      'Content-Type': 'application/rpcx',
+      'X-RPCX-SerializeType': '1',
+      'X-RPCX-ServicePath': srvName,
+      'X-RPCX-ServiceMethod': funcName,
+    },
+    data: data,
+  })
+}
+// 发出请求并要求把客户端信息传输给后端(IP和User-Agent)
+service.postRequestWithClientInfo = function postRequest(
+  basePath,
+  srvName,
+  funcName,
+  data
+) {
+  if (data == undefined) {
+    let nullParam = { nullparam: 0 }
+    data = nullParam
+  }
+  return service.request({
+    url: basePath,
+    method: 'post',
+    headers: {
+      'Content-Type': 'application/rpcx',
+      'X-RPCX-SerializeType': '1',
+      'X-RPCX-ServicePath': srvName,
+      'X-RPCX-ServiceMethod': funcName,
+      'X-RPCX-Meta': 'need_clint_Info=1',
+    },
+    data: data,
+  })
+}
+
+// Excel文件下载(服务端生成文件流)
+service.downloadExcel = function downloadExcel(
+  basePath,
+  srvName,
+  funcName,
+  data
+) {
+  if (data == undefined) {
+    let nullParam = {
+      nullparam: 0,
+    }
+    data = nullParam
+  }
+  var base_Path = ''
+  if (basePath == process.env.VUE_APP_FOSHAN_PATH) {
+    base_Path = process.env.VUE_APP_MicroSrvProxy_foshan_API + basePath
+  } else if (basePath == process.env.VUE_APP_AdminPath) {
+    base_Path = process.env.VUE_APP_MicroSrvProxy_API + basePath
+  }
+  service.request({
+    url: base_Path,
+    method: 'post',
+    responseType: 'blob',
+    headers: {
+      'Content-Type': 'application/rpcx',
+      'X-RPCX-SerializeType': '1',
+      'X-RPCX-ServicePath': srvName,
+      'X-RPCX-ServiceMethod': funcName,
+    },
+    data: data,
+  })
+}
+
+function processResponse(res) {
+  // 未设置状态码则默认成功状态
+  const code = res.data.code || 200
+  // 获取错误信息
+  const message = errorCode[code] || res.data.msg || errorCode['default']
+  if (code === 401) {
+    MessageBox.confirm(
+      '登录状态已过期,您可以继续留在该页面,或者重新登录',
+      '系统提示',
+      {
+        confirmButtonText: '重新登录',
+        cancelButtonText: '取消',
+        type: 'warning',
+      }
+    ).then(() => {
+      store.dispatch('LogOut').then(() => {
+        if (process.env.SSO_LOGIN) {
+          sessionStorage.removeItem('SSO_Token')
+          location.href = process.env.SSO_HREF
+        } else {
+          location.reload()
+        }
+      })
+    })
+  } else if (code === 500) {
+    Message({
+      message: message,
+      type: 'error',
+    })
+    return Promise.reject(new Error(message))
+  } else if (code !== 200) {
+    Notification.error({
+      title: message,
+    })
+    return Promise.reject('error')
+  } else {
+    // if (res.data.msg) {
+    //   Message({
+    //     message: res.data.msg,
+    //     type: 'success'
+    //   })
+    // }
+    return res.data
+  }
+}
+
+function downLoadBlobFile(res, mimeType) {
+  if (mimeType == undefined) {
+    mimeType = 'application/vnd.ms-excel'
+  }
+  const aLink = document.createElement('a')
+  var blob = new Blob([res.data], {
+    type: mimeType,
+  })
+  // //从response的headers中获取filename, 后端response.setHeader('Content-disposition', 'attachment filename=xxxx.docx') 设置的文件名
+  var patt = new RegExp('filename=([^]+\\.[^\\.]+)*')
+  var contentDisposition = decodeURI(
+    res.headers['content-disposition'] || res.headers['Content-Disposition']
+  )
+  var result = patt.exec(contentDisposition)
+  var fileName = 'data.xlsx'
+  if (result != undefined) {
+    fileName = result[1]
+    fileName = decodeURI(escape(fileName))
+    fileName = fileName.replace(/'/g, '')
+  }
+  aLink.href = URL.createObjectURL(blob)
+  aLink.setAttribute('download', fileName) // 设置下载文件名称
+  document.body.appendChild(aLink)
+  aLink.click()
+  document.body.appendChild(aLink)
+}
+
+export default service

+ 1 - 0
src/utils/request.js

@@ -95,6 +95,7 @@ const handleData = async ({ data, status = 0, statusText }) => {
  */
 const instance = axios.create({
   // baseURL,
+  // eslint-disable-next-line no-undef
   baseURL: $GlobalConfig.baseUrl,
   timeout: requestTimeout,
   headers: {

+ 5 - 9
src/views/system/components/DeptEdit.vue → src/views/system/dept/components/DeptEdit.vue

@@ -3,27 +3,23 @@
     :title="title"
     :visible.sync="dialogFormVisible"
     width="500px"
-    @close="close"
-  >
+    @close="close">
     <el-form ref="form" label-width="80px" :model="form" :rules="rules">
       <el-form-item label="父节点" prop="parentName">
         <el-select
           v-model="form.parentId"
           :disabled="!form.parentId"
-          placeholder="请选择父节点"
-        >
+          placeholder="请选择父节点">
           <el-option
             :label="form.parentName"
             style="height: auto; padding: 0"
-            :value="form.parentId"
-          >
+            :value="form.parentId">
             <el-tree
               ref="tree"
               :data="treeData"
               default-expand-all
               :props="defaultProps"
-              @node-click="handleNodeClick"
-            />
+              @node-click="handleNodeClick" />
           </el-option>
         </el-select>
       </el-form-item>
@@ -42,7 +38,7 @@
 </template>
 
 <script>
-  import { doEdit, getList } from '@/api/departmentManagement'
+  import { doEdit, getList } from '@/api/department'
 
   export default {
     name: 'DeptEdit',

+ 2 - 2
src/views/system/dept.vue → src/views/system/dept/dept.vue

@@ -35,9 +35,9 @@
     <el-table
       v-loading="listLoading"
       border
-      :height="$baseTableHeight(1)"
       :data="list"
       default-expand-all
+      :height="$baseTableHeight(1)"
       row-key="id"
       :tree-props="{ children: 'children' }"
       @selection-change="setSelectRows">
@@ -79,7 +79,7 @@
 </template>
 
 <script>
-  import { doDelete, getList } from '@/api/departmentManagement'
+  import { doDelete, getList } from '@/api/department'
   import Edit from './components/DeptEdit'
 
   export default {

+ 0 - 166
src/views/system/index.vue

@@ -1,166 +0,0 @@
-<template>
-  <div class="department-management-container">
-    <vab-query-form>
-      <vab-query-form-left-panel :span="12">
-        <el-button
-          icon="el-icon-plus"
-          type="primary"
-          @click="handleEdit($event)"
-        >
-          添加
-        </el-button>
-        <el-button
-          icon="el-icon-delete"
-          type="danger"
-          @click="handleDelete($event)"
-        >
-          批量删除
-        </el-button>
-      </vab-query-form-left-panel>
-      <vab-query-form-right-panel :span="12">
-        <el-form :inline="true" :model="queryForm" @submit.native.prevent>
-          <el-form-item>
-            <el-input
-              v-model.trim="queryForm.name"
-              clearable
-              placeholder="请输入名称"
-            />
-          </el-form-item>
-          <el-form-item>
-            <el-button icon="el-icon-search" type="primary" @click="queryData">
-              查询
-            </el-button>
-          </el-form-item>
-        </el-form>
-      </vab-query-form-right-panel>
-    </vab-query-form>
-
-    <el-table
-      v-loading="listLoading"
-      border
-      :data="list"
-      default-expand-all
-      row-key="id"
-      :tree-props="{ children: 'children' }"
-      @selection-change="setSelectRows"
-    >
-      <el-table-column show-overflow-tooltip type="selection" />
-      <el-table-column label="名称" prop="name" show-overflow-tooltip />
-      <el-table-column label="父节点Id" prop="parentId" show-overflow-tooltip />
-      <el-table-column label="排序" prop="order" show-overflow-tooltip />
-      <el-table-column
-        label="创建时间"
-        prop="createTime"
-        show-overflow-tooltip
-      />
-      <el-table-column label="操作" width="85">
-        <template #default="{ row }">
-          <el-button type="text" @click="handleEdit(row)">编辑</el-button>
-          <el-button
-            :disabled="!row.parentId"
-            type="text"
-            @click="handleDelete({ row })"
-          >
-            删除
-          </el-button>
-        </template>
-      </el-table-column>
-      <template #empty>
-        <el-image
-          class="vab-data-empty"
-          :src="require('@/assets/empty_images/data_empty.png')"
-        />
-      </template>
-    </el-table>
-    <el-pagination
-      background
-      :current-page="queryForm.pageNo"
-      :layout="layout"
-      :page-size="queryForm.pageSize"
-      :total="total"
-      @current-change="handleCurrentChange"
-      @size-change="handleSizeChange"
-    />
-    <edit ref="edit" @fetch-data="fetchData" />
-  </div>
-</template>
-
-<script>
-  import { doDelete, getList } from '@/api/departmentManagement'
-  import Edit from './components/DeptEdit'
-
-  export default {
-    name: 'Department',
-    components: { Edit },
-    data() {
-      return {
-        list: [],
-        listLoading: true,
-        layout: 'total, sizes, prev, pager, next, jumper',
-        total: 0,
-        selectRows: '',
-        queryForm: {
-          pageNo: 1,
-          pageSize: 10,
-          title: '',
-        },
-      }
-    },
-    created() {
-      this.fetchData()
-    },
-    methods: {
-      setSelectRows(val) {
-        this.selectRows = val
-      },
-      handleEdit(row) {
-        if (row.id) {
-          this.$refs['edit'].showEdit(row)
-        } else {
-          this.$refs['edit'].showEdit()
-        }
-      },
-      handleDelete(row) {
-        if (row.id) {
-          this.$baseConfirm('你确定要删除当前项吗', null, async () => {
-            const { msg } = await doDelete({ ids: row.id })
-            this.$baseMessage(msg, 'success', 'vab-hey-message-success')
-            await this.fetchData()
-          })
-        } else {
-          if (this.selectRows.length > 0) {
-            const ids = this.selectRows.map((item) => item.id).join()
-            this.$baseConfirm('你确定要删除选中项吗', null, async () => {
-              const { msg } = await doDelete({ ids })
-              this.$baseMessage(msg, 'success', 'vab-hey-message-success')
-              await this.fetchData()
-            })
-          } else {
-            this.$baseMessage('未选中任何行', 'error', 'vab-hey-message-error')
-          }
-        }
-      },
-      handleSizeChange(val) {
-        this.queryForm.pageSize = val
-        this.fetchData()
-      },
-      handleCurrentChange(val) {
-        this.queryForm.pageNo = val
-        this.fetchData()
-      },
-      queryData() {
-        this.queryForm.pageNo = 1
-        this.fetchData()
-      },
-      async fetchData() {
-        this.listLoading = true
-        const {
-          data: { list, total },
-        } = await getList(this.queryForm)
-        this.list = list
-        this.total = total
-        this.listLoading = false
-      },
-    },
-  }
-</script>

+ 5 - 8
src/views/system/components/MenuEdit.vue → src/views/system/menu/components/MenuEdit.vue

@@ -3,15 +3,13 @@
     :title="title"
     :visible.sync="dialogFormVisible"
     width="60%"
-    @close="close"
-  >
+    @close="close">
     <el-form
       ref="form"
       :inline="true"
       label-width="140px"
       :model="form"
-      :rules="rules"
-    >
+      :rules="rules">
       <el-form-item label="父级Id" prop="parentId">
         <el-input v-model="form.parentId" />
       </el-form-item>
@@ -34,8 +32,7 @@
         <el-popover
           popper-class="icon-selector-popper"
           trigger="hover"
-          width="292"
-        >
+          width="292">
           <template #reference>
             <el-input v-model="form.meta.icon" />
           </template>
@@ -76,7 +73,7 @@
 
 <script>
   import VabIconSelector from '@/extra/VabIconSelector'
-  import { doEdit } from '@/api/menuManagement'
+  import menuApi from '@/api/menu'
 
   export default {
     name: 'MenuEdit',
@@ -135,7 +132,7 @@
       save() {
         this.$refs['form'].validate(async (valid) => {
           if (valid) {
-            const { msg } = await doEdit(this.form)
+            const { msg } = await menuApi.doEdit(this.form)
             this.$baseMessage(msg, 'success', 'vab-hey-message-success')
             this.$emit('fetch-data')
             this.close()

+ 9 - 9
src/views/system/menu.vue → src/views/system/menu/menu.vue

@@ -2,7 +2,7 @@
   <div class="menu-management-container">
     <el-row :gutter="20">
       <el-col :lg="4" :md="8" :sm="24" :xl="4" :xs="24">
-        <el-card shadow="hover" class="menu-left">
+        <el-card class="menu-left" shadow="hover">
           <el-tree
             :data="data"
             :default-expanded-keys="['root']"
@@ -26,9 +26,9 @@
           <el-table
             v-loading="listLoading"
             border
-            :height="$noPagingTableHeight(1)"
             :data="list"
             default-expand-all
+            :height="$noPagingTableHeight(1)"
             row-key="path"
             :tree-props="{ children: 'children', hasChildren: 'hasChildren' }">
             <el-table-column
@@ -95,10 +95,10 @@
               </template>
             </el-table-column>
             <el-table-column
+              fixed="right"
               label="操作"
               show-overflow-tooltip
-              width="185"
-              fixed="right">
+              width="185">
               <template #default="{ row }">
                 <el-button type="primary" @click="handleEdit(row)">
                   <vab-icon icon="edit-2-line" />
@@ -124,8 +124,7 @@
 </template>
 
 <script>
-  import { getList } from '@/api/router'
-  import { doDelete, getTree } from '@/api/menuManagement'
+  import menuApi from '@/api/menu'
   import Edit from './components/MenuEdit'
 
   export default {
@@ -145,7 +144,7 @@
     async created() {
       const {
         data: { list },
-      } = await getTree()
+      } = await menuApi.getTree()
       this.data = list
       await this.fetchData()
     },
@@ -160,7 +159,7 @@
       handleDelete(row) {
         if (row.path) {
           this.$baseConfirm('你确定要删除当前项吗', null, async () => {
-            const { msg } = await doDelete({ paths: row.path })
+            const { msg } = await menuApi.doDelete({ paths: row.path })
             this.$baseMessage(msg, 'success', 'vab-hey-message-success')
             await this.fetchData()
           })
@@ -170,7 +169,7 @@
         this.listLoading = true
         const {
           data: { list },
-        } = await getList({ role })
+        } = await menuApi.getList({ role })
         this.list = list
         this.listLoading = false
       },
@@ -187,6 +186,7 @@
     padding: 0 !important;
     background: $base-color-background !important;
   }
+
   .menu-left {
     height: calc(100vh - 213px);
   }

+ 4 - 7
src/views/system/components/RoleEdit.vue → src/views/system/role/components/RoleEdit.vue

@@ -3,8 +3,7 @@
     :title="title"
     :visible.sync="dialogFormVisible"
     width="500px"
-    @close="close"
-  >
+    @close="close">
     <el-form ref="form" label-width="80px" :model="form" :rules="rules">
       <el-form-item label="角色码" prop="role">
         <el-input v-model="form.role" />
@@ -24,8 +23,7 @@
             ]"
             :default-expanded-keys="[]"
             node-key="path"
-            show-checkbox
-          >
+            show-checkbox>
             <template #default="{ data }">
               <span>{{ data.meta.title }}</span>
             </template>
@@ -37,8 +35,7 @@
           <el-checkbox
             v-for="item in btnRoles"
             :key="item.value"
-            :label="item.value"
-          >
+            :label="item.value">
             {{ item.lable }}
           </el-checkbox>
         </el-checkbox-group>
@@ -52,7 +49,7 @@
 </template>
 
 <script>
-  import { doEdit } from '@/api/roleManagement'
+  import { doEdit } from '@/api/role'
   import { getList } from '@/api/router'
 
   export default {

+ 2 - 2
src/views/system/role.vue → src/views/system/role/role.vue

@@ -35,8 +35,8 @@
     <el-table
       v-loading="listLoading"
       border
-      :height="$baseTableHeight(1)"
       :data="list"
+      :height="$baseTableHeight(1)"
       @selection-change="setSelectRows">
       <el-table-column align="center" show-overflow-tooltip type="selection" />
       <el-table-column align="center" label="序号" width="55">
@@ -96,7 +96,7 @@
 </template>
 
 <script>
-  import { doDelete, getList } from '@/api/roleManagement'
+  import { doDelete, getList } from '@/api/role'
   import Edit from './components/RoleEdit'
 
   export default {

+ 2 - 3
src/views/system/components/UserEdit.vue → src/views/system/user/components/UserEdit.vue

@@ -3,8 +3,7 @@
     :title="title"
     :visible.sync="dialogFormVisible"
     width="500px"
-    @close="close"
-  >
+    @close="close">
     <el-form ref="form" label-width="80px" :model="form" :rules="rules">
       <el-form-item label="用户名" prop="username">
         <el-input v-model.trim="form.username" />
@@ -30,7 +29,7 @@
 </template>
 
 <script>
-  import { doEdit } from '@/api/userManagement'
+  import { doEdit } from '@/api/user'
 
   export default {
     name: 'UserEdit',

+ 5 - 5
src/views/system/user.vue → src/views/system/user/user.vue

@@ -35,8 +35,8 @@
     <el-table
       v-loading="listLoading"
       border
-      :height="height"
       :data="list"
+      :height="height"
       @selection-change="setSelectRows">
       <el-table-column align="center" show-overflow-tooltip type="selection" />
       <el-table-column align="center" label="序号" width="55">
@@ -102,7 +102,7 @@
 </template>
 
 <script>
-  import { doDelete, getList } from '@/api/userManagement'
+  import { doDelete, getList } from '@/api/user'
   import Edit from './components/UserEdit'
 
   export default {
@@ -122,14 +122,14 @@
         },
       }
     },
-    created() {
-      this.fetchData()
-    },
     computed: {
       height() {
         return this.$baseTableHeight(1)
       },
     },
+    created() {
+      this.fetchData()
+    },
     methods: {
       setSelectRows(val) {
         this.selectRows = val

+ 1 - 1
src/views/test/components/Edit.vue

@@ -29,7 +29,7 @@
 </template>
 
 <script>
-  import { doEdit } from '@/api/userManagement'
+  import { doEdit } from '@/api/user'
 
   export default {
     name: 'UserEdit',