1 files deleted
14 files modified
| | |
| | | }) |
| | | } |
| | | |
| | | //复制 |
| | | export function copyControl(data) { |
| | | return request({ |
| | | url: '/composite/risk/manage/copy', |
| | | method: 'post', |
| | | data: data |
| | | }) |
| | | } |
| | | |
| | | export function copyFactor(data) { |
| | | return request({ |
| | | url: '/composite/factor/discern/copy', |
| | | method: 'post', |
| | | data: data |
| | | }) |
| | | } |
| | | |
| | | |
| | | |
| | | //控制 |
| | | export function getControl(params) { |
| | | return request({ |
| | |
| | | import router from './router' |
| | | import { ElMessage } from 'element-plus' |
| | | import { ElMessage, ElLoading } from 'element-plus' |
| | | import NProgress from 'nprogress' |
| | | import 'nprogress/nprogress.css' |
| | | import { getToken } from '@/utils/auth' |
| | |
| | | |
| | | const whiteList = ['/homePage']; |
| | | |
| | | // 全局 Loading 实例 |
| | | let loadingInstance = null |
| | | |
| | | // 显示 Loading |
| | | const showLoading = () => { |
| | | loadingInstance = ElLoading.service({ |
| | | fullscreen: false, |
| | | text: '正在加载系统菜单...', |
| | | customClass: 'route-loading' |
| | | }) |
| | | } |
| | | |
| | | // 隐藏 Loading |
| | | const hideLoading = () => { |
| | | if (loadingInstance) { |
| | | loadingInstance.close() |
| | | loadingInstance = null |
| | | } |
| | | } |
| | | |
| | | |
| | | router.beforeEach((to, from, next) => { |
| | | NProgress.start() |
| | | if (getToken()) { |
| | |
| | | next({ path: '/' }) |
| | | NProgress.done() |
| | | } else if (whiteList.indexOf(to.path) !== -1) { |
| | | |
| | | next() |
| | | } else { |
| | | if(to.path ==='/menuPage'){ |
| | | next() |
| | | return |
| | | } |
| | | if (useUserStore().roles.length === 0) { |
| | | if(to.path ==='/menuIndex'){ |
| | | showLoading() |
| | | } |
| | | |
| | | isRelogin.show = true |
| | | // 判断当前用户是否已拉取完user_info信息 |
| | | useUserStore().getInfo().then(() => { |
| | |
| | | router.addRoute(route) // 动态添加可访问路由表 |
| | | } |
| | | }) |
| | | |
| | | hideLoading() |
| | | |
| | | if (to.fullPath == '/index') { |
| | | |
| | |
| | | }) |
| | | |
| | | router.afterEach(() => { |
| | | hideLoading() |
| | | NProgress.done() |
| | | }) |
| | |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="年份:" style="margin-left: 20px"> |
| | | <el-select |
| | | <el-date-picker |
| | | v-model="data.queryParams.year" |
| | | placeholder="请选择年份" |
| | | style="width: 240px" |
| | | filterable |
| | | allow-create |
| | | default-first-option |
| | | :reserve-keyword="false" |
| | | @change="handleChangeNum" |
| | | > |
| | | <el-option |
| | | v-for="item in data.yearList" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.label" |
| | | /> |
| | | </el-select> |
| | | type="year" |
| | | value-format="YYYY" |
| | | /> |
| | | <!-- <el-select--> |
| | | <!-- v-model="data.queryParams.year"--> |
| | | <!-- placeholder="请选择年份"--> |
| | | <!-- style="width: 240px"--> |
| | | <!-- filterable--> |
| | | <!-- allow-create--> |
| | | <!-- default-first-option--> |
| | | <!-- :reserve-keyword="false"--> |
| | | <!-- @change="handleChangeNum"--> |
| | | <!-- >--> |
| | | <!-- <el-option--> |
| | | <!-- v-for="item in data.yearList"--> |
| | | <!-- :key="item.value"--> |
| | | <!-- :label="item.label"--> |
| | | <!-- :value="item.label"--> |
| | | <!-- />--> |
| | | <!-- </el-select>--> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button type="primary" style="margin-left: 30px" @click="searchClick">查询</el-button> |
| | |
| | | }else { |
| | | data.queryParams.companyId = userInfo.companyId |
| | | } |
| | | getNowYear() |
| | | getList(); |
| | | if(data.isAdmin){ |
| | | getCompanyList() |
| | | } |
| | | }); |
| | | const getNowYear = () =>{ |
| | | data.queryParams.year = new Date().getFullYear().toString() |
| | | } |
| | | const getList = async () => { |
| | | loading.value = true; |
| | | const res = await getControl(data.queryParams); |
| | |
| | | type: '' |
| | | } |
| | | } |
| | | getNowYear() |
| | | getList(); |
| | | |
| | | } |
| | |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="年份:" style="margin-left: 20px"> |
| | | <el-select |
| | | <el-date-picker |
| | | v-model="data.queryParams.year" |
| | | placeholder="请选择年份" |
| | | style="width: 240px" |
| | | filterable |
| | | allow-create |
| | | default-first-option |
| | | :reserve-keyword="false" |
| | | @change="handleChangeNum" |
| | | > |
| | | <el-option |
| | | v-for="item in data.yearList" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.label" |
| | | /> |
| | | </el-select> |
| | | type="year" |
| | | value-format="YYYY" |
| | | /> |
| | | <!-- <el-select--> |
| | | <!-- v-model="data.queryParams.year"--> |
| | | <!-- placeholder="请选择年份"--> |
| | | <!-- style="width: 240px"--> |
| | | <!-- filterable--> |
| | | <!-- allow-create--> |
| | | <!-- default-first-option--> |
| | | <!-- :reserve-keyword="false"--> |
| | | <!-- @change="handleChangeNum"--> |
| | | <!-- >--> |
| | | <!-- <el-option--> |
| | | <!-- v-for="item in data.yearList"--> |
| | | <!-- :key="item.value"--> |
| | | <!-- :label="item.label"--> |
| | | <!-- :value="item.label"--> |
| | | <!-- />--> |
| | | <!-- </el-select>--> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button type="primary" style="margin-left: 30px" @click="searchClick">查询</el-button> |
| | |
| | | type="primary" |
| | | @click="exportData" |
| | | >导出</el-button> |
| | | <el-button type="primary" plain @click="copy">复制</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | |
| | | /> |
| | | </div> |
| | | <editDialog ref="noticeRef" @getList = "getList"></editDialog> |
| | | <el-dialog |
| | | v-model="copyVisible" |
| | | width="500px" |
| | | :before-close="handleCloseCopy" |
| | | :close-on-press-escape="false" |
| | | :close-on-click-modal="false" |
| | | > |
| | | <div v-if="data.isAdmin"> |
| | | <span style="display:block;margin-bottom: 8px">单位名称:</span> |
| | | <el-select |
| | | v-model="queryParams.companyId" |
| | | filterable |
| | | style="width: 100%;margin-bottom: 8px" |
| | | > |
| | | <el-option |
| | | v-for="item in data.companyList" |
| | | :key="item.id" |
| | | :label="item.name" |
| | | :value="item.id" |
| | | /> |
| | | </el-select> |
| | | </div> |
| | | <span style="display:block;margin-bottom: 8px">将以下年份数据:</span> |
| | | <el-date-picker |
| | | v-model="data.copyYear" |
| | | type="year" |
| | | value-format="YYYY" |
| | | style="margin-bottom: 8px;width: 100%;" |
| | | placeholder="请选择" |
| | | /> |
| | | <span style="display:block;margin-bottom: 8px">复制到:</span> |
| | | <el-date-picker |
| | | v-model="data.targetYear" |
| | | type="year" |
| | | value-format="YYYY" |
| | | style="margin-bottom: 8px;width: 100%" |
| | | placeholder="请选择" |
| | | /> |
| | | <div class="dialog-footer" style="display: flex;justify-content: right"> |
| | | <el-button @click="handleCloseCopy" size="default">取 消</el-button> |
| | | <el-button type="primary" @click="onSubmitCopy" size="default" v-preReClick>确认</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | |
| | | import Cookies from "js-cookie"; |
| | | import {generateWordDocument} from "@/utils/exportWord"; |
| | | import {delTable, getTable} from "@/api/qualityObjectives/table"; |
| | | import {delDiscern, getDiscern} from "@/api/environment/factors"; |
| | | import {copyControl, copyFactor, delDiscern, getDiscern} from "@/api/environment/factors"; |
| | | import {copySysClause} from "@/api/staffManage/staff"; |
| | | const { proxy } = getCurrentInstance(); |
| | | const loading = ref(false); |
| | | const noticeRef = ref(); |
| | |
| | | year: '', |
| | | type: '' |
| | | }, |
| | | copyVisible: false, |
| | | targetYear:'', |
| | | copyYear:'', |
| | | companyList: [], |
| | | isAdmin: false, |
| | | dialogVisible: false, |
| | |
| | | const dataList = ref([]); |
| | | const total = ref(0); |
| | | |
| | | const { queryParams } = toRefs(data); |
| | | const { queryParams,copyVisible,chooseYearId } = toRefs(data); |
| | | |
| | | onMounted(() => { |
| | | const userInfo = JSON.parse(Cookies.get('userInfo')) |
| | |
| | | }else { |
| | | data.queryParams.companyId = userInfo.companyId |
| | | } |
| | | getNowYear() |
| | | getList(); |
| | | if(data.isAdmin){ |
| | | getCompanyList() |
| | | } |
| | | }); |
| | | const getNowYear = () =>{ |
| | | data.queryParams.year = new Date().getFullYear().toString() |
| | | } |
| | | const getList = async () => { |
| | | loading.value = true; |
| | | const res = await getDiscern(data.queryParams); |
| | |
| | | type: '' |
| | | } |
| | | } |
| | | getNowYear() |
| | | getList(); |
| | | |
| | | } |
| | |
| | | data.yearList.push({ value, label: value }); // 添加新选项(这里简单地将值和标签设为相同) |
| | | } |
| | | } |
| | | const copy = () => { |
| | | data.copyVisible = true |
| | | } |
| | | |
| | | const onSubmitCopy = async () => { |
| | | if(data.isAdmin && !data.queryParams.companyId){ |
| | | ElMessage.warning('请先选择单位') |
| | | return |
| | | } |
| | | if(!data.copyYear){ |
| | | ElMessage.warning('请先选择要复制的年份') |
| | | return |
| | | } |
| | | if(!data.targetYear){ |
| | | ElMessage.warning('请选择目标年份') |
| | | return |
| | | } |
| | | ElMessageBox.confirm( |
| | | '该操作将覆盖目标年份的数据,是否继续?', |
| | | '提示', |
| | | { |
| | | confirmButtonText: '确定', |
| | | cancelButtonText: '取消', |
| | | type: 'warning', |
| | | }) |
| | | .then( async() => { |
| | | const param = { |
| | | companyId: data.queryParams.companyId, |
| | | copyYear: data.copyYear, |
| | | targetYear: data.targetYear |
| | | } |
| | | const res = await copyFactor(param); |
| | | if(res.code === 200){ |
| | | ElMessage({ |
| | | type: 'success', |
| | | message: res.data |
| | | }); |
| | | await handleCloseCopy() |
| | | await getList(); |
| | | }else{ |
| | | ElMessage.warning(res.message) |
| | | } |
| | | |
| | | }).catch(err => { |
| | | }) |
| | | } |
| | | const handleCloseCopy = () => { |
| | | data.targetYear='' |
| | | data.copyYear='' |
| | | data.copyVisible = false |
| | | } |
| | | </script> |
| | | <style lang="scss"> |
| | | .pag-container{ |
| | |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="年份:" style="margin-left: 20px"> |
| | | <el-select |
| | | <el-date-picker |
| | | v-model="data.queryParams.year" |
| | | placeholder="请选择年份" |
| | | style="width: 240px" |
| | | filterable |
| | | allow-create |
| | | default-first-option |
| | | :reserve-keyword="false" |
| | | @change="handleChangeNum" |
| | | > |
| | | <el-option |
| | | v-for="item in data.yearList" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.label" |
| | | /> |
| | | </el-select> |
| | | type="year" |
| | | value-format="YYYY" |
| | | /> |
| | | <!-- <el-select--> |
| | | <!-- v-model="data.queryParams.year"--> |
| | | <!-- placeholder="请选择年份"--> |
| | | <!-- style="width: 240px"--> |
| | | <!-- filterable--> |
| | | <!-- allow-create--> |
| | | <!-- default-first-option--> |
| | | <!-- :reserve-keyword="false"--> |
| | | <!-- @change="handleChangeNum"--> |
| | | <!-- >--> |
| | | <!-- <el-option--> |
| | | <!-- v-for="item in data.yearList"--> |
| | | <!-- :key="item.value"--> |
| | | <!-- :label="item.label"--> |
| | | <!-- :value="item.label"--> |
| | | <!-- />--> |
| | | <!-- </el-select>--> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button type="primary" style="margin-left: 30px" @click="searchClick">查询</el-button> |
| | | <el-button plain @click="reset">重置</el-button> |
| | | |
| | | </el-form-item> |
| | | <el-form-item style="margin-left: 15px"> |
| | | <el-button |
| | | type="primary" |
| | | @click="exportData" |
| | | >导出</el-button> |
| | | <el-button type="primary" plain @click="copy">复制</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | |
| | | /> |
| | | </div> |
| | | <editDialog ref="noticeRef" @getList = "getList"></editDialog> |
| | | <el-dialog |
| | | v-model="copyVisible" |
| | | width="500px" |
| | | :before-close="handleCloseCopy" |
| | | :close-on-press-escape="false" |
| | | :close-on-click-modal="false" |
| | | > |
| | | <div v-if="data.isAdmin"> |
| | | <span style="display:block;margin-bottom: 8px">单位名称:</span> |
| | | <el-select |
| | | v-model="queryParams.companyId" |
| | | filterable |
| | | style="width: 100%;margin-bottom: 8px" |
| | | > |
| | | <el-option |
| | | v-for="item in data.companyList" |
| | | :key="item.id" |
| | | :label="item.name" |
| | | :value="item.id" |
| | | /> |
| | | </el-select> |
| | | </div> |
| | | <span style="display:block;margin-bottom: 8px">将以下年份数据:</span> |
| | | <el-date-picker |
| | | v-model="data.copyYear" |
| | | type="year" |
| | | value-format="YYYY" |
| | | style="margin-bottom: 8px;width: 100%;" |
| | | placeholder="请选择" |
| | | /> |
| | | <span style="display:block;margin-bottom: 8px">复制到:</span> |
| | | <el-date-picker |
| | | v-model="data.targetYear" |
| | | type="year" |
| | | value-format="YYYY" |
| | | style="margin-bottom: 8px;width: 100%" |
| | | placeholder="请选择" |
| | | /> |
| | | <div class="dialog-footer" style="display: flex;justify-content: right"> |
| | | <el-button @click="handleCloseCopy" size="default">取 消</el-button> |
| | | <el-button type="primary" @click="onSubmitCopy" size="default" v-preReClick>确认</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | |
| | | import {generateWordDocument} from "@/utils/exportWord"; |
| | | import {delTable, getTable} from "@/api/qualityObjectives/table"; |
| | | import {delRiskControl, getRiskControl} from "@/api/riskManage/risk"; |
| | | import {copySysClause} from "@/api/staffManage/staff"; |
| | | import {copyControl} from "@/api/environment/factors"; |
| | | const { proxy } = getCurrentInstance(); |
| | | const loading = ref(false); |
| | | const noticeRef = ref(); |
| | |
| | | year: '', |
| | | type: '' |
| | | }, |
| | | copyVisible: false, |
| | | targetYear:'', |
| | | copyYear:'', |
| | | companyList: [], |
| | | isAdmin: false, |
| | | dialogVisible: false, |
| | |
| | | const dataList = ref([]); |
| | | const total = ref(0); |
| | | |
| | | const { queryParams } = toRefs(data); |
| | | const { queryParams,copyVisible,chooseYearId } = toRefs(data); |
| | | |
| | | onMounted(() => { |
| | | const userInfo = JSON.parse(Cookies.get('userInfo')) |
| | |
| | | }else { |
| | | data.queryParams.companyId = userInfo.companyId |
| | | } |
| | | getNowYear() |
| | | getList(); |
| | | if(data.isAdmin){ |
| | | getCompanyList() |
| | | } |
| | | }); |
| | | const getNowYear = () =>{ |
| | | data.queryParams.year = new Date().getFullYear().toString() |
| | | } |
| | | const getList = async () => { |
| | | loading.value = true; |
| | | const res = await getRiskControl(data.queryParams); |
| | |
| | | type: '' |
| | | } |
| | | } |
| | | getNowYear() |
| | | getList(); |
| | | |
| | | } |
| | |
| | | data.yearList.push({ value, label: value }); // 添加新选项(这里简单地将值和标签设为相同) |
| | | } |
| | | } |
| | | const copy = () => { |
| | | |
| | | data.copyVisible = true |
| | | } |
| | | |
| | | const onSubmitCopy = async () => { |
| | | if(data.isAdmin && !data.queryParams.companyId){ |
| | | ElMessage.warning('请先选择单位') |
| | | return |
| | | } |
| | | if(!data.copyYear){ |
| | | ElMessage.warning('请先选择要复制的年份') |
| | | return |
| | | } |
| | | if(!data.targetYear){ |
| | | ElMessage.warning('请选择目标年份') |
| | | return |
| | | } |
| | | ElMessageBox.confirm( |
| | | '该操作将覆盖目标年份的数据,是否继续?', |
| | | '提示', |
| | | { |
| | | confirmButtonText: '确定', |
| | | cancelButtonText: '取消', |
| | | type: 'warning', |
| | | }) |
| | | .then( async() => { |
| | | const param = { |
| | | companyId: data.queryParams.companyId, |
| | | copyYear: data.copyYear, |
| | | targetYear: data.targetYear |
| | | } |
| | | const res = await copyControl(param); |
| | | if(res.code === 200){ |
| | | ElMessage({ |
| | | type: 'success', |
| | | message: res.data |
| | | }); |
| | | await handleCloseCopy() |
| | | await getList(); |
| | | |
| | | }else{ |
| | | ElMessage.warning(res.message) |
| | | } |
| | | }).catch(err => { |
| | | }) |
| | | } |
| | | const handleCloseCopy = () => { |
| | | data.targetYear='' |
| | | data.copyYear='' |
| | | data.copyVisible = false |
| | | } |
| | | |
| | | </script> |
| | | <style lang="scss"> |
| | |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="年份:" style="margin-left: 20px"> |
| | | <el-select |
| | | <el-date-picker |
| | | v-model="data.queryParams.year" |
| | | placeholder="请选择年份" |
| | | style="width: 240px" |
| | | filterable |
| | | allow-create |
| | | default-first-option |
| | | :reserve-keyword="false" |
| | | @change="handleChangeNum" |
| | | > |
| | | <el-option |
| | | v-for="item in data.yearList" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.label" |
| | | /> |
| | | </el-select> |
| | | type="year" |
| | | value-format="YYYY" |
| | | /> |
| | | <!-- <el-select--> |
| | | <!-- v-model="data.queryParams.year"--> |
| | | <!-- placeholder="请选择年份"--> |
| | | <!-- style="width: 240px"--> |
| | | <!-- filterable--> |
| | | <!-- allow-create--> |
| | | <!-- default-first-option--> |
| | | <!-- :reserve-keyword="false"--> |
| | | <!-- @change="handleChangeNum"--> |
| | | <!-- >--> |
| | | <!-- <el-option--> |
| | | <!-- v-for="item in data.yearList"--> |
| | | <!-- :key="item.value"--> |
| | | <!-- :label="item.label"--> |
| | | <!-- :value="item.label"--> |
| | | <!-- />--> |
| | | <!-- </el-select>--> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button type="primary" style="margin-left: 30px" @click="searchClick">查询</el-button> |
| | |
| | | }else { |
| | | data.queryParams.companyId = userInfo.companyId |
| | | } |
| | | getNowYear() |
| | | getList(); |
| | | if(data.isAdmin){ |
| | | getCompanyList() |
| | | } |
| | | }); |
| | | const getNowYear = () =>{ |
| | | data.queryParams.year = new Date().getFullYear().toString() |
| | | } |
| | | const getList = async () => { |
| | | loading.value = true; |
| | | const res = await getMonitorRecord(data.queryParams); |
| | |
| | | type: '' |
| | | } |
| | | } |
| | | getNowYear() |
| | | getList(); |
| | | |
| | | } |
| | |
| | | } |
| | | } |
| | | |
| | | const debounce = (func, wait) => { |
| | | let timeout |
| | | return (...args) => { |
| | | clearTimeout(timeout) |
| | | timeout = setTimeout(() => { |
| | | func(...args) |
| | | }, wait) |
| | | } |
| | | } |
| | | |
| | | const handleSystemLinkClick = (systemId) => { |
| | | console.log('点击了'+ systemId) |
| | | if(systemId == 1){ |
| | | router.push({ path: "/menuIndex"}); |
| | | }else{ |
| | |
| | | } |
| | | } |
| | | |
| | | // const debouncedSubmit = ref(debounce(submitHandle, 500)) |
| | | |
| | | // const handleSystemLinkClick = (id) => { |
| | | // debouncedSubmit.value(id) |
| | | // } |
| | | |
| | | function getInfo() { |
| | | reviewRef.value.openDialog('view',userInfo.value) |
| | | } |
| | |
| | | <span class="more-link" @click="toNoticeMng">更多 ></span> |
| | | </div> |
| | | <div class="notice-list"> |
| | | <div class="notice-item" v-for="item in noticeList" :key="item"> |
| | | <span class="notice-title" @click="openNoticeFile(item.filePath)">{{item.content}}</span> |
| | | <span class="notice-date">{{item.publishDate}}</span> |
| | | </div> |
| | | |
| | | <template v-if="noticeLoading"> |
| | | <div v-for="i in 6" :key="i" class="notice-item skeleton"> |
| | | <div class="skeleton-title"></div> |
| | | <div class="skeleton-date"></div> |
| | | </div> |
| | | </template> |
| | | |
| | | <template v-else> |
| | | <div class="notice-item" v-for="item in noticeList" :key="item.id"> |
| | | <span class="notice-title" @click="openNoticeFile(item.filePath)">{{item.content}}</span> |
| | | <span class="notice-date">{{item.publishDate}}</span> |
| | | </div> |
| | | </template> |
| | | </div> |
| | | </div> |
| | | |
| | |
| | | import userDialog from '@/views/build/conpanyFunctionConsult/staffManage/staffRegister/components/staffDialog.vue' |
| | | import editDialog from '@/views/build/conpanyFunctionConsult/infoPlatform/components/editDialog.vue' |
| | | import sealDialog from "@/views/work/sealManagement/apply/components/editDialog" |
| | | import menu1 from '@/assets/icons/menu1.png' |
| | | import menu2 from '@/assets/icons/menu2.png' |
| | | import menu3 from '@/assets/icons/menu3.png' |
| | | import menu4 from '@/assets/icons/menu4.png' |
| | | import menu5 from '@/assets/icons/menu5.png' |
| | | import menu6 from '@/assets/icons/menu6.png' |
| | | |
| | | // 引入农历库 |
| | | import * as lunarCalendar from 'lunar-calendar' |
| | |
| | | const calendarRef = ref() |
| | | const dialogRef = ref() |
| | | const noticeRef = ref(); |
| | | const noticeLoading = ref(true) |
| | | |
| | | const userStore = useUserStore() |
| | | const state = reactive({ |
| | | noticeParams: { |
| | |
| | | state.platformParams.companyId = userStore.companyId |
| | | state.isAdmin = false |
| | | } |
| | | await getNoticeList() |
| | | await getPlatformList() |
| | | await getFlowList() |
| | | await getMemo() |
| | | // 并行加载所有数据 |
| | | await Promise.allSettled([ |
| | | getNoticeList(), |
| | | getPlatformList(), |
| | | getFlowList(), |
| | | getMemo() |
| | | ]) |
| | | state.platformList.forEach(system => { |
| | | cardStates.value[system.id] = { |
| | | mouseX: 0, |
| | |
| | | noticeRef.value.openDialog('review', data,state.companyList) |
| | | } |
| | | } |
| | | function getNoticeList() { |
| | | listNotice(state.noticeParams).then(res => { |
| | | state.noticeList = res.data.list |
| | | }) |
| | | async function getNoticeList() { |
| | | try { |
| | | noticeLoading.value = true |
| | | const res = await listNotice(state.noticeParams) |
| | | state.noticeList = res.data.list || [] |
| | | } catch (error) { |
| | | console.error('获取通知公告失败:', error) |
| | | state.noticeList = [] |
| | | } finally { |
| | | noticeLoading.value = false |
| | | } |
| | | } |
| | | const getCompanyList = async ()=>{ |
| | | const queryParams = { |
| | |
| | | >重置</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | <span v-if="!data.isAdmin" style="font-size: 19px;font-weight: 600;margin-right: 20px"> |
| | | {{data.companyName}},您的企业当前系统可用课时总计 |
| | | <span style="font-size: 19px;font-weight: 600;color: #1ab394">{{data.remainPeriod}}</span> 分钟。<span @click="openDetail" style="cursor: pointer; font-size: 19px;font-weight: 600;color: #1890ff">[明细]</span> |
| | | </span> |
| | | <!-- <span v-if="!data.isAdmin" style="font-size: 19px;font-weight: 600;margin-right: 20px">--> |
| | | <!-- {{data.companyName}},您的企业当前系统可用课时总计--> |
| | | <!-- <span style="font-size: 19px;font-weight: 600;color: #1ab394">{{data.remainPeriod}}</span> 分钟。<span @click="openDetail" style="cursor: pointer; font-size: 19px;font-weight: 600;color: #1890ff">[明细]</span>--> |
| | | <!-- </span>--> |
| | | </div> |
| | | <!-- 表格数据 --> |
| | | <el-table v-loading="loading" :data="dataList" :border="true"> |
| | | <el-table-column label="批次编号" prop="code" align="center" width="135" /> |
| | | <el-table-column label="创建时间" prop="createTime" align="center" width="120" /> |
| | | <el-table-column label="批次名称" prop="name" align="center" /> |
| | | <el-table-column label="创建企业" prop="companyName" align="center" /> |
| | | <!-- <el-table-column label="创建企业" prop="companyName" align="center" />--> |
| | | <el-table-column label="批次级别" prop="level" align="center" > |
| | | <template #default="scope"> |
| | | <span>{{scope.row.level === 1 ? '公司级' : scope.row.level === 2 ? '部门级' : scope.row.level === 3 ? '车间级' : '其他' }}</span> |
| | |
| | | </el-table-column> |
| | | <el-table-column label="课程" prop="courseName" align="center" /> |
| | | <el-table-column label="学习人数" prop="studentCount" align="center" /> |
| | | <el-table-column label="总课时" prop="coursePeriodNum" align="center" /> |
| | | <!-- <el-table-column label="总课时" prop="coursePeriodNum" align="center" />--> |
| | | <el-table-column label="已完成人数" prop="finishCount" align="center" /> |
| | | <el-table-column label="完成率" prop="finishRate" align="center" /> |
| | | <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="180"> |
| | |
| | | v-hasPermi="['courseEvaluate:list:add']" |
| | | >新增</el-button> |
| | | </el-form-item> |
| | | <el-form-item label="年份:" style="margin-left: 20px"> |
| | | <el-date-picker |
| | | v-model="data.queryParams.openYear" |
| | | type="year" |
| | | value-format="YYYY" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="单位名称:" v-if="data.isAdmin" style="margin-left: 20px"> |
| | | <el-select v-model="data.queryParams.companyId" placeholder="请选择" filterable clearable> |
| | | <el-option |
| | |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | companyId: null, |
| | | year: '', |
| | | openYear: '', |
| | | type: '' |
| | | }, |
| | | companyList: [], |
| | |
| | | }else { |
| | | data.queryParams.companyId = userInfo.companyId |
| | | } |
| | | getNowYear() |
| | | getList(); |
| | | if(data.isAdmin){ |
| | | getCompanyList() |
| | | } |
| | | }); |
| | | const getNowYear = () =>{ |
| | | data.queryParams.openYear = new Date().getFullYear().toString() |
| | | } |
| | | const getList = async () => { |
| | | loading.value = true; |
| | | const res = await getCourseEvaluate(data.queryParams); |
| | |
| | | companyId: '', |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | year: '', |
| | | openYear: '', |
| | | type: '' |
| | | } |
| | | choosedData.value = [] |
| | |
| | | companyId: data.queryParams.companyId, |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | year: '', |
| | | openYear: '', |
| | | type: '' |
| | | } |
| | | } |
| | | getNowYear() |
| | | getList(); |
| | | |
| | | } |
| | |
| | | <el-form-item label="提交单位:" prop="companyName" > |
| | | <el-input v-model="state.form.companyName" disabled/> |
| | | </el-form-item> |
| | | <el-form-item label="截止时间:" prop="stopTime" > |
| | | <el-date-picker |
| | | v-model="state.form.stopTime" |
| | | type="datetime" |
| | | value-format="YYYY-MM-DD HH:mm" |
| | | placeholder="请选择时间" |
| | | style="width: 100%" |
| | | /> |
| | | </el-form-item> |
| | | <!-- <el-form-item label="封面:">--> |
| | | <!-- <el-upload accept="image/*" :action="state.uploadUrl" :headers="state.header" method="post" :on-success="(res, uploadFile)=>handleAvatarSuccess(res, uploadFile)" :on-exceed="showTip" :limit='state.imgLimit' v-model:file-list="state.imgList" list-type="picture-card" :before-upload="picSize" :on-remove="(file, uploadFiles)=>handleRemove(file, uploadFiles)" >--> |
| | | <!-- <el-icon><Plus /></el-icon>--> |
| | |
| | | categoryId: null, |
| | | period: null, |
| | | logo: '', |
| | | companyId: null |
| | | companyId: null, |
| | | stopTime:null |
| | | }, |
| | | formRules: { |
| | | name: [{required: true, trigger: "blur", validator: validateName}], |
| | | categoryId: [{required: true, message: '请选择课程分类', trigger: 'blur'}], |
| | | period: [{required: true, message: '请输入要求课时', trigger: 'blur'}], |
| | | stopTime: [{required: true, message: '请选择截止日期', trigger: 'blur'}], |
| | | }, |
| | | classifyList: [], |
| | | uploadUrl: import.meta.env.VITE_APP_BASE_API + '/system/common/uploadFile', |
| | |
| | | categoryId: null, |
| | | period: null, |
| | | logo: '', |
| | | companyId: null |
| | | companyId: null, |
| | | stopTime:null |
| | | } |
| | | state.imgList = [] |
| | | } |
| | |
| | | <!-- </template>--> |
| | | <!-- </el-table-column>--> |
| | | <el-table-column label="创建时间" prop="createTime" align="center" width="180" /> |
| | | <el-table-column label="截止时间" prop="stopTime" align="center" width="180" /> |
| | | <!-- <el-table-column label="状态" prop="status" align="center" >--> |
| | | |
| | | <!-- <template #default="scope" v-if="data.isAdmin">--> |
| | |
| | | v-hasPermi="['offlineEducation:list:add']" |
| | | >新增登记</el-button> |
| | | </el-form-item> |
| | | <el-form-item label="单位名称:" > |
| | | <el-form-item label="年份:" style="margin-left: 20px"> |
| | | <el-date-picker |
| | | v-model="data.queryParams.planYear" |
| | | type="year" |
| | | value-format="YYYY" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="单位名称:" v-if="data.isAdmin" > |
| | | <el-input v-model="data.queryParams.companyName" placeholder="请输入单位名称"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="课程名称:" > |
| | |
| | | courseName: '', |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | planYear: '' |
| | | }, |
| | | total: 0, |
| | | dataList: [], |
| | |
| | | data.isAdmin = false; |
| | | // data.queryParams.companyId = userInfo.companyId |
| | | } |
| | | getNowYear() |
| | | await getList() |
| | | }) |
| | | onUnmounted(()=>{ |
| | | |
| | | }) |
| | | |
| | | const getNowYear = () =>{ |
| | | data.queryParams.planYear = new Date().getFullYear().toString() |
| | | } |
| | | const getList = async () => { |
| | | loading.value = true |
| | | const res = await getRecord(data.queryParams) |
| | |
| | | courseName: '', |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | planYear: '' |
| | | } |
| | | getNowYear() |
| | | getList() |
| | | } |
| | | const handleDelete = (val) => { |
| | |
| | | v-hasPermi="['trainPlan:list:add']" |
| | | >新增</el-button> |
| | | </el-form-item> |
| | | <el-form-item label="年份:" style="margin-left: 20px"> |
| | | <el-date-picker |
| | | v-model="data.queryParams.trainTime " |
| | | type="year" |
| | | value-format="YYYY" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="单位名称:" v-if="data.isAdmin" style="margin-left: 20px"> |
| | | <el-select v-model="data.queryParams.companyId" filterable placeholder="请选择" clearable> |
| | | <el-option |
| | |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | |
| | | |
| | | <el-form-item v-if="data.isAdmin"> |
| | | <el-button type="primary" style="margin-left: 30px" @click="searchClick">查询</el-button> |
| | | <el-button plain @click="reset">重置</el-button> |
| | |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | companyId: null, |
| | | trainTime : '' |
| | | }, |
| | | companyList: [], |
| | | isAdmin: false, |
| | |
| | | }else { |
| | | data.queryParams.companyId = userInfo.companyId |
| | | } |
| | | getNowYear() |
| | | getList(); |
| | | |
| | | }); |
| | | const getNowYear = () =>{ |
| | | data.queryParams.trainTime = new Date().getFullYear().toString() |
| | | } |
| | | const getList = async () => { |
| | | loading.value = true; |
| | | const res = await getTrainPlanPage(data.queryParams); |
| | |
| | | } |
| | | |
| | | const searchClick = () => { |
| | | console.log('q',data.queryParams) |
| | | getList(); |
| | | } |
| | | const openDialog = (type, value) => { |
| | |
| | | companyId: '', |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | trainTime : '' |
| | | } |
| | | choosedData.value = [] |
| | | data.companyList = []; |
| | | getNowYear() |
| | | getList(); |
| | | getCompanyList() |
| | | |
| | | } |
| | | const exportData = () => { |
| | | if(choosedData.value && choosedData.value.length === 0){ |