Merge branch 'master' of http://47.99.164.66:3000/hzdyjs-xg/all-project
This commit is contained in:
commit
4a6a6728e4
7 files changed
+304
-10
No files matched your search
@@ -5,6 +5,7 @@ import {
|
||||
InternshipInfoQuery,
|
||||
InternshipInfoAddBO,
|
||||
InternshipInfoEditBO,
|
||||
InternshipInfoChangeBO,
|
||||
ClassInfoVO,
|
||||
InternshipStatisticsVO
|
||||
} from '@/api/zsjy/types';
|
||||
@@ -113,3 +114,15 @@ export const delInternshipInfo = (internshipId: string | number): AxiosPromise<R
|
||||
method: 'delete'
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* 实习信息变更
|
||||
* @param data 变更数据
|
||||
*/
|
||||
export const changeInternshipInfo = (data: InternshipInfoChangeBO): AxiosPromise<R<void>> => {
|
||||
return request({
|
||||
url: '/zsjy/internship/change',
|
||||
method: 'post',
|
||||
data: data
|
||||
});
|
||||
};
|
||||
@@ -1139,6 +1139,111 @@ export interface InternshipInfoEditBO {
|
||||
remark?: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* 实习信息变更 BO
|
||||
*/
|
||||
export interface InternshipInfoChangeBO {
|
||||
/**
|
||||
* 原实习信息ID(要变更的实习记录ID)
|
||||
*/
|
||||
internshipId: string | number;
|
||||
|
||||
/**
|
||||
* 学生ID
|
||||
*/
|
||||
studentId: string | number;
|
||||
|
||||
/**
|
||||
* 变更原因(必填)
|
||||
*/
|
||||
changeReason: string;
|
||||
|
||||
/**
|
||||
* 实习状态(1进行中 2已完成 3中断)
|
||||
*/
|
||||
internshipStatus: string;
|
||||
|
||||
/**
|
||||
* 实习单位名称
|
||||
*/
|
||||
companyName: string;
|
||||
|
||||
/**
|
||||
* 实习单位地址
|
||||
*/
|
||||
companyAddress: string;
|
||||
|
||||
/**
|
||||
* 单位联系人
|
||||
*/
|
||||
companyContact: string;
|
||||
|
||||
/**
|
||||
* 联系人电话
|
||||
*/
|
||||
companyPhone: string;
|
||||
|
||||
/**
|
||||
* 行业类型
|
||||
*/
|
||||
companyIndustry?: string;
|
||||
|
||||
/**
|
||||
* 单位规模
|
||||
*/
|
||||
companyScale?: string;
|
||||
|
||||
/**
|
||||
* 岗位名称
|
||||
*/
|
||||
positionName: string;
|
||||
|
||||
/**
|
||||
* 岗位职责
|
||||
*/
|
||||
positionDuties?: string;
|
||||
|
||||
/**
|
||||
* 实习津贴
|
||||
*/
|
||||
internshipAllowance?: number;
|
||||
|
||||
/**
|
||||
* 工作时长
|
||||
*/
|
||||
workHours?: string;
|
||||
|
||||
/**
|
||||
* 住宿地址
|
||||
*/
|
||||
accommodationAddress?: string;
|
||||
|
||||
/**
|
||||
* 住宿类型
|
||||
*/
|
||||
accommodationType?: string;
|
||||
|
||||
/**
|
||||
* 住宿费用
|
||||
*/
|
||||
accommodationCost?: number;
|
||||
|
||||
/**
|
||||
* 实习开始日期
|
||||
*/
|
||||
startDate: string;
|
||||
|
||||
/**
|
||||
* 实习结束日期
|
||||
*/
|
||||
endDate: string;
|
||||
|
||||
/**
|
||||
* 备注信息
|
||||
*/
|
||||
remark?: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* 实习信息查询 BO
|
||||
*/
|
||||
|
||||
@@ -167,7 +167,7 @@
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="实习地点" align="center" prop="companyAddress" width="120" show-overflow-tooltip />
|
||||
<el-table-column label="操作" width="280" align="center" fixed="right" class-name="small-padding fixed-width">
|
||||
<el-table-column label="操作" width="320" align="center" fixed="right" class-name="small-padding fixed-width">
|
||||
<template #default="scope">
|
||||
<el-tooltip content="查看详情" placement="top">
|
||||
<el-button link type="info" icon="View" @click="handleView(scope.row)" v-hasPermi="['zsjy:internship:query']"></el-button>
|
||||
@@ -178,6 +178,9 @@
|
||||
<el-tooltip content="编辑实习信息" placement="top" v-if="scope.row.internshipId">
|
||||
<el-button link type="primary" icon="Edit" @click="handleEdit(scope.row)" v-hasPermi="['zsjy:internship:edit']"></el-button>
|
||||
</el-tooltip>
|
||||
<el-tooltip content="实习变更" placement="top" v-if="scope.row.internshipId && scope.row.internshipStatus === '1'">
|
||||
<el-button link type="warning" icon="Switch" @click="handleChange(scope.row)" v-hasPermi="['zsjy:internship:change']"></el-button>
|
||||
</el-tooltip>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
@@ -247,6 +250,14 @@
|
||||
|
||||
<!-- 编辑弹窗 -->
|
||||
<EditDialog v-model="showEditDialog" :student-id="selectedStudentId" @success="handleDialogSuccess" />
|
||||
|
||||
<!-- 变更弹窗 -->
|
||||
<ChangeDialog
|
||||
v-model="showChangeDialog"
|
||||
:internship-id="selectedInternshipId"
|
||||
:student-id="selectedStudentId"
|
||||
@success="handleDialogSuccess"
|
||||
/>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -259,6 +270,7 @@ import { download } from '@/utils/request';
|
||||
import { ElMessage } from 'element-plus';
|
||||
import AddDialog from './components/AddDialog.vue';
|
||||
import EditDialog from './components/EditDialog.vue';
|
||||
import ChangeDialog from './components/ChangeDialog.vue';
|
||||
|
||||
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
||||
const { internship_status, sys_user_sex } = toRefs<any>(proxy?.useDict('internship_status', 'sys_user_sex'));
|
||||
@@ -280,6 +292,7 @@ const studentDetail = ref<InternshipInfoVO>();
|
||||
// 弹窗相关状态
|
||||
const showAddDialog = ref(false);
|
||||
const showEditDialog = ref(false);
|
||||
const showChangeDialog = ref(false);
|
||||
const selectedStudentInfo = ref<{
|
||||
studentId: string;
|
||||
studentName: string;
|
||||
@@ -290,6 +303,7 @@ const selectedStudentInfo = ref<{
|
||||
studentNo: ''
|
||||
});
|
||||
const selectedStudentId = ref('');
|
||||
const selectedInternshipId = ref('');
|
||||
|
||||
const data = reactive({
|
||||
queryParams: {
|
||||
@@ -433,6 +447,13 @@ const handleAdd = (row: InternshipInfoVO) => {
|
||||
showAddDialog.value = true;
|
||||
};
|
||||
|
||||
/** 变更实习信息按钮操作 */
|
||||
const handleChange = (row: InternshipInfoVO) => {
|
||||
selectedInternshipId.value = row.internshipId as string;
|
||||
selectedStudentId.value = row.studentId as string;
|
||||
showChangeDialog.value = true;
|
||||
};
|
||||
|
||||
/** 编辑实习信息按钮操作 */
|
||||
const handleEdit = (row: InternshipInfoVO) => {
|
||||
selectedStudentId.value = row.studentId;
|
||||
|
||||
Reference in new issue
Block a user