update code

dev_xd
haha 2024-08-30 23:36:24 +08:00
parent 04384f6dc6
commit 6f7807a7ac
4 changed files with 112 additions and 136 deletions

View File

@ -66,7 +66,18 @@ public class BusTrainingVideo extends BaseEntity
@Excel(name = "删除标识")
private Long isDel;
public void setId(Long id)
private int ord;
public int getOrd() {
return ord;
}
public void setOrd(int ord) {
this.ord = ord;
}
public void setId(Long id)
{
this.id = id;
}

View File

@ -17,6 +17,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="trainFilePath" column="train_file_path" />
<result property="trainFileImage" column="train_file_image" />
<result property="trainFileTimes" column="train_file_times" />
<result property="ord" column="ord"/>
<result property="isDel" column="is_del" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
@ -26,7 +27,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</resultMap>
<sql id="selectBusTrainingVideoVo">
select id, dept_id, project_id, train_title, train_type, train_level, craft_type, craft_post, train_file_type, train_file_path, train_file_image, train_file_times, is_del, create_by, create_time, update_by, update_time, remark from bus_training_video
select id, dept_id, project_id, train_title, train_type, train_level, craft_type, craft_post, train_file_type,ord, train_file_path, train_file_image, train_file_times, is_del, create_by, create_time, update_by, update_time, remark from bus_training_video
</sql>
<select id="selectBusTrainingVideoList" parameterType="BusTrainingVideo" resultMap="BusTrainingVideoResult">
@ -42,6 +43,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="trainFileType != null and trainFileType != ''"> and train_file_type = #{trainFileType}</if>
<if test="isDel != null "> and is_del = #{isDel}</if>
</where>
order by ord
</select>
<select id="selectBusTrainingVideoById" parameterType="Long" resultMap="BusTrainingVideoResult">
@ -63,6 +65,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="trainFilePath != null">train_file_path,</if>
<if test="trainFileImage != null">train_file_image,</if>
<if test="trainFileTimes != null">train_file_times,</if>
<if test="ord != null and ord>=0">ord,</if>
<if test="isDel != null">is_del,</if>
<if test="createBy != null">create_by,</if>
<if test="createTime != null">create_time,</if>
@ -82,6 +85,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="trainFilePath != null">#{trainFilePath},</if>
<if test="trainFileImage != null">#{trainFileImage},</if>
<if test="trainFileTimes != null">#{trainFileTimes},</if>
<if test="ord != null and ord>=0">#{ord},</if>
<if test="isDel != null">#{isDel},</if>
<if test="createBy != null">#{createBy},</if>
<if test="createTime != null">#{createTime},</if>
@ -105,6 +109,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="trainFilePath != null">train_file_path = #{trainFilePath},</if>
<if test="trainFileImage != null">train_file_image = #{trainFileImage},</if>
<if test="trainFileTimes != null">train_file_times = #{trainFileTimes},</if>
<if test="ord != null and ord>=0">ord = #{ord},</if>
<if test="isDel != null">is_del = #{isDel},</if>
<if test="createBy != null">create_by = #{createBy},</if>
<if test="createTime != null">create_time = #{createTime},</if>

View File

@ -21,17 +21,18 @@
"axios": "0.27.2",
"bpmn-js": "^11.4.1",
"diagram-js": "^11.9.1",
"js-base64": "^3.7.5",
"vkbeautify": "^0.99.3",
"highlight.js": "11.7.0",
"echarts": "5.4.0",
"element-plus": "2.2.27",
"file-saver": "2.0.5",
"fuse.js": "6.6.2",
"highlight.js": "11.7.0",
"js-base64": "^3.7.5",
"js-cookie": "3.0.1",
"jsencrypt": "3.3.1",
"nprogress": "0.2.0",
"pinia": "2.0.22",
"ruoyi": "file:",
"vkbeautify": "^0.99.3",
"vue": "3.2.45",
"vue-cropper": "1.0.3",
"vue-router": "4.1.4"

View File

