From ac680789d9e47d8a6508949146a18c56e1f112d0 Mon Sep 17 00:00:00 2001 From: shj <1790240199@qq.com> Date: 星期一, 04 七月 2022 09:14:12 +0800 Subject: [PATCH] 目标 --- src/components/DailogSearch/DailogSearch.vue | 15 ++ src/views/goalManagement/targetSettings/index.vue | 11 + src/views/goalManagement/targetEscalation/component/Dailog.vue | 46 +++++++++ src/views/goalManagement/targetEscalation/processForms.vue | 37 +++++++ src/views/goalManagement/targetEscalation/index.vue | 173 ++++++++++++++++++++++++++++++++++ 5 files changed, 277 insertions(+), 5 deletions(-) diff --git a/src/components/DailogSearch/DailogSearch.vue b/src/components/DailogSearch/DailogSearch.vue index 1ab9ca2..239a164 100644 --- a/src/components/DailogSearch/DailogSearch.vue +++ b/src/components/DailogSearch/DailogSearch.vue @@ -1,7 +1,7 @@ <template> <el-dialog v-model="dialogVisible" title="选择安全目标指标" width="50%" draggable> <el-row> - <el-col :span="20"> + <el-col :span="18"> <el-form ref="ruleFormRef" :model="ruleForm" status-icon> <el-row> <el-col :span="6"> @@ -43,7 +43,11 @@ @current-change="handleCurrentChange" /> </el-col> - <el-col :span="4"></el-col> + <el-col :span="6"> + <el-tag v-for="tag in dynamicTags" :key="tag" class="mx-1" style="margin:5px" closable :disable-transitions="false" @close="handleClose(tag)"> + {{ tag }} + </el-tag> + </el-col> </el-row> <template #footer> <span class="dialog-footer"> @@ -97,6 +101,11 @@ const handleCurrentChange = (val: number) => { console.log(`current page: ${val}`); }; + // 右方点击添加后显示标签 + const dynamicTags = ref(['Tag 1', 'Tag 2', 'Tag 3']); + const handleClose = (tag: string) => { + dynamicTags.value.splice(dynamicTags.value.indexOf(tag), 1); + }; return { dialogVisible, openDailog, @@ -105,6 +114,8 @@ pageSize4, handleSizeChange, handleCurrentChange, + dynamicTags, + handleClose, Delete, }; }, diff --git a/src/views/goalManagement/targetEscalation/component/Dailog.vue b/src/views/goalManagement/targetEscalation/component/Dailog.vue new file mode 100644 index 0000000..db1fa1a --- /dev/null +++ b/src/views/goalManagement/targetEscalation/component/Dailog.vue @@ -0,0 +1,46 @@ +<template> + <el-dialog + v-model="dialogVisible" + title="记录" + width="50%" + draggable + > + <el-table :data="tableData" style="width: 100%"> + <el-table-column align="center" label="序号" type="index" width="80"/> + <el-table-column align="center" prop="date" label="责任部门"/> + <el-table-column align="center" prop="name" label="考核指标"/> + <el-table-column align="center" prop="address" label="制定部门" /> + <el-table-column align="center" prop="date" label="制定日期" /> + <el-table-column align="center" prop="name" label="检查值" /> + <el-table-column align="center" prop="name" label="检查人" /> + <el-table-column align="center" prop="address" label="检查时间" /> + </el-table> + <template #footer> + <span class="dialog-footer"> + <el-button @click="dialogVisible = false">关闭</el-button> + <el-button type="primary" @click="dialogVisible = false" + >确定</el-button + > + </span> + </template> + </el-dialog> +</template> +<script lang="ts"> +import { defineComponent,reactive,ref} from 'vue' + +export default defineComponent({ + setup() { + const dialogVisible = ref(false) + const tableData=ref() + const openDailog=(data:any)=>{ + dialogVisible.value=true + tableData.value=data + } + return{ + dialogVisible, + tableData, + openDailog + } + }, +}) +</script> diff --git a/src/views/goalManagement/targetEscalation/index.vue b/src/views/goalManagement/targetEscalation/index.vue new file mode 100644 index 0000000..af2d37b --- /dev/null +++ b/src/views/goalManagement/targetEscalation/index.vue @@ -0,0 +1,173 @@ +<template> + <search></search> + <div class="minCenter"> + <el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClick"> + <el-tab-pane label="检查" name="1"> </el-tab-pane> + <el-tab-pane label="上报" name="2"></el-tab-pane> + </el-tabs> + <el-table ref="multipleTableRef" :data="tableData" style="width: 100%"> + <el-table-column label="安全目标指标" align="center" sortable> + <template #default="scope">{{ scope.row.date }}</template> + </el-table-column> + <el-table-column property="name" align="center" label="目标指标编号" sortable /> + <el-table-column property="address" label="年度" align="center" sortable show-overflow-tooltip /> + <el-table-column property="address" label="指标值" align="center" sortable show-overflow-tooltip /> + <el-table-column v-if="activeName == 1" label="操作" align="center" show-overflow-tooltip> + <template #default> + <el-button link type="primary" size="default" :icon="EditPen" @click="jumpFrom">检查</el-button> + <el-button link type="primary" size="default" :icon="View" @click="openDai(tableData)">记录</el-button> + </template> + </el-table-column> + <el-table-column v-if="activeName == 2" label="操作" align="center" show-overflow-tooltip> + <template #default> + <el-button link type="primary" size="default" :icon="EditPen" @click="handleClick">上报</el-button> + </template> + </el-table-column> + </el-table> + <div class="pages"> + <el-pagination + v-model:currentPage="currentPage4" + v-model:page-size="pageSize4" + :page-sizes="[100, 200, 300, 400]" + :small="small" + :disabled="disabled" + :background="background" + layout="total, sizes, prev, pager, next, jumper" + :total="400" + @size-change="handleSizeChange" + @current-change="handleCurrentChange" + /> + </div> + </div> + <Dailog ref="Show"></Dailog> +</template> +<script lang="ts"> +import search from '../targetSettings/component/search.vue'; +import Dailog from './component/Dailog.vue' +import { ref, toRefs, reactive, onMounted, defineComponent } from 'vue'; +import { ElMessageBox, ElMessage, ElButton, ElInput, TabsPaneContext, FormInstance } from 'element-plus'; +import { Plus, Delete, Upload, Download, Refresh, View,EditPen} from '@element-plus/icons-vue'; +import {useRouter} from "vue-router" +interface User { + date: string; + name: string; + address: string; +} +import type { TableColumnCtx } from 'element-plus/es/components/table/src/table-column/defaults'; +export default defineComponent({ + components: { ElButton, ElInput, search,Dailog }, + setup() { + // 下方导航与表格 + const activeName = ref('1'); + const handleClick = (tab: TabsPaneContext, event: Event) => { + console.log(tab, event); + }; + const formatter = (row: User, column: TableColumnCtx<User>) => { + return row.address; + }; + + const tableData: User[] = [ + { + date: '2016-05-03', + name: 'Tom', + address: 'No. 189, Grove St, Los Angeles', + }, + { + date: '2016-05-02', + name: 'Tom', + address: 'No. 189, Grove St, Los Angeles', + }, + { + date: '2016-05-04', + name: 'Tom', + address: 'No. 189, Grove St, Los Angeles', + }, + { + date: '2016-05-01', + name: 'Tom', + address: 'No. 189, Grove St, Los Angeles', + }, + { + date: '2016-05-08', + name: 'Tom', + address: 'No. 189, Grove St, Los Angeles', + }, + { + date: '2016-05-06', + name: 'Tom', + address: 'No. 189, Grove St, Los Angeles', + }, + { + date: '2016-05-07', + name: 'Tom', + address: 'No. 189, Grove St, Los Angeles', + }, + ]; + const currentPage4 = ref(4); + const pageSize4 = ref(100); + const small = ref(false); + const disabled = ref(false); + const background = ref(false); + const handleSizeChange = (val: number) => { + console.log(`${val} items per page`); + }; + const handleCurrentChange = (val: number) => { + console.log(`current page: ${val}`); + }; + // 记录弹窗 + const Show=ref() + const openDai=(data:any)=>{ + Show.value.openDailog(data) + } + // 流程表单 + const router=useRouter() + const jumpFrom=()=>{ + router.push({ + path:"/processForms" + }) + } + return { + activeName, + handleClick, + tableData, + formatter, + currentPage4, + pageSize4, + handleSizeChange, + handleCurrentChange, + small, + disabled, + background, + Show, + openDai, + router, + jumpFrom, + Plus, + Delete, + Upload, + Download, + Refresh, + View, + EditPen + }; + }, +}); +</script> +<style scoped> +.minCenter { + width: 100%; + background-color: #fff; + margin-top: 10px; + padding: 0 20px; +} +.btns { + padding: 0px 0px 10px 0px; + display: flex; + justify-content: space-between; +} +.pages { + padding: 20px 0; + display: flex; + justify-content: right; +} +</style> \ No newline at end of file diff --git a/src/views/goalManagement/targetEscalation/processForms.vue b/src/views/goalManagement/targetEscalation/processForms.vue new file mode 100644 index 0000000..b4390a5 --- /dev/null +++ b/src/views/goalManagement/targetEscalation/processForms.vue @@ -0,0 +1,37 @@ +<template> + <h4 class="title">胡海涛2022-07-01 16:08:42发起了目标检查上报(检查)--检查</h4> + <el-menu + :default-active="activeIndex" + class="el-menu-demo" + background-color="#f5f7fa" + active-text-color="#a9d86e" + mode="horizontal" + @select="handleSelect" + > + <el-menu-item index="1">表单信息</el-menu-item> + <el-menu-item index="2">流程图</el-menu-item> + </el-menu> +</template> +<script lang="ts"> +import { defineComponent, ref } from 'vue'; + +export default defineComponent({ + setup() { + const activeIndex = ref('1'); + const handleSelect = (key: string, keyPath: string[]) => { + console.log(key, keyPath); + }; + return { + activeIndex, + handleSelect, + }; + }, +}); +</script> +<style scoped> +.title { + text-align: center; + font-size: 16px; + margin-bottom: 20px; +} +</style> diff --git a/src/views/goalManagement/targetSettings/index.vue b/src/views/goalManagement/targetSettings/index.vue index dcebe24..3af2890 100644 --- a/src/views/goalManagement/targetSettings/index.vue +++ b/src/views/goalManagement/targetSettings/index.vue @@ -24,7 +24,6 @@ ref="multipleTableRef" :data="tableData" style="width: 100%" - @selection-change="handleSelectionChange" > <el-table-column label="序号" @@ -91,10 +90,10 @@ show-overflow-tooltip > <template #default> - <el-button link type="primary" size="small" :icon="View" @click="handleClick" + <el-button link type="primary" size="default" :icon="View" @click="handleClick" >查看</el-button > - <el-button link type="primary" size="small" :icon="Delete">删除</el-button> + <el-button link type="primary" size="default" :icon="Delete">删除</el-button> </template> </el-table-column> </el-table> @@ -196,6 +195,9 @@ ]; const currentPage4 = ref(4); const pageSize4 = ref(100); + const small = ref(false) + const disabled = ref(false) + const background = ref(false) const handleSizeChange = (val: number) => { console.log(`${val} items per page`); }; @@ -226,6 +228,9 @@ openD, upShow, upButton, + small, + disabled, + background, Plus, Delete, Upload, -- Gitblit v1.9.2