From 999cab6fb3fc6d2a288d365da991351c5a396bf0 Mon Sep 17 00:00:00 2001 From: Admin <978517621@qq.com> Date: 星期三, 21 九月 2022 15:53:18 +0800 Subject: [PATCH] 删除无用页面 --- /dev/null | 357 -------------------------------------------- src/router/route.ts | 2 src/views/riskWarningSys/warningBigScreen/components/SPI.vue | 81 +++------ src/router/index.ts | 2 4 files changed, 31 insertions(+), 411 deletions(-) diff --git a/src/router/index.ts b/src/router/index.ts index 16008c7..a99ccfb 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -81,7 +81,7 @@ Session.clear(); NProgress.done(); } else if (token && to.path === '/login') { - next('/homeMenu'); + next('/home'); NProgress.done(); } else { const storesRoutesList = useRoutesList(pinia); diff --git a/src/router/route.ts b/src/router/route.ts index a94fd34..00e3f27 100644 --- a/src/router/route.ts +++ b/src/router/route.ts @@ -13,7 +13,7 @@ { path: '/home', name: 'home', - component: () => import('/@/views/home/index.vue'), + component: () => import('/@/views/newHome/index.vue'), meta: { title: '首页', isLink: '', diff --git a/src/views/home/index.vue b/src/views/home/index.vue deleted file mode 100644 index 7e986cd..0000000 --- a/src/views/home/index.vue +++ /dev/null @@ -1,193 +0,0 @@ -<template> - <div class="home-container"> - <el-row :gutter="15" class="home-card-one mb15"> - <el-col - :xs="24" - :sm="12" - :md="12" - :lg="4" - :xl="4" - v-for="(v, k) in homeOne" - :key="k" - :class="{ 'home-media home-media-lg': k > 1, 'home-media-sm': k === 1 }" - > - <div class="home-card-item flex"> - <el-button @click="renderMenu(v.id)">{{ v.name }}</el-button> - </div> - </el-col> - </el-row> - <el-row :gutter="15" class="home-card-two mb15"> - <el-col :xs="24" :sm="14" :md="14" :lg="16" :xl="16"> - <div class="home-card-item"> - <div style="height: 100%"> - <el-button @click="renderMenu('6')">{{ '应急管理系统' }}</el-button> - </div> - </div> - </el-col> - <el-col :xs="24" :sm="10" :md="10" :lg="8" :xl="8" class="home-media"> - <div class="home-card-item"> - <div style="height: 100%"> - <el-button @click="renderMenu('7')">{{ '目标责任管理系统' }}</el-button> - </div> - </div> - </el-col> - </el-row> - <el-row :gutter="15" class="home-card-three"> - <el-col :xs="24" :sm="10" :md="10" :lg="8" :xl="8"> - <div class="home-card-item"> - <el-button @click="renderMenu('8')">{{ '事故管理系统' }}</el-button> - </div> - </el-col> - <el-col :xs="24" :sm="14" :md="14" :lg="16" :xl="16" class="home-media"> - <div class="home-card-item"> - <div style="height: 100%"> - <el-button @click="renderMenu('9')">{{ '设备综合管控系统' }}</el-button> - </div> - </div> - </el-col> - </el-row> - </div> -</template> - -<script lang="ts"> -import { toRefs, reactive, defineComponent, onMounted } from 'vue'; -import { storeToRefs } from 'pinia'; -import { initBackEndControlRoutes } from '/@/router/backEnd'; -import { useUserInfo } from '/@/stores/userInfo'; -import { Session } from '/@/utils/storage'; -import { NextLoading } from '/@/utils/loading'; -let global: any = { - homeChartOne: null, - homeChartTwo: null, - homeCharThree: null, - dispose: [null, '', undefined] -}; - -interface stateType { - homeOne: Array<type>; -} -interface type { - id: number; - name: string; -} -export default defineComponent({ - name: 'home', - setup() { - const userInfo = useUserInfo(); - const { userInfos } = storeToRefs(userInfo); - const state = reactive<stateType>({ - homeOne: [ - { id: 1, name: '安全基础信息系统' }, - { id: 2, name: '双重预防系统' }, - { id: 3, name: '系统2' }, - { id: 4, name: '系统3' }, - { id: 5, name: '系统4' } - ] - }); - // 折线图 - const renderMenu = async (value: string) => { - Session.set('projectId', value); - userInfos.value.projectId = value; - await initBackEndControlRoutes(); - }; - onMounted(() => { - // loginBg(); - // loginApp() - }); - return { - renderMenu, - ...toRefs(state) - }; - } -}); -</script> - -<style scoped lang="scss"> -$homeNavLengh: 8; -.home-container { - overflow: hidden; - .home-card-one, - .home-card-two, - .home-card-three { - .home-card-item { - width: 100%; - height: 130px; - border-radius: 4px; - transition: all ease 0.3s; - padding: 20px; - overflow: hidden; - background: var(--el-color-white); - color: var(--el-text-color-primary); - border: 1px solid var(--next-border-color-light); - &:hover { - box-shadow: 0 2px 12px var(--next-color-dark-hover); - transition: all ease 0.3s; - } - &-icon { - width: 70px; - height: 70px; - border-radius: 100%; - flex-shrink: 1; - i { - color: var(--el-text-color-placeholder); - } - } - &-title { - font-size: 15px; - font-weight: bold; - height: 30px; - } - } - } - .home-card-one { - @for $i from 0 through 3 { - .home-one-animation#{$i} { - opacity: 0; - animation-name: error-num; - animation-duration: 0.5s; - animation-fill-mode: forwards; - animation-delay: calc($i/10) + s; - } - } - } - .home-card-two, - .home-card-three { - .home-card-item { - height: 400px; - width: 100%; - overflow: hidden; - .home-monitor { - height: 100%; - .flex-warp-item { - width: 25%; - height: 111px; - display: flex; - .flex-warp-item-box { - margin: auto; - text-align: center; - color: var(--el-text-color-primary); - display: flex; - border-radius: 5px; - background: var(--next-bg-color); - cursor: pointer; - transition: all 0.3s ease; - &:hover { - background: var(--el-color-primary-light-9); - transition: all 0.3s ease; - } - } - @for $i from 0 through $homeNavLengh { - .home-animation#{$i} { - opacity: 0; - animation-name: error-num; - animation-duration: 0.5s; - animation-fill-mode: forwards; - animation-delay: calc($i/10) + s; - } - } - } - } - } - } -} -</style> diff --git a/src/views/newHome/homeMenu.vue b/src/views/newHome/homeMenu.vue deleted file mode 100644 index 4c3a9a0..0000000 --- a/src/views/newHome/homeMenu.vue +++ /dev/null @@ -1,439 +0,0 @@ -<template> - <div class="login-container" :key="once"> - <div class="topPanel"> - <div class="topPanelCont"> - <div class="topTit"> - <div>新疆国泰新华</div> - <span></span> - <div>安全风险预警监测系统</div> - </div> - <div class="userInfo"> - <div @click="onScreenfullClick" style="margin-right: 15px;cursor: pointer"> - <i class="iconfont" :title="isScreenfull ? $t('message.user.title6') : $t('message.user.title5')" :class="!isScreenfull ? 'icon-fullscreen' : 'icon-tuichuquanping'"></i> - </div> - <div class="avator"> - <img src="../../assets/menu/admin.png" /> - <div>admin</div> - </div> - <span></span> - <div class="loginOut" @click="onLoginOut">退出登录</div> - </div> - </div> - </div> - - <div class="menuGrid"> - <div class="gridCont"> - <el-row :gutter="20"> - <el-col :span="6" - ><div class="grid-content" v-throttle @click="render('2')"> - <div class="itemTit">双重预防系统</div> - <img class="iconImg" src="../../assets/menu/icon4.png" /><img class="bgImg" src="../../assets/menu/card4.png" /></div - ></el-col> - <el-col :span="6" - ><div class="grid-content" v-throttle @click="render('3')"> - <div class="itemTit">特殊作业系统</div> - <img class="iconImg" src="../../assets/menu/icon7.png" /><img class="bgImg" src="../../assets/menu/card7.png" /></div - ></el-col> - <el-col :span="6" - ><div class="grid-content" v-throttle @click="render('4')"> - <div class="itemTit">智能巡检系统</div> - <img class="iconImg" src="../../assets/menu/icon8.png" /><img class="bgImg" src="../../assets/menu/card8.png" /></div - ></el-col> - <el-col :span="6"> - <div class="grid-content" v-throttle @click="toRiskPlatform"> - <div class="itemTit">安全风险综合 <br />预警预报平台</div> - <img class="iconImg" src="../../assets/menu/icon1.png" /> - <img class="bgImg" src="../../assets/menu/card1.png" /> - </div> - </el-col> - </el-row> - <el-row :gutter="20"> - <el-col :span="6" - ><div class="grid-content grid-content-2" v-throttle @click="render('6')"> - <div class="itemTit">应急管理系统</div> - <img class="iconImg" src="../../assets/menu/icon5.png" /><img class="bgImg" src="../../assets/menu/card5.png" /></div - ></el-col> - <el-col :span="6" - ><div class="grid-content grid-content-2" v-throttle @click="render('7')"> - <div class="itemTit">目标责任管理系统</div> - <img class="iconImg" src="../../assets/menu/icon2.png" /><img class="bgImg" src="../../assets/menu/card2.png" /></div - ></el-col> - <el-col :span="6" - ><div class="grid-content grid-content-2" v-throttle @click="render('8')"> - <div class="itemTit">事故管理系统</div> - <img class="iconImg" src="../../assets/menu/icon6.png" /><img class="bgImg" src="../../assets/menu/card6.png" /></div - ></el-col> - <el-col :span="6" - ><div class="grid-content grid-content-2" v-throttle @click="render('9')"> - <div class="itemTit">设备综合管控系统</div> - <img class="iconImg" src="../../assets/menu/icon9.png" /><img class="bgImg" src="../../assets/menu/card9.png" /></div - ></el-col> - </el-row> - <el-row :gutter="20"> - <el-col :span="6" - ><div class="grid-content grid-content-3" v-throttle @click="render('10')"> - <div class="itemTit">安全知识图谱系统</div> - <img class="iconImg" src="../../assets/menu/icon3.png" /><img class="bgImg" src="../../assets/menu/card3.png" /></div - ></el-col> - <el-col :span="9" - ><div class="grid-content grid-content-3" v-throttle @click="render('11')"> - <div class="itemTit">危险化学品全生命周期安全<br />管理系统</div> - <img class="iconImg" src="../../assets/menu/icon10.png" /><img class="bgImg" src="../../assets/menu/card10.png" /></div - ></el-col> - <el-col :span="9" - ><div class="grid-content grid-content-3" @click="render('1')"> - <div class="itemTit">安全基础信息系统</div> - <img class="iconImg" src="../../assets/menu/icon11.png" /><img class="bgImg" src="../../assets/menu/card11.png" /></div - ></el-col> - </el-row> - </div> - </div> - </div> -</template> - -<script lang="ts"> -import { toRefs, reactive, computed, defineComponent, onMounted } from 'vue'; -import { storeToRefs } from 'pinia'; -import { useThemeConfig } from '/@/stores/themeConfig'; -import logoMini from '/@/assets/logo-mini.svg'; -import loginIconTwo from '/@/assets/login-icon-two.svg'; -import { NextLoading } from '/@/utils/loading'; -import { Session } from '/@/utils/storage'; -import { useRoute, useRouter } from 'vue-router'; -import { initBackEndControlRoutes } from '/@/router/backEnd'; -import { useUserInfo } from '/@/stores/userInfo'; -import { useRoutesList } from '/@/stores/routesList'; -import pinia from '/@/stores'; -import { useTagsViewRoutes } from '/@/stores/tagsViewRoutes'; -import { ElMessage } from 'element-plus'; -import { ElMessageBox } from 'element-plus/es'; -import { useLoginApi } from '/@/api/login'; -import { useI18n } from 'vue-i18n'; -import screenfull from 'screenfull'; -import router from '../../router' - -// 定义接口来定义对象的类型 -interface LoginState { - tabsActiveName: string; - isScan: boolean; - count: number; - projectId: string; - once: number; -} - -export default defineComponent({ - name: 'loginIndex', - components: {}, - setup() { - const { t } = useI18n(); - const router = useRouter(); - const userInfo = useUserInfo(); - const { userInfos } = storeToRefs(userInfo); - const routeToStore = useRoutesList(pinia); - const { routesList } = storeToRefs(routeToStore); - const storesThemeConfig = useThemeConfig(); - const { themeConfig } = storeToRefs(storesThemeConfig); - const state = reactive<LoginState>({ - tabsActiveName: 'account', - isScan: false, - count: 0, - projectId: '1', - once: 0, - isScreenfull: false - }); - // 获取布局配置信息 - const getThemeConfig = computed(() => { - return themeConfig.value; - }); - // 下拉菜单点击时 - const onLoginOut = () => { - ElMessageBox({ - closeOnClickModal: false, - closeOnPressEscape: false, - title: t('message.user.logOutTitle'), - message: t('message.user.logOutMessage'), - showCancelButton: true, - confirmButtonText: t('message.user.logOutConfirm'), - cancelButtonText: t('message.user.logOutCancel'), - buttonSize: 'default', - beforeClose: (action, instance, done) => { - if (action === 'confirm') { - instance.confirmButtonLoading = true; - instance.confirmButtonText = t('message.user.logOutExit'); - setTimeout(() => { - done(); - setTimeout(() => { - instance.confirmButtonLoading = false; - }, 300); - }, 700); - } else { - done(); - } - } - }) - .then(async () => { - let res = await useLoginApi().signOut(); - if (res.data.code === '200') { - Session.clear(); // 清除缓存/token等 - // 使用 reload 时,不需要调用 resetRoute() 重置路由 - window.location.reload(); - } else { - ElMessage({ - type: 'warning', - message: res.data.msg - }); - } - }) - .catch(() => {}); - }; - //选择菜单 - const render = (value: string) => { - state.projectId = value; - renderMenu(); - }; - // 全屏点击时 - const onScreenfullClick = () => { - if (!screenfull.isEnabled) { - ElMessage.warning('暂不不支持全屏'); - return false; - } - screenfull.toggle(); - screenfull.on('change', () => { - if (screenfull.isFullscreen) state.isScreenfull = true; - else state.isScreenfull = false; - }); - }; - // 去风险大屏 - const toRiskPlatform = ()=>{ - router.push({ - name: "bigDataScreen" - }); - } - const throttle = (renderMenu: any, delay: number) => { - let flag = true; - let count = 0; - return function () { - if (!flag) return; - flag = false; - if (count === 0) { - renderMenu.apply(); - count++; - flag = true; - } else { - setTimeout(() => { - renderMenu.apply(); - flag = true; - }, delay); - } - }; - }; - - //调用菜单方法 - const renderMenu = throttle(() => { - renderFun(); - }, 2000); - - //调后台菜单接口 - const renderFun = async () => { - Session.set('projectId', state.projectId); - userInfos.value.projectId = state.projectId; - await initBackEndControlRoutes().then(() => { - let linkToMenu = [...routesList.value]; - if (linkToMenu && linkToMenu.length > 1) { - router.push(linkToFirstMenu(JSON.parse(JSON.stringify(linkToMenu))[1])); - } else { - ElMessage({ type: 'warning', message: '你没有该子系统的权限' }); - } - }); - }; - - const linkToFirstMenu: any = (value: any) => { - let returnMenu = value; - if (returnMenu.children?.length > 0) { - return linkToFirstMenu(returnMenu.children[0]); - } else { - return returnMenu.path; - } - }; - // //点击进入特殊作业 - // const toSpecialWorkSys = () => { - // router.push('/layoutPage'); - // }; - // 页面加载时 - onMounted(() => { - state.once += 1; - NextLoading.done(); - // loginBg(); - // loginApp() - }); - return { - render, - logoMini, - onLoginOut, - toRiskPlatform, - onScreenfullClick, - loginIconTwo, - getThemeConfig, - ...toRefs(state) - }; - } -}); -</script> - -<style scoped lang="scss"> -.login-container { - width: 100%; - height: 100%; - position: relative; - background: url('../../assets/menu/bg_home.jpg') no-repeat center; - .topPanel { - position: absolute; - width: 100%; - top: -100px; - left: 0; - height: 100px; - background: #fff; - display: flex; - justify-content: center; - box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1); - animation: showDown 0.6s 1 ease forwards; - - @keyframes showDown { - 100% { - position: absolute; - top: 0; - } - } - .topPanelCont { - width: 1200px; - height: 100%; - display: flex; - align-items: center; - justify-content: space-between; - - .topTit { - font-size: 24px; - font-weight: bold; - display: flex; - align-items: center; - color: #333; - line-height: 28px; - - & > div:last-of-type { - color: #006df5; - } - - span { - width: 1px; - height: 28px; - background: #999; - margin: 0 15px; - } - } - - .userInfo { - display: flex; - align-items: center; - - .avator { - display: flex; - justify-content: right; - - img { - width: 20px; - height: 20px; - border-radius: 10px; - } - div { - font-size: 15px; - color: #333333; - line-height: 20px; - margin-left: 6px; - } - } - span { - width: 1px; - height: 20px; - background: #999; - margin: 0 15px; - } - .loginOut { - font-size: 15px; - color: #333; - line-height: 20px; - cursor: pointer; - - &:hover { - color: #006df5; - } - } - } - } - } - - .menuGrid { - width: 100%; - position: absolute; - top: 150px; - display: flex; - justify-content: center; - .gridCont { - width: 1200px; - .el-row { - margin-bottom: 20px; - } - .el-row:last-child { - margin-bottom: 0; - } - .el-col { - border-radius: 8px; - } - - .grid-content { - border-radius: 10px; - height: calc((100vh - 240px) / 3); - padding: 32px; - position: relative; - background: #007BE5; - overflow: hidden; - cursor: pointer; - transition: 0.3s; - border: none; - - &:hover { - box-shadow: 0 8px 32px rgba(20, 97, 234, 0.4); - } - - .itemTit { - font-size: 24px; - line-height: 36px; - height: 40%; - font-family: 'PingFang SC'; - font-weight: bolder; - letter-spacing: 1px; - color: #fff; - margin-bottom: 25px; - } - .iconImg { - width: 80px; - height: 80px; - } - - .bgImg { - position: absolute; - right: 0; - bottom: 0; - } - } - - /*.grid-content-2{*/ - /* background-image: linear-gradient(135deg,#0098F5,#1461EA);*/ - /*}*/ - - /*.grid-content-3{*/ - /* background-image: linear-gradient(135deg,#006DF5,#1450EA);*/ - /*}*/ - } - } -} -</style> diff --git a/src/views/riskWarningSys/warningBigScreen/components/SPI.vue b/src/views/riskWarningSys/warningBigScreen/components/SPI.vue index cb42132..a52fdca 100644 --- a/src/views/riskWarningSys/warningBigScreen/components/SPI.vue +++ b/src/views/riskWarningSys/warningBigScreen/components/SPI.vue @@ -5,7 +5,7 @@ class="spiSe" :teleported="false" v-model="spiValue" - :options="spiOptions" + :options="departList" :props="spiProps" :show-all-levels="false" @change="handleChange" @@ -31,11 +31,13 @@ import * as echarts from 'echarts'; import '/@/theme/bigScreen.css' import {useScreenTheme} from "/@/stores/screenTheme"; + import {teamManageApi} from "/@/api/systemManage/basicDateManage/personShiftManage/teamManage"; interface stateType { spiValue: number; - spiOptions: Array<any>; - spiChart: string + departList: Array<any>; + spiChart: string; + spiProps: object } export default defineComponent({ name: 'SPI', @@ -51,55 +53,30 @@ const { screenTheme } = storeToRefs(screenThemes); const spi = ref("eChartSpi" + Date.now() + Math.random()) const state = reactive<stateType>({ - spiValue: 0, - spiOptions: [ - { - value: 0, - label: '公司级别SPI' - }, - { - value: 1, - label: 'A事业部SPI', - children: [ - { - value: 11, - label: 'A车间SPI' - }, - { - value: 12, - label: 'B车间SPI' - }, - { - value: 13, - label: 'C车间SPI' - } - ] - }, - { - value: 2, - label: 'B事业部SPI', - children: [ - { - value: 21, - label: 'D车间SPI' - }, - { - value: 22, - label: 'E车间SPI' - }, - { - value: 23, - label: 'F车间SPI' - } - ] - } - ], + spiValue: 1, + departList: [], + spiProps: { + expandTrigger: 'hover', + checkStrictly: true, + value: 'depId', + label: 'depName', + }, spiChart: 'spi-dark' }) - const spiProps = { - expandTrigger: 'hover', - checkStrictly: true - } + + // 获取部门列表 + const getAllDepartment = async () => { + let res = await teamManageApi().getAllDepartment(); + if (res.data.code === '200') { + state.departList = JSON.parse(JSON.stringify(res.data.data)) + } else { + ElMessage({ + type: 'warning', + message: res.data.msg + }); + } + }; + type EChartsOption = echarts.EChartsOption // 隐患整改情况 const initSpi =()=>{ @@ -125,7 +102,7 @@ grid: { left: '8%', right: '8%', - bottom: '4%', + bottom: '5%', }, xAxis: [ { @@ -312,6 +289,7 @@ // 页面载入时执行方法 onMounted(() => { + getAllDepartment(); initSpi(); getTheme(); }); @@ -319,7 +297,6 @@ return { spi, Search, - spiProps, fontSize, ...toRefs(state) }; diff --git a/src/views/specialWorkSystem/afterWorkManage/workTicketCheck/index.vue b/src/views/specialWorkSystem/afterWorkManage/workTicketCheck/index.vue deleted file mode 100644 index 1a5f98e..0000000 --- a/src/views/specialWorkSystem/afterWorkManage/workTicketCheck/index.vue +++ /dev/null @@ -1,371 +0,0 @@ -<template> - <div class="home-container"> - <div style="height: 100%"> - <el-row class="homeCard"> - <el-col :span="8"> - <div class="grid-content topInfo"> - <el-input v-model="searchWord" placeholder="作业证编号"></el-input> - <el-button type="primary">查询</el-button> - <el-button plain>重置</el-button> - <el-button plain :icon="Download"></el-button> - </div> - </el-col> - </el-row> - <div class="homeCard"> - <div class="main-card"> - <el-row class="cardTop"> - <el-col :span="12" class="mainCardBtn"> - <el-button type="primary" :icon="Plus" size="default" @click="dialogAddRecord=true">新增</el-button> -<!-- <el-button type="warning" :icon="Edit" size="default" plain>修改</el-button>--> - <el-button type="danger" :icon="Delete" size="default" plain>删除</el-button> - </el-col> - <el-button type="primary" :icon="Refresh" size="default"/> - </el-row> - <el-table - ref="multipleTableRef" - :data="tableData" - style="width: 100%" - height="calc(100% - 100px)" - :header-cell-style="{background: '#fafafa'}" - @selection-change="handleSelectionChange" - > - <el-table-column type="selection" width="55" /> - <el-table-column property="id" label="作业证编号" width="200" sortable/> - <el-table-column property="cardName" label="作业证名称" width="180" /> - <el-table-column property="worker" label="抽检人"/> - <el-table-column property="checkTime" label="抽检时间" sortable/> - <el-table-column property="result" label="抽检结果"/> - <el-table-column property="remark" label="抽检意见"/> - <el-table-column fixed="right" label="操作" align="center" width="250"> - <template #default="scope"> - <el-button link type="primary" size="small" :icon="View" @click="viewRecord(scope.row)">查看</el-button> - <el-button link type="primary" size="small" :icon="Edit" @click="editRecord(scope.$index ,scope.row)">修改</el-button> - <el-button link type="danger" size="small" :icon="Delete" @click="deleteRecord(scope.$index)">删除</el-button> - </template> - </el-table-column> - </el-table> - <div class="pageBtn"> - <el-pagination - v-model:currentPage="currentPage" - v-model:page-size="pageSize" - :page-sizes="[10, 15]" - small=false - background - layout="total, sizes, prev, pager, next, jumper" - :total="100" - @size-change="handleSizeChange" - @current-change="handleCurrentChange" - /> - </div> - </div> - </div> - </div> - <el-dialog v-model="dialogDetails" title="作业票抽检"> - <el-form :model="details" label-width="120px"> - <el-form-item label="作业证编号"> - <el-input - v-model="details.id" - class="input-with-select" - readonly - /> - </el-form-item> - <el-form-item label="抽检人"> - <el-input - v-model="details.worker" - class="input-with-select" - readonly - /> - </el-form-item> - <el-form-item label="抽检结果"> - <el-input - v-model="details.result" - class="input-with-select" - readonly - /> - </el-form-item> - <el-form-item label="抽检时间"> - <el-input - v-model="details.checkTime" - class="input-with-select" - readonly - /> - </el-form-item> - <el-form-item label="抽检意见"> - <el-input v-model="details.remark" type="textarea" readonly/> - </el-form-item> - <el-form-item> - <el-button type="primary" @click="dialogDetails = false" size="default">确认</el-button> - </el-form-item> - </el-form> - </el-dialog> - <el-dialog v-model="dialogAddRecord" title="作业票抽检编辑" @close="closeAdd"> - <el-form :model="addRecord" label-width="120px" ref="addRef" :rules="addRules"> - <el-form-item label="作业证编号" prop="id"> - <el-input - v-model="addRecord.id" - class="input-with-select" - > - <template #append> - <el-button :icon="Search"/> - </template> - </el-input> - </el-form-item> - <el-form-item label="作业证名称" prop="cardName"> - <el-input - v-model="addRecord.cardName" - class="input-with-select" - > - <template #append> - <el-button :icon="Search"/> - </template> - </el-input> - </el-form-item> - <el-form-item label="抽检人" prop="worker"> - <el-input - v-model="addRecord.worker" - class="input-with-select" - > - <template #append> - <el-button :icon="Search"/> - </template> - </el-input> - </el-form-item> - <el-form-item label="抽检时间" prop="checkTime"> - <el-date-picker v-model="addRecord.checkTime" type="datetime" format="YYYY/MM/DD HH:mm:ss" value-format="YYYY-MM-DD HH:mm:ss" placeholder="Select date and time"/> - </el-form-item> - <el-form-item label="抽检结果" prop="result"> - <el-select v-model="addRecord.result"> - <el-option label="合格" value="合格" /> - <el-option label="不合格" value="不合格" /> - </el-select> - </el-form-item> - <el-form-item label="抽检意见"> - <el-input v-model="addRecord.remark" type="textarea"/> - </el-form-item> - <el-form-item> - <el-button type="warning" @click="dialogAddRecord = false" size="default" plain>取消</el-button> - <el-button type="primary" @click="confirmAddRecord(addRef)" size="default" v-throttle>确认</el-button> - </el-form-item> - </el-form> - </el-dialog> - <el-dialog v-model="deleteDialog" title="提示" width="30%" center @close="indexClear"> - <span>您确定要删除该条记录吗?</span> - <template #footer> - <span class="dialog-footer"> - <el-button @click="deleteDialog = false" size="default">取消</el-button> - <el-button type="primary" @click="conFirmDelete" size="default" v-throttle>确认</el-button> - </span> - </template> - </el-dialog> - </div> -</template> - -<script lang="ts" setup> - import { toRefs, reactive, ref } from 'vue'; - import { storeToRefs } from 'pinia'; - import { initBackEndControlRoutes } from '/@/router/backEnd'; - import {useUserInfo} from "/@/stores/userInfo"; - import { Session } from '/@/utils/storage'; - import { Edit, View, Plus, Delete, Refresh, Search, Download } from '@element-plus/icons-vue' - import { ElTable } from 'element-plus' - import { FormInstance, FormRules } from 'element-plus' - let global: any = { - homeChartOne: null, - homeChartTwo: null, - homeCharThree: null, - dispose: [null, '', undefined], - }; - - interface stateType { - homeOne: Array <type> - } - interface type { - - } - const userInfo = useUserInfo() - const { userInfos } = storeToRefs(userInfo); - - // 分页 - const currentPage = ref(1) - const pageSize = ref(10) - - // 判断编辑和新增 - const chosenIndex = ref(-1) - - const handleSizeChange = (val: number) => { - console.log(`${val} items per page`) - } - const handleCurrentChange = (val: number) => { - console.log(`current page: ${val}`) - } - const tableData = reactive( - [ - { - id: '11011', - cardName: '动火作业证', - checkTime: '2021-04-22 15:21:31', - worker: '吴海涛', - result: '合格', - remark: '没意见' - }, - { - id: '11012', - cardName: '动火作业证', - checkTime: '2021-04-22 15:21:31', - worker: '吴沈峰', - result: '合格', - remark: '有点意见' - }, - ] - ) - const addRef = ref<FormInstance>() - const addRules = reactive<FormRules>({ - id:[{required: true, message: '该内容不能为空',trigger:'blur'}], - cardName:[{required: true, message: '该内容不能为空',trigger:'blur'}], - worker:[{required: true, message: '该内容不能为空',trigger:'blur'}], - result:[{required: true, message: '该内容不能为空',trigger:'blur'}], - checkTime:[{required: true, message: '该内容不能为空',trigger:'blur'}] - }) - - const dialogDetails = ref(false) - const dialogAddRecord = ref(false) - const deleteDialog = ref(false) - const addRecord = ref({}) - const details = ref({}) - - // 查看记录 - const viewRecord = (row) =>{ - details.value = JSON.parse(JSON.stringify(row)) - dialogDetails.value = true - } - - // 删除记录 - const deleteRecord = (index) =>{ - chosenIndex.value = index - deleteDialog.value = true - } - - // 弹窗确认删除记录 - const conFirmDelete = ()=> { - tableData.splice(chosenIndex.value,1) - deleteDialog.value = false - } - - // 弹窗确认新增记录 - const confirmAddRecord = async (formEl: FormInstance | undefined) =>{ - if (!formEl) return - await formEl.validate((valid, fields) => { - if (valid) { - if(chosenIndex.value == -1){ - tableData.unshift(addRecord.value) - }else{ - tableData[chosenIndex.value] = addRecord.value - } - dialogAddRecord.value =false - } else { - console.log('error submit!', fields) - } - }) - - } - // 新增弹窗关闭时的数据初始化处理 - const closeAdd =()=>{ - addRecord.value={} - chosenIndex.value = -1 - } - const indexClear = ()=>{ - chosenIndex.value = -1 - } - - // 修改编辑记录 - const editRecord =(index, row)=>{ - dialogAddRecord.value = true - chosenIndex.value = index - addRecord.value = JSON.parse(JSON.stringify(row)) - } - // 折线图 - const renderMenu = async (value: string) => { - Session.set('projectId',value) - userInfos.value.projectId = value - await initBackEndControlRoutes(); - }; -</script> - -<style scoped lang="scss"> - $homeNavLengh: 8; - .home-container { - height: calc(100vh - 144px); - box-sizing: border-box; - overflow: hidden; - .homeCard{ - width: 100%; - padding: 20px; - box-sizing: border-box; - background: #fff; - border-radius: 4px; - - .main-card{ - width: 100%; - height: 100%; - .cardTop{ - display: flex; - align-items: center; - justify-content: space-between; - margin-bottom: 20px; - .mainCardBtn{ - margin: 0; - } - } - .pageBtn{ - height: 60px; - display: flex; - align-items: center; - justify-content: right; - - .demo-pagination-block + .demo-pagination-block { - margin-top: 10px; - } - .demo-pagination-block .demonstration { - margin-bottom: 16px; - } - } - } - &:last-of-type{ - height: calc(100% - 100px); - } - } - .el-row{ - display: flex; - align-items: center; - margin-bottom: 20px; - &:last-child { - margin-bottom: 0; - } - .grid-content{ - align-items: center; - min-height: 36px; - } - - .topInfo { - display: flex; - align-items: center; - font-size: 16px; - font-weight: bold; - - &>div{ - white-space: nowrap; - margin-right: 20px; - } - } - } - } - .el-input{ - width: 100% !important; - } - .el-date-editor::v-deep{ - width: 100%; - } - .el-select{ - width: 100%; - } -</style> diff --git a/src/views/specialWorkSystem/afterWorkManage/workTicketRecord/index.vue b/src/views/specialWorkSystem/afterWorkManage/workTicketRecord/index.vue deleted file mode 100644 index 0345cbd..0000000 --- a/src/views/specialWorkSystem/afterWorkManage/workTicketRecord/index.vue +++ /dev/null @@ -1,319 +0,0 @@ -<template> - <div class="home-container"> - <div style="height: 100%"> - <el-row class="homeCard"> - <el-col :span="12"> - <div class="grid-content topInfo"> - <el-select v-model="searchType"> - <el-option label="动火作业" value="动火作业" /> - <el-option label="动土作业" value="动土作业" /> - </el-select> - <el-input v-model="searchWord" placeholder="申请单位"></el-input> - <el-button type="primary">查询</el-button> - <el-button plain>重置</el-button> - </div> - </el-col> - </el-row> - <div class="homeCard"> - <div class="main-card"> - <el-row class="cardTop"> - <el-col :span="12" class="mainCardBtn"> - <el-button type="primary" :icon="Plus" size="default" @click="dialogAddRecord=true">新增</el-button> -<!-- <el-button type="warning" :icon="Edit" size="default" plain>修改</el-button>--> - <el-button type="danger" :icon="Delete" size="default" plain>删除</el-button> - </el-col> - <el-button type="primary" :icon="Refresh" size="default"/> - </el-row> - <el-table - ref="multipleTableRef" - :data="tableData" - style="width: 100%" - height="calc(100% - 100px)" - :header-cell-style="{background: '#fafafa'}" - @selection-change="handleSelectionChange" - > - <el-table-column type="selection" width="55" /> - <el-table-column property="id" label="作业证编号" width="200" sortable/> - <el-table-column property="cardName" label="作业证名称" width="180" /> - <el-table-column property="name" label="申请人"/> - <el-table-column property="department" label="申请部门"/> - <el-table-column property="date" label="归档日期" sortable/> - <el-table-column fixed="right" label="操作" align="center" width="250"> - <template #default="scope"> - <el-button link type="primary" size="small" :icon="View" @click="viewRecord(scope.row)">查看</el-button> - <el-button link type="danger" size="small" :icon="Delete" @click="deleteRecord(scope.$index)">删除</el-button> - </template> - </el-table-column> - </el-table> - <div class="pageBtn"> - <el-pagination - v-model:currentPage="currentPage" - v-model:page-size="pageSize" - :page-sizes="[10, 15]" - small=false - background - layout="total, sizes, prev, pager, next, jumper" - :total="100" - @size-change="handleSizeChange" - @current-change="handleCurrentChange" - /> - </div> - </div> - </div> - </div> - <el-dialog v-model="dialogDetails" title="作业票查看"> - <el-form :model="details" label-width="120px"> - <el-form-item label="作业证编号"> - <el-input - v-model="details.id" - readonly - /> - </el-form-item> - <el-form-item label="作业证名称"> - <el-input - v-model="details.cardName" - readonly - /> - </el-form-item> - <el-form-item label="申请人"> - <el-input - v-model="details.name" - readonly - /> - </el-form-item> - <el-form-item label="申请部门"> - <el-input - v-model="details.department" - class="input-with-select" - readonly - /> - </el-form-item> - <el-form-item label="归档日期"> - <el-input - v-model="details.date" - class="input-with-select" - readonly - /> - </el-form-item> - <el-form-item> - <el-button type="primary" @click="dialogDetails = false" size="default">确认</el-button> - </el-form-item> - </el-form> - </el-dialog> - <el-dialog v-model="deleteDialog" title="提示" width="30%" center @close="indexClear"> - <span>您确定要删除该条记录吗?</span> - <template #footer> - <span class="dialog-footer"> - <el-button @click="deleteDialog = false" size="default">取消</el-button> - <el-button type="primary" @click="conFirmDelete" size="default" v-throttle>确认</el-button> - </span> - </template> - </el-dialog> - </div> -</template> - -<script lang="ts" setup> - import { toRefs, reactive, ref } from 'vue'; - import { storeToRefs } from 'pinia'; - import { initBackEndControlRoutes } from '/@/router/backEnd'; - import {useUserInfo} from "/@/stores/userInfo"; - import { Session } from '/@/utils/storage'; - import { Edit, View, Plus, Delete, Refresh, Search, Download } from '@element-plus/icons-vue' - import { ElTable } from 'element-plus' - import { FormInstance, FormRules } from 'element-plus' - let global: any = { - homeChartOne: null, - homeChartTwo: null, - homeCharThree: null, - dispose: [null, '', undefined], - }; - - interface stateType { - homeOne: Array <type> - } - interface type { - - } - const userInfo = useUserInfo() - const { userInfos } = storeToRefs(userInfo); - - // 分页 - const currentPage = ref(1) - const pageSize = ref(10) - - // 顶部查询 - const searchType = ref('') - const searchWord = ref('') - - // 判断编辑和新增 - const chosenIndex = ref(-1) - - const handleSizeChange = (val: number) => { - console.log(`${val} items per page`) - } - const handleCurrentChange = (val: number) => { - console.log(`current page: ${val}`) - } - const tableData = reactive( - [ - { - id: '11011', - cardName: '动火作业证', - name: '吴海涛', - department: '动火部门', - date: '2021-04-22 15:21:31' - }, - { - id: '11011', - cardName: '动火作业证', - name: '吴海涛', - department: '动火部门', - date: '2021-04-22 15:21:31' - } - ] - ) - const addRef = ref<FormInstance>() - const addRules = reactive<FormRules>({ - id:[{required: true, message: '该内容不能为空',trigger:'blur'}], - cardName:[{required: true, message: '该内容不能为空',trigger:'blur'}], - name:[{required: true, message: '该内容不能为空',trigger:'blur'}], - department:[{required: true, message: '该内容不能为空',trigger:'blur'}], - date:[{required: true, message: '该内容不能为空',trigger:'blur'}] - }) - - const dialogDetails = ref(false) - const dialogAddRecord = ref(false) - const deleteDialog = ref(false) - const addRecord = ref({}) - const details = ref({}) - - // 查看记录 - const viewRecord = (row) =>{ - details.value = JSON.parse(JSON.stringify(row)) - dialogDetails.value = true - } - - // 删除记录 - const deleteRecord = (index) =>{ - chosenIndex.value = index - deleteDialog.value = true - } - - // 弹窗确认删除记录 - const conFirmDelete = ()=> { - tableData.splice(chosenIndex.value,1) - deleteDialog.value = false - } - - // 弹窗确认新增记录 - const confirmAddRecord = async (formEl: FormInstance | undefined) =>{ - if (!formEl) return - await formEl.validate((valid, fields) => { - if (valid) { - if(chosenIndex.value == -1){ - tableData.unshift(addRecord.value) - }else{ - tableData[chosenIndex.value] = addRecord.value - } - dialogAddRecord.value =false - } else { - console.log('error submit!', fields) - } - }) - - } - // 新增弹窗关闭时的数据初始化处理 - const closeAdd =()=>{ - addRecord.value={} - chosenIndex.value = -1 - } - const indexClear = ()=>{ - chosenIndex.value = -1 - } - - // 折线图 - const renderMenu = async (value: string) => { - Session.set('projectId',value) - userInfos.value.projectId = value - await initBackEndControlRoutes(); - }; -</script> - -<style scoped lang="scss"> - $homeNavLengh: 8; - .home-container { - height: calc(100vh - 144px); - box-sizing: border-box; - overflow: hidden; - .homeCard{ - width: 100%; - padding: 20px; - box-sizing: border-box; - background: #fff; - border-radius: 4px; - - .main-card{ - width: 100%; - height: 100%; - .cardTop{ - display: flex; - align-items: center; - justify-content: space-between; - margin-bottom: 20px; - .mainCardBtn{ - margin: 0; - } - } - .pageBtn{ - height: 60px; - display: flex; - align-items: center; - justify-content: right; - - .demo-pagination-block + .demo-pagination-block { - margin-top: 10px; - } - .demo-pagination-block .demonstration { - margin-bottom: 16px; - } - } - } - &:last-of-type{ - height: calc(100% - 100px); - } - } - .el-row{ - display: flex; - align-items: center; - margin-bottom: 20px; - &:last-child { - margin-bottom: 0; - } - .grid-content{ - align-items: center; - min-height: 36px; - } - - .topInfo { - display: flex; - align-items: center; - font-size: 16px; - font-weight: bold; - - &>div{ - white-space: nowrap; - margin-right: 20px; - } - } - } - } - .el-input{ - width: 100% !important; - } - .el-date-editor::v-deep{ - width: 100%; - } - .el-select{ - width: 100%; - } -</style> diff --git a/src/views/specialWorkSystem/approveProcessManage/approveLinkSettings/approveTypeSetting/index.vue b/src/views/specialWorkSystem/approveProcessManage/approveLinkSettings/approveTypeSetting/index.vue deleted file mode 100644 index 2dfc9d6..0000000 --- a/src/views/specialWorkSystem/approveProcessManage/approveLinkSettings/approveTypeSetting/index.vue +++ /dev/null @@ -1,336 +0,0 @@ -<template> - <div class="home-container"> - <div style="height: 100%"> - <el-row class="homeCard"> - <el-col :span="8"> - <div class="grid-content topInfo"> - <el-input v-model="searchWord" placeholder="审批类型名称"></el-input> - <el-button type="primary">查询</el-button> - <el-button plain>重置</el-button> - </div> - </el-col> - </el-row> - <div class="homeCard"> - <div class="main-card"> - <el-row class="cardTop"> - <el-col :span="12" class="mainCardBtn"> - <el-button type="primary" :icon="Plus" size="default" @click="dialogAddRecord=true">新增</el-button> -<!-- <el-button type="warning" :icon="Edit" size="default" plain>修改</el-button>--> - <el-button type="danger" :icon="Delete" size="default" plain>删除</el-button> - </el-col> - <el-button type="primary" :icon="Refresh" size="default"/> - </el-row> - <el-table - ref="multipleTableRef" - :data="tableData" - style="width: 100%" - height="calc(100% - 100px)" - :header-cell-style="{background: '#fafafa'}" - @selection-change="handleSelectionChange" - > - <el-table-column type="selection" width="55" /> - <el-table-column type="index" width="80" label="序号"/> - <el-table-column property="approveType" label="审批类型名称" width="200" sortable/> - <el-table-column property="creater" label="创建人" width="180" /> - <el-table-column property="createTime" label="创建时间" sortable/> - <el-table-column property="updater" label="最后更新人"/> - <el-table-column property="updateTime" label="最后更新时间" sortable/> - <el-table-column fixed="right" label="操作" align="center" width="250"> - <template #default="scope"> - <el-button link type="primary" size="small" :icon="View" @click="viewRecord(scope.row)">查看</el-button> - <el-button link type="primary" size="small" :icon="Edit" @click="editRecord(scope.$index ,scope.row)">修改</el-button> - <el-button link type="danger" size="small" :icon="Delete" @click="deleteRecord(scope.$index)">删除</el-button> - </template> - </el-table-column> - </el-table> - <div class="pageBtn"> - <el-pagination - v-model:currentPage="currentPage" - v-model:page-size="pageSize" - :page-sizes="[10, 15]" - small=false - background - layout="total, sizes, prev, pager, next, jumper" - :total="100" - @size-change="handleSizeChange" - @current-change="handleCurrentChange" - /> - </div> - </div> - </div> - </div> - <el-dialog v-model="dialogDetails" title="审批类型"> - <el-form :model="details" label-width="120px"> - <el-form-item label="审批类型名称"> - <el-input - v-model="details.approveType" - readonly - /> - </el-form-item> - <el-form-item label="创建人"> - <el-input - v-model="details.creater" - readonly - /> - </el-form-item> - <el-form-item label="创建时间"> - <el-input - v-model="details.createTime" - readonly - /> - </el-form-item> - <el-form-item label="最后更新人"> - <el-input - v-model="details.updater" - readonly - /> - </el-form-item> - <el-form-item label="最后更新时间"> - <el-input v-model="details.updateTime" readonly/> - </el-form-item> - <el-form-item> - <el-button type="primary" @click="dialogDetails = false" size="default">确认</el-button> - </el-form-item> - </el-form> - </el-dialog> - <el-dialog v-model="dialogAddRecord" title="审批类型编辑" @close="closeAdd"> - <el-form :model="addRecord" label-width="120px" ref="addRef" :rules="addRules"> - <el-form-item label="审批类型名称" prop="approveType"> - <el-select v-model="addRecord.approveType"> - <el-option label="单人审批" value="单人审批" /> - <el-option label="多人同时审批" value="多人同时审批" /> - <el-option label="多人单个审批" value="多人单个审批" /> - </el-select> - </el-form-item> -<!-- <el-form-item label="审批类型标识">--> -<!-- <el-input v-model="addRecord.remark"/>--> -<!-- </el-form-item>--> - <el-form-item> - <el-button type="warning" @click="dialogAddRecord = false" size="default" plain>取消</el-button> - <el-button type="primary" @click="confirmAddRecord(addRef)" size="default">确认</el-button> - </el-form-item> - </el-form> - </el-dialog> - <el-dialog v-model="deleteDialog" title="提示" width="30%" center @close="indexClear"> - <span>您确定要删除该条记录吗?</span> - <template #footer> - <span class="dialog-footer"> - <el-button @click="deleteDialog = false" size="default">取消</el-button> - <el-button type="primary" @click="conFirmDelete" size="default">确认</el-button> - </span> - </template> - </el-dialog> - </div> -</template> - -<script lang="ts" setup> - import { toRefs, reactive, ref } from 'vue'; - import { storeToRefs } from 'pinia'; - import { initBackEndControlRoutes } from '/@/router/backEnd'; - import {useUserInfo} from "/@/stores/userInfo"; - import { Session } from '/@/utils/storage'; - import { Edit, View, Plus, Delete, Refresh, Search, Download } from '@element-plus/icons-vue' - import { ElTable } from 'element-plus' - import { FormInstance, FormRules } from 'element-plus' - let global: any = { - homeChartOne: null, - homeChartTwo: null, - homeCharThree: null, - dispose: [null, '', undefined], - }; - - interface stateType { - homeOne: Array <type> - } - interface type { - - } - const userInfo = useUserInfo() - const { userInfos } = storeToRefs(userInfo); - - // 分页 - const currentPage = ref(1) - const pageSize = ref(10) - const chosenIndex = ref(-1) - const handleSizeChange = (val: number) => { - console.log(`${val} items per page`) - } - const handleCurrentChange = (val: number) => { - console.log(`current page: ${val}`) - } - const tableData = reactive( - [ - { - approveType: '单人审批', - creater: '李四', - createTime: '2021-04-22 15:21:31', - updater: '吴海涛', - updateTime: '2022-04-22 15:21:31', - }, - { - approveType: '多人同时审批', - creater: '李四', - createTime: '2021-04-22 15:21:31', - updater: '吴海涛', - updateTime: '2022-04-22 15:21:31', - }, - ] - ) - - // 时间格式化 - const timeForm = { - hour12: false, - year: 'numeric', - month: '2-digit', - day: '2-digit', - hour: '2-digit', - minute: '2-digit', - second: '2-digit' - } - const addRef = ref<FormInstance>() - const addRules = reactive<FormRules>({ - approveType:[{required: true, message: '该内容不能为空',trigger:'blur'}], - }) - const dialogDetails = ref(false) - const dialogAddRecord = ref(false) - const deleteDialog = ref(false) - const addRecord = ref({}) - const details = ref({}) - - // 查看记录 - const viewRecord = (row) =>{ - details.value = JSON.parse(JSON.stringify(row)) - dialogDetails.value = true - } - - // 删除记录 - const deleteRecord = (index) =>{ - chosenIndex.value = index - deleteDialog.value = true - } - const conFirmDelete = ()=> { - tableData.splice(chosenIndex.value,1) - deleteDialog.value = false - } - - // 修改记录 - const editRecord =(index, row)=>{ - dialogAddRecord.value = true - chosenIndex.value = index - addRecord.value = JSON.parse(JSON.stringify(row)) - } - - // 新增修改记录确认 - const confirmAddRecord = async (formEl: FormInstance | undefined) =>{ - if (!formEl) return - await formEl.validate((valid, fields) => { - if (valid) { - if(chosenIndex.value == -1){ - addRecord.value.createTime = new Date().toLocaleString('zh', timeForm).replace(/\//g,'-') - addRecord.value.updateTime = new Date().toLocaleString('zh', timeForm).replace(/\//g,'-') - tableData.unshift(addRecord.value) - }else{ - addRecord.value.updateTime = new Date().toLocaleString('zh', timeForm).replace(/\//g,'-') - tableData[chosenIndex.value] = addRecord.value - } - dialogAddRecord.value =false - } else { - console.log('error submit!', fields) - } - }) - - } - const closeAdd =()=>{ - addRecord.value={} - chosenIndex.value = -1 - } - const indexClear = ()=>{ - chosenIndex.value = -1 - } - - // 折线图 - const renderMenu = async (value: string) => { - Session.set('projectId',value) - userInfos.value.projectId = value - await initBackEndControlRoutes(); - }; -</script> - -<style scoped lang="scss"> - $homeNavLengh: 8; - .home-container { - height: calc(100vh - 144px); - box-sizing: border-box; - overflow: hidden; - .homeCard{ - width: 100%; - padding: 20px; - box-sizing: border-box; - background: #fff; - border-radius: 4px; - - .main-card{ - width: 100%; - height: 100%; - .cardTop{ - display: flex; - align-items: center; - justify-content: space-between; - margin-bottom: 20px; - .mainCardBtn{ - margin: 0; - } - } - .pageBtn{ - height: 60px; - display: flex; - align-items: center; - justify-content: right; - - .demo-pagination-block + .demo-pagination-block { - margin-top: 10px; - } - .demo-pagination-block .demonstration { - margin-bottom: 16px; - } - } - } - &:last-of-type{ - height: calc(100% - 100px); - } - } - .el-row{ - display: flex; - align-items: center; - margin-bottom: 20px; - &:last-child { - margin-bottom: 0; - } - .grid-content{ - align-items: center; - min-height: 36px; - } - - .topInfo { - display: flex; - align-items: center; - font-size: 16px; - font-weight: bold; - - &>div{ - white-space: nowrap; - margin-right: 20px; - } - } - } - } - .el-input{ - width: 100% !important; - } - .el-date-editor::v-deep{ - width: 100%; - } - .el-select{ - width: 100%; - } -</style> diff --git a/src/views/specialWorkSystem/approveProcessManage/approveLinkSettings/linkSetting/index.vue b/src/views/specialWorkSystem/approveProcessManage/approveLinkSettings/linkSetting/index.vue deleted file mode 100644 index 46cbd7a..0000000 --- a/src/views/specialWorkSystem/approveProcessManage/approveLinkSettings/linkSetting/index.vue +++ /dev/null @@ -1,342 +0,0 @@ -<template> - <div class="home-container"> - <div style="height: 100%"> - <div class="homeCard"> - <div class="main-card"> - <el-row class="cardTop"> - <el-col :span="12" class="mainCardBtn"> - <el-button type="primary" :icon="Plus" size="default" @click="dialogAddRecord=true">新增审批环节</el-button> - <el-button type="danger" :icon="Delete" size="default" plain>删除</el-button> - </el-col> - <el-button type="primary" :icon="Refresh" size="default"/> - </el-row> - <el-table - ref="multipleTableRef" - :data="tableData" - style="width: 100%" - height="calc(100% - 100px)" - :header-cell-style="{background: '#fafafa'}" - @selection-change="handleSelectionChange" - > - <el-table-column type="selection" width="55" /> - <el-table-column type="index" width="80" label="序号"/> - <el-table-column property="processName" label="环节名称" width="200" sortable/> - <el-table-column property="approveType" label="审核类型" width="200" sortable/> - <el-table-column property="creater" label="创建人" width="180" /> - <el-table-column property="createTime" label="创建时间" sortable/> - <el-table-column property="updater" label="最后更新人"/> - <el-table-column property="updateTime" label="最后更新时间" sortable/> - <el-table-column fixed="right" label="操作" align="center" width="250"> - <template #default="scope"> - <el-button link type="primary" size="small" :icon="View" @click="viewRecord(scope.row)">查看</el-button> - <el-button link type="primary" size="small" :icon="Edit" @click="editRecord(scope.$index ,scope.row)">修改</el-button> - <el-button link type="danger" size="small" :icon="Delete" @click="deleteRecord(scope.$index)">删除</el-button> - </template> - </el-table-column> - </el-table> - <div class="pageBtn"> - <el-pagination - v-model:currentPage="currentPage" - v-model:page-size="pageSize" - :page-sizes="[10, 15]" - small=false - background - layout="total, sizes, prev, pager, next, jumper" - :total="100" - @size-change="handleSizeChange" - @current-change="handleCurrentChange" - /> - </div> - </div> - </div> - </div> - <el-dialog v-model="dialogDetails" title="审批环节"> - <el-form :model="details" label-width="120px"> - <el-form-item label="环节名称"> - <el-input - v-model="details.processName" - readonly - /> - </el-form-item> - <el-form-item label="审批类型"> - <el-input - v-model="details.approveType" - readonly - /> - </el-form-item> - <el-form-item label="创建人"> - <el-input - v-model="details.creater" - readonly - /> - </el-form-item> - <el-form-item label="创建时间"> - <el-input - v-model="details.createTime" - readonly - /> - </el-form-item> - <el-form-item label="最后更新人"> - <el-input - v-model="details.updater" - readonly - /> - </el-form-item> - <el-form-item label="最后更新时间"> - <el-input v-model="details.updateTime" readonly/> - </el-form-item> - <el-form-item> - <el-button type="primary" @click="dialogDetails = false" size="default">确认</el-button> - </el-form-item> - </el-form> - </el-dialog> - <el-dialog v-model="dialogAddRecord" title="审批环节编辑" @close="closeAdd"> - <el-form :model="addRecord" label-width="120px" ref="addRef" :rules="addRules"> - <el-form-item label="环节名称"> - <el-input v-model="addRecord.processName"/> - </el-form-item> - <el-form-item label="审批类型" prop="approveType"> - <el-select v-model="addRecord.approveType"> - <el-option label="上报审批意见" value="上报审批意见" /> - <el-option label="上报气体监测数据" value="上报气体监测数据" /> - <el-option label="上报安全措施确认" value="上报安全措施确认" /> - </el-select> - </el-form-item> - <el-form-item> - <el-button type="warning" @click="dialogAddRecord = false" size="default" plain>取消</el-button> - <el-button type="primary" @click="confirmAddRecord(addRef)" size="default">确认</el-button> - </el-form-item> - </el-form> - </el-dialog> - <el-dialog v-model="deleteDialog" title="提示" width="30%" center @close="indexClear"> - <span>您确定要删除该条记录吗?</span> - <template #footer> - <span class="dialog-footer"> - <el-button @click="deleteDialog = false" size="default">取消</el-button> - <el-button type="primary" @click="conFirmDelete" size="default">确认</el-button> - </span> - </template> - </el-dialog> - </div> -</template> - -<script lang="ts" setup> - import { toRefs, reactive, ref } from 'vue'; - import { storeToRefs } from 'pinia'; - import { initBackEndControlRoutes } from '/@/router/backEnd'; - import {useUserInfo} from "/@/stores/userInfo"; - import { Session } from '/@/utils/storage'; - import { Edit, View, Plus, Delete, Refresh, Search, Download } from '@element-plus/icons-vue' - import { ElTable } from 'element-plus' - import { FormInstance, FormRules } from 'element-plus' - let global: any = { - homeChartOne: null, - homeChartTwo: null, - homeCharThree: null, - dispose: [null, '', undefined], - }; - - interface stateType { - homeOne: Array <type> - } - interface type { - - } - const userInfo = useUserInfo() - const { userInfos } = storeToRefs(userInfo); - - // 分页 - const currentPage = ref(1) - const pageSize = ref(10) - - const handleSizeChange = (val: number) => { - console.log(`${val} items per page`) - } - const handleCurrentChange = (val: number) => { - console.log(`current page: ${val}`) - } - - // 判断新增和修改 - const chosenIndex = ref(-1) - - const tableData = reactive( - [ - { - processName: '作业负责人审批', - approveType: '上报审批意见', - creater: '李四', - createTime: '2021-04-22 15:21:31', - updater: '吴海涛', - updateTime: '2022-04-22 15:21:31', - }, - { - processName: '作业负责人审批', - approveType: '上报气体检测数据', - creater: '李四', - createTime: '2021-04-22 15:21:31', - updater: '吴海涛', - updateTime: '2022-04-22 15:21:31', - }, - ] - ) - - // 时间格式化 - const timeForm = { - hour12: false, - year: 'numeric', - month: '2-digit', - day: '2-digit', - hour: '2-digit', - minute: '2-digit', - second: '2-digit' - } - - const addRef = ref<FormInstance>() - const addRules = reactive<FormRules>({ - processName:[{required: true, message: '该内容不能为空',trigger:'blur'}], - approveType:[{required: true, message: '该内容不能为空',trigger:'blur'}] - }) - const dialogDetails = ref(false) - const dialogAddRecord = ref(false) - const deleteDialog = ref(false) - const addRecord = ref({}) - const details = ref({}) - - // 查看记录 - const viewRecord = (row) =>{ - details.value = JSON.parse(JSON.stringify(row)) - dialogDetails.value = true - } - - // 删除记录 - const deleteRecord = (index) =>{ - chosenIndex.value = index - deleteDialog.value = true - } - const conFirmDelete = ()=> { - tableData.splice(chosenIndex.value,1) - deleteDialog.value = false - } - - // 新增修改记录 - const confirmAddRecord = async (formEl: FormInstance | undefined) =>{ - if (!formEl) return - await formEl.validate((valid, fields) => { - if (valid) { - if(chosenIndex.value == -1){ - addRecord.value.createTime = new Date().toLocaleString('zh', timeForm).replace(/\//g,'-') - addRecord.value.updateTime = new Date().toLocaleString('zh', timeForm).replace(/\//g,'-') - tableData.unshift(addRecord.value) - }else{ - addRecord.value.updateTime = new Date().toLocaleString('zh', timeForm).replace(/\//g,'-') - tableData[chosenIndex.value] = addRecord.value - } - dialogAddRecord.value =false - } else { - console.log('error submit!', fields) - } - }) - - } - - // 编辑弹窗关闭时数据初始化处理 - const closeAdd =()=>{ - addRecord.value={} - chosenIndex.value = -1 - } - const indexClear = ()=>{ - chosenIndex.value = -1 - } - - // 修改记录 - const editRecord =(index, row)=>{ - dialogAddRecord.value = true - chosenIndex.value = index - addRecord.value = JSON.parse(JSON.stringify(row)) - } - // 折线图 - const renderMenu = async (value: string) => { - Session.set('projectId',value) - userInfos.value.projectId = value - await initBackEndControlRoutes(); - }; -</script> - -<style scoped lang="scss"> - $homeNavLengh: 8; - .home-container { - height: calc(100vh - 144px); - box-sizing: border-box; - overflow: hidden; - - .homeCard{ - width: 100%; - padding: 20px; - box-sizing: border-box; - background: #fff; - border-radius: 4px; - - .main-card{ - width: 100%; - height: 100%; - .cardTop{ - display: flex; - align-items: center; - justify-content: space-between; - margin-bottom: 20px; - .mainCardBtn{ - margin: 0; - } - } - .pageBtn{ - height: 60px; - display: flex; - align-items: center; - justify-content: right; - - .demo-pagination-block + .demo-pagination-block { - margin-top: 10px; - } - .demo-pagination-block .demonstration { - margin-bottom: 16px; - } - } - } - - &:last-of-type{ - height: 100%; - } - - } - .el-row{ - display: flex; - align-items: center; - margin-bottom: 20px; - &:last-child { - margin-bottom: 0; - } - .grid-content{ - align-items: center; - min-height: 36px; - } - - .topInfo { - display: flex; - align-items: center; - font-size: 16px; - font-weight: bold; - - &>div{ - white-space: nowrap; - margin-right: 20px; - } - } - } - } - .el-date-editor::v-deep{ - width: 100%; - } - .el-select{ - width: 100%; - } -</style> diff --git a/src/views/specialWorkSystem/approveProcessManage/approveLinkSettings/reportTypeSetting/index.vue b/src/views/specialWorkSystem/approveProcessManage/approveLinkSettings/reportTypeSetting/index.vue deleted file mode 100644 index 68b22ee..0000000 --- a/src/views/specialWorkSystem/approveProcessManage/approveLinkSettings/reportTypeSetting/index.vue +++ /dev/null @@ -1,303 +0,0 @@ -<template> - <div class="home-container"> - <div style="height: 100%"> - <div class="homeCard"> - <div class="main-card"> - <el-row class="cardTop"> - <el-col :span="12" class="mainCardBtn"> - <el-button type="primary" size="default" @click="addReport">新增上报类型</el-button> - </el-col> - </el-row> - <el-table ref="multipleTableRef" - :data="tableData" - style="width: 100%" - height="calc(100% - 100px)" - :header-cell-style="{background: '#fafafa'}" - @selection-change="handleSelectionChange"> - <el-table-column type="index" label="标识" width="100"/> - <el-table-column prop="type" label="上报数据类型名称" width="180" /> - <el-table-column prop="founder" label="创建人"/> - <el-table-column prop="createTime" label="创建时间" width="180" /> - <el-table-column prop="editor" label="最新编辑人" width="180" /> - <el-table-column prop="editeTime" label="最新编辑时间" /> - <el-table-column fixed="right" label="操作" align="center" width="180"> - <template #default="scope"> - <el-button link type="primary" size="small" :icon="Edit" @click="editeRow(scope.$index,scope.row)">编辑</el-button> - <el-button link type="danger" size="small" :icon="Delete" @click="deleteRow(scope.$index)">删除</el-button> - </template> - </el-table-column> - </el-table> - <div class="pageBtn"> - <el-pagination - v-model:currentPage="currentPage" - v-model:page-size="pageSize" - :page-sizes="[10, 15]" - small=false - background - layout="total, sizes, prev, pager, next, jumper" - :total="100" - @size-change="handleSizeChange" - @current-change="handleCurrentChange" - /> - </div> - </div> - </div> - </div> - <el-dialog v-model="dialogAddForm" title="新增上报类型" @close="dialogColse"> - <el-form :model="reportForm" label-width="120px" ref="ruleFormRef" :rules="addRules"> - <el-form-item label="上报数据类型" prop="type"> - <el-select v-model="reportForm.type" placeholder="选择上报数据类型"> - <el-option label="上报审批意见" value="上报审批意见" /> - <el-option label="上报气体监测数据" value="上报气体监测数据" /> - <el-option label="上报安全措施确认" value="上报安全措施确认" /> - </el-select> - </el-form-item> - <el-form-item label="创建人"> - <el-select v-model="reportForm.founder" property="founder" placeholder="选择创建人"> - <el-option label="创建人1" value="创建人1" /> - <el-option label="创建人2" value="创建人2" /> - </el-select> - </el-form-item> - <el-form-item label="最新编辑人" prop="editor"> - <el-input v-model="reportForm.editor" /> - </el-form-item> - <el-form-item> - <el-button type="primary" @click="onSubmitAddForm(ruleFormRef)" size="default" v-throttle>确认</el-button> - <el-button size="default" @click="dialogAddForm = false">取消</el-button> - </el-form-item> - </el-form> - </el-dialog> - </div> -</template> - -<script lang="ts"> - import { toRefs, reactive, defineComponent, ref } from 'vue'; - import { storeToRefs } from 'pinia'; - import { initBackEndControlRoutes } from '/@/router/backEnd'; - import {useUserInfo} from "/@/stores/userInfo"; - import { Session } from '/@/utils/storage'; - import { Edit, Delete } from '@element-plus/icons-vue' - import { FormInstance, FormRules } from 'element-plus' - let global: any = { - homeChartOne: null, - homeChartTwo: null, - homeCharThree: null, - dispose: [null, '', undefined], - }; - - interface stateType { - homeOne: Array <type> - } - interface type { - - } - interface User { - type: string, - founder: string, - editor: string - } - export default defineComponent({ - name: 'reportTypeSetting', - setup() { - const userInfo = useUserInfo() - const { userInfos } = storeToRefs(userInfo); - const state = reactive<stateType>({}); - const tableData =reactive([ - { - type: '上报审批意见', - founder: '', - createTime: '', - editor: '', - editeTime: '' - }, - { - type: '上报气体检测数据', - founder: '', - createTime: '', - editor: '', - editeTime: '' - }, - { - type: '上报安全措施确认', - founder: '', - createTime: '', - editor: '', - editeTime: '' - } - ]) - const dialogAddForm = ref(false); - - // 判断新增修改参数 - const rowIndex = ref(-1) - - const reportForm = ref({ - type: '', - founder: '', - createTime: '', - editor: '', - editeTime: '' - }) - - // 时间格式化 - const timeForm = { - hour12: false, - year: 'numeric', - month: '2-digit', - day: '2-digit', - hour: '2-digit', - minute: '2-digit', - second: '2-digit' - } - - // 新增记录 - const addReport = ()=>{ - dialogAddForm.value = true - }; - - const ruleFormRef = ref<FormInstance>() - const addRules = reactive<FormRules>({ - type:[{required: true, message: '该内容不能为空',trigger:'blur'}], - founder:[{required: true, message: '该内容不能为空',trigger:'blur'}], - editor:[{required: true, message: '该内容不能为空',trigger:'blur'}] - }) - - // 新增修改记录确认 - const onSubmitAddForm = async (formEl: FormInstance | undefined) => { - if (!formEl) return - await formEl.validate((valid, fields) => { - if (valid) { - if(rowIndex.value == -1){ - reportForm.value.createTime = new Date().toLocaleString('zh', timeForm).replace(/\//g,'-') - reportForm.value.editeTime = new Date().toLocaleString('zh', timeForm).replace(/\//g,'-') - tableData.unshift(reportForm.value) - }else{ - reportForm.value.editeTime = new Date().toLocaleString('zh', timeForm).replace(/\//g,'-') - tableData[rowIndex.value] = reportForm.value - } - dialogAddForm.value = false - } else { - console.log('error submit!', fields) - } - }) - } - - // 修改记录 - const editeRow = (index: number, row: User) =>{ - dialogAddForm.value = true - rowIndex.value = index - reportForm.value = JSON.parse(JSON.stringify(row)) - } - - // 删除记录 - const deleteRow = (index)=>{ - tableData.splice( index,1) - } - - // 弹窗关闭数据初始化 - const dialogColse = () =>{ - reportForm.value = { - type: '', - founder: '', - createTime: '', - editor: '', - editeTime: '' - } - rowIndex.value = -1 - } - // 折线图 - const renderMenu = async (value: string) => { - Session.set('projectId',value) - userInfos.value.projectId = value - await initBackEndControlRoutes(); - }; - return { - renderMenu, - tableData, - dialogAddForm, - reportForm, - ruleFormRef, - addRules, - timeForm, - dialogColse, - editeRow, - deleteRow, - addReport, - onSubmitAddForm, - ...toRefs(state), - }; - }, - }); -</script> - -<style scoped lang="scss"> - $homeNavLengh: 8; - .home-container { - height: calc(100vh - 144px); - box-sizing: border-box; - overflow: hidden; - - .homeCard{ - width: 100%; - padding: 20px; - box-sizing: border-box; - background: #fff; - border-radius: 4px; - - .main-card{ - width: 100%; - height: 100%; - .cardTop{ - display: flex; - align-items: center; - justify-content: space-between; - margin-bottom: 20px; - .mainCardBtn{ - margin: 0; - } - } - .pageBtn{ - height: 60px; - display: flex; - align-items: center; - justify-content: right; - - .demo-pagination-block + .demo-pagination-block { - margin-top: 10px; - } - .demo-pagination-block .demonstration { - margin-bottom: 16px; - } - } - } - - &:last-of-type{ - height: 100%; - } - - } - .el-row{ - display: flex; - align-items: center; - margin-bottom: 20px; - &:last-child { - margin-bottom: 0; - } - .grid-content{ - align-items: center; - min-height: 36px; - } - - .topInfo { - display: flex; - align-items: center; - font-size: 16px; - font-weight: bold; - - &>div{ - white-space: nowrap; - margin-right: 20px; - } - } - } - } -</style> diff --git a/src/views/specialWorkSystem/approveProcessManage/approveProcessList/index.vue b/src/views/specialWorkSystem/approveProcessManage/approveProcessList/index.vue deleted file mode 100644 index 0f6a0eb..0000000 --- a/src/views/specialWorkSystem/approveProcessManage/approveProcessList/index.vue +++ /dev/null @@ -1,400 +0,0 @@ -<template> - <div class="home-container"> - <div style="height: 100%"> - <el-row class="homeCard"> - <el-col :span="8"> - <div class="grid-content topInfo"> - <el-input v-model="searchWord" placeholder="流程名称"></el-input> - <el-button type="primary">查询</el-button> - <el-button plain>重置</el-button> - </div> - </el-col> - </el-row> - <div class="homeCard"> - <div class="main-card"> - <el-row class="cardTop"> - <el-col :span="12" class="mainCardBtn"> - <el-button type="primary" :icon="Plus" size="default" @click="dialogAddRecord=true" v-throttle>新增</el-button> - <el-button type="danger" :icon="Delete" size="default" plain>删除</el-button> - <el-button type="success" size="default" plain>设置分类</el-button> - </el-col> - <el-button type="primary" :icon="Refresh" size="default"/> - </el-row> - <el-table - ref="multipleTableRef" - :data="tableData" - style="width: 100%" - height="calc(100% - 100px)" - :header-cell-style="{background: '#fafafa'}" - @selection-change="handleSelectionChange" - > - <el-table-column type="selection" width="55" /> - <el-table-column property="name" label="流程名称" width="200" /> - <el-table-column property="flowKey" label="流程key" width="180" /> - <el-table-column property="sort" label="分类"/> - <el-table-column label="版本" width="180"> - <template #default="scope"> - <el-tag>{{ scope.row.version }}</el-tag> - </template> - </el-table-column> - <el-table-column label="流程状态" width="180"> - <template #default="scope"> - <el-tag type="success">{{ scope.row.status }}</el-tag> - </template> - </el-table-column> - <el-table-column property="updateTime" label="更新时间"/> - <el-table-column fixed="right" label="操作" align="center" width="250"> - <template #default="scope"> - <el-button link type="primary" :icon="Edit" size="small" @click="editRecord(scope.$index ,scope.row)" v-throttle>修改</el-button> - <el-button link type="success" size="small">发布</el-button> - <el-button link type="danger" :icon="Delete" size="small" @click="deleteRecord(scope.$index)">删除</el-button> - </template> - </el-table-column> - </el-table> - <div class="pageBtn"> - <el-pagination - v-model:currentPage="currentPage" - v-model:page-size="pageSize" - :page-sizes="[10, 15]" - small=false - background - layout="total, sizes, prev, pager, next, jumper" - :total="100" - @size-change="handleSizeChange" - @current-change="handleCurrentChange" - /> - </div> - </div> - </div> - </div> - <el-dialog v-model="dialogAddRecord" title="审批流程编辑" @close="closeAdd"> - <el-form :model="addRecord" label-width="120px" ref="addRef" :rules="addRules"> - <el-form-item label="流程名称" prop="name"> - <el-input - v-model="addRecord.name" - placeholder="流程名称" - /> - </el-form-item> - <el-form-item label="流程key" prop="flowKey"> - <el-input - v-model="addRecord.flowKey" - placeholder="流程key" - > - </el-input> - </el-form-item> - <el-form-item label="分类" prop="sort"> - <el-select v-model="addRecord.sort" placeholder="请选择"> - <el-option label="临时用电" value="临时用电" /> - <el-option label="设备检修" value="设备检修" /> - </el-select> - </el-form-item> - <el-form-item label="版本" prop="version"> - <el-input - v-model="addRecord.version" - placeholder="请选择工种" - > - </el-input> - </el-form-item> - <el-form-item label="状态" prop="status"> - <el-select v-model="addRecord.status" placeholder="请选择"> - <el-option label="已发布" value="已发布" /> - <el-option label="未发布" value="未发布" /> - </el-select> - </el-form-item> - <el-form-item> - <el-button type="warning" @click="dialogAddRecord = false" size="default" plain>取消</el-button> - <el-button type="primary" @click="confirmAddRecord(addRef)" size="default" v-throttle>确认</el-button> - </el-form-item> - </el-form> - </el-dialog> - <el-dialog v-model="deleteDialog" title="提示" width="30%" center @close="indexClear"> - <span>您确定要删除该条记录吗?</span> - <template #footer> - <span class="dialog-footer"> - <el-button @click="deleteDialog = false" size="default">取消</el-button> - <el-button type="primary" @click="conFirmDelete" size="default" v-throttle>确认</el-button> - </span> - </template> - </el-dialog> - </div> -</template> - -<script lang="ts" setup> - import { toRefs, reactive, defineComponent, ref } from 'vue'; - import { storeToRefs } from 'pinia'; - import { initBackEndControlRoutes } from '/@/router/backEnd'; - import {useUserInfo} from "/@/stores/userInfo"; - import { Session } from '/@/utils/storage'; - import { Plus, Delete, Refresh, Edit } from '@element-plus/icons-vue' - import { ElTable, FormInstance, FormRules } from 'element-plus' - let global: any = { - homeChartOne: null, - homeChartTwo: null, - homeCharThree: null, - dispose: [null, '', undefined], - }; - - interface stateType { - homeOne: Array <type> - } - interface type { - - } - interface User { - date: string - name: string - address: string - } - const userInfo = useUserInfo() - const { userInfos } = storeToRefs(userInfo); - const state = reactive<stateType>({}); - const multipleTableRef = ref<InstanceType<typeof ElTable>>() - const multipleSelection = ref<User[]>([]) - const handleSelectionChange = (val: User[]) => { - multipleSelection.value = val - } - const currentPage = ref(1) - const pageSize = ref(10) - const chosenIndex = ref(-1) - const handleSizeChange = (val: number) => { - console.log(`${val} items per page`) - } - const handleCurrentChange = (val: number) => { - console.log(`current page: ${val}`) - } - const tableData = reactive( - [ - { - name: '风险点复评预警', - flowKey: 'process111', - sort: '未设置', - version: 'V:4', - status: '已发布', - updateTime: '2021-04-22 15:21:31' - }, - { - name: '风险点复评预警', - flowKey: 'process111', - sort: '未设置', - version: 'V:4', - status: '已发布', - updateTime: '2021-04-22 15:21:31' - }, - { - name: '风险点复评预警', - flowKey: 'process111', - sort: '未设置', - version: 'V:4', - status: '已发布', - updateTime: '2021-04-22 15:21:31' - }, - { - name: '风险点复评预警', - flowKey: 'process111', - sort: '未设置', - version: 'V:4', - status: '已发布', - updateTime: '2021-04-22 15:21:31' - }, - { - name: '风险点复评预警', - flowKey: 'process111', - sort: '未设置', - version: 'V:4', - status: '已发布', - updateTime: '2021-04-22 15:21:31' - }, - { - name: '风险点复评预警', - flowKey: 'process111', - sort: '未设置', - version: 'V:4', - status: '已发布', - updateTime: '2021-04-22 15:21:31' - }, - { - name: '风险点复评预警', - flowKey: 'process111', - sort: '未设置', - version: 'V:4', - status: '已发布', - updateTime: '2021-04-22 15:21:31' - }, - { - name: '风险点复评预警', - flowKey: 'process111', - sort: '未设置', - version: 'V:4', - status: '已发布', - updateTime: '2021-04-22 15:21:31' - }, - { - name: '风险点复评预警', - flowKey: 'process111', - sort: '未设置', - version: 'V:4', - status: '已发布', - updateTime: '2021-04-22 15:21:31' - }, - { - name: '风险点复评预警', - flowKey: 'process111', - sort: '未设置', - version: 'V:4', - status: '已发布', - updateTime: '2021-04-22 15:21:31' - } - ] - ) - - // 时间格式化 - const timeForm = { - hour12: false, - year: 'numeric', - month: '2-digit', - day: '2-digit', - hour: '2-digit', - minute: '2-digit', - second: '2-digit' - } - const addRef = ref<FormInstance>() - const addRules = reactive<FormRules>({ - name:[{required: true, message: '该内容不能为空',trigger:'blur'}], - flowKey:[{required: true, message: '该内容不能为空',trigger:'blur'}], - sort:[{required: true, message: '该内容不能为空',trigger:'blur'}], - version:[{required: true, message: '该内容不能为空',trigger:'blur'}], - status:[{required: true, message: '该内容不能为空',trigger:'blur'}], - updateTime:[{required: true, message: '该内容不能为空',trigger:'blur'}] - }) - const dialogDetails = ref(false) - const dialogAddRecord = ref(false) - const deleteDialog = ref(false) - const addRecord = ref({}) - const details = ref({}) - - // 查看记录 - const viewRecord = (row) =>{ - details.value = JSON.parse(JSON.stringify(row)) - dialogDetails.value = true - } - - // 删除记录 - const deleteRecord = (index) =>{ - chosenIndex.value = index - deleteDialog.value = true - } - const conFirmDelete = ()=> { - tableData.splice(chosenIndex.value,1) - deleteDialog.value = false - } - - // 修改记录 - const editRecord =(index, row)=>{ - dialogAddRecord.value = true - chosenIndex.value = index - addRecord.value = JSON.parse(JSON.stringify(row)) - } - - // 新增修改记录确认 - const confirmAddRecord = async (formEl: FormInstance | undefined) =>{ - if (!formEl) return - await formEl.validate((valid, fields) => { - if (valid) { - if(chosenIndex.value == -1){ - addRecord.value.updateTime = new Date().toLocaleString('zh', timeForm).replace(/\//g,'-') - tableData.unshift(addRecord.value) - }else{ - addRecord.value.updateTime = new Date().toLocaleString('zh', timeForm).replace(/\//g,'-') - tableData[chosenIndex.value] = addRecord.value - } - dialogAddRecord.value =false - } else { - console.log('error submit!', fields) - } - }) - - } - const closeAdd =()=>{ - addRecord.value={} - chosenIndex.value = -1 - } - const indexClear = ()=>{ - chosenIndex.value = -1 - } - // 折线图 - const renderMenu = async (value: string) => { - Session.set('projectId',value) - userInfos.value.projectId = value - await initBackEndControlRoutes(); - }; -</script> - -<style scoped lang="scss"> - $homeNavLengh: 8; - .home-container { - height: calc(100vh - 144px); - box-sizing: border-box; - overflow: hidden; - .homeCard{ - width: 100%; - padding: 20px; - box-sizing: border-box; - background: #fff; - border-radius: 4px; - - .main-card{ - width: 100%; - height: 100%; - .cardTop{ - display: flex; - align-items: center; - justify-content: space-between; - margin-bottom: 20px; - .mainCardBtn{ - margin: 0; - } - } - .pageBtn{ - height: 60px; - display: flex; - align-items: center; - justify-content: right; - - .demo-pagination-block + .demo-pagination-block { - margin-top: 10px; - } - .demo-pagination-block .demonstration { - margin-bottom: 16px; - } - } - } - &:last-of-type{ - height: calc(100% - 100px); - } - } - .el-row{ - display: flex; - align-items: center; - margin-bottom: 20px; - &:last-child { - margin-bottom: 0; - } - .grid-content{ - align-items: center; - min-height: 36px; - } - - .topInfo { - display: flex; - align-items: center; - font-size: 16px; - font-weight: bold; - - &>div{ - white-space: nowrap; - margin-right: 20px; - } - } - } - } -</style> diff --git a/src/views/specialWorkSystem/approveProcessManage/approveProcessSetting/index.vue b/src/views/specialWorkSystem/approveProcessManage/approveProcessSetting/index.vue deleted file mode 100644 index d786f4f..0000000 --- a/src/views/specialWorkSystem/approveProcessManage/approveProcessSetting/index.vue +++ /dev/null @@ -1,292 +0,0 @@ -<template> - <div class="home-container"> - <el-scrollbar height="100%"> - <div class="homeCard"> - <div> - <div v-for="(item,index) in approveSteps" class="stepItem"> - <div class="stepNum">{{index+1}}</div> - <div class="stepCard"> - <el-card class="box-card" shadow="hover"> - <template #header> - <div class="card-header"> - <div>步骤<span>{{index+1}}</span></div> - <div> - <el-button type="primary" size="default" @click="addFlow(index)">新增</el-button> - <el-button type="danger" size="default" @click="deleteFlow(index)">删除</el-button> - </div> - </div> - </template> - <div class="text item">审批部门:<span>{{item.department}}</span></div> - <div class="text item">审批人员:<span>{{item.manager}}</span></div> - <div class="text item">其他参数:<span>{{item.others}}</span></div> - </el-card> - </div> - </div> - </div> - <el-row> - <el-button type="primary" @click="confirmEdit" size="large">确认</el-button> - <el-button @click="cancelEdit" size="large">取消</el-button> - </el-row> - </div> - <el-drawer v-model="showAdd" direction="rtl" @close="colseDrawer"> - <template #title> - <h4>新增审批流</h4> - </template> - <template #default> - <el-form :model="addProgress" label-width="120px" ref="ruleFormRef" :rules="ProgressRules"> - <el-form-item label="审批部门" prop="department"> - <el-select v-model="addProgress.department" placeholder="请选择审批部门"> - <el-option label="动土" value="动土" /> - <el-option label="动火" value="动火" /> - </el-select> - </el-form-item> - <el-form-item label="审批人员" prop="manager"> - <el-select v-model="addProgress.manager" placeholder="请选择审批人员"> - <el-option label="人员1" value="人员1" /> - <el-option label="人员2" value="人员2" /> - </el-select> - </el-form-item> - <el-form-item label="其他参数" prop="others"> - <el-input v-model="addProgress.others" /> - </el-form-item> - </el-form> - </template> - <template #footer> - <div style="flex: auto"> - <el-button type="primary" @click="confirmClick(ruleFormRef)" size="default">确认</el-button> - <el-button @click="cancelClick" size="default">取消</el-button> - </div> - </template> - </el-drawer> - <el-dialog v-model="deleteDialog" title="提示" width="30%" center> - <span>您确定要删除该审批流吗?</span> - <template #footer> - <span class="dialog-footer"> - <el-button @click="deleteDialog = false" size="default">取消</el-button> - <el-button type="primary" @click="conFirmDelete" size="default">确认</el-button> - </span> - </template> - </el-dialog> - </el-scrollbar> - </div> -</template> - -<script lang="ts"> - import { toRefs, reactive, defineComponent, ref } from 'vue'; - import { storeToRefs } from 'pinia'; - import { initBackEndControlRoutes } from '/@/router/backEnd'; - import {useUserInfo} from "/@/stores/userInfo"; - import { Session } from '/@/utils/storage'; - import { ElMessage } from 'element-plus' - import type { FormInstance, FormRules } from 'element-plus' - let global: any = { - homeChartOne: null, - homeChartTwo: null, - homeCharThree: null, - dispose: [null, '', undefined], - }; - - interface stateType { - homeOne: Array <type> - } - interface type { - - } - export default defineComponent({ - name: 'approveProcessSetting', - setup() { - const userInfo = useUserInfo() - const { userInfos } = storeToRefs(userInfo); - const approveSteps = [ - { - department: '动土', - manager: '', - others: '' - }, - { - department: '动土', - manager: '', - others: '' - }, - { - department: '动土', - manager: '', - others: '' - } - ]; - const showAdd = ref(false) - const deleteDialog = ref(false) - const chosenIndex = ref('') - const addProgress = ref({ - department: '', - manager: '', - others: '' - }) - const ruleFormRef = ref<FormInstance>() - const ProgressRules = reactive<FormRules>({ - department: [{required:true,message: '该选项不能为空',trigger: 'blur'}], - manager: [{required:true,message: '该选项不能为空',trigger: 'blur'}] - }) - - // 确认新增 - const confirmClick = async (formEl: FormInstance | undefined) => { - if (!formEl) return - await formEl.validate((valid, fields) => { - if (valid) { - approveSteps.splice(chosenIndex.value+1,0,addProgress.value) - showAdd.value = false - } else { - console.log('error submit!', fields) - } - }) - - } - const cancelClick=()=>{ - showAdd.value = false - } - - // 新增 - const addFlow = (index) => { - showAdd.value = true - chosenIndex.value = index - } - - // 删除记录 - const deleteFlow = (index) => { - if(approveSteps.length>1){ - deleteDialog.value = true - chosenIndex.value = index - }else{ - ElMessage({ - message: '抱歉最后一条无法删除', - type: 'warning', - }) - } - } - const conFirmDelete = () => { - const i = chosenIndex.value - approveSteps.splice( i,1) - deleteDialog.value = false - } - const colseDrawer = ()=>{ - addProgress.value = { - department: '', - manager: '', - others: '' - } - } - const cancelEdit = () => { - - } - const confirmEdit = () =>{ - - } - const state = reactive<stateType>({}); - // 折线图 - const renderMenu = async (value: string) => { - Session.set('projectId',value) - userInfos.value.projectId = value - await initBackEndControlRoutes(); - }; - return { - renderMenu, - showAdd, - approveSteps, - addProgress, - ruleFormRef, - ProgressRules, - chosenIndex, - deleteDialog, - colseDrawer, - conFirmDelete, - cancelClick, - deleteFlow, - addFlow, - confirmClick, - cancelEdit, - confirmEdit, - ...toRefs(state), - }; - }, - }); -</script> - -<style scoped lang="scss"> - $homeNavLengh: 8; - .home-container { - height: 100%; - overflow: hidden; - padding: 20px; - .homeCard{ - width: 100%; - padding: 20px; - background: #fff; - border-radius: 4px; - } - .stepItem{ - display: flex; - align-items: flex-start; - margin-bottom: 30px; - margin-left: 30px; - padding-bottom: 30px; - border-left: 2px solid #ccc; - &:first-of-type{ - margin-top: 30px; - } - &:last-of-type{ - margin-bottom: 0; - border-left: none; - } - .stepNum { - width: 30px; - height: 30px; - border-radius: 15px; - box-sizing: border-box; - color: #333; - border: 2px solid #999; - line-height: 26px; - text-align: center; - margin-right: 40px; - margin-left: -16px; - margin-top: -30px; - } - .stepCard { - margin-top: -30px; - - .box-card { - width: 480px; - - .card-header { - display: flex; - justify-content: space-between; - align-items: center; - - span{ - font-weight: bold; - margin-left: 10px; - } - } - - .text { - font-size: 14px; - } - - .item { - margin-bottom: 18px; - } - } - } - &:hover .card-header{ - color: #0098F5; - } - &:hover .stepNum{ - border: 2px solid #0098F5; - color: #0098F5; - } - } - - .el-form{ - padding: 40px 20px; - } - } -</style> diff --git a/src/views/specialWorkSystem/approveProcessManage/examineTemplate/index.vue b/src/views/specialWorkSystem/approveProcessManage/examineTemplate/index.vue deleted file mode 100644 index 8c2afdd..0000000 --- a/src/views/specialWorkSystem/approveProcessManage/examineTemplate/index.vue +++ /dev/null @@ -1,367 +0,0 @@ -<template> - <div class="home-container"> - <div style="height: 100%"> - <el-row class="homeCard"> - <el-col :span="8"> - <div class="grid-content topInfo"> - <el-input v-model="searchWord" placeholder="流程名称"></el-input> - <el-button type="primary">查询</el-button> - <el-button plain>重置</el-button> - </div> - </el-col> - </el-row> - <div class="homeCard"> - <div class="main-card"> - <el-row class="cardTop"> - <el-col :span="12" class="mainCardBtn"> - <el-button type="primary" :icon="Plus" size="default" @click="dialogAddRecord = true" v-throttle>新增</el-button> - <el-button type="danger" :icon="Delete" size="default" plain>删除</el-button> - <el-button type="success" size="default" plain>设置分类</el-button> - </el-col> - <el-button type="primary" :icon="Refresh" size="default" /> - </el-row> - <el-table ref="multipleTableRef" :data="tableData" style="width: 100%" height="calc(100% - 100px)" :header-cell-style="{ background: '#fafafa' }" @selection-change="handleSelectionChange"> - <el-table-column type="selection" width="55" /> - <el-table-column property="name" label="流程名称" width="200" /> - <el-table-column property="flowKey" label="流程key" width="180" /> - <el-table-column property="sort" label="分类" /> - <el-table-column label="版本" width="180"> - <template #default="scope"> - <el-tag>{{ scope.row.version }}</el-tag> - </template> - </el-table-column> - <el-table-column label="流程状态" width="180"> - <template #default="scope"> - <el-tag type="success">{{ scope.row.status }}</el-tag> - </template> - </el-table-column> - <el-table-column property="updateTime" label="更新时间" /> - <el-table-column fixed="right" label="操作" align="center" width="250"> - <template #default="scope"> - <el-button link type="primary" :icon="Edit" size="small" @click="editRecord(scope.$index, scope.row)" v-throttle>修改</el-button> - <el-button link type="success" size="small">发布</el-button> - <el-button link type="danger" :icon="Delete" size="small" @click="deleteRecord(scope.$index)">删除</el-button> - </template> - </el-table-column> - </el-table> - <div class="pageBtn"> - <el-pagination v-model:currentPage="currentPage" v-model:page-size="pageSize" :page-sizes="[10, 15]" small="false" background layout="total, sizes, prev, pager, next, jumper" :total="100" @size-change="handleSizeChange" @current-change="handleCurrentChange" /> - </div> - </div> - </div> - </div> - <el-dialog v-model="dialogAddRecord" title="审批流程编辑" @close="closeAdd"> - <el-form :model="addRecord" label-width="120px" ref="addRef" :rules="addRules"> - <el-form-item label="流程名称" prop="name"> - <el-input v-model="addRecord.name" placeholder="流程名称" /> - </el-form-item> - <el-form-item label="流程key" prop="flowKey"> - <el-input v-model="addRecord.flowKey" placeholder="流程key"> </el-input> - </el-form-item> - <el-form-item label="分类" prop="sort"> - <el-select v-model="addRecord.sort" placeholder="请选择"> - <el-option label="临时用电" value="临时用电" /> - <el-option label="设备检修" value="设备检修" /> - </el-select> - </el-form-item> - <el-form-item label="版本" prop="version"> - <el-input v-model="addRecord.version" placeholder="请选择工种"> </el-input> - </el-form-item> - <el-form-item label="状态" prop="status"> - <el-select v-model="addRecord.status" placeholder="请选择"> - <el-option label="已发布" value="已发布" /> - <el-option label="未发布" value="未发布" /> - </el-select> - </el-form-item> - <el-form-item> - <el-button type="warning" @click="dialogAddRecord = false" size="default" plain>取消</el-button> - <el-button type="primary" @click="confirmAddRecord(addRef)" size="default" v-throttle>确认</el-button> - </el-form-item> - </el-form> - </el-dialog> - <el-dialog v-model="deleteDialog" title="提示" width="30%" center @close="indexClear"> - <span>您确定要删除该条记录吗?</span> - <template #footer> - <span class="dialog-footer"> - <el-button @click="deleteDialog = false" size="default">取消</el-button> - <el-button type="primary" @click="conFirmDelete" size="default" v-throttle>确认</el-button> - </span> - </template> - </el-dialog> - </div> -</template> - -<script lang="ts" setup> -import { toRefs, reactive, defineComponent, ref } from 'vue'; -import { storeToRefs } from 'pinia'; -import { initBackEndControlRoutes } from '/@/router/backEnd'; -import { useUserInfo } from '/@/stores/userInfo'; -import { Session } from '/@/utils/storage'; -import { Plus, Delete, Refresh, Edit } from '@element-plus/icons-vue'; -import { ElTable, FormInstance, FormRules } from 'element-plus'; -let global: any = { - homeChartOne: null, - homeChartTwo: null, - homeCharThree: null, - dispose: [null, '', undefined] -}; - -interface stateType { - homeOne: Array<type>; -} -interface type {} -interface User { - date: string; - name: string; - address: string; -} -const userInfo = useUserInfo(); -const { userInfos } = storeToRefs(userInfo); -const state = reactive<stateType>({}); -const multipleTableRef = ref<InstanceType<typeof ElTable>>(); -const multipleSelection = ref<User[]>([]); -const handleSelectionChange = (val: User[]) => { - multipleSelection.value = val; -}; -const currentPage = ref(1); -const pageSize = ref(10); -const chosenIndex = ref(-1); -const handleSizeChange = (val: number) => { - console.log(`${val} items per page`); -}; -const handleCurrentChange = (val: number) => { - console.log(`current page: ${val}`); -}; -const tableData = reactive([ - { - name: '风险点复评预警', - flowKey: 'process111', - sort: '未设置', - version: 'V:4', - status: '已发布', - updateTime: '2021-04-22 15:21:31' - }, - { - name: '风险点复评预警', - flowKey: 'process111', - sort: '未设置', - version: 'V:4', - status: '已发布', - updateTime: '2021-04-22 15:21:31' - }, - { - name: '风险点复评预警', - flowKey: 'process111', - sort: '未设置', - version: 'V:4', - status: '已发布', - updateTime: '2021-04-22 15:21:31' - }, - { - name: '风险点复评预警', - flowKey: 'process111', - sort: '未设置', - version: 'V:4', - status: '已发布', - updateTime: '2021-04-22 15:21:31' - }, - { - name: '风险点复评预警', - flowKey: 'process111', - sort: '未设置', - version: 'V:4', - status: '已发布', - updateTime: '2021-04-22 15:21:31' - }, - { - name: '风险点复评预警', - flowKey: 'process111', - sort: '未设置', - version: 'V:4', - status: '已发布', - updateTime: '2021-04-22 15:21:31' - }, - { - name: '风险点复评预警', - flowKey: 'process111', - sort: '未设置', - version: 'V:4', - status: '已发布', - updateTime: '2021-04-22 15:21:31' - }, - { - name: '风险点复评预警', - flowKey: 'process111', - sort: '未设置', - version: 'V:4', - status: '已发布', - updateTime: '2021-04-22 15:21:31' - }, - { - name: '风险点复评预警', - flowKey: 'process111', - sort: '未设置', - version: 'V:4', - status: '已发布', - updateTime: '2021-04-22 15:21:31' - }, - { - name: '风险点复评预警', - flowKey: 'process111', - sort: '未设置', - version: 'V:4', - status: '已发布', - updateTime: '2021-04-22 15:21:31' - } -]); - -// 时间格式化 -const timeForm = { - hour12: false, - year: 'numeric', - month: '2-digit', - day: '2-digit', - hour: '2-digit', - minute: '2-digit', - second: '2-digit' -}; -const addRef = ref<FormInstance>(); -const addRules = reactive<FormRules>({ - name: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], - flowKey: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], - sort: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], - version: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], - status: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], - updateTime: [{ required: true, message: '该内容不能为空', trigger: 'blur' }] -}); -const dialogDetails = ref(false); -const dialogAddRecord = ref(false); -const deleteDialog = ref(false); -const addRecord = ref({}); -const details = ref({}); - -// 查看记录 -const viewRecord = (row) => { - details.value = JSON.parse(JSON.stringify(row)); - dialogDetails.value = true; -}; - -// 删除记录 -const deleteRecord = (index) => { - chosenIndex.value = index; - deleteDialog.value = true; -}; -const conFirmDelete = () => { - tableData.splice(chosenIndex.value, 1); - deleteDialog.value = false; -}; - -// 修改记录 -const editRecord = (index, row) => { - dialogAddRecord.value = true; - chosenIndex.value = index; - addRecord.value = JSON.parse(JSON.stringify(row)); -}; - -// 新增修改记录确认 -const confirmAddRecord = async (formEl: FormInstance | undefined) => { - if (!formEl) return; - await formEl.validate((valid, fields) => { - if (valid) { - if (chosenIndex.value == -1) { - addRecord.value.updateTime = new Date().toLocaleString('zh', timeForm).replace(/\//g, '-'); - tableData.unshift(addRecord.value); - } else { - addRecord.value.updateTime = new Date().toLocaleString('zh', timeForm).replace(/\//g, '-'); - tableData[chosenIndex.value] = addRecord.value; - } - dialogAddRecord.value = false; - } else { - console.log('error submit!', fields); - } - }); -}; -const closeAdd = () => { - addRecord.value = {}; - chosenIndex.value = -1; -}; -const indexClear = () => { - chosenIndex.value = -1; -}; -// 折线图 -const renderMenu = async (value: string) => { - Session.set('projectId', value); - userInfos.value.projectId = value; - await initBackEndControlRoutes(); -}; -</script> - -<style scoped lang="scss"> -$homeNavLengh: 8; -.home-container { - height: calc(100vh - 144px); - box-sizing: border-box; - overflow: hidden; - .homeCard { - width: 100%; - padding: 20px; - box-sizing: border-box; - background: #fff; - border-radius: 4px; - - .main-card { - width: 100%; - height: 100%; - .cardTop { - display: flex; - align-items: center; - justify-content: space-between; - margin-bottom: 20px; - .mainCardBtn { - margin: 0; - } - } - .pageBtn { - height: 60px; - display: flex; - align-items: center; - justify-content: right; - - .demo-pagination-block + .demo-pagination-block { - margin-top: 10px; - } - .demo-pagination-block .demonstration { - margin-bottom: 16px; - } - } - } - &:last-of-type { - height: calc(100% - 100px); - } - } - .el-row { - display: flex; - align-items: center; - margin-bottom: 20px; - &:last-child { - margin-bottom: 0; - } - .grid-content { - align-items: center; - min-height: 36px; - } - - .topInfo { - display: flex; - align-items: center; - font-size: 16px; - font-weight: bold; - - & > div { - white-space: nowrap; - margin-right: 20px; - } - } - } -} -</style> diff --git a/src/views/specialWorkSystem/approveProcessManage/templateSetting/index.vue b/src/views/specialWorkSystem/approveProcessManage/templateSetting/index.vue deleted file mode 100644 index a8b85a8..0000000 --- a/src/views/specialWorkSystem/approveProcessManage/templateSetting/index.vue +++ /dev/null @@ -1,293 +0,0 @@ -<template> - <div class="home-container"> - <el-scrollbar height="100%"> - <div class="homeCard"> - <div> - <div v-for="(item, index) in approveSteps" class="stepItem"> - <div class="stepNum">{{ index + 1 }}</div> - <div class="stepCard"> - <el-card class="box-card" shadow="hover"> - <template #header> - <div class="card-header"> - <div> - 步骤<span>{{ index + 1 }}</span> - </div> - <div> - <el-button type="primary" size="default" @click="addFlow(index)">新增</el-button> - <el-button type="danger" size="default" @click="deleteFlow(index)">删除</el-button> - </div> - </div> - </template> - <div class="text item"> - 审批部门:<span>{{ item.department }}</span> - </div> - <div class="text item"> - 审批人员:<span>{{ item.manager }}</span> - </div> - <div class="text item"> - 其他参数:<span>{{ item.others }}</span> - </div> - </el-card> - </div> - </div> - </div> - <el-row> - <el-button type="primary" @click="confirmEdit" size="large">确认</el-button> - <el-button @click="cancelEdit" size="large">取消</el-button> - </el-row> - </div> - <el-drawer v-model="showAdd" direction="rtl" @close="colseDrawer"> - <template #title> - <h4>新增审批流</h4> - </template> - <template #default> - <el-form :model="addProgress" label-width="120px" ref="ruleFormRef" :rules="ProgressRules"> - <el-form-item label="审批部门" prop="department"> - <el-select v-model="addProgress.department" placeholder="请选择审批部门"> - <el-option label="动土" value="动土" /> - <el-option label="动火" value="动火" /> - </el-select> - </el-form-item> - <el-form-item label="审批人员" prop="manager"> - <el-select v-model="addProgress.manager" placeholder="请选择审批人员"> - <el-option label="人员1" value="人员1" /> - <el-option label="人员2" value="人员2" /> - </el-select> - </el-form-item> - <el-form-item label="其他参数" prop="others"> - <el-input v-model="addProgress.others" /> - </el-form-item> - </el-form> - </template> - <template #footer> - <div style="flex: auto"> - <el-button type="primary" @click="confirmClick(ruleFormRef)" size="default">确认</el-button> - <el-button @click="cancelClick" size="default">取消</el-button> - </div> - </template> - </el-drawer> - <el-dialog v-model="deleteDialog" title="提示" width="30%" center> - <span>您确定要删除该审批流吗?</span> - <template #footer> - <span class="dialog-footer"> - <el-button @click="deleteDialog = false" size="default">取消</el-button> - <el-button type="primary" @click="conFirmDelete" size="default">确认</el-button> - </span> - </template> - </el-dialog> - </el-scrollbar> - </div> -</template> - -<script lang="ts"> -import { toRefs, reactive, defineComponent, ref } from 'vue'; -import { storeToRefs } from 'pinia'; -import { initBackEndControlRoutes } from '/@/router/backEnd'; -import { useUserInfo } from '/@/stores/userInfo'; -import { Session } from '/@/utils/storage'; -import { ElMessage } from 'element-plus'; -import type { FormInstance, FormRules } from 'element-plus'; -let global: any = { - homeChartOne: null, - homeChartTwo: null, - homeCharThree: null, - dispose: [null, '', undefined] -}; - -interface stateType { - homeOne: Array<type>; -} -interface type {} -export default defineComponent({ - name: 'approveProcessSetting', - setup() { - const userInfo = useUserInfo(); - const { userInfos } = storeToRefs(userInfo); - const approveSteps = [ - { - department: '动土', - manager: '', - others: '' - }, - { - department: '动土', - manager: '', - others: '' - }, - { - department: '动土', - manager: '', - others: '' - } - ]; - const showAdd = ref(false); - const deleteDialog = ref(false); - const chosenIndex = ref(''); - const addProgress = ref({ - department: '', - manager: '', - others: '' - }); - const ruleFormRef = ref<FormInstance>(); - const ProgressRules = reactive<FormRules>({ - department: [{ required: true, message: '该选项不能为空', trigger: 'blur' }], - manager: [{ required: true, message: '该选项不能为空', trigger: 'blur' }] - }); - - // 确认新增 - const confirmClick = async (formEl: FormInstance | undefined) => { - if (!formEl) return; - await formEl.validate((valid, fields) => { - if (valid) { - approveSteps.splice(chosenIndex.value + 1, 0, addProgress.value); - showAdd.value = false; - } else { - console.log('error submit!', fields); - } - }); - }; - const cancelClick = () => { - showAdd.value = false; - }; - - // 新增 - const addFlow = (index) => { - showAdd.value = true; - chosenIndex.value = index; - }; - - // 删除记录 - const deleteFlow = (index) => { - if (approveSteps.length > 1) { - deleteDialog.value = true; - chosenIndex.value = index; - } else { - ElMessage({ - message: '抱歉最后一条无法删除', - type: 'warning' - }); - } - }; - const conFirmDelete = () => { - const i = chosenIndex.value; - approveSteps.splice(i, 1); - deleteDialog.value = false; - }; - const colseDrawer = () => { - addProgress.value = { - department: '', - manager: '', - others: '' - }; - }; - const cancelEdit = () => {}; - const confirmEdit = () => {}; - const state = reactive<stateType>({}); - // 折线图 - const renderMenu = async (value: string) => { - Session.set('projectId', value); - userInfos.value.projectId = value; - await initBackEndControlRoutes(); - }; - return { - renderMenu, - showAdd, - approveSteps, - addProgress, - ruleFormRef, - ProgressRules, - chosenIndex, - deleteDialog, - colseDrawer, - conFirmDelete, - cancelClick, - deleteFlow, - addFlow, - confirmClick, - cancelEdit, - confirmEdit, - ...toRefs(state) - }; - } -}); -</script> - -<style scoped lang="scss"> -$homeNavLengh: 8; -.home-container { - height: 100%; - overflow: hidden; - padding: 20px; - .homeCard { - width: 100%; - padding: 20px; - background: #fff; - border-radius: 4px; - } - .stepItem { - display: flex; - align-items: flex-start; - margin-bottom: 30px; - margin-left: 30px; - padding-bottom: 30px; - border-left: 2px solid #ccc; - &:first-of-type { - margin-top: 30px; - } - &:last-of-type { - margin-bottom: 0; - border-left: none; - } - .stepNum { - width: 30px; - height: 30px; - border-radius: 15px; - box-sizing: border-box; - color: #333; - border: 2px solid #999; - line-height: 26px; - text-align: center; - margin-right: 40px; - margin-left: -16px; - margin-top: -30px; - } - .stepCard { - margin-top: -30px; - - .box-card { - width: 480px; - - .card-header { - display: flex; - justify-content: space-between; - align-items: center; - - span { - font-weight: bold; - margin-left: 10px; - } - } - - .text { - font-size: 14px; - } - - .item { - margin-bottom: 18px; - } - } - } - &:hover .card-header { - color: #0098f5; - } - &:hover .stepNum { - border: 2px solid #0098f5; - color: #0098f5; - } - } - - .el-form { - padding: 40px 20px; - } -} -</style> diff --git a/src/views/specialWorkSystem/workApplyManage/myApply/index.vue b/src/views/specialWorkSystem/workApplyManage/myApply/index.vue deleted file mode 100644 index 390f236..0000000 --- a/src/views/specialWorkSystem/workApplyManage/myApply/index.vue +++ /dev/null @@ -1,362 +0,0 @@ -<template> - <div class="home-container"> - <el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClick"> - <el-tab-pane label="申请中" name="Applying"> - <div style="height: 100%"> - <el-row class="homeCard"> - <el-col :span="8"> - <div class="grid-content topInfo"> - <el-input v-model="searchWord" placeholder="作业证名称"></el-input> - <el-button type="primary">查询</el-button> - <el-button plain>重置</el-button> - </div> - </el-col> - </el-row> - <div class="homeCard"> - <div class="main-card"> - <el-row class="cardTop"> - <el-col :span="12" class="mainCardBtn"> - <el-button type="primary" :icon="Plus" size="default">申请</el-button> -<!-- <el-button type="danger" :icon="Delete" size="default">删除</el-button>--> -<!-- <el-button type="success" size="default">设置分类</el-button>--> - </el-col> - <el-button type="primary" :icon="Refresh" size="default"/> - </el-row> - <el-table - ref="multipleTableRef" - :data="applyData" - style="width: 100%" - height="calc(100% - 100px)" - :header-cell-style="{background: '#fafafa'}" - @selection-change="handleSelectionChange" - > - <el-table-column type="selection" width="55" /> - <el-table-column type="index" label="作业证编号" width="200"/> - <el-table-column property="level" label="作业证等级" width="180" sortable /> - <el-table-column property="applyDate" label="申请日期" sortable /> - <el-table-column property="name" label="申请人" width="180"/> - <el-table-column property="department" label="申请部门" width="180" /> - <el-table-column label="申请状态" width="180"> - <template #default="scope"> - <el-tag type="success">{{ scope.row.status }}</el-tag> - </template> - </el-table-column> - <el-table-column fixed="right" label="操作" align="center" width="250"> - <template #default="scope"> - <el-button link type="primary" size="small" :icon="View" @click="viewRecord(scope.row)">查看</el-button> - <el-button link type="danger" size="small" :icon="Delete" @click="deleteRecord(scope.$index)">删除</el-button> - </template> - </el-table-column> - </el-table> - <div class="pageBtn"> - <el-pagination - v-model:currentPage="currentPage" - v-model:page-size="pageSize" - :page-sizes="[10, 15]" - small=false - background - layout="total, sizes, prev, pager, next, jumper" - :total="100" - @size-change="handleSizeChange" - @current-change="handleCurrentChange" - /> - </div> - </div> - </div> - </div> - <el-dialog v-model="dialogDetails" title="作业票查看"> - <el-form :model="details" label-width="120px"> - <el-form-item label="作业证等级"> - <el-input - v-model="details.level" - readonly - /> - </el-form-item> - <el-form-item label="申请日期"> - <el-input - v-model="details.applyDate" - readonly - /> - </el-form-item> - <el-form-item label="申请人"> - <el-input - v-model="details.name" - readonly - /> - </el-form-item> - <el-form-item label="申请部门"> - <el-input - v-model="details.department" - readonly - /> - </el-form-item> - <el-form-item label="状态"> - <el-input - v-model="details.status" - readonly - /> - </el-form-item> - <el-form-item> - <el-button type="primary" @click="dialogDetails = false" size="default">确认</el-button> - </el-form-item> - </el-form> - </el-dialog> - <el-dialog v-model="deleteDialog" title="提示" width="30%" center @close="indexClear"> - <span>您确定要删除该条记录吗?</span> - <template #footer> - <span class="dialog-footer"> - <el-button @click="deleteDialog = false" size="default">取消</el-button> - <el-button type="primary" @click="conFirmDelete" size="default" v-throttle>确认</el-button> - </span> - </template> - </el-dialog> - </el-tab-pane> - <el-tab-pane label="已通过" name="passed"> - <div style="height: 100%"> - <el-row class="homeCard"> - <el-col :span="8"> - <div class="grid-content topInfo"> - <el-input v-model="searchWord" placeholder="作业证名称"></el-input> - <el-button type="primary">查询</el-button> - <el-button plain>重置</el-button> - </div> - </el-col> - </el-row> - <div class="homeCard"> - <div class="main-card"> -<!-- <el-row class="cardTop">--> -<!-- <el-col :span="12" class="mainCardBtn">--> -<!-- <el-button type="primary" :icon="Plus" size="default">申请</el-button>--> -<!-- <el-button type="danger" :icon="Delete" size="default">删除</el-button>--> -<!-- <el-button type="success" size="default">设置分类</el-button>--> -<!-- </el-col>--> -<!-- <el-button type="primary" size="default" :icon="Refresh" />--> -<!-- </el-row>--> - <el-table - ref="multipleTableRef" - :data="passedData" - style="width: 100%" - height="calc(100% - 48px)" - :header-cell-style="{background: '#fafafa'}" - @selection-change="handleSelectionChange" - > - <el-table-column type="selection" width="55" /> - <el-table-column type="index" label="编号" width="200"/> - <el-table-column property="level" label="作业证等级" width="180" sortable /> - <el-table-column property="applyDate" label="申请日期" sortable /> - <el-table-column property="name" label="申请人" width="180"/> - <el-table-column property="department" label="申请部门" width="180" /> - <el-table-column label="申请状态" width="180"> - <template #default="scope"> - <el-tag type="success">{{ scope.row.status }}</el-tag> - </template> - </el-table-column> - </el-table> - <div class="pageBtn"> - <el-pagination - v-model:currentPage="currentPage" - v-model:page-size="pageSize" - :page-sizes="[10, 15]" - small=false - background - layout="total, sizes, prev, pager, next, jumper" - :total="100" - @size-change="handleSizeChange" - @current-change="handleCurrentChange" - /> - </div> - </div> - </div> - </div> - </el-tab-pane> - </el-tabs> - </div> -</template> - -<script lang="ts" setup> - import { toRefs, reactive, defineComponent, ref } from 'vue'; - import { storeToRefs } from 'pinia'; - import { initBackEndControlRoutes } from '/@/router/backEnd'; - import {useUserInfo} from "/@/stores/userInfo"; - import { Session } from '/@/utils/storage'; - import { Plus, Delete, Refresh } from '@element-plus/icons-vue' - import { ElTable } from 'element-plus' - import type { TabsPaneContext } from 'element-plus' - let global: any = { - homeChartOne: null, - homeChartTwo: null, - homeCharThree: null, - dispose: [null, '', undefined], - }; - - interface stateType { - homeOne: Array <type> - } - interface type { - - } - interface User { - num: string - level: string - applyDate: string - name: string - department: string - status: string - } - const userInfo = useUserInfo() - const { userInfos } = storeToRefs(userInfo); - const activeName = ref('Applying') - const handleClick = (tab: TabsPaneContext, event: Event) => { - console.log(tab, event) - } - const multipleTableRef = ref<InstanceType<typeof ElTable>>() - const multipleSelection = ref<User[]>([]) - const handleSelectionChange = (val: User[]) => { - multipleSelection.value = val - } - const currentPage = ref(1) - const pageSize = ref(10) - const handleSizeChange = (val: number) => { - console.log(`${val} items per page`) - } - const handleCurrentChange = (val: number) => { - console.log(`current page: ${val}`) - } - const applyData = reactive([ - { - level: '等级一', - applyDate: '2022-07-27 14:19:33', - name: '张三', - department: '部门一', - status: '审核中' - - }, - { - level: '等级一', - applyDate: '2022-07-27 14:19:33', - name: '张三', - department: '部门一', - status: '审核中' - - }, - { - level: '等级一', - applyDate: '2022-07-27 14:19:33', - name: '张三', - department: '部门一', - status: '审核中' - - } - ]) - const chosenIndex = ref(-1) - const passedData: User[] = [] - const dialogDetails = ref(false) - const details = ref({}) - const deleteDialog = ref(false) - - // 查看记录 - const viewRecord = (row) =>{ - details.value = JSON.parse(JSON.stringify(row)) - dialogDetails.value = true - } - - // 删除记录 - const deleteRecord = (index) =>{ - chosenIndex.value = index - deleteDialog.value = true - } - - // 弹窗确认删除记录 - const conFirmDelete = ()=> { - applyData.splice(chosenIndex.value,1) - deleteDialog.value = false - } - // 折线图 - const renderMenu = async (value: string) => { - Session.set('projectId',value) - userInfos.value.projectId = value - await initBackEndControlRoutes(); - }; -</script> - -<style scoped lang="scss"> - $homeNavLengh: 8; - .home-container { - height: calc(100vh - 144px); - box-sizing: border-box; - overflow: hidden; - .demo-tabs{ - width: 100%; - height: 100%; - - &::v-deep(.el-tabs__content){ - height: calc(100% - 60px); - } - - .el-tab-pane{ - height: 100%; - } - } - .homeCard{ - width: 100%; - padding: 20px; - box-sizing: border-box; - background: #fff; - border-radius: 4px; - - .main-card{ - width: 100%; - height: 100%; - .cardTop{ - display: flex; - align-items: center; - justify-content: space-between; - margin-bottom: 20px; - .mainCardBtn{ - margin: 0; - } - } - .pageBtn{ - height: 60px; - display: flex; - align-items: center; - justify-content: right; - - .demo-pagination-block + .demo-pagination-block { - margin-top: 10px; - } - .demo-pagination-block .demonstration { - margin-bottom: 16px; - } - } - } - &:last-of-type{ - height: calc(100% - 100px); - } - } - .el-row{ - display: flex; - align-items: center; - margin-bottom: 20px; - &:last-child { - margin-bottom: 0; - } - .grid-content{ - align-items: center; - min-height: 36px; - } - - .topInfo { - display: flex; - align-items: center; - font-size: 16px; - font-weight: bold; - - &>div{ - white-space: nowrap; - margin-right: 20px; - } - } - } - } -</style> diff --git a/src/views/specialWorkSystem/workApplyManage/workTicket/components/blindPanelForm.vue b/src/views/specialWorkSystem/workApplyManage/workTicket/components/blindPanelForm.vue deleted file mode 100644 index bf26c37..0000000 --- a/src/views/specialWorkSystem/workApplyManage/workTicket/components/blindPanelForm.vue +++ /dev/null @@ -1,354 +0,0 @@ -<template> - <div class="comp-container"> - <el-form :model="bpForm" label-width="180px" :rules="bpFormRules" ref="bpRef"> - <div class="homeCard"> - <el-row> - <el-col :span="8"> - <el-form-item label="申请部门" prop="bpDepartment"> - <el-select v-model="bpForm.bpDepartment" placeholder="请选择部门"> - <el-option label="机修班" value="机修班" /> - <el-option label="火工班" value="火工班" /> - </el-select> - </el-form-item> - </el-col> - <el-col :span="8"> - <el-form-item label="申请人" prop="bpApplyName"> - <el-input - v-model="bpForm.bpApplyName" - placeholder="请输入" - class="input-with-select" - > - <template #append> - <el-button :icon="Search" /> - </template> - </el-input> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="24"> - <el-form-item label="设备管道名称" prop="bpTubeName"> - <el-input - v-model="bpForm.bpTubeName" - placeholder="请输入" - class="input-with-select" - /> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="24"> - <el-form-item label="主要介质" prop="bpMainMatter"> - <el-input - v-model="bpForm.bpMainMatter" - placeholder="请输入" - class="input-with-select" - /> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="8"> - <el-form-item label="温度" prop="bpTemperature"> - <el-input - v-model="bpForm.bpTemperature" - placeholder="请输入" - class="input-with-select" - /> - </el-form-item> - </el-col> - <el-col :span="8"> - <el-form-item label="压力" prop="bpPressure"> - <el-input - v-model="bpForm.bpPressure" - placeholder="请输入" - class="input-with-select" - /> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="24"> - <el-form-item label="盲板材质" prop="bpMaterial"> - <el-input - v-model="bpForm.bpMaterial" - placeholder="请输入" - class="input-with-select" - /> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="24"> - <el-form-item label="盲板规格" prop="bpFormat"> - <el-input - v-model="bpForm.bpFormat" - placeholder="请输入" - class="input-with-select" - /> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="24"> - <el-form-item label="盲板编号" prop="bpNum"> - <el-input - v-model="bpForm.bpNum" - placeholder="请输入" - class="input-with-select" - /> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="24"> - <el-form-item label="盲板位置" prop="bpLocation"> - <el-input - v-model="bpForm.bpLocation" - placeholder="请输入" - class="input-with-select" - type="textarea" - /> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="24"> - <el-form-item label="盲板位置图"> - <el-upload - v-model:file-list="bpForm.picList" - class="upload-demo" - action="https://run.mocky.io/v3/9d059bf9-4660-45f2-925d-ce80ad6c4d15" - multiple - :on-preview="handlePreview" - :on-remove="handleRemove" - :before-remove="beforeRemove" - :limit="3" - :on-exceed="handleExceed" - > - <el-button type="primary">上传附件</el-button> - <template #tip> - <div class="el-upload__tip"> - jpg/png 文件大小须在500k以内. - </div> - </template> - </el-upload> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="24"> - <el-form-item label="装盲板负责人" prop="bpPrincipals"> - <el-select v-model="bpForm.bpPrincipals" placeholder="请选择" multiple> - <el-option label="负责人一" value="负责人一" /> - <el-option label="负责人二" value="负责人二" /> - </el-select> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="24"> - <el-form-item label="装盲板时间" prop="bpInstallTime"> - <el-date-picker - v-model="bpForm.bpInstallTime" - type="datetime" - placeholder="请选择" - /> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="24"> - <el-form-item label="拆盲板负责人" prop="bpDePrincipals"> - <el-select v-model="bpForm.bpDePrincipals" placeholder="请选择" multiple> - <el-option label="负责人一" value="负责人一" /> - <el-option label="负责人二" value="负责人二" /> - </el-select> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="24"> - <el-form-item label="拆盲板时间" prop="bpUninstallTime"> - <el-date-picker - v-model="bpForm.bpUninstallTime" - type="datetime" - placeholder="请选择" - /> - </el-form-item> - </el-col> - </el-row> - </div> - </el-form> - </div> -</template> - -<script lang="ts"> - import { toRefs, reactive, defineComponent, ref } from 'vue'; - import { storeToRefs } from 'pinia'; - import { initBackEndControlRoutes } from '/@/router/backEnd'; - import {useUserInfo} from "/@/stores/userInfo"; - import { Session } from '/@/utils/storage'; - import { Search } from '@element-plus/icons-vue' - import { ElMessage, ElMessageBox } from 'element-plus' - import type { FormInstance, FormRules, UploadProps, UploadUserFile } from 'element-plus' - let global: any = { - homeChartOne: null, - homeChartTwo: null, - homeCharThree: null, - dispose: [null, '', undefined], - }; - - interface stateType { - homeOne: Array <type> - } - interface type { - - } - export default defineComponent({ - name: 'blindPanelForm', - props: { - bpForm: Object, - }, - setup(props) { - const userInfo = useUserInfo() - const { userInfos } = storeToRefs(userInfo); - const state = reactive<stateType>({}); - const bpForm1 = reactive(props.bpForm) - // const bpForm = reactive({ - // bpDepartment: '', - // bpApplyName: '', - // bpTubeName: '', - // bpMainMatter: '', - // bpTemperature: '', - // bpPressure: '', - // bpMaterial: '', - // bpFormat: '', - // bpNum: '', - // bpLocation: '', - // fileList: [], - // bpPrincipals: [], - // bpInstallTime: '', - // bpDePrincipals: [], - // bpUninstallTime: '' - // }) - const bpRef = ref<FormInstance>() - const bpFormRules = reactive<FormRules>({ - bpDepartment:[{required: true,message: '此处不可为空'}], - bpApplyName:[{required: true,message: '此处不可为空'}], - bpTubeName: [{required: true,message: '此处不可为空'}], - bpMainMatter: [{required: true,message: '此处不可为空'}], - bpTemperature: [{required: true,message: '此处不可为空'}], - bpPressure: [{required: true,message: '此处不可为空'}], - bpMaterial: [{required: true,message: '此处不可为空'}], - bpFormat: [{required: true,message: '此处不可为空'}], - bpNum: [{required: true,message: '此处不可为空'}], - bpLocation: [{required: true,message: '此处不可为空'}], - bpPrincipals: [{type: 'array',required: true,message: '此处不可为空',trigger:'blur'}], - bpInstallTime: [{required: true,message: '此处不可为空'}], - bpDePrincipals: [{type: 'array',required: true,message: '此处不可为空',trigger:'blur'}], - bpUninstallTime: [{required: true,message: '此处不可为空'}] - }) - const fileList = ref<UploadUserFile[]>([ - { - name: 'element-plus-logo.svg', - url: 'https://element-plus.org/images/element-plus-logo.svg', - } - ]) - - const handleRemove: UploadProps['onRemove'] = (file, uploadFiles) => { - console.log(file, uploadFiles) - } - - const handlePreview: UploadProps['onPreview'] = (uploadFile) => { - console.log(uploadFile) - } - - const handleExceed: UploadProps['onExceed'] = (files, uploadFiles) => { - ElMessage.warning( - // `The limit is 3, you selected ${files.length} files this time, add up to ${ - // files.length + uploadFiles.length - // } totally` - '文件总数超出限制' - ) - } - - const beforeRemove: UploadProps['beforeRemove'] = (uploadFile, uploadFiles) => { - return ElMessageBox.confirm( - `取消上传 ${uploadFile.name} ?` - ).then( - () => true, - () => false - ) - } - - const validateForm = async () => { - let flag = null - await bpRef.value.validate(valid=>{ - if(valid){ - flag = true - }else{ - flag = false - } - }) - return flag - } - // 折线图 - const renderMenu = async (value: string) => { - Session.set('projectId',value) - userInfos.value.projectId = value - await initBackEndControlRoutes(); - }; - return { - renderMenu, - bpForm1, - bpFormRules, - bpRef, - fileList, - Search, - validateForm, - handleRemove, - handlePreview, - handleExceed, - beforeRemove, - ...toRefs(state), - }; - }, - }); -</script> - -<style scoped lang="scss"> - .home-container { - height: 100%; - overflow: hidden; - .homeCard{ - width: 100%; - padding: 20px; - background: #fff; - border-radius: 4px; - margin-bottom: 20px; - } - .el-row{ - margin-bottom: 20px; - } - .el-row:last-child { - margin-bottom: 0; - } - .el-input{ - width: 100% !important; - } - .el-date-editor::v-deep{ - width: 100%; - } - .el-select{ - width: 100%; - } - .el-cascader{ - width: 100% !important; - } - .submitBtn{ - display: flex; - justify-content: center; - } - } -</style> diff --git a/src/views/specialWorkSystem/workApplyManage/workTicket/components/cutLineForm.vue b/src/views/specialWorkSystem/workApplyManage/workTicket/components/cutLineForm.vue deleted file mode 100644 index 4a0a5be..0000000 --- a/src/views/specialWorkSystem/workApplyManage/workTicket/components/cutLineForm.vue +++ /dev/null @@ -1,220 +0,0 @@ -<template> - <div class="comp-container"> - <el-form :model="clForm" label-width="180px" :rules="clFormRules" ref="clRef"> - <div class="homeCard"> - <el-row> - <el-col :span="8"> - <el-form-item label="申请部门" prop="clDepartment"> - <el-select v-model="clForm.clDepartment" placeholder="请选择部门"> - <el-option label="机修班" value="机修班" /> - <el-option label="火工班" value="火工班" /> - </el-select> - </el-form-item> - </el-col> - <el-col :span="8"> - <el-form-item label="申请人" prop="clApplyName"> - <el-input - v-model="clForm.clApplyName" - placeholder="请输入" - class="input-with-select" - > - <template #append> - <el-button :icon="Search" /> - </template> - </el-input> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="24"> - <el-form-item label="断路原因" prop="clReason"> - <el-input - v-model="clForm.clReason" - placeholder="请输入" - class="input-with-select" - type="textarea" - /> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="24"> - <el-form-item label="涉及相关单位(部门)" prop="clUnits"> - <el-select v-model="clForm.clUnits" placeholder="请选择" multiple> - <el-option label="单位一" value="单位一" /> - <el-option label="单位二" value="单位二" /> - </el-select> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="24"> - <el-form-item label="断路地段示意图" prop="fileList"> - <el-upload - v-model:file-list="fileList" - class="upload-demo" - action="https://run.mocky.io/v3/9d059bf9-4660-45f2-925d-ce80ad6c4d15" - multiple - :on-preview="handlePreview" - :on-remove="handleRemove" - :before-remove="beforeRemove" - :limit="3" - :on-exceed="handleExceed" - > - <el-button type="primary">上传附件</el-button> - <template #tip> - <div class="el-upload__tip"> - jpg/png 文件大小须在500k以内. - </div> - </template> - </el-upload> - </el-form-item> - </el-col> - </el-row> - </div> - </el-form> - </div> -</template> - -<script lang="ts"> - import { toRefs, reactive, defineComponent, ref } from 'vue'; - import { storeToRefs } from 'pinia'; - import { initBackEndControlRoutes } from '/@/router/backEnd'; - import {useUserInfo} from "/@/stores/userInfo"; - import { Session } from '/@/utils/storage'; - import { Search } from '@element-plus/icons-vue' - import { ElMessage, ElMessageBox } from 'element-plus' - import type { FormInstance, FormRules, UploadProps, UploadUserFile } from 'element-plus' - let global: any = { - homeChartOne: null, - homeChartTwo: null, - homeCharThree: null, - dispose: [null, '', undefined], - }; - - interface stateType { - homeOne: Array <type> - } - interface type { - - } - export default defineComponent({ - name: 'cutLineForm', - props: { - clForm: Object - }, - setup(props) { - const userInfo = useUserInfo() - const { userInfos } = storeToRefs(userInfo); - const state = reactive<stateType>({}); - const clForm1 = reactive(props.clForm) - const clRef = ref<FormInstance>() - const clFormRules = reactive<FormRules>({ - clDepartment:[{required: true,message: '此处不可为空',trigger: 'blur'}], - clApplyName:[{required: true,message: '此处不可为空',trigger: 'blur'}], - clReason: [{required: true,message: '此处不可为空',trigger: 'blur'}], - clUnits: [{required: true,message: '此处不可为空',trigger: 'blur'}], - fileList: [{type: 'array',required: true,message: '此处不可为空',trigger: 'change'}] - }) - const fileList = ref<UploadUserFile[]>([ - { - name: 'element-plus-logo.svg', - url: 'https://element-plus.org/images/element-plus-logo.svg', - } - ]) - - const handleRemove: UploadProps['onRemove'] = (file, uploadFiles) => { - console.log(file, uploadFiles) - } - - const handlePreview: UploadProps['onPreview'] = (uploadFile) => { - console.log(uploadFile) - } - - const handleExceed: UploadProps['onExceed'] = (files, uploadFiles) => { - ElMessage.warning( - // `The limit is 3, you selected ${files.length} files this time, add up to ${ - // files.length + uploadFiles.length - // } totally` - '文件总数超出限制' - ) - } - - const beforeRemove: UploadProps['beforeRemove'] = (uploadFile, uploadFiles) => { - return ElMessageBox.confirm( - `取消上传 ${uploadFile.name} ?` - ).then( - () => true, - () => false - ) - } - const validateForm = async () => { - let flag = null - await clRef.value.validate(valid=>{ - if(valid){ - flag = true - }else{ - flag = false - } - }) - return flag - } - // 折线图 - const renderMenu = async (value: string) => { - Session.set('projectId',value) - userInfos.value.projectId = value - await initBackEndControlRoutes(); - }; - return { - renderMenu, - clForm1, - Search, - clFormRules, - clRef, - fileList, - validateForm, - handleRemove, - handlePreview, - handleExceed, - beforeRemove, - ...toRefs(state), - }; - }, - }); -</script> - -<style scoped lang="scss"> - .home-container { - height: 100%; - overflow: hidden; - .homeCard{ - width: 100%; - padding: 20px; - background: #fff; - border-radius: 4px; - margin-bottom: 20px; - } - .el-row{ - margin-bottom: 20px; - } - .el-row:last-child { - margin-bottom: 0; - } - .el-input{ - width: 100% !important; - } - .el-date-editor::v-deep{ - width: 100%; - } - .el-select{ - width: 100%; - } - .el-cascader{ - width: 100% !important; - } - .submitBtn{ - display: flex; - justify-content: center; - } - } -</style> diff --git a/src/views/specialWorkSystem/workApplyManage/workTicket/components/dirtWorkForm.vue b/src/views/specialWorkSystem/workApplyManage/workTicket/components/dirtWorkForm.vue deleted file mode 100644 index 4bb6e52..0000000 --- a/src/views/specialWorkSystem/workApplyManage/workTicket/components/dirtWorkForm.vue +++ /dev/null @@ -1,221 +0,0 @@ -<template> - <div class="comp-container"> - <el-form :model="dwForm" label-width="180px" :rules="dwFormRules" ref="dwRef"> - <div class="homeCard"> - <el-row> - <el-col :span="8"> - <el-form-item label="申请部门" prop="dwDepartment"> - <el-select v-model="dwForm.dwDepartment" placeholder="请选择部门"> - <el-option label="机修班" value="机修班" /> - <el-option label="火工班" value="火工班" /> - </el-select> - </el-form-item> - </el-col> - <el-col :span="8"> - <el-form-item label="申请人" prop="dwApplyName"> - <el-input - v-model="dwForm.dwApplyName" - placeholder="请输入" - class="input-with-select" - > - <template #append> - <el-button :icon="Search" /> - </template> - </el-input> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="24"> - <el-form-item label="动土范围" prop="dwRange"> - <el-input - v-model="dwForm.dwRange" - placeholder="请输入" - class="input-with-select" - type="textarea" - /> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="24"> - <el-form-item label="动土方式" prop="dwWay"> - <el-input - v-model="dwForm.dwWay" - placeholder="请输入" - class="input-with-select" - type="textarea" - /> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="24"> - <el-form-item label="动土简图" prop="fileList"> - <el-upload - v-model:file-list="fileList" - class="upload-demo" - action="https://run.mocky.io/v3/9d059bf9-4660-45f2-925d-ce80ad6c4d15" - multiple - :on-preview="handlePreview" - :on-remove="handleRemove" - :before-remove="beforeRemove" - :limit="3" - :on-exceed="handleExceed" - > - <el-button type="primary">上传附件</el-button> - <template #tip> - <div class="el-upload__tip"> - jpg/png 文件大小须在500k以内. - </div> - </template> - </el-upload> - </el-form-item> - </el-col> - </el-row> - </div> - </el-form> - </div> -</template> - -<script lang="ts"> - import { toRefs, reactive, defineComponent, ref } from 'vue'; - import { storeToRefs } from 'pinia'; - import { initBackEndControlRoutes } from '/@/router/backEnd'; - import {useUserInfo} from "/@/stores/userInfo"; - import { Session } from '/@/utils/storage'; - import { Search } from '@element-plus/icons-vue' - import { ElMessage, ElMessageBox } from 'element-plus' - import type { FormInstance, FormRules, UploadProps, UploadUserFile } from 'element-plus' - let global: any = { - homeChartOne: null, - homeChartTwo: null, - homeCharThree: null, - dispose: [null, '', undefined], - }; - - interface stateType { - homeOne: Array <type> - } - interface type { - - } - export default defineComponent({ - name: 'dirtWorkForm', - props:{ - dwForm: Object - }, - setup(props) { - const userInfo = useUserInfo() - const { userInfos } = storeToRefs(userInfo); - const state = reactive<stateType>({}); - const dwForm1 = reactive(props.dwForm) - const dwRef = ref<FormInstance>() - const dwFormRules = reactive<FormRules>({ - dwDepartment:[{required: true,message: '此处不可为空',trigger: 'blur'}], - dwApplyName:[{required: true,message: '此处不可为空',trigger: 'blur'}], - dwRange: [{required: true,message: '此处不可为空',trigger: 'blur'}], - dwWay: [{required: true,message: '此处不可为空',trigger: 'blur'}], - fileList: [{type: 'array',required: true,message: '此处不可为空',trigger: 'change'}] - }) - const fileList = ref<UploadUserFile[]>([ - { - name: 'element-plus-logo.svg', - url: 'https://element-plus.org/images/element-plus-logo.svg', - } - ]) - - const handleRemove: UploadProps['onRemove'] = (file, uploadFiles) => { - console.log(file, uploadFiles) - } - - const handlePreview: UploadProps['onPreview'] = (uploadFile) => { - console.log(uploadFile) - } - - const handleExceed: UploadProps['onExceed'] = (files, uploadFiles) => { - ElMessage.warning( - // `The limit is 3, you selected ${files.length} files this time, add up to ${ - // files.length + uploadFiles.length - // } totally` - '文件总数超出限制' - ) - } - - const beforeRemove: UploadProps['beforeRemove'] = (uploadFile, uploadFiles) => { - return ElMessageBox.confirm( - `取消上传 ${uploadFile.name} ?` - ).then( - () => true, - () => false - ) - } - const validateForm = async () => { - let flag = null - await dwRef.value.validate(valid=>{ - if(valid){ - flag = true - }else{ - flag = false - } - }) - return flag - } - // 折线图 - const renderMenu = async (value: string) => { - Session.set('projectId',value) - userInfos.value.projectId = value - await initBackEndControlRoutes(); - }; - return { - renderMenu, - dwForm1, - dwFormRules, - dwRef, - fileList, - validateForm, - handleRemove, - handlePreview, - handleExceed, - beforeRemove, - ...toRefs(state), - }; - }, - }); -</script> - -<style scoped lang="scss"> - .home-container { - height: 100%; - overflow: hidden; - .homeCard{ - width: 100%; - padding: 20px; - background: #fff; - border-radius: 4px; - margin-bottom: 20px; - } - .el-row{ - margin-bottom: 20px; - } - .el-row:last-child { - margin-bottom: 0; - } - .el-input{ - width: 100% !important; - } - .el-date-editor::v-deep{ - width: 100%; - } - .el-select{ - width: 100%; - } - .el-cascader{ - width: 100% !important; - } - .submitBtn{ - display: flex; - justify-content: center; - } - } -</style> diff --git a/src/views/specialWorkSystem/workApplyManage/workTicket/components/fireWorkForm.vue b/src/views/specialWorkSystem/workApplyManage/workTicket/components/fireWorkForm.vue deleted file mode 100644 index 084f86c..0000000 --- a/src/views/specialWorkSystem/workApplyManage/workTicket/components/fireWorkForm.vue +++ /dev/null @@ -1,164 +0,0 @@ -<template> - <div class="comp-container"> - <el-form :model="fwForm" label-width="150px" :rules="fwRules" ref="fwRef"> - <div class="homeCard"> - <el-row> - <el-col :span="8"> - <el-form-item label="申请部门" prop="fwDepartment"> - <el-select v-model="fwForm.fwDepartment" placeholder="请选择部门"> - <el-option label="机修班" value="机修班" /> - <el-option label="火工班" value="火工班" /> - </el-select> - </el-form-item> - </el-col> - <el-col :span="8"> - <el-form-item label="申请人" prop="fwApplyName"> - <el-input - v-model="fwForm.fwApplyName" - placeholder="请输入" - class="input-with-select" - > - <template #append> - <el-button :icon="Search" /> - </template> - </el-input> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="8"> - <el-form-item label="作业等级" prop="fwLevel"> - <el-select v-model="fwForm.fwLevel" placeholder="请选择"> - <el-option label="一" value="一" /> - <el-option label="二" value="二" /> - </el-select> - </el-form-item> - </el-col> - <el-col :span="8"> - <el-form-item label="危害辨识" prop="fwRiskIdentify"> - <el-select v-model="fwForm.fwRiskIdentify" placeholder="请选择"> - <el-option label="辨识一" value="辨识一" /> - <el-option label="辨识二" value="辨识二" /> - </el-select> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="8"> - <el-form-item label="动火方式" prop="fwWorkWay"> - <el-select v-model="fwForm.fwWorkWay" placeholder="请选择"> - <el-option label="方式一" value="方式一" /> - <el-option label="方式二" value="方式二" /> - </el-select> - </el-form-item> - </el-col> - </el-row> - </div> - </el-form> - </div> -</template> - -<script lang="ts"> - import { toRefs, reactive, defineComponent, ref } from 'vue'; - import { storeToRefs } from 'pinia'; - import { initBackEndControlRoutes } from '/@/router/backEnd'; - import {useUserInfo} from "/@/stores/userInfo"; - import { Session } from '/@/utils/storage'; - import { Search } from '@element-plus/icons-vue' - import type { FormInstance, FormRules } from 'element-plus' - let global: any = { - homeChartOne: null, - homeChartTwo: null, - homeCharThree: null, - dispose: [null, '', undefined], - }; - - interface stateType { - homeOne: Array <type> - } - interface type { - - } - export default defineComponent({ - name: 'fireWorkForm', - props: { - fwForm: Object - }, - setup(props) { - const userInfo = useUserInfo() - const { userInfos } = storeToRefs(userInfo); - const state = reactive<stateType>({}); - const fwForm1 = reactive(props.fwForm) - const fwRef = ref<FormInstance>() - const fwRules = reactive<FormRules>({ - fwDepartment:[{required: true,message: '此处不可为空'}], - fwApplyName:[{required: true,message: '此处不可为空'}], - fwLevel: [{required: true,message: '此处不可为空'}], - fwRiskIdentify: [{required: true,message: '此处不可为空'}], - fwWorkWay: [{required: true,message: '此处不可为空'}] - }) - const validateForm = async () => { - let flag = null - await fwRef.value.validate(valid=>{ - if(valid){ - flag = true - }else{ - flag = false - } - }) - return flag - } - // 折线图 - const renderMenu = async (value: string) => { - Session.set('projectId',value) - userInfos.value.projectId = value - await initBackEndControlRoutes(); - }; - return { - renderMenu, - Search, - fwForm1, - fwRules, - fwRef, - validateForm, - ...toRefs(state), - }; - }, - }); -</script> - -<style scoped lang="scss"> - .comp-container { - height: 100%; - overflow: hidden; - .homeCard{ - width: 100%; - padding: 20px; - background: #fff; - border-radius: 4px; - margin-bottom: 20px; - } - .el-row{ - margin-bottom: 20px; - } - .el-row:last-child { - margin-bottom: 0; - } - .el-input{ - width: 100% !important; - } - .el-date-editor::v-deep{ - width: 100%; - } - .el-select{ - width: 100%; - } - .el-cascader{ - width: 100% !important; - } - .submitBtn{ - display: flex; - justify-content: center; - } - } -</style> diff --git a/src/views/specialWorkSystem/workApplyManage/workTicket/components/hangLoadForm.vue b/src/views/specialWorkSystem/workApplyManage/workTicket/components/hangLoadForm.vue deleted file mode 100644 index 6b36361..0000000 --- a/src/views/specialWorkSystem/workApplyManage/workTicket/components/hangLoadForm.vue +++ /dev/null @@ -1,169 +0,0 @@ -<template> - <div class="comp-container"> - <el-form :model="hlForm" label-width="180px" :rules="hlFormRules" ref="hlRef"> - <div class="homeCard"> - <el-row> - <el-col :span="8"> - <el-form-item label="申请部门" prop="hlDepartment"> - <el-select v-model="hlForm.hlDepartment" placeholder="请选择部门"> - <el-option label="机修班" value="机修班" /> - <el-option label="火工班" value="火工班" /> - </el-select> - </el-form-item> - </el-col> - <el-col :span="8"> - <el-form-item label="申请人" prop="hlApplyName"> - <el-input - v-model="hlForm.hlApplyName" - placeholder="请输入" - class="input-with-select" - > - <template #append> - <el-button :icon="Search" /> - </template> - </el-input> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="8"> - <el-form-item label="作业等级" prop="hlLevel"> - <el-select v-model="hlForm.hlLevel" placeholder="请选择等级"> - <el-option label="等级一" value="等级一" /> - <el-option label="等级二" value="等级二" /> - </el-select> - </el-form-item> - </el-col> - <el-col :span="8"> - <el-form-item label="起吊重物质量" prop="hlWeight"> - <el-input - v-model="hlForm.hlWeight" - placeholder="请输入" - class="input-with-select" - /> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="24"> - <el-form-item label="吊装工具名称" prop="hlToolsName"> - <el-input - v-model="hlForm.hlToolsName" - placeholder="请输入" - class="input-with-select" - > - <template #append> - <el-button :icon="Search" /> - </template> - </el-input> - </el-form-item> - </el-col> - </el-row> - </div> - </el-form> - </div> -</template> - -<script lang="ts"> - import { toRefs, reactive, defineComponent, ref } from 'vue'; - import { storeToRefs } from 'pinia'; - import { initBackEndControlRoutes } from '/@/router/backEnd'; - import {useUserInfo} from "/@/stores/userInfo"; - import { Session } from '/@/utils/storage'; - import { Search } from '@element-plus/icons-vue' - import type { FormInstance, FormRules } from 'element-plus' - let global: any = { - homeChartOne: null, - homeChartTwo: null, - homeCharThree: null, - dispose: [null, '', undefined], - }; - - interface stateType { - homeOne: Array <type> - } - interface type { - - } - export default defineComponent({ - name: 'hangLoadForm', - props: { - hlForm: Object - }, - setup(props) { - const userInfo = useUserInfo() - const { userInfos } = storeToRefs(userInfo); - const state = reactive<stateType>({}); - const hlForm1 = reactive(props.hlForm) - const hlRef = ref<FormInstance>() - const hlFormRules = reactive<FormRules>({ - hlDepartment:[{required: true,message: '此处不可为空',trigger: 'blur'}], - hlApplyName:[{required: true,message: '此处不可为空',trigger: 'blur'}], - hlLevel: [{required: true,message: '此处不可为空',trigger: 'blur'}], - hlWeight: [{required: true,message: '此处不可为空',trigger: 'blur'}], - hlToolsName: [{required: true,message: '此处不可为空',trigger: 'blur'}] - }) - const validateForm = async () => { - let flag = null - await hlRef.value.validate(valid=>{ - if(valid){ - flag = true - }else{ - flag = false - } - }) - return flag - } - // 折线图 - const renderMenu = async (value: string) => { - Session.set('projectId',value) - userInfos.value.projectId = value - await initBackEndControlRoutes(); - }; - return { - renderMenu, - hlForm1, - hlFormRules, - hlRef, - validateForm, - ...toRefs(state), - }; - }, - }); -</script> - -<style scoped lang="scss"> - .home-container { - height: 100%; - overflow: hidden; - .homeCard{ - width: 100%; - padding: 20px; - background: #fff; - border-radius: 4px; - margin-bottom: 20px; - } - .el-row{ - margin-bottom: 20px; - } - .el-row:last-child { - margin-bottom: 0; - } - .el-input{ - width: 100% !important; - } - .el-date-editor::v-deep{ - width: 100%; - } - .el-select{ - width: 100%; - } - .el-cascader{ - width: 100% !important; - } - .submitBtn{ - display: flex; - justify-content: center; - } - } -</style> diff --git a/src/views/specialWorkSystem/workApplyManage/workTicket/components/highWorkForm.vue b/src/views/specialWorkSystem/workApplyManage/workTicket/components/highWorkForm.vue deleted file mode 100644 index 1ae364a..0000000 --- a/src/views/specialWorkSystem/workApplyManage/workTicket/components/highWorkForm.vue +++ /dev/null @@ -1,153 +0,0 @@ -<template> - <div class="comp-container"> - <el-form :model="hwForm" label-width="150px" :rules="hwRules" ref="hwRef"> - <div class="homeCard"> - <el-row> - <el-col :span="8"> - <el-form-item label="申请部门" prop="hwDepartment"> - <el-select v-model="hwForm.hwDepartment" placeholder="请选择部门"> - <el-option label="机修班" value="机修班" /> - <el-option label="火工班" value="火工班" /> - </el-select> - </el-form-item> - </el-col> - <el-col :span="8"> - <el-form-item label="申请人" prop="hwApplyName"> - <el-input - v-model="hwForm.hwApplyName" - placeholder="请输入" - class="input-with-select" - > - <template #append> - <el-button :icon="Search" /> - </template> - </el-input> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="8"> - <el-form-item label="作业等级" prop="hwLevel"> - <el-select v-model="hwForm.hwLevel" placeholder="请选择"> - <el-option label="一" value="一" /> - <el-option label="二" value="二" /> - </el-select> - </el-form-item> - </el-col> - <el-col :span="8"> - <el-form-item label="作业高度" prop="hwHeight"> - <el-input - v-model="hwForm.hwHeight" - placeholder="请输入" - class="input-with-select" - /> - </el-form-item> - </el-col> - </el-row> - </div> - </el-form> - </div> -</template> - -<script lang="ts"> - import { toRefs, reactive, defineComponent, ref } from 'vue'; - import { storeToRefs } from 'pinia'; - import { initBackEndControlRoutes } from '/@/router/backEnd'; - import {useUserInfo} from "/@/stores/userInfo"; - import { Session } from '/@/utils/storage'; - import { Search } from '@element-plus/icons-vue' - import type { FormInstance, FormRules } from 'element-plus' - let global: any = { - homeChartOne: null, - homeChartTwo: null, - homeCharThree: null, - dispose: [null, '', undefined], - }; - - interface stateType { - homeOne: Array <type> - } - interface type { - - } - export default defineComponent({ - name: 'highWorkForm', - props:{ - hwForm: Object - }, - setup(props) { - const userInfo = useUserInfo() - const { userInfos } = storeToRefs(userInfo); - const state = reactive<stateType>({}); - const hwForm1 = reactive(props.hwForm) - const hwRef = ref<FormInstance>() - const hwRules = reactive<FormRules>({ - hwDepartment:[{required: true,message: '此处不可为空',trigger: 'blur'}], - hwApplyName:[{required: true,message: '此处不可为空',trigger: 'blur'}], - hwLevel: [{required: true,message: '此处不可为空',trigger: 'blur'}], - hwHeight: [{required: true,message: '此处不可为空',trigger: 'blur'}] - }) - const validateForm = async () => { - let flag = null - await hwRef.value.validate(valid=>{ - if(valid){ - flag = true - }else{ - flag = false - } - }) - return flag - } - // 折线图 - const renderMenu = async (value: string) => { - Session.set('projectId',value) - userInfos.value.projectId = value - await initBackEndControlRoutes(); - }; - return { - renderMenu, - hwForm1, - hwRef, - hwRules, - validateForm, - ...toRefs(state), - }; - }, - }); -</script> - -<style scoped lang="scss"> - .comp-container { - height: 100%; - overflow: hidden; - .homeCard{ - width: 100%; - padding: 20px; - background: #fff; - border-radius: 4px; - margin-bottom: 20px; - } - .el-row{ - margin-bottom: 20px; - } - .el-row:last-child { - margin-bottom: 0; - } - .el-input{ - width: 100% !important; - } - .el-date-editor::v-deep{ - width: 100%; - } - .el-select{ - width: 100%; - } - .el-cascader{ - width: 100% !important; - } - .submitBtn{ - display: flex; - justify-content: center; - } - } -</style> diff --git a/src/views/specialWorkSystem/workApplyManage/workTicket/components/limitedSpaceForm.vue b/src/views/specialWorkSystem/workApplyManage/workTicket/components/limitedSpaceForm.vue deleted file mode 100644 index bd92649..0000000 --- a/src/views/specialWorkSystem/workApplyManage/workTicket/components/limitedSpaceForm.vue +++ /dev/null @@ -1,175 +0,0 @@ -<template> - <div class="comp-container"> - <el-form :model="lsForm" label-width="180px" :rules="lsFormRules" ref="lsRef"> - <div class="homeCard"> - <el-row> - <el-col :span="8"> - <el-form-item label="申请部门" prop="lsDepartment"> - <el-select v-model="lsForm.lsDepartment" placeholder="请选择部门"> - <el-option label="机修班" value="机修班" /> - <el-option label="火工班" value="火工班" /> - </el-select> - </el-form-item> - </el-col> - <el-col :span="8"> - <el-form-item label="申请人" prop="lsApplyName"> - <el-input - v-model="lsForm.lsApplyName" - placeholder="请输入" - class="input-with-select" - > - <template #append> - <el-button :icon="Search" /> - </template> - </el-input> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="24"> - <el-form-item label="受限空间名称" prop="lsUnitName"> - <el-input - v-model="lsForm.lsUnitName" - placeholder="请输入" - class="input-with-select" - > - <template #append> - <el-button :icon="Search" /> - </template> - </el-input> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="24"> - <el-form-item label="受限空间所属单位" prop="lsUnit"> - <el-select v-model="lsForm.lsUnit" placeholder="请选择"> - <el-option label="一" value="一" /> - <el-option label="二" value="二" /> - </el-select> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="24"> - <el-form-item label="受限空间内原有介质名称" prop="lsUnitName"> - <el-input - v-model="lsForm.lsUnitMatterName" - placeholder="请输入" - class="input-with-select" - > - <template #append> - <el-button :icon="Search" /> - </template> - </el-input> - </el-form-item> - </el-col> - </el-row> - </div> - </el-form> - </div> -</template> - -<script lang="ts"> - import { toRefs, reactive, defineComponent, ref } from 'vue'; - import { storeToRefs } from 'pinia'; - import { initBackEndControlRoutes } from '/@/router/backEnd'; - import {useUserInfo} from "/@/stores/userInfo"; - import { Session } from '/@/utils/storage'; - import { Search } from '@element-plus/icons-vue' - import type { FormInstance, FormRules } from 'element-plus' - let global: any = { - homeChartOne: null, - homeChartTwo: null, - homeCharThree: null, - dispose: [null, '', undefined], - }; - - interface stateType { - homeOne: Array <type> - } - interface type { - - } - export default defineComponent({ - name: 'limitedSpaceForm', - props: { - lsForm: Object - }, - setup(props) { - const userInfo = useUserInfo() - const { userInfos } = storeToRefs(userInfo); - const state = reactive<stateType>({}); - const lsForm1 = reactive(props.lsForm) - const lsRef = ref<FormInstance>() - const lsFormRules = reactive<FormRules>({ - lsDepartment:[{required: true,message: '此处不可为空',trigger: 'blur'}], - lsApplyName:[{required: true,message: '此处不可为空',trigger: 'blur'}], - lsUnitName: [{required: true,message: '此处不可为空',trigger: 'blur'}], - lsUnit: [{required: true,message: '此处不可为空',trigger: 'blur'}], - lsUnitMatterName: [{required: true,message: '此处不可为空',trigger: 'blur'}] - }) - const validateForm = async () => { - let flag = null - await lsRef.value.validate(valid=>{ - if(valid){ - flag = true - }else{ - flag = false - } - }) - return flag - } - // 折线图 - const renderMenu = async (value: string) => { - Session.set('projectId',value) - userInfos.value.projectId = value - await initBackEndControlRoutes(); - }; - return { - renderMenu, - lsForm1, - lsFormRules, - lsRef, - validateForm, - ...toRefs(state), - }; - }, - }); -</script> - -<style scoped lang="scss"> - .home-container { - height: 100%; - overflow: hidden; - .homeCard{ - width: 100%; - padding: 20px; - background: #fff; - border-radius: 4px; - margin-bottom: 20px; - } - .el-row{ - margin-bottom: 20px; - } - .el-row:last-child { - margin-bottom: 0; - } - .el-input{ - width: 100% !important; - } - .el-date-editor::v-deep{ - width: 100%; - } - .el-select{ - width: 100%; - } - .el-cascader{ - width: 100% !important; - } - .submitBtn{ - display: flex; - justify-content: center; - } - } -</style> diff --git a/src/views/specialWorkSystem/workApplyManage/workTicket/components/tempElectForm.vue b/src/views/specialWorkSystem/workApplyManage/workTicket/components/tempElectForm.vue deleted file mode 100644 index cc21d11..0000000 --- a/src/views/specialWorkSystem/workApplyManage/workTicket/components/tempElectForm.vue +++ /dev/null @@ -1,153 +0,0 @@ -<template> - <div class="comp-container"> - <el-form :model="teForm" label-width="150px" :rules="teRules" ref="teRef"> - <div class="homeCard"> - <el-row> - <el-col :span="8"> - <el-form-item label="申请部门" prop="teDepartment"> - <el-select v-model="teForm.teDepartment" placeholder="请选择部门"> - <el-option label="机修班" value="机修班" /> - <el-option label="火工班" value="火工班" /> - </el-select> - </el-form-item> - </el-col> - <el-col :span="8"> - <el-form-item label="申请人" prop="teApplyName"> - <el-input - v-model="teForm.teApplyName" - placeholder="请输入" - class="input-with-select" - > - <template #append> - <el-button :icon="Search" /> - </template> - </el-input> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="8"> - <el-form-item label="作业等级" prop="teLevel"> - <el-select v-model="teForm.teLevel" placeholder="请选择等级"> - <el-option label="等级一" value="等级一" /> - <el-option label="等级二" value="等级二" /> - </el-select> - </el-form-item> - </el-col> - <el-col :span="8"> - <el-form-item label="作业高度" prop="teHeight"> - <el-input - v-model="teForm.teHeight" - placeholder="请输入" - class="input-with-select" - /> - </el-form-item> - </el-col> - </el-row> - </div> - </el-form> - </div> -</template> - -<script lang="ts"> - import { toRefs, reactive, defineComponent, ref } from 'vue'; - import { storeToRefs } from 'pinia'; - import { initBackEndControlRoutes } from '/@/router/backEnd'; - import {useUserInfo} from "/@/stores/userInfo"; - import { Session } from '/@/utils/storage'; - import { Search } from '@element-plus/icons-vue' - import type { FormInstance, FormRules } from 'element-plus' - let global: any = { - homeChartOne: null, - homeChartTwo: null, - homeCharThree: null, - dispose: [null, '', undefined], - }; - - interface stateType { - homeOne: Array <type> - } - interface type { - - } - export default defineComponent({ - name: 'tempElectForm', - props: { - teForm: Object - }, - setup(props) { - const userInfo = useUserInfo() - const { userInfos } = storeToRefs(userInfo); - const state = reactive<stateType>({}); - const teForm1 = reactive(props.teForm) - const teRef = ref<FormInstance>() - const teRules = reactive<FormRules>({ - teDepartment:[{required: true,message: '此处不可为空',trigger: 'blur'}], - teApplyName:[{required: true,message: '此处不可为空',trigger: 'blur'}], - teLevel: [{required: true,message: '此处不可为空',trigger: 'blur'}], - teHeight: [{required: true,message: '此处不可为空',trigger: 'blur'}] - }) - const validateForm = async () => { - let flag = null - await teRef.value.validate(valid=>{ - if(valid){ - flag = true - }else{ - flag = false - } - }) - return flag - } - // 折线图 - const renderMenu = async (value: string) => { - Session.set('projectId',value) - userInfos.value.projectId = value - await initBackEndControlRoutes(); - }; - return { - renderMenu, - teForm1, - teRef, - teRules, - validateForm, - ...toRefs(state), - }; - }, - }); -</script> - -<style scoped lang="scss"> - .comp-container { - height: 100%; - overflow: hidden; - .homeCard{ - width: 100%; - padding: 20px; - background: #fff; - border-radius: 4px; - margin-bottom: 20px; - } - .el-row{ - margin-bottom: 20px; - } - .el-row:last-child { - margin-bottom: 0; - } - .el-input{ - width: 100% !important; - } - .el-date-editor::v-deep{ - width: 100%; - } - .el-select{ - width: 100%; - } - .el-cascader{ - width: 100% !important; - } - .submitBtn{ - display: flex; - justify-content: center; - } - } -</style> diff --git a/src/views/specialWorkSystem/workApplyManage/workTicket/index.vue b/src/views/specialWorkSystem/workApplyManage/workTicket/index.vue deleted file mode 100644 index c57548f..0000000 --- a/src/views/specialWorkSystem/workApplyManage/workTicket/index.vue +++ /dev/null @@ -1,279 +0,0 @@ -<template> - <div class="home-container"> - <div style="height: 100%"> - <el-form :model="form" label-width="120px" :rules="applyRules" ref="ruleFormRef"> - <div class="homeCard"> - <el-row> - <el-col :span="12"> - <el-form-item label="作业人" prop="operatorUids"> - <el-select v-model="form.operatorUids" multiple> - <el-option v-for="item in workerList" :key="item.value" :label="item.label" :value="item.value" /> - </el-select> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="12"> - <el-form-item label="作业等级" prop="workLevel"> - <el-select v-model="form.workLevel"> - <el-option v-for="item in workLevelList" :key="item.value" :label="item.label" :value="item.value" /> - </el-select> - </el-form-item> - </el-col> - <el-col :span="12"> - <el-form-item label="作业时间" prop="workTimeLine"> - <el-date-picker v-model="form.workTimeLine" format="YYYY-MM-DD HH:mm" value-format="YYYY-MM-DD HH:mm:00" type="datetimerange" range-separator="至" start-placeholder="开始时间" end-placeholder="结束时间" /> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="12"> - <el-form-item label="作业内容" prop="workContent"> - <el-input v-model="form.workContent" autosize type="textarea" placeholder="请输入作业内容" /> - </el-form-item> - </el-col> - <el-col :span="12"> - <el-form-item label="作业地址" prop="workLocation"> - <el-input v-model="form.workLocation" autosize type="textarea" placeholder="请输入作业地址" /> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="12"> - <el-form-item label="动火方式" prop="workDetail.hotMethod"> - <el-input v-model="form.workDetail.hotMethod" autosize type="textarea" placeholder="请输入动火方式" /> - </el-form-item> - </el-col> - <el-col :span="12"> - <el-form-item label="关联作业" prop="workDetail.otherSpecialWork"> - <el-select v-model="form.workDetail.otherSpecialWork" multiple> - <el-option v-for="item in otherWorkList" :key="item.value" :label="item.label" :value="item.value" /> - </el-select> - </el-form-item> - </el-col> - </el-row> - </div> - </el-form> - <div class="applyBtn"> - <el-button type="primary" size="large" plain @click="submitForm(ruleFormRef)">发起申请</el-button> - </div> - </div> - </div> -</template> - -<script lang="ts"> -import { toRefs, reactive, defineComponent, ref, defineAsyncComponent, onMounted } from 'vue'; -import { storeToRefs } from 'pinia'; -import { initBackEndControlRoutes } from '/@/router/backEnd'; -import { useUserInfo } from '/@/stores/userInfo'; -import { Session } from '/@/utils/storage'; -import { Search } from '@element-plus/icons-vue'; -import { ElMessage } from 'element-plus'; -import type { FormInstance, FormRules } from 'element-plus'; -import { workApplyApi } from '/@/api/specialWorkSystem/workApply'; - -interface stateType { - form: Object; - workerList: Array<any>; - workTypeList: Array<any>; - workLevelList: Array<any>; - otherWorkList: Array<any>; -} -export default defineComponent({ - name: 'workTicket', - components: {}, - setup() { - const userInfo = useUserInfo(); - const { userInfos } = storeToRefs(userInfo); - const state = reactive<stateType>({ - form: { - operatorUids: [], - workType: 1, - workLevel: null, - workContent: '', - workLocation: '', - workDetail: { - hotMethod: '', - otherSpecialWork: [] - }, - workTimeLine: [], - expStartTime: '', - expEndTime: '' - }, - workerList: [ - { - label: '张三', - value: 53 - }, - { - label: '李四', - value: 54 - }, - { - label: '测试一', - value: 55 - }, - { - label: '测试二', - value: 56 - } - ], - workTypeList: [ - { - label: '类型一', - value: 1 - }, - { - label: '类型二', - value: 2 - } - ], - workLevelList: [ - { - label: '一级动火作业', - value: 1 - }, - { - label: '二级动火作业', - value: 2 - }, - { - label: '特级动火作业', - value: 3 - } - ], - otherWorkList: [ - { - label: '动火作业', - value: 1 - }, - { - label: '受限空间作业', - value: 2 - }, - { - label: '吊装作业', - value: 3 - }, - { - label: '动土作业', - value: 4 - }, - { - label: '断路作业', - value: 5 - }, - { - label: '高处作业', - value: 6 - }, - { - label: '临时用电作业', - value: 7 - }, - { - label: '盲板抽堵作业', - value: 8 - } - ] - }); - const ruleFormRef = ref<FormInstance>(); - const applyRules = reactive<FormRules>({ - operatorUids: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], - workType: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], - workLevel: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], - workContent: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], - workLocation: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], - workTimeLine: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], - 'workDetail.hotMethod': [{ required: true, message: '该内容不能为空', trigger: 'blur' }], - 'workDetail.otherSpecialWork': [{ required: true, message: '该内容不能为空', trigger: 'blur' }] - }); - const submitForm = async (formEl: FormInstance | undefined) => { - if (!formEl) return; - await formEl.validate(async (valid, fields) => { - if (valid) { - state.form.expStartTime = JSON.parse(JSON.stringify(state.form.workTimeLine))[0]; - state.form.expEndTime = JSON.parse(JSON.stringify(state.form.workTimeLine))[1]; - let { workTimeLine, ...data } = JSON.parse(JSON.stringify(state.form)); - data.workDetail.otherSpecialWork = data.workDetail.otherSpecialWork.join(','); - console.log(data, 'data'); - const res = await workApplyApi().postFireApply(data); - if (res.data.code === '200') { - ElMessage({ - type: 'success', - message: '提交成功!' - }); - formEl.resetFields(); - } else { - ElMessage({ - type: 'warning', - message: res.data.msg - }); - } - } else { - console.log('error submit!', fields); - } - }); - }; - // 折线图 - const renderMenu = async (value: string) => { - Session.set('projectId', value); - userInfos.value.projectId = value; - await initBackEndControlRoutes(); - }; - - return { - renderMenu, - Search, - ruleFormRef, - applyRules, - submitForm, - ...toRefs(state) - }; - } -}); -</script> - -<style scoped lang="scss"> -.home-container { - height: 100%; - overflow: hidden; - position: relative; - .homeCard { - width: 100%; - padding: 20px; - box-sizing: border-box; - background: #fff; - border-radius: 4px; - margin-bottom: 20px; - } - .applyBtn { - width: 100%; - background: #fff; - height: 80px; - z-index: 5; - box-shadow: 0 -3px 8px rgba(150, 150, 150, 0.1); - display: flex; - align-items: center; - justify-content: center; - } - .el-row { - margin-bottom: 20px; - } - .el-row:last-child { - margin-bottom: 0; - } - .el-input { - width: 100% !important; - } - .el-date-editor::v-deep { - width: 100%; - } - .el-select { - width: 100%; - } - .el-cascader { - width: 100% !important; - } -} -</style> diff --git a/src/views/specialWorkSystem/workBasicManage/certificateFilterSetting/index.vue b/src/views/specialWorkSystem/workBasicManage/certificateFilterSetting/index.vue deleted file mode 100644 index 5d47070..0000000 --- a/src/views/specialWorkSystem/workBasicManage/certificateFilterSetting/index.vue +++ /dev/null @@ -1,306 +0,0 @@ -<template> - <div class="home-container"> - <div style="height: 100%"> - <el-row class="homeCard"> - <el-col :span="8"> - <div class="grid-content topInfo"> - <el-select v-model="searchType" placeholder="请选择作业类型" style="width: 100%"> - <el-option label="临时用电" value="临时用电" /> - <el-option label="设备检修" value="设备检修" /> - </el-select> - <el-button type="primary">查询</el-button> - <el-button plain>重置</el-button> - </div> - </el-col> - </el-row> - <div class="homeCard"> - <div class="main-card"> - <el-row class="cardTop"> - <el-col :span="12" class="mainCardBtn"> - <el-button type="primary" :icon="Plus" size="default" @click="dialogAddRecord=true">新增</el-button> -<!-- <el-button type="warning" :icon="Edit" size="default" plain>修改</el-button>--> - <el-button type="danger" :icon="Delete" size="default" plain>删除</el-button> - </el-col> - <el-button type="primary" :icon="Refresh" size="default"/> - </el-row> - <el-table - ref="multipleTableRef" - :data="tableData" - style="width: 100%" - height="calc(100% - 100px)" - :header-cell-style="{background: '#fafafa'}" - @selection-change="handleSelectionChange" - > - <el-table-column type="selection" width="55" /> - <el-table-column property="certificate" label="证书名称" /> - <el-table-column property="jobType" label="作业类型" sortable/> - <el-table-column fixed="right" label="操作" align="center" width="250"> - <template #default="scope"> - <el-button link type="primary" size="small" :icon="View" @click="viewRecord(scope.row)">查看</el-button> - <el-button link type="primary" size="small" :icon="Edit" @click="editRecord(scope.$index ,scope.row)">修改</el-button> - <el-button link type="danger" size="small" :icon="Delete" @click="deleteRecord(scope.$index)">删除</el-button> - </template> - </el-table-column> - </el-table> - <div class="pageBtn"> - <el-pagination - v-model:currentPage="currentPage" - v-model:page-size="pageSize" - :page-sizes="[10, 15]" - small=false - background - layout="total, sizes, prev, pager, next, jumper" - :total="100" - @size-change="handleSizeChange" - @current-change="handleCurrentChange" - /> - </div> - </div> - </div> - </div> - <el-dialog v-model="dialogDetails" title="证书过滤"> - <el-form :model="details" label-width="120px"> - <el-form-item label="证书名称"> - <el-input - v-model="details.certificate" - readonly - /> - </el-form-item> - <el-form-item label="作业类型"> - <el-input - v-model="details.jobType" - readonly - /> - </el-form-item> - <el-form-item> - <el-button type="primary" @click="dialogDetails = false" size="default">确认</el-button> - </el-form-item> - </el-form> - </el-dialog> - <el-dialog v-model="dialogAddRecord" title="证书过滤编辑" @close="closeAdd"> - <el-form :model="addRecord" label-width="120px" ref="addRef" :rules="addRules"> - <el-form-item label="证书名称" prop="certificate"> - <el-input - v-model="addRecord.certificate" - placeholder="请选择工种" - > - <template #append> - <el-button :icon="Search"/> - </template> - </el-input> - </el-form-item> - <el-form-item label="作业类型" prop="jobType"> - <el-select v-model="addRecord.jobType" placeholder="请选择"> - <el-option label="临时用电" value="临时用电" /> - <el-option label="设备检修" value="设备检修" /> - </el-select> - </el-form-item> - <el-form-item> - <el-button type="warning" @click="dialogAddRecord = false" size="default" plain>取消</el-button> - <el-button type="primary" @click="confirmAddRecord(addRef)" size="default">确认</el-button> - </el-form-item> - </el-form> - </el-dialog> - <el-dialog v-model="deleteDialog" title="提示" width="30%" center @close="indexClear"> - <span>您确定要删除该条记录吗?</span> - <template #footer> - <span class="dialog-footer"> - <el-button @click="deleteDialog = false" size="default">取消</el-button> - <el-button type="primary" @click="conFirmDelete" size="default">确认</el-button> - </span> - </template> - </el-dialog> - </div> -</template> - -<script lang="ts" setup> - import { toRefs, reactive, ref } from 'vue'; - import { storeToRefs } from 'pinia'; - import { initBackEndControlRoutes } from '/@/router/backEnd'; - import {useUserInfo} from "/@/stores/userInfo"; - import { Session } from '/@/utils/storage'; - import { Edit, View, Plus, Delete, Refresh, Search, Download } from '@element-plus/icons-vue' - import { ElTable } from 'element-plus' - import { FormInstance, FormRules } from 'element-plus' - let global: any = { - homeChartOne: null, - homeChartTwo: null, - homeCharThree: null, - dispose: [null, '', undefined], - }; - - interface stateType { - homeOne: Array <type> - } - interface type { - - } - const userInfo = useUserInfo() - const { userInfos } = storeToRefs(userInfo); - const state = reactive<stateType>({}); - const currentPage = ref(1) - const pageSize = ref(10) - const searchType=ref('') - const chosenIndex = ref(-1) - const handleSizeChange = (val: number) => { - console.log(`${val} items per page`) - } - const handleCurrentChange = (val: number) => { - console.log(`current page: ${val}`) - } - const tableData = reactive( - [ - { - certificate: '登高作业证', - jobType: '高处作业' - }, - { - certificate: '焊接与热切割作业', - jobType: '动火作业' - }, - { - certificate: '低压电工证', - jobType: '临时用电' - }, - { - certificate: '化工自动化控制仪表作业', - jobType: '设备检修' - } - ] - ) - const addRef = ref<FormInstance>() - const addRules = reactive<FormRules>({ - certificate:[{required: true, message: '该内容不能为空',trigger:'blur'}], - jobType:[{required: true, message: '该内容不能为空',trigger:'blur'}] - }) - const dialogDetails = ref(false) - const dialogAddRecord = ref(false) - const deleteDialog = ref(false) - const addRecord = ref({}) - const details = ref({}) - const viewRecord = (row) =>{ - details.value = JSON.parse(JSON.stringify(row)) - dialogDetails.value = true - } - const deleteRecord = (index) =>{ - chosenIndex.value = index - deleteDialog.value = true - } - const conFirmDelete = ()=> { - tableData.splice(chosenIndex.value,1) - deleteDialog.value = false - } - const confirmAddRecord = async (formEl: FormInstance | undefined) =>{ - if (!formEl) return - await formEl.validate((valid, fields) => { - if (valid) { - if(chosenIndex.value == -1){ - tableData.unshift(addRecord.value) - }else{ - tableData[chosenIndex.value] = addRecord.value - } - dialogAddRecord.value =false - } else { - console.log('error submit!', fields) - } - }) - - } - const closeAdd =()=>{ - addRecord.value={} - chosenIndex.value = -1 - } - const indexClear = ()=>{ - chosenIndex.value = -1 - } - const editRecord =(index, row)=>{ - dialogAddRecord.value = true - chosenIndex.value = index - addRecord.value = JSON.parse(JSON.stringify(row)) - } - // 折线图 - const renderMenu = async (value: string) => { - Session.set('projectId',value) - userInfos.value.projectId = value - await initBackEndControlRoutes(); - }; -</script> - -<style scoped lang="scss"> - $homeNavLengh: 8; - .home-container { - height: calc(100vh - 144px); - box-sizing: border-box; - overflow: hidden; - .homeCard{ - width: 100%; - padding: 20px; - box-sizing: border-box; - background: #fff; - border-radius: 4px; - - .main-card{ - width: 100%; - height: 100%; - .cardTop{ - display: flex; - align-items: center; - justify-content: space-between; - margin-bottom: 20px; - .mainCardBtn{ - margin: 0; - } - } - .pageBtn{ - height: 60px; - display: flex; - align-items: center; - justify-content: right; - - .demo-pagination-block + .demo-pagination-block { - margin-top: 10px; - } - .demo-pagination-block .demonstration { - margin-bottom: 16px; - } - } - } - &:last-of-type{ - height: calc(100% - 100px); - } - } - .el-row{ - display: flex; - align-items: center; - margin-bottom: 20px; - &:last-child { - margin-bottom: 0; - } - .grid-content{ - align-items: center; - min-height: 36px; - } - - .topInfo { - display: flex; - align-items: center; - font-size: 16px; - font-weight: bold; - - &>div{ - white-space: nowrap; - margin-right: 20px; - } - } - } - } - .el-input{ - width: 100% !important; - } - .el-date-editor::v-deep{ - width: 100%; - } - .el-select{ - width: 100%; - } -</style> diff --git a/src/views/specialWorkSystem/workBasicManage/personalProtectDevices/index.vue b/src/views/specialWorkSystem/workBasicManage/personalProtectDevices/index.vue deleted file mode 100644 index 29c6088..0000000 --- a/src/views/specialWorkSystem/workBasicManage/personalProtectDevices/index.vue +++ /dev/null @@ -1,286 +0,0 @@ -<template> - <div class="home-container"> - <div style="height: 100%"> - <el-row class="homeCard"> - <el-col :span="8"> - <div class="grid-content topInfo"> - <el-input v-model="deviceName" placeholder="防护用品名称"></el-input> - <el-button type="primary">查询</el-button> - <el-button plain>重置</el-button> - </div> - </el-col> - </el-row> - <div class="homeCard"> - <div class="main-card"> - <el-row class="cardTop"> - <el-col :span="12" class="mainCardBtn"> - <el-button type="primary" :icon="Plus" size="default" @click="dialogAddRecord=true">新增</el-button> -<!-- <el-button type="warning" :icon="Edit" size="default" plain>修改</el-button>--> - <el-button type="danger" :icon="Delete" size="default" plain>删除</el-button> - </el-col> - <el-button type="primary" :icon="Refresh" size="default"/> - </el-row> - <el-table - ref="multipleTableRef" - :data="tableData" - style="width: 100%" - height="calc(100% - 100px)" - :header-cell-style="{background: '#fafafa'}" - @selection-change="handleSelectionChange" - > - <el-table-column type="selection" width="55" /> - <el-table-column property="device" label="防护用品名称" /> - <el-table-column fixed="right" label="操作" align="center" width="250"> - <template #default="scope"> - <el-button link type="primary" size="small" :icon="View" @click="viewRecord(scope.row)">查看</el-button> - <el-button link type="primary" size="small" :icon="Edit" @click="editRecord(scope.$index ,scope.row)">修改</el-button> - <el-button link type="danger" size="small" :icon="Delete" @click="deleteRecord(scope.$index)">删除</el-button> - </template> - </el-table-column> - </el-table> - <div class="pageBtn"> - <el-pagination - v-model:currentPage="currentPage" - v-model:page-size="pageSize" - :page-sizes="[10, 15]" - small=false - background - layout="total, sizes, prev, pager, next, jumper" - :total="100" - @size-change="handleSizeChange" - @current-change="handleCurrentChange" - /> - </div> - </div> - </div> - </div> - <el-dialog v-model="dialogDetails" title="防护用品"> - <el-form :model="details" label-width="120px"> - <el-form-item label="防护用品名称"> - <el-input - v-model="details.device" - readonly - /> - </el-form-item> - <el-form-item> - <el-button type="primary" @click="dialogDetails = false" size="default">确认</el-button> - </el-form-item> - </el-form> - </el-dialog> - <el-dialog v-model="dialogAddRecord" title="防护用品编辑" @close="closeAdd"> - <el-form :model="addRecord" label-width="120px" ref="addRef" :rules="addRules"> - <el-form-item label="防护用品名称" prop="device"> - <el-input - v-model="addRecord.device" - placeholder="请填写防护用品名称" - > - <template #append> - <el-button :icon="Search"/> - </template> - </el-input> - </el-form-item> - <el-form-item> - <el-button type="warning" @click="dialogAddRecord = false" size="default" plain>取消</el-button> - <el-button type="primary" @click="confirmAddRecord(addRef)" size="default">确认</el-button> - </el-form-item> - </el-form> - </el-dialog> - <el-dialog v-model="deleteDialog" title="提示" width="30%" center @close="indexClear"> - <span>您确定要删除该条记录吗?</span> - <template #footer> - <span class="dialog-footer"> - <el-button @click="deleteDialog = false" size="default">取消</el-button> - <el-button type="primary" @click="conFirmDelete" size="default">确认</el-button> - </span> - </template> - </el-dialog> - </div> -</template> - -<script lang="ts" setup> - import { toRefs, reactive, ref } from 'vue'; - import { storeToRefs } from 'pinia'; - import { initBackEndControlRoutes } from '/@/router/backEnd'; - import {useUserInfo} from "/@/stores/userInfo"; - import { Session } from '/@/utils/storage'; - import { Edit, View, Plus, Delete, Refresh, Search, Download } from '@element-plus/icons-vue' - import { ElTable } from 'element-plus' - import { FormInstance, FormRules } from 'element-plus' - let global: any = { - homeChartOne: null, - homeChartTwo: null, - homeCharThree: null, - dispose: [null, '', undefined], - }; - - interface stateType { - homeOne: Array <type> - } - interface type { - - } - const userInfo = useUserInfo() - const { userInfos } = storeToRefs(userInfo); - const state = reactive<stateType>({}); - const currentPage = ref(1) - const pageSize = ref(10) - const searchType=ref('') - const chosenIndex = ref(-1) - const deviceName = ref('') - const handleSizeChange = (val: number) => { - console.log(`${val} items per page`) - } - const handleCurrentChange = (val: number) => { - console.log(`current page: ${val}`) - } - const tableData = reactive( - [ - { - device: '送风式长管式呼吸器' - }, - { - device: '防静电工作鞋' - }, - { - device: '隔绝式呼吸器' - }, - { - device: '防爆工具' - } - ] - ) - const addRef = ref<FormInstance>() - const addRules = reactive<FormRules>({ - device:[{required: true, message: '该内容不能为空',trigger:'blur'}] - }) - const dialogDetails = ref(false) - const dialogAddRecord = ref(false) - const deleteDialog = ref(false) - const addRecord = ref({}) - const details = ref({}) - const viewRecord = (row) =>{ - details.value = JSON.parse(JSON.stringify(row)) - dialogDetails.value = true - } - const deleteRecord = (index) =>{ - chosenIndex.value = index - deleteDialog.value = true - } - const conFirmDelete = ()=> { - tableData.splice(chosenIndex.value,1) - deleteDialog.value = false - } - const confirmAddRecord = async (formEl: FormInstance | undefined) =>{ - if (!formEl) return - await formEl.validate((valid, fields) => { - if (valid) { - if(chosenIndex.value == -1){ - tableData.unshift(addRecord.value) - }else{ - tableData[chosenIndex.value] = addRecord.value - } - dialogAddRecord.value =false - } else { - console.log('error submit!', fields) - } - }) - - } - const closeAdd =()=>{ - addRecord.value={} - chosenIndex.value = -1 - } - const indexClear = ()=>{ - chosenIndex.value = -1 - } - const editRecord =(index, row)=>{ - dialogAddRecord.value = true - chosenIndex.value = index - addRecord.value = JSON.parse(JSON.stringify(row)) - } - // 折线图 - const renderMenu = async (value: string) => { - Session.set('projectId',value) - userInfos.value.projectId = value - await initBackEndControlRoutes(); - }; -</script> - -<style scoped lang="scss"> - $homeNavLengh: 8; - .home-container { - height: calc(100vh - 144px); - box-sizing: border-box; - overflow: hidden; - .homeCard{ - width: 100%; - padding: 20px; - box-sizing: border-box; - background: #fff; - border-radius: 4px; - - .main-card{ - width: 100%; - height: 100%; - .cardTop{ - display: flex; - align-items: center; - justify-content: space-between; - margin-bottom: 20px; - .mainCardBtn{ - margin: 0; - } - } - .pageBtn{ - height: 60px; - display: flex; - align-items: center; - justify-content: right; - - .demo-pagination-block + .demo-pagination-block { - margin-top: 10px; - } - .demo-pagination-block .demonstration { - margin-bottom: 16px; - } - } - } - &:last-of-type{ - height: calc(100% - 100px); - } - } - .el-row{ - display: flex; - align-items: center; - margin-bottom: 20px; - &:last-child { - margin-bottom: 0; - } - .grid-content{ - align-items: center; - min-height: 36px; - } - - .topInfo { - display: flex; - align-items: center; - font-size: 16px; - font-weight: bold; - - &>div{ - white-space: nowrap; - margin-right: 20px; - } - } - } - } - .el-input{ - width: 100% !important; - } - .el-date-editor::v-deep{ - width: 100%; - } - .el-select{ - width: 100%; - } -</style> diff --git a/src/views/specialWorkSystem/workBasicManage/safeMeasuresManage/index.vue b/src/views/specialWorkSystem/workBasicManage/safeMeasuresManage/index.vue deleted file mode 100644 index a5abd21..0000000 --- a/src/views/specialWorkSystem/workBasicManage/safeMeasuresManage/index.vue +++ /dev/null @@ -1,415 +0,0 @@ -<template> - <div class="home-container"> - <div style="height: 100%"> - <el-row class="homeCard"> - <el-col :span="16"> - <div class="grid-content topInfo"> - <el-select v-model="searchType" placeholder="请选择作业类型" style="width: 100%"> - <el-option label="临时用电" value="临时用电"/> - <el-option label="设备检修" value="设备检修"/> - </el-select> - <el-select v-model="checkType" placeholder="请选择检查类型" style="width: 100%"> - <el-option label="临时用电" value="临时用电"/> - <el-option label="设备检修" value="设备检修"/> - </el-select> - <el-input v-model="searchWord" placeholder="输入检查内容"></el-input> - <el-button type="primary">查询</el-button> - <el-button plain>重置</el-button> - </div> - </el-col> - </el-row> - <div class="homeCard"> - <div class="main-card"> - <el-row class="cardTop"> - <el-col :span="12" class="mainCardBtn"> - <el-button type="primary" :icon="Plus" size="default" @click="dialogAddRecord=true">新增</el-button> -<!-- <el-button type="warning" :icon="Edit" size="default" plain>修改</el-button>--> - <el-button type="danger" :icon="Delete" size="default" plain>删除</el-button> - </el-col> - <el-button type="primary" :icon="Refresh" size="default"/> - </el-row> - <el-table - ref="multipleTableRef" - :data="tableData" - style="width: 100%" - height="calc(100% - 100px)" - :header-cell-style="{background: '#fafafa'}" - @selection-change="handleSelectionChange" - > - <el-table-column type="selection" width="55" /> - <el-table-column property="jobType" label="作业类型" width="200" sortable/> - <el-table-column property="type" label="类型" width="180" /> - <el-table-column property="checkType" label="检查类型"/> - <el-table-column property="checkContent" label="检查内容" sortable/> - <el-table-column property="judgement" label="参考判断"/> - <el-table-column property="sort" label="排序" sortable/> - <el-table-column property="remark" label="备注"/> - <el-table-column property="updater" label="更新人"/> - <el-table-column property="updateTime" label="更新时间" sortable/> - <el-table-column fixed="right" label="操作" align="center" width="250"> - <template #default="scope"> - <el-button link type="primary" size="small" :icon="View" @click="viewRecord(scope.row)">查看</el-button> - <el-button link type="primary" size="small" :icon="Edit" @click="editRecord(scope.$index ,scope.row)">修改</el-button> - <el-button link type="danger" size="small" :icon="Delete" @click="deleteRecord(scope.$index)">删除</el-button> - </template> - </el-table-column> - </el-table> - <div class="pageBtn"> - <el-pagination - v-model:currentPage="currentPage" - v-model:page-size="pageSize" - :page-sizes="[10, 15]" - small=false - background - layout="total, sizes, prev, pager, next, jumper" - :total="100" - @size-change="handleSizeChange" - @current-change="handleCurrentChange" - /> - </div> - </div> - </div> - </div> - <el-dialog v-model="dialogDetails" title="安全措施"> - <el-form :model="details" label-width="120px"> - <el-form-item label="作业类型"> - <el-input - v-model="details.jobType" - readonly - /> - </el-form-item> - <el-form-item label="类型"> - <el-input - v-model="details.type" - readonly - /> - </el-form-item> - <el-form-item label="检查类型"> - <el-input - v-model="details.checkType" - readonly - /> - </el-form-item> - <el-form-item label="检查内容"> - <el-input - v-model="details.checkContent" - type="textarea" - readonly - /> - </el-form-item> - <el-form-item label="参考判断"> - <el-input v-model="details.judgement" readonly/> - </el-form-item> - <el-form-item label="排序"> - <el-input v-model="details.sort" readonly/> - </el-form-item> - <el-form-item label="备注"> - <el-input v-model="details.remark" type="textarea" readonly/> - </el-form-item> - <el-form-item label="更新人"> - <el-input v-model="details.updater" readonly/> - </el-form-item> - <el-form-item label="更新时间"> - <el-input v-model="details.updateTime" readonly/> - </el-form-item> - <el-form-item> - <el-button type="primary" @click="dialogDetails = false" size="default">确认</el-button> - </el-form-item> - </el-form> - </el-dialog> - <el-dialog v-model="dialogAddRecord" title="安全措施编辑" @close="closeAdd"> - <el-form :model="addRecord" label-width="120px" ref="addRef" :rules="addRules"> - <el-form-item label="作业类型" prop="jobType"> - <el-select v-model="addRecord.jobType"> - <el-option label="动火作业" value="动火作业" /> - <el-option label="动土作业" value="动土作业" /> - </el-select> - </el-form-item> - <el-form-item label="类型" prop="type"> - <el-select v-model="addRecord.type"> - <el-option label="施工单位负责检查项" value="施工单位负责检查项" /> - <el-option label="施工单位不负责检查项" value="施工单位不负责检查项" /> - </el-select> - </el-form-item> - <el-form-item label="检查类型" prop="checkType"> - <el-select v-model="addRecord.checkType"> - <el-option label="判断" value="判断" /> - <el-option label="填空" value="填空" /> - </el-select> - </el-form-item> - <el-form-item label="检查内容" prop="checkContent"> - <el-input - v-model="addRecord.checkContent" - type="textarea" - > - </el-input> - </el-form-item> - <el-form-item label="参考判断" prop="judgement"> - <el-radio-group v-model="addRecord.judgement"> - <el-radio label="Y" size="large">Y</el-radio> - <el-radio label="N" size="large">N</el-radio> - </el-radio-group> - </el-form-item> - <el-form-item label="排序值" prop="sort"> - <el-input-number v-model="addRecord.sort" :min="1" :max="100" @change="handleChange" /> - </el-form-item> - <el-form-item label="备注"> - <el-input v-model="addRecord.remark" type="textarea"/> - </el-form-item> - <el-form-item> - <el-button type="warning" @click="dialogAddRecord = false" size="default" plain>取消</el-button> - <el-button type="primary" @click="confirmAddRecord(addRef)" size="default">确认</el-button> - </el-form-item> - </el-form> - </el-dialog> - <el-dialog v-model="deleteDialog" title="提示" width="30%" center @close="indexClear"> - <span>您确定要删除该条记录吗?</span> - <template #footer> - <span class="dialog-footer"> - <el-button @click="deleteDialog = false" size="default">取消</el-button> - <el-button type="primary" @click="conFirmDelete" size="default">确认</el-button> - </span> - </template> - </el-dialog> - </div> -</template> - -<script lang="ts" setup> - import { toRefs, reactive, ref } from 'vue'; - import { storeToRefs } from 'pinia'; - import { initBackEndControlRoutes } from '/@/router/backEnd'; - import {useUserInfo} from "/@/stores/userInfo"; - import { Session } from '/@/utils/storage'; - import { Edit, View, Plus, Delete, Refresh, Search, Upload } from '@element-plus/icons-vue' - import { ElTable } from 'element-plus' - import { FormInstance, FormRules } from 'element-plus' - let global: any = { - homeChartOne: null, - homeChartTwo: null, - homeCharThree: null, - dispose: [null, '', undefined], - }; - - interface stateType { - homeOne: Array <type> - } - interface type { - - } - // export default defineComponent({ - // name: 'workCheckinRecord', - // setup() { - const userInfo = useUserInfo() - const { userInfos } = storeToRefs(userInfo); - const state = reactive<stateType>({}); - const currentPage = ref(1) - const pageSize = ref(10) - const chosenIndex = ref(-1) - const handleSizeChange = (val: number) => { - console.log(`${val} items per page`) - } - const handleCurrentChange = (val: number) => { - console.log(`current page: ${val}`) - } - const tableData = reactive( - [ - { - jobType: '动火作业', - type: '施工单位负责检查项', - checkType: '判断', - checkContent: '断开与动火设备相连接的所有管线', - judgement: 'Y', - sort: '2', - remark: '666', - updater: 'admin', - updateTime: '2021-04-22 15:21:31' - }, - { - jobType: '动火作业', - type: '施工单位负责检查项', - checkType: '填空', - checkContent: '动火点周围易燃物已清除', - judgement: 'N', - sort: '4', - remark: '666', - updater: 'admin', - updateTime: '2021-04-22 15:21:31' - } - ] - ) - const addRef = ref<FormInstance>() - const timeForm = { - hour12: false, - year: 'numeric', - month: '2-digit', - day: '2-digit', - hour: '2-digit', - minute: '2-digit', - second: '2-digit' - } - const addRules = reactive<FormRules>({ - jobType:[{required: true, message: '该内容不能为空',trigger:'blur'}], - type:[{required: true, message: '该内容不能为空',trigger:'blur'}], - checkType:[{required: true, message: '该内容不能为空',trigger:'blur'}], - checkContent:[{required: true, message: '该内容不能为空',trigger:'blur'}], - judgement:[{required: true, message: '该内容不能为空',trigger:'blur'}], - sort:[{required: true, message: '该内容不能为空',trigger:'blur'}] - }) - const dialogDetails = ref(false) - const dialogAddRecord = ref(false) - const deleteDialog = ref(false) - const addRecord = ref({}) - const details = ref({}) - const viewRecord = (row) =>{ - details.value = JSON.parse(JSON.stringify(row)) - dialogDetails.value = true - } - const deleteRecord = (index) =>{ - chosenIndex.value = index - deleteDialog.value = true - } - const conFirmDelete = ()=> { - tableData.splice(chosenIndex.value,1) - deleteDialog.value = false - } - const confirmAddRecord = async (formEl: FormInstance | undefined) =>{ - if (!formEl) return - await formEl.validate((valid, fields) => { - if (valid) { - if(chosenIndex.value == -1){ - addRecord.value.updateTime = new Date().toLocaleString('zh', timeForm).replace(/\//g,'-') - tableData.unshift(addRecord.value) - }else{ - addRecord.value.updateTime = new Date().toLocaleString('zh', timeForm).replace(/\//g,'-') - tableData[chosenIndex.value] = addRecord.value - } - dialogAddRecord.value =false - } else { - console.log('error submit!', fields) - } - }) - - } - const closeAdd =()=>{ - addRecord.value={} - chosenIndex.value = -1 - } - const indexClear = ()=>{ - chosenIndex.value = -1 - } - const editRecord =(index, row)=>{ - dialogAddRecord.value = true - chosenIndex.value = index - addRecord.value = JSON.parse(JSON.stringify(row)) - } - // 折线图 - const renderMenu = async (value: string) => { - Session.set('projectId',value) - userInfos.value.projectId = value - await initBackEndControlRoutes(); - }; - // return { - // renderMenu, - // multipleTableRef, - // tableData, - // currentPage, - // pageSize, - // dialogDetails, - // details, - // deleteDialog, - // dialogAddRecord, - // viewRecord, - // deleteRecord, - // handleSizeChange, - // handleCurrentChange, - // Plus, - // Edit, - // Delete, - // Search, - // Download, - // handleSelectionChange, - // Refresh, - // ...toRefs(state), - // }; - // }, - // }); -</script> - -<style scoped lang="scss"> - $homeNavLengh: 8; - .home-container { - height: calc(100vh - 144px); - box-sizing: border-box; - overflow: hidden; - .homeCard{ - width: 100%; - padding: 20px; - box-sizing: border-box; - background: #fff; - border-radius: 4px; - - .main-card{ - width: 100%; - height: 100%; - .cardTop{ - display: flex; - align-items: center; - justify-content: space-between; - margin-bottom: 20px; - .mainCardBtn{ - margin: 0; - } - } - .pageBtn{ - height: 60px; - display: flex; - align-items: center; - justify-content: right; - - .demo-pagination-block + .demo-pagination-block { - margin-top: 10px; - } - .demo-pagination-block .demonstration { - margin-bottom: 16px; - } - } - } - &:last-of-type{ - height: calc(100% - 100px); - } - } - .el-row{ - display: flex; - align-items: center; - margin-bottom: 20px; - &:last-child { - margin-bottom: 0; - } - .grid-content{ - align-items: center; - min-height: 36px; - } - - .topInfo { - display: flex; - align-items: center; - font-size: 16px; - font-weight: bold; - - &>div{ - white-space: nowrap; - margin-right: 20px; - } - } - } - } - .el-input{ - width: 100% !important; - } - .el-date-editor::v-deep{ - width: 100%; - } - .el-select{ - width: 100%; - } -</style> diff --git a/src/views/specialWorkSystem/workBasicManage/workTypeSetting/index.vue b/src/views/specialWorkSystem/workBasicManage/workTypeSetting/index.vue deleted file mode 100644 index 2acbc5e..0000000 --- a/src/views/specialWorkSystem/workBasicManage/workTypeSetting/index.vue +++ /dev/null @@ -1,357 +0,0 @@ -<template> - <div class="home-container"> - <div style="height: 100%"> - <el-row class="homeCard"> - <el-col :span="16"> - <div class="grid-content topInfo"> - <el-select v-model="searchType" placeholder="请选择作业类型" style="width: 100%"> - <el-option label="临时用电" value="临时用电" /> - <el-option label="设备检修" value="设备检修" /> - </el-select> - <el-input v-model="workTypeId" placeholder="工种编号"></el-input> - <el-input v-model="workType" placeholder="工种"></el-input> - <el-button type="primary">查询</el-button> - <el-button plain>重置</el-button> - </div> - </el-col> - </el-row> - <div class="homeCard"> - <div class="main-card"> - <el-row class="cardTop"> - <el-col :span="12" class="mainCardBtn"> - <el-button type="primary" :icon="Plus" size="default" @click="dialogAddRecord=true">新增</el-button> -<!-- <el-button type="warning" :icon="Edit" size="default" plain>修改</el-button>--> - <el-button type="danger" :icon="Delete" size="default" plain>删除</el-button> - </el-col> - <el-button type="primary" :icon="Refresh" size="default"/> - </el-row> - <el-table - ref="multipleTableRef" - :data="tableData" - style="width: 100%" - height="calc(100% - 100px)" - :header-cell-style="{background: '#fafafa'}" - @selection-change="handleSelectionChange" - > - <el-table-column type="selection" width="55" /> - <el-table-column property="jobType" label="作业类型" sortable/> - <el-table-column property="workId" label="工种编号" /> - <el-table-column property="workType" label="工种"/> - <el-table-column fixed="right" label="操作" align="center" width="250"> - <template #default="scope"> - <el-button link type="primary" size="small" :icon="View" @click="viewRecord(scope.row)">查看</el-button> - <el-button link type="primary" size="small" :icon="Edit" @click="editRecord(scope.$index ,scope.row)">修改</el-button> - <el-button link type="danger" size="small" :icon="Delete" @click="deleteRecord(scope.$index)">删除</el-button> - </template> - </el-table-column> - </el-table> - <div class="pageBtn"> - <el-pagination - v-model:currentPage="currentPage" - v-model:page-size="pageSize" - :page-sizes="[10, 15]" - small=false - background - layout="total, sizes, prev, pager, next, jumper" - :total="100" - @size-change="handleSizeChange" - @current-change="handleCurrentChange" - /> - </div> - </div> - </div> - </div> - <el-dialog v-model="dialogDetails" title="作业工种"> - <el-form :model="details" label-width="120px"> - <el-form-item label="作业类型"> - <el-input - v-model="details.jobType" - class="input-with-select" - readonly - /> - </el-form-item> - <el-form-item label="工种编号"> - <el-input - v-model="details.workId" - class="input-with-select" - readonly - /> - </el-form-item> - <el-form-item label="工种"> - <el-input - v-model="details.workType" - class="input-with-select" - readonly - /> - </el-form-item> - <el-form-item> - <el-button type="primary" @click="dialogDetails = false" size="default">确认</el-button> - </el-form-item> - </el-form> - </el-dialog> - <el-dialog v-model="dialogAddRecord" title="作业工种编辑" @close="closeAdd"> - <el-form :model="addRecord" label-width="120px" ref="addRef" :rules="addRules"> - <el-form-item label="作业类型" prop="jobType"> - <el-select v-model="addRecord.jobType" placeholder="请选择"> - <el-option label="临时用电" value="临时用电" /> - <el-option label="设备检修" value="设备检修" /> - </el-select> - </el-form-item> - <el-form-item label="工种编号" prop="workId"> - <el-input - v-model="addRecord.workId" - placeholder="请填写工种编号" - > - </el-input> - </el-form-item> - <el-form-item label="工种" prop="workType"> - <el-input - v-model="addRecord.workType" - placeholder="请选择工种" - > - <template #append> - <el-button :icon="Search"/> - </template> - </el-input> - </el-form-item> - <el-form-item> - <el-button type="warning" @click="dialogAddRecord = false" size="default" plain>取消</el-button> - <el-button type="primary" @click="confirmAddRecord(addRef)" size="default">确认</el-button> - </el-form-item> - </el-form> - </el-dialog> - <el-dialog v-model="deleteDialog" title="提示" width="30%" center @close="indexClear"> - <span>您确定要删除该条记录吗?</span> - <template #footer> - <span class="dialog-footer"> - <el-button @click="deleteDialog = false" size="default">取消</el-button> - <el-button type="primary" @click="conFirmDelete" size="default">确认</el-button> - </span> - </template> - </el-dialog> - </div> -</template> - -<script lang="ts" setup> - import { toRefs, reactive, ref } from 'vue'; - import { storeToRefs } from 'pinia'; - import { initBackEndControlRoutes } from '/@/router/backEnd'; - import {useUserInfo} from "/@/stores/userInfo"; - import { Session } from '/@/utils/storage'; - import { Edit, View, Plus, Delete, Refresh, Search, Download } from '@element-plus/icons-vue' - import { ElTable } from 'element-plus' - import { FormInstance, FormRules } from 'element-plus' - let global: any = { - homeChartOne: null, - homeChartTwo: null, - homeCharThree: null, - dispose: [null, '', undefined], - }; - - interface stateType { - homeOne: Array <type> - } - interface type { - - } - // export default defineComponent({ - // name: 'workCheckinRecord', - // setup() { - const userInfo = useUserInfo() - const { userInfos } = storeToRefs(userInfo); - const state = reactive<stateType>({}); - const currentPage = ref(1) - const pageSize = ref(10) - const chosenIndex = ref(-1) - const handleSizeChange = (val: number) => { - console.log(`${val} items per page`) - } - const handleCurrentChange = (val: number) => { - console.log(`current page: ${val}`) - } - const tableData = reactive( - [ - { - jobType: '临时用电', - workId: 'LD', - workType: '临时用电作业' - }, - { - jobType: '设备检修', - workId: 'WX', - workType: '检维修作业' - }, - { - jobType: '受限空间', - workId: 'SX', - workType: '受限空间作业' - }, - { - jobType: '动火作业', - workId: 'DH', - workType: '焊接与热切割作业' - } - ] - ) - const addRef = ref<FormInstance>() - const addRules = reactive<FormRules>({ - jobType:[{required: true, message: '该内容不能为空',trigger:'blur'}], - workId:[{required: true, message: '该内容不能为空',trigger:'blur'}], - workType:[{required: true, message: '该内容不能为空',trigger:'blur'}] - }) - const dialogDetails = ref(false) - const dialogAddRecord = ref(false) - const deleteDialog = ref(false) - const addRecord = ref({}) - const details = ref({}) - const viewRecord = (row) =>{ - details.value = JSON.parse(JSON.stringify(row)) - dialogDetails.value = true - } - const deleteRecord = (index) =>{ - chosenIndex.value = index - deleteDialog.value = true - } - const conFirmDelete = ()=> { - tableData.splice(chosenIndex.value,1) - deleteDialog.value = false - } - const confirmAddRecord = async (formEl: FormInstance | undefined) =>{ - if (!formEl) return - await formEl.validate((valid, fields) => { - if (valid) { - if(chosenIndex.value == -1){ - tableData.unshift(addRecord.value) - }else{ - tableData[chosenIndex.value] = addRecord.value - } - dialogAddRecord.value =false - } else { - console.log('error submit!', fields) - } - }) - - } - const closeAdd =()=>{ - addRecord.value={} - chosenIndex.value = -1 - } - const indexClear = ()=>{ - chosenIndex.value = -1 - } - const editRecord =(index, row)=>{ - dialogAddRecord.value = true - chosenIndex.value = index - addRecord.value = JSON.parse(JSON.stringify(row)) - } - // 折线图 - const renderMenu = async (value: string) => { - Session.set('projectId',value) - userInfos.value.projectId = value - await initBackEndControlRoutes(); - }; - // return { - // renderMenu, - // multipleTableRef, - // tableData, - // currentPage, - // pageSize, - // dialogDetails, - // details, - // deleteDialog, - // dialogAddRecord, - // viewRecord, - // deleteRecord, - // handleSizeChange, - // handleCurrentChange, - // Plus, - // Edit, - // Delete, - // Search, - // Download, - // handleSelectionChange, - // Refresh, - // ...toRefs(state), - // }; - // }, - // }); -</script> - -<style scoped lang="scss"> - $homeNavLengh: 8; - .home-container { - height: calc(100vh - 144px); - box-sizing: border-box; - overflow: hidden; - .homeCard{ - width: 100%; - padding: 20px; - box-sizing: border-box; - background: #fff; - border-radius: 4px; - - .main-card{ - width: 100%; - height: 100%; - .cardTop{ - display: flex; - align-items: center; - justify-content: space-between; - margin-bottom: 20px; - .mainCardBtn{ - margin: 0; - } - } - .pageBtn{ - height: 60px; - display: flex; - align-items: center; - justify-content: right; - - .demo-pagination-block + .demo-pagination-block { - margin-top: 10px; - } - .demo-pagination-block .demonstration { - margin-bottom: 16px; - } - } - } - &:last-of-type{ - height: calc(100% - 100px); - } - } - .el-row{ - display: flex; - align-items: center; - margin-bottom: 20px; - &:last-child { - margin-bottom: 0; - } - .grid-content{ - align-items: center; - min-height: 36px; - } - - .topInfo { - display: flex; - align-items: center; - font-size: 16px; - font-weight: bold; - - &>div{ - white-space: nowrap; - margin-right: 20px; - } - } - } - } - .el-input{ - width: 100% !important; - } - .el-date-editor::v-deep{ - width: 100%; - } - .el-select{ - width: 100%; - } -</style> -- Gitblit v1.9.2