lishuangjiang@potevio.com před 1 rokem
rodič
revize
abbdbb0ca8

+ 3 - 3
src/api/demo/demo/types.ts

@@ -5,7 +5,7 @@ export interface DemoVO {
   id: string | number
 
   /**
-   * 部门id
+   * 机构id
    */
   deptId: string | number
 
@@ -37,7 +37,7 @@ export interface DemoForm extends BaseEntity {
   id?: string | number
 
   /**
-   * 部门id
+   * 机构id
    */
   deptId?: string | number
 
@@ -64,7 +64,7 @@ export interface DemoForm extends BaseEntity {
 
 export interface DemoQuery extends PageQuery {
   /**
-   * 部门id
+   * 机构id
    */
   deptId?: string | number
 

+ 3 - 3
src/api/demo/tree/types.ts

@@ -10,7 +10,7 @@ export interface TreeVO {
   parentId: string | number
 
   /**
-   * 部门id
+   * 机构id
    */
   deptId: string | number
 
@@ -42,7 +42,7 @@ export interface TreeForm extends BaseEntity {
   parentId?: string | number
 
   /**
-   * 部门id
+   * 机构id
    */
   deptId?: string | number
 
@@ -64,7 +64,7 @@ export interface TreeQuery {
   parentId?: string | number
 
   /**
-   * 部门id
+   * 机构id
    */
   deptId?: string | number
 

+ 7 - 7
src/api/system/dept/index.ts

@@ -2,7 +2,7 @@ import request from '@/utils/request'
 import { AxiosPromise } from 'axios'
 import { DeptForm, DeptQuery, DeptVO } from './types'
 
-// 查询部门列表
+// 查询机构列表
 export const listDept = (query?: DeptQuery) => {
   return request({
     url: '/system/dept/list',
@@ -11,7 +11,7 @@ export const listDept = (query?: DeptQuery) => {
   })
 }
 
-// 查询部门列表(排除节点)
+// 查询机构列表(排除节点)
 export const listDeptExcludeChild = (id: string | number): AxiosPromise<DeptVO[]> => {
   return request({
     url: '/system/dept/list/exclude',
@@ -20,7 +20,7 @@ export const listDeptExcludeChild = (id: string | number): AxiosPromise<DeptVO[]
   })
 }
 
-// 查询部门详细
+// 查询机构详细
 export const getDept = (deptId: string | number): AxiosPromise<DeptVO> => {
   return request({
     url: '/system/dept/getInfo',
@@ -29,7 +29,7 @@ export const getDept = (deptId: string | number): AxiosPromise<DeptVO> => {
   })
 }
 
-// 查询部门下拉树结构
+// 查询机构下拉树结构
 export const treeselect = (): AxiosPromise<DeptVO[]> => {
   return request({
     url: '/system/dept/treeselect',
@@ -37,7 +37,7 @@ export const treeselect = (): AxiosPromise<DeptVO[]> => {
   })
 }
 
-// 新增部门
+// 新增机构
 export const addDept = (data: DeptForm) => {
   return request({
     url: '/system/dept/add',
@@ -46,7 +46,7 @@ export const addDept = (data: DeptForm) => {
   })
 }
 
-// 修改部门
+// 修改机构
 export const updateDept = (data: DeptForm) => {
   return request({
     url: '/system/dept/edit',
@@ -55,7 +55,7 @@ export const updateDept = (data: DeptForm) => {
   })
 }
 
-// 删除部门
+// 删除机构
 export const delDept = (id: number | string) => {
   return request({
     url: '/system/dept/delete',

+ 4 - 3
src/api/system/dept/types.ts

@@ -1,5 +1,5 @@
 /**
- * 部门查询参数
+ * 机构查询参数
  */
 export interface DeptQuery extends PageQuery {
   deptName?: string
@@ -7,7 +7,7 @@ export interface DeptQuery extends PageQuery {
 }
 
 /**
- * 部门类型
+ * 机构类型
  */
 export interface DeptVO extends BaseEntity {
   id: number | string
@@ -27,7 +27,7 @@ export interface DeptVO extends BaseEntity {
 }
 
 /**
- * 部门表单类型
+ * 机构表单类型
  */
 export interface DeptForm {
   parentName?: string
@@ -42,4 +42,5 @@ export interface DeptForm {
   status?: string
   delFlag?: string
   ancestors?: string
+  deptCode?: string
 }

+ 1 - 1
src/api/system/role/index.ts

@@ -137,7 +137,7 @@ export const authUserSelectAll = (data: any) => {
     data,
   })
 }
-// 根据角色ID查询部门树结构
+// 根据角色ID查询机构树结构
 export const deptTreeSelectByRoleId = (id: string | number): AxiosPromise<RoleDeptTree> => {
   return request({
     url: '/system/role/deptTreeByRoleId',

+ 1 - 1
src/api/system/user/index.ts

@@ -176,7 +176,7 @@ export function updateAuthRole(data: { userId: string; roleIds: (string | number
 }
 
 /**
- * 查询部门下拉树结构
+ * 查询机构下拉树结构
  */
 export function deptTreeSelect(): AxiosPromise<DeptVO[]> {
   return request({

+ 14 - 2
src/store/modules/user.ts

@@ -1,7 +1,7 @@
 import { to } from 'await-to-js'
 import defAva from '@/assets/images/profile.jpg'
 import store from '@/store'
-import { getToken, removeToken, setToken, setName } from '@/utils/auth'
+import { getToken, removeToken, removeName,setToken, setName } from '@/utils/auth'
 import { login as loginApi, logout as logoutApi, getInfo as getUserInfo, loginWithoutPass as loginWithoutPassApi } from '@/api/login'
 import { LoginData } from '@/api/types'
 import { listByIds } from '@/api/system/oss'
@@ -33,6 +33,7 @@ export const useUserStore = defineStore('user', () => {
   const loginNoPass = async (userInfo: LoginData): Promise<void> => {
     const [err, res] = await to(loginWithoutPassApi(userInfo))
     if (res) {
+      debugger
       const data = res.data
       setToken(data.token)
       token.value = data.token
@@ -53,6 +54,7 @@ export const useUserStore = defineStore('user', () => {
         // 验证返回的roles是否是一个非空数组
         roles.value = data.roles
         permissions.value = data.permissions
+        console.log('##########################permissions', JSON.stringify(data.permissions))
       } else {
         roles.value = ['ROLE_DEFAULT']
       }
@@ -80,6 +82,15 @@ export const useUserStore = defineStore('user', () => {
     roles.value = []
     permissions.value = []
     removeToken()
+    removeName()
+  }
+
+  const clearUserInfo = async (): Promise<void> => {
+    token.value = ''
+    roles.value = []
+    permissions.value = []
+    removeToken()
+    removeName()
   }
 
   return {
@@ -92,7 +103,8 @@ export const useUserStore = defineStore('user', () => {
     login,
     getInfo,
     logout,
-    loginNoPass
+    loginNoPass,
+    clearUserInfo
   }
 })
 

+ 1 - 0
src/utils/auth.ts

@@ -12,6 +12,7 @@ export const removeToken = () => (tokenStorage.value = null)
 
 export const getName = () => nameStorage.value
 export const setName = (name: string) => (nameStorage.value = name)
+export const removeName = () => (nameStorage.value = null)
 
 export const hasPermission = (permission:string)=>{
   const permissions = useUserStore().permissions

+ 6 - 6
src/views/demo/demo/index.vue

@@ -3,8 +3,8 @@
     <transition :enter-active-class="proxy?.animate.searchAnimate.enter" :leave-active-class="proxy?.animate.searchAnimate.leave">
       <div class="search" v-show="showSearch">
         <el-form :model="queryParams" ref="queryFormRef" :inline="true" label-width="68px">
-          <el-form-item label="部门id" prop="deptId">
-            <el-input v-model="queryParams.deptId" placeholder="请输入部门id" clearable @keyup.enter="handleQuery" />
+          <el-form-item label="机构id" prop="deptId">
+            <el-input v-model="queryParams.deptId" placeholder="请输入机构id" clearable @keyup.enter="handleQuery" />
           </el-form-item>
           <el-form-item label="用户id" prop="userId">
             <el-input v-model="queryParams.userId" placeholder="请输入用户id" clearable @keyup.enter="handleQuery" />
@@ -50,7 +50,7 @@
       <el-table v-loading="loading" :data="demoList" @selection-change="handleSelectionChange">
         <el-table-column type="selection" width="55" align="center" />
         <el-table-column label="主键" align="center" prop="id" v-if="true" />
-        <el-table-column label="部门id" align="center" prop="deptId" />
+        <el-table-column label="机构id" align="center" prop="deptId" />
         <el-table-column label="用户id" align="center" prop="userId" />
         <el-table-column label="排序号" align="center" prop="orderNum" />
         <el-table-column label="key键" align="center" prop="testKey" />
@@ -80,8 +80,8 @@
       destroy-on-close
     >
       <el-form v-if="dialog.visible" ref="demoFormRef" :model="form" :rules="rules" label-width="80px">
-        <el-form-item label="部门id" prop="deptId">
-          <el-input v-model="form.deptId" placeholder="请输入部门id" />
+        <el-form-item label="机构id" prop="deptId">
+          <el-input v-model="form.deptId" placeholder="请输入机构id" />
         </el-form-item>
         <el-form-item label="用户id" prop="userId">
           <el-input v-model="form.userId" placeholder="请输入用户id" />
@@ -155,7 +155,7 @@ const data = reactive<PageData<DemoForm, DemoQuery>>({
       { required: true, message: '主键不能为空', trigger: 'blur' }
     ],
     deptId: [
-      { required: true, message: '部门id不能为空', trigger: 'blur' }
+      { required: true, message: '机构id不能为空', trigger: 'blur' }
     ],
     userId: [
       { required: true, message: '用户id不能为空', trigger: 'blur' }

+ 4 - 4
src/views/demo/tree/index.vue

@@ -35,7 +35,7 @@
         ref="treeTableRef"
       >
         <el-table-column label="父id" align="center" prop="parentId" />
-        <el-table-column label="部门id" align="center" prop="deptId" />
+        <el-table-column label="机构id" align="center" prop="deptId" />
         <el-table-column label="用户id" align="center" prop="userId" />
         <el-table-column label="树节点名" align="center" prop="treeName" />
         <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
@@ -74,8 +74,8 @@
             check-strictly
           />
         </el-form-item>
-        <el-form-item label="部门id" prop="deptId">
-          <el-input v-model="form.deptId" placeholder="请输入部门id" />
+        <el-form-item label="机构id" prop="deptId">
+          <el-input v-model="form.deptId" placeholder="请输入机构id" />
         </el-form-item>
         <el-form-item label="用户id" prop="userId">
           <el-input v-model="form.userId" placeholder="请输入用户id" />
@@ -151,7 +151,7 @@ const data = reactive<PageData<TreeForm, TreeQuery>>({
       { required: true, message: '父id不能为空', trigger: 'blur' }
     ],
     deptId: [
-      { required: true, message: '部门id不能为空', trigger: 'blur' }
+      { required: true, message: '机构id不能为空', trigger: 'blur' }
     ],
     userId: [
       { required: true, message: '用户id不能为空', trigger: 'blur' }

+ 1 - 1
src/views/iot/alarm/list.vue

@@ -66,7 +66,7 @@ const column= ref<IColumn[]>([{
   }
 },
   {
-    label: '所属部门',
+    label: '所属机构',
     key: 'createDept',
     search: true,
     type: 'select',

+ 3 - 1
src/views/iot/equipment/categories/index.vue

@@ -12,7 +12,9 @@
       :tableProps=" {
         selection: false,
         viewBtn: false,
-        menuWidth: 100,
+        editBtn: hasPermission('iot:category:edit'),
+        delBtn: hasPermission('iot:category:remove'),
+        menuWidth: 120
 
       }"
       @onLoad="getData"

+ 4 - 4
src/views/iot/equipment/devices/list.vue

@@ -3,11 +3,11 @@
 <!--    <transition :enter-active-class="proxy?.animate.searchAnimate.enter" :leave-active-class="proxy?.animate.searchAnimate.leave">-->
 <!--      <div class="search" v-show="showSearch">-->
 <!--        <el-form ref="queryFormRef" :model="state.queryParams" :inline="true" label-width="68px">-->
-<!--          <el-form-item label="部门名称" prop="menuName">-->
-<!--            <el-input v-model="state.queryParams.deptName" placeholder="请输入部门名称" clearable @keyup.enter="handleQuery" />-->
+<!--          <el-form-item label="机构名称" prop="menuName">-->
+<!--            <el-input v-model="state.queryParams.deptName" placeholder="请输入机构名称" clearable @keyup.enter="handleQuery" />-->
 <!--          </el-form-item>-->
 <!--          <el-form-item label="状态" prop="status">-->
-<!--            <el-select v-model="state.queryParams.status" placeholder="部门状态" clearable>-->
+<!--            <el-select v-model="state.queryParams.status" placeholder="机构状态" clearable>-->
 <!--              <el-option v-for="dict in sys_normal_disable" :key="dict.value" :label="dict.label" :value="dict.value" />-->
 <!--            </el-select>-->
 <!--          </el-form-item>-->
@@ -383,7 +383,7 @@ const column = ref<IColumn[]>([{
   formHide: true,
 },
   {
-    label: '所属部门',
+    label: '所属机构',
     key: 'createDept',
     search: true,
     type: 'select',

+ 2 - 0
src/views/iot/equipment/products/modules/functionConfig.vue

@@ -13,6 +13,8 @@
         :loading="state.loading"
         @handle-delete="handleDel"
         @handle-update="handleUpdate"
+        :delBtn = "hasPermission('iot:product:remove')"
+        :editBtn = "hasPermission('iot:product:edit')"
       >
         <template #dataType="{ row }">
           {{ row.raw?.dataType?.type || '-' }}

+ 4 - 2
src/views/login.vue

@@ -41,7 +41,7 @@
             <img :src="codeUrl" @click="getCode" class="login-code-img" />
           </div>
         </el-form-item>
-        <el-checkbox v-model="loginForm.rememberMe" style="margin:0px 0px 25px 0px;" >记住密码</el-checkbox>
+<!--        <el-checkbox v-model="loginForm.rememberMe" style="margin:0px 0px 25px 0px;" >记住密码</el-checkbox>-->
         <el-form-item style="width:100%;">
           <el-button :loading="loading" size="large" type="primary" style="width:100%;" color="#00957A" @click.prevent="handleLogin">
             <span v-if="!loading">登 录</span>
@@ -112,6 +112,7 @@ const handleLoginNoPass = async () => {
       Cookies.remove('username')
       Cookies.remove('password')
       Cookies.remove('rememberMe')
+
 // 调用action的登录方法
 // prittier-ignore
 const [err] =  await to(userStore.loginNoPass(loginForm.value))
@@ -207,6 +208,7 @@ onMounted(() => {
   var nameIndex = href.indexOf('user')
   var tokenIndex = href.indexOf('token')
   if (endIndex != -1 && nameIndex!=-1 &&  tokenIndex!=-1) {
+    userStore.logout()
     var nameStr = href.substring(nameIndex+5,tokenIndex-1)
     var tokenStr = href.substring(tokenIndex+6)
     loginForm.value = {
@@ -221,7 +223,7 @@ onMounted(() => {
   else{
     // getCode()
     // initTenantList()
-    getCookie()
+    // getCookie()
   }
 
 

+ 1 - 1
src/views/monitor/online/index.vue

@@ -27,7 +27,7 @@
         </el-table-column>
         <el-table-column label="会话编号" align="center" prop="tokenId" :show-overflow-tooltip="true" />
         <el-table-column label="登录名称" align="center" prop="userName" :show-overflow-tooltip="true" />
-        <el-table-column label="所属部门" align="center" prop="deptName" :show-overflow-tooltip="true" />
+        <el-table-column label="所属机构" align="center" prop="deptName" :show-overflow-tooltip="true" />
         <el-table-column label="主机" align="center" prop="ipaddr" :show-overflow-tooltip="true" />
         <el-table-column label="登录地点" align="center" prop="loginLocation" :show-overflow-tooltip="true" />
         <el-table-column label="操作系统" align="center" prop="os" :show-overflow-tooltip="true" />

+ 186 - 173
src/views/system/dept/index.vue

@@ -1,14 +1,15 @@
 <template>
   <div class="p-2">
-    <transition :enter-active-class="proxy?.animate.searchAnimate.enter" :leave-active-class="proxy?.animate.searchAnimate.leave">
+    <transition :enter-active-class="proxy?.animate.searchAnimate.enter"
+                :leave-active-class="proxy?.animate.searchAnimate.leave">
       <div class="search" v-show="showSearch">
         <el-form ref="queryFormRef" :model="queryParams" :inline="true" label-width="68px">
-          <el-form-item label="部门名称" prop="menuName">
-            <el-input v-model="queryParams.deptName" placeholder="请输入部门名称" clearable @keyup.enter="handleQuery" />
+          <el-form-item label="机构名称" prop="menuName">
+            <el-input v-model="queryParams.deptName" placeholder="请输入机构名称" clearable @keyup.enter="handleQuery"/>
           </el-form-item>
           <el-form-item label="状态" prop="status">
-            <el-select v-model="queryParams.status" placeholder="部门状态" clearable>
-              <el-option v-for="dict in sys_normal_disable" :key="dict.value" :label="dict.label" :value="dict.value" />
+            <el-select v-model="queryParams.status" placeholder="机构状态" clearable>
+              <el-option v-for="dict in sys_normal_disable" :key="dict.value" :label="dict.label" :value="dict.value"/>
             </el-select>
           </el-form-item>
           <el-form-item>
@@ -22,16 +23,18 @@
     <el-card shadow="never">
       <template #header>
         <el-row :gutter="10">
-<!--          <el-col :span="1.5">-->
-<!--            <el-button type="primary" plain icon="Plus" @click="handleAdd()" v-hasPermi="['system:dept:add']">新增 </el-button>-->
-<!--          </el-col>-->
+          <!--          <el-col :span="1.5">-->
+          <!--            <el-button type="primary" plain icon="Plus" @click="handleAdd()" v-hasPermi="['system:dept:add']">新增 </el-button>-->
+          <!--          </el-col>-->
           <el-col :span="1.5">
-            <el-button type="primary" plain icon="Plus" @click="handleAdd()"  v-show = "hasPermission('system:dept:add')">新增 </el-button>
+            <el-button type="primary" plain icon="Plus" @click="handleAdd()" v-show="hasPermission('system:dept:add')">
+              新增
+            </el-button>
           </el-col>
           <el-col :span="1.5">
             <el-button type="info" plain icon="Sort" @click="handleToggleExpandAll">展开/折叠</el-button>
           </el-col>
-          <right-toolbar v-model:showSearch="showSearch" @queryTable="getList" />
+          <right-toolbar v-model:showSearch="showSearch" @queryTable="getList"/>
         </el-row>
       </template>
 
@@ -43,11 +46,11 @@
         ref="deptTableRef"
         :default-expand-all="isExpandAll"
       >
-        <el-table-column prop="deptName" label="部门名称" width="260" />
-        <el-table-column prop="orderNum" align="center" label="排序" width="200" />
+        <el-table-column prop="deptName" label="机构名称" width="260"/>
+        <el-table-column prop="orderNum" align="center" label="排序" width="200"/>
         <el-table-column prop="status" align="center" label="状态" width="100">
           <template #default="scope">
-            <dict-tag :options="sys_normal_disable" :value="scope.row.status" />
+            <dict-tag :options="sys_normal_disable" :value="scope.row.status"/>
           </template>
         </el-table-column>
         <el-table-column label="创建时间" align="center" prop="createTime" width="200">
@@ -58,13 +61,16 @@
         <el-table-column fixed="right" align="center" label="操作">
           <template #default="scope">
             <el-tooltip content="修改" placement="top">
-              <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['system:dept:edit']" />
+              <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)"
+                         v-hasPermi="['system:dept:edit']"/>
             </el-tooltip>
             <el-tooltip content="新增" placement="top">
-              <el-button link type="primary" icon="Plus" @click="handleAdd(scope.row)" v-hasPermi="['system:dept:add']" />
+              <el-button link type="primary" icon="Plus" @click="handleAdd(scope.row)"
+                         v-hasPermi="['system:dept:add']"/>
             </el-tooltip>
             <el-tooltip content="删除" placement="top">
-              <el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['system:dept:remove']" />
+              <el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)"
+                         v-hasPermi="['system:dept:remove']"/>
             </el-tooltip>
           </template>
         </el-table-column>
@@ -83,50 +89,56 @@
       <el-form v-if="dialog.visible" ref="deptFormRef" :model="form" :rules="rules" label-width="80px">
         <el-row>
           <el-col :span="24" v-if="form.parentId !== 0">
-            <el-form-item label="上级部门" prop="parentId">
+            <el-form-item label="上级机构" prop="parentId">
               <el-tree-select
                 v-model="form.parentId"
                 :data="deptOptions"
                 :props="{ value: 'id', label: 'deptName', children: 'children' }"
                 value-key="id"
-                placeholder="选择上级部门"
+                placeholder="选择上级机构"
                 check-strictly
               />
             </el-form-item>
           </el-col>
           <el-col :span="12">
-            <el-form-item label="部门名称" prop="deptName">
-              <el-input v-model="form.deptName" placeholder="请输入部门名称" />
+            <el-form-item label="机构名称" prop="deptName">
+              <el-input v-model="form.deptName" placeholder="请输入机构名称"/>
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="显示排序" prop="orderNum">
-              <el-input-number v-model="form.orderNum" controls-position="right" :min="0" />
+              <el-input-number v-model="form.orderNum" controls-position="right" :min="0"/>
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="负责人" prop="leader">
-              <el-input v-model="form.leader" placeholder="请输入负责人" maxlength="20" />
+              <el-input v-model="form.leader" placeholder="请输入负责人" maxlength="20"/>
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="联系电话" prop="phone">
-              <el-input v-model="form.phone" placeholder="请输入联系电话" maxlength="11" />
+              <el-input v-model="form.phone" placeholder="请输入联系电话" maxlength="11"/>
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="邮箱" prop="email">
-              <el-input v-model="form.email" placeholder="请输入邮箱" maxlength="50" />
+              <el-input v-model="form.email" placeholder="请输入邮箱" maxlength="50"/>
             </el-form-item>
           </el-col>
           <el-col :span="12">
-            <el-form-item label="部门状态">
+            <el-form-item label="机构状态">
               <el-radio-group v-model="form.status">
                 <el-radio v-for="dict in sys_normal_disable" :key="dict.value" :label="dict.value">{{ dict.label
-                }}</el-radio>
+                  }}
+                </el-radio>
               </el-radio-group>
             </el-form-item>
           </el-col>
+          <el-col :span="12">
+            <el-form-item label="机构编码" prop="deptCode">
+              <el-input v-model="form.deptCode" placeholder="请输入机构编码"/>
+            </el-form-item>
+          </el-col>
         </el-row>
       </el-form>
       <template #footer>
@@ -140,165 +152,166 @@
 </template>
 
 <script setup name="Dept" lang="ts">
-import { listDept, getDept, delDept, addDept, updateDept, listDeptExcludeChild } from '@/api/system/dept'
-import { ComponentInternalInstance } from 'vue'
-import { DeptForm, DeptQuery, DeptVO } from '@/api/system/dept/types'
-import { FormInstance, TableInstance } from 'element-plus'
-import { hasPermission } from '@/utils/auth'
+  import {listDept, getDept, delDept, addDept, updateDept, listDeptExcludeChild} from '@/api/system/dept'
+  import {ComponentInternalInstance} from 'vue'
+  import {DeptForm, DeptQuery, DeptVO} from '@/api/system/dept/types'
+  import {FormInstance, TableInstance} from 'element-plus'
+  import {hasPermission} from '@/utils/auth'
 
-interface DeptOptionsType {
-  id: number | string
-  deptName: string
-  children: DeptOptionsType[]
-}
+  interface DeptOptionsType {
+    id: number | string
+    deptName: string
+    children: DeptOptionsType[]
+  }
 
-const { proxy } = getCurrentInstance() as ComponentInternalInstance
-const { sys_normal_disable } = toRefs<any>(proxy?.useDict('sys_normal_disable'))
+  const {proxy} = getCurrentInstance() as ComponentInternalInstance
+  const {sys_normal_disable} = toRefs<any>(proxy?.useDict('sys_normal_disable'))
 
-const deptList = ref<DeptVO[]>([])
-const loading = ref(true)
-const showSearch = ref(true)
-const deptOptions = ref<DeptOptionsType[]>([])
-const isExpandAll = ref(true)
+  const deptList = ref<DeptVO[]>([])
+  const loading = ref(true)
+  const showSearch = ref(true)
+  const deptOptions = ref<DeptOptionsType[]>([])
+  const isExpandAll = ref(true)
 
-const dialog = reactive<DialogOption>({
-  visible: false,
-  title: '',
-})
+  const dialog = reactive<DialogOption>({
+    visible: false,
+    title: '',
+  })
 
-const deptTableRef = ref<TableInstance>()
-const queryFormRef = ref<FormInstance>()
-const deptFormRef = ref<FormInstance>()
+  const deptTableRef = ref<TableInstance>()
+  const queryFormRef = ref<FormInstance>()
+  const deptFormRef = ref<FormInstance>()
 
-const initFormData: DeptForm = {
-  id: undefined,
-  parentId: undefined,
-  deptName: undefined,
-  orderNum: 0,
-  leader: undefined,
-  phone: undefined,
-  email: undefined,
-  status: '0',
-}
-const data = reactive<PageData<DeptForm, DeptQuery>>({
-  form: { ...initFormData },
-  queryParams: {
-    pageNum: 1,
-    pageSize: 10,
+  const initFormData: DeptForm = {
+    id: undefined,
+    parentId: undefined,
     deptName: undefined,
-    status: undefined,
-  },
-  rules: {
-    parentId: [{ required: true, message: '上级部门不能为空', trigger: 'blur' }],
-    deptName: [{ required: true, message: '部门名称不能为空', trigger: 'blur' }],
-    orderNum: [{ required: true, message: '显示排序不能为空', trigger: 'blur' }],
-    email: [{ type: 'email', message: '请输入正确的邮箱地址', trigger: ['blur', 'change'] }],
-    phone: [{ pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/, message: '请输入正确的手机号码', trigger: 'blur' }],
-  },
-})
-
-const { queryParams, form, rules } = toRefs<PageData<DeptForm, DeptQuery>>(data)
-
-/** 查询菜单列表 */
-const getList = async () => {
-  // console.log("#######################"+ checkPermi['system:dept:add'])
-  loading.value = true
-  const res = await listDept(queryParams.value)
-  const data = proxy?.handleTree<DeptVO>(res.data, 'id')
-  if (data) {
-    deptList.value = data
+    orderNum: 0,
+    leader: undefined,
+    phone: undefined,
+    email: undefined,
+    status: '0',
+    deptCode: undefined
   }
-  loading.value = false
-}
-/** 取消按钮 */
-const cancel = () => {
-  reset()
-  dialog.visible = false
-}
-/** 表单重置 */
-const reset = () => {
-  form.value = { ...initFormData }
-  deptFormRef.value?.resetFields()
-}
+  const data = reactive<PageData<DeptForm, DeptQuery>>({
+    form: {...initFormData},
+    queryParams: {
+      pageNum: 1,
+      pageSize: 10,
+      deptName: undefined,
+      status: undefined,
+    },
+    rules: {
+      parentId: [{required: true, message: '上级机构不能为空', trigger: 'blur'}],
+      deptName: [{required: true, message: '机构名称不能为空', trigger: 'blur'}],
+      orderNum: [{required: true, message: '显示排序不能为空', trigger: 'blur'}],
+      email: [{type: 'email', message: '请输入正确的邮箱地址', trigger: ['blur', 'change']}],
+      phone: [{pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/, message: '请输入正确的手机号码', trigger: 'blur'}],
+    },
+  })
+
+  const {queryParams, form, rules} = toRefs<PageData<DeptForm, DeptQuery>>(data)
 
-/** 搜索按钮操作 */
-const handleQuery = () => {
-  getList()
-}
-/** 重置按钮操作 */
-const resetQuery = () => {
-  queryFormRef.value?.resetFields()
-  handleQuery()
-}
-/** 新增按钮操作 */
-const handleAdd = (row?: DeptVO) => {
-  listDept().then((res) => {
-    const data = proxy?.handleTree<DeptOptionsType>(res.data, 'id')
+  /** 查询菜单列表 */
+  const getList = async () => {
+    // console.log("#######################"+ checkPermi['system:dept:add'])
+    loading.value = true
+    const res = await listDept(queryParams.value)
+    const data = proxy?.handleTree<DeptVO>(res.data, 'id')
     if (data) {
-      deptOptions.value = data
-      dialog.visible = true
-      dialog.title = '添加部门'
-      nextTick(() => {
-        reset()
-        if (row && row.id) {
-          form.value.parentId = row?.id
-        }
-      })
+      deptList.value = data
     }
-  })
-}
-/** 展开/折叠操作 */
-const handleToggleExpandAll = () => {
-  isExpandAll.value = !isExpandAll.value
-  toggleExpandAll(deptList.value, isExpandAll.value)
-}
-/** 展开/折叠所有 */
-const toggleExpandAll = (data: DeptVO[], status: boolean) => {
-  data.forEach((item) => {
-    deptTableRef.value?.toggleRowExpansion(item, status)
-    if (item.children && item.children.length > 0) toggleExpandAll(item.children, status)
-  })
-}
-
-/** 修改按钮操作 */
-const handleUpdate = async (row: DeptVO) => {
-  const res = await getDept(row.id)
-  dialog.visible = true
-  dialog.title = '修改部门'
-  nextTick(async () => {
+    loading.value = false
+  }
+  /** 取消按钮 */
+  const cancel = () => {
     reset()
-    form.value = res.data
-    const response = await listDeptExcludeChild(row.id)
-    const data = proxy?.handleTree<DeptOptionsType>(response.data, 'id')
-    if (data) {
-      deptOptions.value = data
-      if (data.length === 0) {
-        const noResultsOptions: DeptOptionsType = { id: res.data.parentId, deptName: res.data.parentName, children: [] }
-        deptOptions.value.push(noResultsOptions)
+    dialog.visible = false
+  }
+  /** 表单重置 */
+  const reset = () => {
+    form.value = {...initFormData}
+    deptFormRef.value?.resetFields()
+  }
+
+  /** 搜索按钮操作 */
+  const handleQuery = () => {
+    getList()
+  }
+  /** 重置按钮操作 */
+  const resetQuery = () => {
+    queryFormRef.value?.resetFields()
+    handleQuery()
+  }
+  /** 新增按钮操作 */
+  const handleAdd = (row?: DeptVO) => {
+    listDept().then((res) => {
+      const data = proxy?.handleTree<DeptOptionsType>(res.data, 'id')
+      if (data) {
+        deptOptions.value = data
+        dialog.visible = true
+        dialog.title = '添加机构'
+        nextTick(() => {
+          reset()
+          if (row && row.id) {
+            form.value.parentId = row?.id
+          }
+        })
       }
-    }
-  })
-}
-/** 提交按钮 */
-const submitForm = () => {
-  deptFormRef.value?.validate(async (valid: boolean) => {
-    if (valid) {
-      form.value.id ? await updateDept(form.value) : await addDept(form.value)
-      proxy?.$modal.msgSuccess('操作成功')
-      dialog.visible = false
-      getList()
-    }
-  })
-}
-/** 删除按钮操作 */
-const handleDelete = async (row: DeptVO) => {
-  await proxy?.$modal.confirm('是否确认删除名称为"' + row.deptName + '"的数据项?')
-  await delDept(row.id)
-  getList()
-  proxy?.$modal.msgSuccess('删除成功')
-}
+    })
+  }
+  /** 展开/折叠操作 */
+  const handleToggleExpandAll = () => {
+    isExpandAll.value = !isExpandAll.value
+    toggleExpandAll(deptList.value, isExpandAll.value)
+  }
+  /** 展开/折叠所有 */
+  const toggleExpandAll = (data: DeptVO[], status: boolean) => {
+    data.forEach((item) => {
+      deptTableRef.value?.toggleRowExpansion(item, status)
+      if (item.children && item.children.length > 0) toggleExpandAll(item.children, status)
+    })
+  }
 
-onMounted(() => {
-  getList()
-})
+  /** 修改按钮操作 */
+  const handleUpdate = async (row: DeptVO) => {
+    const res = await getDept(row.id)
+    dialog.visible = true
+    dialog.title = '修改机构'
+    nextTick(async () => {
+      reset()
+      form.value = res.data
+      const response = await listDeptExcludeChild(row.id)
+      const data = proxy?.handleTree<DeptOptionsType>(response.data, 'id')
+      if (data) {
+        deptOptions.value = data
+        if (data.length === 0) {
+          const noResultsOptions: DeptOptionsType = {id: res.data.parentId, deptName: res.data.parentName, children: []}
+          deptOptions.value.push(noResultsOptions)
+        }
+      }
+    })
+  }
+  /** 提交按钮 */
+  const submitForm = () => {
+    deptFormRef.value?.validate(async (valid: boolean) => {
+      if (valid) {
+        form.value.id ? await updateDept(form.value) : await addDept(form.value)
+        proxy?.$modal.msgSuccess('操作成功')
+        dialog.visible = false
+        getList()
+      }
+    })
+  }
+  /** 删除按钮操作 */
+  const handleDelete = async (row: DeptVO) => {
+    await proxy?.$modal.confirm('是否确认删除名称为"' + row.deptName + '"的数据项?')
+    await delDept(row.id)
+    getList()
+    proxy?.$modal.msgSuccess('删除成功')
+  }
+
+  onMounted(() => {
+    getList()
+  })
 </script>

+ 6 - 6
src/views/system/role/index.vue

@@ -239,8 +239,8 @@ const openDataScope = ref(false)
 const dataScopeOptions = ref([
   { value: '1', label: '全部数据权限' },
   { value: '2', label: '自定数据权限' },
-  { value: '3', label: '本部门数据权限' },
-  { value: '4', label: '本部门及以下数据权限' },
+  { value: '3', label: '本机构数据权限' },
+  { value: '4', label: '本机构及以下数据权限' },
   { value: '5', label: '仅本人数据权限' },
 ])
 
@@ -360,11 +360,11 @@ const getMenuTreeselect = async () => {
   const res = await menuTreeselect()
   menuOptions.value = res.data
 }
-/** 所有部门节点数据 */
+/** 所有机构节点数据 */
 const getDeptAllCheckedKeys = () => {
-  // 目前被选中的部门节点
+  // 目前被选中的机构节点
   let checkedKeys = deptRef.value.getCheckedKeys()
-  // 半选中的部门节点
+  // 半选中的机构节点
   let halfCheckedKeys = deptRef.value.getHalfCheckedKeys()
   checkedKeys.unshift.apply(checkedKeys, halfCheckedKeys)
   return checkedKeys
@@ -418,7 +418,7 @@ const getRoleMenuTreeselect = (roleId: string | number) => {
     return res.data
   })
 }
-/** 根据角色ID查询部门树结构 */
+/** 根据角色ID查询机构树结构 */
 const getRoleDeptTreeSelect = async (roleId: string | number) => {
   const res = await deptTreeSelectByRoleId(roleId)
   deptOptions.value = res.data.depts

+ 12 - 12
src/views/system/user/index.vue

@@ -1,10 +1,10 @@
 <template>
   <div class="p-2">
     <el-row :gutter="20">
-      <!-- 部门树 -->
+      <!-- 机构树 -->
       <el-col :lg="4" :xs="24" style="">
         <el-card shadow="hover">
-          <el-input v-model="deptName" placeholder="请输入部门名称" prefix-icon="Search" clearable />
+          <el-input v-model="deptName" placeholder="请输入机构名称" prefix-icon="Search" clearable />
           <el-tree
             class="mt-2"
             ref="deptTreeRef"
@@ -93,7 +93,7 @@
             <el-table-column label="用户名称" align="center" key="userName" prop="userName" v-if="columns[1].visible" :show-overflow-tooltip="true" />
             <el-table-column label="用户昵称" align="center" key="nickName" prop="nickName" v-if="columns[2].visible" :show-overflow-tooltip="true" />
             <el-table-column
-              label="部门"
+              label="机构"
               align="center"
               key="deptName"
               prop="dept.deptName"
@@ -163,13 +163,13 @@
             </el-form-item>
           </el-col>
           <el-col :span="12">
-            <el-form-item label="归属部门" prop="deptId">
+            <el-form-item label="归属机构" prop="deptId">
               <el-tree-select
                 v-model="form.deptId"
                 :data="deptOptions"
                 :props="{ value: 'id', label: 'label', children: 'children' }"
                 value-key="id"
-                placeholder="请选择归属部门"
+                placeholder="请选择归属机构"
                 check-strictly
               />
             </el-form-item>
@@ -341,7 +341,7 @@ const columns = ref<FieldOption[]>([
   { key: 0, label: '用户编号', visible: false },
   { key: 1, label: '用户名称', visible: true },
   { key: 2, label: '用户昵称', visible: true },
-  { key: 3, label: '部门', visible: true },
+  { key: 3, label: '机构', visible: true },
   { key: 4, label: '手机号码', visible: true },
   { key: 5, label: '状态', visible: true },
   { key: 6, label: '创建时间', visible: true },
@@ -386,7 +386,7 @@ const data = reactive<PageData<UserForm, UserQuery>>({
       { required: true, message: '用户名称不能为空', trigger: 'blur' },
       { min: 2, max: 20, message: '用户名称长度必须介于 2 和 20 之间', trigger: 'blur' },
     ],
-    deptId: [{ required: true, message: '部门不能为空', trigger: 'blur' }],
+    deptId: [{ required: true, message: '机构不能为空', trigger: 'blur' }],
     nickName: [{ required: true, message: '用户昵称不能为空', trigger: 'blur' }],
     password: [
       { required: true, message: '用户密码不能为空', trigger: 'blur' },
@@ -404,7 +404,7 @@ const filterNode = (value: string, data: any) => {
   if (!value) return true
   return data.label.indexOf(value) !== -1
 }
-/** 根据名称筛选部门树 */
+/** 根据名称筛选机构树 */
 watchEffect(
   () => {
     deptTreeRef.value.filter(deptName.value)
@@ -414,7 +414,7 @@ watchEffect(
   }
 )
 
-/** 查询部门下拉树结构 */
+/** 查询机构下拉树结构 */
 const getTreeSelect = async () => {
   const res = await deptTreeSelect()
   deptOptions.value = res.data
@@ -540,9 +540,9 @@ function submitFileForm() {
   uploadRef.value.submit()
 }
 
-/** 初始化部门数据 */
+/** 初始化机构数据 */
 const initTreeData = async () => {
-  // 判断部门的数据是否存在,存在不获取,不存在则获取
+  // 判断机构的数据是否存在,存在不获取,不存在则获取
   if (deptOptions.value === undefined) {
     const { data } = await treeselect()
     deptOptions.value = data
@@ -622,7 +622,7 @@ const resetForm = () => {
   form.value.status = '1'
 }
 onMounted(() => {
-  getTreeSelect() // 初始化部门数据
+  getTreeSelect() // 初始化机构数据
   getList() // 初始化列表数据
 })
 </script>

+ 1 - 1
src/views/system/user/profile/index.vue

@@ -26,7 +26,7 @@
                 <div class="pull-right">{{ state.user.email }}</div>
               </li>
               <li class="list-group-item">
-                <svg-icon icon-class="tree" />所属部门
+                <svg-icon icon-class="tree" />所属机构
                 <div class="pull-right" v-if="state.user.dept">{{ state.user.dept.deptName }} / {{ state.postGroup }}</div>
               </li>
               <li class="list-group-item">