a
This commit is contained in:
@@ -18,6 +18,7 @@ export function getTypeValue(type: string | number) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// 批量获取字典类型值
|
// 批量获取字典类型值
|
||||||
export function getDictsByTypes(types: string[]) {
|
export function getDictsByTypes(types: string[]) {
|
||||||
return request({
|
return request({
|
||||||
|
|||||||
@@ -4,8 +4,9 @@
|
|||||||
:close-on-click-modal="false"
|
:close-on-click-modal="false"
|
||||||
v-model="visible"
|
v-model="visible"
|
||||||
append-to-body
|
append-to-body
|
||||||
|
width="600px"
|
||||||
>
|
>
|
||||||
<el-form :model="dataForm" :rules="dataRule" ref="dataFormRef" @keyup.enter="dataFormSubmit" label-width="140px">
|
<el-form :model="dataForm" :rules="dataRule" ref="dataFormRef" @keyup.enter="dataFormSubmit" label-width="120px">
|
||||||
|
|
||||||
<el-form-item label="模拟学生" prop="serialNumber">
|
<el-form-item label="模拟学生" prop="serialNumber">
|
||||||
<el-select
|
<el-select
|
||||||
@@ -15,7 +16,7 @@
|
|||||||
remote
|
remote
|
||||||
clearable
|
clearable
|
||||||
reserve-keyword
|
reserve-keyword
|
||||||
:disabled="!!dataForm.id" placeholder="请选择唯一号" size="small" style="width: 100%"
|
:disabled="!!dataForm.id" placeholder="请选择唯一号"
|
||||||
:remote-method="remoteTeacherByQuery"
|
:remote-method="remoteTeacherByQuery"
|
||||||
>
|
>
|
||||||
<el-option
|
<el-option
|
||||||
@@ -27,7 +28,7 @@
|
|||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="来源" prop="isOut">
|
<el-form-item label="来源" prop="isOut">
|
||||||
<el-select v-model="dataForm.isOut" filterable disabled placeholder="请选择来源" size="small" style="width: 100%" >
|
<el-select v-model="dataForm.isOut" filterable disabled placeholder="请选择来源" >
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in isOutList"
|
v-for="item in isOutList"
|
||||||
:key="item.value"
|
:key="item.value"
|
||||||
@@ -37,7 +38,7 @@
|
|||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="拟报专业1" prop="wishMajorOne">
|
<el-form-item label="拟报专业1" prop="wishMajorOne">
|
||||||
<el-select v-model="dataForm.wishMajorOne" filterable placeholder="请选择拟报专业1" size="small" style="width: 100%">
|
<el-select v-model="dataForm.wishMajorOne" filterable placeholder="请选择拟报专业1" >
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in planMajorList"
|
v-for="item in planMajorList"
|
||||||
:key="item.majorCode"
|
:key="item.majorCode"
|
||||||
@@ -49,7 +50,7 @@
|
|||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="拟报专业2" prop="wishMajorTwo">
|
<el-form-item label="拟报专业2" prop="wishMajorTwo">
|
||||||
<el-select v-model="dataForm.wishMajorTwo" filterable placeholder="请选择拟报专业2" size="small" style="width: 100%">
|
<el-select v-model="dataForm.wishMajorTwo" filterable placeholder="请选择拟报专业2" >
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in planMajorList"
|
v-for="item in planMajorList"
|
||||||
:key="item.majorCode"
|
:key="item.majorCode"
|
||||||
@@ -61,7 +62,7 @@
|
|||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="拟报专业3" prop="wishMajorThree">
|
<el-form-item label="拟报专业3" prop="wishMajorThree">
|
||||||
<el-select v-model="dataForm.wishMajorThree" filterable placeholder="请选择拟报专业3" size="small" style="width: 100%">
|
<el-select v-model="dataForm.wishMajorThree" filterable placeholder="请选择拟报专业3" >
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in planMajorList"
|
v-for="item in planMajorList"
|
||||||
:key="item.majorCode"
|
:key="item.majorCode"
|
||||||
@@ -73,7 +74,7 @@
|
|||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="录取专业" prop="confirmedMajor">
|
<el-form-item label="录取专业" prop="confirmedMajor">
|
||||||
<el-select v-model="dataForm.confirmedMajor" filterable placeholder="请选择录取专业" size="small" style="width: 100%">
|
<el-select v-model="dataForm.confirmedMajor" filterable placeholder="请选择录取专业" >
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in planMajorEduList"
|
v-for="item in planMajorEduList"
|
||||||
:key="item.majorCode"
|
:key="item.majorCode"
|
||||||
@@ -97,9 +98,9 @@
|
|||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { ref, reactive, nextTick } from 'vue'
|
import { ref, reactive, nextTick } from 'vue'
|
||||||
import { ElNotification } from 'element-plus'
|
import { ElNotification } from 'element-plus'
|
||||||
import { addMNObj, getMNObj, putMNObj } from '@/api/recruit/recruitImitateAdjustBatch'
|
import { addMNObj, getMNObj, putMNObj } from '/@/api/recruit/recruitImitateAdjustBatch'
|
||||||
import { getList } from "@/api/recruit/recruitstudentsignup"
|
import { getList } from '/@/api/recruit/recruitstudentsignup'
|
||||||
import { listPlanByCondition as planMajor, listByEdu } from "@/api/recruit/recruitstudentplan"
|
import { listPlanByCondition as planMajor, listByEdu } from '/@/api/recruit/recruitstudentplan'
|
||||||
|
|
||||||
// Emits
|
// Emits
|
||||||
const emit = defineEmits<{
|
const emit = defineEmits<{
|
||||||
|
|||||||
@@ -45,7 +45,7 @@
|
|||||||
<!-- 操作按钮 -->
|
<!-- 操作按钮 -->
|
||||||
<div class="mb15">
|
<div class="mb15">
|
||||||
<el-button
|
<el-button
|
||||||
v-if="permissions.recruit_recruitImitateAdjustBatch_add"
|
v-auth="'recruit_recruitImitateAdjustBatch_add'"
|
||||||
type="primary"
|
type="primary"
|
||||||
icon="FolderAdd"
|
icon="FolderAdd"
|
||||||
@click="addOrUpdateHandle"
|
@click="addOrUpdateHandle"
|
||||||
@@ -68,10 +68,10 @@
|
|||||||
<el-table-column prop="batchName" label="批次名称" align="center" show-overflow-tooltip />
|
<el-table-column prop="batchName" label="批次名称" align="center" show-overflow-tooltip />
|
||||||
<el-table-column prop="batchCode" label="批次代码" align="center" show-overflow-tooltip />
|
<el-table-column prop="batchCode" label="批次代码" align="center" show-overflow-tooltip />
|
||||||
<el-table-column prop="peopleNumber" label="人数" align="center" show-overflow-tooltip />
|
<el-table-column prop="peopleNumber" label="人数" align="center" show-overflow-tooltip />
|
||||||
<el-table-column label="操作" width="300" align="center" fixed="right">
|
<el-table-column label="操作" width="380" align="center" fixed="right">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<el-button
|
<el-button
|
||||||
v-if="permissions.recruit_recruitImitateAdjustBatch_show"
|
v-auth="'recruit_recruitImitateAdjustBatch_show'"
|
||||||
type="primary"
|
type="primary"
|
||||||
link
|
link
|
||||||
icon="Document"
|
icon="Document"
|
||||||
@@ -80,7 +80,7 @@
|
|||||||
模拟列表
|
模拟列表
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button
|
<el-button
|
||||||
v-if="permissions.recruit_recruitImitateAdjustBatch_show"
|
v-auth="'recruit_recruitImitateAdjustBatch_show'"
|
||||||
type="warning"
|
type="warning"
|
||||||
link
|
link
|
||||||
icon="Download"
|
icon="Download"
|
||||||
@@ -89,7 +89,7 @@
|
|||||||
导出模拟结果
|
导出模拟结果
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button
|
<el-button
|
||||||
v-if="permissions.recruit_recruitImitateAdjustBatch_edit"
|
v-auth="'recruit_recruitImitateAdjustBatch_edit'"
|
||||||
type="primary"
|
type="primary"
|
||||||
link
|
link
|
||||||
icon="EditPen"
|
icon="EditPen"
|
||||||
@@ -98,8 +98,8 @@
|
|||||||
修改
|
修改
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button
|
<el-button
|
||||||
v-if="permissions.recruit_recruitImitateAdjustBatch_del"
|
v-auth="'recruit_recruitImitateAdjustBatch_del'"
|
||||||
type="danger"
|
type="primary"
|
||||||
link
|
link
|
||||||
icon="Delete"
|
icon="Delete"
|
||||||
@click="deleteHandle(scope.row.id)"
|
@click="deleteHandle(scope.row.id)"
|
||||||
@@ -125,9 +125,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts" name="recruitImitateAdjustBatch">
|
<script setup lang="ts" name="recruitImitateAdjustBatch">
|
||||||
import { ref, reactive, computed, onMounted, nextTick, defineAsyncComponent } from 'vue'
|
import { ref, reactive, onMounted, nextTick, defineAsyncComponent } from 'vue'
|
||||||
import { storeToRefs } from 'pinia'
|
|
||||||
import { useUserInfo } from '/@/stores/userInfo'
|
|
||||||
import { BasicTableProps, useTable } from '/@/hooks/table'
|
import { BasicTableProps, useTable } from '/@/hooks/table'
|
||||||
import { useMessage, useMessageBox } from '/@/hooks/message'
|
import { useMessage, useMessageBox } from '/@/hooks/message'
|
||||||
import { getList } from '/@/api/recruit/recruitstudentplangroup'
|
import { getList } from '/@/api/recruit/recruitstudentplangroup'
|
||||||
@@ -136,19 +134,6 @@ import { delObj, fetchList } from '/@/api/recruit/recruitImitateAdjustBatch'
|
|||||||
const TableForm = defineAsyncComponent(() => import('./detaiform.vue'))
|
const TableForm = defineAsyncComponent(() => import('./detaiform.vue'))
|
||||||
const MnTable = defineAsyncComponent(() => import('./mnTable.vue'))
|
const MnTable = defineAsyncComponent(() => import('./mnTable.vue'))
|
||||||
|
|
||||||
// 使用 Pinia store
|
|
||||||
const userInfoStore = useUserInfo()
|
|
||||||
const { userInfos } = storeToRefs(userInfoStore)
|
|
||||||
|
|
||||||
// 创建权限对象
|
|
||||||
const permissions = computed(() => {
|
|
||||||
const perms: Record<string, boolean> = {}
|
|
||||||
userInfos.value.authBtnList.forEach((perm: string) => {
|
|
||||||
perms[perm] = true
|
|
||||||
})
|
|
||||||
return perms
|
|
||||||
})
|
|
||||||
|
|
||||||
// 消息提示 hooks
|
// 消息提示 hooks
|
||||||
const message = useMessage()
|
const message = useMessage()
|
||||||
const messageBox = useMessageBox()
|
const messageBox = useMessageBox()
|
||||||
@@ -159,10 +144,6 @@ const searchFormRef = ref()
|
|||||||
const addOrUpdateRef = ref()
|
const addOrUpdateRef = ref()
|
||||||
const mnTableRef = ref()
|
const mnTableRef = ref()
|
||||||
|
|
||||||
// 弹窗状态
|
|
||||||
const addOrUpdateVisible = ref(false)
|
|
||||||
const mnTableVisible = ref(false)
|
|
||||||
|
|
||||||
// 数据
|
// 数据
|
||||||
const planList = ref<any[]>([])
|
const planList = ref<any[]>([])
|
||||||
|
|
||||||
|
|||||||
@@ -7,10 +7,9 @@
|
|||||||
>
|
>
|
||||||
<el-form :inline="true">
|
<el-form :inline="true">
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-button v-if="permissions.recruit_recruitImitateAdjustBatch_add" :icon="Plus" size="small" type="primary" @click="addOrUpdateHandle()">新增</el-button>
|
<el-button v-auth="'recruit_recruitImitateAdjustBatch_add'" icon="FolderAdd" type="primary" @click="addOrUpdateHandle()">新增</el-button>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
<div class="avue-crud">
|
|
||||||
<el-table
|
<el-table
|
||||||
:data="dataList"
|
:data="dataList"
|
||||||
border
|
border
|
||||||
@@ -35,8 +34,7 @@
|
|||||||
align="center"
|
align="center"
|
||||||
label="性别">
|
label="性别">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<span v-if="scope.row.gender==1">男</span>
|
<GenderTag :sex="scope.row.gender" />
|
||||||
<span v-if="scope.row.gender==2">女</span>
|
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
@@ -45,7 +43,7 @@
|
|||||||
align="center"
|
align="center"
|
||||||
label="学历">
|
label="学历">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
{{global.getLabelValueByPropes(eduList,scope.row.degreeOfEducation,{'key':'value','value':'label'})}}
|
{{ getLabelValueByProps(eduList, scope.row.degreeOfEducation, { key: 'value', value: 'label' }) }}
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
@@ -55,7 +53,7 @@
|
|||||||
align="center"
|
align="center"
|
||||||
label="拟报专业1">
|
label="拟报专业1">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
{{global.getLabelValueByPropes2(planMajorList,scope.row.wishMajorOne,{'key':'majorCode','value':'majorName'})}}
|
{{ getLabelValueByProps(planMajorList, scope.row.wishMajorOne, { key: 'majorCode', value: 'majorName' }) }}
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
@@ -65,7 +63,7 @@
|
|||||||
width="100px"
|
width="100px"
|
||||||
label="拟报专业2">
|
label="拟报专业2">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
{{global.getLabelValueByPropes2(planMajorList,scope.row.wishMajorTwo,{'key':'majorCode','value':'majorName'})}}
|
{{ getLabelValueByProps(planMajorList, scope.row.wishMajorTwo, { key: 'majorCode', value: 'majorName' }) }}
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
|
||||||
@@ -76,7 +74,7 @@
|
|||||||
width="100px"
|
width="100px"
|
||||||
label="拟报专业3">
|
label="拟报专业3">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
{{global.getLabelValueByPropes2(planMajorList,scope.row.wishMajorThree,{'key':'majorCode','value':'majorName'})}}
|
{{ getLabelValueByProps(planMajorList, scope.row.wishMajorThree, { key: 'majorCode', value: 'majorName' }) }}
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
@@ -85,7 +83,7 @@
|
|||||||
align="center"
|
align="center"
|
||||||
label="原录取专业">
|
label="原录取专业">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
{{global.getLabelValueByPropes2(planMajorList,scope.row.oldConfirmedMajor,{'key':'majorCode','value':'majorName'})}}
|
{{ getLabelValueByProps(planMajorList, scope.row.oldConfirmedMajor, { key: 'majorCode', value: 'majorName' }) }}
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
@@ -94,7 +92,7 @@
|
|||||||
align="center"
|
align="center"
|
||||||
label="模拟录取专业">
|
label="模拟录取专业">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
{{global.getLabelValueByPropes2(planMajorList,scope.row.confirmedMajor,{'key':'majorCode','value':'majorName'})}}
|
{{ getLabelValueByProps(planMajorList, scope.row.confirmedMajor, { key: 'majorCode', value: 'majorName' }) }}
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
@@ -113,49 +111,33 @@
|
|||||||
align="center"
|
align="center"
|
||||||
label="操作">
|
label="操作">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<el-button v-if="permissions.recruit_recruitImitateAdjustBatch_edit" type="text" size="small" :icon="Edit" @click="addOrUpdateHandle(scope.row.id)">修改</el-button>
|
<el-button v-auth="'recruit_recruitImitateAdjustBatch_edit'" type="text" size="small" :icon="Edit" @click="addOrUpdateHandle(scope.row.id)">修改</el-button>
|
||||||
<el-button v-if="permissions.recruit_recruitImitateAdjustBatch_del" type="text" size="small" :icon="Delete" @click="deleteHandle(scope.row.id)">删除</el-button>
|
<el-button v-auth="'recruit_recruitImitateAdjustBatch_del'" type="text" size="small" :icon="Delete" @click="deleteHandle(scope.row.id)">删除</el-button>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
</div>
|
|
||||||
|
|
||||||
<add-m-n-stu v-if="addMnStuVisible" ref="addMnStuRef" @refreshDataList="getDataList"></add-m-n-stu>
|
<add-m-n-stu v-if="addMnStuVisible" ref="addMnStuRef" @refreshDataList="getDataList"></add-m-n-stu>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { ref, reactive, computed, nextTick, defineAsyncComponent } from 'vue'
|
import { ref, reactive, nextTick, defineAsyncComponent } from 'vue'
|
||||||
import { storeToRefs } from 'pinia'
|
|
||||||
import { useUserInfo } from '/@/stores/userInfo'
|
|
||||||
import { useMessage, useMessageBox } from '/@/hooks/message'
|
import { useMessage, useMessageBox } from '/@/hooks/message'
|
||||||
import { Plus, Edit, Delete } from '@element-plus/icons-vue'
|
import { Edit, Delete } from '@element-plus/icons-vue'
|
||||||
import { getMNStuList, delMNObj } from '@/api/recruit/recruitImitateAdjustBatch'
|
import { getMNStuList, delMNObj } from '/@/api/recruit/recruitImitateAdjustBatch'
|
||||||
import { listPlanByCondition as planMajor } from "@/api/recruit/recruitstudentplan"
|
import { listPlanByCondition as planMajor } from '/@/api/recruit/recruitstudentplan'
|
||||||
import { getTypeValue } from "@/api/admin/dict"
|
import { getTypeValue } from '/@/api/admin/dict'
|
||||||
// @ts-ignore
|
import { getLabelValueByProps } from '/@/utils/dictLabel'
|
||||||
import global from '@/components/tools/commondict'
|
|
||||||
|
|
||||||
const AddMNStu = defineAsyncComponent(() => import('./addMNStu.vue'))
|
const AddMNStu = defineAsyncComponent(() => import('./addMNStu.vue'))
|
||||||
|
const GenderTag = defineAsyncComponent(() => import('@/components/GenderTag/index.vue'))
|
||||||
|
|
||||||
// Emits
|
// Emits
|
||||||
const emit = defineEmits<{
|
const emit = defineEmits<{
|
||||||
(e: 'refreshDataList'): void
|
(e: 'refreshDataList'): void
|
||||||
}>()
|
}>()
|
||||||
|
|
||||||
// 使用 Pinia store
|
|
||||||
const userInfoStore = useUserInfo()
|
|
||||||
const { userInfos } = storeToRefs(userInfoStore)
|
|
||||||
|
|
||||||
// 创建权限对象
|
|
||||||
const permissions = computed(() => {
|
|
||||||
const perms: Record<string, boolean> = {}
|
|
||||||
userInfos.value.authBtnList.forEach((perm: string) => {
|
|
||||||
perms[perm] = true
|
|
||||||
})
|
|
||||||
return perms
|
|
||||||
})
|
|
||||||
|
|
||||||
// 消息提示 hooks
|
// 消息提示 hooks
|
||||||
const message = useMessage()
|
const message = useMessage()
|
||||||
const messageBox = useMessageBox()
|
const messageBox = useMessageBox()
|
||||||
@@ -240,7 +222,4 @@ defineExpose({
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
.avue-crud {
|
|
||||||
margin-top: 20px;
|
|
||||||
}
|
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@@ -85,7 +85,7 @@
|
|||||||
<!-- 操作按钮 -->
|
<!-- 操作按钮 -->
|
||||||
<div class="mb15">
|
<div class="mb15">
|
||||||
<el-button
|
<el-button
|
||||||
v-if="permissions.recruit_recruitprestudent_add"
|
v-auth="'recruit_recruitprestudent_add'"
|
||||||
type="primary"
|
type="primary"
|
||||||
icon="FolderAdd"
|
icon="FolderAdd"
|
||||||
@click="addOrUpdateHandle(null)"
|
@click="addOrUpdateHandle(null)"
|
||||||
@@ -116,10 +116,16 @@
|
|||||||
>
|
>
|
||||||
<el-table-column type="index" label="序号" width="60" align="center" />
|
<el-table-column type="index" label="序号" width="60" align="center" />
|
||||||
|
|
||||||
<el-table-column prop="djName" label="对接人" width="150" align="center">
|
<el-table-column prop="djName" label="对接人" width="230" align="center">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
{{ scope.row.djName }} <br />
|
<div v-if="scope.row.djName || scope.row.djTime" class="contact-cell">
|
||||||
<span style="color: #0e90d2">{{ scope.row.djTime }}</span>
|
<div v-if="scope.row.djName" class="contact-name">
|
||||||
|
<el-icon class="contact-icon"><User /></el-icon>
|
||||||
|
<span class="contact-text">{{ scope.row.djName }}</span>
|
||||||
|
</div>
|
||||||
|
<span v-if="scope.row.djTime" class="time-text">{{ scope.row.djTime }}</span>
|
||||||
|
</div>
|
||||||
|
<span v-else class="empty-text">-</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="name" label="学生姓名" width="120" align="center" show-overflow-tooltip />
|
<el-table-column prop="name" label="学生姓名" width="120" align="center" show-overflow-tooltip />
|
||||||
@@ -136,10 +142,10 @@
|
|||||||
{{ getSchoolName(scope.row.schoolId) }}
|
{{ getSchoolName(scope.row.schoolId) }}
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="操作" width="250" align="center" fixed="left">
|
<el-table-column label="操作" width="250" align="center" fixed="right">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<el-button
|
<el-button
|
||||||
v-if="permissions.recruit_recruitprestudent_edit"
|
v-auth="'recruit_recruitprestudent_edit'"
|
||||||
type="primary"
|
type="primary"
|
||||||
link
|
link
|
||||||
icon="EditPen"
|
icon="EditPen"
|
||||||
@@ -148,7 +154,8 @@
|
|||||||
修改
|
修改
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button
|
<el-button
|
||||||
v-if="permissions.recruit_recruitprestudent_dj && scope.row.isDj == '0'"
|
v-auth="'recruit_recruitprestudent_dj'"
|
||||||
|
v-if="scope.row.isDj == '0'"
|
||||||
type="primary"
|
type="primary"
|
||||||
link
|
link
|
||||||
icon="Connection"
|
icon="Connection"
|
||||||
@@ -157,7 +164,7 @@
|
|||||||
确认对接
|
确认对接
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button
|
<el-button
|
||||||
v-if="permissions.recruit_recruitprestudent_del"
|
v-auth="'recruit_recruitprestudent_del'"
|
||||||
type="primary"
|
type="primary"
|
||||||
link
|
link
|
||||||
icon="Delete"
|
icon="Delete"
|
||||||
@@ -189,12 +196,11 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts" name="recruitprestudent">
|
<script setup lang="ts" name="recruitprestudent">
|
||||||
import { ref, reactive, computed, onMounted, nextTick, defineAsyncComponent } from 'vue'
|
import { ref, reactive, onMounted, nextTick, defineAsyncComponent } from 'vue'
|
||||||
import { storeToRefs } from 'pinia'
|
|
||||||
import { useUserInfo } from '/@/stores/userInfo'
|
|
||||||
import { BasicTableProps, useTable } from '/@/hooks/table'
|
import { BasicTableProps, useTable } from '/@/hooks/table'
|
||||||
import { useDict } from '/@/hooks/dict'
|
import { useDict } from '/@/hooks/dict'
|
||||||
import { useMessage, useMessageBox } from '/@/hooks/message'
|
import { useMessage, useMessageBox } from '/@/hooks/message'
|
||||||
|
import { User } from '@element-plus/icons-vue'
|
||||||
import { delObj, fetchList, sureDJ } from '/@/api/recruit/recruitprestudent'
|
import { delObj, fetchList, sureDJ } from '/@/api/recruit/recruitprestudent'
|
||||||
import { getList } from '/@/api/recruit/recruitstudentplangroup'
|
import { getList } from '/@/api/recruit/recruitstudentplangroup'
|
||||||
import { listcz } from '/@/api/recruit/recruitstudentplan'
|
import { listcz } from '/@/api/recruit/recruitstudentplan'
|
||||||
@@ -203,19 +209,6 @@ import { getDeptListByLevelTwo } from '/@/api/basic/basicdept'
|
|||||||
|
|
||||||
const TableForm = defineAsyncComponent(() => import('./enrolplantemplate-form.vue'))
|
const TableForm = defineAsyncComponent(() => import('./enrolplantemplate-form.vue'))
|
||||||
|
|
||||||
// 使用 Pinia store
|
|
||||||
const userInfoStore = useUserInfo()
|
|
||||||
const { userInfos } = storeToRefs(userInfoStore)
|
|
||||||
|
|
||||||
// 创建权限对象
|
|
||||||
const permissions = computed(() => {
|
|
||||||
const perms: Record<string, boolean> = {}
|
|
||||||
userInfos.value.authBtnList.forEach((perm: string) => {
|
|
||||||
perms[perm] = true
|
|
||||||
})
|
|
||||||
return perms
|
|
||||||
})
|
|
||||||
|
|
||||||
// 消息提示 hooks
|
// 消息提示 hooks
|
||||||
const message = useMessage()
|
const message = useMessage()
|
||||||
const messageBox = useMessageBox()
|
const messageBox = useMessageBox()
|
||||||
@@ -299,7 +292,7 @@ const init = async () => {
|
|||||||
|
|
||||||
getDataList()
|
getDataList()
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error('初始化失败', error)
|
message.error('初始化失败')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -319,7 +312,7 @@ const getMajor = async (groupId: string) => {
|
|||||||
planMajorList.value = data.data || []
|
planMajorList.value = data.data || []
|
||||||
getDataList()
|
getDataList()
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error('获取专业列表失败', error)
|
message.error('获取专业列表失败')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -392,4 +385,39 @@ onMounted(() => {
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
|
.contact-cell {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 8px;
|
||||||
|
justify-content: center;
|
||||||
|
white-space: nowrap;
|
||||||
|
|
||||||
|
.contact-name {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 6px;
|
||||||
|
white-space: nowrap;
|
||||||
|
|
||||||
|
.contact-icon {
|
||||||
|
color: #909399;
|
||||||
|
font-size: 14px;
|
||||||
|
flex-shrink: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.contact-text {
|
||||||
|
font-weight: 500;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.time-text {
|
||||||
|
font-size: 12px;
|
||||||
|
color: var(--el-color-primary);
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.empty-text {
|
||||||
|
color: #c0c4cc;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@@ -35,7 +35,7 @@
|
|||||||
<template #footer>
|
<template #footer>
|
||||||
<div class="dialog-footer">
|
<div class="dialog-footer">
|
||||||
<el-button @click="visible = false">取消</el-button>
|
<el-button @click="visible = false">取消</el-button>
|
||||||
<el-button type="primary" @click="dataFormSubmit" v-if="canSubmit">确定</el-button>
|
<el-button type="primary" @click="dataFormSubmit" :disabled="!canSubmit">确定</el-button>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
@@ -63,7 +63,7 @@ const regionList = ref<any[]>([])
|
|||||||
const planList = ref<any[]>([])
|
const planList = ref<any[]>([])
|
||||||
|
|
||||||
const dataForm = reactive({
|
const dataForm = reactive({
|
||||||
id: "",
|
id: "" as string | null,
|
||||||
groupId: "",
|
groupId: "",
|
||||||
regionId: "",
|
regionId: "",
|
||||||
fullScore: null as number | null,
|
fullScore: null as number | null,
|
||||||
@@ -131,7 +131,7 @@ const dataFormSubmit = () => {
|
|||||||
|
|
||||||
// 初始化方法
|
// 初始化方法
|
||||||
const init = (id: string | null) => {
|
const init = (id: string | null) => {
|
||||||
dataForm.id = id || null
|
dataForm.id = id || ""
|
||||||
visible.value = true
|
visible.value = true
|
||||||
canSubmit.value = true
|
canSubmit.value = true
|
||||||
nextTick(() => {
|
nextTick(() => {
|
||||||
|
|||||||
@@ -22,7 +22,7 @@
|
|||||||
<!-- 操作按钮 -->
|
<!-- 操作按钮 -->
|
||||||
<div class="mb15">
|
<div class="mb15">
|
||||||
<el-button
|
<el-button
|
||||||
v-if="permissions.recruit_recruitstudentplancorrectscoreconfig_add"
|
v-auth="'recruit_recruitstudentplancorrectscoreconfig_add'"
|
||||||
type="primary"
|
type="primary"
|
||||||
icon="FolderAdd"
|
icon="FolderAdd"
|
||||||
@click="addOrUpdateHandle"
|
@click="addOrUpdateHandle"
|
||||||
@@ -52,7 +52,7 @@
|
|||||||
<el-table-column label="操作" width="150" align="center" fixed="right">
|
<el-table-column label="操作" width="150" align="center" fixed="right">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<el-button
|
<el-button
|
||||||
v-if="permissions.recruit_recruitstudentplancorrectscoreconfig_edit"
|
v-auth="'recruit_recruitstudentplancorrectscoreconfig_edit'"
|
||||||
type="primary"
|
type="primary"
|
||||||
link
|
link
|
||||||
icon="EditPen"
|
icon="EditPen"
|
||||||
@@ -61,8 +61,8 @@
|
|||||||
修改
|
修改
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button
|
<el-button
|
||||||
v-if="permissions.recruit_recruitstudentplancorrectscoreconfig_del"
|
v-auth="'recruit_recruitstudentplancorrectscoreconfig_del'"
|
||||||
type="danger"
|
type="primary"
|
||||||
link
|
link
|
||||||
icon="Delete"
|
icon="Delete"
|
||||||
@click="deleteHandle(scope.row.id)"
|
@click="deleteHandle(scope.row.id)"
|
||||||
@@ -87,9 +87,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts" name="recruitstudentplancorrectscoreconfig">
|
<script setup lang="ts" name="recruitstudentplancorrectscoreconfig">
|
||||||
import { ref, reactive, computed, onMounted, nextTick, defineAsyncComponent } from 'vue'
|
import { ref, reactive, onMounted, nextTick, defineAsyncComponent } from 'vue'
|
||||||
import { storeToRefs } from 'pinia'
|
|
||||||
import { useUserInfo } from '/@/stores/userInfo'
|
|
||||||
import { BasicTableProps, useTable } from '/@/hooks/table'
|
import { BasicTableProps, useTable } from '/@/hooks/table'
|
||||||
import { useMessage, useMessageBox } from '/@/hooks/message'
|
import { useMessage, useMessageBox } from '/@/hooks/message'
|
||||||
import { getList } from '/@/api/recruit/recruitstudentplangroup'
|
import { getList } from '/@/api/recruit/recruitstudentplangroup'
|
||||||
@@ -97,19 +95,6 @@ import { fetchList, delObj } from '/@/api/recruit/recruitstudentplancorrectscore
|
|||||||
|
|
||||||
const TableForm = defineAsyncComponent(() => import('./detaiform.vue'))
|
const TableForm = defineAsyncComponent(() => import('./detaiform.vue'))
|
||||||
|
|
||||||
// 使用 Pinia store
|
|
||||||
const userInfoStore = useUserInfo()
|
|
||||||
const { userInfos } = storeToRefs(userInfoStore)
|
|
||||||
|
|
||||||
// 创建权限对象
|
|
||||||
const permissions = computed(() => {
|
|
||||||
const perms: Record<string, boolean> = {}
|
|
||||||
userInfos.value.authBtnList.forEach((perm: string) => {
|
|
||||||
perms[perm] = true
|
|
||||||
})
|
|
||||||
return perms
|
|
||||||
})
|
|
||||||
|
|
||||||
// 消息提示 hooks
|
// 消息提示 hooks
|
||||||
const message = useMessage()
|
const message = useMessage()
|
||||||
const messageBox = useMessageBox()
|
const messageBox = useMessageBox()
|
||||||
@@ -119,9 +104,6 @@ const tableRef = ref()
|
|||||||
const searchFormRef = ref()
|
const searchFormRef = ref()
|
||||||
const addOrUpdateRef = ref()
|
const addOrUpdateRef = ref()
|
||||||
|
|
||||||
// 弹窗状态
|
|
||||||
const addOrUpdateVisible = ref(false)
|
|
||||||
|
|
||||||
// 数据
|
// 数据
|
||||||
const planList = ref<any[]>([])
|
const planList = ref<any[]>([])
|
||||||
|
|
||||||
@@ -164,7 +146,7 @@ const init = async () => {
|
|||||||
}
|
}
|
||||||
getDataList()
|
getDataList()
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error('初始化失败', error)
|
message.error('初始化失败')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -192,9 +174,7 @@ const deleteHandle = async (id: string) => {
|
|||||||
// 重置查询
|
// 重置查询
|
||||||
const resetQuery = () => {
|
const resetQuery = () => {
|
||||||
searchFormRef.value?.resetFields()
|
searchFormRef.value?.resetFields()
|
||||||
Object.keys(queryForm).forEach(key => {
|
queryForm.groupId = ''
|
||||||
queryForm[key] = ''
|
|
||||||
})
|
|
||||||
if (planList.value.length > 0) {
|
if (planList.value.length > 0) {
|
||||||
queryForm.groupId = planList.value[0].id
|
queryForm.groupId = planList.value[0].id
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user