update code

dev_xd
haha 2024-09-01 17:36:53 +08:00
parent 6f7807a7ac
commit b0082e87da
5 changed files with 105 additions and 74 deletions

View File

@ -25,6 +25,17 @@ public class SysUser extends BaseEntity
@Excel(name = "用户序号", cellType = ColumnType.NUMERIC, prompt = "用户编号") @Excel(name = "用户序号", cellType = ColumnType.NUMERIC, prompt = "用户编号")
private Long userId; private Long userId;
private Long compId;
public Long getCompId() {
return compId;
}
public void setCompId(Long compId) {
this.compId = compId;
}
/** 部门ID */ /** 部门ID */
@Excel(name = "部门编号", type = Type.IMPORT) @Excel(name = "部门编号", type = Type.IMPORT)
private Long deptId; private Long deptId;

View File

@ -6,6 +6,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<resultMap type="SysUser" id="SysUserResult"> <resultMap type="SysUser" id="SysUserResult">
<id property="userId" column="user_id" /> <id property="userId" column="user_id" />
<result property="comId" column="com_id"/>
<result property="deptId" column="dept_id" /> <result property="deptId" column="dept_id" />
<result property="userName" column="user_name" /> <result property="userName" column="user_name" />
<result property="nickName" column="nick_name" /> <result property="nickName" column="nick_name" />
@ -27,6 +28,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="updateBy" column="update_by" /> <result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" /> <result property="updateTime" column="update_time" />
<result property="remark" column="remark" /> <result property="remark" column="remark" />
<association property="dept" column="dept_id" javaType="SysDept" resultMap="deptResult" /> <association property="dept" column="dept_id" javaType="SysDept" resultMap="deptResult" />
<collection property="roles" javaType="java.util.List" resultMap="RoleResult" /> <collection property="roles" javaType="java.util.List" resultMap="RoleResult" />
</resultMap> </resultMap>
@ -54,7 +56,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</resultMap> </resultMap>
<sql id="selectUserVo"> <sql id="selectUserVo">
select u.user_id, u.dept_id, u.user_name, u.nick_name, u.user_type, u.card_type, u.card_code, u.user_infos, u.email, u.avatar, u.phonenumber, u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, select u.user_id,u.com_id, u.dept_id, u.user_name, u.nick_name, u.user_type, u.card_type, u.card_code, u.user_infos, u.email, u.avatar, u.phonenumber, u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark,
d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.dept_short_name, d.dept_code, d.dept_type, d.order_num, d.leader, d.status as dept_status, d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.dept_short_name, d.dept_code, d.dept_type, d.order_num, d.leader, d.status as dept_status,
r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.status as role_status r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.status as role_status
from sys_user u from sys_user u
@ -64,7 +66,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</sql> </sql>
<select id="selectUserList" parameterType="SysUser" resultMap="SysUserResult"> <select id="selectUserList" parameterType="SysUser" resultMap="SysUserResult">
select u.user_id, u.dept_id, u.nick_name, u.user_name, u.user_type, u.card_type, u.card_code, u.user_infos, u.email, u.avatar, u.phonenumber, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, d.dept_name, d.leader from sys_user u select u.user_id, u.com_id,u.dept_id, u.nick_name, u.user_name, u.user_type, u.card_type, u.card_code, u.user_infos, u.email, u.avatar, u.phonenumber, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, d.dept_name, d.leader from sys_user u
left join sys_dept d on u.dept_id = d.dept_id left join sys_dept d on u.dept_id = d.dept_id
where u.del_flag = '0' where u.del_flag = '0'
<if test="userId != null and userId != 0"> <if test="userId != null and userId != 0">
@ -102,7 +104,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</select> </select>
<select id="selectAllocatedList" parameterType="SysUser" resultMap="SysUserResult"> <select id="selectAllocatedList" parameterType="SysUser" resultMap="SysUserResult">
select distinct u.user_id, u.dept_id, u.user_name, u.nick_name, u.user_type, u.card_type, u.card_code, u.email, u.phonenumber, u.status, u.create_time select distinct u.user_id,u.com_id, u.dept_id, u.user_name, u.nick_name, u.user_type, u.card_type, u.card_code, u.email, u.phonenumber, u.status, u.create_time
from sys_user u from sys_user u
left join sys_dept d on u.dept_id = d.dept_id left join sys_dept d on u.dept_id = d.dept_id
left join sys_user_role ur on u.user_id = ur.user_id left join sys_user_role ur on u.user_id = ur.user_id
@ -119,7 +121,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</select> </select>
<select id="selectUnallocatedList" parameterType="SysUser" resultMap="SysUserResult"> <select id="selectUnallocatedList" parameterType="SysUser" resultMap="SysUserResult">
select distinct u.user_id, u.dept_id, u.user_name, u.nick_name, u.user_type, u.card_type, u.card_code, u.email, u.phonenumber, u.status, u.create_time select distinct u.user_id,u.com_id, u.dept_id, u.user_name, u.nick_name, u.user_type, u.card_type, u.card_code, u.email, u.phonenumber, u.status, u.create_time
from sys_user u from sys_user u
left join sys_dept d on u.dept_id = d.dept_id left join sys_dept d on u.dept_id = d.dept_id
left join sys_user_role ur on u.user_id = ur.user_id left join sys_user_role ur on u.user_id = ur.user_id
@ -165,6 +167,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<insert id="insertUser" parameterType="SysUser" useGeneratedKeys="true" keyProperty="userId"> <insert id="insertUser" parameterType="SysUser" useGeneratedKeys="true" keyProperty="userId">
insert into sys_user( insert into sys_user(
<if test="userId != null and userId != 0">user_id,</if> <if test="userId != null and userId != 0">user_id,</if>
<if test="comId != null and comId != 0">com_id,</if>
<if test="deptId != null and deptId != 0">dept_id,</if> <if test="deptId != null and deptId != 0">dept_id,</if>
<if test="userName != null and userName != ''">user_name,</if> <if test="userName != null and userName != ''">user_name,</if>
<if test="nickName != null and nickName != ''">nick_name,</if> <if test="nickName != null and nickName != ''">nick_name,</if>
@ -183,6 +186,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
create_time create_time
)values( )values(
<if test="userId != null and userId != ''">#{userId},</if> <if test="userId != null and userId != ''">#{userId},</if>
<if test="comId != null and comId != 0">#{comId},</if>
<if test="deptId != null and deptId != ''">#{deptId},</if> <if test="deptId != null and deptId != ''">#{deptId},</if>
<if test="userName != null and userName != ''">#{userName},</if> <if test="userName != null and userName != ''">#{userName},</if>
<if test="nickName != null and nickName != ''">#{nickName},</if> <if test="nickName != null and nickName != ''">#{nickName},</if>
@ -205,6 +209,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<update id="updateUser" parameterType="SysUser"> <update id="updateUser" parameterType="SysUser">
update sys_user update sys_user
<set> <set>
<if test="comId != null and comId != 0">com_id = #{comId},</if>
<if test="deptId != null and deptId != 0">dept_id = #{deptId},</if> <if test="deptId != null and deptId != 0">dept_id = #{deptId},</if>
<if test="userName != null and userName != ''">user_name = #{userName},</if> <if test="userName != null and userName != ''">user_name = #{userName},</if>
<if test="nickName != null and nickName != ''">nick_name = #{nickName},</if> <if test="nickName != null and nickName != ''">nick_name = #{nickName},</if>

View File

@ -12,3 +12,12 @@ onMounted(() => {
}) })
}) })
</script> </script>
<style lang="scss">
.no-form-label{
.el-form-item{
.el-form-item__label{
display: none !important;
}
}
}
</style>

