From 444aeabb015bb0a101b80233e65939b35e8e622c Mon Sep 17 00:00:00 2001 From: shj <1790240199@qq.com> Date: 星期五, 19 八月 2022 17:12:22 +0800 Subject: [PATCH] 对接 --- src/views/goalManagement/safetyAssessment/component/Dailog.vue | 274 +++++++++++++----------- src/views/goalManagement/safetyAssessment/index.vue | 41 +++ src/views/goalManagement/targetDecompositionHalfYear/index.vue | 4 src/views/goalManagement/targetDecompositionYear/index.vue | 4 src/views/goalManagement/targetStatistics/index.vue | 60 ++++- src/views/goalManagement/safetyAssessment/component/DailogAdd.vue | 238 +++++++++++---------- src/api/goalManagement/index.ts | 16 + src/views/goalManagement/targetDecompositionQuarter/index.vue | 4 src/views/goalManagement/targetDecompositionMonth/index.vue | 4 9 files changed, 388 insertions(+), 257 deletions(-) diff --git a/src/api/goalManagement/index.ts b/src/api/goalManagement/index.ts index 3c20344..c8373f0 100644 --- a/src/api/goalManagement/index.ts +++ b/src/api/goalManagement/index.ts @@ -233,6 +233,14 @@ method: "get", }) }, + //安全目标考核 列表 + gettargetExamineList: (params: object) => { + return request({ + url: "/targetExamine/page/list", + method: "post", + data: params + }) + }, // 安全目标考核 查询单条数据 gettargetExamineDetail: (params: any) => { return request({ @@ -394,5 +402,13 @@ data:params }) }, + // 目标 统计 + gettargetstatistics(params:any){ + return request({ + url:`/targetMng/statistics?targetType=${params}`, + method:"get", + // data:params + }) + }, } } \ No newline at end of file diff --git a/src/views/goalManagement/safetyAssessment/component/Dailog.vue b/src/views/goalManagement/safetyAssessment/component/Dailog.vue index 6112761..21771af 100644 --- a/src/views/goalManagement/safetyAssessment/component/Dailog.vue +++ b/src/views/goalManagement/safetyAssessment/component/Dailog.vue @@ -1,13 +1,15 @@ <template> - <el-dialog v-model="dialogVisible" :fullscreen="full" title="目标考核" width="70%" draggable @close="closeDialog"> + <el-dialog v-model="dialogVisible" :before-close="resetForm" :fullscreen="full" title="目标分解" width="60%" draggable> <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button> <el-form :model="form" label-width="120px"> <el-row> <el-col :span="11"> <el-form-item label="安全目标指标" size="default"> <el-input v-model="form.qName" :disabled="disabled"> - <template #append> <el-button :icon="Search" @click="daiInpt" /> </template - ></el-input> + <template #append> + <el-button :icon="Search" @click="daiInpt" /> + </template> + </el-input> </el-form-item> </el-col> <el-col :span="11" :offset="2"> @@ -29,167 +31,187 @@ </el-col> </el-row> </el-form> - <el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClick"> + <el-tabs v-model="activeName" class="demo-tabs"> <el-tab-pane label="目标指标分解" name="1"> - <el-button type="primary" size="default" @click="daiAdd('新增')" :disabled="disabled">新增</el-button> - </el-tab-pane> + <!-- <el-button type="primary" size="default" @click="daiAdd('新增')" :disabled="disabled">新增</el-button> --> + </el-tab-pane> </el-tabs> - <el-table :data="formUp.examineList" style="width: 100%"> - <el-table-column align="center" type="index" label="序号" width="70" /> - <el-table-column align="center" prop="dutyDepartmentName" label="责任部门" /> - <el-table-column align="center" prop="examineValue" label="考核指标" /> - <el-table-column align="center" prop="makerDepartmentName" label="制定部门" /> - <el-table-column align="center" prop="makeDate" label="制定日期" /> - <el-table-column align="center" prop="uploadValue" label="上报值" /> - <el-table-column align="center" prop="uploadDate" label="上报时间" /> - <el-table-column align="center" prop="examineResult" label="考核结果" > - <template #default="scope"> - <div v-if="scope.row.examineResult==1"> - 合格 - </div> - <div v-if="scope.row.examineResult==2"> - 不合格 - </div> - </template> - </el-table-column> - <el-table-column align="center" prop="examinePersonName" label="考核人" /> - <el-table-column align="center" prop="examineDate" label="考核时间" /> + <el-table :data="formUp.targetDivideDetailList" style="width: 100%"> + <el-table-column align="center" property="dutyDepartmentName" label="责任部门" width="180" /> + <el-table-column align="center" property="value" label="考核指标" width="180" /> + <el-table-column align="center" property="makerDepartmentName" label="制定人部门" /> + <el-table-column align="center" property="makeDate" :formatter="timeDate" label="制定日期" /> + <el-table-column align="center" property="commitPersonName" label="上报人" /> <el-table-column align="center" label="操作"> <template #default="scope"> <el-button link type="primary" @click="daiAdd('查看', scope.row)">查看</el-button> - <el-button link type="primary" @click="daiAdd('修改', scope.row)">修改</el-button> - <el-button link type="primary" @click="Delete(scope.row)">删除</el-button> + <el-button link :disabled="disabled" type="primary" @click="daiAdd('修改', scope.row)">考核</el-button> </template> </el-table-column> </el-table> <template #footer> <span class="dialog-footer"> - <el-button @click="closeDialog" size="default">关闭</el-button> - <el-button type="primary" @click="submitForm" size="default">确定</el-button> + <el-button @click="resetForm" size="default">关闭</el-button> + <el-button type="primary" v-if="disabled == false" @click="submitForm" size="default">确定</el-button> </span> </template> </el-dialog> + <DailogAdd ref="Show" @onAdd="add"></DailogAdd> <DailogSearch ref="Shows" @backNum="onNumber"></DailogSearch> - <DailogAdd ref="Show" @onAdd="add"></DailogAdd> </template> <script lang="ts"> import { defineComponent, ref, reactive } from 'vue'; +import { timeDate } from '/@/assets/index.ts'; import { Search, FullScreen } from '@element-plus/icons-vue'; +import DailogAdd from './DailogAdd.vue'; import { ElMessageBox, ElMessage, ElButton, ElInput, TabsPaneContext } from 'element-plus'; import DailogSearch from '../../../../components/DailogSearch/DailogSearch.vue'; -import DailogAdd from './DailogAdd.vue'; import { goalManagementApi } from '/@/api/goalManagement'; -import {deepClone} from "/@/utils/other"; +import { emit } from 'process'; +import { deepClone } from '/@/utils/other'; export default defineComponent({ - components: { DailogSearch ,DailogAdd}, - setup() { + components: { DailogAdd, DailogSearch }, + setup(props, { emit }) { const dialogVisible = ref<boolean>(false); - const form = ref({}); + const form = ref({ + qName: '', + indexNum: '', + year: '', + value: '', + targetDivideDetailList: [], + }); const targetType = ref(); const disabled = ref(false); const titles = ref(); + const numId=ref() const openDailog = (title: string, type: any, id: number) => { dialogVisible.value = true; titles.value = title; targetType.value = type; + disabled.value = title == '查看' ? true : false; if (title == '查看' || title == '修改') { goalManagementApi() - .gettargetExamineDetail(id) + .getTargetMngDetail(id) .then((res) => { if (res.data.code == 200) { form.value = res.data.data; - formUp.examineList = res.data.data.examineList + formUp.targetDivideDetailList = form.value.targetDivideDetailList; + for(let i=0;i<formUp.targetDivideDetailList.length;i++){ + formUp.targetDivideDetailList[i].makeDate=timeC(formUp.targetDivideDetailList[i].makeDate) + } } else { ElMessage.error(res.data.msg); } }); } + numId.value=id }; - const closeDialog = () => { - form.value = {} - formUp.examineList = [] - dialogVisible.value = false + const timeC = (timestamp: any) => { + let a = new Date(timestamp).getTime(); + const date = new Date(a); + const Y = date.getFullYear() + '-'; + const M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-'; + const D = (date.getDate() < 10 ? '0' + date.getDate() : date.getDate()) + ' '; + const h = (date.getHours() < 10 ? '0' + date.getHours() : date.getHours()) + ':'; + const m = date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes(); + const s = date.getSeconds(); // 秒 + const dateString = Y + M + D + h + m +`:${s}`; + // console.log('dateString', dateString); // > dateString 2021-07-06 14:23 + return dateString; }; - const submitForm = () => { - // formUp.delTargetDivideDetails = arr.value.toString(); - // formUp.targetId = form.value.id; - dialogVisible.value = false; - for(let i=0;i<formUp.examineList.length;i++){ - delete formUp.examineList[i].dutyDepartmentName - delete formUp.examineList[i].makerDepartmentName - } - formUp.id = form.value.id - formUp.delIds = arr.value.toString(); - goalManagementApi() - .gettargetExamineAddOrUpdate(formUp) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - message: res.data.msg, - type: 'success', - }); - emit('addList'); - } else { - ElMessage.error(res.data.msg); - } - }); - form.value = { - qName: '', - indexNum: '', - year: '', - value: '', - examineList: [], - }; - tableData.value = []; - formUp.targetId = ''; - formUp.delTargetDivideDetails = ''; - formUp.examineList = []; - }; - const arr = ref([]); - // 删除 - const Delete = (data: any) => { - formUp.examineList.splice(form.value.examineList.indexOf(data), 1); - arr.value.push(data.id); - }; - const onNumber = (e: object) => { - form.value = e; + const onNumber = (val: object) => { + form.value = val; }; // 导航 const activeName = ref('1'); // 表格 const tableData = ref([]); + // 新增弹窗 + const index = ref<any>(); + const Show = ref(); + const daiAdd = (title: string, data: any) => { + index.value = formUp.targetDivideDetailList.indexOf(data); + Show.value.openDailog(title, data); + }; + const formUp = reactive({ + targetId: '', //关联的目标指标/外键 + delTargetDivideDetails: '', //要删除的目标指标分解ID,多个用逗号隔开 + targetDivideDetailList: [], //目标指标分解列表 + }); + + const add = (val: any) => { + goalManagementApi() + .getTargetMngDetail(numId.value) + .then((res) => { + if (res.data.code == 200) { + form.value = res.data.data; + formUp.targetDivideDetailList = form.value.targetDivideDetailList; + for(let i=0;i<formUp.targetDivideDetailList.length;i++){ + formUp.targetDivideDetailList[i].makeDate=timeC(formUp.targetDivideDetailList[i].makeDate) + } + } else { + ElMessage.error(res.data.msg); + } + }); + + // let obj=JSON.parse(JSON.stringify(form.value)) + }; + // 新增 + const submitForm = () => { + formUp.delTargetDivideDetails = arr.value.toString(); + formUp.targetId = form.value.id; + dialogVisible.value = false; + for(let i=0;i<formUp.targetDivideDetailList.length;i++){ + delete formUp.targetDivideDetailList[i].dutyDepartmentName + delete formUp.targetDivideDetailList[i].makerDepartmentName + } + goalManagementApi() + .gettargetDivideDetail(formUp) + .then((res) => { + if (res.data.code == 200) { + ElMessage({ + message: res.data.msg, + type: 'success', + }); + emit('addList'); + } else { + ElMessage.error(res.data.msg); + } + }); + form.value = { + qName: '', + indexNum: '', + year: '', + value: '', + targetDivideDetailList: [], + }; + tableData.value = []; + formUp.targetId = ''; + formUp.delTargetDivideDetails = ''; + formUp.targetDivideDetailList = []; + }; + const arr = ref([]); // 安全目标指标弹窗 const Shows = ref(); const daiInpt = () => { Shows.value.openDailog(targetType.value); }; - - // 新增弹窗 - const index=ref<any>() - const Show = ref(); - const daiAdd = (title: string, data: any) => { - index.value = formUp.examineList.indexOf(data); - Show.value.openDailog(title, data); + // 关闭 + const resetForm = () => { + dialogVisible.value = false; + form.value = { + qName: '', + indexNum: '', + year: '', + value: '', + targetDivideDetailList: [], + }; + tableData.value = []; + formUp.targetId = ''; + formUp.delTargetDivideDetails = ''; + formUp.targetDivideDetailList = []; }; - const formUp = reactive({ - targetId: '', //关联的目标指标/外键 - delTargetDivideDetails: '', //要删除的目标指标分解ID,多个用逗号隔开 - examineList: [], //目标指标分解列表 - }); - - const add = (val: any) => { - const item = deepClone(val) - if(index.value==-1){ - - formUp.examineList.push(item); - }else{ - formUp.examineList[index.value] = item; - } - console.log(formUp) - // let obj=JSON.parse(JSON.stringify(form.value)) - }; - //全屏 const full = ref(false); const toggleFullscreen = () => { @@ -199,30 +221,38 @@ full.value = false; } }; + // 时间格式处理 + // const timeDate = (data: any) => { + // let result = new Date(data).getTime(); + // return result; + // }; return { + timeC, + index, + timeDate, + arr, form, dialogVisible, openDailog, - targetType, - onNumber, - disabled, - titles, activeName, tableData, + Show, + daiAdd, Shows, daiInpt, Search, full, toggleFullscreen, FullScreen, - daiAdd, - index, - Show, - formUp, - add, - closeDialog, + onNumber, + targetType, + disabled, + resetForm, + titles, + add, + formUp, submitForm, - Delete + numId }; }, }); @@ -231,4 +261,4 @@ .el-row { padding: 0 0 20px 0; } -</style> +</style> \ No newline at end of file diff --git a/src/views/goalManagement/safetyAssessment/component/DailogAdd.vue b/src/views/goalManagement/safetyAssessment/component/DailogAdd.vue index 826a4e8..dc63830 100644 --- a/src/views/goalManagement/safetyAssessment/component/DailogAdd.vue +++ b/src/views/goalManagement/safetyAssessment/component/DailogAdd.vue @@ -2,7 +2,7 @@ <el-dialog v-model="dialogVisible" :fullscreen="full" :title="titles" width="50%" draggable @close="resetForm(ruleFormRef)"> <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button> <el-form :model="form" :disabled="disabled" label-width="120px" ref="ruleFormRef" :rules="rules"> - <el-row> + <!-- <el-row> <el-col :span="11"> <el-form-item label="责任部门" prop="dutyDepartmentId" size="default"> <el-tree-select v-model="form.dutyDepartmentId" check-strictly="true" @current-change="dutyName" :data="data" class="w100" :props="propse" placeholder="请选择" /> @@ -31,7 +31,7 @@ <el-col :span="11"> <el-form-item label="上报值" prop="uploadValue" size="default"> <el-input v-model="form.uploadValue"> -<!-- <template #append> <el-button :icon="Search" @click="openUser" /> </template>--> + <template #append> <el-button :icon="Search" @click="openUser" /> </template> </el-input> </el-form-item> </el-col> @@ -40,36 +40,35 @@ <el-date-picker v-model="form.uploadDate" format="YYYY-MM-DD HH:mm:ss" value-format="YYYY-MM-DD HH:mm:ss" type="datetime" placeholder="请选择" style="width: 100%" /> </el-form-item> </el-col> + </el-row> --> + <el-row> + <el-col :span="11"> + <el-form-item label="考核结果" prop="examineResult" size="default"> + <el-select v-model="form.examineResult" placeholder="请选择" style="width: 100%"> + <el-option label="合格" :value="1" /> + <el-option label="不合格" :value="2" /> + </el-select> + </el-form-item> + </el-col> + <el-col :span="11" :offset="2"> + <el-form-item label="考核人" prop="examinePersonName" size="default"> + <el-input v-model="form.examinePersonName"> + <template #append> <el-button :icon="Search" @click="openUser" /> </template> + </el-input> + </el-form-item> + </el-col> </el-row> - <el-row> - <el-col :span="11"> - <el-form-item label="考核结果" prop="examineResult" size="default"> - <el-select v-model="form.examineResult" placeholder="请选择" style="width: 100%"> - <el-option label="合格" :value="1" /> - <el-option label="不合格" :value="2" /> - </el-select> - </el-form-item> - </el-col> - <el-col :span="11" :offset="2"> - <el-form-item label="考核人" prop="examinePersonName" size="default"> - <el-input v-model="form.examinePersonName"> - <template #append> <el-button :icon="Search" @click="openUser" /> </template> - </el-input> - </el-form-item> - </el-col> - </el-row> - <el-row> + <!-- <el-row> <el-col :span="11"> <el-form-item label="考核时间" prop="examineDate" size="default"> <el-date-picker v-model="form.examineDate" format="YYYY-MM-DD HH:mm:ss" value-format="YYYY-MM-DD HH:mm:ss" type="datetime" placeholder="请选择" style="width: 100%" /> </el-form-item> </el-col> <el-col :span="11" :offset="2"></el-col> - </el-row> + </el-row> --> </el-form> <template #footer> <span class="dialog-footer"> - <el-button @click="resetForm(ruleFormRef)" size="default">关闭</el-button> <el-button type="primary" @click="submitForm(ruleFormRef)" size="default">确定</el-button> </span> @@ -87,38 +86,34 @@ export default defineComponent({ components: { DailogSearchUser }, setup(props, { emit }) { - const ruleFormRef = ref<FormInstance>() + const ruleFormRef = ref<FormInstance>(); const form = ref({ - "dutyDepartmentId": '', ////责任部门id/外键 - "examineDate": '', ////考核时间 - "examinePersonId": '', ////考核人ID/外键 - "examineResult": '', ////考核结果 1:合格 2:不合格 - "examineValue": '', ////考核指标 - "makeDate": '', ////制定日期 - "makerDepartmentId": '', ////制定部门/外键 - "uploadDate": '', ////上报时间 - "uploadValue": "", ////上报值 + targetDivideDetailId: "", //关联的目标分解/外键 + examinePersonId: "", + examinePersonName: '', + examineResult: "", //考核结果 1:合格 2:不合格 + id: "", //目标指标ID }); //部门 - const department = () => { - goalManagementApi() - .getTreedepartment() - .then((res) => { - if (res.data.code == 200) { - data.value = res.data.data; - } else { - ElMessage.error(res.data.msg); - } - }); - }; - const propse = { - label: 'depName', - children: 'children', - value: 'depId', - }; - onMounted(() => { - department(); - }); + // const department = () => { + // goalManagementApi() + // .getTreedepartment() + // .then((res) => { + // if (res.data.code == 200) { + // data.value = res.data.data; + // } else { + // ElMessage.error(res.data.msg); + // } + // }); + // }; + // const propse = { + // label: 'depName', + // children: 'children', + // value: 'depId', + // }; + // onMounted(() => { + // department(); + // }); const disabled = ref(false); // 开启弹窗 const titles = ref(); @@ -128,9 +123,19 @@ if (title == '查看') { disabled.value = true; form.value = data; + // form.value.id = data.targetId; + form.value.targetDivideDetailId=data.id + form.value.examinePersonName = data.examinePersonName; + form.value.examinePersonId=data.examinePersonId + form.value.examineResult=data.examineResult } else if (title == '修改') { + console.log(data) disabled.value = false; - form.value = data; + // form.value.id = data.targetId; + form.value.targetDivideDetailId=data.id + form.value.examinePersonName = data.examinePersonName; + form.value.examinePersonId=data.examinePersonId + form.value.examineResult=data.examineResult } else { disabled.value = false; } @@ -142,74 +147,87 @@ Show.value.openDailog(); }; const rules = reactive<FormRules>({ - dutyDepartmentId: [ - { - required: true, - message: '责任部门不能为空', - trigger: 'blur', - }, - ], - makerDepartmentId: [ - { - required: true, - message: '制定人部门不能为空', - trigger: 'blur', - }, - ], - commitPersonId: [ - { - required: true, - message: '上报人不能为空', - trigger: 'blur', - }, - ], - examineValue: [ - { - required: true, - message: '考核指标值不能为空', - trigger: 'blur', - }, - { - type: 'number', - message: '考核指标值只能为数字类型', - trigger: 'blur', - }, - ], - makeDate: [ - { - required: true, - message: '制定日期不能为空', - trigger: 'blur', - }, - ], - commitPersonName: [], + // dutyDepartmentId: [ + // { + // required: true, + // message: '责任部门不能为空', + // trigger: 'blur', + // }, + // ], + // makerDepartmentId: [ + // { + // required: true, + // message: '制定人部门不能为空', + // trigger: 'blur', + // }, + // ], + // commitPersonId: [ + // { + // required: true, + // message: '上报人不能为空', + // trigger: 'blur', + // }, + // ], + // examineValue: [ + // { + // required: true, + // message: '考核指标值不能为空', + // trigger: 'blur', + // }, + // { + // type: 'number', + // message: '考核指标值只能为数字类型', + // trigger: 'blur', + // }, + // ], + // makeDate: [ + // { + // required: true, + // message: '制定日期不能为空', + // trigger: 'blur', + // }, + // ], + examinePersonName: [], + examineResult:[] + }); - const dutyName=(data:any)=>{ - form.value.dutyDepartmentName=data.depName - } - const makerDepartmentName=(data:any)=>{ - form.value.makerDepartmentName=data.depName - } + // const dutyName = (data: any) => { + // form.value.dutyDepartmentName = data.depName; + // }; + // const makerDepartmentName = (data: any) => { + // form.value.makerDepartmentName = data.depName; + // }; const submitForm = async (formEl: FormInstance | undefined) => { if (!formEl) return; await formEl.validate((valid, fields) => { if (valid) { - emit('onAdd', form.value); + console.log(form.value) dialogVisible.value = false; + goalManagementApi().gettargetExamineAddOrUpdate(form.value).then(res=>{ + if(res.data.code==200){ + ElMessage({ + message: res.data.msg, + type: 'success', + }); + }else{ + ElMessage.error(res.data.msg); + } + }) // handleClose(formEl) } else { console.log('error submit!', fields); } }); + emit('onAdd'); }; const resetForm = (formEl: FormInstance | undefined) => { // console.log(formEl); - if (!formEl) return - formEl.resetFields(); + if (!formEl) return; + // formEl.resetFields(); dialogVisible.value = false; - form.value={} + form.value = {}; }; // const handleClose = (formEl: any) => { // formEl.resetFields(); @@ -223,9 +241,9 @@ full.value = false; } }; - const data = ref(); + // const data = ref(); const onUser = (e: any) => { - console.log(e) + console.log(e); form.value.examinePersonId = e.uid; form.value.examinePersonName = e.realName; }; @@ -234,8 +252,8 @@ titles, // handleClose, form, - propse, - department, + // propse, + // department, dialogVisible, openDailog, Show, @@ -244,14 +262,14 @@ full, toggleFullscreen, FullScreen, - data, + // data, onUser, ruleFormRef, rules, submitForm, resetForm, - dutyName, - makerDepartmentName + // dutyName, + // makerDepartmentName, }; }, }); diff --git a/src/views/goalManagement/safetyAssessment/index.vue b/src/views/goalManagement/safetyAssessment/index.vue index c6c695d..f52ba71 100644 --- a/src/views/goalManagement/safetyAssessment/index.vue +++ b/src/views/goalManagement/safetyAssessment/index.vue @@ -21,16 +21,39 @@ </el-row> </el-form> <div class="minCenter"> + <el-tabs v-model="ruleForm.searchParams.targetType" class="demo-tabs" @tab-click="handleClick"> <div class="btns"> <div> - <el-button size="default" type="primary" :icon="Plus" @click="openD('新建')">新建</el-button> + <!-- <el-button size="default" type="primary" :icon="Plus" @click="openD('新建')">新建</el-button> --> </div> <div> <!-- <el-button size="default" :icon="Refresh"></el-button> --> </div> </div> + <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 type="expand"> + <template #default="scope"> + <div class="tableC"> + <el-tabs v-model="activeNames"> + <el-tab-pane label="目标指标分解" name="1"> + <el-table :data="scope.row.targetDivideDetailList" style="width: 100%"> + <el-table-column align="center" prop="dutyDepartmentName" label="责任部门" /> + <el-table-column align="center" prop="value" label="考核指标" /> + <el-table-column align="center" prop="makerDepartmentName" label="制定人部门" /> + <el-table-column align="center" prop="makeDate" :formatter="timeDate" label="制定日期" /> + <el-table-column align="center" prop="commitPersonName" label="上报人" /> + </el-table> + </el-tab-pane> + </el-tabs> + </div> + </template> + </el-table-column> <el-table-column label="安全目标指标" align="center" property="qName" sortable /> <el-table-column property="indexNum" align="center" label="考核指标编号" sortable /> <el-table-column property="year" label="年度" align="center" sortable show-overflow-tooltip /> @@ -38,7 +61,7 @@ <el-table-column label="操作" align="center" width="300" sortable show-overflow-tooltip> <template #default="scope"> <el-button link type="primary" size="default" :icon="View" @click="openD('查看', scope.row.id)">查看</el-button> - <el-button link type="primary" size="default" :icon="View" @click="openD('修改', scope.row.id)">修改</el-button> + <el-button link type="primary" size="default" :icon="View" @click="openD('修改', scope.row.id)">考核</el-button> <!--<el-button link type="primary" size="default" :icon="Delete" @click="onDelete(scope.row.id)">删除</el-button>--> </template> </el-table-column> @@ -59,6 +82,7 @@ </div> </template> <script lang="ts"> +import { timeDate } from '/@/assets/index.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'; @@ -76,7 +100,7 @@ qName: '', ////安全目标指标 indexNum: '', ////目标指标编号 targetType: '1', ////指标类型 1:年指标 2:月指标 - divideStatus: '', ////分解状态 1:已分解 2:未分解 + divideStatus: 1, ////分解状态 1:已分解 2:未分解 }, }); // 重置 @@ -86,7 +110,7 @@ }; const listApi = () => { goalManagementApi() - .getTargetMngList(ruleForm) + .gettargetExamineList(ruleForm) .then((res) => { if (res.data.code == 200) { tableData.value = res.data.data; @@ -159,10 +183,12 @@ // 弹窗 const openAdd = ref(); const openD = (title: String, id: number) => { - openAdd.value.openDailog(title, ruleForm.searchParams.targetType, id); + openAdd.value.openDailog(title, ruleForm.searchParams.targetType,id); }; - + const activeNames=ref("1") return { + timeDate, + activeNames, listApi, ruleForm, resetForm, @@ -209,4 +235,7 @@ display: flex; justify-content: right; } +.tableC { + margin: 0 10%; +} </style> \ No newline at end of file diff --git a/src/views/goalManagement/targetDecompositionHalfYear/index.vue b/src/views/goalManagement/targetDecompositionHalfYear/index.vue index 361db99..1ed6ed9 100644 --- a/src/views/goalManagement/targetDecompositionHalfYear/index.vue +++ b/src/views/goalManagement/targetDecompositionHalfYear/index.vue @@ -41,7 +41,7 @@ <el-table-column align="center" prop="dutyDepartmentName" label="责任部门" /> <el-table-column align="center" prop="value" label="考核指标" /> <el-table-column align="center" prop="makerDepartmentName" label="制定人部门" /> - <el-table-column align="center" prop="makeDate" label="制定日期" /> + <el-table-column align="center" prop="makeDate" :formatter="timeDate" label="制定日期" /> <el-table-column align="center" prop="commitPersonName" label="上报人" /> </el-table> </el-tab-pane> @@ -77,6 +77,7 @@ </div> </template> <script lang="ts"> +import { timeDate } from '/@/assets/index.ts'; import search from '../targetSettings/component/search.vue'; import Dailog from '../targetDecompositionYear/component/Dailog.vue'; import { ref, toRefs, reactive, onMounted, defineComponent } from 'vue'; @@ -227,6 +228,7 @@ listApi() } return { + timeDate, add, listApi, resetForm, diff --git a/src/views/goalManagement/targetDecompositionMonth/index.vue b/src/views/goalManagement/targetDecompositionMonth/index.vue index 33e9626..f0510a7 100644 --- a/src/views/goalManagement/targetDecompositionMonth/index.vue +++ b/src/views/goalManagement/targetDecompositionMonth/index.vue @@ -41,7 +41,7 @@ <el-table-column align="center" prop="dutyDepartmentName" label="责任部门" /> <el-table-column align="center" prop="value" label="考核指标" /> <el-table-column align="center" prop="makerDepartmentName" label="制定人部门" /> - <el-table-column align="center" prop="makeDate" label="制定日期" /> + <el-table-column align="center" prop="makeDate" :formatter="timeDate" label="制定日期" /> <el-table-column align="center" prop="commitPersonName" label="上报人" /> </el-table> </el-tab-pane> @@ -77,6 +77,7 @@ </div> </template> <script lang="ts"> +import { timeDate } from '/@/assets/index.ts'; import search from '../targetSettings/component/search.vue'; import Dailog from '../targetDecompositionYear/component/Dailog.vue'; import { ref, toRefs, reactive, onMounted, defineComponent } from 'vue'; @@ -227,6 +228,7 @@ listApi() } return { + timeDate, add, listApi, resetForm, diff --git a/src/views/goalManagement/targetDecompositionQuarter/index.vue b/src/views/goalManagement/targetDecompositionQuarter/index.vue index 730b232..4f0f36d 100644 --- a/src/views/goalManagement/targetDecompositionQuarter/index.vue +++ b/src/views/goalManagement/targetDecompositionQuarter/index.vue @@ -41,7 +41,7 @@ <el-table-column align="center" prop="dutyDepartmentName" label="责任部门" /> <el-table-column align="center" prop="value" label="考核指标" /> <el-table-column align="center" prop="makerDepartmentName" label="制定人部门" /> - <el-table-column align="center" prop="makeDate" label="制定日期" /> + <el-table-column align="center" prop="makeDate" :formatter="timeDate" label="制定日期" /> <el-table-column align="center" prop="commitPersonName" label="上报人" /> </el-table> </el-tab-pane> @@ -77,6 +77,7 @@ </div> </template> <script lang="ts"> +import { timeDate } from '/@/assets/index.ts'; import search from '../targetSettings/component/search.vue'; import Dailog from '../targetDecompositionYear/component/Dailog.vue'; import { ref, toRefs, reactive, onMounted, defineComponent } from 'vue'; @@ -227,6 +228,7 @@ listApi() } return { + timeDate, add, listApi, resetForm, diff --git a/src/views/goalManagement/targetDecompositionYear/index.vue b/src/views/goalManagement/targetDecompositionYear/index.vue index e45db3d..e840ca6 100644 --- a/src/views/goalManagement/targetDecompositionYear/index.vue +++ b/src/views/goalManagement/targetDecompositionYear/index.vue @@ -41,7 +41,7 @@ <el-table-column align="center" prop="dutyDepartmentName" label="责任部门" /> <el-table-column align="center" prop="value" label="考核指标" /> <el-table-column align="center" prop="makerDepartmentName" label="制定人部门" /> - <el-table-column align="center" prop="makeDate" label="制定日期" /> + <el-table-column align="center" prop="makeDate" :formatter="timeDate" label="制定日期" /> <el-table-column align="center" prop="commitPersonName" label="上报人" /> </el-table> </el-tab-pane> @@ -77,6 +77,7 @@ </div> </template> <script lang="ts"> +import { timeDate } from '/@/assets/index.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'; @@ -225,6 +226,7 @@ listApi() } return { + timeDate, listApi, add, resetForm, diff --git a/src/views/goalManagement/targetStatistics/index.vue b/src/views/goalManagement/targetStatistics/index.vue index 9098af9..f746663 100644 --- a/src/views/goalManagement/targetStatistics/index.vue +++ b/src/views/goalManagement/targetStatistics/index.vue @@ -1,19 +1,53 @@ <template> - <div> - <div ref="main" style="width: 100%; height: 400px"></div> + <div style="background-color: #fff"> + <el-row style="padding:20px 0"> + <el-col :span="4" :offset="17"> + <el-select v-model="form.targetType" placeholder="" @change="listApi" style="width:100%"> + <el-option label="年指标" :value="1" /> + <el-option label="月指标" :value="2" /> + <el-option label="半年" :value="3" /> + <el-option label="季度" :value="4" /> + </el-select> + </el-col> + </el-row> + <div ref="main" style="width: 100%; height: 400px;"></div> </div> </template> <script lang="ts"> import { defineComponent, onMounted, ref } from 'vue'; import * as echarts from 'echarts'; import { ElMessage } from 'element-plus'; +import { goalManagementApi } from '/@/api/goalManagement'; export default defineComponent({ setup() { - onMounted(() => { - init(); + const form = ref({ + qName: '', + indexNum: '', + targetType: 1, + divideStatus: '', }); + onMounted(() => { + listApi(); + }); + const listApi = () => { + goalManagementApi() + .gettargetstatistics(form.value.targetType) + .then((res) => { + let arr = []; + arr.push({ + value: res.data.data.noComplete, + name: '未完成', + }); + arr.push({ + value: res.data.data.complete, + name: '已完成', + }); + console.log(arr); + init(arr); + }); + }; const main = ref(); - const init = () => { + const init = (data: any) => { var myChart = echarts.init(main.value); var option = { // title: { @@ -26,20 +60,14 @@ }, legend: { orient: 'vertical', - left: 'left', + left: '30%', }, series: [ { - name: 'Access From', + // name: 'Access From', type: 'pie', - radius: '100%', - data: [ - { value: 1048, name: 'Search Engine' }, - { value: 735, name: 'Direct' }, - { value: 580, name: 'Email' }, - { value: 484, name: 'Union Ads' }, - { value: 300, name: 'Video Ads' }, - ], + radius: '90%', + data: data, emphasis: { itemStyle: { shadowBlur: 10, @@ -54,8 +82,10 @@ myChart.setOption(option); }; return { + form, main, init, + listApi, }; }, }); -- Gitblit v1.9.2