From 476201c97b910a0fda2713a7331e26530ecd7bd3 Mon Sep 17 00:00:00 2001 From: shj <1790240199@qq.com> Date: 星期三, 06 七月 2022 09:09:30 +0800 Subject: [PATCH] 目标管理 --- src/views/goalManagement/safetyAssessment/index.vue | 198 ++++++++++++++++++++++++ src/views/goalManagement/targetImprovements/index.vue | 196 ++++++++++++++++++++++++ src/views/goalManagement/targetEscalation/processForms.vue | 22 + src/views/goalManagement/targetEscalation/index.vue | 11 4 files changed, 416 insertions(+), 11 deletions(-) diff --git a/src/views/goalManagement/safetyAssessment/index.vue b/src/views/goalManagement/safetyAssessment/index.vue new file mode 100644 index 0000000..7a55320 --- /dev/null +++ b/src/views/goalManagement/safetyAssessment/index.vue @@ -0,0 +1,198 @@ +<template> + <el-form ref="ruleFormRef" :model="ruleForm" status-icon label-width="20px" class="topTitle"> + <el-row> + <el-col :span="4"> + <el-form-item> + <el-input v-model="ruleForm.pass" placeholder="请输入目标指标" /> + </el-form-item> + </el-col> + <!-- <el-col :span="4"> + <el-form-item> + <el-input v-model="ruleForm.checkPass" placeholder="目标指标编号" /> + </el-form-item> + </el-col> --> + <el-col :span="4"> + <el-form-item> + <el-button type="primary" @click="submitForm(ruleFormRef)">查询</el-button> + <el-button @click="resetForm(ruleFormRef)">重置</el-button> + </el-form-item> + </el-col> + </el-row> + </el-form> + <div class="minCenter"> + <div class="btns"> + <div> + <el-button type="primary" :icon="Plus" @click="openD('新建')">新建</el-button> + </div> + <div> + <el-button :icon="Refresh"></el-button> + </div> + </div> + <el-table ref="multipleTableRef" :data="tableData" style="width: 100%"> + <el-table-column label="序号" align="center" type="index" width="70" /> + <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 label="操作" align="center" sortable show-overflow-tooltip> + <template #default> + <el-button link type="primary" size="default" :icon="View" @click="handleClick">查看</el-button> + <el-button link type="primary" size="default" :icon="Delete">删除</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> + <Dailog ref="openAdd"></Dailog> + </div> +</template> +<script lang="ts"> +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 } from '@element-plus/icons-vue'; +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, Dailog }, + setup() { + // 搜索条件 + const ruleForm = reactive({ + pass: '', + checkPass: '', + }); + const resetForm = (formEl: FormInstance | undefined) => { + console.log(!formEl); + if (!formEl) return; + formEl.resetFields(); + }; + // 下方导航与表格 + 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 openAdd = ref(); + const openD = (type: String, value: any) => { + openAdd.value.openDailog(type, value); + }; + + return { + ruleForm, + resetForm, + activeName, + handleClick, + tableData, + formatter, + currentPage4, + pageSize4, + handleSizeChange, + handleCurrentChange, + openAdd, + openD, + small, + disabled, + background, + Plus, + Delete, + Upload, + Download, + Refresh, + View, + }; + }, +}); +</script> +<style scoped> +.topTitle { + background-color: #fff; + padding: 20px 0px 20px 0px; + margin-bottom:10px ; +} +.minCenter { + width: 100%; + background-color: #fff; + margin-top: 10px; + padding: 0 20px; +} +.btns { + padding: 10px 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/index.vue b/src/views/goalManagement/targetEscalation/index.vue index af2d37b..1c6d1b6 100644 --- a/src/views/goalManagement/targetEscalation/index.vue +++ b/src/views/goalManagement/targetEscalation/index.vue @@ -14,13 +14,13 @@ <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="EditPen" @click="jumpFrom(0)">检查</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> + <el-button link type="primary" size="default" :icon="EditPen" @click="jumpFrom(1)">上报</el-button> </template> </el-table-column> </el-table> @@ -121,9 +121,12 @@ } // 流程表单 const router=useRouter() - const jumpFrom=()=>{ + const jumpFrom=(data:string)=>{ router.push({ - path:"/processForms" + path:"/processForms", + query:{ + type:data + } }) } return { diff --git a/src/views/goalManagement/targetEscalation/processForms.vue b/src/views/goalManagement/targetEscalation/processForms.vue index 67b496d..d0e1ee2 100644 --- a/src/views/goalManagement/targetEscalation/processForms.vue +++ b/src/views/goalManagement/targetEscalation/processForms.vue @@ -18,24 +18,24 @@ <el-row style="padding: 20px"> <el-col :span="11"> <el-form-item label="安全目标指标"> - <el-input v-model="name"></el-input> + <el-input v-model="form.name"></el-input> </el-form-item> </el-col> <el-col :span="11" :offset="2"> <el-form-item label="目标指标编号"> - <el-input v-model="name"></el-input> + <el-input v-model="form.name"></el-input> </el-form-item> </el-col> </el-row> <el-row style="padding: 20px"> <el-col :span="11"> <el-form-item label="年度"> - <el-input v-model="name"></el-input> + <el-input v-model="form.name"></el-input> </el-form-item> </el-col> <el-col :span="11" :offset="2"> <el-form-item label="指标值"> - <el-input v-model="name"></el-input> + <el-input v-model="form.name"></el-input> </el-form-item> </el-col> </el-row> @@ -50,7 +50,7 @@ <el-table-column align="center" prop="address" label="制定日期" /> <el-table-column align="center" label="检查值"> <template #default> - <el-input v-model="address" placeholder=""></el-input> + <el-input v-model="form.name" placeholder=""></el-input> </template> </el-table-column> <el-table-column align="center" prop="address" label="检查人" /> @@ -81,7 +81,8 @@ </div> </template> <script lang="ts"> -import { defineComponent, reactive, ref } from 'vue'; +import { defineComponent, reactive, ref,onMounted } from 'vue'; +import { useRouter } from 'vue-router'; import lowerPlate from './component/lowerPlate.vue' export default defineComponent({ components:{lowerPlate}, @@ -109,12 +110,19 @@ address: 'No. 189, Grove St, Los Angeles', }, ]; + const router=useRouter() + const Type=onMounted(()=>{ + // console.log("xxxxxxx",router) + }) + return { activeIndex, handleSelect, form, activeName, - tableData + tableData, + router, + Type }; }, }); diff --git a/src/views/goalManagement/targetImprovements/index.vue b/src/views/goalManagement/targetImprovements/index.vue new file mode 100644 index 0000000..25db955 --- /dev/null +++ b/src/views/goalManagement/targetImprovements/index.vue @@ -0,0 +1,196 @@ +<template> + <el-form ref="ruleFormRef" :model="ruleForm" status-icon label-width="20px" class="topTitle"> + <el-row> + <el-col :span="4"> + <el-form-item> + <el-input v-model="ruleForm.pass" placeholder="安全目标指标" /> + </el-form-item> + </el-col> + <!-- <el-col :span="4"> + <el-form-item> + <el-input v-model="ruleForm.checkPass" placeholder="目标指标编号" /> + </el-form-item> + </el-col> --> + <el-col :span="4"> + <el-form-item> + <el-button type="primary" @click="submitForm(ruleFormRef)">查询</el-button> + <el-button @click="resetForm(ruleFormRef)">重置</el-button> + </el-form-item> + </el-col> + </el-row> + </el-form> + <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-tab-pane label="验证" name="3"></el-tab-pane> + <el-tab-pane label="完成" name="4"></el-tab-pane> + </el-tabs> + <el-table ref="multipleTableRef" :data="tableData" style="width: 100%"> + <el-table-column label="序号" align="center" type="index" width="70" /> + <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 property="address" label="考核指标" align="center" sortable show-overflow-tooltip /> + <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 property="address" label="考核结果" align="center" sortable show-overflow-tooltip /> + <el-table-column label="操作" align="center" sortable show-overflow-tooltip> + <template #default> + <el-button link type="primary" size="default" :icon="View" @click="handleClick">查看</el-button> + <el-button link type="primary" size="default" :icon="Delete">删除</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> +</template> +<script lang="ts"> +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 } from '@element-plus/icons-vue'; +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 }, + setup() { + // 搜索条件 + const ruleForm = reactive({ + pass: '', + checkPass: '', + }); + const resetForm = (formEl: FormInstance | undefined) => { + console.log(!formEl); + if (!formEl) return; + formEl.resetFields(); + }; + // 下方导航与表格 + 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}`); + }; + + + return { + ruleForm, + resetForm, + activeName, + handleClick, + tableData, + formatter, + currentPage4, + pageSize4, + handleSizeChange, + handleCurrentChange, + small, + disabled, + background, + Plus, + Delete, + Upload, + Download, + Refresh, + View, + }; + }, +}); +</script> +<style scoped> +.topTitle { + background-color: #fff; + padding: 20px 0px 20px 0px; + margin-bottom:10px ; +} +.minCenter { + width: 100%; + background-color: #fff; + margin-top: 10px; + padding: 0 20px; +} +.btns { + padding: 10px 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 -- Gitblit v1.9.2