Bladeren bron

feat: 需求

master
yxhc 1 maand geleden
bovenliggende
commit
e1e5b6cdea
9 gewijzigde bestanden met toevoegingen van 11595 en 54 verwijderingen
  1. +11479
    -0
      package-lock.json
  2. +22
    -0
      src/directive/hasRole.js
  3. +4
    -0
      src/directive/index.js
  4. +27
    -0
      src/directive/permissions.js
  5. +2
    -1
      src/pages/projectCollection/projectCollectionEnter/components/userDialog.vue
  6. +28
    -21
      src/pages/projectStoreManage/components/planList.vue
  7. +1
    -0
      src/pages/systemManage/userManage/index.vue
  8. +31
    -31
      src/pages/toDoCenter/handleDuringExamine/index.vue
  9. +1
    -1
      vite.config.js

+ 11479
- 0
package-lock.json
Diff onderdrukt omdat het te groot bestand
Bestand weergeven


+ 22
- 0
src/directive/hasRole.js Bestand weergeven

@@ -0,0 +1,22 @@
/**
* v-hasRole 角色权限处理
*/
import { useUserStore } from '@/store/modules/user'

export default {
mounted (el, binding, vnode) {
const { value } = binding
const roles = useUserStore().userInfo.userRoleInfoList
if (value && value instanceof Array && value.length > 0) {
const roleFlag = value
const hasRole = roles.some(role => {
return roleFlag.includes(role.name)
})
if (!hasRole) {
el.parentNode && el.parentNode.removeChild(el)
}
} else {
throw new Error(`请设置角色权限标签值`)
}
}
}

+ 4
- 0
src/directive/index.js Bestand weergeven

@@ -1,4 +1,6 @@
import waterMarker from './waterMarker'
import hasRole from './hasRole'

const directivesList = {
// 这里放指令
waterMarker // 水印指令
@@ -9,6 +11,8 @@ const directives = {
// 注册自定义指令
app.directive(key, directivesList[key])
})

app.directive('hasRole', hasRole)
}
}



+ 27
- 0
src/directive/permissions.js Bestand weergeven

@@ -0,0 +1,27 @@
/**
* v-hasPermi 操作权限处理
*/

import useUserStore from '@/store/modules/user'

export default {
mounted (el, binding, vnode) {
const { value } = binding
const all_permission = '*:*:*'
const permissions = useUserStore().roleList

if (value && value instanceof Array && value.length > 0) {
const permissionFlag = value

const hasPermissions = permissions.some(permission => {
return all_permission === permission || permissionFlag.includes(permission)
})

if (!hasPermissions) {
el.parentNode && el.parentNode.removeChild(el)
}
} else {
throw new Error(`请设置操作权限标签值`)
}
}
}

+ 2
- 1
src/pages/projectCollection/projectCollectionEnter/components/userDialog.vue Bestand weergeven

