对接车型培训

This commit is contained in:
wangchengming 2025-07-01 22:53:52 +08:00
parent 84f52f64e3
commit ac0ac2776a
7 changed files with 391 additions and 208 deletions

View File

@ -0,0 +1,44 @@
import request from '@/utils/request'
// 获取我的资质申请记录列表
export function getBusUserQualification(query) {
return request({
url: '/admin/busUserQualification/pageList',
method: 'post',
data: query
})
}
// 查询属地详细
export function getBusDependency(busDependencyId) {
return request({
url: '/admin/busDependency/getBusDependency/' + busDependencyId,
method: 'post'
})
}
// 新增属地
export function addBusDependency(data) {
return request({
url: '/admin/busDependency/addBusDependency',
method: 'post',
data: data
})
}
// 修改属地
export function updateBusDependency(data) {
return request({
url: '/admin/busDependency/updateBusDependency',
method: 'post',
data: data
})
}
// 删除属地
export function deleteBusDependency(busDependencyId) {
return request({
url: '/admin/busDependency/deleteBusDependency/' + busDependencyId,
method: 'post'
})
}

View File

@ -0,0 +1,62 @@
import request from '@/utils/request'
// 获取车型培训列表
export function getVehicleTrainingPageList(query) {
return request({
url: '/admin/vehicleModelTraining/pageList',
method: 'post',
data: query
})
}
// 查询车型培训详细
export function getVehicleModelTraining(trainingId) {
return request({
url: '/admin/vehicleModelTraining/getVehicleModelTraining/' + trainingId,
method: 'post'
})
}
// 新增车型培训记录
export function addVehicleModelTraining(data) {
return request({
url: '/admin/vehicleModelTraining/addVehicleModelTraining',
method: 'post',
data: data
})
}
// 修改车型培训记录
export function updateVehicleModelTraining(data) {
return request({
url: '/admin/vehicleModelTraining/update',
method: 'post',
data: data
})
}
// 删除属地
export function deleteVehicleModelTraining(trainingId) {
return request({
url: '/admin/vehicleModelTraining/delete/' + trainingId,
method: 'post'
})
}
// 导入车型培训记录
export function importVehicleModelTraining(data) {
return request({
url: '/admin/vehicleModelTraining/import',
method: 'post',
data
})
}
// // 导出车型培训记录
// export function exportVehicleModelTraining(data) {
// return request({
// url: '/admin/vehicleModelTraining/export',
// method: 'post',
// data
// })
// }

View File

@ -134,3 +134,11 @@ export function deptTreeSelect() {
method: 'get'
})
}
// 获取当前登录用户信息
export function getUserInfo() {
return request({
url: '/system/user/info',
method: 'get'
})
}

View File