View File

@ -17,7 +17,7 @@ const service = axios.create({
// axios中请求配置有baseURL选项表示请求URL公共部分 // axios中请求配置有baseURL选项表示请求URL公共部分
baseURL: import.meta.env.VITE_APP_BASE_API, baseURL: import.meta.env.VITE_APP_BASE_API,
// 超时 // 超时
timeout: 10000 timeout: 60000
}) })
// request拦截器 // request拦截器

View File

@ -1,5 +1,5 @@
<template> <template>
<div class="app-container"> <div class="app-container bus-training-video-index">
<el-row :gutter="20"> <el-row :gutter="20">
<!--部门数据--> <!--部门数据-->
<el-col :span="6" :xs="24"> <el-col :span="6" :xs="24">
@ -14,41 +14,23 @@
</div> </div>
</el-col> </el-col>
<el-col :span="18" :xs="24"> <el-col :span="18" :xs="24">
<el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="68px"> <el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="部门主键" prop="deptId"> <el-form-item label="文件名称" prop="trainTitle">
<el-input v-model="queryParams.deptId" placeholder="请输入部门主键" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="项目主键" prop="projectId">
<el-input v-model="queryParams.projectId" placeholder="请输入项目主键" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="培训名称" prop="trainTitle">
<el-input v-model="queryParams.trainTitle" placeholder="请输入培训名称" clearable @keyup.enter="handleQuery" /> <el-input v-model="queryParams.trainTitle" placeholder="请输入培训名称" clearable @keyup.enter="handleQuery" />
</el-form-item> </el-form-item>
<el-form-item label="培训类型" prop="trainType"> <el-form-item label="教育级别" prop="trainLevel">
<el-select v-model="queryParams.trainType" placeholder="请选择培训类型" clearable>
<el-option v-for="dict in edu_train_type" :key="dict.value" :label="dict.label" :value="dict.value" />
</el-select>
</el-form-item>
<el-form-item label="培训级别" prop="trainLevel">
<el-select v-model="queryParams.trainLevel" placeholder="请选择培训级别" clearable> <el-select v-model="queryParams.trainLevel" placeholder="请选择培训级别" clearable>
<el-option v-for="dict in edu_train_level" :key="dict.value" :label="dict.label" :value="dict.value" /> <el-option v-for="dict in edu_train_level" :key="dict.value" :label="dict.label" :value="dict.value" />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="工种类型" prop="craftType"> <el-form-item label="工种" prop="craftType" className="fitem-craft-type el-form-item el-form-item--default asterisk-left">
<el-select v-model="queryParams.craftType" placeholder="请选择工种类型" clearable> <el-select v-model="queryParams.craftType" placeholder="请选择工种类型" clearable>
<el-option v-for="dict in pro_craft_type" :key="dict.value" :label="dict.label" :value="dict.value" /> <el-option v-for="dict in pro_craft_type" :key="dict.value" :label="dict.label" :value="dict.value" />
</el-select> </el-select>
</el-form-item> <el-select style="margin-left:10px;" v-model="queryParams.craftPost" placeholder="请选择工种岗位" clearable>
<el-form-item label="工种岗位" prop="craftPost">
<el-select v-model="queryParams.craftPost" placeholder="请选择工种岗位" clearable>
<el-option v-for="dict in pro_craft_post" :key="dict.value" :label="dict.label" :value="dict.value" /> <el-option v-for="dict in pro_craft_post" :key="dict.value" :label="dict.label" :value="dict.value" />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="删除标识" prop="isDel">
<el-select v-model="queryParams.isDel" placeholder="请选择删除标识" clearable>
<el-option v-for="dict in sys_is_del" :key="dict.value" :label="dict.label" :value="dict.value" />
</el-select>
</el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" icon="Search" @click="handleQuery"></el-button> <el-button type="primary" icon="Search" @click="handleQuery"></el-button>
<el-button icon="Refresh" @click="resetQuery"></el-button> <el-button icon="Refresh" @click="resetQuery"></el-button>
@ -60,6 +42,7 @@
<el-button type="primary" plain icon="Plus" @click="handleAdd" <el-button type="primary" plain icon="Plus" @click="handleAdd"
v-hasPermi="['manage:busTrainingVideo:add']">新增</el-button> v-hasPermi="['manage:busTrainingVideo:add']">新增</el-button>
</el-col> </el-col>
<!--
<el-col :span="1.5"> <el-col :span="1.5">
<el-button type="success" plain icon="Edit" :disabled="single" @click="handleUpdate" <el-button type="success" plain icon="Edit" :disabled="single" @click="handleUpdate"
v-hasPermi="['manage:busTrainingVideo:edit']">修改</el-button> v-hasPermi="['manage:busTrainingVideo:edit']">修改</el-button>
@ -72,6 +55,7 @@
<el-button type="warning" plain icon="Download" @click="handleExport" <el-button type="warning" plain icon="Download" @click="handleExport"
v-hasPermi="['manage:busTrainingVideo:export']">导出</el-button> v-hasPermi="['manage:busTrainingVideo:export']">导出</el-button>
</el-col> </el-col>
-->
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar> <right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
</el-row> </el-row>
<el-table v-loading="loading" :data="busTrainingVideoList" @selection-change="handleSelectionChange"> <el-table v-loading="loading" :data="busTrainingVideoList" @selection-change="handleSelectionChange">
@ -129,62 +113,67 @@
</el-row> </el-row>
<!-- 添加或修改培训视频对话框 --> <!-- 添加或修改培训视频对话框 -->
<el-dialog :title="title" v-model="open" width="500px" append-to-body> <el-dialog :title="title" v-model="open" width="500px" append-to-body :close-on-click-modal="false" :close-on-press-escape="false" custom-class="bus-training-video-dlg">
<el-form ref="busTrainingVideoRef" :model="form" :rules="rules" label-width="80px"> <el-form ref="busTrainingVideoRef" :model="form" :rules="rules" label-width="80px">
<el-form-item label="部门主键" prop="deptId"> <el-form-item label="归属公司" prop="deptId">
<el-input v-model="form.deptId" placeholder="请输入部门主键" /> <el-tree-select
v-model="form.deptId"
:data="deptOptions"
:props="{ label: 'label', children: 'children' }"
value-key="id"
placeholder="选择公司"
check-strictly
/>
</el-form-item> </el-form-item>
<el-form-item label="项目主键" prop="projectId"> <el-form-item label="归属模块" prop="trainType">
<el-input v-model="form.projectId" placeholder="请输入项目主键" />
</el-form-item>
<el-form-item label="培训名称" prop="trainTitle">
<el-input v-model="form.trainTitle" placeholder="请输入培训名称" />
</el-form-item>
<el-form-item label="培训类型" prop="trainType">
<el-select v-model="form.trainType" placeholder="请选择培训类型"> <el-select v-model="form.trainType" placeholder="请选择培训类型">
<el-option v-for="dict in edu_train_type" :key="dict.value" :label="dict.label" <el-option v-for="dict in video_module" :key="dict.value" :label="dict.label"
:value="dict.value"></el-option> :value="dict.value"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="培训级别" prop="trainLevel"> <el-form-item label="文件名称" prop="trainTitle">
<el-input v-model="form.trainTitle" placeholder="请输入培训名称" />
</el-form-item>
<el-form-item label="教育级别" prop="trainLevel">
<el-select v-model="form.trainLevel" placeholder="请选择培训级别"> <el-select v-model="form.trainLevel" placeholder="请选择培训级别">
<el-option v-for="dict in edu_train_level" :key="dict.value" :label="dict.label" <el-option v-for="dict in edu_train_level" :key="dict.value" :label="dict.label"
:value="dict.value"></el-option> :value="dict.value"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="工种类型" prop="craftType"> <el-row>
<el-col :span="12">
<el-form-item label="归属工种" prop="craftType">
<el-select v-model="form.craftType" placeholder="请选择工种类型"> <el-select v-model="form.craftType" placeholder="请选择工种类型">
<el-option v-for="dict in pro_craft_type" :key="dict.value" :label="dict.label" <el-option v-for="dict in pro_craft_type" :key="dict.value" :label="dict.label"
:value="dict.value"></el-option> :value="dict.value"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="工种岗位" prop="craftPost"> </el-col>
<el-select v-model="form.craftPost" placeholder="请选择工种岗位"> <el-col :span="12" class="no-form-label" style="padding-left:10px;">
<el-option v-for="dict in pro_craft_post" :key="dict.value" :label="dict.label" <el-form-item label="no" prop="craftPost">
:value="dict.value"></el-option> <el-select v-model="form.craftPost" placeholder="请选择工种岗位">
</el-select> <el-option v-for="dict in pro_craft_post" :key="dict.value" :label="dict.label"
:value="dict.value"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-form-item label="显示排序" prop="ord">
<el-input-number v-model="form.ord" controls-position="right" :min="0" style="width:160px;"/>
</el-form-item>
<el-form-item label="视频时长" prop="trainFileTimes">
<el-input v-model="form.trainFileTimes" placeholder="请输入视频时长" style="width:180px;">
<template #append></template>
</el-input>
</el-form-item> </el-form-item>
<el-form-item label="培训文件类型" prop="trainFileType"> <el-form-item label="视频文件" prop="trainFilePath">
<el-input v-model="form.trainFileType" type="textarea" placeholder="请输入内容" /> <file-upload v-model="form.trainFilePath" :limit="1" :fileType="['mp4']" :fileSize="100"/>
</el-form-item>
<el-form-item label="培训文件地址" prop="trainFilePath">
<file-upload v-model="form.trainFilePath" />
</el-form-item>
<el-form-item label="培训文件主图" prop="trainFileImage">
<image-upload v-model="form.trainFileImage" />
</el-form-item>
<el-form-item label="培训文件时长" prop="trainFileTimes">
<el-input v-model="form.trainFileTimes" placeholder="请输入培训文件时长" />
</el-form-item>
<el-form-item label="删除标识" prop="isDel">
<el-select v-model="form.isDel" placeholder="请选择删除标识">
<el-option v-for="dict in sys_is_del" :key="dict.value" :label="dict.label"
:value="parseInt(dict.value)"></el-option>
</el-select>
</el-form-item> </el-form-item>
<el-form-item label="备注" prop="remark"> <el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" placeholder="请输入备注" /> <el-input v-model="form.remark" placeholder="请输入备注" />
</el-form-item> </el-form-item>
@ -203,7 +192,7 @@
import { listBusTrainingVideo, getBusTrainingVideo, delBusTrainingVideo, addBusTrainingVideo, updateBusTrainingVideo } from "@/api/manage/busTrainingVideo"; import { listBusTrainingVideo, getBusTrainingVideo, delBusTrainingVideo, addBusTrainingVideo, updateBusTrainingVideo } from "@/api/manage/busTrainingVideo";
import { deptTreeSelect } from "@/api/system/user"; import { deptTreeSelect } from "@/api/system/user";
const { proxy } = getCurrentInstance(); const { proxy } = getCurrentInstance();
const { edu_train_level, edu_train_type, pro_craft_type, sys_is_del, pro_craft_post } = proxy.useDict('edu_train_level', 'edu_train_type', 'pro_craft_type', 'sys_is_del', 'pro_craft_post'); const { edu_train_level, edu_train_type, pro_craft_type, sys_is_del, pro_craft_post,video_module } = proxy.useDict('edu_train_level', 'edu_train_type', 'pro_craft_type', 'sys_is_del', 'pro_craft_post','video_module');
const busTrainingVideoList = ref([]); const busTrainingVideoList = ref([]);
const open = ref(false); const open = ref(false);
@ -234,6 +223,15 @@ const data = reactive({
isDel: null, isDel: null,
}, },
rules: { rules: {
deptId:[{ required: true, message: "归属公司不能为空", trigger: "blur" }],
trainType:[{ required: true, message: "归属模块不能为空", trigger: "blur" }],
trainTitle:[{ required: true, message: "文件名称不能为空", trigger: "blur" }],
trainLevel:[{ required: true, message: "教育级别不能为空", trigger: "blur" }],
craftType:[{ required: true, message: "工种不能为空", trigger: "blur" }],
craftPost:[{ required: true, message: "工种岗位不能为空", trigger: "blur" }],
ord:[{ required: true, message: "显示排序不能为空", trigger: "blur" }],
trainFileTimes:[{ required: true, message: "视频时长不能为空", trigger: "blur" }],
trainFilePath:[{ required: true, message: "视频不能为空", trigger: "blur" }],
} }
}); });
@ -270,11 +268,7 @@ function reset() {
trainFilePath: null, trainFilePath: null,
trainFileImage: null, trainFileImage: null,
trainFileTimes: null, trainFileTimes: null,
isDel: null, ord:1,
createBy: null,
createTime: null,
updateBy: null,
updateTime: null,
remark: null remark: null
}; };
proxy.resetForm("busTrainingVideoRef"); proxy.resetForm("busTrainingVideoRef");
@ -381,3 +375,15 @@ function getDeptTree() {
getList(); getList();
getDeptTree(); getDeptTree();
</script> </script>
<style lang="scss">
.bus-training-video-index{
.fitem-craft-type{
.el-select{
width:150px;
}
}
}
.bus-training-video-dlg{
}
</style>