From 2b4328392746fc59f5edf98fed629f8db2804e18 Mon Sep 17 00:00:00 2001
From: shj <1790240199@qq.com>
Date: 星期三, 27 七月 2022 09:29:23 +0800
Subject: [PATCH] 对接
---
src/components/DailogSearch/DailogSearch.vue | 150 +-
src/views/facilityManagement/deviceType/component/Dailog.vue | 17
src/views/goalManagement/safetyAssessment/index.vue | 258 ++--
src/views/facilityManagement/deviceType/index.vue | 212 ++-
src/views/goalManagement/targetSettings/index.vue | 526 ++++----
src/views/goalManagement/targetDecompositionYear/component/Dailog.vue | 126 +
src/views/goalManagement/targetEscalation/index.vue | 272 ++--
src/components/DailogSearchUser/index.vue | 75
src/views/goalManagement/Goalsummary/index.vue | 286 ++--
src/views/goalManagement/safetyAssessment/component/Dailog.vue | 74
src/views/goalManagement/targetDecompositionYear/component/DailogAdd.vue | 162 ++
src/views/goalManagement/targetDecompositionYear/index.vue | 458 ++++---
src/api/facilityManagement/index.ts | 101 +
src/api/goalManagement/index.ts | 254 ++++
src/views/goalManagement/targetSettings/component/dailogAdd.vue | 168 ++
src/views/goalManagement/targetDecompositionMonth/index.vue | 461 ++++---
16 files changed, 2,237 insertions(+), 1,363 deletions(-)
diff --git a/src/api/facilityManagement/index.ts b/src/api/facilityManagement/index.ts
new file mode 100644
index 0000000..546df74
--- /dev/null
+++ b/src/api/facilityManagement/index.ts
@@ -0,0 +1,101 @@
+import request from '/@/utils/request';
+export function facilityManagementApi(){
+ return{
+ // 设备设施类型管理 查询单条数据
+ getequipmentTypeMngDetail:(params:any)=>{
+ return request({
+ url:`/equipmentTypeMng/selectOne/${params}`,
+ method:"get"
+ })
+ },
+ // 设备设施类型管理 新增或者修改数据
+ getequipmentTypeMngAddOrUpdate:(params:object)=>{
+ return request({
+ url:"/equipmentTypeMng/addOrUpdate",
+ method:"post",
+ data:params
+ })
+ },
+ // 设备设施类型管理 删除
+ getequipmentTypeMngDelete:(params:any)=>{
+ return request({
+ url:`/equipmentTypeMng/delete?ids=${params}`,
+ method:"get"
+ })
+ },
+ // 设备设施类型管理 查询树状数据
+ getequipmentTypeMngTreeData:()=>{
+ return request({
+ url:`/equipmentTypeMng/treeData`,
+ method:"get"
+ })
+ },
+ // 仪器仪表信息、生产设备设施、安全设备设施 查询单条数据
+ getequipmentInfoDetail:(params:any)=>{
+ return request({
+ url:`/equipmentInfo/selectOne/${params}`,
+ method:"get"
+ })
+ },
+ // 仪器仪表信息、生产设备设施、安全设备设施 新增或者修改数据
+ getequipmentInfoAddOrUpdate:(params:object)=>{
+ return request({
+ url:"/equipmentInfo/addOrUpdate",
+ method:"post",
+ data:params
+ })
+ },
+ // 仪器仪表信息、生产设备设施、安全设备设施 删除
+ getequipmentInfoDelete:(params:any)=>{
+ return request({
+ url:`/equipmentInfo/delete?ids=${params}`,
+ method:"get"
+ })
+ },
+ // 仪器仪表信息、生产设备设施、安全设备设施 分页查询数据
+ getequipmentInfoList:(params:object)=>{
+ return request({
+ url:"/equipmentInfo/page/list",
+ method:"post",
+ data:params
+ })
+ },
+ // 仪器仪表信息、生产设备设施、安全设备设施 统计
+ getequipmentInfoStatistics:(params:any)=>{
+ return request({
+ url:`/equipmentInfo/statistics`,
+ method:"get"
+ })
+ },
+ // 重点监管装置/设备 查询单条数据
+ getkeypointEquipmentInfoDetail:(params:any)=>{
+ return request({
+ url:`/keypointEquipmentInfo/selectOne/${params}`,
+ method:"get"
+ })
+ },
+ // 重点监管装置/设备 新增或者修改数据
+ getkeypointEquipmentInfoAddOrUpdate:(params:object)=>{
+ return request({
+ url:`/keypointEquipmentInfo/addOrUpdate`,
+ method:"post",
+ data:params
+ })
+ },
+ // 重点监管装置/设备 删除
+ getkeypointEquipmentInfoDetele:(params:any)=>{
+ return request({
+ url:`/keypointEquipmentInfo/delete?ids=${params}`,
+ method:"get"
+ })
+ },
+ // 重点监管装置/设备 分页查询数据
+ getkeypointEquipmentInfoAddOrList:(params:object)=>{
+ return request({
+ url:`/keypointEquipmentInfo/page/list`,
+ method:"post",
+ data:params
+ })
+ },
+ }
+}
\ No newline at end of file
diff --git a/src/api/goalManagement/index.ts b/src/api/goalManagement/index.ts
new file mode 100644
index 0000000..0daab7a
--- /dev/null
+++ b/src/api/goalManagement/index.ts
@@ -0,0 +1,254 @@
+
+import request from '/@/utils/request';
+export function goalManagementApi() {
+ return {
+ // 目标设置、目标指标分解列表
+ getTargetMngList: (params: object) => {
+ return request({
+ url: "/targetMng/page/list",
+ method: "post",
+ data: params
+ })
+ },
+ // 目标设置详情
+ getTargetMngDetail: (params: any) => {
+ return request({
+ url: `/targetMng/selectOne/${params}`,
+ method: "get",
+ })
+ },
+ // 目标设置新增或者修改数据
+ getTargetMngAddOrupdata: (params: object) => {
+ return request({
+ url: "/targetMng/addOrUpdate",
+ method: "post",
+ data: params
+ })
+ },
+ // 目标设置删除
+ getTargetMngDelete: (params: any) => {
+ return request({
+ url: `/targetMng/delete?ids=${params}`,
+ method: "get",
+ })
+ },
+ // 目标指标分解-新增或者修改数据
+ gettargetDivideDetail: (params: object) => {
+ return request({
+ url: "/targetDivideDetail/addOrUpdate",
+ method: "post",
+ data: params
+ })
+ },
+ // 统计
+ getEquipmentInfo: () => {
+ return request({
+ url: "/equipmentInfo/statistics",
+ method: "get"
+ })
+ },
+ // 目标责任书 分页查询数据
+ gettargetDutyfileInfoList: (params: object) => {
+ return request({
+ url: "/targetDutyfileInfo/page/list",
+ method: "post",
+ data: params
+ })
+ },
+ // 目标责任书 查询单条数据
+ gettargetDutyfileInfoDetail: (params: any) => {
+ return request({
+ url: `/targetDutyfileInfo/selectOne/${params}`,
+ method: "get"
+ })
+ },
+ // 目标责任书 新增或者修改数据
+ gettargetDutyfileInfoAddorUpdata: (params: object) => {
+ return request({
+ url: `/targetDutyfileInfo/addOrUpdate`,
+ method: "post",
+ data: params
+ })
+ },
+ // 目标责任书 删除
+ gettargetDutyfileInfoDelete: (params: any) => {
+ return request({
+ url: `/targetDutyfileInfo/delete?ids=${params}`,
+ method: "get",
+ })
+ },
+ // 奖惩标准设定 分页查询数据
+ getrewardPunishmentStandardList: (params: object) => {
+ return request({
+ url: "/rewardPunishmentStandard/page/list",
+ method: "post",
+ data: params
+ })
+ },
+ // 奖惩标准设定 查询单条数据
+ getrewardPunishmentStandardDetail: (params: any) => {
+ return request({
+ url: `/rewardPunishmentStandard/selectOne/${params}`,
+ method: "get",
+ })
+ },
+ // 奖惩标准设定 新增或者修改数据
+ getrewardPunishmentStandardaddOrUpdate: (params: object) => {
+ return request({
+ url: "/rewardPunishmentStandard/addOrUpdate",
+ method: "post",
+ data: params
+ })
+ },
+ // 奖惩标准设定 删除
+ getrewardPunishmentStandardDelete: (params: any) => {
+ return request({
+ url: `/rewardPunishmentStandard/delete?ids=${params}`,
+ method: "get",
+ })
+ },
+ // 奖惩记录 分页查询数据
+ getrewardPunishmentList: (params: object) => {
+ return request({
+ url: "/rewardPunishmentDetail/page/list",
+ method: "post",
+ data: params
+ })
+ },
+ // 奖惩记录 查询单条数据
+ getrewardPunishmentDetail: (params: any) => {
+ return request({
+ url: `/rewardPunishmentDetail/selectOne/${params}`,
+ method: "get",
+ })
+ },
+ // 奖惩记录 新增或者修改数据
+ getrewardPunishmentAddOrUpdate: (params: object) => {
+ return request({
+ url: `/rewardPunishmentDetail/addOrUpdate`,
+ method: "post",
+ data: params
+ })
+ },
+ // 奖惩记录 删除
+ getrewardPunishmentDelete: (params: any) => {
+ return request({
+ url: `/rewardPunishmentDetail/delete?ids=${params}`,
+ method: "get",
+ })
+ },
+ // 绩效考核管理 安全考核管理 分页查询数据
+ getexamineMngList: (params: object) => {
+ return request({
+ url: "/examineMng/page/list",
+ method: "post",
+ data: params
+ })
+ },
+ // 绩效考核管理 安全考核管理 查询单条数据
+ getexamineMngDetail: (params: any) => {
+ return request({
+ url: `/examineMng/selectOne/${params}`,
+ method: "get",
+ })
+ },
+ // 绩效考核管理 安全考核管理 新增或者修改数据
+ getexamineMngAddOrUpdate: (params: object) => {
+ return request({
+ url: `/examineMng/addOrUpdate`,
+ method: "post",
+ data: params
+ })
+ },
+ // 绩效考核管理 安全考核管理 删除
+ getexamineMngDelete: (params: any) => {
+ return request({
+ url: `/examineMng/delete?ids=${params}`,
+ method: "get",
+ })
+ },
+ // 绩效考核管理 考核标准设定 分页查询数据
+ getexamineTemplateList: (params: object) => {
+ return request({
+ url: "/examineTemplate/page/list",
+ method: "post",
+ data: params
+ })
+ },
+ // 绩效考核管理 考核标准设定 查询单条数据
+ getexamineTemplateDetail: (params: any) => {
+ return request({
+ url: `/examineTemplate/selectOne/${params}`,
+ method: "get",
+ })
+ },
+ // 绩效考核管理 考核标准设定 新增或者修改数据
+ getexamineTemplateAddOrUpdate: (params: object) => {
+ return request({
+ url: `/examineTemplate/addOrUpdate`,
+ method: "post",
+ data: params
+ })
+ },
+ // 绩效考核管理 考核标准设定 删除
+ getexamineTemplateDelete: (params: any) => {
+ return request({
+ url: `/examineTemplate/delete?ids=${params}`,
+ method: "get",
+ })
+ },
+ // 目标汇总 分页查询数据
+ gettargetDutySummaryList: (params: object) => {
+ return request({
+ url: "/targetDutySummary/page/list",
+ method: "post",
+ data: params
+ })
+ },
+ // 目标汇总 查询单条数据
+ gettargetDutySummaryDetail: (params: any) => {
+ return request({
+ url: `/targetDutySummary/selectOne/${params}`,
+ method: "get",
+ })
+ },
+ // 目标汇总 新增或者修改数据
+ gettargetDutySummaryAddOrUpdate: (params: object) => {
+ return request({
+ url: `/targetDutySummary/addOrUpdate`,
+ method: "post",
+ data: params
+ })
+ },
+ // 目标汇总 删除
+ gettargetDutySummaryDelete: (params: any) => {
+ return request({
+ url: `/targetDutySummary/delete?ids=${params}`,
+ method: "get",
+ })
+ },
+ // 安全目标考核 查询单条数据
+ gettargetExamineDetail: (params: any) => {
+ return request({
+ url: `/targetExamine/selectOne/${params}`,
+ method: "get"
+ })
+ },
+ // 安全目标考核 新增或者修改数据
+ gettargetExamineAddOrUpdate: (params: object) => {
+ return request({
+ url: "/targetExamine/addOrUpdate",
+ method: "post",
+ data: params
+ })
+ },
+ // 目标检查上报 (有疑问) 新增或者修改数据 ---???
+ getworkApproveAddOrUpdate: (params: object) => {
+ return request({
+ url: "/workApprove/submitApprove",
+ method: "post",
+ data: params
+ })
+ },
+ }
+}
\ No newline at end of file
diff --git a/src/components/DailogSearch/DailogSearch.vue b/src/components/DailogSearch/DailogSearch.vue
index 562ee42..b1fa129 100644
--- a/src/components/DailogSearch/DailogSearch.vue
+++ b/src/components/DailogSearch/DailogSearch.vue
@@ -7,51 +7,49 @@
<el-row>
<el-col :span="6">
<el-form-item size="default">
- <el-input v-model="ruleForm.pass" placeholder="安全目标指标" />
+ <el-input v-model="ruleForm.searchParams.qName" placeholder="安全目标指标" />
</el-form-item>
</el-col>
<el-col :span="6" :offset="1">
<el-form-item size="default">
- <el-input v-model="ruleForm.checkPass" placeholder="目标指标编号" />
+ <el-input v-model="ruleForm.searchParams.indexNum" placeholder="目标指标编号" />
</el-form-item>
</el-col>
<el-col :span="6" :offset="1">
<el-form-item>
- <el-button type="primary" @click="submitForm(ruleFormRef)">查询</el-button>
- <el-button @click="resetForm(ruleFormRef)">重置</el-button>
+ <el-button type="primary" @click="listApi">查询</el-button>
+ <el-button @click="resetForm">重置</el-button>
</el-form-item>
</el-col>
</el-row>
</el-form>
- <el-button size="default" :icon="Delete">清除选择</el-button>
- <el-table :data="tableData" style="width: 100%; margin-top: 20px">
+ <el-button size="default" :icon="Delete" @click="clear">清除选择</el-button>
+ <el-table :data="tableData" style="width: 100%; margin-top: 20px" @cell-click="radio">
<el-table-column align="center">
<template #default="scope">
- <el-radio-group v-model="radio1" @change="radio">
- <el-radio :label="scope.row.date" size="large">{{null}}</el-radio>
+ <el-radio-group v-model="radio1">
+ <el-radio :label="scope.row.id" size="large">{{ null }}</el-radio>
</el-radio-group>
</template>
</el-table-column>
- <el-table-column align="center" prop="date" label="安全目标指标" width="180" />
- <el-table-column align="center" prop="name" label="目标指标编号" width="180" />
- <el-table-column align="center" prop="address" label="年度" />
- <el-table-column align="center" prop="address" label="指标值" />
+ <el-table-column align="center" prop="qName" label="安全目标指标" width="180" />
+ <el-table-column align="center" prop="indexNum" label="目标指标编号" width="180" />
+ <el-table-column align="center" prop="year" label="年度" />
+ <el-table-column align="center" prop="value" label="指标值" />
</el-table>
<el-pagination
style="padding: 20px 0; border-bottom: 1px solid #dedede"
v-model:currentPage="currentPage4"
v-model:page-size="pageSize4"
- :page-sizes="[100, 200, 300, 400]"
- :small="small"
- :disabled="disabled"
- :background="background"
+ :page-sizes="[10, 20, 30, 40]"
layout="total, sizes, prev, pager, next, jumper"
- :total="400"
+ :total="total"
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
/>
</el-col>
<el-col :span="7">
+ <div v-if="dynamicTags[0]==''?false:true">
<el-tag
v-for="tag in dynamicTags"
:key="tag"
@@ -61,87 +59,115 @@
:disable-transitions="false"
@close="handleClose(tag)"
>
- {{ tag }}
+ {{ tag.qName }}
</el-tag>
+ </div>
</el-col>
</el-row>
<template #footer>
<span class="dialog-footer">
<el-button @click="dialogVisible = false" size="default">关闭</el-button>
- <el-button type="primary" @click="dialogVisible = false" size="default">确定</el-button>
+ <el-button type="primary" @click="submitForm" size="default">确定</el-button>
</span>
</template>
</el-dialog>
</template>
<script lang="ts">
-import { defineComponent, reactive, ref } from 'vue';
-import { Delete,FullScreen } from '@element-plus/icons-vue';
+import { defineComponent, reactive, ref, onMounted } from 'vue';
+import { Delete, FullScreen } from '@element-plus/icons-vue';
+import { ElMessageBox, ElMessage, ElButton, ElInput, TabsPaneContext, FormInstance } from 'element-plus';
+import { goalManagementApi } from '/@/api/goalManagement';
export default defineComponent({
- setup() {
+ setup(props,{emit}) {
const dialogVisible = ref<boolean>(false);
- const openDailog = () => {
+ const openDailog = (type:any) => {
dialogVisible.value = true;
+ ruleForm.searchParams.targetType=type
+ listApi();
};
// 搜索条件
const ruleForm = reactive({
- pass: '',
- checkPass: '',
+ pageSize: 10,
+ pageIndex: 1,
+ searchParams: {
+ qName: '', ////安全目标指标
+ indexNum: '', ////目标指标编号
+ targetType: '', ////指标类型 1:年指标 2:月指标
+ divideStatus: '', ////分解状态 1:已分解 2:未分解
+ },
});
- // 表格
- const tableData = [
- {
- 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',
- },
- ];
- const pageSize4 = ref(100);
+ // 下方导航与表格
+ const tableData = ref([]);
+ const currentPage4 = ref();
+ const pageSize4 = ref();
+ const total = ref();
+ const resetForm = () => {
+ ruleForm.searchParams.qName = '';
+ ruleForm.searchParams.indexNum = '';
+ };
+ const listApi = () => {
+ goalManagementApi()
+ .getTargetMngList(ruleForm)
+ .then((res) => {
+ if (res.data.code == 200) {
+ tableData.value = res.data.data;
+ currentPage4.value = res.data.pageIndex;
+ pageSize4.value = res.data.pageSize;
+ total.value = res.data.total;
+ } else {
+ ElMessage.error(res.data.msg);
+ }
+ });
+ };
+ onMounted(() => {
+ });
+
const handleSizeChange = (val: number) => {
- console.log(`${val} items per page`);
+ // console.log(`${val} items per page`);
+ ruleForm.pageSize = val;
+ listApi();
};
const handleCurrentChange = (val: number) => {
- console.log(`current page: ${val}`);
+ // console.log(`current page: ${val}`);
+ ruleForm.pageIndex = val;
+ listApi();
};
// 右方点击添加后显示标签
- const dynamicTags = ref(['2016-05-03']);
+ const dynamicTags = ref(['']);
const handleClose = (tag: string) => {
dynamicTags.value.splice(dynamicTags.value.indexOf(tag), 1);
- radio1.value=""
+ radio1.value = '';
};
- const radio1=ref('2016-05-03')
- const radio=(event:any)=>{
- dynamicTags.value[0]=event
+ const radio1 = ref('');
+ const radio = (event: any) => {
+ dynamicTags.value[0] = event;
+ };
+ const clear=()=>{
+ dynamicTags.value=['']
+ radio1.value=""
}
- //全屏
+ //全屏
const full = ref(false);
const toggleFullscreen = () => {
if (full.value == false) {
full.value = true;
- }else{
- full.value = false;
- }
+ } else {
+ full.value = false;
+ }
};
+ const submitForm=()=>{
+ let obj=JSON.parse(JSON.stringify(dynamicTags.value))
+ emit("backNum",obj[0])
+ dialogVisible.value = false
+ }
return {
dialogVisible,
openDailog,
ruleForm,
tableData,
pageSize4,
+ resetForm,
+ listApi,
handleSizeChange,
handleCurrentChange,
dynamicTags,
@@ -151,7 +177,9 @@
full,
toggleFullscreen,
Delete,
- FullScreen
+ FullScreen,
+ clear,
+ submitForm
};
},
});
diff --git a/src/components/DailogSearchUser/index.vue b/src/components/DailogSearchUser/index.vue
index 775913e..a1e722b 100644
--- a/src/components/DailogSearchUser/index.vue
+++ b/src/components/DailogSearchUser/index.vue
@@ -10,7 +10,7 @@
</div>
</div>
</el-col>
- <el-col :span="14" style="padding:20px">
+ <el-col :span="14" style="padding: 20px">
<el-form ref="ruleFormRef" :model="ruleForm" status-icon>
<el-row>
<el-col :span="10" :offset="1">
@@ -26,12 +26,19 @@
</el-col>
</el-row>
</el-form>
- <el-table :data="tableData" style="width: 100%; margin-top: 20px">
- <el-table-column align="center" width="50px" type="selection"></el-table-column>
- <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="address" label="指标值" />
+ <el-table :data="tableData" style="width: 100%; margin-top: 20px" @cell-click="radio">
+ <el-table-column align="center">
+ <template #default="scope">
+ <el-radio-group v-model="radio1">
+ <el-radio :label="scope.row.id" size="large">{{ null }}</el-radio>
+ </el-radio-group>
+ </template>
+ </el-table-column>
+ <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="address" label="所属部门" />
+ <el-table-column align="center" prop="address" label="状态" />
</el-table>
<el-pagination
style="padding: 20px 0; border-bottom: 1px solid #dedede"
@@ -48,15 +55,23 @@
/>
</el-col>
<el-col :span="4">
- <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
+ v-for="tag in dynamicTags"
+ :key="tag"
+ class="mx-1"
+ style="margin: 5px"
+ closable
+ :disable-transitions="false"
+ @close="handleClose(tag)"
+ >
+ {{ tag.name }}
</el-tag>
</el-col>
</el-row>
<template #footer>
<span class="dialog-footer">
<el-button @click="dialogVisible = false" size="default">关闭</el-button>
- <el-button type="primary" @click="dialogVisible = false" size="default">确定</el-button>
+ <el-button type="primary" @click="submitForm" size="default">确定</el-button>
</span>
</template>
</el-dialog>
@@ -69,7 +84,7 @@
children?: Tree[];
}
export default defineComponent({
- setup() {
+ setup(props,{emit}) {
//左边树形部分
const names = ref<any>();
const handleNodeClick = (data: Tree) => {
@@ -141,22 +156,23 @@
});
// 表格
const tableData = [
- {
+ { id:1,
date: '2016-05-03',
name: 'Tom',
address: 'No. 189, Grove St, Los Angeles',
},
- {
+ {
+ id:2,
date: '2016-05-02',
name: 'Tom',
address: 'No. 189, Grove St, Los Angeles',
},
- {
+ { id:3,
date: '2016-05-04',
name: 'Tom',
address: 'No. 189, Grove St, Los Angeles',
},
- {
+ { id:4,
date: '2016-05-01',
name: 'Tom',
address: 'No. 189, Grove St, Los Angeles',
@@ -169,26 +185,35 @@
const handleCurrentChange = (val: number) => {
console.log(`current page: ${val}`);
};
- const radio1 = ref('1');
- // 右方点击添加后显示标签
- const dynamicTags = ref(['Tag 1', 'Tag 2', 'Tag 3']);
+ // 右方点击添加后显示标签
+ const dynamicTags = ref(['']);
const handleClose = (tag: string) => {
dynamicTags.value.splice(dynamicTags.value.indexOf(tag), 1);
+ radio1.value = '';
+ };
+ const radio1 = ref('');
+ const radio = (event: any) => {
+ dynamicTags.value[0] = event;
};
// 开启弹窗
const dialogVisible = ref(false);
const openDailog = () => {
dialogVisible.value = true;
};
- //全屏
+ //全屏
const full = ref(false);
const toggleFullscreen = () => {
if (full.value == false) {
full.value = true;
- }else{
- full.value = false;
- }
+ } else {
+ full.value = false;
+ }
};
+ const submitForm=()=>{
+ let obj=JSON.parse(JSON.stringify(dynamicTags.value))
+ emit("SearchUser",obj[0])
+ dialogVisible.value = false
+ }
return {
dialogVisible,
names,
@@ -202,10 +227,12 @@
handleCurrentChange,
radio1,
dynamicTags,
- handleClose,
+ handleClose,
FullScreen,
full,
- toggleFullscreen
+ toggleFullscreen,
+ radio,
+ submitForm
};
},
});
diff --git a/src/views/facilityManagement/deviceType/component/Dailog.vue b/src/views/facilityManagement/deviceType/component/Dailog.vue
index de9cabf..92c73cf 100644
--- a/src/views/facilityManagement/deviceType/component/Dailog.vue
+++ b/src/views/facilityManagement/deviceType/component/Dailog.vue
@@ -1,13 +1,13 @@
<template>
- <el-dialog v-model="dialogVisible" :fullscreen="full" title="新建设备设施类型管理" width="50%" draggable>
+ <el-dialog v-model="dialogVisible" :fullscreen="full" :title="titles" width="50%" 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-select v-model="form.region" placeholder="请选择" style="width: 100%">
- <el-option label="Zone one" value="shanghai" />
- <el-option label="Zone two" value="beijing" />
+ <el-option label="1">是</el-option>
+ <el-option label="2">否</el-option>
</el-select>
</el-form-item>
</el-col>
@@ -47,9 +47,15 @@
export default defineComponent({
setup() {
const dialogVisible = ref(false);
- const form = ref({});
- const openDailog = () => {
+ const form = ref({
+
+ });
+ const titles=ref()
+ const openDailog = (title:string,id:number) => {
dialogVisible.value = true;
+ titles.value=`${title}设备设施类型管理`
+
+
};
//全屏
const full = ref(false);
@@ -63,6 +69,7 @@
return {
dialogVisible,
form,
+ titles,
openDailog,
full,
toggleFullscreen,
diff --git a/src/views/facilityManagement/deviceType/index.vue b/src/views/facilityManagement/deviceType/index.vue
index 4b50a46..c729541 100644
--- a/src/views/facilityManagement/deviceType/index.vue
+++ b/src/views/facilityManagement/deviceType/index.vue
@@ -1,96 +1,132 @@
<template>
- <div class="box">
- <el-button type="primary" :icon="Plus" @click="openD" size="default">新建</el-button>
- <el-table :data="tableData" style="width: 100%" row-key="id">
- <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="address" label="类别名称" />
- <el-table-column align="center" label="操作">
- <template #default>
- <el-button type="primary" link :icon="View">查看</el-button>
- <el-button type="primary" link :icon="EditPen">修改</el-button>
- <el-button type="primary" link :icon="Delete">删除</el-button>
- <el-button type="primary" link :icon="CirclePlus">添加下级设备设施类型管理</el-button>
- </template>
- </el-table-column>
- </el-table>
- <Dailog ref="Show"></Dailog>
- </div>
+ <div class="box">
+ <el-button type="primary" :icon="Plus" @click="openD('新建')" size="default">新建</el-button>
+ <el-table :data="tableData" style="width: 100%" row-key="id" default-expand-all>
+ <el-table-column align="center" label="是否为设备内容">
+ <template #default="scope">
+ <span v-if="scope.row.isContent == 1">是</span>
+ <span v-if="scope.row.isContent == 2">否</span>
+ </template>
+ </el-table-column>
+ <el-table-column align="center" label="巡检">
+ <template #default="scope">
+ <span v-if="scope.row.isVisit == 1">是</span>
+ <span v-if="scope.row.isVisit == 2">否</span>
+ </template>
+ </el-table-column>
+ <el-table-column align="center" label="检测">
+ <template #default="scope">
+ <span v-if="scope.row.isCheck == 1">是</span>
+ <span v-if="scope.row.isCheck == 2">否</span>
+ </template>
+ </el-table-column>
+ <el-table-column align="center" prop="typeName" label="类别名称" />
+ <el-table-column align="center" label="操作">
+ <template #default>
+ <el-button type="primary" link :icon="View" @click="openD('查看')">查看</el-button>
+ <el-button type="primary" link :icon="EditPen" @click="openD('修改')">修改</el-button>
+ <el-button type="primary" link :icon="Delete">删除</el-button>
+ <el-button type="primary" link :icon="CirclePlus" @click="openD('添加')">添加下级设备设施类型管理</el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+ <Dailog ref="Show"></Dailog>
+ </div>
</template>
<script lang="ts">
-import { defineComponent,ref } from 'vue'
-import {Plus,View,EditPen,Delete,CirclePlus} from '@element-plus/icons-vue'
-import Dailog from "./component/Dailog.vue"
+import { defineComponent, onMounted, ref } from 'vue';
+import { Plus, View, EditPen, Delete, CirclePlus } from '@element-plus/icons-vue';
+import Dailog from './component/Dailog.vue';
+import { facilityManagementApi } from '/@/api/facilityManagement';
+import { ElMessage } from 'element-plus';
export default defineComponent({
- components:{Dailog},
- setup() {
- const tableData = [
- {
- id: 1,
- date: '2016-05-02',
- name: 'wangxiaohu',
- },
- {
- id: 2,
- date: '2016-05-04',
- name: 'wangxiaohu',
- },
- {
- id: 3,
- date: '2016-05-01',
- name: 'wangxiaohu',
- children: [
- {
- id: 31,
- date: '2016-05-01',
- name: 'wangxiaohu',
- children: [
- {
- id: 35,
- date: '2016-05-01',
- name: 'wangxiaohu',
- },
- {
- id: 36,
- date: '2016-05-01',
- name: 'wangxiaohu',
- },
- ],
- },
- {
- id: 32,
- date: '2016-05-01',
- name: 'wangxiaohu',
- },
- ],
- },
- {
- id: 4,
- date: '2016-05-03',
- name: 'wangxiaohu',
- },
-]
- const Show=ref()
- const openD=()=>{
- Show.value.openDailog()
- }
- return{
- tableData,
- Show,
- openD,
- Plus,
- View,
- EditPen,
- Delete,
- CirclePlus
- }
- },
-})
+ components: { Dailog },
+ setup() {
+ const listApi = () => {
+ facilityManagementApi()
+ .getequipmentTypeMngTreeData()
+ .then((res) => {
+ if (res.data.code == 200) {
+ tableData.value = res.data.data;
+ } else {
+ ElMessage({
+ showClose: true,
+ message: 'Oops, this is a error message.',
+ type: 'error',
+ });
+ }
+ });
+ };
+ onMounted(() => {
+ listApi();
+ });
+ const tableData = ref([
+ {
+ id: 1,
+ date: '2016-05-02',
+ name: 'wangxiaohu',
+ },
+ {
+ id: 2,
+ date: '2016-05-04',
+ name: 'wangxiaohu',
+ },
+ {
+ id: 3,
+ date: '2016-05-01',
+ name: 'wangxiaohu',
+ children: [
+ {
+ id: 31,
+ date: '2016-05-01',
+ name: 'wangxiaohu',
+ children: [
+ {
+ id: 35,
+ date: '2016-05-01',
+ name: 'wangxiaohu',
+ },
+ {
+ id: 36,
+ date: '2016-05-01',
+ name: 'wangxiaohu',
+ },
+ ],
+ },
+ {
+ id: 32,
+ date: '2016-05-01',
+ name: 'wangxiaohu',
+ },
+ ],
+ },
+ {
+ id: 4,
+ date: '2016-05-03',
+ name: 'wangxiaohu',
+ },
+ ]);
+ const Show = ref();
+ const openD = (title: string, id: number) => {
+ Show.value.openDailog(title, id);
+ };
+ return {
+ tableData,
+ Show,
+ openD,
+ listApi,
+ Plus,
+ View,
+ EditPen,
+ Delete,
+ CirclePlus,
+ };
+ },
+});
</script>
<style scoped>
-.box{
- padding: 20px;
- background-color: #fff;
+.box {
+ padding: 20px;
+ background-color: #fff;
}
</style>
diff --git a/src/views/goalManagement/Goalsummary/index.vue b/src/views/goalManagement/Goalsummary/index.vue
index 1ca28d3..2104dfd 100644
--- a/src/views/goalManagement/Goalsummary/index.vue
+++ b/src/views/goalManagement/Goalsummary/index.vue
@@ -1,166 +1,178 @@
<template>
- <div>
- <el-form ref="ruleFormRef" :model="ruleForm" status-icon label-width="20px" class="topTitle">
- <el-row>
- <el-col :span="4">
- <el-form-item size="default">
- <el-input v-model="ruleForm.pass" placeholder="年度" />
- </el-form-item>
- </el-col>
- <el-col :span="4">
- <el-form-item>
- <el-select v-model="ruleForm.region" placeholder="请选择责任部门" size="default">
- <el-option label="Zone one" value="shanghai" />
- <el-option label="Zone two" value="beijing" />
- </el-select>
- </el-form-item>
- </el-col>
- <el-col :span="4">
- <el-form-item>
- <el-button size="default" type="primary" @click="submitForm(ruleFormRef)">查询</el-button>
- <el-button size="default" @click="resetForm(ruleFormRef)">重置</el-button>
- </el-form-item>
- </el-col>
- </el-row>
- </el-form>
- <div class="minCenter">
- <div class="btns">
- <p>汇总日期:2022-07-04 23:00:07</p>
- <div>
- <el-button type="primary" size="default" :icon="Download">导出</el-button>
+ <div>
+ <el-form ref="ruleFormRef" :model="ruleForm" status-icon label-width="20px" class="topTitle">
+ <el-row>
+ <el-col :span="4">
+ <el-form-item size="default">
+ <el-input v-model="ruleForm.searchParams.year" placeholder="年度" />
+ </el-form-item>
+ </el-col>
+ <el-col :span="4">
+ <el-form-item>
+ <el-tree-select v-model="form.searchParams.departmentId" :data="data" class="w100" placeholder="请选择" />
+ </el-form-item>
+ </el-col>
+ <el-col :span="4">
+ <el-form-item>
+ <el-button size="default" type="primary" @click="listApi">查询</el-button>
+ <el-button size="default" @click="resetForm">重置</el-button>
+ </el-form-item>
+ </el-col>
+ </el-row>
+ </el-form>
+ <div class="minCenter">
+ <div class="btns">
+ <p>汇总日期:2022-07-04 23:00:07</p>
+ <div>
+ <el-button type="primary" size="default" :icon="Download">导出</el-button>
+ </div>
+ </div>
+ <el-table :data="tableData" style="width: 100%">
+ <el-table-column label="责任部门" align="center">
+ <template #default="scope">{{ scope.row.departmentId }}</template>
+ </el-table-column>
+ <el-table-column property="targetValue" align="center" label="安全目标指标" />
+ <el-table-column property="examineValue" label="考核指标" align="center" show-overflow-tooltip />
+ <el-table-column property="yiYue" label="1月" align="center" show-overflow-tooltip />
+ <el-table-column property="february" label="2月" align="center" show-overflow-tooltip />
+ <el-table-column property="erYue" label="3月" align="center" show-overflow-tooltip />
+ <el-table-column property="sanYue" label="4月" align="center" show-overflow-tooltip />
+ <el-table-column property="siYue" label="5月" align="center" show-overflow-tooltip />
+ <el-table-column property="wuYue" label="6月" align="center" show-overflow-tooltip />
+ <el-table-column property="liuYue" label="7月" align="center" show-overflow-tooltip />
+ <el-table-column property="qiYue" label="8月" align="center" show-overflow-tooltip />
+ <el-table-column property="baYue" label="9月" align="center" show-overflow-tooltip />
+ <el-table-column property="jiuYue" label="10月" align="center" show-overflow-tooltip />
+ <el-table-column property="shiYue" label="11月" align="center" show-overflow-tooltip />
+ <el-table-column property="shiyiYue" label="12月" align="center" show-overflow-tooltip />
+ <el-table-column label="考核结果" align="center">
+ <template #default="scope">{{ scope.row.examineResult }}</template>
+ </el-table-column>
+ </el-table>
+ <div class="pages">
+ <el-pagination
+ v-model:currentPage="currentPage4"
+ v-model:page-size="pageSize4"
+ :page-sizes="[10, 20, 30, 40]"
+ layout="total, sizes, prev, pager, next, jumper"
+ :total="total"
+ @size-change="handleSizeChange"
+ @current-change="handleCurrentChange"
+ />
</div>
</div>
- <el-table ref="multipleTableRef" :data="tableData" style="width: 100%">
- <el-table-column label="责任部门" align="center" >
- <template #default="scope">{{ scope.row.date }}</template>
- </el-table-column>
- <el-table-column property="name" align="center" label="安全目标指标" />
- <el-table-column property="address" label="考核指标" align="center" show-overflow-tooltip />
- <el-table-column property="address" label="1月" align="center" show-overflow-tooltip />
- <el-table-column property="address" label="2月" align="center" show-overflow-tooltip />
- <el-table-column property="address" label="3月" align="center" show-overflow-tooltip />
- <el-table-column property="address" label="4月" align="center" show-overflow-tooltip />
- <el-table-column property="address" label="5月" align="center" show-overflow-tooltip />
- <el-table-column property="address" label="6月" align="center" show-overflow-tooltip />
- <el-table-column property="address" label="7月" align="center" show-overflow-tooltip />
- <el-table-column property="address" label="8月" align="center" show-overflow-tooltip />
- <el-table-column property="address" label="9月" align="center" show-overflow-tooltip />
- <el-table-column property="address" label="10月" align="center" show-overflow-tooltip />
- <el-table-column property="address" label="11月" align="center" show-overflow-tooltip />
- <el-table-column property="address" label="12月" align="center" show-overflow-tooltip />
- <el-table-column property="address" label="考核结果" align="center" show-overflow-tooltip />
- </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>
</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';
+import { goalManagementApi } from '/@/api/goalManagement';
export default defineComponent({
components: { ElButton, ElInput },
setup() {
// 搜索条件
const ruleForm = reactive({
- pass: '',
- checkPass: '',
+ pageSize: 10,
+ pageIndex: 1,
+ searchParams: {
+ year: '', //年度
+ departmentId: '', //责任部门
+ },
});
- 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 tableData = ref([]);
+ const currentPage4 = ref();
+ const pageSize4 = ref();
+ const total = ref();
+ const resetForm = () => {
+ ruleForm.searchParams.year = '';
+ ruleForm.searchParams.departmentId = '';
};
- const formatter = (row: User, column: TableColumnCtx<User>) => {
- return row.address;
+ const listApi = () => {
+ goalManagementApi()
+ .gettargetDutySummaryList(ruleForm)
+ .then((res) => {
+ if (res.data.code == 200) {
+ tableData.value = res.data.data;
+ currentPage4.value = res.data.pageIndex;
+ pageSize4.value = res.data.pageSize;
+ total.value = res.data.total;
+ } else {
+ ElMessage.error(res.data.msg);
+ }
+ });
};
+ onMounted(() => {
+ listApi();
+ });
- 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`);
+ // console.log(`${val} items per page`);
+ ruleForm.pageSize = val;
+ listApi();
};
const handleCurrentChange = (val: number) => {
- console.log(`current page: ${val}`);
+ // console.log(`current page: ${val}`);
+ ruleForm.pageIndex = val;
+ listApi();
};
+ const data = [
+ {
+ value: '1',
+ label: '广汇能源综合物流发展有限责任公司',
+ children: [
+ {
+ value: '11',
+ label: '经营班子',
+ children: [],
+ },
+ ],
+ },
+ {
+ value: '2',
+ label: '生产运行部',
+ children: [
+ {
+ value: '21',
+ label: '灌装一班',
+ children: [],
+ },
+ {
+ value: '22',
+ label: '工艺四班',
+ children: [],
+ },
+ ],
+ },
+ {
+ value: '3',
+ label: '设备部',
+ children: [
+ {
+ value: '31',
+ label: '仪表班',
+ children: [],
+ },
+ {
+ value: '32',
+ label: '机修班',
+ children: [],
+ },
+ ],
+ },
+ ];
return {
ruleForm,
- resetForm,
- activeName,
- handleClick,
tableData,
- formatter,
currentPage4,
pageSize4,
+ total,
+ data,
+ resetForm,
+ listApi,
handleSizeChange,
handleCurrentChange,
- small,
- disabled,
- background,
Plus,
Delete,
Upload,
@@ -188,10 +200,10 @@
display: flex;
justify-content: left;
}
-.btns p{
- font-size: 18px;
- line-height: 40px;
- margin-right: 20px;
+.btns p {
+ font-size: 18px;
+ line-height: 40px;
+ margin-right: 20px;
}
.pages {
padding: 20px 0;
diff --git a/src/views/goalManagement/safetyAssessment/component/Dailog.vue b/src/views/goalManagement/safetyAssessment/component/Dailog.vue
index 04c65bb..7639890 100644
--- a/src/views/goalManagement/safetyAssessment/component/Dailog.vue
+++ b/src/views/goalManagement/safetyAssessment/component/Dailog.vue
@@ -5,26 +5,26 @@
<el-row>
<el-col :span="11">
<el-form-item label="安全目标指标" size="default">
- <el-input v-model="form.name">
+ <el-input v-model="form.qName" :disabled="disabled">
<template #append> <el-button :icon="Search" @click="daiInpt" /> </template
></el-input>
</el-form-item>
</el-col>
<el-col :span="11" :offset="2">
<el-form-item label="目标指标编号" size="default">
- <el-input v-model="form.name" />
+ <el-input v-model="form.indexNum" disabled />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="11">
<el-form-item label="年度" size="default">
- <el-input v-model="form.name" />
+ <el-input v-model="form.year" disabled />
</el-form-item>
</el-col>
<el-col :span="11" :offset="2">
<el-form-item label="指标值" size="default">
- <el-input v-model="form.name" />
+ <el-input v-model="form.value" disabled />
</el-form-item>
</el-col>
</el-row>
@@ -56,58 +56,50 @@
</span>
</template>
</el-dialog>
- <DailogSearch ref="Shows"></DailogSearch>
+ <DailogSearch ref="Shows" @backNum="onNumber"></DailogSearch>
</template>
<script lang="ts">
import { defineComponent, ref, reactive } from 'vue';
import { Search, FullScreen } from '@element-plus/icons-vue';
+import { ElMessageBox, ElMessage, ElButton, ElInput, TabsPaneContext } from 'element-plus';
import DailogSearch from '../../../../components/DailogSearch/DailogSearch.vue';
+import { goalManagementApi } from '/@/api/goalManagement';
export default defineComponent({
components: { DailogSearch },
setup() {
const dialogVisible = ref<boolean>(false);
- const form = reactive({
- name: '',
- region: '',
- date1: '',
- date2: '',
- delivery: false,
- type: [],
- resource: '',
- desc: '',
- });
- const openDailog = (type: string, value: any, projectList: any, projectId: string) => {
+ const form = ref({});
+ const targetType = ref();
+ const disabled = ref(false);
+ const titles = 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()
+ .getTargetMngDetail(id)
+ .then((res) => {
+ if (res.data.code == 200) {
+ form.value = res.data.data;
+ } else {
+ ElMessage.error(res.data.msg);
+ }
+ });
+ }
+ };
+ const onNumber = (e: object) => {
+ form.value = e;
};
// 导航
const activeName = ref('1');
// 表格
- const tableData = [
- {
- 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',
- },
- ];
+ const tableData = ref([]);
// 安全目标指标弹窗
const Shows = ref();
const daiInpt = () => {
- Shows.value.openDailog();
+ Shows.value.openDailog(targetType.value);
};
//全屏
const full = ref(false);
@@ -122,6 +114,10 @@
form,
dialogVisible,
openDailog,
+ targetType,
+ onNumber,
+ disabled,
+ titles,
activeName,
tableData,
Shows,
diff --git a/src/views/goalManagement/safetyAssessment/index.vue b/src/views/goalManagement/safetyAssessment/index.vue
index eb2e230..a932c15 100644
--- a/src/views/goalManagement/safetyAssessment/index.vue
+++ b/src/views/goalManagement/safetyAssessment/index.vue
@@ -1,26 +1,26 @@
<template>
- <div>
- <el-form ref="ruleFormRef" :model="ruleForm" status-icon label-width="20px" class="topTitle">
- <el-row>
- <el-col :span="4">
- <el-form-item size="default">
- <el-input v-model="ruleForm.pass" placeholder="请输入目标指标" />
- </el-form-item>
- </el-col>
- <!-- <el-col :span="4">
+ <div>
+ <el-form ref="ruleFormRef" :model="ruleForm" status-icon label-width="20px" class="topTitle">
+ <el-row>
+ <el-col :span="4">
+ <el-form-item size="default">
+ <el-input v-model="ruleForm.searchParams.indexNum" 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 size="default" type="primary" @click="submitForm(ruleFormRef)">查询</el-button>
- <el-button size="default" @click="resetForm(ruleFormRef)">重置</el-button>
- </el-form-item>
- </el-col>
- </el-row>
- </el-form>
- <div class="minCenter">
+ <el-col :span="4">
+ <el-form-item>
+ <el-button size="default" type="primary" @click="listApi">查询</el-button>
+ <el-button size="default" @click="resetForm">重置</el-button>
+ </el-form-item>
+ </el-col>
+ </el-row>
+ </el-form>
+ <div class="minCenter">
<div class="btns">
<div>
<el-button size="default" type="primary" :icon="Plus" @click="openD('新建')">新建</el-button>
@@ -29,37 +29,33 @@
<!-- <el-button size="default" :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"
- />
+ <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" property="qName" sortable />
+ <el-table-column property="indexNum" align="center" label="考核指标编号" sortable />
+ <el-table-column property="year" label="年度" align="center" sortable show-overflow-tooltip />
+ <el-table-column property="value" label="指标值" align="center" sortable show-overflow-tooltip />
+ <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="Delete" @click="onDelete(scope.row.id)">删除</el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+ <div class="pages">
+ <el-pagination
+ v-model:currentPage="currentPage4"
+ v-model:page-size="pageSize4"
+ :page-sizes="[10, 20, 30, 40]"
+ layout="total, sizes, prev, pager, next, jumper"
+ :total="total"
+ @size-change="handleSizeChange"
+ @current-change="handleCurrentChange"
+ />
+ </div>
+ <Dailog ref="openAdd"></Dailog>
</div>
- <Dailog ref="openAdd"></Dailog>
- </div>
</div>
</template>
<script lang="ts">
@@ -67,104 +63,118 @@
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 { goalManagementApi } from '/@/api/goalManagement';
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: '',
+ pageSize: 10,
+ pageIndex: 1,
+ searchParams: {
+ qName: '', ////安全目标指标
+ indexNum: '', ////目标指标编号
+ targetType: '1', ////指标类型 1:年指标 2:月指标
+ divideStatus: '', ////分解状态 1:已分解 2:未分解
+ },
});
- 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 resetForm = () => {
+ ruleForm.searchParams.qName = '';
+ ruleForm.searchParams.indexNum = '';
};
- const formatter = (row: User, column: TableColumnCtx<User>) => {
- return row.address;
+ const listApi = () => {
+ goalManagementApi()
+ .getTargetMngList(ruleForm)
+ .then((res) => {
+ if (res.data.code == 200) {
+ tableData.value = res.data.data;
+ currentPage4.value = res.data.pageIndex;
+ pageSize4.value = res.data.pageSize;
+ total.value = res.data.total;
+ } else {
+ ElMessage.error(res.data.msg);
+ }
+ });
};
-
- 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 handleClick = (val: any) => {
+ let targetType = JSON.parse(JSON.stringify(val));
+ ruleForm.searchParams.targetType = targetType.paneName;
+ listApi();
+ };
+ onMounted(() => {
+ listApi();
+ });
+ const onAddorUpdata = () => {
+ listApi();
+ };
+ // 表格
+ const tableData = ref();
+ const currentPage4 = ref();
+ const pageSize4 = ref();
+ const total = ref();
const handleSizeChange = (val: number) => {
- console.log(`${val} items per page`);
+ // console.log(`${val} items per page`);
+ ruleForm.pageSize = val;
+ listApi();
};
const handleCurrentChange = (val: number) => {
- console.log(`current page: ${val}`);
+ // console.log(`current page: ${val}`);
+ ruleForm.pageIndex = val;
+ listApi();
+ };
+ // 删除
+ const onDelete = (id: number) => {
+ ElMessageBox.confirm('确定删除所选项吗?', 'Warning', {
+ confirmButtonText: '确定',
+ cancelButtonText: '取消',
+ type: 'warning',
+ })
+ .then(() => {
+ goalManagementApi()
+ .getTargetMngDelete(id)
+ .then((res) => {
+ if (res.data.code == 200) {
+ ElMessage({
+ message: res.data.msg,
+ type: 'success',
+ });
+ listApi();
+ } else {
+ ElMessage.error(res.data.msg);
+ }
+ });
+ })
+ .catch(() => {
+ ElMessage({
+ type: 'info',
+ message: 'Delete canceled',
+ });
+ });
};
// 弹窗
const openAdd = ref();
- const openD = (type: String, value: any) => {
- openAdd.value.openDailog(type, value);
+ const openD = (title: String, id: number) => {
+ openAdd.value.openDailog(title, ruleForm.searchParams.targetType, id);
};
return {
- ruleForm,
- resetForm,
- activeName,
+ listApi,
+ ruleForm,
+ resetForm,
handleClick,
tableData,
- formatter,
currentPage4,
pageSize4,
handleSizeChange,
handleCurrentChange,
+ onAddorUpdata,
+ total,
openAdd,
openD,
- small,
- disabled,
- background,
+ onDelete,
Plus,
Delete,
Upload,
@@ -177,9 +187,9 @@
</script>
<style scoped>
.topTitle {
- background-color: #fff;
- padding: 20px 0px 20px 0px;
- margin-bottom:10px ;
+ background-color: #fff;
+ padding: 20px 0px 20px 0px;
+ margin-bottom: 10px;
}
.minCenter {
width: 100%;
diff --git a/src/views/goalManagement/targetDecompositionMonth/index.vue b/src/views/goalManagement/targetDecompositionMonth/index.vue
index 084d1b9..579df10 100644
--- a/src/views/goalManagement/targetDecompositionMonth/index.vue
+++ b/src/views/goalManagement/targetDecompositionMonth/index.vue
@@ -1,213 +1,276 @@
<template>
- <div>
- <search></search>
- <div class="minCenter">
- <div class="btns">
- <div>
- <el-button size="default" type="primary" :icon="Plus" @click="openType">新建</el-button>
- <el-button size="default" type="warning" :icon="EditPen" plain >修改</el-button>
- <el-button size="default" type="danger" :icon="Delete" plain>删除</el-button>
- </div>
- </div>
- <el-table
- ref="multipleTableRef"
- :data="tableData"
- style="width: 100%"
- @selection-change="handleSelectionChange"
- >
- <el-table-column
- label="序号"
- align="center"
- type="index"
- width="70"
- />
- <el-table-column type="selection" align="center" width="55" />
- <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="small" :icon="View" @click="handleClick"
- >查看</el-button
- >
- <el-button link type="primary" size="small" :icon="EditPen" @click="handleClick"
- >修改</el-button
- >
- <el-button link type="primary" size="small" :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>
- <Dailog ref="Show"></Dailog>
- </div>
+ <div>
+ <el-form :model="ruleForm" status-icon label-width="20px" class="topTitle">
+ <el-row>
+ <el-col :span="4">
+ <el-form-item>
+ <el-input v-model="ruleForm.searchParams.qName" size="default" placeholder="安全目标指标" />
+ </el-form-item>
+ </el-col>
+ <el-col :span="4">
+ <el-form-item>
+ <el-input v-model="ruleForm.searchParams.indexNum" size="default" placeholder="目标指标编号" />
+ </el-form-item>
+ </el-col>
+ <el-col :span="16">
+ <el-form-item>
+ <el-button type="primary" size="default" @click="listApi">查询</el-button>
+ <el-button size="default" @click="resetForm">重置</el-button>
+ </el-form-item>
+ </el-col>
+ </el-row>
+ </el-form>
+ <div class="minCenter">
+ <div class="btns">
+ <div>
+ <el-button size="default" type="primary" :icon="Plus" @click="openD('新建')">新建</el-button>
+ <el-button size="default" type="warning" :disabled="warning" :icon="EditPen" plain>修改</el-button>
+ <el-button size="default" type="danger" :disabled="danger" :icon="Delete" plain @click="onDeleteAll">删除</el-button>
+ </div>
+ </div>
+ <el-table ref="multipleTableRef" :data="tableData" @selection-change="handleSelectionChange" style="width: 100%">
+ <el-table-column label="序号" align="center" type="index" width="70" />
+ <el-table-column type="selection" align="center" width="55" />
+ <el-table-column type="expand">
+ <template #default>
+ <div class="tableC">
+ <el-tabs v-model="activeNames">
+ <el-tab-pane label="目标指标分解" name="1">
+ <el-table :data="targetDivideDetailList" style="width: 100%">
+ <el-table-column align="center" prop="dutyDepartmentId" label="责任部门" />
+ <el-table-column align="center" prop="value" label="考核指标" />
+ <el-table-column align="center" prop="makerDepartmentId" label="制定人部门" />
+ <el-table-column align="center" prop="makeDate" label="制定日期" />
+ <el-table-column align="center" prop="commitPersonId" 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 />
+ <el-table-column property="value" label="指标值" align="center" sortable show-overflow-tooltip />
+ <el-table-column label="操作" align="center" sortable show-overflow-tooltip>
+ <template #default="scope">
+ <el-button link type="primary" size="small" :icon="View" @click="openD('查看', scope.row.id)">查看</el-button>
+ <el-button link type="primary" size="small" :icon="EditPen" @click="openD('修改', scope.row.id)">修改</el-button>
+ <el-button link type="primary" size="small" :icon="Delete" @click="onDelete(scope.row.id)">删除</el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+ <div class="pages">
+ <el-pagination
+ v-model:currentPage="currentPage4"
+ v-model:page-size="pageSize4"
+ :page-sizes="[10, 20, 30, 40]"
+ layout="total, sizes, prev, pager, next, jumper"
+ :total="400"
+ @size-change="handleSizeChange"
+ @current-change="handleCurrentChange"
+ />
+ </div>
+ </div>
+ <Dailog ref="Show"></Dailog>
+ </div>
</template>
<script lang="ts">
-import search from '../targetSettings/component/search.vue'
-import Dailog from '../targetDecompositionYear/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";
-interface User {
- date: string;
- name: string;
- address: string;
-}
-import type { TableColumnCtx } from "element-plus/es/components/table/src/table-column/defaults";
+import search from '../targetSettings/component/search.vue';
+import Dailog from '../targetDecompositionYear/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 { goalManagementApi } from '/@/api/goalManagement';
+import type { TableColumnCtx } from 'element-plus/es/components/table/src/table-column/defaults';
export default defineComponent({
- components: { ElButton, ElInput,search,Dailog},
- setup() {
+ components: { ElButton, ElInput, Dailog },
+ setup() {
+ // 搜索条件
+ const ruleForm = reactive({
+ pageSize: 10,
+ pageIndex: 1,
+ searchParams: {
+ qName: '', ////安全目标指标
+ indexNum: '', ////目标指标编号
+ targetType: '2', ////指标类型 1:年指标 2:月指标
+ divideStatus: '', ////分解状态 1:已分解 2:未分解
+ },
+ });
+ // 下方导航与表格
+ const tableData = ref([]);
+ const currentPage4 = ref();
+ const pageSize4 = ref();
+ const total = ref();
+ const resetForm = () => {
+ ruleForm.searchParams.qName = '';
+ ruleForm.searchParams.indexNum = '';
+ };
+ const listApi = () => {
+ goalManagementApi()
+ .getTargetMngList(ruleForm)
+ .then((res) => {
+ if (res.data.code == 200) {
+ tableData.value = res.data.data;
+ currentPage4.value = res.data.pageIndex;
+ pageSize4.value = res.data.pageSize;
+ total.value = res.data.total;
+ } else {
+ ElMessage.error(res.data.msg);
+ }
+ });
+ };
+ onMounted(() => {
+ listApi();
+ });
-
- // 下方导航与表格
- 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 handleSizeChange = (val: number) => {
- console.log(`${val} items per page`);
- };
- const handleCurrentChange = (val: number) => {
- console.log(`current page: ${val}`);
- };
- // 打开弹窗
- const Show=ref()
- const openType=()=>{
- Show.value.openDailog()
- }
- return {
- activeName,
- handleClick,
- tableData,
- formatter,
- currentPage4,
- pageSize4,
- handleSizeChange,
- handleCurrentChange,
- Show,
- openType,
- Plus,
- Delete,
- Upload,
- Download,
- Refresh,
- View,
- EditPen
- };
- },
+ const handleSizeChange = (val: number) => {
+ // console.log(`${val} items per page`);
+ ruleForm.pageSize = val;
+ listApi();
+ };
+ const handleCurrentChange = (val: number) => {
+ // console.log(`current page: ${val}`);
+ ruleForm.pageIndex = val;
+ listApi();
+ };
+ const activeNames = ref('1');
+ // 打开弹窗
+ const Show = ref();
+ const openD = (title: String, id: number) => {
+ Show.value.openDailog(title, ruleForm.searchParams.targetType, id);
+ };
+ // 删除
+ const onDelete = (id: number) => {
+ ElMessageBox.confirm('确定删除所选项吗?', 'Warning', {
+ confirmButtonText: '确定',
+ cancelButtonText: '取消',
+ type: 'warning',
+ })
+ .then(() => {
+ goalManagementApi()
+ .getTargetMngDelete(id)
+ .then((res) => {
+ if (res.data.code == 200) {
+ ElMessage({
+ message: res.data.msg,
+ type: 'success',
+ });
+ listApi();
+ } else {
+ ElMessage.error(res.data.msg);
+ }
+ });
+ })
+ .catch(() => {
+ // ElMessage({
+ // type: 'info',
+ // message: 'Delete canceled',
+ // });
+ });
+ };
+ // 批量删除
+ const warning = ref(true);
+ const danger = ref(true);
+ const deletAll = ref();
+ const handleSelectionChange = (val: any) => {
+ let valId = JSON.parse(JSON.stringify(val));
+ let arr = [];
+ for (let i = 0; i < valId.length; i++) {
+ arr.push(valId[i].id);
+ }
+ deletAll.value = arr.toString();
+ if (val.length == 1) {
+ warning.value = false;
+ danger.value = false;
+ } else if (val.length == 0) {
+ warning.value = true;
+ danger.value = true;
+ } else {
+ warning.value = true;
+ danger.value = false;
+ }
+ };
+ const onDeleteAll = () => {
+ ElMessageBox.confirm('确定删除所选项吗?', 'Warning', {
+ confirmButtonText: '确定',
+ cancelButtonText: '取消',
+ type: 'warning',
+ })
+ .then(() => {
+ goalManagementApi()
+ .getTargetMngDelete(deletAll.value)
+ .then((res) => {
+ if (res.data.code == 200) {
+ ElMessage({
+ message: res.data.msg,
+ type: 'success',
+ });
+ listApi();
+ } else {
+ ElMessage.error(res.data.msg);
+ }
+ });
+ })
+ .catch(() => {
+ ElMessage({
+ type: 'info',
+ message: 'Delete canceled',
+ });
+ });
+ };
+ return {
+ listApi,
+ resetForm,
+ tableData,
+ currentPage4,
+ pageSize4,
+ total,
+ ruleForm,
+ handleSizeChange,
+ handleCurrentChange,
+ Show,
+ openD,
+ activeNames,
+ onDelete,
+ warning,
+ danger,
+ deletAll,
+ handleSelectionChange,
+ onDeleteAll,
+ Plus,
+ Delete,
+ Upload,
+ Download,
+ Refresh,
+ View,
+ EditPen,
+ };
+ },
});
</script>
<style scoped>
.minCenter {
- width: 100%;
- background-color: #fff;
- margin-top: 10px;
- padding: 0 20px;
+ width: 100%;
+ background-color: #fff;
+ margin-top: 10px;
+ padding: 0 20px;
}
.btns {
- padding: 0px 0px 10px 0px;
- display: flex;
- justify-content: space-between;
+ padding: 0px 0px 10px 0px;
+ display: flex;
+ justify-content: space-between;
}
-.pages{
-padding:20px 0;
-display: flex;
-justify-content: right;
+.pages {
+ padding: 20px 0;
+ display: flex;
+ justify-content: right;
+}
+.tableC {
+ margin: 0 10%;
+}
+.topTitle {
+ background-color: #fff;
+ padding: 20px 0px 20px 0px;
}
</style>
diff --git a/src/views/goalManagement/targetDecompositionYear/component/Dailog.vue b/src/views/goalManagement/targetDecompositionYear/component/Dailog.vue
index 381de47..a9bc880 100644
--- a/src/views/goalManagement/targetDecompositionYear/component/Dailog.vue
+++ b/src/views/goalManagement/targetDecompositionYear/component/Dailog.vue
@@ -1,117 +1,135 @@
<template>
- <el-dialog v-model="dialogVisible" :fullscreen="full" title="目标分解" width="50%" draggable>
+ <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.name">
+ <el-input v-model="form.qName" :disabled="disabled">
<template #append> <el-button :icon="Search" @click="daiInpt" /> </template
></el-input>
</el-form-item>
</el-col>
<el-col :span="11" :offset="2">
<el-form-item label="目标指标编号" size="default">
- <el-input v-model="form.name" />
+ <el-input v-model="form.indexNum" disabled />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="11">
<el-form-item label="年度" size="default">
- <el-input v-model="form.name" />
+ <el-input v-model="form.year" disabled />
</el-form-item>
</el-col>
<el-col :span="11" :offset="2">
<el-form-item label="指标值" size="default">
- <el-input v-model="form.name" />
+ <el-input v-model="form.value" disabled />
</el-form-item>
</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">新增</el-button>
+ <el-button type="primary" size="default" @click="daiAdd" :disabled="disabled">新增</el-button>
</el-tab-pane>
</el-tabs>
<el-table :data="tableData" style="width: 100%">
- <el-table-column align="center" prop="date" label="责任部门" width="180" />
- <el-table-column align="center" prop="name" label="考核指标" width="180" />
- <el-table-column align="center" prop="address" label="制定人部门" />
- <el-table-column align="center" prop="address" label="制定日期" />
- <el-table-column align="center" prop="address" label="上报人" />
+ <el-table-column align="center" prop="dutyDepartmentId" label="责任部门" width="180" />
+ <el-table-column align="center" prop="value" label="考核指标" width="180" />
+ <el-table-column align="center" prop="makerDepartmentId" label="制定人部门" />
+ <el-table-column align="center" prop="makeDate" label="制定日期" />
+ <el-table-column align="center" prop="commitPersonId" label="上报人" />
<el-table-column align="center" label="操作">
<template #default>
<el-button link type="primary">查看</el-button>
+ <el-button link :disabled="disabled" type="primary">修改</el-button>
+ <el-button link :disabled="disabled" type="primary">删除</el-button>
</template>
</el-table-column>
</el-table>
<template #footer>
<span class="dialog-footer">
- <el-button @click="dialogVisible = false" size="default">关闭</el-button>
- <el-button type="primary" @click="dialogVisible = false" 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"></DailogAdd>
- <DailogSearch ref="Shows"></DailogSearch>
+ <DailogAdd ref="Show" @onAdd="add"></DailogAdd>
+ <DailogSearch ref="Shows" @backNum="onNumber"></DailogSearch>
</template>
<script lang="ts">
import { defineComponent, ref, reactive } from 'vue';
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 { goalManagementApi } from '/@/api/goalManagement';
export default defineComponent({
components: { DailogAdd, DailogSearch },
setup() {
const dialogVisible = ref<boolean>(false);
- const form = reactive({
- name: '',
- region: '',
- date1: '',
- date2: '',
- delivery: false,
- type: [],
- resource: '',
- desc: '',
- });
- const openDailog = (type: string, value: any, projectList: any, projectId: string) => {
+ const form = ref({});
+ const targetType = ref();
+ const disabled = ref(false);
+ const titles = 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()
+ .getTargetMngDetail(id)
+ .then((res) => {
+ if (res.data.code == 200) {
+ form.value = res.data.data;
+ } else {
+ ElMessage.error(res.data.msg);
+ }
+ });
+ }
+ };
+ const onNumber = (e: object) => {
+ form.value = e;
};
// 导航
const activeName = ref('1');
// 表格
- const tableData = [
- {
- 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',
- },
- ];
+ const tableData = ref([]);
// 新增弹窗
const Show = ref();
const daiAdd = () => {
Show.value.openDailog();
};
+ const formUp = reactive({
+ targetId:"", //关联的目标指标/外键
+ delTargetDivideDetails: '', //要删除的目标指标分解ID,多个用逗号隔开
+ targetDivideDetailList: [], //目标指标分解列表
+ });
+ const add = (e:any) => {
+ formUp.targetDivideDetailList.push(e)
+ // let obj=JSON.parse(JSON.stringify(form.value))
+ formUp.targetId=form.value.id
+ goalManagementApi().gettargetDivideDetail(formUp).then(res=>{
+ if(res.data.code==200){
+
+ }
+ })
+ };
+ const submitForm=()=>{
+
+ }
// 安全目标指标弹窗
const Shows = ref();
const daiInpt = () => {
- Shows.value.openDailog();
+ Shows.value.openDailog(targetType.value);
+ };
+ // 关闭
+ const resetForm = () => {
+ dialogVisible.value = false;
+ form.value = {};
+ tableData.value = [];
};
//全屏
const full = ref(false);
@@ -136,6 +154,14 @@
full,
toggleFullscreen,
FullScreen,
+ onNumber,
+ targetType,
+ disabled,
+ resetForm,
+ titles,
+ add,
+ formUp,
+ submitForm
};
},
});
diff --git a/src/views/goalManagement/targetDecompositionYear/component/DailogAdd.vue b/src/views/goalManagement/targetDecompositionYear/component/DailogAdd.vue
index 95c9d90..5f968af 100644
--- a/src/views/goalManagement/targetDecompositionYear/component/DailogAdd.vue
+++ b/src/views/goalManagement/targetDecompositionYear/component/DailogAdd.vue
@@ -1,41 +1,35 @@
<template>
<el-dialog v-model="dialogVisible" :fullscreen="full" title="新建目标指标分解" width="50%" draggable>
<el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button>
- <el-form :model="form" label-width="120px">
+ <el-form :model="form" label-width="120px" ref="ruleFormRef" :rules="rules">
<el-row>
<el-col :span="11">
- <el-form-item label="责任部门" size="default">
- <el-select v-model="form.region" style="width: 100%">
- <el-option label="Zone one" value="shanghai" />
- <el-option label="Zone two" value="beijing" />
- </el-select>
+ <el-form-item label="责任部门" prop="dutyDepartmentId" size="default">
+ <el-tree-select v-model="form.dutyDepartmentId" :data="data" class="w100" placeholder="请选择" />
</el-form-item>
</el-col>
<el-col :span="11" :offset="2">
- <el-form-item label="考核指标" size="default">
- <el-input v-model="form.name" />
+ <el-form-item label="考核指标" prop="value" size="default">
+ <el-input v-model="form.value" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="11">
- <el-form-item label="制定人部门" size="default">
- <el-select v-model="form.region" style="width: 100%">
- <el-option label="Zone one" value="shanghai" />
- <el-option label="Zone two" value="beijing" />
- </el-select>
+ <el-form-item label="制定人部门" prop="makerDepartmentId" size="default">
+ <el-tree-select v-model="form.makerDepartmentId" :data="data" class="w100" placeholder="请选择" />
</el-form-item>
</el-col>
<el-col :span="11" :offset="2">
- <el-form-item label="制定日期" size="default">
- <el-date-picker v-model="form.date1" type="date" style="width: 100%" />
+ <el-form-item label="制定日期" prop="makeDate" size="default">
+ <el-date-picker v-model="form.makeDate" 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="上报人" size="default">
- <el-input v-model="form.name">
+ <el-form-item label="上报人" prop="commitPersonId" size="default">
+ <el-input v-model="form.commitPersonId">
<template #append> <el-button :icon="Search" @click="openUser" /> </template
></el-input>
</el-form-item>
@@ -46,30 +40,84 @@
<template #footer>
<span class="dialog-footer">
<el-button type="primary" @click="dialogVisible = false" size="default">继续添加</el-button>
- <el-button @click="dialogVisible = false" size="default">关闭</el-button>
- <el-button type="primary" @click="dialogVisible = false" size="default">确定</el-button>
+ <el-button @click="resetForm(ruleFormRef)" size="default">关闭</el-button>
+ <el-button type="primary" @click="submitForm(ruleFormRef)" size="default">确定</el-button>
</span>
</template>
</el-dialog>
- <DailogSearchUser ref="Show"></DailogSearchUser>
+ <DailogSearchUser ref="Show" @SearchUser="onUser"></DailogSearchUser>
</template>
<script lang="ts">
import { defineComponent, ref, reactive } from 'vue';
import { Search, FullScreen } from '@element-plus/icons-vue';
+import type { FormInstance, FormRules } from 'element-plus';
import DailogSearchUser from '../../../../components/DailogSearchUser/index.vue';
export default defineComponent({
components: { DailogSearchUser },
- setup() {
- const form = reactive({
- name: '',
- region: '',
- date1: '',
- date2: '',
- delivery: false,
- type: [],
- resource: '',
- desc: '',
+ setup(props,{emit}) {
+ const form = ref({
+ dutyDepartmentId: "", ////责任部门/外键
+ makerDepartmentId: "", ////制定人部门/外键
+ commitPersonId: "", ////上报人/外键
+ value: '', ////考核指标值
+ makeDate: "", ////制定日期
});
+ const ruleFormRef = ref<FormInstance>();
+ const rules = reactive<FormRules>({
+ dutyDepartmentId: [
+ {
+ required: true,
+ message: '责任部门不能为空',
+ trigger: 'change',
+ },
+ ],
+ makerDepartmentId: [
+ {
+ required: true,
+ message: '制定人部门不能为空',
+ trigger: 'change',
+ },
+ ],
+ commitPersonId: [
+ {
+ required: true,
+ message: '上报人不能为空',
+ trigger: 'change',
+ },
+ ],
+ value: [
+ {
+ required: true,
+ message: '考核指标值不能为空',
+ trigger: 'change',
+ },
+ ],
+ makeDate: [
+ {
+ required: true,
+ message: '制定日期不能为空',
+ trigger: 'change',
+ },
+ ],
+ });
+ const submitForm = async (formEl: FormInstance | undefined) => {
+ if (!formEl) return;
+ await formEl.validate((valid, fields) => {
+ if (valid) {
+ dialogVisible.value = false;
+ emit("onAdd",form.value)
+ } else {
+ console.log('error submit!', fields);
+ }
+ });
+ formEl.resetFields();
+ };
+
+ const resetForm = (formEl: FormInstance | undefined) => {
+ if (!formEl) return;
+ formEl.resetFields();
+ dialogVisible.value = false;
+ };
// 开启弹窗
const dialogVisible = ref(false);
const openDailog = () => {
@@ -89,6 +137,54 @@
full.value = false;
}
};
+ const data = [
+ {
+ value: '1',
+ label: '广汇能源综合物流发展有限责任公司',
+ children: [
+ {
+ value: '11',
+ label: '经营班子',
+ children: [],
+ },
+ ],
+ },
+ {
+ value: '2',
+ label: '生产运行部',
+ children: [
+ {
+ value: '21',
+ label: '灌装一班',
+ children: [],
+ },
+ {
+ value: '22',
+ label: '工艺四班',
+ children: [],
+ },
+ ],
+ },
+ {
+ value: '3',
+ label: '设备部',
+ children: [
+ {
+ value: '31',
+ label: '仪表班',
+ children: [],
+ },
+ {
+ value: '32',
+ label: '机修班',
+ children: [],
+ },
+ ],
+ },
+ ];
+ const onUser = (e:any) => {
+ form.value.commitPersonId=e.id
+ };
return {
form,
dialogVisible,
@@ -99,6 +195,12 @@
full,
toggleFullscreen,
FullScreen,
+ data,
+ onUser,
+ ruleFormRef,
+ rules,
+ submitForm,
+ resetForm
};
},
});
diff --git a/src/views/goalManagement/targetDecompositionYear/index.vue b/src/views/goalManagement/targetDecompositionYear/index.vue
index c4999b3..bddd610 100644
--- a/src/views/goalManagement/targetDecompositionYear/index.vue
+++ b/src/views/goalManagement/targetDecompositionYear/index.vue
@@ -1,212 +1,274 @@
<template>
- <div>
- <search></search>
- <div class="minCenter">
- <div class="btns">
- <div>
- <el-button size="default" type="primary" :icon="Plus" @click="openType">新建</el-button>
- <el-button size="default" type="warning" :icon="EditPen" plain >修改</el-button>
- <el-button size="default" type="danger" :icon="Delete" plain>删除</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 type="selection" align="center" width="55" />
- <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="small" :icon="View" @click="handleClick"
- >查看</el-button
- >
- <el-button link type="primary" size="small" :icon="EditPen" @click="handleClick"
- >修改</el-button
- >
- <el-button link type="primary" size="small" :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>
- <Dailog ref="Show"></Dailog>
- </div>
+ <div>
+ <el-form :model="ruleForm" status-icon label-width="20px" class="topTitle">
+ <el-row>
+ <el-col :span="4">
+ <el-form-item>
+ <el-input v-model="ruleForm.searchParams.qName" size="default" placeholder="安全目标指标" />
+ </el-form-item>
+ </el-col>
+ <el-col :span="4">
+ <el-form-item>
+ <el-input v-model="ruleForm.searchParams.indexNum" size="default" placeholder="目标指标编号" />
+ </el-form-item>
+ </el-col>
+ <el-col :span="16">
+ <el-form-item>
+ <el-button type="primary" size="default" @click="listApi">查询</el-button>
+ <el-button size="default" @click="resetForm">重置</el-button>
+ </el-form-item>
+ </el-col>
+ </el-row>
+ </el-form>
+ <div class="minCenter">
+ <div class="btns">
+ <div>
+ <el-button size="default" type="primary" :icon="Plus" @click="openD('新建')">新建</el-button>
+ <el-button size="default" type="warning" :disabled="warning" :icon="EditPen" plain>修改</el-button>
+ <el-button size="default" type="danger" :disabled="danger" :icon="Delete" plain @click="onDeleteAll">删除</el-button>
+ </div>
+ </div>
+ <el-table ref="multipleTableRef" :data="tableData" @selection-change="handleSelectionChange" style="width: 100%">
+ <el-table-column label="序号" align="center" type="index" width="70" />
+ <el-table-column type="selection" align="center" width="55" />
+ <el-table-column type="expand">
+ <template #default>
+ <div class="tableC">
+ <el-tabs v-model="activeNames">
+ <el-tab-pane label="目标指标分解" name="1">
+ <el-table :data="targetDivideDetailList" style="width: 100%">
+ <el-table-column align="center" prop="dutyDepartmentId" label="责任部门" />
+ <el-table-column align="center" prop="value" label="考核指标" />
+ <el-table-column align="center" prop="makerDepartmentId" label="制定人部门" />
+ <el-table-column align="center" prop="makeDate" label="制定日期" />
+ <el-table-column align="center" prop="commitPersonId" 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 />
+ <el-table-column property="value" label="指标值" align="center" sortable show-overflow-tooltip />
+ <el-table-column label="操作" align="center" sortable show-overflow-tooltip>
+ <template #default="scope">
+ <el-button link type="primary" size="small" :icon="View" @click="openD('查看', scope.row.id)">查看</el-button>
+ <el-button link type="primary" size="small" :icon="EditPen" @click="openD('修改', scope.row.id)">修改</el-button>
+ <el-button link type="primary" size="small" :icon="Delete" @click="onDelete(scope.row.id)">删除</el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+ <div class="pages">
+ <el-pagination
+ v-model:currentPage="currentPage4"
+ v-model:page-size="pageSize4"
+ :page-sizes="[10, 20, 30, 40]"
+ layout="total, sizes, prev, pager, next, jumper"
+ :total="400"
+ @size-change="handleSizeChange"
+ @current-change="handleCurrentChange"
+ />
+ </div>
+ </div>
+ <Dailog ref="Show"></Dailog>
+ </div>
</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";
-interface User {
- date: string;
- name: string;
- address: string;
-}
-import type { TableColumnCtx } from "element-plus/es/components/table/src/table-column/defaults";
+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 { goalManagementApi } from '/@/api/goalManagement';
export default defineComponent({
- components: { ElButton, ElInput,search,Dailog},
- setup() {
+ components: { ElButton, ElInput, Dailog },
+ setup() {
+ // 搜索条件
+ const ruleForm = reactive({
+ pageSize: 10,
+ pageIndex: 1,
+ searchParams: {
+ qName: '', ////安全目标指标
+ indexNum: '', ////目标指标编号
+ targetType: '1', ////指标类型 1:年指标 2:月指标
+ divideStatus: '', ////分解状态 1:已分解 2:未分解
+ },
+ });
+ // 下方导航与表格
+ const tableData = ref([]);
+ const currentPage4 = ref();
+ const pageSize4 = ref();
+ const total = ref();
+ const resetForm = () => {
+ ruleForm.searchParams.qName = '';
+ ruleForm.searchParams.indexNum = '';
+ };
+ const listApi = () => {
+ goalManagementApi()
+ .getTargetMngList(ruleForm)
+ .then((res) => {
+ if (res.data.code == 200) {
+ tableData.value = res.data.data;
+ currentPage4.value = res.data.pageIndex;
+ pageSize4.value = res.data.pageSize;
+ total.value = res.data.total;
+ } else {
+ ElMessage.error(res.data.msg);
+ }
+ });
+ };
+ onMounted(() => {
+ listApi();
+ });
-
- // 下方导航与表格
- 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 handleSizeChange = (val: number) => {
- console.log(`${val} items per page`);
- };
- const handleCurrentChange = (val: number) => {
- console.log(`current page: ${val}`);
- };
- // 打开弹窗
- const Show=ref()
- const openType=()=>{
- Show.value.openDailog()
- }
- return {
- activeName,
- handleClick,
- tableData,
- formatter,
- currentPage4,
- pageSize4,
- handleSizeChange,
- handleCurrentChange,
- Show,
- openType,
- Plus,
- Delete,
- Upload,
- Download,
- Refresh,
- View,
- EditPen
- };
- },
+ const handleSizeChange = (val: number) => {
+ // console.log(`${val} items per page`);
+ ruleForm.pageSize = val;
+ listApi();
+ };
+ const handleCurrentChange = (val: number) => {
+ // console.log(`current page: ${val}`);
+ ruleForm.pageIndex = val;
+ listApi();
+ };
+ const activeNames = ref('1');
+ // 打开弹窗
+ const Show = ref();
+ const openD = (title: String, id: number) => {
+ Show.value.openDailog(title,ruleForm.searchParams.targetType, id);
+ };
+ // 删除
+ const onDelete = (id: number) => {
+ ElMessageBox.confirm('确定删除所选项吗?', 'Warning', {
+ confirmButtonText: '确定',
+ cancelButtonText: '取消',
+ type: 'warning',
+ })
+ .then(() => {
+ goalManagementApi()
+ .getTargetMngDelete(id)
+ .then((res) => {
+ if (res.data.code == 200) {
+ ElMessage({
+ message: res.data.msg,
+ type: 'success',
+ });
+ listApi();
+ } else {
+ ElMessage.error(res.data.msg);
+ }
+ });
+ })
+ .catch(() => {
+ // ElMessage({
+ // type: 'info',
+ // message: 'Delete canceled',
+ // });
+ });
+ };
+ // 批量删除
+ const warning = ref(true);
+ const danger = ref(true);
+ const deletAll = ref();
+ const handleSelectionChange = (val: any) => {
+ let valId = JSON.parse(JSON.stringify(val));
+ let arr = [];
+ for (let i = 0; i < valId.length; i++) {
+ arr.push(valId[i].id);
+ }
+ deletAll.value = arr.toString();
+ if (val.length == 1) {
+ warning.value = false;
+ danger.value = false;
+ } else if (val.length == 0) {
+ warning.value = true;
+ danger.value = true;
+ } else {
+ warning.value = true;
+ danger.value = false;
+ }
+ };
+ const onDeleteAll = () => {
+ ElMessageBox.confirm('确定删除所选项吗?', 'Warning', {
+ confirmButtonText: '确定',
+ cancelButtonText: '取消',
+ type: 'warning',
+ })
+ .then(() => {
+ goalManagementApi()
+ .getTargetMngDelete(deletAll.value)
+ .then((res) => {
+ if (res.data.code == 200) {
+ ElMessage({
+ message: res.data.msg,
+ type: 'success',
+ });
+ listApi();
+ } else {
+ ElMessage.error(res.data.msg);
+ }
+ });
+ })
+ .catch(() => {
+ ElMessage({
+ type: 'info',
+ message: 'Delete canceled',
+ });
+ });
+ };
+ return {
+ listApi,
+ resetForm,
+ tableData,
+ currentPage4,
+ pageSize4,
+ total,
+ ruleForm,
+ handleSizeChange,
+ handleCurrentChange,
+ Show,
+ openD,
+ activeNames,
+ onDelete,
+ warning,
+ danger,
+ deletAll,
+ handleSelectionChange,
+ onDeleteAll,
+ Plus,
+ Delete,
+ Upload,
+ Download,
+ Refresh,
+ View,
+ EditPen,
+ };
+ },
});
</script>
<style scoped>
+.topTitle {
+ background-color: #fff;
+ padding: 20px 0px 20px 0px;
+}
.minCenter {
- width: 100%;
- background-color: #fff;
- margin-top: 10px;
- padding: 0 20px;
+ width: 100%;
+ background-color: #fff;
+ margin-top: 10px;
+ padding: 0 20px;
}
.btns {
- padding: 0px 0px 10px 0px;
- display: flex;
- justify-content: space-between;
+ padding: 0px 0px 10px 0px;
+ display: flex;
+ justify-content: space-between;
}
-.pages{
-padding:20px 0;
-display: flex;
-justify-content: right;
+.pages {
+ padding: 20px 0;
+ display: flex;
+ justify-content: right;
+}
+.tableC {
+ margin: 0 10%;
}
</style>
diff --git a/src/views/goalManagement/targetEscalation/index.vue b/src/views/goalManagement/targetEscalation/index.vue
index e6d0a44..2865285 100644
--- a/src/views/goalManagement/targetEscalation/index.vue
+++ b/src/views/goalManagement/targetEscalation/index.vue
@@ -1,156 +1,166 @@
<template>
- <div>
- <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-tab-pane label="审核" name="3"></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(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="jumpFrom(1)">上报</el-button>
- </template>
- </el-table-column>
- <el-table-column v-if="activeName == 3" label="操作" align="center" show-overflow-tooltip>
- <template #default>
- <el-button link type="primary" size="default" :icon="EditPen" @click="jumpFrom()">待审批</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>
+ <el-form :model="ruleForm" status-icon label-width="20px" class="topTitle">
+ <el-row>
+ <el-col :span="4">
+ <el-form-item>
+ <el-input v-model="ruleForm.searchParams.qName" size="default" placeholder="安全目标指标" />
+ </el-form-item>
+ </el-col>
+ <el-col :span="4">
+ <el-form-item>
+ <el-input v-model="ruleForm.searchParams.indexNum" size="default" placeholder="目标指标编号" />
+ </el-form-item>
+ </el-col>
+ <el-col :span="16">
+ <el-form-item>
+ <el-button type="primary" size="default" @click="listApi">查询</el-button>
+ <el-button size="default" @click="resetForm">重置</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-tabs>
+ <el-table ref="multipleTableRef" :data="tableData" style="width: 100%">
+ <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 />
+ <el-table-column property="value" 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(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="jumpFrom(1)">上报</el-button>
+ </template>
+ </el-table-column>
+ <el-table-column v-if="activeName == 3" label="操作" align="center" show-overflow-tooltip>
+ <template #default>
+ <el-button link type="primary" size="default" :icon="EditPen" @click="jumpFrom()">待审批</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]"
+ layout="total, sizes, prev, pager, next, jumper"
+ :total="total"
+ @size-change="handleSizeChange"
+ @current-change="handleCurrentChange"
+ />
+ </div>
</div>
- </div>
- <Dailog ref="Show"></Dailog>
+ <Dailog ref="Show"></Dailog>
</div>
</template>
<script lang="ts">
-import search from '../targetSettings/component/search.vue';
-import Dailog from './component/Dailog.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';
+import { Plus, Delete, Upload, Download, Refresh, View, EditPen } from '@element-plus/icons-vue';
+import { useRouter } from 'vue-router';
+import { goalManagementApi } from '/@/api/goalManagement';
export default defineComponent({
- components: { ElButton, ElInput, search,Dailog },
+ components: { ElButton, ElInput, Dailog },
setup() {
- // 下方导航与表格
- const activeName = ref('1');
- const handleClick = (tab: TabsPaneContext, event: Event) => {
- console.log(tab, event);
+ // 搜索条件
+ const ruleForm = reactive({
+ pageSize: 10,
+ pageIndex: 1,
+ searchParams: {
+ qName: '', ////安全目标指标
+ indexNum: '', ////目标指标编号
+ targetType: '1', ////指标类型 1:年指标 2:月指标
+ divideStatus: '', ////分解状态 1:已分解 2:未分解
+ },
+ });
+ // 重置
+ const resetForm = () => {
+ ruleForm.searchParams.qName = '';
+ ruleForm.searchParams.indexNum = '';
};
- const formatter = (row: User, column: TableColumnCtx<User>) => {
- return row.address;
+ const listApi = () => {
+ goalManagementApi()
+ .getTargetMngList(ruleForm)
+ .then((res) => {
+ if (res.data.code == 200) {
+ tableData.value = res.data.data;
+ currentPage4.value = res.data.pageIndex;
+ pageSize4.value = res.data.pageSize;
+ total.value = res.data.total;
+ } else {
+ ElMessage.error(res.data.msg);
+ }
+ });
};
-
- 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 handleClick = (val: any) => {
+ let targetType = JSON.parse(JSON.stringify(val));
+ ruleForm.searchParams.targetType = targetType.paneName;
+ listApi();
+ };
+ onMounted(() => {
+ listApi();
+ });
+ const onAddorUpdata = () => {
+ listApi();
+ };
+ // 表格
+ const tableData = ref();
+ const currentPage4 = ref();
+ const pageSize4 = ref();
+ const total = ref();
const handleSizeChange = (val: number) => {
- console.log(`${val} items per page`);
+ // console.log(`${val} items per page`);
+ ruleForm.pageSize = val;
+ listApi();
};
const handleCurrentChange = (val: number) => {
- console.log(`current page: ${val}`);
+ // console.log(`current page: ${val}`);
+ ruleForm.pageIndex = val;
+ listApi();
};
- // 记录弹窗
- const Show=ref()
- const openDai=(data:any)=>{
- Show.value.openDailog(data)
- }
+ const activeName = ref('1');
+ // 记录弹窗
+ const Show = ref();
+ const openDai = (data: any) => {
+ Show.value.openDailog(data);
+ };
// 流程表单
- const router=useRouter()
- const jumpFrom=(data:string)=>{
+ const router = useRouter();
+ const jumpFrom = (data: string) => {
router.push({
- path:"/processForms",
- query:{
- type:data
- }
- })
- }
+ path: '/processForms',
+ query: {
+ type: data,
+ },
+ });
+ };
return {
activeName,
+ total,
handleClick,
+ ruleForm,
+ listApi,
+ onAddorUpdata,
tableData,
- formatter,
+ resetForm,
currentPage4,
pageSize4,
handleSizeChange,
handleCurrentChange,
- small,
- disabled,
- background,
- Show,
- openDai,
+ Show,
+ openDai,
router,
jumpFrom,
Plus,
@@ -159,12 +169,16 @@
Download,
Refresh,
View,
- EditPen
+ EditPen,
};
},
});
</script>
<style scoped>
+.topTitle {
+ background-color: #fff;
+ padding: 20px 0px 20px 0px;
+}
.minCenter {
width: 100%;
background-color: #fff;
diff --git a/src/views/goalManagement/targetSettings/component/dailogAdd.vue b/src/views/goalManagement/targetSettings/component/dailogAdd.vue
index 714da76..cd28085 100644
--- a/src/views/goalManagement/targetSettings/component/dailogAdd.vue
+++ b/src/views/goalManagement/targetSettings/component/dailogAdd.vue
@@ -1,54 +1,55 @@
<template>
- <el-dialog v-model="Shows" :fullscreen="full" title="新建目标设定" width="50%" draggable>
+ <el-dialog v-model="Shows" :before-close="resetForm" :fullscreen="full" :title="titles" width="50%" draggable>
<el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button>
- <el-form :model="form" label-width="120px">
+ <el-form :model="form" :disabled="disabled" ref="ruleFormRef" :rules="rules" label-width="120px">
<el-row>
<el-col :span="11">
- <el-form-item label="安全目标指标" size="default">
- <el-input v-model="form.name" />
+ <el-form-item label="安全目标指标" prop="qName" size="default">
+ <el-input v-model="form.qName" placeholder="请填写安全目标指标" />
</el-form-item>
</el-col>
<el-col :span="11" :offset="2">
- <el-form-item label="目标指标编号" size="default">
- <el-input v-model="form.name" />
+ <el-form-item label="目标指标编号" prop="indexNum" size="default">
+ <el-input v-model="form.indexNum" placeholder="请填写目标指标编号" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="11">
- <el-form-item label="年度" size="default">
- <el-input v-model="form.name" />
+ <el-form-item label="年度" prop="year" size="default">
+ <el-input v-model.number="form.year" placeholder="请填写年度" />
</el-form-item>
</el-col>
<el-col :span="11" :offset="2">
- <el-form-item label="指标值" size="default">
- <el-input v-model="form.name" />
+ <el-form-item label="指标值" prop="value" size="default">
+ <el-input v-model="form.value" placeholder="请填写指标值" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="11">
<el-form-item label="指标级别" size="default">
- <el-select v-model="form.region" placeholder="please select your zone" style="width: 100%">
- <el-option label="Zone one" value="shanghai" />
- <el-option label="Zone two" value="beijing" />
+ <el-select v-model="form.level" placeholder="请选择" style="width: 100%">
+ <el-option label="公司级" value="1">公司级</el-option>
+ <el-option label="部门分厂级" value="2">部门分厂级</el-option>
+ <el-option label="工段班组级" value="3">工段班组级</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="11" :offset="2">
<el-form-item label="完成期限" size="default">
- <el-date-picker v-model="form.date1" type="date" placeholder="Pick a date" style="width:100%" />
+ <el-date-picker v-model="form.completeDate" format="YYYY-MM-DD HH:mm:ss" type="datetime" placeholder="请选择" style="width: 100%" />
</el-form-item>
</el-col>
</el-row>
<el-form-item label="备注信息">
- <el-input v-model="form.desc" size="default" type="textarea" />
+ <el-input v-model="form.memo" size="default" type="textarea" />
</el-form-item>
</el-form>
<template #footer>
<span class="dialog-footer">
- <el-button @click="Shows = false" size="default">关闭</el-button>
- <el-button type="primary" @click="Shows = false" size="default">确定</el-button>
+ <el-button @click="resetForm(ruleFormRef)" size="default">关闭</el-button>
+ <el-button type="primary" v-if="titles == '查看目标设定' ? false : true" @click="submitForm(ruleFormRef)" size="default">确定</el-button>
</span>
</template>
</el-dialog>
@@ -56,25 +57,43 @@
<script lang="ts">
import { ref, toRefs, reactive, onMounted, watch, defineComponent } from 'vue';
import screenfull from 'screenfull';
-import { ElMessageBox, ElMessage, ElButton, ElInput, TabsPaneContext, FormInstance } from 'element-plus';
-import { FullScreen } from '@element-plus/icons-vue';
-
+import { ElMessageBox, ElMessage, ElButton, ElInput, TabsPaneContext } from 'element-plus';
+import type { FormInstance, FormRules } from 'element-plus';
+import { Plus, Delete, Upload, Download, Refresh, View, Search, FullScreen } from '@element-plus/icons-vue';
+import { goalManagementApi } from '/@/api/goalManagement';
export default defineComponent({
- setup(props) {
+ setup(props, { emit }) {
let Shows = ref(false);
- const form = reactive({
- name: '',
- region: '',
- date1: '',
- date2: '',
- delivery: false,
- type: [],
- resource: '',
- desc: '',
+ const ruleFormRef = ref<FormInstance>();
+ const form = ref({
+ indexNum: '', //目标指标编号
+ qName: '', //安全目标指标
+ year: '', //年度
+ level: '', ////指标级别 1:公司级 2:部门分厂级 3:工段班组级
+ memo: '', ////备注信息
+ targetType: '', ////指标类型 1:年指标 2:月指标
+ completeDate: '', ////完成期限
+ divideStatus: '1', ////分解状态 1:已分解 2:未分解
+ value: '', ////指标值
});
+ const titles = ref();
+ const disabled = ref(false);
// 打开弹窗
- const openDialog = (type: string, value: any, projectList: any, projectId: string) => {
+ const openDialog = (title: string, value: any, id: number) => {
Shows.value = true;
+ titles.value = `${title}目标设定`;
+ form.value.targetType = value;
+ disabled.value = title == '查看' ? true : false;
+ if (title == '查看' || title == '修改')
+ goalManagementApi()
+ .getTargetMngDetail(id)
+ .then((res) => {
+ if (res.data.code == 200) {
+ form.value = res.data.data;
+ } else {
+ ElMessage.error(res.data.msg);
+ }
+ });
};
//全屏
const full = ref(false);
@@ -85,12 +104,99 @@
full.value = false;
}
};
+ const rules = reactive<FormRules>({
+ qName: [
+ {
+ required: true,
+ message: '安全目标指标不能为空',
+ trigger: 'change',
+ },
+ ],
+ indexNum: [
+ {
+ required: true,
+ message: '目标指标编号不能为空',
+ trigger: 'change',
+ },
+ ],
+ year: [
+ {
+ required: true,
+ message: '年度不能为空',
+ trigger: 'change',
+ },
+ ],
+ value: [
+ {
+ required: true,
+ message: '指标值不能为空',
+ trigger: 'change',
+ },
+ ],
+ });
+ const submitForm = async (formEl: FormInstance | undefined) => {
+ if (!formEl) return;
+ await formEl.validate((valid, fields) => {
+ if (valid) {
+ Shows.value = false;
+ goalManagementApi()
+ .getTargetMngAddOrupdata(form.value)
+ .then((res) => {
+ if (res.data.code == 200) {
+ ElMessage({
+ message: res.data.msg,
+ type: 'success',
+ });
+ emit('navAddorUpdata');
+ } else {
+ ElMessage.error(res.data.msg);
+ formEl.resetFields();
+ }
+ });
+ } else {
+ console.log('error submit!', fields);
+ }
+ });
+ form.value = {
+ indexNum: '', //目标指标编号
+ qName: '', //安全目标指标
+ year: '', //年度
+ level: '', ////指标级别 1:公司级 2:部门分厂级 3:工段班组级
+ memo: '', ////备注信息
+ targetType: '', ////指标类型 1:年指标 2:月指标
+ completeDate: '', ////完成期限
+ divideStatus: '1', ////分解状态 1:已分解 2:未分解
+ value: '', ////指标值
+ };
+ };
+
+ const resetForm = (formEl: FormInstance | undefined) => {
+ if (!formEl) return;
+ formEl.resetFields();
+ Shows.value = false;
+ form.value = {
+ indexNum: '', //目标指标编号
+ qName: '', //安全目标指标
+ year: '', //年度
+ level: '', ////指标级别 1:公司级 2:部门分厂级 3:工段班组级
+ memo: '', ////备注信息
+ targetType: '', ////指标类型 1:年指标 2:月指标
+ completeDate: '', ////完成期限
+ divideStatus: '1', ////分解状态 1:已分解 2:未分解
+ value: '', ////指标值
+ };
+ };
return {
openDialog,
+ titles,
Shows,
form,
full,
toggleFullscreen,
+ rules,
+ ruleFormRef,
+ submitForm,
+ resetForm,
FullScreen,
};
},
diff --git a/src/views/goalManagement/targetSettings/index.vue b/src/views/goalManagement/targetSettings/index.vue
index 36388e3..0653f49 100644
--- a/src/views/goalManagement/targetSettings/index.vue
+++ b/src/views/goalManagement/targetSettings/index.vue
@@ -1,263 +1,293 @@
<template>
-<div>
- <search></search>
- <div class="minCenter">
- <el-tabs
- v-model="activeName"
- class="demo-tabs"
- @tab-click="handleClick"
- >
- <div class="btns">
- <div>
- <el-button type="primary" size="default" :icon="Plus" @click="openD('新建')">新建</el-button>
- <el-button type="danger" size="default" :icon="Delete" plain>删除</el-button>
- </div>
- <div>
- <!-- <el-button size="default" :icon="Upload" @click="upButton"></el-button>
+ <div>
+ <el-form :model="ruleForm" status-icon label-width="20px" class="topTitle">
+ <el-row>
+ <el-col :span="4">
+ <el-form-item>
+ <el-input v-model="ruleForm.searchParams.qName" size="default" placeholder="安全目标指标" />
+ </el-form-item>
+ </el-col>
+ <el-col :span="4">
+ <el-form-item>
+ <el-input v-model="ruleForm.searchParams.indexNum" size="default" placeholder="目标指标编号" />
+ </el-form-item>
+ </el-col>
+ <el-col :span="16">
+ <el-form-item>
+ <el-button type="primary" size="default" @click="listApi">查询</el-button>
+ <el-button size="default" @click="resetForm">重置</el-button>
+ </el-form-item>
+ </el-col>
+ </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 type="primary" size="default" :icon="Plus" @click="openD('新建')">新建</el-button>
+ <el-button type="danger" :disabled="danger" size="default" @click="onDeleteAll" :icon="Delete" plain>删除</el-button>
+ </div>
+ <div>
+ <!-- <el-button size="default" :icon="Upload" @click="upButton"></el-button>
<el-button size="default" :icon="Download"></el-button>
<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-tabs>
- <el-table
- ref="multipleTableRef"
- :data="tableData"
- style="width: 100%"
- >
- <el-table-column
- label="序号"
- align="center"
- type="index"
- width="70"
- />
- <el-table-column type="selection" align="center" width="55" />
- <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>
- <dailogAdd ref="openAdd"></dailogAdd>
- <upData ref="upShow"></upData>
- </div>
- </div>
+ </div>
+ </div>
+ <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" @selection-change="handleSelectionChange" style="width: 100%">
+ <el-table-column label="序号" align="center" type="index" width="70" />
+ <el-table-column type="selection" align="center" width="55" />
+ <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 />
+ <el-table-column property="value" label="指标值" align="center" sortable show-overflow-tooltip />
+ <el-table-column property="level" label="指标级别" align="center" sortable show-overflow-tooltip />
+ <el-table-column property="completeDate" label="完成期限" align="center" sortable show-overflow-tooltip />
+ <el-table-column label="状态" align="center" sortable show-overflow-tooltip>
+ <template #default="scope">
+ <span v-if="scope.row.divideStatus == 1">已分解</span>
+ <span v-if="scope.row.divideStatus == 2">未分解</span>
+ </template>
+ </el-table-column>
+ <el-table-column property="memo" label="备注信息" align="center" sortable show-overflow-tooltip />
+ <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="Delete" @click="onDelete(scope.row.id)">删除</el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+ <div class="pages">
+ <el-pagination
+ v-model:currentPage="currentPage4"
+ v-model:page-size="pageSize4"
+ :page-sizes="[10, 20, 30, 40]"
+ layout="total, sizes, prev, pager, next, jumper"
+ :total="total"
+ @size-change="handleSizeChange"
+ @current-change="handleCurrentChange"
+ />
+ </div>
+ <dailogAdd ref="openAdd" @navAddorUpdata="onAddorUpdata"></dailogAdd>
+ <upData ref="upShow"></upData>
+ </div>
+ </div>
</template>
<script lang="ts">
-import dailogAdd from './component/dailogAdd.vue'
-import upData from '../../../components/updata/updata.vue'
-import search from './component/search.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";
+import dailogAdd from './component/dailogAdd.vue';
+import upData from '../../../components/updata/updata.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';
+import { goalManagementApi } from '/@/api/goalManagement';
export default defineComponent({
- components: { ElButton, ElInput,dailogAdd,upData,search},
- 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 openAdd=ref()
- const openD=(type:String,value:any)=>{
- openAdd.value.openDialog(type,value)
- }
-
- // 上传
- const upShow=ref()
- const upButton=()=>{
- upShow.value.openDialog()
- }
- return {
- activeName,
- handleClick,
- tableData,
- formatter,
- currentPage4,
- pageSize4,
- handleSizeChange,
- handleCurrentChange,
- openAdd,
- openD,
- upShow,
- upButton,
- small,
- disabled,
- background,
- Plus,
- Delete,
- Upload,
- Download,
- Refresh,
- View
- };
- },
+ components: { ElButton, ElInput, dailogAdd, upData },
+ setup() {
+ // 搜索条件
+ const ruleForm = reactive({
+ pageSize: 10,
+ pageIndex: 1,
+ searchParams: {
+ qName: '', ////安全目标指标
+ indexNum: '', ////目标指标编号
+ targetType: '1', ////指标类型 1:年指标 2:月指标
+ divideStatus: '', ////分解状态 1:已分解 2:未分解
+ },
+ });
+ // 重置
+ const resetForm = () => {
+ ruleForm.searchParams.qName = '';
+ ruleForm.searchParams.indexNum = '';
+ };
+ const listApi = () => {
+ goalManagementApi()
+ .getTargetMngList(ruleForm)
+ .then((res) => {
+ if (res.data.code == 200) {
+ tableData.value = res.data.data;
+ currentPage4.value = res.data.pageIndex;
+ pageSize4.value = res.data.pageSize;
+ total.value = res.data.total;
+ } else {
+ ElMessage.error(res.data.msg);
+ }
+ });
+ };
+ //
+ const handleClick = (val: any) => {
+ let targetType = JSON.parse(JSON.stringify(val));
+ ruleForm.searchParams.targetType = targetType.paneName;
+ listApi();
+ };
+ onMounted(() => {
+ listApi();
+ });
+ const onAddorUpdata = () => {
+ listApi();
+ };
+ // 表格
+ const tableData = ref();
+ const currentPage4 = ref();
+ const pageSize4 = ref();
+ const total = ref();
+ const small = ref(false);
+ const disabled = ref(false);
+ const background = ref(false);
+ const handleSizeChange = (val: number) => {
+ // console.log(`${val} items per page`);
+ ruleForm.pageSize = val;
+ listApi();
+ };
+ const handleCurrentChange = (val: number) => {
+ // console.log(`current page: ${val}`);
+ ruleForm.pageIndex = val;
+ listApi();
+ };
+ // 弹窗
+ const openAdd = ref();
+ const openD = (title: String, id: number) => {
+ openAdd.value.openDialog(title, ruleForm.searchParams.targetType, id);
+ };
+ // 删除
+ const onDelete = (id: number) => {
+ ElMessageBox.confirm('确定删除所选项吗?', 'Warning', {
+ confirmButtonText: '确定',
+ cancelButtonText: '取消',
+ type: 'warning',
+ })
+ .then(() => {
+ goalManagementApi()
+ .getTargetMngDelete(id)
+ .then((res) => {
+ if (res.data.code == 200) {
+ ElMessage({
+ message: res.data.msg,
+ type: 'success',
+ });
+ listApi();
+ } else {
+ ElMessage.error(res.data.msg);
+ }
+ });
+ })
+ .catch(() => {
+ ElMessage({
+ type: 'info',
+ message: 'Delete canceled',
+ });
+ });
+ };
+ // 批量删除
+ // const warning = ref(true);
+ const danger = ref(true);
+ const deletAll = ref();
+ const handleSelectionChange = (val: any) => {
+ let valId = JSON.parse(JSON.stringify(val));
+ let arr = [];
+ for (let i = 0; i < valId.length; i++) {
+ arr.push(valId[i].id);
+ }
+ deletAll.value = arr.toString();
+ if (val.length == 1) {
+ // warning.value = false;
+ danger.value = false;
+ } else if (val.length == 0) {
+ // warning.value = true;
+ danger.value = true;
+ } else {
+ // warning.value = true;
+ danger.value = false;
+ }
+ };
+ const onDeleteAll = () => {
+ ElMessageBox.confirm('确定删除所选项吗?', 'Warning', {
+ confirmButtonText: '确定',
+ cancelButtonText: '取消',
+ type: 'warning',
+ })
+ .then(() => {
+ goalManagementApi()
+ .getTargetMngDelete(deletAll.value)
+ .then((res) => {
+ if (res.data.code == 200) {
+ ElMessage({
+ message: res.data.msg,
+ type: 'success',
+ });
+ listApi();
+ } else {
+ ElMessage.error(res.data.msg);
+ }
+ });
+ })
+ .catch(() => {
+ // ElMessage({
+ // type: 'info',
+ // message: 'Delete canceled',
+ // });
+ });
+ };
+ // 上传
+ // const upShow = ref();
+ // const upButton = () => {
+ // upShow.value.openDialog();
+ // };
+ return {
+ tableData,
+ currentPage4,
+ pageSize4,
+ total,
+ handleSizeChange,
+ handleCurrentChange,
+ handleClick,
+ openAdd,
+ openD,
+ // upShow,
+ // upButton,
+ small,
+ disabled,
+ background,
+ Plus,
+ Delete,
+ Upload,
+ Download,
+ Refresh,
+ View,
+ listApi,
+ ruleForm,
+ resetForm,
+ onAddorUpdata,
+ onDelete,
+ handleSelectionChange,
+ deletAll,
+ danger,
+ onDeleteAll,
+ };
+ },
});
</script>
<style scoped>
+.topTitle {
+ background-color: #fff;
+ padding: 20px 0px 20px 0px;
+}
.minCenter {
- width: 100%;
- background-color: #fff;
- margin-top: 10px;
- padding: 0 20px;
+ width: 100%;
+ background-color: #fff;
+ margin-top: 10px;
+ padding: 0 20px;
}
.btns {
- padding: 0px 0px 10px 0px;
- display: flex;
- justify-content: space-between;
+ padding: 0px 0px 10px 0px;
+ display: flex;
+ justify-content: space-between;
}
-.pages{
-padding:20px 0;
-display: flex;
-justify-content: right;
+.pages {
+ padding: 20px 0;
+ display: flex;
+ justify-content: right;
}
</style>
--
Gitblit v1.9.2