@@ -61,7 +61,8 @@ const props = defineProps({
const res = await userList({
...pageParams,
...searchForm,
...props.params
...props.params,
scene: 1
})
total.value = res.data.total
tableData.value = res.data.records || []


+ 28
- 21
src/pages/projectStoreManage/components/planList.vue Bestand weergeven

@@ -4,7 +4,6 @@ import { useRouter } from 'vue-router'
import { onMounted, reactive, ref, h, getCurrentInstance, watch } from 'vue'
import { fileFormatVerification, handleFileSuccess, handleFileError } from '@/utils/uploadAction.js'
import {
defer,
list,
startDeclare,
exportAnnualPlanEditTable, projectExcel
@@ -15,6 +14,7 @@ import ImportProjectDialog from './importProjectDialog.vue'
import ExportFieldDialog from './exportFieldDialog.vue'
import useExportExc from '@/utils/useExportExc'
import { getIsShowRegionTree, getTreeParams } from '@/utils/getIsShowRegionTree'

const { proxy } = getCurrentInstance(),
props = defineProps({
isTemporaryAugment: {
@@ -146,7 +146,7 @@ const { proxy } = getCurrentInstance(),
createOnMin: searchForm.times?.[0] || undefined,
createOnMax: searchForm.times?.[1] || undefined,
regionCode: areaCode.value || undefined,
isTemporaryAugment: props.isTemporaryAugment, // 非补增
// isTemporaryAugment: props.isTemporaryAugment, // 非补增
times: undefined
})
data.value = res.data.records
@@ -255,17 +255,17 @@ const { proxy } = getCurrentInstance(),
router.push({ name: 'planEdit', query: { id: data.projectId }})
},
// 暂缓
projectDefer = (data) => {
proxy.$messageBox
.confirm(`是否暂缓【${data.projectName}】?`, '提示!', {
type: 'warning'
})
.then(async () => {
await defer({ projectId: data.projectId })
proxy.$message.success('暂缓成功!')
getTableData()
})
},
// projectDefer = (data) => {
// proxy.$messageBox
// .confirm(`是否暂缓【${data.projectName}】?`, '提示!', {
// type: 'warning'
// })
// .then(async () => {
// await defer({ projectId: data.projectId })
// proxy.$message.success('暂缓成功!')
// getTableData()
// })
// },
// 立项批复
approvalDialogData = reactive({
visible: false,
@@ -438,10 +438,12 @@ onMounted(async () => {
<el-button
type="primary"
@click="search"
>查询</el-button>
>查询
</el-button>
<el-button
@click="reset"
>重置</el-button>
>重置
</el-button>
</div>
</el-form-item>
</el-col>
@@ -457,7 +459,8 @@ onMounted(async () => {
type="primary"
size="small"
@click="startPlanDeclare"
>{{ areaCode==='331181'?'列入年度计划':'开启方案申报' }}</el-button>
>{{ areaCode === '331181' ? '列入年度计划' : '开启方案申报' }}
</el-button>
</div>
<div class="flex items-center relative">
<!-- <el-button
@@ -490,7 +493,8 @@ onMounted(async () => {
type="primary"
plain
size="small"
>导入</el-button>
>导入
</el-button>
<!-- <template #tip>
<div class="el-upload__tip">支持.xlsx、.xls</div>
</template> -->
@@ -501,13 +505,15 @@ onMounted(async () => {
plain
size="small"
@click="exportEdit"
>导出编辑表</el-button>
>导出编辑表
</el-button>
<el-button
type="primary"
plain
size="small"
@click="showExportFieldDialog"
>导出</el-button>
>导出
</el-button>
</div>
</div>
</template>
@@ -521,8 +527,8 @@ onMounted(async () => {
@get-table-data="getTableData"
>
<template #action="{ scope }">
<a v-if="scope.row.status===10010" @click="toEdit(scope.row)">编辑</a>
<a v-if="scope.row.status===10010" @click="projectDefer(scope.row)">暂缓</a>
<a v-if="scope.row.status===10010" v-hasRole="['超级管理员']" @click="toEdit(scope.row)">编辑</a>
<!-- <a v-if="scope.row.status===10010" @click="projectDefer(scope.row)">暂缓</a>-->
<a v-if="scope.row.status===10014" @click="showApprovalDialog(scope.row)">立项批复</a>
<a @click="router.push({name:'projectDetail',query:{id:scope.row.projectId}})">详情</a>
</template>
@@ -547,4 +553,5 @@ onMounted(async () => {
@close="closeExportFieldDialog"
@export-project="exportProject"
/>

</template>

+ 1
- 0
src/pages/systemManage/userManage/index.vue Bestand weergeven

@@ -86,6 +86,7 @@ const { proxy } = getCurrentInstance(),
const res = await userList({
...pageParams,
...searchForm,
scene: 2,
userRoleList: [{ id: searchForm.userRoleList }]
// regionId: import.meta.env.MODE === 'production' ? treeInfo.value && treeInfo.value.region || undefined : '330102'
})


+ 31
- 31
src/pages/toDoCenter/handleDuringExamine/index.vue Bestand weergeven

@@ -372,37 +372,37 @@ onMounted(async () => {
>驳回
</el-button>
<el-button @click="router.go(-1)">返回</el-button>
<el-dropdown
v-if="((flowData.canPass||flowData.canReject||flowData.canSeal)&&(flowData.processProgressVo.processDefName!=='申请延期审批流程')&&flowData.processProgressVo.processDefName!=='申请借阅审批流程')||isWithDraw()"
size="small"
type="primary"
class="ml-6"
>
<span class="el-dropdown-link">
<span class="flex items-center more">
<svg-icon name="moreIcon" class="mr-8" />
<span>更多</span>
</span>
</span>
<template #dropdown>
<el-dropdown-menu>
<el-dropdown-item v-if="isWithDraw()">
<el-button
plain
type="primary"
@click="withdraw"
>撤回</el-button>
</el-dropdown-item>
<el-dropdown-item v-if="(flowData.canPass||flowData.canReject||flowData.canSeal)&&flowData.processProgressVo.processDefName!=='申请延期审批流程'&&flowData.processProgressVo.processDefName!=='申请借阅审批流程'">
<el-button
plain
type="danger"
@click="showDialog('退回','BACK')"
>退回</el-button>
</el-dropdown-item>
</el-dropdown-menu>
</template>
</el-dropdown>
<!-- <el-dropdown-->
<!-- v-if="((flowData.canPass||flowData.canReject||flowData.canSeal)&&(flowData.processProgressVo.processDefName!=='申请延期审批流程')&&flowData.processProgressVo.processDefName!=='申请借阅审批流程')||isWithDraw()"-->
<!-- size="small"-->
<!-- type="primary"-->
<!-- class="ml-6"-->
<!-- >-->
<!-- <span class="el-dropdown-link">-->
<!-- <span class="flex items-center more">-->
<!-- <svg-icon name="moreIcon" class="mr-8" />-->
<!-- <span>更多</span>-->
<!-- </span>-->
<!-- </span>-->
<!-- <template #dropdown>-->
<!-- <el-dropdown-menu>-->
<!-- <el-dropdown-item v-if="isWithDraw()">-->
<!-- <el-button-->
<!-- plain-->
<!-- type="primary"-->
<!-- @click="withdraw"-->
<!-- >撤回</el-button>-->
<!-- </el-dropdown-item>-->
<!-- <el-dropdown-item v-if="(flowData.canPass||flowData.canReject||flowData.canSeal)&&flowData.processProgressVo.processDefName!=='申请延期审批流程'&&flowData.processProgressVo.processDefName!=='申请借阅审批流程'">-->
<!-- <el-button-->
<!-- plain-->
<!-- type="danger"-->
<!-- @click="showDialog('退回','BACK')"-->
<!-- >退回</el-button>-->
<!-- </el-dropdown-item>-->
<!-- </el-dropdown-menu>-->
<!-- </template>-->
<!-- </el-dropdown>-->
</div>
</div>
</div>


+ 1
- 1
vite.config.js Bestand weergeven

@@ -46,7 +46,7 @@ export default defineConfig(() => {
proxy: {
'/pm': {
// 后台地址
target: 'http://120.26.44.207:38888',
target: 'http://121.199.28.40:9089',
changeOrigin: true
}
}


Laden…
Annuleren
Opslaan