@ -150,33 +150,33 @@ export const dynamicRoutes = [
]
},
{
path: '/qualification/vehicleTrain/addForm',
component: Layout,
hidden: true,
permissions: ['qualification:vehicleTrain:addForm'],
children: [
{
path: '',
component: () => import('@/views/qualification/vehicleTrain/addForm'),
name: 'addForm',
meta: { title: '新建车型培训记录', activeMenu: '/qualification/vehicleTrain' }
}
]
},
{
path: '/qualification/vehicleTrain/editForm',
path: '/qualification/vehicleTrain/Form',
component: Layout,
hidden: true,
permissions: ['qualification:vehicleTrain:editForm'],
children: [
{
path: '',
component: () => import('@/views/qualification/vehicleTrain/editForm'),
name: 'editForm',
meta: { title: '编辑车型培训记录', activeMenu: '/qualification/vehicleTrain' }
path: 'operation/:Id(\\d+)?',
component: () => import('@/views/qualification/vehicleTrain/addForm'),
name: 'vehicleTrainForm',
meta: { title: '车型培训记录维护', activeMenu: '/qualification/vehicleTrain' }
}
]
},
},
// {
// path: '/qualification/vehicleTrain/editForm',
// component: Layout,
// hidden: true,
// permissions: ['qualification:vehicleTrain:editForm'],
// children: [
// {
// path: '',
// component: () => import('@/views/qualification/vehicleTrain/editForm'),
// name: 'editForm',
// meta: { title: '编辑车型培训记录', activeMenu: '/qualification/vehicleTrain' }
// }
// ]
// },
{
path: '/qualification/vehicleTrain/importForm',
component: Layout,
@ -204,7 +204,7 @@ export const dynamicRoutes = [
meta: { title: '导出车型培训记录', activeMenu: '/qualification/vehicleTrain' }
}
]
},
},
{
path: '/labelManage/labelEscApproval/approvalDetail',
component: Layout,
@ -247,7 +247,7 @@ export const dynamicRoutes = [
}
]
},
{
path: '/system/userApproval/userApprovalDetail',
component: Layout,

View File

@ -6,9 +6,10 @@
<el-splitter-panel size="280">
<div class="demo-panell">
<div class="my-profile-container">
<el-avatar :size="120" :src="myAvatar" />
<div class="chineseName">官思成</div>
<div class="englishName">GuanSiCheng</div>
<el-avatar :size="120"
:src="curUserInfo.avatar ? baseUrl + curUserInfo.avatar : myAvatar" />
<div class="chineseName">{{ curUserInfo.nickName }}</div>
<div class="englishName">{{ curUserInfo.englishName }}</div>
</div>
<div class="my-info-container">
<div class="info-item">
@ -16,35 +17,35 @@
<el-avatar shape="square" :size="16" :src="jobNumberIcon" />
</span>
<span class="infoLable lableSpacing">工号</span>
<span class="infoValue">NO.30424</span>
<span class="infoValue">{{ curUserInfo.workNo }}</span>
</div>
<div class="info-item">
<span class="icon-container">
<el-avatar shape="square" :size="16" :src="jobNumberIcon" />
</span>
<span class="infoLable">所属部门</span>
<span class="infoValue">XXXX部门</span>
<span class="infoValue">{{ curUserInfo.dept?.deptName }}</span>
</div>
<div class="info-item">
<span class="icon-container">
<el-avatar shape="square" :size="16" :src="jobNumberIcon" />
</span>
<span class="infoLable">所属科室</span>
<span class="infoValue">xxxx科室</span>
<span class="infoValue">{{ curUserInfo.workNo }}</span>
</div>
<div class="info-item">
<span class="icon-container">
<el-avatar shape="square" :size="16" :src="jobNumberIcon" />
</span>
<span class="infoLable lableSpacing">属地</span>
<span class="infoValue">XXXXXX属地XXXXXX属地</span>
<span class="infoValue">{{ curUserInfo.workNo }}</span>
</div>
<div class="info-item">
<span class="icon-container">
<el-avatar shape="square" :size="16" :src="jobNumberIcon" />
</span>
<span class="infoLable">所属ESC</span>
<span class="infoValue">刘文静</span>
<span class="infoValue">{{ curUserInfo.workNo }}</span>
</div>
<div class="info-item">
<span class="icon-container">
@ -64,7 +65,7 @@
</div>
</el-splitter-panel>
<el-splitter-panel size="880" :resizable="resizable">
<div class="demo-panel2">
<div class="demo-panel2">
<el-button-group>
<el-button v-for="(item, index) in ToolOptions" :key="index"
:type="activeIndex === index ? 'primary' : ''" @click="activeIndex = index">
@ -92,20 +93,23 @@ import VehicleTrain from './components/VehicleTrain.vue'
import QualificationApply from './components/QualificationApply.vue'
import LableApply from './components/LableApply.vue'
// import { addMenu, delMenu, getMenu, listMenu, updateMenu } from "@/api/system/menu"
import { getUserInfo } from "@/api/system/user"
import jobNumberIcon from '@/assets/images/job-number-icon.png'
import myAvatar from '@/assets/images/my-avatar.png'
import { onMounted, ref } from 'vue'
import useUserStore from '@/store/modules/user'
const userStore = useUserStore()
const baseUrl = import.meta.env.VITE_APP_BASE_API
//
onMounted(() => {
getUserInfo()
getUserInfos()
});
//
const getUserInfo = () => {
const getUserInfos = () => {
getUserInfo().then(response => {
console.log('用户详情', response)
if (response.code == 200) curUserInfo.value = response.data
})
}
//
@ -113,7 +117,7 @@ const ToolOptions = ref(['高压资质培训信息', '高压车型培训信息',
const activeIndex = ref(0)
// panel
const resizable = ref(false)
const curUserInfo = ref({})
</script>
<style lang='scss'>
@ -127,17 +131,17 @@ const resizable = ref(false)
background-color: #F8F8F8 !important;
}
.demo-panell {
.demo-panell {
border-radius: 6px;
background: #ffffff;
height: 100%;
background-image: url("../../../assets/images/myQualifiction-background.png");
background-image: url("../../../assets/images/myQualifiction-background.png");
background-repeat: no-repeat;
background-size: 100% auto;
background-position: 0 100%;
}
.demo-panel2 {
.demo-panel2 {
padding: 20px 20px 20px 30px;
border-radius: 6px;
background: #ffffff;

View File

@ -20,42 +20,55 @@
<div class="applyFormContainer">
<el-row class="myRow" :gutter="20">
<el-col :span="8">
<el-form-item label="员工工号" prop="employeeNumber">
<el-input v-model="ruleForm.employeeNumber" placeholder="请输入员工工号" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="车型" prop="targetQualification">
<el-select v-model="ruleForm.targetQualification" placeholder="请选择车型">
<el-option label="Zone one" value="shanghai" />
<el-option label="Zone two" value="beijing" />
<el-form-item label="员工工号" prop="workNo">
<el-select v-model="ruleForm.workNo" filterable placeholder="请选择员工工号"
@change="selectChanged">
<el-option v-for="item in allUsers" :key="item.userId" :label="item.workNo"
:value="item.workNo" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="员工姓名" prop="employeeChineseName">
<el-input v-model="ruleForm.employeeChineseName" placeholder="请输入员工姓名(中文)" />
<el-form-item label="员工姓名">
<el-input v-show="false" v-model="ruleForm.userId" />
<el-input v-model="ruleForm.userName" placeholder="请输入员工姓名(中文)" disabled />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="属地" prop="localityName">
<el-select v-model="ruleForm.localityName" placeholder="请选择属地">
<el-option label="Zone one" value="shanghai" />
<el-option label="Zone two" value="beijing" />
<el-form-item label="属地" prop="dependencyId">
<el-select v-model="ruleForm.dependencyId" placeholder="请选择属地" disabled>
<el-option v-for="item in busDependencyData" :key="item.id"
:label="item.dependencyName" :value="item.id" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="部门" prop="departmentName">
<el-select v-model="ruleForm.departmentName" placeholder="请选择部门">
<el-option label="Zone one" value="shanghai" />
<el-option label="Zone two" value="beijing" />
<el-form-item label="部门" prop="deptId">
<el-tree-select v-model="ruleForm.deptId" :data="enabledDeptOptions" disabled
:props="{ value: 'id', label: 'label', children: 'children' }" value-key="id"
placeholder="请选择部门" check-strictly />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="科室" prop="sectionId">
<el-select v-model="ruleForm.sectionId" placeholder="请选择科室" disabled>
<el-option v-for="item in sectionData" :key="item.sectionId"
:label="item.sectionName" :value="item.sectionId" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="培训时间" prop="officeName">
<el-date-picker v-model="ruleForm.trainTime" type="date" placeholder="请选择培训时间" style="width: 100%;" />
<el-form-item label="车型" prop="vehicleModel">
<el-select v-model="ruleForm.vehicleModel" placeholder="请选择车型" clearable>
<el-option v-for="dict in vehicle_model" :key="dict.value" :label="dict.label"
:value="dict.value" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="培训时间" prop="trainingTime">
<el-date-picker v-model="ruleForm.trainingTime" type="date" format="YYYY-MM-DD" value-format="YYYY-MM-DD" placeholder="请选择培训时间"
style="width: 100%;" />
</el-form-item>
</el-col>
</el-row>
@ -72,27 +85,131 @@
</template>
<script setup>
import { onMounted, ref } from 'vue'
import { reactive } from 'vue'
import { useRouter } from 'vue-router'
import { getBusDependencyPage } from "@/api/system/dependency"
import { deptTreeSelect, listUser } from "@/api/system/user"
import { getSysSectionPage } from "@/api/system/section"
import { addVehicleModelTraining, getVehicleModelTraining, updateVehicleModelTraining } from "@/api/qualification/vehicleTrain"
const router = useRouter()
const levelList = ref([
{ title: '资质管理', path: '/qualification' },
{ title: '车型培训情况', path: '/qualification/vehicleTrain' },
{ title: '新建', path: '/qualification/vehicleTrain/addForm' }
])
//
onMounted(() => {
getAllUser();
getBusDependencyData();
getDeptTree();
getSysSectionData();
const id = router.params && router.params.Id
if (id) {
ruleForm.value.id = id
getDetailInfo(id)
levelList.value = [
{ title: '资质管理', path: '/qualification' },
{ title: '车型培训情况', path: '/qualification/vehicleTrain' },
{ title: '编辑', path: '/qualification/vehicleTrain/addForm' }
]
} else {
ruleForm.value.id = null
levelList.value = [{ title: '资质管理', path: '/qualification' },
{ title: '车型培训情况', path: '/qualification/vehicleTrain' },
{ title: '新建', path: '/qualification/vehicleTrain/addForm' }]
}
});
//
const allUsers = ref([])
//
const getAllUser = () => {
listUser({
pageNum: 1,
pageSize: 5000
}).then(res => {
allUsers.value = res.rows
})
}
//
const busDependencyData = ref([])
//
const getBusDependencyData = () => {
getBusDependencyPage({
pageIndex: 1,
pageSize: 100,
}).then(response => {
if (response.code == 200) {
busDependencyData.value = response.data.list
}
})
}
//
const enabledDeptOptions = ref(undefined)
//
const getDeptTree = () => {
deptTreeSelect().then(res => {
enabledDeptOptions.value = filterDisabledDept(JSON.parse(JSON.stringify(res.data)))
})
}
/** 过滤禁用的部门 */
const filterDisabledDept = (deptList) => {
return deptList.filter(dept => {
if (dept.disabled) {
return false
}
if (dept.children && dept.children.length) {
dept.children = filterDisabledDept(dept.children)
}
return true
})
}
//
const sectionData = ref([])
//
const getSysSectionData = () => {
getSysSectionPage({
pageIndex: 1,
pageSize: 100,
}).then(res => {
if (res.code == 200) {
sectionData.value = res.data.list
}
})
}
//
const selectChanged = (value) => {
if (value) {
const curUser = allUsers.value.find(item => item.workNo == value)
ruleForm.value.userId = curUser.userId
ruleForm.value.userName = curUser.nickName
ruleForm.value.dependencyId = curUser.dependencyId
ruleForm.value.deptId = curUser.deptId
ruleForm.value.sectionId = curUser.sectionId
}
}
//
const getDetailInfo = (id) => {
getVehicleModelTraining(id).thne(res => {
console.log('详情', res)
if(res.code == 200) ruleForm.value = res.data
})
}
const { proxy } = getCurrentInstance()
const { vehicle_model } = proxy.useDict("vehicle_model")
const data = reactive({
ruleForm: {},
rules: {
targetQualification: [{ required: true, message: "目标资质不能为空", trigger: "change" }],
employeeNumber: [{ required: true, message: "员工工号不能为空", trigger: "blur" }],
employeeChineseName: [{ required: true, message: "员工姓名(中文)不能为空", trigger: "blur" }],
employeeEnglishName: [{ required: true, message: "员工姓名(英文)", trigger: "blur" }],
departmentName: [{ required: true, message: "部门不能为空", trigger: "change" }],
officeName: [{ required: true, message: "科室不能为空", trigger: "change" }],
localityName: [{ required: true, message: "属地不能为空", trigger: "change" }],
localityManager: [{ required: true, message: "属地ESC不能为空", trigger: "blur" }],
workNo: [{ required: true, message: "员工工号不能为空", trigger: "blur" }],
vehicleModel: [{ required: true, message: "车型不能为空", trigger: "change" }],
trainingTime: [{ required: true, message: "培训时间不能为空", trigger: "change" }],
},
})
const { ruleForm, rules } = toRefs(data)
@ -105,24 +222,23 @@ const handleCancel = () => {
const handleSubmit = () => {
proxy.$refs["ruleFormRef"].validate(valid => {
if (valid) {
router.push({
path: '/qualification/vehicleTrain'
})
// if (form.value.roleId != undefined) {
// form.value.menuIds = getMenuAllCheckedKeys()
// updateRole(form.value).then(response => {
// proxy.$modal.msgSuccess("")
// open.value = false
// getList()
// })
// } else {
// form.value.menuIds = getMenuAllCheckedKeys()
// addRole(form.value).then(response => {
// proxy.$modal.msgSuccess("")
// open.value = false
// getList()
// })
// }
if (ruleForm.value.id != undefined) {
updateVehicleModelTraining(ruleForm.value).then(response => {
proxy.$modal.msgSuccess("修改成功")
open.value = false
router.push({
path: '/qualification/vehicleTrain'
})
})
} else {
addVehicleModelTraining(ruleForm.value).then(response => {
proxy.$modal.msgSuccess("新增成功")
open.value = false
router.push({
path: '/qualification/vehicleTrain'
})
})
}
}
})
}

View File

@ -5,10 +5,9 @@
<el-form :model="queryParams" ref="queryRef" :inline="true">
<el-row class="myRow">
<el-col :span="20">
<el-form-item label="属地" prop="deptId">
<el-select v-model="queryParams.deptId" placeholder="请选择属地" clearable style="width: 200px">
<el-option label="Zone one" value="shanghai" />
<el-option label="Zone two" value="beijing" />
<el-form-item label="属地" prop="dependencyId">
<el-select v-model="queryParams.dependencyId" placeholder="请选择属地" clearable style="width: 200px">
<el-option v-for="item in busDependencyData" :key="item.id" :label="item.dependencyName" :value="item.id" />
</el-select>
</el-form-item>
<el-form-item label="员工姓名" prop="userName">
@ -38,29 +37,30 @@
</el-button>
</div>
<div class="borderLine"></div>
<el-table :data="tableData" height="calc(100% - 170px)" style="width: 100%">
<el-table v-loading="loading" :data="tableData" height="calc(100% - 170px)" style="width: 100%">
<el-table-column label="序号" width="60">
<template #default="scope">
{{ scope.$index + 1 }}
</template>
</el-table-column>
<el-table-column prop="localityName" label="属地" />
<el-table-column prop="departmentName" label="部门" />
<el-table-column prop="officeName" label="科室" />
<el-table-column prop="jobNumber" label="工号" />
<el-table-column prop="name" label="员工姓名" />
<el-table-column prop="vehicleType" label="车型" />
<el-table-column prop="tarinTime" label="培训时间" width="130">
<el-table-column prop="dependencyName" label="属地" />
<el-table-column prop="deptName" label="部门" />
<el-table-column prop="sectionName" label="科室" />
<el-table-column prop="workNo" label="工号" />
<el-table-column prop="userName" label="员工姓名" />
<el-table-column prop="vehicleModel" label="车型" />
<el-table-column prop="trainingTime" label="培训时间" width="130">
<template #default="scope">
<span v-if="scope.row.tarinTime"> {{ scope.row.tarinTime }}</span>
<span v-if="scope.row.trainingTime"> {{ scope.row.trainingTime }}</span>
<span v-else>-</span>
</template>
</el-table-column>
<el-table-column label="操作" width="`5`0">
<template #default="scope">
<el-button type="primary" text class="replayTextBtn" @click="handleEdit">编辑</el-button>
<el-button type="primary" text class="replayTextBtn" @click="handleEdit(scope.row)">编辑</el-button>
<el-divider direction="vertical" class="verticalLine" />
<el-button type="primary" text class="deleteTextBtn">删除</el-button>
<el-button type="primary" text class="deleteTextBtn"
@click="handleDelete(scope.row)">删除</el-button>
</template>
</el-table-column>
</el-table>
@ -70,135 +70,84 @@
</div>
</template>
<script setup>
import { ref } from 'vue'
import { onMounted, ref } from 'vue'
import { useRouter } from 'vue-router'
import Breadcrumb from '@/components/Breadcrumb'
import exprotIcon from '@/assets/images/exprotIcon.png'
import importIcon from '@/assets/images/ImportIcon.png'
import addIcon from '@/assets/images/addIcon.png'
import { getVehicleTrainingPageList, deleteVehicleModelTraining } from "@/api/qualification/vehicleTrain"
import { getBusDependencyPage } from "@/api/system/dependency"
//
onMounted(() => {
getList();
getBusDependencyData()
});
const router = useRouter()
const total = ref(16)
const loading = ref(true)
const total = ref(0)
const queryParams = ref({
pageNum: 1,
pageIndex: 1,
pageSize: 10,
userName: undefined,
deptId: undefined,
qualification: undefined
dependencyId: undefined,
userId: undefined
})
const tableData = [
{
localityName: 'XXX属地',
departmentName: 'XXX部门',
officeName: 'XXX科室',
jobNumber: '3523213',
name: '赵丽娟',
vehicleType: 'BR 205',
tarinTime: '2025-10-24',
},
{
localityName: 'XXX属地',
departmentName: 'XXX部门',
officeName: 'XXX科室',
jobNumber: '3523213',
name: '赵丽娟',
vehicleType: 'BR 205',
tarinTime: '2025-10-24',
},
{
localityName: 'XXX属地',
departmentName: 'XXX部门',
officeName: 'XXX科室',
jobNumber: '3523213',
name: '赵丽娟',
vehicleType: 'BR 205',
tarinTime: '2025-10-24',
},
{
localityName: 'XXX属地',
departmentName: 'XXX部门',
officeName: 'XXX科室',
jobNumber: '3523213',
name: '赵丽娟',
vehicleType: 'BR 205',
tarinTime: '2025-10-24',
},
{
localityName: 'XXX属地',
departmentName: 'XXX部门',
officeName: 'XXX科室',
jobNumber: '3523213',
name: '赵丽娟',
vehicleType: 'BR 205',
tarinTime: '2025-10-24',
},
{
localityName: 'XXX属地',
departmentName: 'XXX部门',
officeName: 'XXX科室',
jobNumber: '3523213',
name: '赵丽娟',
vehicleType: 'BR 205',
tarinTime: '2025-10-24',
},
{
localityName: 'XXX属地',
departmentName: 'XXX部门',
officeName: 'XXX科室',
jobNumber: '3523213',
name: '赵丽娟',
vehicleType: 'BR 205',
tarinTime: '2025-10-24',
},
{
localityName: 'XXX属地',
departmentName: 'XXX部门',
officeName: 'XXX科室',
jobNumber: '3523213',
name: '赵丽娟',
vehicleType: 'BR 205',
tarinTime: '2025-10-24',
},
{
localityName: 'XXX属地',
departmentName: 'XXX部门',
officeName: 'XXX科室',
jobNumber: '3523213',
name: '赵丽娟',
vehicleType: 'BR 205',
tarinTime: '2025-10-24',
},
{
localityName: 'XXX属地',
departmentName: 'XXX部门',
officeName: 'XXX科室',
jobNumber: '3523213',
name: '赵丽娟',
vehicleType: 'BR 205',
tarinTime: '2025-10-24',
},
]
const tableData = ref([])
//
const busDependencyData = ref([])
//
const getBusDependencyData = () => {
getBusDependencyPage({
pageIndex: 1,
pageSize: 100,
}).then(response => {
if (response.code == 200) {
busDependencyData.value = response.data.list
}
})
}
/** 搜索按钮操作 */
const handleQuery = () => {
queryParams.value.pageNum = 1
queryParams.value.pageIndex = 1
getList()
}
/** 重置按钮操作 */
const resetQuery = () => {
dateRange.value = []
proxy.resetForm("queryRef")
queryParams.value.deptId = undefined
proxy.$refs.deptTreeRef.setCurrentKey(null)
proxy.resetForm("queryRef")
handleQuery()
}
const getList = () => {
loading.value = true
getVehicleTrainingPageList(queryParams.value).then(res => {
if (res.code == 200) {
tableData.value = res.data.list
total.value = res.data.total
}
loading.value = false
}).catch(() => {
loading.value = false
})
}
const handleOpenAddForm = () => {
router.push('/qualification/vehicleTrain/addForm')
router.push('/qualification/vehicleTrain/Form/operation')
}
const handleEdit = () => {
router.push('/qualification/vehicleTrain/editForm')
const handleEdit = (record) => {
router.push("/qualification/vehicleTrain/Form/operation/" + record.id)
}
/** 删除按钮操作 */
const handleDelete = (row) => {
const rowId = row.id
proxy.$modal.confirm('是否确认删除该项数据项?').then(function () {
return deleteVehicleModelTraining(rowId)
}).then(() => {
getList()
proxy.$modal.msgSuccess("删除成功")
}).catch(() => { })
}
const handleOpenImportForm = () => {
router.push('/qualification/vehicleTrain/importForm')