From 3a95f79805a490d23d969faedb376bcc9ac14fb5 Mon Sep 17 00:00:00 2001
From: 叶松 <2217086471@qq.com>
Date: 星期三, 22 十一月 2023 14:22:33 +0800
Subject: [PATCH] 增加提示全部
---
web/src/views/SecureManage/NipCheck/SafeExam.vue | 344 +++------------------------------------------------------
1 files changed, 19 insertions(+), 325 deletions(-)
diff --git a/web/src/views/SecureManage/NipCheck/SafeExam.vue b/web/src/views/SecureManage/NipCheck/SafeExam.vue
index 49f2769..951c1c0 100644
--- a/web/src/views/SecureManage/NipCheck/SafeExam.vue
+++ b/web/src/views/SecureManage/NipCheck/SafeExam.vue
@@ -1,341 +1,31 @@
<template>
- <div class="main tabs_main" v-if="!recordShow">
- <div class="main_header">
- <div class="header_item">
- <span class="header_label">考核名称:</span>
- <el-input v-model="examineName" clearable placeholder="请输入考核名称"></el-input>
- </div>
- <div class="header_item">
- <span class="header_label">时间范围:</span>
- <el-date-picker
- v-model="timeData"
- type="daterange"
- range-separator="至"
- start-placeholder="开始日期"
- end-placeholder="结束日期"
- value-format="yyyy-MM-dd">
- </el-date-picker>
- </div>
- <div class="header_item">
- <el-button v-if="showButton('search')" icon="el-icon-search" @click="searchSafetyExamineList(true)">查询</el-button>
- <el-button class="search_btn" v-if="showButton('insert')" icon="el-icon-plus" @click="propInsert()">新增</el-button>
- </div>
+ <div class="main">
+ <div class="main_tabs">
+ <el-tabs v-model="activeName">
+ <el-tab-pane label="安全考核" name="first"></el-tab-pane>
+ <el-tab-pane label="安全考题" name="second"></el-tab-pane>
+ <el-tab-pane label="安全培训和日常培训制定" name="third"></el-tab-pane>
+ </el-tabs>
</div>
<div class="main_content">
- <el-table
- v-loading="loading"
- :data="examineList"
- height="100%">
- <el-table-column label="序号" width="60" align="center">
- <template #default="scope">
- <span>{{(pageNum - 1) * pageSize + scope.$index + 1}}</span>
- </template>
- </el-table-column>
- <el-table-column prop="examName" label="考核名称" width="180" align="center"></el-table-column>
- <el-table-column prop="examDate" label="考核日期" align="center"></el-table-column>
- <el-table-column prop="userCount" label="人数" align="center"></el-table-column>
- <el-table-column label="操作" align="center">
- <template #default="{ row }">
- <el-button class="table_btn" size="mini" v-if="showButton('update')" @click="propUpdate(row)">修改</el-button>
- <el-button class="delete_btn" size="mini" v-if="showButton('delete')" @click="deleteInfo(row)">删除</el-button>
- <el-button class="table_btn" size="mini" v-if="showButton('delete')" @click="propRecord(row)">记录</el-button>
- </template>
- </el-table-column>
- </el-table>
+ <component :is="activeName === 'first' ? 'SafetyExamine' :activeName === 'second'? 'SafetyTopic':'dailyEnact'"></component>
</div>
- <div class="main_footer">
- <el-pagination
- background
- @current-change="changePageNum"
- @size-change="changePageSize"
- :current-page="pageNum"
- :page-sizes="[10, 20, 50, 100]"
- :page-size="pageSize"
- layout="total, sizes, prev, pager, next, jumper"
- :total="total">
- </el-pagination>
- </div>
- <!-- 新增考核 修改考核信息 -->
- <el-dialog
- class="prop_dialog"
- :title="asyncTitle ? '新增安全考核' : '修改安全考核信息'"
- :visible.sync="asyncExamine"
- width="35%">
- <el-form ref="form" :model="formExamine" :rules="rulesExamine" label-width="auto" class="rule_form">
- <el-form-item label="考核名称:" prop="examName">
- <el-input v-model="formExamine.examName" clearable placeholder="请输入考核名称"></el-input>
- </el-form-item>
- <el-form-item label="考题数量:" prop="questionCount">
- <el-input-number
- v-model="formExamine.questionCount"
- :controls="false"
- :precision="0"
- :min="0"
- placeholder="请输入考题数量">
- </el-input-number>
- </el-form-item>
- <el-form-item label="合格分数:" prop="qualifiedScore">
- <el-input-number
- v-model="formExamine.qualifiedScore"
- :controls="false"
- :min="0"
- placeholder="请输入合格分数">
- </el-input-number>
- </el-form-item>
- <el-form-item label="考核日期:" prop="examDate">
- <el-date-picker
- v-model="formExamine.examDate"
- type="date"
- clearable
- value-format="yyyy-MM-dd"
- placeholder="选择日期">
- </el-date-picker>
- </el-form-item>
- <el-form-item label="类型:" prop="examType">
- <el-select v-model="formExamine.examType" clearable placeholder="请选择类型" @change="getSecureTrainPull">
- <el-option
- v-for="item in typeData"
- :key="item.dictId"
- :label="item.dictName"
- :value="item.dictId">
- </el-option>
- </el-select>
- </el-form-item>
- <el-form-item label="类型名称:" prop="trainId">
- <el-select v-model="formExamine.trainId" clearable placeholder="请选择类型名称">
- <el-option
- v-for="item in typeNameData"
- :key="item.secureId"
- :label="item.secureName"
- :value="item.secureId">
- </el-option>
- </el-select>
- </el-form-item>
- </el-form>
- <div slot="footer">
- <el-button @click="asyncExamine = false">取 消</el-button>
- <el-button class="submit_btn" @click="asyncTitle ? submitInsertForm() : submitUpdateForm()">提 交</el-button>
- </div>
- </el-dialog>
</div>
- <examine-record v-else :examine-id.sync="examineId" :record-show.sync="recordShow"></examine-record>
</template>
<script>
-import { buttonPinia } from '../../../pinia';
-import { throttle } from '../../../plugins/public';
-import ExamineRecord from './ExamineRecord.vue';
+import SafetyExamine from './components/SafetyExamine.vue'; // 安全考核
+import SafetyTopic from './components/SafetyTopic.vue'; // 安全考题
+import DailyEnact from './components/DailyEnact.vue'; // 安全培训和日常培训制定
export default {
components: {
- ExamineRecord
+ SafetyExamine,
+ SafetyTopic,
+ DailyEnact
},
data() {
return {
- examineName: '',
- timeData: '',
- loading: false,
- pageNum: 1,
- pageSize: 10,
- total: 0,
- examineList: [],
- asyncTitle: true, // true 新增 false 修改
- asyncExamine: false, // 弹窗
- formExamine: {}, // 表单信息
- rulesExamine: {
- examName: [{
- required: true,
- message: '请输入考核名称',
- trigger: 'blur'
- }],
- questionCount: [{
- required: true,
- message: '请输入考题数量',
- trigger: 'blur'
- }],
- qualifiedScore: [{
- required: true,
- message: '请输入合格分数',
- trigger: 'blur'
- }],
- examDate: [{
- required: true,
- message: '请选择考试日期',
- trigger: ['blur', 'change']
- }],
- examType: [{
- required: true,
- message: '请选择类型',
- trigger: ['blur', 'change']
- }],
- trainId: [{
- required: true,
- message: '请选择类型名称',
- trigger: ['blur', 'change']
- }]
- }, // 表单验证
- typeData: [], // 类型信息
- typeNameData: [], // 类型名称信息
- recordShow: false, // 记录
- examineId: '',
- }
- },
- mounted() {
- this.searchSafetyExamineList(true);
- },
- methods: {
- // 获取类型信息
- async getExamineTypeData() {
- const { data } = await this.$api.Dictionary.searchDictionary({
- dictType: 'train_type',
- pageNum: 1,
- pageSize: 100000
- });
- this.typeData = data.list;
- },
- // 查询安全考核信息
- searchSafetyExamineList(bol) {
- if(bol) {
- this.pageNum = 1;
- }
- this.loading = true;
- this.examineList = [];
- this.$api.Safety.searchSafetyExamineList({
- pageNum: this.pageNum,
- pageSize: this.pageSize,
- examName: this.examineName,
- startDay: this.timeData ? this.timeData[0] : '',
- endDay: this.timeData ? this.timeData[1] : ''
- }).then((res) => {
- if(res.success) {
- this.total = res.data.total;
- this.examineList = res.data.list;
- }
- this.loading = false;
- }).catch(() => {
- this.loading = false;
- })
- },
- // 打开添加信息
- propInsert() {
- this.asyncTitle = true;
- this.asyncExamine = true;
- },
- // 打开修改信息
- propUpdate(row) {
- this.$api.Safety.getAllSecureTrainPull({
- secureType: row.examType
- }).then((res) => {
- this.typeNameData = res.data;
- })
- this.$set(this.formExamine, 'examId', row.examId);
- this.$set(this.formExamine, 'examName', row.examName);
- this.$set(this.formExamine, 'questionCount', row.questionCount);
- this.$set(this.formExamine, 'qualifiedScore', row.qualifiedScore);
- this.$set(this.formExamine, 'examDate', row.examDate);
- this.$set(this.formExamine, 'examType', row.examType);
- this.$set(this.formExamine, 'trainId', row.trainId);
- this.asyncTitle = false;
- this.asyncExamine = true;
- },
- // 打开记录信息
- propRecord(row) {
- this.examineId = row.examId;
- this.recordShow = true;
- },
- // 删除考核信息
- deleteInfo(row) {
- this.$confirm("该操作将删除该考核信息,是否继续删除?", "提示", {
- confirmButtonText: "确定",
- cancelButtonText: "取消",
- type: "warning"
- })
- .then(() => {
- this.$api.Safety.deleteSafetyExamineInfo({
- examId: row.examId
- }).then(res => {
- if(res.success) {
- this.searchSafetyExamineList(true);
- this.$message.success("删除成功!");
- } else {
- this.$message.warning(res.statusMsg);
- }
- })
- })
- .catch(() => {
- this.$message.warning("您已取消");
- })
- },
- // 提交添加信息
- submitInsertForm: throttle(function () {
- this.$refs.form.validate((valid) => {
- if(valid) {
- const params = Object.assign({}, this.formExamine);
- this.$api.Safety.insertSafetyExamineInfo(params).then((res) => {
- if(res.success) {
- this.asyncExamine = false;
- this.searchSafetyExamineList(true);
- this.$message.success('添加成功!');
- } else {
- this.$message.warning(res.statusMsg);
- }
- })
- }
- })
- }, 3000),
- // 提交修改信息
- submitUpdateForm: throttle(function() {
- this.$refs.form.validate((valid) => {
- if(valid) {
- const params = Object.assign({}, this.formExamine);
- this.$api.Safety.insertSafetyExamineInfo(params).then((res) => {
- if(res.success) {
- this.asyncExamine = false;
- this.searchSafetyExamineList(true);
- this.$message.success('修改成功!');
- } else {
- this.$message.warning(res.statusMsg);
- }
- })
- }
- })
- }, 3000),
- // 根据类型获取类型名称信息
- getSecureTrainPull(data) {
- this.typeNameData = [];
- if(data) {
- this.$api.Safety.getAllSecureTrainPull({
- secureType: data
- }).then((res) => {
- this.typeNameData = res.data;
- })
- } else {
- this.$set(this.formExamine, 'trainId', '');
- }
- },
- // 切换页码
- changePageNum(page) {
- this.pageNum = page;
- this.searchSafetyExamineList();
- },
- // 切换每页条数
- changePageSize(size) {
- this.pageSize = size;
- this.searchSafetyExamineList();
- },
- // 判断按钮权限信息
- showButton(str) {
- const pinia = buttonPinia();
- return pinia.$state.buttonInfo.includes(str);
- }
- },
- watch: {
- asyncExamine(bol) {
- if(bol) {
- this.getExamineTypeData();
- } else {
- this.formExamine = {};
- this.$refs.form.resetFields();
- }
+ activeName: 'first'
}
}
}
@@ -343,4 +33,8 @@
<style lang="scss" scoped>
@import '@/style/layout-main.scss';
+
+/deep/.main {
+ background: none;
+}
</style>
\ No newline at end of file
--
Gitblit v1.9.3