Commit 342da887 by pangchong

feat: 新增操作权限

parent 89d9ae7c
...@@ -40,6 +40,16 @@ export const getSysSeatListApi = (data, config) => { ...@@ -40,6 +40,16 @@ export const getSysSeatListApi = (data, config) => {
}) })
} }
//获取某用户拥有的席位列表(不分页)
export const getUserSeatListApi = (data, config) => {
return http({
method: 'POST',
url: '/system/getUserSeatList',
data,
config
})
}
//获取操作权限 //获取操作权限
export const getSeatPermissionApi = (data, config) => { export const getSeatPermissionApi = (data, config) => {
return http({ return http({
......
import { checkPermi } from 'mocp/utils/permission'
// 操作权限指令
export const vHasPermi = (el, binding) => {
const { value } = binding
if (!checkPermi(value)) {
el.parentNode && el.parentNode.removeChild(el)
}
}
...@@ -8,7 +8,9 @@ const useUserStore = defineStore('mocpUser', { ...@@ -8,7 +8,9 @@ const useUserStore = defineStore('mocpUser', {
userInfo: undefined, //用户信息 userInfo: undefined, //用户信息
allMenuItem: { id: 999, name: '全部菜单', icon: 'all', group: '', count: 0 }, allMenuItem: { id: 999, name: '全部菜单', icon: 'all', group: '', count: 0 },
allUserList: [], //所有登录用户存储的信息 allUserList: [], //所有登录用户存储的信息
seatPermission: [], //操作权限 //席位权限
seatId: '', //当前席位id
seatPermission: ['all'], //操作权限
configData: [] //数据权限 configData: [] //数据权限
} }
}, },
...@@ -23,7 +25,9 @@ const useUserStore = defineStore('mocpUser', { ...@@ -23,7 +25,9 @@ const useUserStore = defineStore('mocpUser', {
}, },
//获取全部菜单 //获取全部菜单
getMenuList(state) { getMenuList(state) {
return menuList.value if (state.seatPermission.includes('all')) {
return menuList.value
}
return menuList.value.filter((item) => state.getApiPaths.includes(item.apiPath) || !item.apiPath) return menuList.value.filter((item) => state.getApiPaths.includes(item.apiPath) || !item.apiPath)
}, },
//获取分组菜单 //获取分组菜单
...@@ -40,7 +44,8 @@ const useUserStore = defineStore('mocpUser', { ...@@ -40,7 +44,8 @@ const useUserStore = defineStore('mocpUser', {
}, },
//获取当前登录用户的首页菜单 //获取当前登录用户的首页菜单
getHomeMenuList(state) { getHomeMenuList(state) {
const homeMenuList = state.allUserList.find((item) => item.userId == state.userInfo?.id)?.homeMenuList if (!state.userInfo) return []
const homeMenuList = state.allUserList.find((item) => item.userId == state.userInfo.id)?.homeMenuList || []
const ids = [] const ids = []
homeMenuList.forEach((item) => { homeMenuList.forEach((item) => {
ids.push(item.id) ids.push(item.id)
...@@ -66,14 +71,6 @@ const useUserStore = defineStore('mocpUser', { ...@@ -66,14 +71,6 @@ const useUserStore = defineStore('mocpUser', {
}) })
} }
}, },
//设置操作权限
setSeatPermission(data) {
this.seatPermission = data || []
},
//设置数据权限
setConfigData(data) {
this.configData = data || []
},
//退出登录 //退出登录
handleLogOut() { handleLogOut() {
this.token = '' this.token = ''
...@@ -81,12 +78,21 @@ const useUserStore = defineStore('mocpUser', { ...@@ -81,12 +78,21 @@ const useUserStore = defineStore('mocpUser', {
//返回登录页面 //返回登录页面
uni.$mocpJump.redirectTo('/login/index') uni.$mocpJump.redirectTo('/login/index')
}, },
//重置席位权限
resetSeat() {
this.seatId = ''
this.seatPermission = ['all']
this.configData = []
},
//修改用户首页菜单 //修改用户首页菜单
changeHomeMenuList(menuList) { changeHomeMenuList(menuList) {
const index = this.allUserList.findIndex((item) => item.userId == this.userInfo.id) const index = this.allUserList.findIndex((item) => item.userId == this.userInfo.id)
this.allUserList[index].homeMenuList = menuList.map((item) => { this.allUserList[index].homeMenuList = menuList.map((item) => {
return { id: item.id } return { id: item.id }
}) })
},
setState(...args) {
this.$patch({ [args[0]]: args[1] })
} }
}, },
// 配置持久化 // 配置持久化
......
...@@ -46,7 +46,7 @@ import { onLoad } from '@dcloudio/uni-app' ...@@ -46,7 +46,7 @@ import { onLoad } from '@dcloudio/uni-app'
import { ref, toRaw, watch } from 'vue' import { ref, toRaw, watch } from 'vue'
import useUserStore from 'mocp/store/user' import useUserStore from 'mocp/store/user'
import { loginApi } from 'mocp/api/user' import { loginApi } from 'mocp/api/user'
import { getConfigDataApi, getSeatPermissionApi } from 'mocp/api/system' import { getConfigDataApi, getSeatPermissionApi, getUserSeatListApi } from 'mocp/api/system'
watch( watch(
() => loginForm.username, () => loginForm.username,
...@@ -56,8 +56,9 @@ watch( ...@@ -56,8 +56,9 @@ watch(
} }
}, 500) }, 500)
) )
const userStore = useUserStore()
onLoad(() => { onLoad(() => {
userStore.resetSeat()
loginForm.verifyCode = '' loginForm.verifyCode = ''
getGifCaptcha() getGifCaptcha()
loginAmms() loginAmms()
...@@ -65,7 +66,6 @@ onLoad(() => { ...@@ -65,7 +66,6 @@ onLoad(() => {
//登录 //登录
const loading = ref(false) const loading = ref(false)
const userStore = useUserStore()
const handleLogin = async () => { const handleLogin = async () => {
await loginFormRef.value?.validate() await loginFormRef.value?.validate()
try { try {
...@@ -75,7 +75,12 @@ const handleLogin = async () => { ...@@ -75,7 +75,12 @@ const handleLogin = async () => {
}) })
loading.value = true loading.value = true
await login() await login()
await Promise.all([getSeatPermission(), getConfigData()]) await getUserSeatList()
if (userStore.seatId) {
await Promise.all([getSeatPermission(), getConfigData()])
} else {
userStore.setState('seatPermission', [])
}
//跳转工作台 //跳转工作台
uni.$mocpJump.redirectTo('/tab/index') uni.$mocpJump.redirectTo('/tab/index')
} catch (error) { } catch (error) {
...@@ -94,22 +99,27 @@ const login = async () => { ...@@ -94,22 +99,27 @@ const login = async () => {
uni.$mocpMessage.error(res.message) uni.$mocpMessage.error(res.message)
} }
} }
//获取席位信息
const getUserSeatList = async () => {
const res = await getUserSeatListApi({ seatScene: '2' })
if (res.code == 200) {
if (res.data?.list?.length > 0) {
userStore.setState('seatId', res.data.list[0].id)
}
}
}
//获取操作权限 //获取操作权限
const getSeatPermission = async () => { const getSeatPermission = async () => {
const res = await getSeatPermissionApi({ seatId: '1871742912739872770' }) const res = await getSeatPermissionApi({ seatId: userStore.seatId })
if (res.code == 200) { if (res.code == 200) {
userStore.setSeatPermission(res.data) userStore.setState('seatPermission', res.data)
} else {
uni.$mocpMessage.error(res.message)
} }
} }
//获取数据权限 //获取数据权限
const getConfigData = async () => { const getConfigData = async () => {
const res = await getConfigDataApi({ seatId: '1871742912739872770' }) const res = await getConfigDataApi({ seatId: userStore.seatId })
if (res.code == 200) { if (res.code == 200) {
userStore.setConfigData(res.data) userStore.setState('configData', res.data)
} else {
uni.$mocpMessage.error(res.message)
} }
} }
//接入amms //接入amms
......
...@@ -2,10 +2,10 @@ ...@@ -2,10 +2,10 @@
<global-page <global-page
:padding="24" :padding="24"
title="航站不正常事件详情" title="航站不正常事件详情"
:showFooterBtn="details.state == 0" :showFooterBtn="details.state == 0 && checkPermi('/terminalQualityManagement/audit')"
:footerBtnText="getFooterTxt" :footerBtnText="getFooterTxt"
@handleFooterClick="handleFooterClick" @handleFooterClick="handleFooterClick"
:showNavRight="auditLabel != '审核通过'" :showNavRight="auditLabel != '审核通过' && checkPermi('/terminalQualityManagement/edit')"
@handleRightClick="navigateTo('/panel/abnormalEventManage/edit')" @handleRightClick="navigateTo('/panel/abnormalEventManage/edit')"
> >
<view class="mocp-cell" v-if="details"> <view class="mocp-cell" v-if="details">
...@@ -93,7 +93,7 @@ import { useGetDictByValue } from 'mocp/hooks/use-dict/useDict' ...@@ -93,7 +93,7 @@ import { useGetDictByValue } from 'mocp/hooks/use-dict/useDict'
import { computed, ref } from 'vue' import { computed, ref } from 'vue'
import { navigateTo } from 'mocp/utils/jump' import { navigateTo } from 'mocp/utils/jump'
import { reviewedAdverseEventsApi } from 'mocp/api/abnormalEventManage' import { reviewedAdverseEventsApi } from 'mocp/api/abnormalEventManage'
import { getAirlineSelect } from 'mocp/utils/permission' import { checkPermi, getAirlineSelect } from 'mocp/utils/permission'
const abnormalEventManageStore = useAbnormalEventManageStore() const abnormalEventManageStore = useAbnormalEventManageStore()
const { details } = storeToRefs(abnormalEventManageStore) const { details } = storeToRefs(abnormalEventManageStore)
......
<template> <template>
<global-page padding="0 24rpx" title="收费单" auto :localData="list"> <global-page padding="0 24rpx" title="收费单" auto :localData="list">
<template #default="{ item }"> <template #default="{ item }">
<global-card :title="item.title" titleSuffix="查看详情" :rightWidth="180" @handleTitleClick="navigateTo(item.url)"> <global-card :title="item.title" titleSuffix="查看详情" :rightWidth="180" @handleTitleClick="goTo(item.url)">
描述:{{ item.desc }} 描述:{{ item.desc }}
</global-card> </global-card>
</template> </template>
...@@ -13,7 +13,15 @@ import { navigateTo } from 'mocp/utils/jump' ...@@ -13,7 +13,15 @@ import { navigateTo } from 'mocp/utils/jump'
import { list } from './constants/list.compositions' import { list } from './constants/list.compositions'
import useElectronicBillStore from 'mocp/store/electronicBill' import useElectronicBillStore from 'mocp/store/electronicBill'
import { onLoad } from '@dcloudio/uni-app' import { onLoad } from '@dcloudio/uni-app'
import { checkPermi } from 'mocp/utils/permission'
const goTo = (url) => {
if (checkPermi('/ElectronBill/edit')) {
navigateTo(url)
} else {
uni.$mocpMessage.warning('暂无权限')
}
}
const electronicBillStore = useElectronicBillStore() const electronicBillStore = useElectronicBillStore()
onLoad(() => { onLoad(() => {
electronicBillStore.init() electronicBillStore.init()
......
...@@ -42,18 +42,11 @@ ...@@ -42,18 +42,11 @@
<script setup> <script setup>
import useFleetStore from 'mocp/store/fleet' import useFleetStore from 'mocp/store/fleet'
import { storeToRefs } from 'pinia' import { storeToRefs } from 'pinia'
import useUserStore from 'mocp/store/user'
import { timeStampFormat } from 'mocp/utils/tool' import { timeStampFormat } from 'mocp/utils/tool'
import { useGetDictByValue } from 'mocp/hooks/use-dict/useDict' import { useGetDictByValue } from 'mocp/hooks/use-dict/useDict'
import { ref } from 'vue'
import { getFleetListApi } from 'mocp/api/fleet'
import { WorkTaskIsSuccessApi } from 'mocp/api/work-assignment'
import Day from 'mocp/utils/dayjs'
const fleetStore = useFleetStore() const fleetStore = useFleetStore()
const { details } = storeToRefs(fleetStore) const { details } = storeToRefs(fleetStore)
console.log(details, details.value.creationTime, timeStampFormat('1721810489517', { format: 'YYYY-MM-DD' }))
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@import '../work-assignment/constants/details.scss'; @import '../work-assignment/constants/details.scss';
......
...@@ -13,7 +13,7 @@ ...@@ -13,7 +13,7 @@
@handleRightClick="handleRightClick" @handleRightClick="handleRightClick"
:api="getSupportRequestListApi" :api="getSupportRequestListApi"
:padding="24" :padding="24"
showFooterBtn :showFooterBtn="checkPermi('/supportApplication/start')"
footerBtnText="新建" footerBtnText="新建"
@handleFooterClick="handleFooterClick" @handleFooterClick="handleFooterClick"
> >
...@@ -52,7 +52,7 @@ import { storeToRefs } from 'pinia' ...@@ -52,7 +52,7 @@ import { storeToRefs } from 'pinia'
import { onUnload } from '@dcloudio/uni-app' import { onUnload } from '@dcloudio/uni-app'
import { getSupportRequestListApi } from 'mocp/api/support-application' import { getSupportRequestListApi } from 'mocp/api/support-application'
import useSupportApplicationStore from 'mocp/store/support-application' import useSupportApplicationStore from 'mocp/store/support-application'
import { getAirlineSelect } from 'mocp/utils/permission' import { checkPermi, getAirlineSelect } from 'mocp/utils/permission'
//跳转 //跳转
const supportApplicationStore = useSupportApplicationStore() const supportApplicationStore = useSupportApplicationStore()
......
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
:tabList="tabList" :tabList="tabList"
tabValueField="state" tabValueField="state"
tabsWidth="50%" tabsWidth="50%"
chooseDataType="checkbox" :chooseDataType="checkPermi('/workbench/edit') ? 'checkbox' : ''"
@handleChooseData="handleChooseData" @handleChooseData="handleChooseData"
localPaging localPaging
alone alone
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
<supportedTaskItem :item="item" /> <supportedTaskItem :item="item" />
</template> </template>
<template #bottom> <template #bottom v-if="checkPermi('/workbench/edit')">
<view class="footer-btn"> <view class="footer-btn">
<up-row gutter="10"> <up-row gutter="10">
<up-col span="6"> <up-col span="6">
...@@ -44,6 +44,7 @@ import supportedTaskItem from './components/supportedTaskItem.vue' ...@@ -44,6 +44,7 @@ import supportedTaskItem from './components/supportedTaskItem.vue'
import { followAcTagAll } from 'mocp/utils/getFlightList' import { followAcTagAll } from 'mocp/utils/getFlightList'
import { orderBy } from 'lodash' import { orderBy } from 'lodash'
import Day from 'mocp/utils/dayjs' import Day from 'mocp/utils/dayjs'
import { checkPermi } from 'mocp/utils/permission'
const paging = ref(null) const paging = ref(null)
const showAction = ref(false) const showAction = ref(false)
......
...@@ -13,7 +13,7 @@ ...@@ -13,7 +13,7 @@
@handleRightClick="handleRightClick" @handleRightClick="handleRightClick"
:api="unplanApplyListApi" :api="unplanApplyListApi"
:padding="24" :padding="24"
showFooterBtn :showFooterBtn="checkPermi('/noplan/edit')"
footerBtnText="新增申请" footerBtnText="新增申请"
@handleFooterClick="handleFooterClick" @handleFooterClick="handleFooterClick"
> >
...@@ -57,6 +57,7 @@ import { getParamNameByValue } from 'mocp/hooks/use-params/useParams' ...@@ -57,6 +57,7 @@ import { getParamNameByValue } from 'mocp/hooks/use-params/useParams'
import { timeStampFormat } from 'mocp/utils/tool' import { timeStampFormat } from 'mocp/utils/tool'
import { unplanApplyListApi } from 'mocp/api/unplanApply' import { unplanApplyListApi } from 'mocp/api/unplanApply'
import useUnplanApplyStore from 'mocp/store/unplanApply' import useUnplanApplyStore from 'mocp/store/unplanApply'
import { checkPermi } from 'mocp/utils/permission'
//跳转 //跳转
const unplanApplyStore = useUnplanApplyStore() const unplanApplyStore = useUnplanApplyStore()
......
...@@ -13,8 +13,8 @@ ...@@ -13,8 +13,8 @@
@handleRightClick="handleRightClick" @handleRightClick="handleRightClick"
:api="unplanWarningListApi" :api="unplanWarningListApi"
:padding="24" :padding="24"
showFooterBtn :showFooterBtn="checkPermi('/noplan/edit')"
footerBtnText="新增申请" footerBtnText="新增预警"
@handleFooterClick="handleFooterClick" @handleFooterClick="handleFooterClick"
> >
<template #default="{ item }"> <template #default="{ item }">
...@@ -57,6 +57,7 @@ import { unplanWarningListApi } from 'mocp/api/unplanWarning' ...@@ -57,6 +57,7 @@ import { unplanWarningListApi } from 'mocp/api/unplanWarning'
import useUnplanWarningStore from 'mocp/store/unplanWarning' import useUnplanWarningStore from 'mocp/store/unplanWarning'
import { getParamNameByValue } from 'mocp/hooks/use-params/useParams' import { getParamNameByValue } from 'mocp/hooks/use-params/useParams'
import { timeStampFormat } from 'mocp/utils/tool' import { timeStampFormat } from 'mocp/utils/tool'
import { checkPermi } from 'mocp/utils/permission'
//跳转 //跳转
const unplanWarningStore = useUnplanWarningStore() const unplanWarningStore = useUnplanWarningStore()
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment