From 09a7d782235db3192db6cd0013e96a3a9265a3fd Mon Sep 17 00:00:00 2001
From: shj <1790240199@qq.com>
Date: 星期三, 27 七月 2022 17:49:33 +0800
Subject: [PATCH] 对接
---
src/components/DailogSearch/DailogSearch.vue | 2
src/views/goalManagement/IncentiveRecording/component/DailogSearch.vue | 9
src/views/goalManagement/targetDecompositionYear/component/Dailog.vue | 69 +
src/views/goalManagement/TargetBook/component/DailogSearch.vue | 46 +
src/views/goalManagement/TargetBook/index.vue | 336 ++++++++-----
src/views/goalManagement/IncentiveRecording/component/DailogAdd.vue | 79 ++
src/views/goalManagement/Goalsummary/index.vue | 2
src/views/goalManagement/Incentivestandard/component/DailogAdd.vue | 101 +++-
src/views/goalManagement/IncentiveRecording/index.vue | 347 ++++++++-----
src/views/goalManagement/Incentivestandard/index.vue | 343 ++++++++-----
src/api/goalManagement/index.ts | 4
src/views/goalManagement/TargetBook/component/DailogAdd.vue | 103 +++-
src/views/goalManagement/targetSettings/component/dailogAdd.vue | 12
13 files changed, 929 insertions(+), 524 deletions(-)
diff --git a/src/api/goalManagement/index.ts b/src/api/goalManagement/index.ts
index 0daab7a..f0b8aab 100644
--- a/src/api/goalManagement/index.ts
+++ b/src/api/goalManagement/index.ts
@@ -56,14 +56,14 @@
})
},
// 目标责任书 查询单条数据
- gettargetDutyfileInfoDetail: (params: any) => {
+ gettargetDutyfileInfoDetail: (params: number) => {
return request({
url: `/targetDutyfileInfo/selectOne/${params}`,
method: "get"
})
},
// 目标责任书 新增或者修改数据
- gettargetDutyfileInfoAddorUpdata: (params: object) => {
+ gettargetDutyfileInfoAddorUpdata: (params: any) => {
return request({
url: `/targetDutyfileInfo/addOrUpdate`,
method: "post",
diff --git a/src/components/DailogSearch/DailogSearch.vue b/src/components/DailogSearch/DailogSearch.vue
index b1fa129..b2c186a 100644
--- a/src/components/DailogSearch/DailogSearch.vue
+++ b/src/components/DailogSearch/DailogSearch.vue
@@ -93,7 +93,7 @@
qName: '', ////安全目标指标
indexNum: '', ////目标指标编号
targetType: '', ////指标类型 1:年指标 2:月指标
- divideStatus: '', ////分解状态 1:已分解 2:未分解
+ divideStatus: '2', ////分解状态 1:已分解 2:未分解
},
});
// 下方导航与表格
diff --git a/src/views/goalManagement/Goalsummary/index.vue b/src/views/goalManagement/Goalsummary/index.vue
index 2104dfd..f0c1a6f 100644
--- a/src/views/goalManagement/Goalsummary/index.vue
+++ b/src/views/goalManagement/Goalsummary/index.vue
@@ -9,7 +9,7 @@
</el-col>
<el-col :span="4">
<el-form-item>
- <el-tree-select v-model="form.searchParams.departmentId" :data="data" class="w100" placeholder="请选择" />
+ <el-tree-select v-model="ruleForm.searchParams.departmentId" :data="data" class="w100" placeholder="请选择" />
</el-form-item>
</el-col>
<el-col :span="4">
diff --git a/src/views/goalManagement/IncentiveRecording/component/DailogAdd.vue b/src/views/goalManagement/IncentiveRecording/component/DailogAdd.vue
index f47e4ef..cb66dc1 100644
--- a/src/views/goalManagement/IncentiveRecording/component/DailogAdd.vue
+++ b/src/views/goalManagement/IncentiveRecording/component/DailogAdd.vue
@@ -1,7 +1,7 @@
<template>
- <el-dialog v-model="dialogVisible" :fullscreen="full" title="新建奖惩记录" width="50%" draggable>
+ <el-dialog v-model="dialogVisible" :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" label-width="120px">
<el-row>
<el-col :span="24">
<el-form-item label="员工姓名" size="default">
@@ -49,8 +49,8 @@
</el-form>
<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" @click="submitForm" size="default">确定</el-button>
</span>
</template>
</el-dialog>
@@ -61,27 +61,59 @@
import { defineComponent, ref, reactive } from 'vue';
import { Search, FullScreen } from '@element-plus/icons-vue';
import DailogSearch from './DailogSearch.vue';
+import { goalManagementApi } from '/@/api/goalManagement';
import DailogSearchUser from '/@/components/DailogSearchUser/index.vue';
+import { ElMessageBox, ElMessage, ElButton, ElInput, TabsPaneContext } from 'element-plus';
export default defineComponent({
components: { DailogSearch, DailogSearchUser },
- setup() {
+ setup(props,{emit}) {
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 titles = ref();
+ const disabled = ref(false);
+ // 打开弹窗
+ const openDailog = (title: string, value: any, id: number) => {
dialogVisible.value = true;
+ titles.value = `${title}奖惩标准设定`;
+ disabled.value = title == '查看' ? true : false;
+ if (title == '查看' || title == '修改')
+ goalManagementApi()
+ .getrewardPunishmentDetail(id)
+ .then((res) => {
+ if (res.data.code == 200) {
+ form.value = res.data.data;
+ } else {
+ ElMessage.error(res.data.msg);
+ }
+ });
};
- // 导航
- const activeName = ref('1');
- // 表格
+ // 提交
+ const submitForm = () => {
+ dialogVisible.value = false;
+ goalManagementApi()
+ .getrewardPunishmentAddOrUpdate(form.value)
+ .then((res) => {
+ if (res.data.code == 200) {
+ ElMessage({
+ message: res.data.msg,
+ type: 'success',
+ });
+ emit('navAddorUpdata');
+ } else {
+ ElMessage.error(res.data.msg);
+ }
+ });
+ form.value = {
+
+ }
+ };
+ // 取消
+ const resetForm = () => {
+ dialogVisible.value = false;
+ form.value = {
+
+ };
+ };
// 安全目标指标弹窗
const Shows = ref();
@@ -102,17 +134,20 @@
}
};
return {
- form,
dialogVisible,
+ form,
+ titles,
+ disabled,
openDailog,
- activeName,
+ submitForm,
+ resetForm,
Shows,
daiInpt,
Show,
daiInpts,
- Search,
full,
toggleFullscreen,
+ Search,
FullScreen,
};
},
diff --git a/src/views/goalManagement/IncentiveRecording/component/DailogSearch.vue b/src/views/goalManagement/IncentiveRecording/component/DailogSearch.vue
index 3a991f5..a5750f3 100644
--- a/src/views/goalManagement/IncentiveRecording/component/DailogSearch.vue
+++ b/src/views/goalManagement/IncentiveRecording/component/DailogSearch.vue
@@ -17,8 +17,8 @@
</el-col> -->
<el-col :span="11" :offset="1">
<el-form-item>
- <el-button size="default" type="primary" @click="submitForm(ruleFormRef)">查询</el-button>
- <el-button size="default" @click="resetForm(ruleFormRef)">重置</el-button>
+ <el-button size="default" type="primary" @click="submitForm">查询</el-button>
+ <el-button size="default" @click="resetForm">重置</el-button>
</el-form-item>
</el-col>
</el-row>
@@ -35,11 +35,8 @@
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"
+ :total="1"
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
/>
diff --git a/src/views/goalManagement/IncentiveRecording/index.vue b/src/views/goalManagement/IncentiveRecording/index.vue
index 97e2a85..13a4b2c 100644
--- a/src/views/goalManagement/IncentiveRecording/index.vue
+++ b/src/views/goalManagement/IncentiveRecording/index.vue
@@ -1,184 +1,262 @@
<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.name" placeholder="请选择被奖惩者">
- <template #append> <el-button :icon="Search" @click="openSearch" /> </template
- ></el-input>
- </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.personId" placeholder="请选择被奖惩者">
+ <template #append>
+ <el-button :icon="Search" @click="openSearch" />
+ </template>
+ </el-input>
+ </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>
- <el-button size="default" type="warning" plain :icon="EditPen">修改</el-button>
- <el-button size="default" type="danger" :icon="Delete" plain>删除</el-button>
+ <el-button size="default" type="primary" :icon="Plus" @click="openD('新建')">新建</el-button>
+ <el-button size="default" type="warning" plain :icon="EditPen">修改</el-button>
+ <el-button size="default" type="danger" :icon="Delete" plain @click="handleSelectionChange">删除 </el-button>
</div>
<div>
<!-- <el-button size="default" :icon="Download"></el-button>
<el-button size="default" :icon="Refresh"></el-button> -->
</div>
</div>
- <el-table ref="multipleTableRef" :data="tableData" style="width: 100%">
- <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="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 ref="multipleTableRef" :data="tableData" style="width: 100%">
+ <el-table-column type="selection" align="center" width="55" />
+ <el-table-column property="createTime" align="center" label="奖惩日期" sortable />
+ <el-table-column label="奖惩类型" align="center" sortable>
+ <template #default="scope">
+ <span v-if="scope.row.standardType==1">奖励</span>
+ <span v-if="scope.row.standardType==2">惩罚</span>
+ </template>
+ </el-table-column>
+ <el-table-column property="personName" align="center" label="被奖惩者" sortable />
+ <el-table-column property="content" label="奖惩内容" align="center" sortable show-overflow-tooltip />
+ <el-table-column property="reason" 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" style="width:300px">
- <template #default>
- <el-button link type="primary" size="default" :icon="View">查看</el-button>
- <el-button link type="primary" size="default" :icon="EditPen">修改</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-column label="操作" align="center" style="width: 300px">
+ <template #defaultt="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="EditPen" @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"></DailogAdd>
+ <DailogSearchUser ref="openUser"></DailogSearchUser>
</div>
- <DailogAdd ref="openAdd"></DailogAdd>
- <DailogSearchUser ref="openUser"></DailogSearchUser>
- </div>
</div>
</template>
<script lang="ts">
-import DailogAdd from './component/DailogAdd.vue'
-import DailogSearchUser from '/@/components/DailogSearchUser/index.vue'
+import DailogAdd from './component/DailogAdd.vue';
+import DailogSearchUser from '/@/components/DailogSearchUser/index.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,Search} 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 { Plus, Delete, Upload, Download, Refresh, View, EditPen, Search } from '@element-plus/icons-vue';
+import { goalManagementApi } from '/@/api/goalManagement';
export default defineComponent({
- components: { ElButton, ElInput,DailogAdd,DailogSearchUser },
+ components: { ElButton, ElInput, DailogAdd, DailogSearchUser },
setup() {
// 搜索条件
const ruleForm = reactive({
- pass: '',
- checkPass: '',
+ pageSize: 10,
+ pageIndex: 1,
+ searchParams: {
+ personId: '1', ////员工
+ },
});
-
- const formatter = (row: User, column: TableColumnCtx<User>) => {
- return row.address;
+ // 重置
+ const resetForm = () => {
+ ruleForm.searchParams.personId = '';
+ 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 listApi = () => {
+ goalManagementApi()
+ .getrewardPunishmentList(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.personId = 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 openAdd = ref();
- const openD = () => {
- openAdd.value.openDailog();
+ const openD = (title: String, id: number) => {
+ openAdd.value.openDailog(title, ruleForm.searchParams.personId, id);
};
- const openUser =ref();
+ // 删除
+ const onDelete = (id: number) => {
+ ElMessageBox.confirm('确定删除所选项吗?', 'Warning', {
+ confirmButtonText: '确定',
+ cancelButtonText: '取消',
+ type: 'warning',
+ })
+ .then(() => {
+ goalManagementApi()
+ .getrewardPunishmentDelete(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()
+ .getrewardPunishmentDelete(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 openUser=ref()
const openSearch=()=>{
openUser.value.openDailog()
}
return {
-
+ ruleForm,
+ resetForm,
+ listApi,
+ handleClick,
+ onAddorUpdata,
tableData,
- formatter,
currentPage4,
pageSize4,
+ total,
handleSizeChange,
handleCurrentChange,
- openAdd,
openD,
- small,
- disabled,
- background,
- ruleForm,
- openUser,
+ onDelete,
+ openAdd,
+ warning,
+ danger,
+ deletAll,
openSearch,
+ handleSelectionChange,
+ onDeleteAll,
+ openUser,
Plus,
Delete,
Upload,
Download,
Refresh,
View,
- EditPen,
- Search
+ EditPen,
+ Search,
};
},
});
@@ -190,16 +268,19 @@
margin-top: 10px;
padding: 0 20px;
}
+
.topTitle {
- background-color: #fff;
- padding: 20px 0px 20px 0px;
- margin-bottom:10px ;
+ background-color: #fff;
+ padding: 20px 0px 20px 0px;
+ margin-bottom: 10px;
}
+
.btns {
padding: 10px 0px 10px 0px;
display: flex;
justify-content: space-between;
}
+
.pages {
padding: 20px 0;
display: flex;
diff --git a/src/views/goalManagement/Incentivestandard/component/DailogAdd.vue b/src/views/goalManagement/Incentivestandard/component/DailogAdd.vue
index b0538d8..3d5abeb 100644
--- a/src/views/goalManagement/Incentivestandard/component/DailogAdd.vue
+++ b/src/views/goalManagement/Incentivestandard/component/DailogAdd.vue
@@ -1,46 +1,46 @@
<template>
- <el-dialog v-model="dialogVisible" :fullscreen="full" title="新建奖惩标准设定" width="50%" draggable>
+ <el-dialog v-model="dialogVisible" :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" label-width="120px">
<el-row>
<el-col :span="11">
<el-form-item label="奖惩类型" size="default">
- <el-select v-model="form.region" style="width: 100%" placeholder="">
- <el-option label="Zone one" value="shanghai" />
- <el-option label="Zone two" value="beijing" />
+ <el-select v-model="form.standardType" style="width: 100%" placeholder="请选择">
+ <el-option label="奖励" value="1" />
+ <el-option label="惩罚" value="2" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="11" :offset="2">
<el-form-item label="奖惩内容" size="default">
- <el-input v-model="form.name" />
+ <el-input v-model="form.content" />
</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.qName" />
</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.reason" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="备注信息">
- <el-input v-model="form.name" type="textarea" />
+ <el-input v-model="form.memo" type="textarea" />
</el-form-item>
</el-col>
</el-row>
</el-form>
<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" @click="submitForm" size="default">确定</el-button>
</span>
</template>
</el-dialog>
@@ -48,24 +48,72 @@
<script lang="ts">
import { defineComponent, ref, reactive } from 'vue';
import { Search, FullScreen } from '@element-plus/icons-vue';
+import { goalManagementApi } from '/@/api/goalManagement';
+import { ElMessageBox, ElMessage, ElButton, ElInput, TabsPaneContext } from 'element-plus';
export default defineComponent({
- setup() {
+ setup(props, { emit }) {
+ let Shows = ref(false);
const dialogVisible = ref<boolean>(false);
- const form = reactive({
- name: '',
- region: '',
- date1: '',
- date2: '',
- delivery: false,
- type: [],
- resource: '',
- desc: '',
+ const form = ref({
+ qName: "", ////奖惩名称
+ reason: "", ////依据
+ memo: "", ////备注信息
+ content: "", ////奖惩内容
+ standardType: null ////奖惩类型 1:奖励 2:惩罚
});
- const openDailog = (type: string, value: any, projectList: any, projectId: string) => {
+ const titles = ref();
+ const disabled = ref(false);
+ // 打开弹窗
+ const openDailog = (title: string, value: any, id: number) => {
dialogVisible.value = true;
+ titles.value = `${title}奖惩标准设定`;
+ disabled.value = title == '查看' ? true : false;
+ if (title == '查看' || title == '修改')
+ goalManagementApi()
+ .getrewardPunishmentStandardDetail(id)
+ .then((res) => {
+ if (res.data.code == 200) {
+ form.value = res.data.data;
+ } else {
+ ElMessage.error(res.data.msg);
+ }
+ });
};
- // 导航
- const activeName = ref('1');
+ // 提交
+ const submitForm = () => {
+ dialogVisible.value = false;
+ goalManagementApi()
+ .getrewardPunishmentStandardaddOrUpdate(form.value)
+ .then((res) => {
+ if (res.data.code == 200) {
+ ElMessage({
+ message: res.data.msg,
+ type: 'success',
+ });
+ emit('navAddorUpdata');
+ } else {
+ ElMessage.error(res.data.msg);
+ }
+ });
+ form.value = {
+ qName: "", ////奖惩名称
+ reason: "", ////依据
+ memo: "", ////备注信息
+ content: "", ////奖惩内容
+ standardType: null, ////奖惩类型 1:奖励 2:惩罚
+ }
+ };
+ // 取消
+ const resetForm = () => {
+ dialogVisible.value = false;
+ form.value = {
+ qName: "", ////奖惩名称
+ reason: "", ////依据
+ memo: "", ////备注信息
+ content: "", ////奖惩内容
+ standardType: null, ////奖惩类型 1:奖励 2:惩罚
+ };
+ };
//全屏
const full = ref(false);
const toggleFullscreen = () => {
@@ -78,10 +126,13 @@
return {
form,
+ titles,
dialogVisible,
openDailog,
- activeName,
+ disabled,
Search,
+ submitForm,
+ resetForm,
full,
toggleFullscreen,
FullScreen,
diff --git a/src/views/goalManagement/Incentivestandard/index.vue b/src/views/goalManagement/Incentivestandard/index.vue
index b1d0547..0629074 100644
--- a/src/views/goalManagement/Incentivestandard/index.vue
+++ b/src/views/goalManagement/Incentivestandard/index.vue
@@ -1,34 +1,34 @@
<template>
-<div>
- <el-form ref="ruleFormRef" :model="ruleForm" status-icon label-width="20px" class="topTitle">
- <el-row>
- <el-col :span="4">
- <el-form-item>
- <el-select v-model="ruleForm.region" size="default" style="width:100%" placeholder="">
- <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">
+ <div>
+ <el-form ref="ruleFormRef" :model="ruleForm" status-icon label-width="20px" class="topTitle">
+ <el-row>
+ <el-col :span="4">
+ <el-form-item>
+ <el-select v-model="ruleForm.searchParams.standardType" size="default" style="width: 100%" placeholder="请选择">
+ <el-option label="奖励" value="1" />
+ <el-option label="惩罚" value="2" />
+ </el-select>
+ </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>
- <el-button size="default" type="warning" plain :icon="EditPen">修改</el-button>
- <el-button size="default" type="danger" :icon="Delete" plain>删除</el-button>
+ <el-button size="default" type="primary" :icon="Plus" @click="openD('新建')" >新建</el-button>
+ <el-button size="default" type="warning" :disabled="warning" plain :icon="EditPen" @click="openD">修改 </el-button>
+ <el-button size="default" type="danger" :disabled="danger" :icon="Delete" plain @click="handleSelectionChange">删除</el-button>
</div>
<div>
<!-- <el-button size="default" :icon="Upload" @click="upButton"></el-button>
@@ -36,152 +36,218 @@
<el-button size="default" :icon="Refresh"></el-button> -->
</div>
</div>
- <el-table ref="multipleTableRef" :data="tableData" style="width: 100%">
- <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">查看</el-button>
- <el-button link type="primary" size="default" :icon="EditPen">修改</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" @selection-change="handleSelectionChange" style="width: 100%">
+ <el-table-column type="selection" align="center" width="55" />
+ <el-table-column property="qname" align="center" label="奖惩名称" sortable />
+ <el-table-column property="name" align="center" label="奖惩类型" sortable>
+ <template #default="scope">
+ <span v-if="scope.row.standardType == 1">奖励</span>
+ <span v-if="scope.row.standardType == 2">惩罚</span>
+ </template>
+ </el-table-column>
+ <el-table-column property="content" label="奖惩内容" align="center" sortable show-overflow-tooltip />
+ <el-table-column property="reason" label="依据" align="center" sortable show-overflow-tooltip />
+ <el-table-column property="memo" 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="default" :icon="View" @click="openD('查看', scope.row.id)">查看 </el-button>
+ <el-button link type="primary" size="default" :icon="EditPen" @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>
- <DailogAdd ref="openAdd"></DailogAdd>
- <upData ref="upShow"></upData>
- </div>
</div>
</template>
<script lang="ts">
-import DailogAdd from './component/DailogAdd.vue'
+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,EditPen } from '@element-plus/icons-vue';
-interface User {
- date: string;
- name: string;
- address: string;
-}
+import { Plus, Delete, Upload, Download, Refresh, View, EditPen } from '@element-plus/icons-vue';
import type { TableColumnCtx } from 'element-plus/es/components/table/src/table-column/defaults';
+import { goalManagementApi } from '/@/api/goalManagement';
export default defineComponent({
- components: { ElButton, ElInput, upData,DailogAdd },
+ components: { ElButton, ElInput, upData, DailogAdd },
setup() {
// 搜索条件
const ruleForm = reactive({
- pass: '',
- checkPass: '',
+ pageSize: 10,
+ pageIndex: 1,
+ searchParams: {
+ standardType: '', ////奖惩类型 1:奖励 2:惩罚
+ },
});
-
- const formatter = (row: User, column: TableColumnCtx<User>) => {
- return row.address;
+ // 重置
+ const resetForm = () => {
+ ruleForm.searchParams.standardType = '';
+ 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 listApi = () => {
+ goalManagementApi()
+ .getrewardPunishmentStandardList(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.standardType = 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 openAdd = ref();
- const openD = () => {
- openAdd.value.openDailog();
+ const openD = (title: String, id: number) => {
+ openAdd.value.openDailog(title, ruleForm.searchParams.standardType, id);
};
-
- // 上传
- const upShow = ref();
- const upButton = () => {
- upShow.value.openDialog();
+ // 删除
+ const onDelete = (id: number) => {
+ ElMessageBox.confirm('确定删除所选项吗?', 'Warning', {
+ confirmButtonText: '确定',
+ cancelButtonText: '取消',
+ type: 'warning',
+ })
+ .then(() => {
+ goalManagementApi()
+ .getrewardPunishmentStandardDelete(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()
+ .getrewardPunishmentStandardDelete(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 {
-
+ ruleForm,
+ resetForm,
+ listApi,
+ handleClick,
+ onAddorUpdata,
tableData,
- formatter,
currentPage4,
pageSize4,
+ total,
handleSizeChange,
handleCurrentChange,
openAdd,
openD,
- upShow,
- upButton,
- small,
- disabled,
- background,
- ruleForm,
+ onDelete,
+ warning,
+ danger,
+ deletAll,
+ handleSelectionChange,
+ onDeleteAll,
Plus,
Delete,
Upload,
Download,
Refresh,
View,
- EditPen
+ EditPen,
};
},
});
@@ -193,16 +259,19 @@
margin-top: 10px;
padding: 0 20px;
}
+
.topTitle {
- background-color: #fff;
- padding: 20px 0px 20px 0px;
- margin-bottom:10px ;
+ background-color: #fff;
+ padding: 20px 0px 20px 0px;
+ margin-bottom: 10px;
}
+
.btns {
padding: 10px 0px 10px 0px;
display: flex;
justify-content: space-between;
}
+
.pages {
padding: 20px 0;
display: flex;
diff --git a/src/views/goalManagement/TargetBook/component/DailogAdd.vue b/src/views/goalManagement/TargetBook/component/DailogAdd.vue
index 246d5be..3f572d3 100644
--- a/src/views/goalManagement/TargetBook/component/DailogAdd.vue
+++ b/src/views/goalManagement/TargetBook/component/DailogAdd.vue
@@ -1,11 +1,11 @@
<template>
- <el-dialog v-model="dialogVisible" :fullscreen="full" title="新建目标责任书" width="50%" draggable>
+ <el-dialog v-model="dialogVisible" :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" label-width="120px">
<el-row>
<el-col :span="24">
<el-form-item label="岗位" size="default">
- <el-input v-model="form.name" placeholder="请选择">
+ <el-input v-model="form.jobId" placeholder="请选择">
<template #append> <el-button :icon="Search" @click="daiInpt" /> </template
></el-input>
</el-form-item>
@@ -14,14 +14,14 @@
<el-row>
<el-col :span="24">
<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.signDate" style="width:100%" format="YYYY-MM-DD HH:mm:ss" type="datetime" placeholder="请选择日期时间" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="备注信息">
- <el-input v-model="form.name" type="textarea" />
+ <el-input v-model="form.memo" type="textarea" />
</el-form-item>
</el-col>
</el-row>
@@ -50,12 +50,12 @@
</el-form>
<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" @click="submitForm" size="default">确定</el-button>
</span>
</template>
</el-dialog>
- <DailogSearch ref="Shows"></DailogSearch>
+ <DailogSearch ref="Shows" @backNum="IdNumber"></DailogSearch>
</template>
<script lang="ts">
import { defineComponent, ref, reactive } from 'vue';
@@ -63,32 +63,79 @@
import DailogSearch from './DailogSearch.vue';
import { ElMessage, ElMessageBox } from 'element-plus';
import type { UploadProps, UploadUserFile } from 'element-plus';
+import { goalManagementApi } from '/@/api/goalManagement';
export default defineComponent({
components: { DailogSearch },
- setup() {
+ setup(props, { emit }) {
const dialogVisible = ref<boolean>(false);
- const form = reactive({
- name: '',
- region: '',
- date1: '',
- date2: '',
- delivery: false,
- type: [],
- resource: '',
- desc: '',
+ const form = ref({
+ indexNum: '', //目标指标编号
+ memo: '', ////备注信息
+ signDate: '', //责任书签订日期
+ extraFile: '666', //责任书附件
+ jobId: '', //岗位
});
- const openDailog = (type: string, value: any, projectList: any, projectId: string) => {
+ const titles = ref();
+ const disabled = ref(false);
+ // 打开弹窗
+ const openDailog = (title: string, value: any, id: number) => {
dialogVisible.value = true;
+ titles.value =`${title}目标责任书`;
+ disabled.value = title == '查看' ? true : false;
+ if (title == '查看' || title == '修改')
+ goalManagementApi()
+ .gettargetDutyfileInfoDetail(id)
+ .then((res) => {
+ if (res.data.code == 200) {
+ form.value = res.data.data;
+ } else {
+ ElMessage.error(res.data.msg);
+ }
+ });
};
- // 导航
- const activeName = ref('1');
- // 表格
-
+ // 提交
+ const submitForm = () => {
+ dialogVisible.value = false;
+ goalManagementApi()
+ .gettargetDutyfileInfoAddorUpdata(form.value)
+ .then((res) => {
+ if (res.data.code == 200) {
+ ElMessage({
+ message: res.data.msg,
+ type: 'success',
+ });
+ emit('navAddorUpdata');
+ } else {
+ ElMessage.error(res.data.msg);
+ }
+ });
+ form.value = {
+ indexNum: '', //目标指标编号
+ memo: '', ////备注信息
+ signDate: '', //责任书签订日期
+ extraFile: '666', //责任书附件
+ jobId: '', //岗位
+ };
+ };
+ // 取消
+ const resetForm = () => {
+ dialogVisible.value = false;
+ form.value = {
+ indexNum: '', //目标指标编号
+ memo: '', ////备注信息
+ signDate: '', //责任书签订日期
+ extraFile: '666', //责任书附件
+ jobId: '', //岗位
+ };
+ };
// 安全目标指标弹窗
const Shows = ref();
const daiInpt = () => {
Shows.value.openDailog();
};
+ const IdNumber=(val:any)=>{
+ form.value.jobId=val.id
+ }
// 点击上传
const fileList = ref<UploadUserFile[]>([
{
@@ -129,12 +176,16 @@
}
};
return {
- form,
+ IdNumber,
dialogVisible,
+ form,
+ disabled,
+ titles,
openDailog,
- activeName,
- Shows,
daiInpt,
+ submitForm,
+ resetForm,
+ Shows,
Search,
fileList,
handleRemove,
diff --git a/src/views/goalManagement/TargetBook/component/DailogSearch.vue b/src/views/goalManagement/TargetBook/component/DailogSearch.vue
index b8f225d..1801078 100644
--- a/src/views/goalManagement/TargetBook/component/DailogSearch.vue
+++ b/src/views/goalManagement/TargetBook/component/DailogSearch.vue
@@ -24,8 +24,14 @@
</el-row>
</el-form>
<el-button size="default" :icon="Delete">清除选择</el-button>
- <el-table :data="tableData" style="width: 100%; margin-top: 20px">
- <el-table-column align="center" type="selection" />
+ <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>
<el-pagination
@@ -43,6 +49,7 @@
/>
</el-col>
<el-col :span="7">
+ <div v-if="dynamicTags[0]==''?false:true">
<el-tag
v-for="tag in dynamicTags"
:key="tag"
@@ -52,14 +59,15 @@
:disable-transitions="false"
@close="handleClose(tag)"
>
- {{ tag }}
+ {{ tag.id }}
</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>
@@ -68,7 +76,7 @@
import { defineComponent, reactive, ref } from 'vue';
import { Delete, FullScreen } from '@element-plus/icons-vue';
export default defineComponent({
- setup() {
+ setup(props,{emit}) {
const dialogVisible = ref<boolean>(false);
const openDailog = () => {
dialogVisible.value = true;
@@ -80,22 +88,24 @@
});
// 表格
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',
@@ -109,10 +119,24 @@
console.log(`current page: ${val}`);
};
// 右方点击添加后显示标签
- 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 clear=()=>{
+ dynamicTags.value=['']
+ radio1.value=""
+ }
+ const submitForm=()=>{
+ let obj=JSON.parse(JSON.stringify(dynamicTags.value))
+ emit("backNum",obj[0])
+ dialogVisible.value = false
+ }
//全屏
const full = ref(false);
const toggleFullscreen = () => {
@@ -123,6 +147,9 @@
}
};
return {
+ radio1,
+ radio,
+ clear,
dialogVisible,
openDailog,
ruleForm,
@@ -132,6 +159,7 @@
handleCurrentChange,
dynamicTags,
handleClose,
+ submitForm,
Delete,
full,
toggleFullscreen,
diff --git a/src/views/goalManagement/TargetBook/index.vue b/src/views/goalManagement/TargetBook/index.vue
index 5025fac..96cb180 100644
--- a/src/views/goalManagement/TargetBook/index.vue
+++ b/src/views/goalManagement/TargetBook/index.vue
@@ -1,175 +1,243 @@
<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.name" placeholder="请选择岗位">
+ <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.jobId" placeholder="请选择岗位">
<template #append> <el-button :icon="Search" @click="openSearch" /> </template
></el-input>
- </el-form-item>
- </el-col>
- <!-- <el-col :span="4">
+ </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>
- <el-button size="default" type="warning" plain :icon="EditPen">修改</el-button>
- <el-button size="default" type="danger" :icon="Delete" plain>删除</el-button>
+ <el-button size="default" type="primary" :icon="Plus" @click="openD('新建')">新建</el-button>
+ <el-button size="default" :disabled="warning" type="warning" plain :icon="EditPen">修改</el-button>
+ <el-button size="default" :disabled="danger" type="danger" :icon="Delete" plain @click="onDeleteAll">删除</el-button>
</div>
<div>
<!-- <el-button size="default" :icon="Download"></el-button>
<el-button size="default" :icon="Refresh"></el-button> -->
</div>
</div>
- <el-table ref="multipleTableRef" :data="tableData" style="width: 100%">
- <el-table-column type="selection" align="center" width="55" />
- <el-table-column type="index" label="序号" align="center" 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="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 label="操作" align="center" style="width:300px">
- <template #default>
- <el-button link type="primary" size="default" :icon="View">查看</el-button>
- <el-button link type="primary" size="default" :icon="EditPen">修改</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" @selection-change="handleSelectionChange" style="width: 100%">
+ <el-table-column type="selection" align="center" width="55" />
+ <el-table-column type="index" label="序号" align="center" width="70" />
+ <el-table-column property="jobId" align="center" label="岗位" sortable />
+ <el-table-column property="signDate" align="center" label="责任书签订日期" sortable />
+ <el-table-column property="extraFile" align="center" label="附件" sortable />
+ <el-table-column property="memo" label="备注信息" align="center" sortable show-overflow-tooltip />
+ <el-table-column label="操作" align="center" style="width: 300px">
+ <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="EditPen" @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>
+ <DailogSearch ref="openUser"></DailogSearch>
</div>
- <DailogAdd ref="openAdd"></DailogAdd>
- <DailogSearch ref="openUser"></DailogSearch>
- </div>
</div>
</template>
<script lang="ts">
-import DailogAdd from './component/DailogAdd.vue'
-import DailogSearch from './component/DailogSearch.vue'
+import DailogAdd from './component/DailogAdd.vue';
+import DailogSearch from './component/DailogSearch.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,Search} from '@element-plus/icons-vue';
-interface User {
- date: string;
- name: string;
- address: string;
-}
+import { Plus, Delete, Upload, Download, Refresh, View, EditPen, Search } 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,DailogAdd,DailogSearch },
+ components: { ElButton, ElInput, DailogAdd, DailogSearch },
setup() {
// 搜索条件
const ruleForm = reactive({
- pass: '',
- checkPass: '',
+ pageSize: 10,
+ pageIndex: 1,
+ searchParams: {
+ jobId: '', ////岗位号/外键
+ },
});
-
- const formatter = (row: User, column: TableColumnCtx<User>) => {
- return row.address;
+ // 重置
+ const resetForm = () => {
+ ruleForm.searchParams.jobId = '';
+ 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 listApi = () => {
+ goalManagementApi()
+ .gettargetDutyfileInfoList(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.jobId = 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 openAdd = ref();
- const openD = () => {
- openAdd.value.openDailog();
+ const openD = (title: String, id: number) => {
+ openAdd.value.openDailog(title, ruleForm.searchParams.jobId, id);
};
- const openUser =ref();
- const openSearch=()=>{
- openUser.value.openDailog()
- }
+ // 删除
+ const onDelete = (id: number) => {
+ ElMessageBox.confirm('确定删除所选项吗?', 'Warning', {
+ confirmButtonText: '确定',
+ cancelButtonText: '取消',
+ type: 'warning',
+ })
+ .then(() => {
+ goalManagementApi()
+ .gettargetDutyfileInfoDelete(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()
+ .gettargetDutyfileInfoDelete(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 openUser = ref();
+ const openSearch = () => {
+ openUser.value.openDailog();
+ };
return {
-
+ ruleForm,
+ resetForm,
+ listApi,
+ handleClick,
+ onAddorUpdata,
tableData,
- formatter,
currentPage4,
pageSize4,
+ total,
handleSizeChange,
handleCurrentChange,
openAdd,
openD,
- small,
- disabled,
- background,
- ruleForm,
+ onDelete,
+ warning,
+ danger,
+ deletAll,
+ handleSelectionChange,
+ onDeleteAll,
openUser,
openSearch,
Plus,
@@ -178,8 +246,8 @@
Download,
Refresh,
View,
- EditPen,
- Search
+ EditPen,
+ Search,
};
},
});
@@ -192,9 +260,9 @@
padding: 0 20px;
}
.topTitle {
- background-color: #fff;
- padding: 20px 0px 20px 0px;
- margin-bottom:10px ;
+ background-color: #fff;
+ padding: 20px 0px 20px 0px;
+ margin-bottom: 10px;
}
.btns {
padding: 10px 0px 10px 0px;
diff --git a/src/views/goalManagement/targetDecompositionYear/component/Dailog.vue b/src/views/goalManagement/targetDecompositionYear/component/Dailog.vue
index a9bc880..915883e 100644
--- a/src/views/goalManagement/targetDecompositionYear/component/Dailog.vue
+++ b/src/views/goalManagement/targetDecompositionYear/component/Dailog.vue
@@ -34,17 +34,17 @@
<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="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>
+ <el-table :data="form.targetDivideDetailList" style="width: 100%">
+ <el-table-column align="center" property="dutyDepartmentId" label="责任部门" width="180" />
+ <el-table-column align="center" property="value" label="考核指标" width="180" />
+ <el-table-column align="center" property="makerDepartmentId" label="制定人部门" />
+ <el-table-column align="center" property="makeDate" label="制定日期" />
+ <el-table-column align="center" property="commitPersonId" label="上报人" />
+ <el-table-column align="center" property="操作">
+ <template #default="scope">
+ <el-button link type="primary" @click="daiAdd('查看', scope.row)">查看</el-button>
+ <el-button link :disabled="disabled" type="primary" @click="daiAdd('修改', scope.row)">修改</el-button>
+ <el-button link :disabled="disabled" type="primary" @click="Delete(scope.row)">删除</el-button>
</template>
</el-table-column>
</el-table>
@@ -103,23 +103,43 @@
Show.value.openDailog();
};
const formUp = reactive({
- targetId:"", //关联的目标指标/外键
+ targetId: '', //关联的目标指标/外键
delTargetDivideDetails: '', //要删除的目标指标分解ID,多个用逗号隔开
targetDivideDetailList: [], //目标指标分解列表
});
- const add = (e:any) => {
- formUp.targetDivideDetailList.push(e)
+ 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){
-
- }
- })
+ formUp.targetId = form.value.id;
+ goalManagementApi()
+ .gettargetDivideDetail(formUp)
+ .then((res) => {
+ if (res.data.code == 200) {
+ ElMessage({
+ message: res.data.msg,
+ type: 'success',
+ });
+ }else{
+ ElMessage.error(res.data.msg);
+ }
+ });
};
- const submitForm=()=>{
-
- }
+ const submitForm = () => {};
+ // 删除
+ const Delete = (data: any) => {
+ formUp.delTargetDivideDetails=data.id
+ goalManagementApi()
+ .gettargetDivideDetail(formUp).then(res=>{
+ if(res.data.code==200){
+ ElMessage({
+ message: res.data.msg,
+ type: 'success',
+ });
+ }else{
+ ElMessage.error(res.data.msg);
+ }
+ })
+ };
// 安全目标指标弹窗
const Shows = ref();
const daiInpt = () => {
@@ -161,7 +181,8 @@
titles,
add,
formUp,
- submitForm
+ submitForm,
+ Delete
};
},
});
diff --git a/src/views/goalManagement/targetSettings/component/dailogAdd.vue b/src/views/goalManagement/targetSettings/component/dailogAdd.vue
index cd28085..e6d69db 100644
--- a/src/views/goalManagement/targetSettings/component/dailogAdd.vue
+++ b/src/views/goalManagement/targetSettings/component/dailogAdd.vue
@@ -38,7 +38,8 @@
</el-col>
<el-col :span="11" :offset="2">
<el-form-item label="完成期限" size="default">
- <el-date-picker v-model="form.completeDate" format="YYYY-MM-DD HH:mm:ss" type="datetime" placeholder="请选择" 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>
@@ -49,7 +50,8 @@
<template #footer>
<span class="dialog-footer">
<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>
+ <el-button type="primary" v-if="titles == '查看目标设定' ? false : true" @click="submitForm(ruleFormRef)"
+ size="default">确定</el-button>
</span>
</template>
</el-dialog>
@@ -73,7 +75,7 @@
memo: '', ////备注信息
targetType: '', ////指标类型 1:年指标 2:月指标
completeDate: '', ////完成期限
- divideStatus: '1', ////分解状态 1:已分解 2:未分解
+ divideStatus: '2', ////分解状态 1:已分解 2:未分解
value: '', ////指标值
});
const titles = ref();
@@ -134,6 +136,7 @@
},
],
});
+ // 提交
const submitForm = async (formEl: FormInstance | undefined) => {
if (!formEl) return;
await formEl.validate((valid, fields) => {
@@ -169,7 +172,7 @@
value: '', ////指标值
};
};
-
+ // 取消
const resetForm = (formEl: FormInstance | undefined) => {
if (!formEl) return;
formEl.resetFields();
@@ -192,6 +195,7 @@
Shows,
form,
full,
+ disabled,
toggleFullscreen,
rules,
ruleFormRef,
--
Gitblit v1.9.2