This commit is contained in:
guochunsi
2026-01-30 16:29:15 +08:00
parent 53f71066f3
commit c6da6e286f
70 changed files with 688 additions and 519 deletions

View File

@@ -41,14 +41,13 @@ const props = withDefaults(defineProps<Props>(), {
emptyText: '-'
})
// 根据 state 值查找对应的配置
// 根据 state 值查找对应的配置(统一转字符串比较,兼容数字 10 与字符串 '10'
const currentOption = computed(() => {
if (!props.state && props.state !== 0 && props.state !== '0') {
if (props.state == null || props.state === '') {
return null
}
return props.options.find(option => {
return String(option.value) === String(props.state)
}) || null
const stateStr = String(props.state)
return props.options.find(option => String(option.value) === stateStr) || null
})
</script>

View File

@@ -37,13 +37,13 @@ const props = withDefaults(defineProps<Props>(), {
// 默认的类型映射(只使用字符串键)
const defaultTypeMap: Record<string, { type: string; effect: string }> = {
'1': { type: 'warning', effect: 'dark' },
'1': { type: 'danger', effect: 'dark' },
'0': { type: 'primary', effect: 'light' }
}
// 默认的颜色映射(只使用字符串键)
const defaultColorMap: Record<string, string> = {
'1': 'var(--el-color-warning)',
'1': 'var(--el-color-danger)',
'0': 'var(--el-color-primary)'
}

View File

@@ -149,7 +149,8 @@ import type { StateOption } from '/@/components/AuditState/index.vue'
export const PROFESSIONAL_AUDIT_STATE_OPTIONS: StateOption[] = [
{ value: '1', label: '已通过', type: 'success', icon: 'fa-solid fa-circle-check', effect: 'dark' },
{ value: '-2', label: '已驳回', type: 'danger', icon: 'fa-solid fa-circle-xmark', effect: 'dark' },
{ value: '0', label: '待审核', type: 'warning', icon: 'fa-regular fa-clock', effect: 'light' }
{ value: '0', label: '待审核', type: 'warning', icon: 'fa-regular fa-clock', effect: 'light' },
{ value: '10', label: '部门通过', type: 'warning', icon: 'fa-regular fa-clock' ,effect:"dark" }
];
/**

30
src/hooks/auth.ts Normal file
View File

@@ -0,0 +1,30 @@
import { storeToRefs } from 'pinia'
import { useUserInfo } from '/@/stores/userInfo'
import { judementSameArr } from '/@/utils/arrayOperation'
/**
* 权限 composable用于「无权限即无节点」场景v-if + hasAuth替代 v-auth
* 多页面复用,保证响应式(权限变更后模板会更新)
*
* @example
* const { hasAuth, hasAuths, hasAuthAll } = useAuth()
* // 模板v-if="hasAuth('xxx')" v-if="hasAuths(['a','b'])" v-if="hasAuthAll(['a','b'])"
*/
export function useAuth() {
const { userInfos } = storeToRefs(useUserInfo())
const list = () => userInfos.value?.authBtnList ?? []
/** 单个权限:有该权限返回 true */
const hasAuth = (code: string) => list().includes(code)
/** 多个权限满足其一即返回 true */
const hasAuths = (codes: string[]) => {
const btnList = list()
return codes.some((c) => btnList.includes(c))
}
/** 多个权限全部满足才返回 true */
const hasAuthAll = (codes: string[]) => judementSameArr(codes, list())
return { hasAuth, hasAuths, hasAuthAll }
}

View File

@@ -5,10 +5,10 @@
<el-row>
<div class="mb15" style="width: 100%;">
<el-button
v-if="hasAuth('professional_professionalacademicqualificationsconfig_add')"
type="primary"
icon="FolderAdd"
@click="handleAdd"
v-auth="'professional_professionalacademicqualificationsconfig_add'">
@click="handleAdd">
</el-button>
</div>
</el-row>
@@ -18,6 +18,7 @@
:data="state.dataList"
v-loading="state.loading"
border
row-key="id"
:cell-style="tableStyle.cellStyle"
:header-cell-style="tableStyle.headerCellStyle"
>
@@ -34,14 +35,14 @@
<el-table-column label="操作" width="150" align="center" fixed="right">
<template #default="scope">
<el-button
v-auth="'professional_professionalacademicqualificationsconfig_edit'"
v-if="hasAuth('professional_professionalacademicqualificationsconfig_edit')"
icon="edit-pen"
link
type="primary"
@click="handleEdit(scope.row)">修改
</el-button>
<el-button
v-auth="'professional_professionalacademicqualificationsconfig_del'"
v-if="hasAuth('professional_professionalacademicqualificationsconfig_del')"
icon="delete"
link
type="danger"
@@ -114,12 +115,13 @@
<script setup lang="ts">
import { ref, reactive } from 'vue'
import { useAuth } from '/@/hooks/auth'
import { BasicTableProps, useTable } from '/@/hooks/table'
import { useMessage } from '/@/hooks/message'
import { useMessageBox } from '/@/hooks/message'
import { fetchList, addObj, putObj, delObj } from '/@/api/professional/rsbase/academicqualificationsconfig'
const { hasAuth } = useAuth()
// 消息提示 hooks
const message = useMessage()
const messageBox = useMessageBox()

View File

@@ -24,10 +24,10 @@
<el-row>
<div class="mb15" style="width: 100%;">
<el-button
v-if="hasAuth('professional_outercompany_add')"
type="primary"
icon="FolderAdd"
@click="handleAdd"
v-auth="'professional_outercompany_add'">
@click="handleAdd">
</el-button>
</div>
</el-row>
@@ -38,6 +38,7 @@
:data="state.dataList"
v-loading="state.loading"
border
row-key="id"
:cell-style="tableStyle.cellStyle"
:header-cell-style="tableStyle.headerCellStyle"
>
@@ -59,14 +60,14 @@
<el-table-column label="操作" min-width="150" align="center" fixed="right">
<template #default="scope">
<el-button
v-auth="'professional_outercompany_edit'"
v-if="hasAuth('professional_outercompany_edit')"
icon="edit-pen"
link
type="primary"
@click="handleEdit(scope.row)">修改
</el-button>
<el-button
v-auth="'professional_outercompany_del'"
v-if="hasAuth('professional_outercompany_del')"
icon="delete"
link
type="danger"
@@ -141,12 +142,13 @@
<script setup lang="ts">
import { ref, reactive } from 'vue'
import { useAuth } from '/@/hooks/auth'
import { BasicTableProps, useTable } from '/@/hooks/table'
import { useMessage } from '/@/hooks/message'
import { useMessageBox } from '/@/hooks/message'
import { fetchList, addObj, putObj, delObj, getObj } from '/@/api/professional/stayschool/outercompany'
const { hasAuth } = useAuth()
// 消息提示 hooks
const message = useMessage()
const messageBox = useMessageBox()

View File

@@ -24,10 +24,10 @@
<el-row>
<div class="mb15" style="width: 100%;">
<el-button
v-if="hasAuth('professional_outercompany_add')"
type="primary"
icon="FolderAdd"
@click="handleAdd"
v-auth="'professional_outercompany_add'">
@click="handleAdd">
</el-button>
<!-- <right-toolbar
v-model:showSearch="showSearch"
@@ -44,6 +44,7 @@
:data="state.dataList"
v-loading="state.loading"
border
row-key="id"
:cell-style="tableStyle.cellStyle"
:header-cell-style="tableStyle.headerCellStyle"
>
@@ -65,14 +66,14 @@
<el-table-column label="操作" min-width="150" align="center" fixed="right">
<template #default="scope">
<el-button
v-auth="'professional_outercompany_edit'"
v-if="hasAuth('professional_outercompany_edit')"
icon="edit-pen"
link
type="primary"
@click="handleEdit(scope.row)">修改
</el-button>
<el-button
v-auth="'professional_outercompany_del'"
v-if="hasAuth('professional_outercompany_del')"
icon="delete"
link
type="danger"
@@ -147,12 +148,13 @@
<script setup lang="ts">
import { ref, reactive } from 'vue'
import { useAuth } from '/@/hooks/auth'
import { BasicTableProps, useTable } from '/@/hooks/table'
import { useMessage } from '/@/hooks/message'
import { useMessageBox } from '/@/hooks/message'
import { fetchList, addObj, putObj, delObj, getObj } from '/@/api/professional/stayschool/outercompany'
const { hasAuth } = useAuth()
// 消息提示 hooks
const message = useMessage()
const messageBox = useMessageBox()

View File

@@ -26,6 +26,7 @@
:data="state.dataList"
v-loading="state.loading"
border
row-key="id"
:cell-style="tableStyle.cellStyle"
:header-cell-style="tableStyle.headerCellStyle"
>
@@ -48,14 +49,14 @@
<!-- <el-table-column label="操作" width="150" align="center" fixed="right">
<template #default="scope">
<el-button
v-auth="'professional_outercompany_edit'"
v-if="hasAuth('professional_outercompany_edit')"
icon="edit-pen"
text
type="primary"
@click="handleEdit(scope.row)">修改
</el-button>
<el-button
v-auth="'professional_outercompany_del'"
v-if="hasAuth('professional_outercompany_del')"
icon="delete"
text
type="danger"

View File

@@ -11,7 +11,7 @@
ref="formRef"
:model="formData"
:rules="formRules"
label-width="120px"
label-width="100px"
class="form-content"
>
<el-row :gutter="20">
@@ -22,7 +22,6 @@
filterable
clearable
placeholder="请选择单位"
style="width: 100%"
>
<el-option
v-for="item in companyList"
@@ -107,7 +106,6 @@
v-model="formData.inoutFlag"
clearable
placeholder="请选择"
style="width: 100%"
>
<el-option
v-for="item in yesNoDict"

View File

@@ -11,7 +11,7 @@
ref="formRef"
:model="formData"
:rules="formRules"
label-width="120px"
label-width="100px"
class="form-content"
>
<el-row :gutter="20">
@@ -22,7 +22,6 @@
filterable
clearable
placeholder="请选择班级"
style="width: 100%"
>
<el-option
v-for="item in companyList"
@@ -86,7 +85,6 @@
v-model="formData.inoutFlag"
clearable
placeholder="请选择"
style="width: 100%"
>
<el-option
v-for="item in yesNoDict"

View File

@@ -72,10 +72,10 @@
<el-row>
<div class="mb15">
<el-button
v-if="hasAuth('professional_outercompanyemployee_add')"
type="primary"
icon="FolderAdd"
@click="handleAdd"
v-auth="'professional_outercompanyemployee_add'">
@click="handleAdd">
</el-button>
<el-button
type="primary"
@@ -108,6 +108,7 @@
<el-table
ref="tableRef"
:data="state.dataList"
row-key="id"
v-loading="state.loading"
border
:cell-style="tableStyle.cellStyle"
@@ -157,21 +158,21 @@
<el-table-column label="操作" width="250" align="center" fixed="right">
<template #default="scope">
<el-button
v-auth="'professional_outercompanyemployee_edit'"
v-if="hasAuth('professional_outercompanyemployee_edit')"
icon="edit-pen"
link
type="primary"
@click="handleEdit(scope.row)">修改
</el-button>
<el-button
v-auth="'professional_outercompanyemployee_reset_pw'"
v-if="hasAuth('professional_outercompanyemployee_reset_pw')"
icon="RefreshLeft"
link
type="primary"
@click="resetPassword(scope.row)">重置密码
</el-button>
<!-- <el-button
v-auth="'professional_outercompanyemployee_del'"
v-if="hasAuth('professional_outercompanyemployee_del')"
icon="delete"
link
type="primary"
@@ -237,6 +238,7 @@
<script setup lang="ts">
import { ref, reactive, onMounted } from 'vue'
import { BasicTableProps, useTable } from '/@/hooks/table'
import { useAuth } from '/@/hooks/auth'
import { useMessage } from '/@/hooks/message'
import { useMessageBox } from '/@/hooks/message'
import { useDict } from '/@/hooks/dict'
@@ -253,6 +255,9 @@ import {
import { getList as getCompanyList } from '/@/api/professional/stayschool/outercompany'
const FormDialog = defineAsyncComponent(() => import('./form.vue'))
// 无权限即无节点
const { hasAuth } = useAuth()
// 消息提示 hooks
const message = useMessage()
const messageBox = useMessageBox()
@@ -441,14 +446,14 @@ const batchDelect = () => {
// 重置密码
const resetPassword = (row: any) => {
messageBox.confirm('是否确定重置密码?', '提示').then(async () => {
messageBox.confirm('是否确定重置密码?').then(async () => {
try {
const response = await resetPassWord(row)
const pw = response.data?.data
const pw = response.data
if (!validateNull(pw)) {
messageBox.alert('重置后密码为: ' + pw, '重置密码')
messageBox.info('重置后密码为: ' + pw)
} else {
messageBox.alert('系统繁忙,请重试', '重置密码')
messageBox.error('系统繁忙,请重试')
}
} catch (error) {
// 重置密码失败

View File

@@ -78,10 +78,10 @@
<el-row>
<div class="mb15" style="width: 100%; position: relative;">
<el-button
v-if="hasAuth('professional_outercompanyemployee_add')"
type="primary"
icon="FolderAdd"
@click="handleAdd"
v-auth="'professional_outercompanyemployee_add'"
>
</el-button>
@@ -127,6 +127,7 @@
<el-table
ref="tableRef"
:data="state.dataList"
row-key="id"
v-loading="state.loading"
border
:cell-style="tableStyle.cellStyle"
@@ -148,7 +149,13 @@
<el-table-column prop="inoutFlag" label="允许进出" width="100" align="center">
<template #default="scope">
<el-tag v-if="scope.row.inoutFlag">{{ getDictLabel(scope.row.inoutFlag) }}</el-tag>
<el-tag
v-if="scope.row.inoutFlag"
:type="scope.row.inoutFlag === '1' ? 'success' : 'info'"
effect="plain"
>
{{ getDictLabel(scope.row.inoutFlag) }}
</el-tag>
<span v-else>-</span>
</template>
</el-table-column>
@@ -171,21 +178,21 @@
<el-table-column label="操作" width="250" align="center" fixed="right">
<template #default="scope">
<el-button
v-auth="'professional_outercompanyemployee_edit'"
v-if="hasAuth('professional_outercompanyemployee_edit')"
icon="edit-pen"
link
type="primary"
@click="handleEdit(scope.row)">修改
</el-button>
<el-button
v-auth="'professional_outercompanyemployee_reset_pw'"
v-if="hasAuth('professional_outercompanyemployee_reset_pw')"
icon="RefreshLeft"
link
type="primary"
@click="resetPassword(scope.row)">重置密码
</el-button>
<!-- <el-button
v-auth="'professional_outercompanyemployee_del'"
v-if="hasAuth('professional_outercompanyemployee_del')"
icon="delete"
link
type="primary"
@@ -252,6 +259,7 @@
<script setup lang="ts">
import { ref, reactive, onMounted } from 'vue'
import { BasicTableProps, useTable } from '/@/hooks/table'
import { useAuth } from '/@/hooks/auth'
import { useMessage } from '/@/hooks/message'
import { useMessageBox } from '/@/hooks/message'
import { useDict } from '/@/hooks/dict'
@@ -270,6 +278,9 @@ import {
import { getList as getCompanyList } from '/@/api/professional/stayschool/outercompany'
const FormDialog = defineAsyncComponent(() => import('./form.vue'))
// 无权限即无节点
const { hasAuth } = useAuth()
// 消息提示 hooks
const message = useMessage()
const messageBox = useMessageBox()

View File

@@ -78,10 +78,10 @@
<el-row>
<div class="mb15" style="width: 100%;">
<el-button
v-if="hasAuth('professional_outercompanyemployee_add')"
type="primary"
icon="FolderAdd"
@click="handleAdd"
v-auth="'professional_outercompanyemployee_add'"
>
</el-button>
@@ -127,6 +127,7 @@
<el-table
ref="tableRef"
:data="state.dataList"
row-key="id"
v-loading="state.loading"
border
:cell-style="tableStyle.cellStyle"
@@ -148,7 +149,13 @@
<el-table-column prop="inoutFlag" label="允许进出" width="100" align="center">
<template #default="scope">
<el-tag v-if="scope.row.inoutFlag">{{ getDictLabel(scope.row.inoutFlag) }}</el-tag>
<el-tag
v-if="scope.row.inoutFlag"
:type="scope.row.inoutFlag === '1' ? 'success' : 'info'"
effect="plain"
>
{{ getDictLabel(scope.row.inoutFlag) }}
</el-tag>
<span v-else>-</span>
</template>
</el-table-column>
@@ -171,21 +178,21 @@
<el-table-column label="操作" width="250" align="center" fixed="right">
<template #default="scope">
<el-button
v-auth="'professional_outercompanyemployee_edit'"
v-if="hasAuth('professional_outercompanyemployee_edit')"
icon="edit-pen"
link
type="primary"
@click="handleEdit(scope.row)">修改
</el-button>
<el-button
v-auth="'professional_outercompanyemployee_reset_pw'"
v-if="hasAuth('professional_outercompanyemployee_reset_pw')"
icon="RefreshLeft"
link
type="primary"
@click="resetPassword(scope.row)">重置密码
</el-button>
<!-- <el-button
v-auth="'professional_outercompanyemployee_del'"
v-if="hasAuth('professional_outercompanyemployee_del')"
icon="delete"
link
type="primary"
@@ -252,6 +259,7 @@
<script setup lang="ts">
import { ref, reactive, onMounted } from 'vue'
import { BasicTableProps, useTable } from '/@/hooks/table'
import { useAuth } from '/@/hooks/auth'
import { useMessage } from '/@/hooks/message'
import { useMessageBox } from '/@/hooks/message'
import { useDict } from '/@/hooks/dict'
@@ -272,6 +280,9 @@ import { getList as getCompanyList } from '/@/api/professional/stayschool/outerc
import { defineAsyncComponent } from 'vue';
const FormTrain = defineAsyncComponent(() => import('./formTrain.vue'))
// 无权限即无节点
const { hasAuth } = useAuth()
// 消息提示 hooks
const message = useMessage()
const messageBox = useMessageBox()

View File

@@ -5,10 +5,10 @@
<el-row>
<div class="mb15" style="width: 100%;">
<el-button
v-if="hasAuth('professional_professionalacademicdegreeconfig_add')"
type="primary"
icon="FolderAdd"
@click="handleAdd"
v-auth="'professional_professionalacademicdegreeconfig_add'">
@click="handleAdd">
</el-button>
</div>
</el-row>
@@ -19,6 +19,7 @@
:data="state.dataList"
v-loading="state.loading"
border
row-key="id"
:cell-style="tableStyle.cellStyle"
:header-cell-style="tableStyle.headerCellStyle"
>
@@ -35,14 +36,14 @@
<el-table-column label="操作" width="150" align="center" fixed="right">
<template #default="scope">
<el-button
v-auth="'professional_professionalacademicdegreeconfig_edit'"
v-if="hasAuth('professional_professionalacademicdegreeconfig_edit')"
icon="edit-pen"
link
type="primary"
@click="handleEdit(scope.row)">修改
</el-button>
<el-button
v-auth="'professional_professionalacademicdegreeconfig_del'"
v-if="hasAuth('professional_professionalacademicdegreeconfig_del')"
icon="delete"
link
type="danger"
@@ -115,11 +116,13 @@
<script setup lang="ts">
import { ref, reactive } from 'vue'
import { useAuth } from '/@/hooks/auth'
import { BasicTableProps, useTable } from '/@/hooks/table'
import { useMessage } from '/@/hooks/message'
import { useMessageBox } from '/@/hooks/message'
import { fetchList, addObj, putObj, delObj } from '/@/api/professional/rsbase/professionalacademicdegreeconfig'
const { hasAuth } = useAuth()
// 消息提示 hooks
const message = useMessage()
const messageBox = useMessageBox()

View File

@@ -5,10 +5,10 @@
<el-row>
<div class="mb15" style="width: 100%;">
<el-button
v-if="hasAuth('professional_professionalacademiceducationtypeconfig_add')"
type="primary"
icon="FolderAdd"
@click="handleAdd"
v-auth="'professional_professionalacademiceducationtypeconfig_add'">
@click="handleAdd">
</el-button>
</div>
</el-row>
@@ -19,6 +19,7 @@
:data="state.dataList"
v-loading="state.loading"
border
row-key="id"
:cell-style="tableStyle.cellStyle"
:header-cell-style="tableStyle.headerCellStyle"
>
@@ -35,14 +36,14 @@
<el-table-column label="操作" width="150" align="center" fixed="right">
<template #default="scope">
<el-button
v-auth="'professional_professionalacademiceducationtypeconfig_edit'"
v-if="hasAuth('professional_professionalacademiceducationtypeconfig_edit')"
icon="edit-pen"
link
type="primary"
@click="handleEdit(scope.row)">修改
</el-button>
<el-button
v-auth="'professional_professionalacademiceducationtypeconfig_del'"
v-if="hasAuth('professional_professionalacademiceducationtypeconfig_del')"
icon="delete"
link
type="danger"
@@ -115,11 +116,13 @@
<script setup lang="ts">
import { ref, reactive } from 'vue'
import { useAuth } from '/@/hooks/auth'
import { BasicTableProps, useTable } from '/@/hooks/table'
import { useMessage } from '/@/hooks/message'
import { useMessageBox } from '/@/hooks/message'
import { fetchList, addObj, putObj, delObj } from '/@/api/professional/rsbase/professionalacademiceducationtypeconfig'
const { hasAuth } = useAuth()
// 消息提示 hooks
const message = useMessage()
const messageBox = useMessageBox()

View File

@@ -5,10 +5,10 @@
<el-row>
<div class="mb15" style="width: 100%;">
<el-button
v-if="hasAuth('professional_professionalatstation_add')"
type="primary"
icon="FolderAdd"
@click="handleAdd"
v-auth="'professional_professionalatstation_add'">
@click="handleAdd">
</el-button>
</div>
</el-row>
@@ -19,6 +19,7 @@
:data="state.dataList"
v-loading="state.loading"
border
row-key="id"
:cell-style="tableStyle.cellStyle"
:header-cell-style="tableStyle.headerCellStyle"
>
@@ -35,14 +36,14 @@
<el-table-column label="操作" width="150" align="center" fixed="right">
<template #default="scope">
<el-button
v-auth="'professional_professionalatstation_edit'"
v-if="hasAuth('professional_professionalatstation_edit')"
icon="edit-pen"
link
type="primary"
@click="handleEdit(scope.row)">修改
</el-button>
<el-button
v-auth="'professional_professionalatstation_del'"
v-if="hasAuth('professional_professionalatstation_del')"
icon="delete"
link
type="danger"
@@ -115,11 +116,13 @@
<script setup lang="ts">
import { ref, reactive } from 'vue'
import { useAuth } from '/@/hooks/auth'
import { BasicTableProps, useTable } from '/@/hooks/table'
import { useMessage } from '/@/hooks/message'
import { useMessageBox } from '/@/hooks/message'
import { fetchList, addObj, putObj, delObj } from '/@/api/professional/rsbase/professionalatstation'
const { hasAuth } = useAuth()
// 消息提示 hooks
const message = useMessage()
const messageBox = useMessageBox()

View File

@@ -5,10 +5,10 @@
<el-row>
<div class="mb15" style="width: 100%;">
<el-button
v-if="hasAuth('professional_professionalemploymentnature_add')"
type="primary"
icon="FolderAdd"
@click="handleAdd"
v-auth="'professional_professionalemploymentnature_add'">
@click="handleAdd">
</el-button>
</div>
</el-row>
@@ -19,6 +19,7 @@
:data="state.dataList"
v-loading="state.loading"
border
row-key="id"
:cell-style="tableStyle.cellStyle"
:header-cell-style="tableStyle.headerCellStyle"
>
@@ -35,14 +36,14 @@
<el-table-column label="操作" width="150" align="center" fixed="right">
<template #default="scope">
<el-button
v-auth="'professional_professionalemploymentnature_edit'"
v-if="hasAuth('professional_professionalemploymentnature_edit')"
icon="edit-pen"
link
type="primary"
@click="handleEdit(scope.row)">修改
</el-button>
<el-button
v-auth="'professional_professionalemploymentnature_del'"
v-if="hasAuth('professional_professionalemploymentnature_del')"
icon="delete"
link
type="danger"
@@ -115,11 +116,13 @@
<script setup lang="ts">
import { ref, reactive } from 'vue'
import { useAuth } from '/@/hooks/auth'
import { BasicTableProps, useTable } from '/@/hooks/table'
import { useMessage } from '/@/hooks/message'
import { useMessageBox } from '/@/hooks/message'
import { fetchList, addObj, putObj, delObj } from '/@/api/professional/rsbase/professionalemploymentnature'
const { hasAuth } = useAuth()
// 消息提示 hooks
const message = useMessage()
const messageBox = useMessageBox()

View File

@@ -5,10 +5,10 @@
<el-row>
<div class="mb15" style="width: 100%;">
<el-button
v-if="hasAuth('professional_professionalmajorstation_add')"
type="primary"
icon="FolderAdd"
@click="handleAdd"
v-auth="'professional_professionalmajorstation_add'">
@click="handleAdd">
</el-button>
</div>
</el-row>
@@ -19,6 +19,7 @@
:data="state.dataList"
v-loading="state.loading"
border
row-key="id"
:cell-style="tableStyle.cellStyle"
:header-cell-style="tableStyle.headerCellStyle"
>
@@ -35,14 +36,14 @@
<el-table-column label="操作" width="150" align="center" fixed="right">
<template #default="scope">
<el-button
v-auth="'professional_professionalmajorstation_edit'"
v-if="hasAuth('professional_professionalmajorstation_edit')"
icon="edit-pen"
link
type="primary"
@click="handleEdit(scope.row)">修改
</el-button>
<el-button
v-auth="'professional_professionalmajorstation_del'"
v-if="hasAuth('professional_professionalmajorstation_del')"
icon="delete"
link
type="danger"
@@ -115,11 +116,13 @@
<script setup lang="ts">
import { ref, reactive } from 'vue'
import { useAuth } from '/@/hooks/auth'
import { BasicTableProps, useTable } from '/@/hooks/table'
import { useMessage } from '/@/hooks/message'
import { useMessageBox } from '/@/hooks/message'
import { fetchList, addObj, putObj, delObj } from '/@/api/professional/rsbase/professionalmajorstation'
const { hasAuth } = useAuth()
// 消息提示 hooks
const message = useMessage()
const messageBox = useMessageBox()

View File

@@ -5,10 +5,10 @@
<el-row>
<div class="mb15" style="width: 100%;">
<el-button
v-if="hasAuth('professional_professionalpaperconfig_add')"
type="primary"
icon="FolderAdd"
@click="handleAdd"
v-auth="'professional_professionalpaperconfig_add'">
@click="handleAdd">
</el-button>
</div>
</el-row>
@@ -19,6 +19,7 @@
:data="state.dataList"
v-loading="state.loading"
border
row-key="id"
:cell-style="tableStyle.cellStyle"
:header-cell-style="tableStyle.headerCellStyle"
>
@@ -35,14 +36,14 @@
<el-table-column label="操作" width="150" align="center" fixed="right">
<template #default="scope">
<el-button
v-auth="'professional_professionalpaperconfig_edit'"
v-if="hasAuth('professional_professionalpaperconfig_edit')"
icon="edit-pen"
link
type="primary"
@click="handleEdit(scope.row)">修改
</el-button>
<el-button
v-auth="'professional_professionalpaperconfig_del'"
v-if="hasAuth('professional_professionalpaperconfig_del')"
icon="delete"
link
type="danger"
@@ -115,11 +116,13 @@
<script setup lang="ts">
import { ref, reactive } from 'vue'
import { useAuth } from '/@/hooks/auth'
import { BasicTableProps, useTable } from '/@/hooks/table'
import { useMessage } from '/@/hooks/message'
import { useMessageBox } from '/@/hooks/message'
import { fetchList, addObj, putObj, delObj } from '/@/api/professional/rsbase/professionalpaperconfig'
const { hasAuth } = useAuth()
// 消息提示 hooks
const message = useMessage()
const messageBox = useMessageBox()

View File

@@ -5,10 +5,10 @@
<el-row>
<div class="mb15" style="width: 100%;">
<el-button
v-if="hasAuth('professional_professionalpartybranch_add')"
type="primary"
icon="FolderAdd"
@click="handleAdd"
v-auth="'professional_professionalpartybranch_add'">
@click="handleAdd">
</el-button>
</div>
</el-row>
@@ -35,17 +35,17 @@
<el-table-column label="操作" width="150" align="center" fixed="right">
<template #default="scope">
<el-button
v-if="hasAuth('professional_professionalpartybranch_edit')"
type="primary"
link
icon="Edit"
v-auth="'professional_professionalpartybranch_edit'"
@click="handleEdit(scope.row)">编辑
icon="EditPen"
@click="handleEdit(scope.row)">修改
</el-button>
<el-button
v-if="hasAuth('professional_professionalpartybranch_del')"
type="danger"
link
icon="Delete"
v-auth="'professional_professionalpartybranch_del'"
@click="handleDel(scope.row)">删除
</el-button>
</template>
@@ -115,10 +115,14 @@
<script setup lang="ts">
import { ref, reactive } from 'vue'
import { BasicTableProps, useTable } from '/@/hooks/table'
import { useAuth } from '/@/hooks/auth'
import { useMessage } from '/@/hooks/message'
import { useMessageBox } from '/@/hooks/message'
import { fetchList, addObj, putObj, delObj } from '/@/api/professional/rsbase/professionalpartybranch'
// 无权限即无节点
const { hasAuth } = useAuth()
// 消息提示 hooks
const message = useMessage()
const messageBox = useMessageBox()

View File

@@ -5,10 +5,10 @@
<el-row>
<div class="mb15" style="width: 100%;">
<el-button
v-if="hasAuth('professional_professionalqualificationconfig_add')"
type="primary"
icon="FolderAdd"
@click="handleAdd"
v-auth="'professional_professionalqualificationconfig_add'">
@click="handleAdd">
</el-button>
</div>
</el-row>
@@ -19,6 +19,7 @@
:data="state.dataList"
v-loading="state.loading"
border
row-key="id"
:cell-style="tableStyle.cellStyle"
:header-cell-style="tableStyle.headerCellStyle"
>
@@ -35,14 +36,14 @@
<el-table-column label="操作" width="150" align="center" fixed="right">
<template #default="scope">
<el-button
v-auth="'professional_professionalqualificationconfig_edit'"
v-if="hasAuth('professional_professionalqualificationconfig_edit')"
icon="edit-pen"
link
type="primary"
@click="handleEdit(scope.row)">修改
</el-button>
<el-button
v-auth="'professional_professionalqualificationconfig_del'"
v-if="hasAuth('professional_professionalqualificationconfig_del')"
icon="delete"
link
type="danger"
@@ -115,11 +116,13 @@
<script setup lang="ts">
import { ref, reactive } from 'vue'
import { useAuth } from '/@/hooks/auth'
import { BasicTableProps, useTable } from '/@/hooks/table'
import { useMessage } from '/@/hooks/message'
import { useMessageBox } from '/@/hooks/message'
import { fetchList, addObj, putObj, delObj } from '/@/api/professional/rsbase/professionalqualificationconfig'
const { hasAuth } = useAuth()
// 消息提示 hooks
const message = useMessage()
const messageBox = useMessageBox()

View File

@@ -56,16 +56,16 @@
<el-row>
<div class="mb15" style="width: 100%;">
<el-button
v-if="hasAuth('professional_professionalqualificationrelation_add')"
type="primary"
icon="FolderAdd"
@click="handleAdd"
v-auth="'professional_professionalqualificationrelation_add'">
@click="handleAdd">
</el-button>
<el-button
v-if="hasAuth('professional_teacherbase_export')"
type="warning"
plain
icon="Download"
v-auth="'professional_teacherbase_export'"
@click="handleDownLoadWord"
:loading="exportLoading">导出信息
</el-button>
@@ -76,6 +76,7 @@
<el-table
ref="tableRef"
:data="state.dataList"
row-key="id"
v-loading="state.loading"
border
:cell-style="tableStyle.cellStyle"
@@ -127,47 +128,42 @@
<el-table-column label="操作" width="280" align="center" fixed="right">
<template #default="scope">
<el-button
v-auth="'professional_professionalqualificationrelation_edit'"
v-if="scope.row.state === '0' || scope.row.state === '-2'"
v-if="hasAuth('professional_professionalqualificationrelation_edit') && (scope.row.state === '0' || scope.row.state === '-2')"
type="primary"
link
icon="edit-pen"
@click="handleEdit(scope.row)">修改
</el-button>
<el-button
v-auth="'professional_professionalqualificationrelation_exam'"
v-if="scope.row.canExam"
v-if="hasAuth('professional_professionalqualificationrelation_exam') && scope.row.canExam"
type="success"
link
icon="CircleCheck"
@click="changeState(scope.row, 1)">通过
</el-button>
<el-button
v-auth="'professional_professionalqualificationrelation_exam'"
v-if="scope.row.canDeptExam"
type="success"
link
icon="CircleCheck"
@click="changeState(scope.row, 1)">部门通过
v-if="hasAuth('professional_professionalqualificationrelation_exam') && scope.row.canDeptExam"
type="success"
link
icon="CircleCheck"
@click="changeState(scope.row, 1)">部门通过
</el-button>
<el-button
v-auth="'professional_professionalqualificationrelation_exam'"
v-if="scope.row.canBack"
v-if="hasAuth('professional_professionalqualificationrelation_exam') && scope.row.canBack"
type="danger"
link
icon="CircleClose"
@click="changeState(scope.row, -2)">驳回
</el-button>
<el-button
v-auth="'professional_professionalqualificationrelation_exam'"
v-if="scope.row.canDeptBack"
type="danger"
link
icon="CircleClose"
@click="changeState(scope.row, -2)">部门驳回
v-if="hasAuth('professional_professionalqualificationrelation_exam') && scope.row.canDeptBack"
type="danger"
link
icon="CircleClose"
@click="changeState(scope.row, -2)">部门驳回
</el-button>
<el-button
v-auth="'professional_professionalqualificationrelation_del'"
v-if="hasAuth('professional_professionalqualificationrelation_del')"
type="danger"
link
icon="delete"
@@ -203,6 +199,7 @@
<script setup lang="ts">
import { ref, reactive, onMounted, nextTick } from 'vue'
import { BasicTableProps, useTable } from '/@/hooks/table'
import { useAuth } from '/@/hooks/auth'
import { useMessage } from '/@/hooks/message'
import { useMessageBox } from '/@/hooks/message'
import { useDict } from '/@/hooks/dict'
@@ -225,6 +222,8 @@ const previewFile = defineAsyncComponent(() => import('/@/components/tools/previ
// 审核状态选项
const auditStateOptions = PROFESSIONAL_AUDIT_STATE_OPTIONS
// 无权限即无节点
const { hasAuth } = useAuth()
// 消息提示 hooks
const message = useMessage()

View File

@@ -5,10 +5,10 @@
<el-row>
<div class="mb15" style="width: 100%;">
<el-button
v-if="hasAuth('professional_professionalstationdutylevel_add')"
type="primary"
icon="FolderAdd"
@click="handleAdd"
v-auth="'professional_professionalstationdutylevel_add'">
@click="handleAdd">
</el-button>
</div>
</el-row>
@@ -19,6 +19,7 @@
:data="state.dataList"
v-loading="state.loading"
border
row-key="id"
:cell-style="tableStyle.cellStyle"
:header-cell-style="tableStyle.headerCellStyle"
>
@@ -35,14 +36,14 @@
<el-table-column label="操作" width="150" align="center" fixed="right">
<template #default="scope">
<el-button
v-auth="'professional_professionalstationdutylevel_edit'"
v-if="hasAuth('professional_professionalstationdutylevel_edit')"
icon="edit-pen"
link
type="primary"
@click="handleEdit(scope.row)">修改
</el-button>
<el-button
v-auth="'professional_professionalstationdutylevel_del'"
v-if="hasAuth('professional_professionalstationdutylevel_del')"
icon="delete"
link
type="danger"
@@ -115,11 +116,13 @@
<script setup lang="ts">
import { ref, reactive } from 'vue'
import { useAuth } from '/@/hooks/auth'
import { BasicTableProps, useTable } from '/@/hooks/table'
import { useMessage } from '/@/hooks/message'
import { useMessageBox } from '/@/hooks/message'
import { fetchList, addObj, putObj, delObj } from '/@/api/professional/rsbase/professionalstationdutylevel'
const { hasAuth } = useAuth()
// 消息提示 hooks
const message = useMessage()
const messageBox = useMessageBox()

View File

@@ -5,10 +5,10 @@
<el-row>
<div class="mb15" style="width: 100%;">
<el-button
v-if="hasAuth('professional_professionalstationtype_add')"
type="primary"
icon="FolderAdd"
@click="handleAdd"
v-auth="'professional_professionalstationtype_add'">
@click="handleAdd">
</el-button>
</div>
</el-row>
@@ -19,6 +19,7 @@
:data="state.dataList"
v-loading="state.loading"
border
row-key="id"
:cell-style="tableStyle.cellStyle"
:header-cell-style="tableStyle.headerCellStyle"
>
@@ -35,14 +36,14 @@
<el-table-column label="操作" width="150" align="center" fixed="right">
<template #default="scope">
<el-button
v-auth="'professional_professionalstationtype_edit'"
v-if="hasAuth('professional_professionalstationtype_edit')"
icon="edit-pen"
link
type="primary"
@click="handleEdit(scope.row)">修改
</el-button>
<el-button
v-auth="'professional_professionalstationtype_del'"
v-if="hasAuth('professional_professionalstationtype_del')"
icon="delete"
link
type="danger"
@@ -115,11 +116,13 @@
<script setup lang="ts">
import { ref, reactive } from 'vue'
import { useAuth } from '/@/hooks/auth'
import { BasicTableProps, useTable } from '/@/hooks/table'
import { useMessage } from '/@/hooks/message'
import { useMessageBox } from '/@/hooks/message'
import { fetchList, addObj, putObj, delObj } from '/@/api/professional/rsbase/professionalstationtype'
const { hasAuth } = useAuth()
// 消息提示 hooks
const message = useMessage()
const messageBox = useMessageBox()

View File

@@ -56,16 +56,16 @@
<el-row>
<div class="mb15" style="width: 100%;">
<el-button
v-if="hasAuth('professional_professionalteacheracademicrelation_add')"
type="primary"
icon="FolderAdd"
@click="handleAdd"
v-auth="'professional_professionalteacheracademicrelation_add'">
@click="handleAdd">
</el-button>
<el-button
v-if="hasAuth('professional_teacherbase_export')"
type="warning"
plain
icon="Download"
v-auth="'professional_teacherbase_export'"
@click="handleDownLoadWord"
:loading="exportLoading">导出信息
</el-button>
@@ -76,6 +76,7 @@
<el-table
ref="tableRef"
:data="state.dataList"
row-key="id"
v-loading="state.loading"
border
:cell-style="tableStyle.cellStyle"
@@ -153,54 +154,49 @@
<el-table-column label="操作" width="280" align="center" fixed="right">
<template #default="scope">
<el-button
v-auth="'professional_professionalteacheracademicrelation_edit'"
v-if="scope.row.state === '0' || scope.row.state === '-2'"
v-if="hasAuth('professional_professionalteacheracademicrelation_edit') && (scope.row.state === '0' || scope.row.state === '-2')"
type="primary"
link
icon="edit-pen"
@click="handleEdit(scope.row)">编辑
</el-button>
<el-button
v-auth="'professional_professionalteacheracademicrelation_exam'"
v-if="scope.row.canExam"
v-if="hasAuth('professional_professionalteacheracademicrelation_exam') && scope.row.canExam"
type="success"
link
icon="CircleCheck"
@click="changeState(scope.row, 1)">通过
</el-button>
<el-button
v-auth="'professional_professionalteacheracademicrelation_exam'"
v-if="scope.row.canDeptExam"
type="success"
link
icon="CircleCheck"
@click="changeState(scope.row, 1)">部门通过
v-if="hasAuth('professional_professionalteacheracademicrelation_exam') && scope.row.canDeptExam"
type="success"
link
icon="CircleCheck"
@click="changeState(scope.row, 1)">部门通过
</el-button>
<el-button
v-auth="'professional_professionalteacheracademicrelation_exam'"
v-if="scope.row.canBack"
v-if="hasAuth('professional_professionalteacheracademicrelation_exam') && scope.row.canBack"
type="danger"
link
icon="CircleClose"
@click="changeState(scope.row, -2)">驳回
</el-button>
<el-button
v-auth="'professional_professionalteacheracademicrelation_exam'"
v-if="scope.row.canDeptBack"
type="danger"
link
icon="CircleClose"
@click="changeState(scope.row, -2)">部门驳回
v-if="hasAuth('professional_professionalteacheracademicrelation_exam') && scope.row.canDeptBack"
type="danger"
link
icon="CircleClose"
@click="changeState(scope.row, -2)">部门驳回
</el-button>
<el-button
v-auth="'professional_professionalteacheracademicrelation_del'"
v-if="hasAuth('professional_professionalteacheracademicrelation_del')"
type="danger"
link
icon="delete"
style="margin-left: 12px"
@click="handleDel(scope.row)">删除
</el-button>
</template>
</template>
</el-table-column>
</el-table>
@@ -229,6 +225,7 @@
<script setup lang="ts">
import { ref, reactive, onMounted, nextTick } from 'vue'
import { BasicTableProps, useTable } from '/@/hooks/table'
import { useAuth } from '/@/hooks/auth'
import { useMessage } from '/@/hooks/message'
import { useMessageBox } from '/@/hooks/message'
import { useDict } from '/@/hooks/dict'
@@ -252,6 +249,8 @@ const previewFile = defineAsyncComponent(() => import('/@/components/tools/previ
// 审核状态选项
const auditStateOptions = PROFESSIONAL_AUDIT_STATE_OPTIONS
// 无权限即无节点
const { hasAuth } = useAuth()
// 消息提示 hooks
const message = useMessage()

View File

@@ -5,10 +5,10 @@
<el-row>
<div class="mb15" style="width: 100%;">
<el-button
v-if="hasAuth('professional_professionalteachercertificateconf_add')"
type="primary"
icon="FolderAdd"
@click="handleAdd"
v-auth="'professional_professionalteachercertificateconf_add'">
@click="handleAdd">
</el-button>
</div>
</el-row>
@@ -19,6 +19,7 @@
:data="state.dataList"
v-loading="state.loading"
border
row-key="id"
:cell-style="tableStyle.cellStyle"
:header-cell-style="tableStyle.headerCellStyle"
>
@@ -35,14 +36,14 @@
<el-table-column label="操作" width="150" align="center" fixed="right">
<template #default="scope">
<el-button
v-auth="'professional_professionalteachercertificateconf_edit'"
v-if="hasAuth('professional_professionalteachercertificateconf_edit')"
icon="edit-pen"
link
type="primary"
@click="handleEdit(scope.row)">修改
</el-button>
<el-button
v-auth="'professional_professionalteachercertificateconf_del'"
v-if="hasAuth('professional_professionalteachercertificateconf_del')"
icon="delete"
link
type="danger"
@@ -115,11 +116,13 @@
<script setup lang="ts">
import { ref, reactive } from 'vue'
import { useAuth } from '/@/hooks/auth'
import { BasicTableProps, useTable } from '/@/hooks/table'
import { useMessage } from '/@/hooks/message'
import { useMessageBox } from '/@/hooks/message'
import { fetchList, addObj, putObj, delObj } from '/@/api/professional/rsbase/professionalteachercertificateconf'
const { hasAuth } = useAuth()
// 消息提示 hooks
const message = useMessage()
const messageBox = useMessageBox()

View File

@@ -56,13 +56,13 @@
<el-row>
<div class="mb15" style="width: 100%;">
<el-button
v-auth="'professional_professionalteachercertificaterelation_add'"
v-if="hasAuth('professional_professionalteachercertificaterelation_add')"
type="primary"
icon="FolderAdd"
@click="handleAdd">
</el-button>
<el-button
v-auth="'professional_teacherbase_export'"
v-if="hasAuth('professional_teacherbase_export')"
type="warning"
plain
icon="Download"
@@ -76,6 +76,7 @@
<el-table
ref="tableRef"
:data="state.dataList"
row-key="id"
v-loading="state.loading"
border
:cell-style="tableStyle.cellStyle"
@@ -123,47 +124,42 @@
<el-table-column label="操作" width="280" align="center" fixed="right">
<template #default="scope">
<el-button
v-auth="'professional_professionalteachercertificaterelation_edit'"
v-if="scope.row.state === '0' || scope.row.state === '-2'"
v-if="hasAuth('professional_professionalteachercertificaterelation_edit') && (scope.row.state === '0' || scope.row.state === '-2')"
type="primary"
link
icon="edit-pen"
@click="handleEdit(scope.row)">编辑
</el-button>
<el-button
v-auth="'professional_professionalteachercertificaterelation_exam'"
v-if="scope.row.canExam"
v-if="hasAuth('professional_professionalteachercertificaterelation_exam') && scope.row.canExam"
type="success"
link
icon="CircleCheck"
@click="changeState(scope.row, 1)">通过
</el-button>
<el-button
type="success"
link
v-auth="'professional_professionalteachercertificaterelation_exam'"
icon="CircleCheck"
v-if="scope.row.canDeptExam"
@click="changeState(scope.row, 1)">部门通过
v-if="hasAuth('professional_professionalteachercertificaterelation_exam') && scope.row.canDeptExam"
type="success"
link
icon="CircleCheck"
@click="changeState(scope.row, 1)">部门通过
</el-button>
<el-button
v-auth="'professional_professionalteachercertificaterelation_exam'"
v-if="scope.row.canBack"
v-if="hasAuth('professional_professionalteachercertificaterelation_exam') && scope.row.canBack"
type="danger"
link
icon="CircleClose"
@click="changeState(scope.row, -2)">驳回
</el-button>
<el-button
type="danger"
link
icon="CircleClose"
v-auth="'professional_professionalteachercertificaterelation_exam'"
v-if="scope.row.canDeptBack"
@click="changeState(scope.row, -2)">部门驳回
v-if="hasAuth('professional_professionalteachercertificaterelation_exam') && scope.row.canDeptBack"
type="danger"
link
icon="CircleClose"
@click="changeState(scope.row, -2)">部门驳回
</el-button>
<el-button
v-auth="'professional_professionalteachercertificaterelation_del'"
v-if="hasAuth('professional_professionalteachercertificaterelation_del')"
type="danger"
link
icon="delete"
@@ -199,6 +195,7 @@
<script setup lang="ts">
import { ref, reactive, onMounted, nextTick } from 'vue'
import { BasicTableProps, useTable } from '/@/hooks/table'
import { useAuth } from '/@/hooks/auth'
import { useMessage } from '/@/hooks/message'
import { useMessageBox } from '/@/hooks/message'
import { useDict } from '/@/hooks/dict'
@@ -209,6 +206,7 @@ import {
delObj,
exportExcel
} from '/@/api/professional/professionaluser/professionalteachercertificaterelation'
import { PROFESSIONAL_AUDIT_STATE_OPTIONS } from '/@/config/global'
import { defineAsyncComponent } from 'vue'
const TeacherNameNo = defineAsyncComponent(() => import('/@/components/TeacherNameNo/index.vue'))
const AuditState = defineAsyncComponent(() => import('/@/components/AuditState/index.vue'))
@@ -218,11 +216,10 @@ const previewFile = defineAsyncComponent(() => import('/@/components/tools/previ
// 审核状态选项(独立定义,防止其他页面修改时被波及)
import type { StateOption } from '/@/components/AuditState/index.vue'
const auditStateOptions: StateOption[] = [
{ value: '1', label: '已通过', type: 'success', icon: 'fa-solid fa-circle-check', effect: 'dark' },
{ value: '-2', label: '已驳回', type: 'danger', icon: 'fa-solid fa-circle-xmark', effect: 'dark' },
{ value: '0', label: '待审核', type: 'warning', icon: 'fa-regular fa-clock', effect: 'light' }
]
const auditStateOptions: StateOption[] = PROFESSIONAL_AUDIT_STATE_OPTIONS
// 无权限即无节点
const { hasAuth } = useAuth()
// 消息提示 hooks
const message = useMessage()

View File

@@ -56,7 +56,7 @@
<el-row>
<div class="mb15" style="width: 100%;">
<el-button
v-auth="'professional_professionalteacherhonor_add'"
v-if="hasAuth('professional_professionalteacherhonor_add')"
type="primary"
icon="FolderAdd"
@click="handleAdd">
@@ -75,6 +75,7 @@
<el-table
ref="tableRef"
:data="state.dataList"
row-key="id"
v-loading="state.loading"
border
:cell-style="tableStyle.cellStyle"
@@ -118,47 +119,42 @@
<el-table-column label="操作" width="280" align="center" fixed="right">
<template #default="scope">
<el-button
v-auth="'professional_professionalteacherhonor_edit'"
v-if="scope.row.state === '0' || scope.row.state === '-2'"
v-if="hasAuth('professional_professionalteacherhonor_edit') && (scope.row.state === '0' || scope.row.state === '-2')"
type="primary"
link
icon="edit-pen"
@click="handleEdit(scope.row)">修改
</el-button>
<el-button
v-auth="'professional_professionalteacherhonor_exam'"
v-if="scope.row.canExam"
v-if="hasAuth('professional_professionalteacherhonor_exam') && scope.row.canExam"
type="success"
link
icon="CircleCheck"
@click="changeState(scope.row, 1)">通过
</el-button>
<el-button
type="success"
link
v-auth="'professional_professionalteacherhonor_exam'"
icon="CircleCheck"
v-if="scope.row.canDeptExam"
@click="changeState(scope.row, 1)">部门通过
v-if="hasAuth('professional_professionalteacherhonor_exam') && scope.row.canDeptExam"
type="success"
link
icon="CircleCheck"
@click="changeState(scope.row, 1)">部门通过
</el-button>
<el-button
v-auth="'professional_professionalteacherhonor_exam'"
v-if="scope.row.canBack"
v-if="hasAuth('professional_professionalteacherhonor_exam') && scope.row.canBack"
type="danger"
link
icon="CircleClose"
@click="changeState(scope.row, -2)">驳回
</el-button>
<el-button
type="danger"
link
v-auth="'professional_professionalteacherhonor_exam'"
icon="CircleClose"
v-if="scope.row.canDeptBack"
@click="changeState(scope.row, -2)">部门驳回
v-if="hasAuth('professional_professionalteacherhonor_exam') && scope.row.canDeptBack"
type="danger"
link
icon="CircleClose"
@click="changeState(scope.row, -2)">部门驳回
</el-button>
<el-button
v-auth="'professional_professionalteacherhonor_del'"
v-if="hasAuth('professional_professionalteacherhonor_del')"
type="danger"
link
icon="delete"
@@ -194,6 +190,7 @@
<script setup lang="ts">
import { ref, reactive, nextTick } from 'vue'
import { BasicTableProps, useTable } from '/@/hooks/table'
import { useAuth } from '/@/hooks/auth'
import { useMessage } from '/@/hooks/message'
import { useMessageBox } from '/@/hooks/message'
import { useDict } from '/@/hooks/dict'
@@ -220,6 +217,9 @@ const { professional_state: professionalState } = useDict('professional_state')
// 审核状态选项
const auditStateOptions = PROFESSIONAL_AUDIT_STATE_OPTIONS
// 无权限即无节点
const { hasAuth } = useAuth()
// 表格引用
const tableRef = ref()
const searchFormRef = ref()

View File

@@ -5,10 +5,10 @@
<el-row>
<div class="mb15" style="width: 100%;">
<el-button
v-if="hasAuth('professional_professionalteachertype_add')"
type="primary"
icon="FolderAdd"
@click="handleAdd"
v-auth="'professional_professionalteachertype_add'">
@click="handleAdd">
</el-button>
</div>
</el-row>
@@ -19,6 +19,7 @@
:data="state.dataList"
v-loading="state.loading"
border
row-key="id"
:cell-style="tableStyle.cellStyle"
:header-cell-style="tableStyle.headerCellStyle"
>
@@ -35,14 +36,14 @@
<el-table-column label="操作" width="150" align="center" fixed="right">
<template #default="scope">
<el-button
v-auth="'professional_professionalteachertype_edit'"
v-if="hasAuth('professional_professionalteachertype_edit')"
icon="edit-pen"
link
type="primary"
@click="handleEdit(scope.row)">修改
</el-button>
<el-button
v-auth="'professional_professionalteachertype_del'"
v-if="hasAuth('professional_professionalteachertype_del')"
icon="delete"
link
type="danger"
@@ -115,11 +116,13 @@
<script setup lang="ts">
import { ref, reactive } from 'vue'
import { useAuth } from '/@/hooks/auth'
import { BasicTableProps, useTable } from '/@/hooks/table'
import { useMessage } from '/@/hooks/message'
import { useMessageBox } from '/@/hooks/message'
import { fetchList, addObj, putObj, delObj } from '/@/api/professional/rsbase/professionalteachertype'
const { hasAuth } = useAuth()
// 消息提示 hooks
const message = useMessage()
const messageBox = useMessageBox()

View File

@@ -5,10 +5,10 @@
<el-row>
<div class="mb15" style="width: 100%;">
<el-button
v-if="hasAuth('professional_professionalteachingmaterialconfig_add')"
type="primary"
icon="FolderAdd"
@click="handleAdd"
v-auth="'professional_professionalteachingmaterialconfig_add'">
@click="handleAdd">
</el-button>
</div>
</el-row>
@@ -19,6 +19,7 @@
:data="state.dataList"
v-loading="state.loading"
border
row-key="id"
:cell-style="tableStyle.cellStyle"
:header-cell-style="tableStyle.headerCellStyle"
>
@@ -35,14 +36,14 @@
<el-table-column label="操作" width="150" align="center" fixed="right">
<template #default="scope">
<el-button
v-auth="'professional_professionalteachingmaterialconfig_edit'"
v-if="hasAuth('professional_professionalteachingmaterialconfig_edit')"
icon="edit-pen"
link
type="primary"
@click="handleEdit(scope.row)">修改
</el-button>
<el-button
v-auth="'professional_professionalteachingmaterialconfig_del'"
v-if="hasAuth('professional_professionalteachingmaterialconfig_del')"
icon="delete"
link
type="danger"
@@ -115,11 +116,13 @@
<script setup lang="ts">
import { ref, reactive } from 'vue'
import { useAuth } from '/@/hooks/auth'
import { BasicTableProps, useTable } from '/@/hooks/table'
import { useMessage } from '/@/hooks/message'
import { useMessageBox } from '/@/hooks/message'
import { fetchList, addObj, putObj, delObj } from '/@/api/professional/rsbase/professionalteachingmaterialconfig'
const { hasAuth } = useAuth()
// 消息提示 hooks
const message = useMessage()
const messageBox = useMessageBox()

View File

@@ -5,10 +5,10 @@
<el-row>
<div class="mb15" style="width: 100%;">
<el-button
v-if="hasAuth('professional_professionaltitlelevelconfig_add')"
type="primary"
icon="FolderAdd"
@click="handleAdd"
v-auth="'professional_professionaltitlelevelconfig_add'">
@click="handleAdd">
</el-button>
</div>
</el-row>
@@ -19,6 +19,7 @@
:data="state.dataList"
v-loading="state.loading"
border
row-key="id"
:cell-style="tableStyle.cellStyle"
:header-cell-style="tableStyle.headerCellStyle"
>
@@ -35,14 +36,14 @@
<el-table-column label="操作" width="150" align="center" fixed="right">
<template #default="scope">
<el-button
v-auth="'professional_professionaltitlelevelconfig_edit'"
v-if="hasAuth('professional_professionaltitlelevelconfig_edit')"
icon="edit-pen"
link
type="primary"
@click="handleEdit(scope.row)">修改
</el-button>
<el-button
v-auth="'professional_professionaltitlelevelconfig_del'"
v-if="hasAuth('professional_professionaltitlelevelconfig_del')"
icon="delete"
link
type="danger"
@@ -115,11 +116,13 @@
<script setup lang="ts">
import { ref, reactive } from 'vue'
import { useAuth } from '/@/hooks/auth'
import { BasicTableProps, useTable } from '/@/hooks/table'
import { useMessage } from '/@/hooks/message'
import { useMessageBox } from '/@/hooks/message'
import { fetchList, addObj, putObj, delObj } from '/@/api/professional/rsbase/professionaltitlelevelconfig'
const { hasAuth } = useAuth()
// 消息提示 hooks
const message = useMessage()
const messageBox = useMessageBox()

View File

@@ -84,17 +84,17 @@
</template>
</search-form>
<!-- 操作按钮 -->
<!-- 操作按钮无权限不渲染 -->
<el-row>
<div class="mb15" style="width: 100%;">
<el-button
v-auth="'professional_professionaltitlerelation_add'"
v-if="hasAuth('professional_professionaltitlerelation_add')"
type="primary"
icon="FolderAdd"
@click="handleAdd">
</el-button>
<el-button
v-auth="'professional_teacherbase_export'"
v-if="hasAuth('professional_teacherbase_export')"
class="ml10"
type="warning"
plain
@@ -109,6 +109,7 @@
<el-table
ref="tableRef"
:data="state.dataList"
row-key="id"
v-loading="state.loading"
border
:cell-style="tableStyle.cellStyle"
@@ -140,10 +141,6 @@
</template>
</el-table-column>
<!-- <el-table-column prop="changedTime" label="变动时间" width="180" align="center" />
<el-table-column prop="createTime" label="创建时间" width="180" align="center" /> -->
<el-table-column label="证明材料" width="120" align="center">
<template #default="scope">
<el-button
@@ -162,47 +159,42 @@
<el-table-column label="操作" width="280" align="center" fixed="right">
<template #default="scope">
<el-button
v-auth="'professional_professionaltitlerelation_edit'"
v-if="scope.row.state === '0' || scope.row.state === '-2'"
v-if="hasAuth('professional_professionaltitlerelation_edit') && (scope.row.state === '0' || scope.row.state === '-2')"
type="primary"
link
icon="edit-pen"
@click="handleEdit(scope.row)">修改
</el-button>
<el-button
v-auth="'professional_professionaltitlerelation_exam'"
v-if="scope.row.canExam"
v-if="hasAuth('professional_professionaltitlerelation_exam') && scope.row.canExam"
type="success"
link
icon="CircleCheck"
@click="changeState(scope.row, 1)">通过
</el-button>
<el-button
type="success"
link
icon="CircleCheck"
v-auth="'professional_professionaltitlerelation_exam'"
v-if="scope.row.canDeptExam"
@click="changeState(scope.row, 1)">部门通过
v-if="hasAuth('professional_professionaltitlerelation_exam') && scope.row.canDeptExam"
type="success"
link
icon="CircleCheck"
@click="changeState(scope.row, 1)">部门通过
</el-button>
<el-button
v-auth="'professional_professionaltitlerelation_exam'"
v-if="scope.row.canBack"
v-if="hasAuth('professional_professionaltitlerelation_exam') && scope.row.canBack"
type="danger"
link
icon="CircleClose"
@click="changeState(scope.row, -2)">驳回
</el-button>
<el-button
type="danger"
link
v-auth="'professional_professionaltitlerelation_exam'"
icon="CircleClose"
v-if="scope.row.canDeptBack"
@click="changeState(scope.row, -2)">部门驳回
v-if="hasAuth('professional_professionaltitlerelation_exam') && scope.row.canDeptBack"
type="danger"
link
icon="CircleClose"
@click="changeState(scope.row, -2)">部门驳回
</el-button>
<el-button
v-auth="'professional_professionaltitlerelation_del'"
v-if="hasAuth('professional_professionaltitlerelation_del')"
type="danger"
link
icon="delete"
@@ -239,6 +231,7 @@
<script setup lang="ts">
import { ref, reactive, onMounted, nextTick } from 'vue'
import { BasicTableProps, useTable } from '/@/hooks/table'
import { useAuth } from '/@/hooks/auth'
import { useMessage } from '/@/hooks/message'
import { useMessageBox } from '/@/hooks/message'
import { useDict } from '/@/hooks/dict'
@@ -260,7 +253,9 @@ const DataForm = defineAsyncComponent(() => import('./form.vue'))
const ProfessionalBackResaon = defineAsyncComponent(() => import('/@/views/professional/common/professional-back-resaon.vue'))
const previewFile = defineAsyncComponent(() => import('/@/components/tools/preview-file.vue'))
// 使用 Pinia store
// 无权限即无节点:使用 useAuth + v-if
const { hasAuth } = useAuth()
// 消息提示 hooks
const message = useMessage()
const messageBox = useMessageBox()
@@ -336,7 +331,6 @@ const handlePreview = (list: string[]) => {
// 审核状态变更
const changeState = (row: any, val: number) => {
if (val === 1) {
// 通过
const str = '通过'
messageBox.confirm(`是否确认${str}${row.realName}的申请`).then(async () => {
try {
@@ -348,11 +342,9 @@ const changeState = (row: any, val: number) => {
getDataList()
} catch (error: any) {
// 处理业务错误
message.error(error.msg)
}
}).catch(() => {})
} else if (val === -2) {
// 驳回
backReasonRef.value?.init(row, 'title')
}
}

View File

@@ -5,10 +5,10 @@
<el-row>
<div class="mb15" style="width: 100%;">
<el-button
v-if="hasAuth('professional_professionaltopiclevelconfig_add')"
type="primary"
icon="FolderAdd"
@click="handleAdd"
v-auth="'professional_professionaltopiclevelconfig_add'">
@click="handleAdd">
</el-button>
</div>
</el-row>
@@ -19,6 +19,7 @@
:data="state.dataList"
v-loading="state.loading"
border
row-key="id"
:cell-style="tableStyle.cellStyle"
:header-cell-style="tableStyle.headerCellStyle"
>
@@ -35,14 +36,14 @@
<el-table-column label="操作" width="150" align="center" fixed="right">
<template #default="scope">
<el-button
v-auth="'professional_professionaltopiclevelconfig_edit'"
v-if="hasAuth('professional_professionaltopiclevelconfig_edit')"
icon="edit-pen"
link
type="primary"
@click="handleEdit(scope.row)">修改
</el-button>
<el-button
v-auth="'professional_professionaltopiclevelconfig_del'"
v-if="hasAuth('professional_professionaltopiclevelconfig_del')"
icon="delete"
link
type="danger"
@@ -115,11 +116,13 @@
<script setup lang="ts">
import { ref, reactive } from 'vue'
import { useAuth } from '/@/hooks/auth'
import { BasicTableProps, useTable } from '/@/hooks/table'
import { useMessage } from '/@/hooks/message'
import { useMessageBox } from '/@/hooks/message'
import { fetchList, addObj, putObj, delObj } from '/@/api/professional/rsbase/professionaltopiclevelconfig'
const { hasAuth } = useAuth()
// 消息提示 hooks
const message = useMessage()
const messageBox = useMessageBox()

View File

@@ -5,10 +5,10 @@
<el-row>
<div class="mb15" style="width: 100%;">
<el-button
v-if="hasAuth('professional_professionaltopicsourceconfig_add')"
type="primary"
icon="FolderAdd"
@click="handleAdd"
v-auth="'professional_professionaltopicsourceconfig_add'">
@click="handleAdd">
</el-button>
</div>
</el-row>
@@ -19,6 +19,7 @@
:data="state.dataList"
v-loading="state.loading"
border
row-key="id"
:cell-style="tableStyle.cellStyle"
:header-cell-style="tableStyle.headerCellStyle"
>
@@ -35,14 +36,14 @@
<el-table-column label="操作" width="150" align="center" fixed="right">
<template #default="scope">
<el-button
v-auth="'professional_professionaltopicsourceconfig_edit'"
v-if="hasAuth('professional_professionaltopicsourceconfig_edit')"
icon="edit-pen"
link
type="primary"
@click="handleEdit(scope.row)">修改
</el-button>
<el-button
v-auth="'professional_professionaltopicsourceconfig_del'"
v-if="hasAuth('professional_professionaltopicsourceconfig_del')"
icon="delete"
link
type="danger"
@@ -115,11 +116,13 @@
<script setup lang="ts">
import { ref, reactive } from 'vue'
import { useAuth } from '/@/hooks/auth'
import { BasicTableProps, useTable } from '/@/hooks/table'
import { useMessage } from '/@/hooks/message'
import { useMessageBox } from '/@/hooks/message'
import { fetchList, addObj, putObj, delObj } from '/@/api/professional/rsbase/professionaltopicsourceconfig'
const { hasAuth } = useAuth()
// 消息提示 hooks
const message = useMessage()
const messageBox = useMessageBox()

View File

@@ -5,10 +5,10 @@
<el-row>
<div class="mb15" style="width: 100%;">
<el-button
v-if="hasAuth('professional_worktype_add')"
type="primary"
icon="FolderAdd"
@click="handleAdd"
v-auth="'professional_worktype_add'">
@click="handleAdd">
</el-button>
</div>
</el-row>
@@ -19,6 +19,7 @@
:data="state.dataList"
v-loading="state.loading"
border
row-key="id"
:cell-style="tableStyle.cellStyle"
:header-cell-style="tableStyle.headerCellStyle"
>
@@ -31,14 +32,14 @@
<el-table-column label="操作" width="150" align="center" fixed="right">
<template #default="scope">
<el-button
v-auth="'professional_worktype_edit'"
v-if="hasAuth('professional_worktype_edit')"
icon="edit-pen"
link
type="primary"
@click="handleEdit(scope.row)">修改
</el-button>
<el-button
v-auth="'professional_worktype_del'"
v-if="hasAuth('professional_worktype_del')"
icon="delete"
link
type="danger"
@@ -92,11 +93,13 @@
<script setup lang="ts">
import { ref, reactive } from 'vue'
import { useAuth } from '/@/hooks/auth'
import { BasicTableProps, useTable } from '/@/hooks/table'
import { useMessage } from '/@/hooks/message'
import { useMessageBox } from '/@/hooks/message'
import { fetchList, addObj, putObj, delObj } from '/@/api/professional/rsbase/professionalworktype'
const { hasAuth } = useAuth()
// 消息提示 hooks
const message = useMessage()
const messageBox = useMessageBox()

View File

@@ -7,8 +7,7 @@
<el-button
type="primary"
icon="FolderAdd"
@click="handleAdd"
v-auth="'professional_professionalyearbounds_add'">
@click="handleAdd">
</el-button>
</div>
</el-row>
@@ -46,14 +45,14 @@
<el-table-column label="操作" min-width="150" align="center" fixed="right">
<template #default="scope">
<el-button
v-auth="'professional_professionalyearbounds_edit'"
v-if="hasAuth('professional_professionalyearbounds_edit')"
icon="edit-pen"
link
type="primary"
@click="handleEdit(scope.row)">修改
</el-button>
<el-button
v-auth="'professional_professionalyearbounds_del'"
v-if="hasAuth('professional_professionalyearbounds_del')"
icon="delete"
link
type="danger"
@@ -177,11 +176,13 @@
<script setup lang="ts">
import { ref, reactive } from 'vue'
import { defineAsyncComponent } from 'vue'
import { useAuth } from '/@/hooks/auth'
import { BasicTableProps, useTable } from '/@/hooks/table'
import { useMessage, useMessageBox } from '/@/hooks/message'
import { fetchList, addObj, putObj, delObj } from '/@/api/professional/salaries/professionalyearbounds'
const TeacherNameNo = defineAsyncComponent(() => import('/@/components/TeacherNameNo/index.vue'))
const { hasAuth } = useAuth()
// 消息提示 hooks
const message = useMessage()

View File

@@ -49,6 +49,7 @@
:data="state.dataList"
v-loading="state.loading"
border
row-key="id"
:cell-style="tableStyle.cellStyle"
:header-cell-style="tableStyle.headerCellStyle"
class="data-table"
@@ -72,12 +73,12 @@
<el-table-column label="操作" min-width="80" align="center" fixed="right">
<template #default="scope">
<el-button
v-auth="'professional_salaryexportrecord_del'"
icon="delete"
link
type="primary"
@click="handleDel(scope.row)">删除
</el-button>
v-if="hasAuth('professional_salaryexportrecord_del')"
icon="delete"
link
type="primary"
@click="handleDel(scope.row)">删除
</el-button>
</template>
</el-table-column>
</el-table>
@@ -97,7 +98,9 @@ import { ref, reactive } from 'vue'
import { BasicTableProps, useTable } from '/@/hooks/table'
import { useMessage, useMessageBox } from '/@/hooks/message'
import { fetchList, delObj } from '/@/api/professional/salaries/salaryexportrecord'
import { useAuth } from '/@/hooks/auth'
const { hasAuth } = useAuth()
// 消息提示 hooks
const message = useMessage()
const messageBox = useMessageBox()

View File

@@ -26,8 +26,8 @@
<div class="el-upload-list__item-name">{{ fileName }}</div>
</template>
<el-button
v-if="hasAuth('teacher_award_import')"
size="small"
v-auth="'teacher_award_import'"
type="primary">选择文件
</el-button>
</el-upload>
@@ -48,12 +48,14 @@ import { ref, computed } from 'vue'
import { useMessage } from '/@/hooks/message'
import { Session } from '/@/utils/storage'
import request from '/@/utils/request'
import { useAuth } from '/@/hooks/auth'
// Emits
const emit = defineEmits<{
(e: 'refreshData'): void
}>()
const { hasAuth } = useAuth()
// 消息提示
const message = useMessage()

View File

@@ -52,10 +52,10 @@
<el-row>
<div class="mb15">
<el-button
v-if="hasAuth('teacher_award_import')"
type="primary"
plain
icon="UploadFilled"
v-auth="'teacher_award_import'"
@click="handleImportBaseSalary">绩效导入
</el-button>
</div>
@@ -67,6 +67,7 @@
:data="state.dataList"
v-loading="state.loading"
border
:row-key="(row: any) => row.id ?? String(row.teacherNo) + row.year"
:cell-style="tableStyle.cellStyle"
:header-cell-style="tableStyle.headerCellStyle"
>
@@ -109,8 +110,10 @@
<script setup lang="ts">
import { ref, reactive } from 'vue'
import { BasicTableProps, useTable } from '/@/hooks/table'
import { useAuth } from '/@/hooks/auth'
import { fetchList } from '/@/api/professional/salaries/teacherawardtax'
const ImportAwardTax = defineAsyncComponent(() => import('./importAwardTax.vue'))
const { hasAuth } = useAuth()
// 表格引用
const tableRef = ref()

View File

@@ -26,8 +26,8 @@
<div class="el-upload-list__item-name">{{ fileName }}</div>
</template>
<el-button
v-if="hasAuth('professional_salary_import')"
size="small"
v-auth="'professional_salary_import'"
type="primary">选择文件
</el-button>
</el-upload>
@@ -45,6 +45,7 @@
<script setup lang="ts">
import { ref, computed } from 'vue'
import { useAuth } from '/@/hooks/auth'
import { useMessage } from '/@/hooks/message'
import { Session } from '/@/utils/storage'
import request from '/@/utils/request'
@@ -54,6 +55,7 @@ const emit = defineEmits<{
(e: 'refreshData'): void
}>()
const { hasAuth } = useAuth()
// 消息提示
const message = useMessage()

View File

@@ -26,8 +26,8 @@
<div class="el-upload-list__item-name">{{ fileName }}</div>
</template>
<el-button
v-if="hasAuth('professional_salary_import')"
size="small"
v-auth="'professional_salary_import'"
type="primary">选择文件
</el-button>
</el-upload>
@@ -45,6 +45,7 @@
<script setup lang="ts">
import { ref, computed } from 'vue'
import { useAuth } from '/@/hooks/auth'
import { useMessage } from '/@/hooks/message'
import { Session } from '/@/utils/storage'
import request from '/@/utils/request'
@@ -54,6 +55,9 @@ const emit = defineEmits<{
(e: 'refreshData'): void
}>()
// 无权限即无节点
const { hasAuth } = useAuth()
// 消息提示
const message = useMessage()

View File

@@ -87,30 +87,30 @@
<el-row>
<div class="mb15">
<el-button
v-if="hasAuth('professional_salary_import')"
type="primary"
plain
icon="UploadFilled"
v-auth="'professional_salary_import'"
@click="handleImportBaseSalary">工资条导入
</el-button>
<el-button
v-if="hasAuth('professional_seach_auth')"
icon="View"
class="ml10"
v-auth="'professional_seach_auth'"
@click="canSearch(1)">设置可查询
</el-button>
<el-button
v-if="hasAuth('professional_seach_auth')"
icon="Hide"
class="ml10"
v-auth="'professional_seach_auth'"
@click="canSearch(0)">设置不可查询
</el-button>
<el-button
v-if="hasAuth('professional_professionalsalaries_del')"
type="danger"
plain
icon="Delete"
class="ml10"
v-auth="'professional_professionalsalaries_del'"
@click="delbatch">批量删除
</el-button>
</div>
@@ -120,6 +120,7 @@
<el-table
ref="tableRef"
:data="state.dataList"
row-key="id"
v-loading="state.loading"
border
:cell-style="tableStyle.cellStyle"
@@ -189,6 +190,7 @@
import { ref, reactive, onMounted } from 'vue'
import { defineAsyncComponent } from 'vue'
import { BasicTableProps, useTable } from '/@/hooks/table'
import { useAuth } from '/@/hooks/auth'
import { useMessage, useMessageBox } from '/@/hooks/message'
import { fetchList, delBatch, setCanSearch } from '/@/api/professional/salaries/teacherpayslip'
import { checkAuth } from '/@/api/professional/salaries/teachersalary'
@@ -199,6 +201,8 @@ const ExportBaseSalary = defineAsyncComponent(() => import('./exportBaseSalary.v
const TeacherNameNo = defineAsyncComponent(() => import('/@/components/TeacherNameNo/index.vue'))
// 无权限即无节点
const { hasAuth } = useAuth()
// 消息提示 hooks
const message = useMessage()

View File

@@ -26,8 +26,8 @@
<div class="el-upload-list__item-name">{{ fileName }}</div>
</template>
<el-button
v-if="hasAuth('professional_salary_import')"
size="small"
v-auth="'professional_salary_import'"
type="primary">选择文件
</el-button>
</el-upload>
@@ -45,6 +45,7 @@
<script setup lang="ts">
import { ref, computed } from 'vue'
import { useAuth } from '/@/hooks/auth'
import { useMessage } from '/@/hooks/message'
import { Session } from '/@/utils/storage'
import request from '/@/utils/request'
@@ -54,6 +55,7 @@ const emit = defineEmits<{
(e: 'refreshData'): void
}>()
const { hasAuth } = useAuth()
// 消息提示
const message = useMessage()

View File

@@ -26,8 +26,8 @@
<div class="el-upload-list__item-name">{{ fileName }}</div>
</template>
<el-button
v-if="hasAuth('professional_salary_import')"
size="small"
v-auth="'professional_salary_import'"
type="primary">选择文件
</el-button>
</el-upload>
@@ -45,6 +45,7 @@
<script setup lang="ts">
import { ref, computed } from 'vue'
import { useAuth } from '/@/hooks/auth'
import { useMessage } from '/@/hooks/message'
import { Session } from '/@/utils/storage'
import request from '/@/utils/request'
@@ -54,6 +55,7 @@ const emit = defineEmits<{
(e: 'refreshData'): void
}>()
const { hasAuth } = useAuth()
// 消息提示
const message = useMessage()

View File

@@ -93,46 +93,46 @@
<el-row>
<div class="mb15">
<el-button
v-if="hasAuth('professional_salary_import')"
type="primary"
plain
icon="UploadFilled"
v-auth="'professional_salary_import'"
@click="handleImportBaseSalary">人事薪资导入
</el-button>
<el-button
v-if="hasAuth('professional_salary_finance_import')"
type="warning"
plain
icon="Download"
class="ml10"
v-auth="'professional_salary_finance_import'"
@click="handleExportSalart">薪资导出
</el-button>
<el-button
v-if="hasAuth('professional_salary_finance_import')"
type="primary"
plain
icon="UploadFilled"
class="ml10"
v-auth="'professional_salary_finance_import'"
@click="handleImportTaxSalary">税金导入
</el-button>
<el-button
v-if="hasAuth('professional_seach_auth')"
icon="View"
class="ml10"
v-auth="'professional_seach_auth'"
@click="canSearch(1)">设置可查询
</el-button>
<el-button
v-if="hasAuth('professional_seach_auth')"
icon="Hide"
class="ml10"
v-auth="'professional_seach_auth'"
@click="canSearch(0)">设置不可查询
</el-button>
<el-button
v-if="hasAuth('professional_professionalsalaries_del')"
type="danger"
plain
icon="Delete"
class="ml10"
v-auth="'professional_professionalsalaries_del'"
@click="delbatch">批量删除
</el-button>
</div>
@@ -142,6 +142,7 @@
<el-table
ref="tableRef"
:data="state.dataList"
row-key="id"
v-loading="state.loading"
border
:cell-style="tableStyle.cellStyle"
@@ -211,6 +212,7 @@
import { ref, reactive, onMounted } from 'vue'
import { defineAsyncComponent } from 'vue'
import { BasicTableProps, useTable } from '/@/hooks/table'
import { useAuth } from '/@/hooks/auth'
import { useMessage, useMessageBox } from '/@/hooks/message'
import { fetchList, delBatch, setCanSearch, checkAuth } from '/@/api/professional/salaries/teachersalary'
import { getStationLevelList } from '/@/api/professional/professionalstationlevelconfig'
@@ -221,6 +223,9 @@ const ImportTaxSalary = defineAsyncComponent(() => import('./importTaxSalary.vue
const TeacherNameNo = defineAsyncComponent(() => import('/@/components/TeacherNameNo/index.vue'))
// 无权限即无节点
const { hasAuth } = useAuth()
// 消息提示 hooks
const message = useMessage()
const messageBox = useMessageBox()

View File

@@ -5,10 +5,10 @@
<el-row>
<div class="mb15" style="width: 100%;">
<el-button
v-if="hasAuth('professional_typeofworkconfig_add')"
type="primary"
icon="FolderAdd"
@click="handleAdd"
v-auth="'professional_typeofworkconfig_add'">
@click="handleAdd">
</el-button>
</div>
</el-row>
@@ -17,6 +17,7 @@
<el-table
ref="tableRef"
:data="state.dataList"
row-key="id"
v-loading="state.loading"
border
:cell-style="tableStyle.cellStyle"
@@ -35,14 +36,14 @@
<el-table-column label="操作" width="150" align="center" fixed="right">
<template #default="scope">
<el-button
v-auth="'professional_typeofworkconfig_edit'"
v-if="hasAuth('professional_typeofworkconfig_edit')"
icon="edit-pen"
link
type="primary"
@click="handleEdit(scope.row)">修改
</el-button>
<el-button
v-auth="'professional_typeofworkconfig_del'"
v-if="hasAuth('professional_typeofworkconfig_del')"
icon="delete"
link
type="danger"
@@ -116,10 +117,14 @@
<script setup lang="ts">
import { ref, reactive } from 'vue'
import { BasicTableProps, useTable } from '/@/hooks/table'
import { useAuth } from '/@/hooks/auth'
import { useMessage } from '/@/hooks/message'
import { useMessageBox } from '/@/hooks/message'
import { fetchList, addObj, putObj, delObj } from '/@/api/professional/rsbase/typeofworkconfig'
// 无权限即无节点
const { hasAuth } = useAuth()
// 消息提示 hooks
const message = useMessage()
const messageBox = useMessageBox()

View File

@@ -57,7 +57,7 @@
<div class="mb15">
<el-button
v-auth="'recruit_newstucheckin_statistics_output'"
v-if="hasAuth('recruit_newstucheckin_statistics_output')"
type="warning"
plain
icon="Download"
@@ -97,6 +97,7 @@
<script setup lang="ts" name="backSchoolCheckin-statistics">
import { ref, reactive, computed, onMounted } from 'vue'
import { useAuth } from '/@/hooks/auth'
import { useMessage } from '/@/hooks/message'
import { getDataStatistics } from '/@/api/recruit/newstucheckin'
import { getList } from '/@/api/recruit/recruitstudentplangroup'
@@ -104,6 +105,8 @@ import { getDeptList } from '/@/api/basic/basicclass'
import { queryAllClass } from '/@/api/basic/basicclass'
import axios from 'axios'
const { hasAuth } = useAuth()
// 消息提示 hooks
const message = useMessage()

View File

@@ -95,7 +95,7 @@
名单导出
</el-button>
<el-button
v-auth="'recruit_recruitstudentsignup_allCX'"
v-if="hasAuth('recruit_recruitstudentsignup_allCX')"
type="primary"
plain
icon="Search"
@@ -230,8 +230,7 @@
<template #default="scope">
<el-button
v-auth="'recruit_recruitstudentsignup_show'"
v-if="scope.row.pushed == '1' && scope.row.paiedOffline != '10' && (scope.row.clfPayCode != undefined && scope.row.clfPayCode != '')"
v-if="hasAuth('recruit_recruitstudentsignup_show') && scope.row.pushed == '1' && scope.row.paiedOffline != '10' && (scope.row.clfPayCode != undefined && scope.row.clfPayCode != '')"
type="primary"
link
:icon="Tickets"
@@ -240,7 +239,7 @@
支付二维码
</el-button>
<el-button
v-auth="'recruit_recruitstudentsignup_back'"
v-if="hasAuth('recruit_recruitstudentsignup_back')"
type="primary"
link
icon="EditPen"
@@ -299,6 +298,7 @@
<script setup lang="ts" name="backSchoolCheckinTabIndex">
import { ref, reactive, onMounted, nextTick, defineAsyncComponent, defineExpose } from 'vue'
import { useAuth } from '/@/hooks/auth'
import { BasicTableProps, useTable } from '/@/hooks/table'
import { useMessage } from '/@/hooks/message'
import { getList } from '/@/api/recruit/recruitstudentplangroup'
@@ -315,7 +315,7 @@ const GenderTag = defineAsyncComponent(() => import('/@/components/GenderTag/ind
const SearchForm = defineAsyncComponent(() => import('/@/components/SearchForm/index.vue'))
const ClickableTag = defineAsyncComponent(() => import('/@/components/ClickableTag/index.vue'))
const DetailPopover = defineAsyncComponent(() => import('/@/components/DetailPopover/index.vue'))
const { hasAuth } = useAuth()
// 消息提示 hooks
const message = useMessage()

View File

@@ -90,7 +90,7 @@
<!-- 操作按钮 -->
<div class="mb15">
<el-button
v-auth="'recruit_newstucheckin_output'"
v-if="hasAuth('recruit_newstucheckin_output')"
type="warning"
plain
icon="Download"
@@ -108,6 +108,7 @@
v-loading="state.loading"
border
stripe
row-key="id"
:cell-style="tableStyle.cellStyle"
:header-cell-style="tableStyle.headerCellStyle"
>
@@ -210,7 +211,7 @@
<el-table-column label="操作" width="100" align="center" fixed="right">
<template #default="scope">
<el-button
v-auth="'recruit_newstucheckin_edit'"
v-if="hasAuth('recruit_newstucheckin_edit')"
type="primary"
link
icon="EditPen"
@@ -237,6 +238,7 @@
<script setup lang="ts" name="newstucheckin">
import { ref, reactive, onMounted, defineAsyncComponent } from 'vue'
import { useAuth } from '/@/hooks/auth'
import { BasicTableProps, useTable } from '/@/hooks/table'
import { useMessage } from '/@/hooks/message'
import { fetchList } from '/@/api/recruit/newstucheckin'
@@ -253,7 +255,7 @@ import { InfoFilled, CircleCheck, CircleClose, DocumentChecked, Warning, Clock }
const StuCheckIn = defineAsyncComponent(() => import('./stu-check-in.vue'))
const TeacherNameNo = defineAsyncComponent(() => import('/@/components/TeacherNameNo/index.vue'))
const GenderTag = defineAsyncComponent(() => import('/@/components/GenderTag/index.vue'))
const { hasAuth } = useAuth()
// 是否住宿字典
const { yes_no_type } = useDict('yes_no_type')

View File

@@ -57,7 +57,7 @@
<div class="mb15">
<el-button
v-auth="'recruit_newstucheckin_statistics_output'"
v-if="hasAuth('recruit_newstucheckin_statistics_output')"
type="warning"
plain
icon="Download"
@@ -97,6 +97,7 @@
<script setup lang="ts" name="newstucheckin-statistics">
import { ref, reactive, onMounted } from 'vue'
import { useAuth } from '/@/hooks/auth'
import { useMessage } from '/@/hooks/message'
import { getDataStatistics } from '/@/api/recruit/newstucheckin'
import { getList } from '/@/api/recruit/recruitstudentplangroup'
@@ -104,6 +105,7 @@ import { getDeptList } from '/@/api/basic/basicclass'
import { queryAllClass } from '/@/api/basic/basicclass'
import axios from 'axios'
const { hasAuth } = useAuth()
// 消息提示 hooks
const message = useMessage()

View File

@@ -45,7 +45,7 @@
<!-- 操作按钮 -->
<div class="mb15">
<el-button
v-auth="'recruit_recruitImitateAdjustBatch_add'"
v-if="hasAuth('recruit_recruitImitateAdjustBatch_add')"
type="primary"
icon="FolderAdd"
@click="addOrUpdateHandle"
@@ -61,6 +61,7 @@
v-loading="state.loading"
border
stripe
row-key="id"
:cell-style="tableStyle.cellStyle"
:header-cell-style="tableStyle.headerCellStyle"
>
@@ -71,7 +72,7 @@
<el-table-column label="操作" width="380" align="center" fixed="right">
<template #default="scope">
<el-button
v-auth="'recruit_recruitImitateAdjustBatch_show'"
v-if="hasAuth('recruit_recruitImitateAdjustBatch_show')"
type="primary"
link
icon="Document"
@@ -80,7 +81,7 @@
模拟列表
</el-button>
<el-button
v-auth="'recruit_recruitImitateAdjustBatch_show'"
v-if="hasAuth('recruit_recruitImitateAdjustBatch_show')"
type="warning"
link
icon="Download"
@@ -89,7 +90,7 @@
导出模拟结果
</el-button>
<el-button
v-auth="'recruit_recruitImitateAdjustBatch_edit'"
v-if="hasAuth('recruit_recruitImitateAdjustBatch_edit')"
type="primary"
link
icon="EditPen"
@@ -98,7 +99,7 @@
修改
</el-button>
<el-button
v-auth="'recruit_recruitImitateAdjustBatch_del'"
v-if="hasAuth('recruit_recruitImitateAdjustBatch_del')"
type="danger"
link
icon="Delete"
@@ -126,6 +127,7 @@
<script setup lang="ts" name="recruitImitateAdjustBatch">
import { ref, reactive, onMounted, nextTick, defineAsyncComponent } from 'vue'
import { useAuth } from '/@/hooks/auth'
import { BasicTableProps, useTable } from '/@/hooks/table'
import { useMessage, useMessageBox } from '/@/hooks/message'
import { getList } from '/@/api/recruit/recruitstudentplangroup'
@@ -133,7 +135,7 @@ import { delObj, fetchList } from '/@/api/recruit/recruitImitateAdjustBatch'
const TableForm = defineAsyncComponent(() => import('./detaiform.vue'))
const MnTable = defineAsyncComponent(() => import('./mnTable.vue'))
const { hasAuth } = useAuth()
// 消息提示 hooks
const message = useMessage()
const messageBox = useMessageBox()

View File

@@ -7,7 +7,7 @@
>
<el-form :inline="true">
<el-form-item>
<el-button v-auth="'recruit_recruitImitateAdjustBatch_add'" icon="FolderAdd" type="primary" @click="addOrUpdateHandle()">新增</el-button>
<el-button v-if="hasAuth('recruit_recruitImitateAdjustBatch_add')" icon="FolderAdd" type="primary" @click="addOrUpdateHandle()">新增</el-button>
</el-form-item>
</el-form>
<el-table
@@ -111,8 +111,8 @@
align="center"
label="操作">
<template #default="scope">
<el-button v-auth="'recruit_recruitImitateAdjustBatch_edit'" type="text" size="small" :icon="Edit" @click="addOrUpdateHandle(scope.row.id)">修改</el-button>
<el-button v-auth="'recruit_recruitImitateAdjustBatch_del'" type="danger" link size="small" :icon="Delete" @click="deleteHandle(scope.row.id)">删除</el-button>
<el-button v-if="hasAuth('recruit_recruitImitateAdjustBatch_edit')" type="text" size="small" :icon="Edit" @click="addOrUpdateHandle(scope.row.id)">修改</el-button>
<el-button v-if="hasAuth('recruit_recruitImitateAdjustBatch_del')" type="danger" link size="small" :icon="Delete" @click="deleteHandle(scope.row.id)">删除</el-button>
</template>
</el-table-column>
</el-table>
@@ -123,6 +123,7 @@
<script setup lang="ts">
import { ref, reactive, nextTick, defineAsyncComponent } from 'vue'
import { useAuth } from '/@/hooks/auth'
import { useMessage, useMessageBox } from '/@/hooks/message'
import { Edit, Delete } from '@element-plus/icons-vue'
import { getMNStuList, delMNObj } from '/@/api/recruit/recruitImitateAdjustBatch'
@@ -132,7 +133,7 @@ import { getLabelValueByProps } from '/@/utils/dictLabel'
const AddMNStu = defineAsyncComponent(() => import('./addMNStu.vue'))
const GenderTag = defineAsyncComponent(() => import('@/components/GenderTag/index.vue'))
const { hasAuth } = useAuth()
// Emits
const emit = defineEmits<{
(e: 'refreshDataList'): void

View File

@@ -44,7 +44,7 @@
<el-button icon="Refresh" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<div class="mb15" v-auth="'recruit_recruitexampeople_add'">
<div class="mb15" v-if="hasAuth('recruit_recruitexampeople_add')">
<el-button
type="primary"
icon="FolderAdd"
@@ -74,7 +74,7 @@
<el-table-column label="操作" align="center" width="150px" fixed="right">
<template #default="scope">
<el-button
v-auth="'recruit_recruitexampeople_del'"
v-if="hasAuth('recruit_recruitexampeople_del')"
type="danger"
link
icon="Delete"
@@ -108,12 +108,13 @@
<script setup lang="ts" name="recruitexampeople">
import { ref, reactive, nextTick, defineAsyncComponent } from 'vue'
import { useAuth } from '/@/hooks/auth'
import { BasicTableProps, useTable } from '/@/hooks/table'
import { useMessage, useMessageBox } from '/@/hooks/message'
import { addObj, delObj, fetchList } from '/@/api/recruit/recruitexampeople'
const AddForm = defineAsyncComponent(() => import('./add-form.vue'))
const { hasAuth } = useAuth()
// 消息提示 hooks
const message = useMessage()
const messageBox = useMessageBox()

View File

@@ -58,7 +58,7 @@
<!-- 操作按钮 -->
<div class="mb15">
<el-button
v-auth="'recruit_recruitplanmajor_add'"
v-if="hasAuth('recruit_recruitplanmajor_add')"
type="primary"
icon="FolderAdd"
@click="addOrUpdateHandle"
@@ -74,6 +74,7 @@
v-loading="state.loading"
border
stripe
row-key="id"
:cell-style="tableStyle.cellStyle"
:header-cell-style="tableStyle.headerCellStyle"
>
@@ -124,7 +125,6 @@
<el-table-column label="操作" width="150" align="center" fixed="right">
<template #default="scope">
<el-button
v-auth="'recruit_recruitplanmajor_edit'"
type="primary"
link
icon="EditPen"
@@ -133,7 +133,7 @@
修改
</el-button>
<el-button
v-auth="'recruit_recruitplanmajor_del'"
v-if="hasAuth('recruit_recruitplanmajor_del')"
type="danger"
link
icon="Delete"
@@ -160,6 +160,7 @@
<script setup lang="ts" name="recruitplanmajor">
import { ref, reactive, onMounted, nextTick, defineAsyncComponent } from 'vue'
import { useAuth } from '/@/hooks/auth'
import { BasicTableProps, useTable } from '/@/hooks/table'
import { useMessage, useMessageBox } from '/@/hooks/message'
import { useDict } from '/@/hooks/dict'
@@ -169,7 +170,7 @@ import { getDeptList } from '/@/api/basic/basicclass'
import { getMajorNameList } from '/@/api/basic/major'
const TableForm = defineAsyncComponent(() => import('./detaiform.vue'))
const { hasAuth } = useAuth()
// 消息提示 hooks
const message = useMessage()
const messageBox = useMessageBox()

View File

@@ -76,7 +76,7 @@
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="对接人" prop="djUser" v-auth="'recruit_recruitprestudent_dj_sure'">
<el-form-item label="对接人" prop="djUser" v-if="hasAuth('recruit_recruitprestudent_dj_sure')">
<el-select v-model="dataForm.djUser" filterable clearable placeholder="" >
<el-option
v-for="item in contactNameList"
@@ -295,12 +295,14 @@
<script setup lang="ts">
import { ref, reactive, nextTick } from 'vue'
import { ElNotification } from 'element-plus'
import { useAuth } from '/@/hooks/auth'
import { getObj, addObjStu, putObj } from '/@/api/recruit/recruitprestudent'
import { getList } from '/@/api/recruit/recruitstudentplangroup'
import { getDicts } from '/@/api/admin/dict'
import { queryAllTeacherByRecruit } from '/@/api/professional/professionaluser/teacherbase'
import { verifyPhone, verifyAdmissionNumber } from '/@/utils/toolsValidate'
const { hasAuth } = useAuth()
// Props
const props = defineProps<{
planList?: any[]

View File

@@ -85,7 +85,7 @@
<!-- 操作按钮 -->
<div class="mb15">
<el-button
v-auth="'recruit_recruitprestudent_add'"
v-if="hasAuth('recruit_recruitprestudent_add')"
type="primary"
icon="FolderAdd"
@click="addOrUpdateHandle(null)"
@@ -111,6 +111,7 @@
v-loading="state.loading"
border
stripe
row-key="id"
:cell-style="tableStyle.cellStyle"
:header-cell-style="tableStyle.headerCellStyle"
>
@@ -145,7 +146,7 @@
<el-table-column label="操作" width="250" align="center" fixed="right">
<template #default="scope">
<el-button
v-auth="'recruit_recruitprestudent_edit'"
v-if="hasAuth('recruit_recruitprestudent_edit')"
type="primary"
link
icon="EditPen"
@@ -154,8 +155,7 @@
修改
</el-button>
<el-button
v-auth="'recruit_recruitprestudent_dj'"
v-if="scope.row.isDj == '0'"
v-if="hasAuth('recruit_recruitprestudent_dj') && scope.row.isDj == '0'"
type="primary"
link
icon="Connection"
@@ -164,7 +164,7 @@
确认对接
</el-button>
<el-button
v-auth="'recruit_recruitprestudent_del'"
v-if="hasAuth('recruit_recruitprestudent_del')"
type="danger"
link
icon="Delete"
@@ -197,6 +197,7 @@
<script setup lang="ts" name="recruitprestudent">
import { ref, reactive, onMounted, nextTick, defineAsyncComponent } from 'vue'
import { useAuth } from '/@/hooks/auth'
import { BasicTableProps, useTable } from '/@/hooks/table'
import { useDict } from '/@/hooks/dict'
import { useMessage, useMessageBox } from '/@/hooks/message'
@@ -208,7 +209,7 @@ import { queryByGroupId as schoolListApi} from '/@/api/recruit/recruitstudentsch
import { getDeptListByLevelTwo } from '/@/api/basic/basicdept'
const TableForm = defineAsyncComponent(() => import('./enrolplantemplate-form.vue'))
const { hasAuth } = useAuth()
// 消息提示 hooks
const message = useMessage()
const messageBox = useMessageBox()

View File

@@ -45,7 +45,7 @@
<!-- 操作按钮 -->
<div class="mb15">
<el-button
v-auth="'recruit_recruitschoolcode_add'"
v-if="hasAuth('recruit_recruitschoolcode_add')"
type="primary"
icon="FolderAdd"
@click="addOrUpdateHandle()"
@@ -53,7 +53,7 @@
新增
</el-button>
<el-button
v-auth="'recruit_recruitschoolcode_add'"
v-if="hasAuth('recruit_recruitschoolcode_add')"
type="primary"
plain
icon="UploadFilled"
@@ -85,7 +85,7 @@
<el-table-column label="操作" width="150" align="center" fixed="right">
<template #default="scope">
<el-button
v-auth="'recruit_recruitschoolcode_edit'"
v-if="hasAuth('recruit_recruitschoolcode_edit')"
type="primary"
link
icon="EditPen"
@@ -94,7 +94,7 @@
修改
</el-button>
<el-button
v-auth="'recruit_recruitschoolcode_del'"
v-if="hasAuth('recruit_recruitschoolcode_del')"
type="danger"
link
icon="Delete"
@@ -164,6 +164,7 @@
<script setup lang="ts" name="recruitschoolcode">
import { ref, reactive, onMounted, defineAsyncComponent } from 'vue'
import { useAuth } from '/@/hooks/auth'
import { BasicTableProps, useTable } from '/@/hooks/table'
import { useMessage, useMessageBox } from '/@/hooks/message'
import { getList } from '/@/api/recruit/recruitstudentplangroup'
@@ -171,7 +172,7 @@ import { delObj, fetchList } from '/@/api/recruit/recruitschoolcode'
import request from '/@/utils/request'
const TableForm = defineAsyncComponent(() => import('./detaiform.vue'))
const { hasAuth } = useAuth()
// 消息提示 hooks
const message = useMessage()
const messageBox = useMessageBox()

View File

@@ -24,7 +24,7 @@
<el-button type="primary" icon="Search" @click="getDataList">查询</el-button>
<el-button type="primary" plain icon="Refresh" class="ml10" @click="resetQuery">重置</el-button>
</el-form-item>
<el-form-item v-auth="'recruit_recruitstudentplan_add'">
<el-form-item v-if="hasAuth('recruit_recruitstudentplan_add')">
<el-button type="primary" icon="FolderAdd" class="ml10" @click="handleAdd">新增</el-button>
</el-form-item>
</el-form>
@@ -36,6 +36,7 @@
v-loading="state.loading"
border
stripe
row-key="id"
:cell-style="tableStyle.cellStyle"
:header-cell-style="tableStyle.headerCellStyle"
>
@@ -60,7 +61,7 @@
<el-table-column label="操作" width="150" align="center" fixed="right">
<template #default="scope">
<el-button
v-auth="'recruit_recruitstudentplan_edit'"
v-if="hasAuth('recruit_recruitstudentplan_edit')"
type="primary"
link
icon="EditPen"
@@ -69,7 +70,7 @@
编辑
</el-button>
<el-button
v-auth="'recruit_recruitstudentplan_del'"
v-if="hasAuth('recruit_recruitstudentplan_del')"
type="danger"
link
icon="Delete"
@@ -168,10 +169,12 @@
<script setup lang="ts" name="recruitstudentplan">
import { ref, reactive } from 'vue'
import { useAuth } from '/@/hooks/auth'
import { BasicTableProps, useTable } from '/@/hooks/table'
import { useMessage, useMessageBox } from '/@/hooks/message'
import { addObj, delObj, fetchList, putObj } from '/@/api/recruit/recruitstudentplan'
const { hasAuth } = useAuth()
// 消息提示 hooks
const message = useMessage()
const messageBox = useMessageBox()

View File

@@ -22,7 +22,7 @@
<!-- 操作按钮 -->
<div class="mb15">
<el-button
v-auth="'recruit_recruitstudentplancorrectscoreconfig_add'"
v-if="hasAuth('recruit_recruitstudentplancorrectscoreconfig_add')"
type="primary"
icon="FolderAdd"
@click="addOrUpdateHandle"
@@ -38,6 +38,7 @@
v-loading="state.loading"
border
stripe
row-key="id"
:cell-style="tableStyle.cellStyle"
:header-cell-style="tableStyle.headerCellStyle"
>
@@ -52,7 +53,7 @@
<el-table-column label="操作" width="150" align="center" fixed="right">
<template #default="scope">
<el-button
v-auth="'recruit_recruitstudentplancorrectscoreconfig_edit'"
v-if="hasAuth('recruit_recruitstudentplancorrectscoreconfig_edit')"
type="primary"
link
icon="EditPen"
@@ -61,7 +62,7 @@
修改
</el-button>
<el-button
v-auth="'recruit_recruitstudentplancorrectscoreconfig_del'"
v-if="hasAuth('recruit_recruitstudentplancorrectscoreconfig_del')"
type="danger"
link
icon="Delete"
@@ -88,13 +89,14 @@
<script setup lang="ts" name="recruitstudentplancorrectscoreconfig">
import { ref, reactive, onMounted, nextTick, defineAsyncComponent } from 'vue'
import { useAuth } from '/@/hooks/auth'
import { BasicTableProps, useTable } from '/@/hooks/table'
import { useMessage, useMessageBox } from '/@/hooks/message'
import { getList } from '/@/api/recruit/recruitstudentplangroup'
import { fetchList, delObj } from '/@/api/recruit/recruitstudentplancorrectscoreconfig'
const TableForm = defineAsyncComponent(() => import('./detaiform.vue'))
const { hasAuth } = useAuth()
// 消息提示 hooks
const message = useMessage()
const messageBox = useMessageBox()

View File

@@ -24,7 +24,7 @@
<el-button type="primary" icon="Search" @click="getDataList">查询</el-button>
<el-button type="primary" plain icon="Refresh" class="ml10" @click="resetQuery">重置</el-button>
</el-form-item>
<el-form-item v-auth="'recruit_recruitstudentplandegreeofeducation_add'">
<el-form-item v-if="hasAuth('recruit_recruitstudentplandegreeofeducation_add')">
<el-button type="primary" icon="FolderAdd" class="ml10" @click="handleAdd">新增</el-button>
</el-form-item>
</el-form>
@@ -36,6 +36,7 @@
v-loading="state.loading"
border
stripe
row-key="id"
:cell-style="tableStyle.cellStyle"
:header-cell-style="tableStyle.headerCellStyle"
>
@@ -48,7 +49,7 @@
<el-table-column label="操作" width="150" align="center" fixed="right">
<template #default="scope">
<el-button
v-auth="'recruit_recruitstudentplandegreeofeducation_edit'"
v-if="hasAuth('recruit_recruitstudentplandegreeofeducation_edit')"
type="primary"
link
icon="EditPen"
@@ -57,7 +58,7 @@
编辑
</el-button>
<el-button
v-auth="'recruit_recruitstudentplandegreeofeducation_del'"
v-if="hasAuth('recruit_recruitstudentplandegreeofeducation_del')"
type="danger"
link
icon="Delete"
@@ -114,10 +115,12 @@
<script setup lang="ts" name="recruitstudentplandegreeofeducation">
import { ref, reactive } from 'vue'
import { useAuth } from '/@/hooks/auth'
import { BasicTableProps, useTable } from '/@/hooks/table'
import { useMessage, useMessageBox } from '/@/hooks/message'
import { addObj, delObj, fetchList, putObj } from '/@/api/recruit/recruitstudentplandegreeofeducation'
const { hasAuth } = useAuth()
// 消息提示 hooks
const message = useMessage()
const messageBox = useMessageBox()

View File

@@ -15,10 +15,10 @@
<!-- 操作按钮 -->
<div class="mb15">
<el-button v-auth="'recruit_recruitstudentplangroup_add'" type="primary" icon="FolderAdd" @click="addOrUpdateHandle()">
<el-button v-if="hasAuth('recruit_recruitstudentplangroup_add')" type="primary" icon="FolderAdd" @click="addOrUpdateHandle()">
</el-button>
<el-button v-auth="'recruit_recruitexampeople_add'" type="primary" plain icon="UserFilled" class="ml10" @click="editExam">
<el-button v-if="hasAuth('recruit_recruitexampeople_add')" type="primary" plain icon="UserFilled" class="ml10" @click="editExam">
审核人员管理
</el-button>
</div>
@@ -30,6 +30,7 @@
v-loading="state.loading"
border
stripe
row-key="id"
:cell-style="tableStyle.cellStyle"
:header-cell-style="tableStyle.headerCellStyle"
>
@@ -106,7 +107,7 @@
<el-table-column label="操作" width="240" align="center" fixed="right">
<template #default="scope">
<el-button
v-auth="'recruit_recruitstudentplangroup_edit'"
v-if="hasAuth('recruit_recruitstudentplangroup_edit')"
type="primary"
link
icon="EditPen"
@@ -114,10 +115,10 @@
>
修改
</el-button>
<el-button v-auth="'recruit_recruitstudentplangroup_edit'" type="primary" link icon="Switch" @click="majorHandle(scope.row)">
<el-button v-if="hasAuth('recruit_recruitstudentplangroup_edit')" type="primary" link icon="Switch" @click="majorHandle(scope.row)">
专业调整
</el-button>
<el-button v-auth="'recruit_recruitstudentplangroup_del'" type="danger" link icon="Delete" @click="deleteHandle(scope.row.id)">
<el-button v-if="hasAuth('recruit_recruitstudentplangroup_del')" type="danger" link icon="Delete" @click="deleteHandle(scope.row.id)">
删除
</el-button>
</template>
@@ -142,6 +143,7 @@
<script setup lang="ts" name="recruitstudentplangroup">
import { ref, reactive, onMounted, nextTick, defineAsyncComponent, watch } from 'vue';
import { useAuth } from '/@/hooks/auth';
import { BasicTableProps, useTable } from '/@/hooks/table';
import { useMessage, useMessageBox } from '/@/hooks/message';
import { delObj, fetchList, putObj, editQuickField } from '/@/api/recruit/recruitstudentplangroup';
@@ -152,7 +154,7 @@ import { Calendar } from '@element-plus/icons-vue';
const TableForm = defineAsyncComponent(() => import('./enrolplantemplate-form.vue'));
const MajorGroupByDeptForm = defineAsyncComponent(() => import('@/views/recruit/recruitplanmajor/majorGroupByDept.vue'));
const ExamPeopleIndex = defineAsyncComponent(() => import('@/views/recruit/recruitexampeople/index.vue'));
const { hasAuth } = useAuth();
// 消息提示 hooks
const message = useMessage();
const messageBox = useMessageBox();

View File

@@ -42,7 +42,7 @@
<!-- 操作按钮 -->
<div class="mb15">
<el-button
v-auth="'recruit_recruitstudentplangroup_add'"
v-if="hasAuth('recruit_recruitstudentplangroup_add')"
type="primary"
icon="FolderAdd"
@click="addOrUpdateHandle"
@@ -58,6 +58,7 @@
v-loading="state.loading"
border
stripe
row-key="id"
:cell-style="tableStyle.cellStyle"
:header-cell-style="tableStyle.headerCellStyle"
>
@@ -77,7 +78,7 @@
<el-table-column label="操作" width="150" align="center" fixed="right">
<template #default="scope">
<el-button
v-auth="'recruit_recruitstudentschool_edit'"
v-if="hasAuth('recruit_recruitstudentschool_edit')"
type="primary"
link
icon="EditPen"
@@ -86,7 +87,7 @@
修改
</el-button>
<el-button
v-auth="'recruit_recruitstudentschool_del'"
v-if="hasAuth('recruit_recruitstudentschool_del')"
type="danger"
link
icon="Delete"
@@ -114,6 +115,7 @@
<script setup lang="ts" name="recruitstudentschool">
import { ref, reactive, onMounted, nextTick, defineAsyncComponent } from 'vue'
import { useAuth } from '/@/hooks/auth'
import { BasicTableProps, useTable } from '/@/hooks/table'
import { useMessage, useMessageBox } from '/@/hooks/message'
import { getList } from '/@/api/recruit/recruitstudentplangroup'
@@ -122,7 +124,7 @@ import { getDeptList } from '/@/api/basic/basicclass'
const TableForm = defineAsyncComponent(() => import('./detaiform.vue'))
const MajorGroupByDeptForm = defineAsyncComponent(() => import('/@/views/recruit/recruitplanmajor/majorGroupByDept.vue'))
const { hasAuth } = useAuth()
// 消息提示 hooks
const message = useMessage()
const messageBox = useMessageBox()

View File

@@ -6,7 +6,7 @@
<template #footer>
<div class="dialog-footer">
<el-button @click="handleClose"> </el-button>
<el-button @click="handleConfirm" v-auth="'recruit_recruitstudentsignup_sureLQTZ'" v-if="canConfirm" type="primary">确认已发放</el-button>
<el-button @click="handleConfirm" v-if="hasAuth('recruit_recruitstudentsignup_sureLQTZ') && canConfirm" type="primary">确认已发放</el-button>
</div>
</template>
</el-dialog>
@@ -15,12 +15,14 @@
<script>
import { ref } from 'vue'
import { ElMessage, ElMessageBox } from 'element-plus'
import { useAuth } from '/@/hooks/auth'
import { toWord, sureLQTZ } from '/@/api/recruit/recruitstudentsignup'
export default {
name: 'AdmissionNoticeDialog',
emits: ['refresh'],
setup(props, { emit }) {
const { hasAuth } = useAuth()
const visible = ref(false)
const pdfPath = ref('')
const currentId = ref('')
@@ -61,6 +63,7 @@ export default {
}
return {
hasAuth,
visible,
pdfPath,
canConfirm,

View File

@@ -669,10 +669,10 @@
<template #footer v-if="isEdit">
<div class="dialog-footer">
<el-button @click="visible = false">取消</el-button>
<el-button type="primary" @click="dataFormSubmit('0')" v-auth="'recruit_recruitstudentsignup_add'" v-if="canSubmit&&!dataForm.id">保存并送审</el-button>
<el-button type="primary" @click="dataFormSubmit('0')" v-auth="'recruit_recruitstudentsignup_edit'" v-if="canSubmit&&dataForm.id">保存</el-button>
<el-button type="success" icon="CircleCheck" @click="dataFormSubmit('20')" v-auth="'signup_info_exam'" v-if="canSubmit&&dataForm.id">确认录取</el-button>
<el-button type="danger" icon="CircleClose" @click="dataFormSubmit('-20')" v-auth="'signup_info_exam'" v-if="canSubmit&&dataForm.id">驳回录取</el-button>
<el-button type="primary" @click="dataFormSubmit('0')" v-if="hasAuth('recruit_recruitstudentsignup_add') && canSubmit&&!dataForm.id">保存并送审</el-button>
<el-button type="primary" @click="dataFormSubmit('0')" v-if="hasAuth('recruit_recruitstudentsignup_edit') && canSubmit&&dataForm.id">保存</el-button>
<el-button type="success" icon="CircleCheck" @click="dataFormSubmit('20')" v-if="hasAuth('signup_info_exam') && canSubmit&&dataForm.id">确认录取</el-button>
<el-button type="danger" icon="CircleClose" @click="dataFormSubmit('-20')" v-if="hasAuth('signup_info_exam') && canSubmit&&dataForm.id">驳回录取</el-button>
</div>
</template>
@@ -686,6 +686,7 @@
import { ref, reactive, nextTick, watch, computed, onMounted } from 'vue'
import { ElNotification } from 'element-plus'
import { Plus } from '@element-plus/icons-vue'
import { useAuth } from '/@/hooks/auth'
import { useMessage, useMessageBox } from '/@/hooks/message'
import { Session } from '/@/utils/storage'
import axios from 'axios'
@@ -701,6 +702,7 @@ import { getNationalList } from "/@/api/basic/basicnation"
import { verifyAdmissionNumber, verifyPhone } from '/@/utils/toolsValidate'
import { AUDIT_STATUS_LIST, getStatusConfig } from '/@/config/global'
const { hasAuth } = useAuth()
const message = useMessage()
const messageBox = useMessageBox()
// Emits

View File

@@ -275,17 +275,17 @@
<el-row>
<div class="mb15" style="width: 100%;">
<el-button
v-if="hasAuth('recruit_send_img')"
type="primary"
icon="FolderAdd"
v-auth="'recruit_send_img'"
@click="handleAddData">新增
</el-button>
<el-button
v-if="hasAuth('zipExport')"
type="warning"
plain
v-auth="'zipExport'"
icon="Download"
@click="downZip()">招生名单打包导出
@click="downZip()">招生名单打包导出
</el-button>
<el-button
class="ml10"
@@ -642,9 +642,9 @@
import { ref, reactive, onMounted, nextTick, defineAsyncComponent, watch } from 'vue'
import { Edit, Check, DocumentChecked, Close, Switch, Tickets, Document, Warning, User, CircleCheck } from '@element-plus/icons-vue'
import ClickableTag from '/@/components/ClickableTag/index.vue'
import { useAuth } from '/@/hooks/auth'
import { useMessage, useMessageBox } from '/@/hooks/message'
import { BasicTableProps, useTable } from '/@/hooks/table'
import { auth } from '/@/utils/authFunction'
import axios from 'axios'
import { getList } from '/@/api/recruit/recruitstudentplangroup'
import {
@@ -681,7 +681,7 @@ const InterviewForm = defineAsyncComponent(() => import('/@/views/recruit/recrui
const PayQrcodeDialog = defineAsyncComponent(() => import('./PayQrcodeDialog.vue'))
const AdmissionNoticeDialog = defineAsyncComponent(() => import('./AdmissionNoticeDialog.vue'))
const ActionDropdown = defineAsyncComponent(() => import('/@/components/tools/action-dropdown.vue'))
const { hasAuth } = useAuth()
// 消息提示 hooks
const message = useMessage()
const messageBox = useMessageBox()
@@ -989,68 +989,68 @@ const getActionMenuItems = (row: any) => {
command: 'edit',
label: '补材料',
icon: Edit,
visible: () => auth('recruit_recruitstudentsignup_edit')
visible: () => hasAuth('recruit_recruitstudentsignup_edit')
},
{
command: 'interview',
label: '面试',
icon: Check,
visible: () => auth('recruit_recruitstudentsignup_interview') && row.canInterview
visible: () => hasAuth('recruit_recruitstudentsignup_interview') && row.canInterview
},
{
command: 'audit',
label: '审核',
icon: DocumentChecked,
visible: () => auth('recruit_recruitstudentsignup_edit') && row.canExam
visible: () => hasAuth('recruit_recruitstudentsignup_edit') && row.canExam
},
{
command: 'leaveSchool',
label: '退学',
icon: Close,
visible: () => auth('recruit_recruitstudentsignup_leaveSchool') && row.canQuit
visible: () => hasAuth('recruit_recruitstudentsignup_leaveSchool') && row.canQuit
},
// 复学
{
command: 'reEntry',
label: '复学',
icon: Check,
visible: () => auth('recruit_resetsign') && row.canReset
visible: () => hasAuth('recruit_resetsign') && row.canReset
},
{
command: 'majorChange',
label: '调整专业',
icon: Switch,
visible: () => auth('recruit_recruitstudentsignup_change') && row.canChangeMajor
visible: () => hasAuth('recruit_recruitstudentsignup_change') && row.canChangeMajor
},
{
command: 'payQrcode',
label: '支付二维码',
icon: Tickets,
visible: () => auth('recruit_recruitstudentsignup_show') && row.canPayQrcode
visible: () => hasAuth('recruit_recruitstudentsignup_show') && row.canPayQrcode
},
{
command: 'rePush',
label: '重新推送',
icon: Check,
visible: () => auth('recruit_recruitstudentsignup_rePush') && row.rePush
visible: () => hasAuth('recruit_recruitstudentsignup_rePush') && row.rePush
},
{
command: 'admissionNotice',
label: '录取通知书',
icon: Document,
visible: () => auth('recruit_recruitstudentsignup_show') && row.canPrintReport
visible: () => hasAuth('recruit_recruitstudentsignup_show') && row.canPrintReport
},
{
command: 'infoTable',
label: '信息表',
icon: Document,
visible: () => auth('recruit_recruitstudentsignup_show') && row.canShowInfo
visible: () => hasAuth('recruit_recruitstudentsignup_show') && row.canShowInfo
},
// {
// command: 'pushCity',
// label: '推送市局',
// icon: Upload,
// visible: () => auth('recruit_recruitstudentsignup_push') && row.auditStatus == '20'
// visible: () => hasAuth('recruit_recruitstudentsignup_push') && row.auditStatus == '20'
// }
]
}

View File

@@ -209,7 +209,7 @@
@click="handleExport()">分班导出
</el-button>
<el-button
v-auth="'recruit_banding'"
v-if="hasAuth('recruit_banding')"
class="ml10"
type="danger"
plain
@@ -217,7 +217,7 @@
@click="oneClassHandle()">一键分班
</el-button>
<el-button
v-auth="'recruit_banding'"
v-if="hasAuth('recruit_banding')"
class="ml10"
type="danger"
plain
@@ -225,7 +225,7 @@
@click="oneStuNoHandle()">一键分学号
</el-button>
<el-button
v-auth="'recruit_synchronous_stuwork'"
v-if="hasAuth('recruit_synchronous_stuwork')"
class="ml10"
type="primary"
plain
@@ -329,8 +329,7 @@
查看
</el-button>
<el-button
v-if="scope.row.isTb=='0' && scope.row.classNo !=null"
v-auth="'recruit_banding'"
v-if="hasAuth('recruit_banding') && scope.row.isTb=='0' && scope.row.classNo !=null"
type="primary"
link
icon="Switch"
@@ -387,6 +386,7 @@
<script setup lang="ts">
import { ref, reactive, nextTick, onMounted, defineAsyncComponent } from 'vue'
import { useAuth } from '/@/hooks/auth'
import { useMessage } from '/@/hooks/message'
import { useMessageBox } from '/@/hooks/message'
import { BasicTableProps, useTable } from '/@/hooks/table'
@@ -411,7 +411,7 @@ import { useDict } from '/@/hooks/dict'
const TableForm = defineAsyncComponent(() => import('./detaiform.vue'))
const GenderTag = defineAsyncComponent(() => import('/@/components/GenderTag/index.vue'))
const { hasAuth } = useAuth()
// 使用 hooks
const message = useMessage()

View File

@@ -87,14 +87,14 @@
<!-- 操作按钮 -->
<div class="mb15">
<el-button
v-auth="'recruitStuDorm'"
v-if="hasAuth('recruitStuDorm')"
icon="Setting"
@click="setDormFW"
>
设置住宿范围
</el-button>
<el-button
v-auth="'recruitStuDorm'"
v-if="hasAuth('recruitStuDorm')"
type="danger"
plain
icon="Location"
@@ -104,7 +104,7 @@
一键判断住宿范围
</el-button>
<el-button
v-auth="'recruitStuDormMess'"
v-if="hasAuth('recruitStuDormMess')"
type="danger"
plain
icon="Message"
@@ -167,8 +167,7 @@
<el-table-column label="操作" width="300" align="center" fixed="right">
<template #default="scope">
<el-button
v-auth="'recruitStuDormSd'"
v-if="scope.row.isOutFw != '1'"
v-if="hasAuth('recruitStuDormSd') && scope.row.isOutFw != '1'"
type="primary"
link
icon="CircleCheck"
@@ -177,8 +176,7 @@
设为范围内
</el-button>
<el-button
v-auth="'recruitStuDormSd'"
v-if="scope.row.isOutFw != '2'"
v-if="hasAuth('recruitStuDormSd') && scope.row.isOutFw != '2'"
type="primary"
link
icon="Close"
@@ -195,7 +193,7 @@
家庭地址
</el-button>
<el-button
v-auth="'recruitStuDormDel'"
v-if="hasAuth('recruitStuDormDel')"
type="danger"
link
icon="Delete"
@@ -221,6 +219,7 @@
<script setup lang="ts" name="recruitstudentsignupList">
import { ref, reactive, onMounted, nextTick, defineAsyncComponent } from 'vue'
import { useAuth } from '/@/hooks/auth'
import { BasicTableProps, useTable } from '/@/hooks/table'
import { useMessage, useMessageBox } from '/@/hooks/message'
import { useDict } from '/@/hooks/dict'
@@ -233,7 +232,7 @@ const GenderTag = defineAsyncComponent(() => import('/@/components/GenderTag/ind
const SearchForm = defineAsyncComponent(() => import('/@/components/SearchForm/index.vue'))
const DormFW = defineAsyncComponent(() => import('./dormFW.vue'))
const ShowMap = defineAsyncComponent(() => import('./showMap.vue'))
const { hasAuth } = useAuth()
// 消息提示 hooks
const message = useMessage()
const messageBox = useMessageBox()

View File

@@ -33,7 +33,7 @@
filterable
clearable
placeholder=""
:disabled="!(auth('recruit_recruitprestudent_dj_sure') || dataForm.auditStatus != '20')">
:disabled="!(hasAuth('recruit_recruitprestudent_dj_sure') || dataForm.auditStatus != '20')">
<el-option
v-for="item in contactNameList"
:key="item.teacherNo"
@@ -183,9 +183,9 @@
<template #footer>
<div class="dialog-footer">
<el-button @click="visible = false">取消</el-button>
<el-button type="primary" @click="dataFormSubmit('1')" v-auth="'recruit_recruitstudentsignup_edit'" v-if="canSubmit">保存</el-button>
<el-button type="success" icon="CircleCheck" @click="dataFormSubmit('2')" v-auth="'signup_material_exam'" v-if="canSubmit">通过</el-button>
<el-button type="danger" icon="CircleClose" @click="dataFormSubmit('3')" v-auth="'signup_material_exam'" v-if="canSubmit">驳回</el-button>
<el-button type="primary" @click="dataFormSubmit('1')" v-if="hasAuth('recruit_recruitstudentsignup_edit') && canSubmit">保存</el-button>
<el-button type="success" icon="CircleCheck" @click="dataFormSubmit('2')" v-if="hasAuth('signup_material_exam') && canSubmit">通过</el-button>
<el-button type="danger" icon="CircleClose" @click="dataFormSubmit('3')" v-if="hasAuth('signup_material_exam') && canSubmit">驳回</el-button>
</div>
</template>
@@ -198,16 +198,17 @@
<script setup lang="ts">
import { ref, reactive, nextTick, computed, onMounted } from 'vue'
import { Plus } from '@element-plus/icons-vue'
import { useAuth } from '/@/hooks/auth'
import { useMessage } from '/@/hooks/message'
import { Session } from '/@/utils/storage'
import axios from 'axios'
import { auth } from '/@/utils/authFunction'
import { getObj, materialExam } from '/@/api/recruit/recruitstudentsignup'
import { getList } from '/@/api/recruit/recruitstudentplangroup'
import { queryAllTeacher } from '/@/api/professional/professionaluser/teacherbase'
import { AUDIT_STATUS_LIST, getStatusConfig } from '/@/config/global'
const auditStatusList = AUDIT_STATUS_LIST
const { hasAuth } = useAuth()
// 消息提示 hooks
const message = useMessage()

View File

@@ -155,8 +155,7 @@
<el-table-column label="操作" width="100" align="center" fixed="right">
<template #default="scope">
<el-button
v-auth="'recruit_recruitstudentsignupturnover_edit'"
v-if="scope.row.isMajorChange == '1'"
v-if="hasAuth('recruit_recruitstudentsignupturnover_edit') && scope.row.isMajorChange == '1'"
type="primary"
link
icon="EditPen"
@@ -212,6 +211,7 @@
<script setup lang="ts" name="recruitstudentsignupturnover">
import { ref, reactive, computed, onMounted } from 'vue'
import { useAuth } from '/@/hooks/auth'
import { BasicTableProps, useTable } from '/@/hooks/table'
import { useMessage } from '/@/hooks/message'
import { fetchList, putObj } from '/@/api/recruit/recruitstudentsignupturnover'
@@ -222,6 +222,7 @@ import { Warning, InfoFilled } from '@element-plus/icons-vue'
import { TURNOVER_AUDIT_STATUS_LIST, getStatusConfig } from '/@/config/global'
import { getDicts } from '/@/api/admin/dict'
const { hasAuth } = useAuth()
// 消息提示 hooks
const message = useMessage()

View File

@@ -30,7 +30,7 @@
<el-row>
<div>
<el-button
v-auth="'recruit_recruitstudentsignupturnovermoneychange_add'"
v-if="hasAuth('recruit_recruitstudentsignupturnovermoneychange_add')"
type="primary"
icon="FolderAdd"
@click="handleAdd">
@@ -45,6 +45,7 @@
v-loading="state.loading"
border
stripe
row-key="id"
:cell-style="tableStyle.cellStyle"
:header-cell-style="tableStyle.headerCellStyle"
>
@@ -62,7 +63,7 @@
<el-table-column label="操作" width="150" align="center" fixed="right">
<template #default="scope">
<el-button
v-auth="'recruit_recruitstudentsignupturnovermoneychange_edit'"
v-if="hasAuth('recruit_recruitstudentsignupturnovermoneychange_edit')"
type="primary"
link
icon="EditPen"
@@ -71,7 +72,7 @@
编辑
</el-button>
<el-button
v-auth="'recruit_recruitstudentsignupturnovermoneychange_del'"
v-if="hasAuth('recruit_recruitstudentsignupturnovermoneychange_del')"
type="danger"
link
icon="Delete"
@@ -98,10 +99,12 @@
<script setup lang="ts" name="recruitstudentsignupturnovermoneychange">
import { ref, reactive, defineAsyncComponent, nextTick } from 'vue'
import { useAuth } from '/@/hooks/auth'
import { BasicTableProps, useTable } from '/@/hooks/table'
import { useMessage, useMessageBox } from '/@/hooks/message'
import { delObj, fetchList } from '/@/api/recruit/recruitstudentsignupturnovermoneychange'
const { hasAuth } = useAuth()
// 定义组件
const FormDialog = defineAsyncComponent(() => import('./form.vue'))