@ -1,78 +1,52 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="68px">
<el-row :gutter="20">
<!--部门数据-->
<el-col :span="6" :xs="24">
<div class="head-container">
<el-input v-model="deptName" placeholder="请输入部门名称" clearable prefix-icon="Search"
style="margin-bottom: 20px" />
</div>
<div class="head-container">
<el-tree :data="deptOptions" :props="{ label: 'label', children: 'children' }" :expand-on-click-node="false"
:filter-node-method="filterNode" ref="deptTreeRef" node-key="id" highlight-current accordion
:default-expanded-keys="defaultEK" @node-click="handleNodeClick" />
</div>
</el-col>
<el-col :span="18" :xs="24">
<el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="部门主键" prop="deptId">
<el-input
v-model="queryParams.deptId"
placeholder="请输入部门主键"
clearable
@keyup.enter="handleQuery"
/>
<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-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 label="培训类型" prop="trainType">
<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-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-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-form-item>
<el-form-item label="工种类型" prop="craftType">
<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-form-item>
<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-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-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>
@ -83,46 +57,23 @@
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="Plus"
@click="handleAdd"
v-hasPermi="['manage:busTrainingVideo:add']"
>新增</el-button>
<el-button type="primary" plain icon="Plus" @click="handleAdd"
v-hasPermi="['manage:busTrainingVideo:add']">新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="Edit"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['manage:busTrainingVideo:edit']"
>修改</el-button>
<el-button type="success" plain icon="Edit" :disabled="single" @click="handleUpdate"
v-hasPermi="['manage:busTrainingVideo:edit']">修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="Delete"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['manage:busTrainingVideo:remove']"
>删除</el-button>
<el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete"
v-hasPermi="['manage:busTrainingVideo:remove']">删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="Download"
@click="handleExport"
v-hasPermi="['manage:busTrainingVideo:export']"
>导出</el-button>
<el-button type="warning" plain icon="Download" @click="handleExport"
v-hasPermi="['manage:busTrainingVideo:export']">导出</el-button>
</el-col>
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="busTrainingVideoList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="主键" align="center" prop="id" />
@ -131,52 +82,54 @@
<el-table-column label="培训名称" align="center" prop="trainTitle" />
<el-table-column label="培训类型" align="center" prop="trainType">
<template #default="scope">
<dict-tag :options="edu_train_type" :value="scope.row.trainType"/>
<dict-tag :options="edu_train_type" :value="scope.row.trainType" />
</template>
</el-table-column>
<el-table-column label="培训级别" align="center" prop="trainLevel">
<template #default="scope">
<dict-tag :options="edu_train_level" :value="scope.row.trainLevel"/>
<dict-tag :options="edu_train_level" :value="scope.row.trainLevel" />
</template>
</el-table-column>
<el-table-column label="工种类型" align="center" prop="craftType">
<template #default="scope">
<dict-tag :options="pro_craft_type" :value="scope.row.craftType"/>
<dict-tag :options="pro_craft_type" :value="scope.row.craftType" />
</template>
</el-table-column>
<el-table-column label="工种岗位" align="center" prop="craftPost">
<template #default="scope">
<dict-tag :options="pro_craft_post" :value="scope.row.craftPost"/>
<dict-tag :options="pro_craft_post" :value="scope.row.craftPost" />
</template>
</el-table-column>
<el-table-column label="培训文件类型" align="center" prop="trainFileType" />
<el-table-column label="培训文件地址" align="center" prop="trainFilePath" />
<el-table-column label="培训文件主图" align="center" prop="trainFileImage" width="100">
<template #default="scope">
<image-preview :src="scope.row.trainFileImage" :width="50" :height="50"/>
<image-preview :src="scope.row.trainFileImage" :width="50" :height="50" />
</template>
</el-table-column>
<el-table-column label="培训文件时长" align="center" prop="trainFileTimes" />
<el-table-column label="删除标识" align="center" prop="isDel">
<template #default="scope">
<dict-tag :options="sys_is_del" :value="scope.row.isDel"/>
<dict-tag :options="sys_is_del" :value="scope.row.isDel" />
</template>
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template #default="scope">
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['manage:busTrainingVideo:edit']"></el-button>
<el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['manage:busTrainingVideo:remove']"></el-button>
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)"
v-hasPermi="['manage:busTrainingVideo:edit']">修改</el-button>
<el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)"
v-hasPermi="['manage:busTrainingVideo:remove']">删除</el-button>
</template>
</el-table-column>
</el-table>
<pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize"
@pagination="getList" />
</el-col>
</el-row>
<pagination
v-show="total>0"
:total="total"
v-model:page="queryParams.pageNum"
v-model:limit="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改培训视频对话框 -->
<el-dialog :title="title" v-model="open" width="500px" append-to-body>
@ -192,64 +145,44 @@
</el-form-item>
<el-form-item label="培训类型" prop="trainType">
<el-select v-model="form.trainType" placeholder="请选择培训类型">
<el-option
v-for="dict in edu_train_type"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
<el-option v-for="dict in edu_train_type" :key="dict.value" :label="dict.label"
:value="dict.value"></el-option>
</el-select>
</el-form-item>
<el-form-item label="培训级别" prop="trainLevel">
<el-select v-model="form.trainLevel" placeholder="请选择培训级别">
<el-option
v-for="dict in edu_train_level"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
<el-option v-for="dict in edu_train_level" :key="dict.value" :label="dict.label"
:value="dict.value"></el-option>
</el-select>
</el-form-item>
<el-form-item label="工种类型" prop="craftType">
<el-select v-model="form.craftType" placeholder="请选择工种类型">
<el-option
v-for="dict in pro_craft_type"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
<el-option v-for="dict in pro_craft_type" :key="dict.value" :label="dict.label"
:value="dict.value"></el-option>
</el-select>
</el-form-item>
<el-form-item label="工种岗位" prop="craftPost">
<el-select v-model="form.craftPost" placeholder="请选择工种岗位">
<el-option
v-for="dict in pro_craft_post"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
<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-form-item label="培训文件类型" prop="trainFileType">
<el-input v-model="form.trainFileType" type="textarea" placeholder="请输入内容" />
</el-form-item>
<el-form-item label="培训文件地址" prop="trainFilePath">
<file-upload v-model="form.trainFilePath"/>
<file-upload v-model="form.trainFilePath" />
</el-form-item>
<el-form-item label="培训文件主图" prop="trainFileImage">
<image-upload v-model="form.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-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 label="备注" prop="remark">
@ -268,7 +201,7 @@
<script setup name="BusTrainingVideo">
import { listBusTrainingVideo, getBusTrainingVideo, delBusTrainingVideo, addBusTrainingVideo, updateBusTrainingVideo } from "@/api/manage/busTrainingVideo";
import { deptTreeSelect } from "@/api/system/user";
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');
@ -281,6 +214,9 @@ const single = ref(true);
const multiple = ref(true);
const total = ref(0);
const title = ref("");
const deptOptions = ref(undefined);
const deptName = ref("");
const defaultEK = ref([100]);
const data = reactive({
form: {},
@ -350,6 +286,13 @@ function handleQuery() {
getList();
}
/** 节点单击事件 */
function handleNodeClick(data) {
queryParams.value.deptId = data.id;
handleQuery();
};
/** 重置按钮操作 */
function resetQuery() {
proxy.resetForm("queryRef");
@ -405,12 +348,12 @@ function submitForm() {
/** 删除按钮操作 */
function handleDelete(row) {
const _ids = row.id || ids.value;
proxy.$modal.confirm('是否确认删除培训视频编号为"' + _ids + '"的数据项?').then(function() {
proxy.$modal.confirm('是否确认删除培训视频编号为"' + _ids + '"的数据项?').then(function () {
return delBusTrainingVideo(_ids);
}).then(() => {
getList();
proxy.$modal.msgSuccess("删除成功");
}).catch(() => {});
}).catch(() => { });
}
/** 导出按钮操作 */
@ -419,6 +362,22 @@ function handleExport() {
...queryParams.value
}, `busTrainingVideo_${new Date().getTime()}.xlsx`)
}
/** 通过条件过滤节点 */
const filterNode = (value, data) => {
if (!value) return true;
return data.label.indexOf(value) !== -1;
};
/** 根据名称筛选部门树 */
watch(deptName, val => {
proxy.$refs["deptTreeRef"].filter(val);
});
/** 查询部门下拉树结构 */
function getDeptTree() {
deptTreeSelect().then(response => {
deptOptions.value = response.data;
});
};
getList();
getDeptTree();
</script>