From f60473bc01862ba1e289e7764f9478b9675e9c68 Mon Sep 17 00:00:00 2001
From: shj <1790240199@qq.com>
Date: 星期五, 05 八月 2022 09:23:56 +0800
Subject: [PATCH] 对接
---
src/components/DailogSearch/DailogSearch.vue | 2
src/views/goalManagement/IncentiveRecording/index.vue | 4
src/views/goalManagement/targetDecompositionYear/component/DailogAdd.vue | 73 +++++---
src/views/goalManagement/targetSettings/index.vue | 4
src/views/goalManagement/performanceAppraisal/index.vue | 10
src/views/goalManagement/performanceAppraisal/component/DailogSearch.vue | 75 +++++----
src/views/goalManagement/targetDecompositionYear/component/Dailog.vue | 31 ++-
src/views/goalManagement/TargetBook/index.vue | 4
src/views/goalManagement/targetSettings/component/dailogAdd.vue | 53 ++----
src/assets/index.ts | 17 ++
src/views/goalManagement/performanceAppraisal/component/DailogAq.vue | 190 ++++++++++++++---------
11 files changed, 268 insertions(+), 195 deletions(-)
diff --git a/src/assets/index.ts b/src/assets/index.ts
new file mode 100644
index 0000000..de3e571
--- /dev/null
+++ b/src/assets/index.ts
@@ -0,0 +1,17 @@
+export function timeDate(row: any, column: any, cellValue: any, index: any) {
+ const daterc = row[column.property]
+ if (daterc != null) {
+ var date = new Date(daterc);
+ var year = date.getFullYear();
+ /* 在日期格式中,月份是从0开始,11结束,因此要加0
+ * 使用三元表达式在小于10的前面加0,以达到格式统一 如 09:11:05
+ * */
+ var month = date.getMonth() + 1 < 10 ? "0" + (date.getMonth() + 1) : date.getMonth() + 1;
+ var day = date.getDate() < 10 ? "0" + date.getDate() : date.getDate();
+ var hours = date.getHours() < 10 ? "0" + date.getHours() : date.getHours();
+ var minutes = date.getMinutes() < 10 ? "0" + date.getMinutes() : date.getMinutes();
+ var seconds = date.getSeconds() < 10 ? "0" + date.getSeconds() : date.getSeconds();
+ // 拼接
+ return year + "-" + month + "-" + day + " " + hours + ":" + minutes + ":" + seconds;
+ }
+}
\ No newline at end of file
diff --git a/src/components/DailogSearch/DailogSearch.vue b/src/components/DailogSearch/DailogSearch.vue
index b2c186a..eda01ac 100644
--- a/src/components/DailogSearch/DailogSearch.vue
+++ b/src/components/DailogSearch/DailogSearch.vue
@@ -165,6 +165,8 @@
openDailog,
ruleForm,
tableData,
+ currentPage4,
+ total,
pageSize4,
resetForm,
listApi,
diff --git a/src/views/goalManagement/IncentiveRecording/index.vue b/src/views/goalManagement/IncentiveRecording/index.vue
index 4d922b1..b9a9fa9 100644
--- a/src/views/goalManagement/IncentiveRecording/index.vue
+++ b/src/views/goalManagement/IncentiveRecording/index.vue
@@ -38,7 +38,7 @@
</div>
<el-table ref="multipleTableRef" :data="tableData" style="width: 100%" @selection-change="handleSelectionChange">
<el-table-column type="selection" align="center" width="55" />
- <el-table-column property="createTime" align="center" label="奖惩日期" sortable />
+ <el-table-column property="createTime" align="center" label="奖惩日期" :formatter="timeDate" sortable />
<el-table-column label="奖惩类型" align="center" sortable>
<template #default="scope">
<span v-if="scope.row.standardType == 1">奖励</span>
@@ -74,6 +74,7 @@
</template>
<script lang="ts">
import DailogAdd from './component/DailogAdd.vue';
+import {timeDate} from '/@/assets/index.ts'
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';
@@ -230,6 +231,7 @@
ruleForm.searchParams.personId = val.uid;
};
return {
+ timeDate,
ruleForm,
userId,
resetForm,
diff --git a/src/views/goalManagement/TargetBook/index.vue b/src/views/goalManagement/TargetBook/index.vue
index 77e4cf1..870165a 100644
--- a/src/views/goalManagement/TargetBook/index.vue
+++ b/src/views/goalManagement/TargetBook/index.vue
@@ -38,7 +38,7 @@
<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="signDate" align="center" label="责任书签订日期" :formatter="timeDate" 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">
@@ -67,6 +67,7 @@
</template>
<script lang="ts">
import DailogAdd from './component/DailogAdd.vue';
+import {timeDate} from '/@/assets/index.ts'
import DailogSearch from './component/DailogSearch.vue';
import { ref, toRefs, reactive, onMounted, defineComponent } from 'vue';
import { ElMessageBox, ElMessage, ElButton, ElInput, TabsPaneContext, FormInstance } from 'element-plus';
@@ -242,6 +243,7 @@
onDeleteAll,
openUser,
openSearch,
+ timeDate,
Plus,
Delete,
Upload,
diff --git a/src/views/goalManagement/performanceAppraisal/component/DailogAq.vue b/src/views/goalManagement/performanceAppraisal/component/DailogAq.vue
index fdc54be..d7f272c 100644
--- a/src/views/goalManagement/performanceAppraisal/component/DailogAq.vue
+++ b/src/views/goalManagement/performanceAppraisal/component/DailogAq.vue
@@ -1,40 +1,48 @@
<template>
- <el-dialog v-model="dialogVisible" :fullscreen="full" :title="titles" width="50%" draggable>
+ <el-dialog v-model="dialogVisible" :fullscreen="full" @close="handleClose(ruleFormRef)" :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" label-width="120px" ref="ruleFormRef" :rules="rules">
<el-row>
<el-col :span="11">
- <el-form-item label="考核标题" size="default">
- <el-input v-model="form.title"></el-input>
+ <el-form-item label="考核标题" size="default" prop="title">
+ <el-input v-model="form.title" placeholder="请填写考核标题"></el-input>
</el-form-item>
</el-col>
<el-col :span="11" :offset="2">
- <el-form-item label="考核日期" size="default">
+ <el-form-item label="考核日期" size="default" prop="examineDate">
<el-date-picker v-model="form.examineDate" 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" disabled />
+ <el-form-item label="合格分数" size="default" prop="acceptanceNumber">
+ <el-input v-model="form.acceptanceNumber" disabled />
</el-form-item>
</el-col>
<el-col :span="11" :offset="2">
- <el-form-item label="总分" size="default">
- <el-input v-model="form.examineTotalNumber" />
+ <el-form-item label="总分" size="default" prop="examineTotalNumber">
+ <el-input v-model="form.examineTotalNumber" disabled />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="11">
- <el-form-item label="考核部门" size="default">
- <el-tree-select v-model="form.examineDepartmentId" :data="data" class="w100" :props="propse" placeholder="请选择" />
+ <el-form-item label="考核部门" size="default" prop="examineDepartmentId">
+ <el-tree-select
+ v-model="form.examineDepartmentId"
+ :data="data"
+ class="w100"
+ @node-click="nameData1"
+ :props="propse"
+ check-strictly
+ placeholder="请选择"
+ />
</el-form-item>
</el-col>
<el-col :span="11" :offset="2">
- <el-form-item label="考核人" size="default">
- <el-input v-model="form.examinePersonId">
+ <el-form-item label="考核人" size="default" prop="examinePersonName">
+ <el-input v-model="form.examinePersonName">
<template #append> <el-button :icon="Search" @click="daiInpt(1)" /></template>
</el-input>
</el-form-item>
@@ -42,13 +50,21 @@
</el-row>
<el-row>
<el-col :span="11">
- <el-form-item label="被考核部门" size="default">
- <el-tree-select v-model="form.beExaminedDepartmentId" :data="data" class="w100" :props="propse" placeholder="请选择" />
+ <el-form-item label="被考核部门" size="default" prop="beExaminedDepartmentId">
+ <el-tree-select
+ v-model="form.beExaminedDepartmentId"
+ :data="data"
+ @node-click="nameData2"
+ class="w100"
+ :props="propse"
+ check-strictly
+ placeholder="请选择"
+ />
</el-form-item>
</el-col>
<el-col :span="11" :offset="2">
- <el-form-item label="被考核人" size="default">
- <el-input v-model="form.beExaminedPersonId">
+ <el-form-item label="被考核人" size="default" prop="beExaminedPersonName">
+ <el-input v-model="form.beExaminedPersonName">
<template #append> <el-button :icon="Search" @click="daiInpt(2)" /></template>
</el-input>
</el-form-item>
@@ -78,14 +94,14 @@
</el-row>
<el-row>
<el-col :span="11">
- <el-form-item label="考核模板" size="default">
- <el-input disabled v-model="form.examineTemplateId">
+ <el-form-item label="考核模板" size="default" prop="examineTemplateName">
+ <el-input disabled v-model="form.examineTemplateName">
<template #append> <el-button :icon="Search" @click="daiAdd" /></template>
</el-input>
</el-form-item>
</el-col>
<el-col :span="11" :offset="2">
- <el-form-item label="备注信息">
+ <el-form-item label="备注信息" prop="memo">
<el-input v-model="form.memo" type="textarea"> </el-input>
</el-form-item>
</el-col>
@@ -110,8 +126,8 @@
</el-table>
<template #footer>
<span class="dialog-footer">
- <el-button @click="resetForm" size="default">关闭</el-button>
- <el-button type="primary" @click="submitForm" 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>
@@ -126,17 +142,24 @@
import { ElMessage, ElMessageBox } from 'element-plus';
import { goalManagementApi } from '/@/api/goalManagement';
import type { UploadProps, UploadUserFile } from 'element-plus';
+import type { FormInstance, FormRules } from 'element-plus';
export default defineComponent({
components: { DailogSearchUser, DailogSearch },
setup(props, { emit }) {
const dialogVisible = ref<boolean>(false);
+ const ruleFormRef = ref<FormInstance>();
const form = ref({
beExaminedDepartmentId: '', ////被考核部门ID/外键
+ beExaminedDepartmentName: '',
beExaminedPersonId: '', ////被考核人ID/外键(可能有多个,用逗号隔开)
+ beExaminedPersonName: '',
examineDate: '', ////考核日期
examineDepartmentId: '', ////考核部门ID/外键
+ examineDepartmentName: '',
examinePersonId: '', ////考核人ID/外键
+ examinePersonName: '',
examineTemplateId: 1, ////绩效考核模板ID/外键
+ examineTemplateName: '',
examineTotalNumber: '', ////总分
extraFile: '9', //责任书附件
itemDetail: '', ////考核项目
@@ -148,7 +171,7 @@
const disabled = ref(false);
// 打开弹窗
const openDailog = (title: string, value: any, id: number) => {
- department()
+ department();
dialogVisible.value = true;
titles.value = `${title}安全考核管理`;
disabled.value = title == '查看' ? true : false;
@@ -163,55 +186,54 @@
}
});
};
+ // 验证
+ const rules = reactive<FormRules>({
+ title: [{ required: true, message: '考核标题不能为空', trigger: 'blur' }],
+ examineDate: [{ required: true, message: '考核日期不能为空', trigger: 'blur' }],
+ examineDepartmentId: [{ required: true, message: '考核部门不能为空', trigger: 'blur' }],
+ examinePersonName: [],
+ examinePersonId: [],
+ beExaminedDepartmentId: [{ required: true, message: '被考核部门不能为空', trigger: 'blur' }],
+ beExaminedPersonName: [],
+ beExaminedPersonId: [],
+ examineTemplateId: [],
+ examineTemplateName: [{ required: true, message: '考核模板不能为空', trigger: 'blur' }],
+ memo: [],
+ });
// 提交
- const submitForm = () => {
- dialogVisible.value = false;
- goalManagementApi()
- .getexamineMngAddOrUpdate(form.value)
- .then((res) => {
- if (res.data.code == 200) {
- ElMessage({
- message: res.data.msg,
- type: 'success',
+ const submitForm = async (formEl: FormInstance | undefined) => {
+ if (!formEl) return;
+ await formEl.validate((valid, fields) => {
+ if (valid) {
+ dialogVisible.value = false;
+ goalManagementApi()
+ .getexamineMngAddOrUpdate(form.value)
+ .then((res) => {
+ if (res.data.code == 200) {
+ ElMessage({
+ message: res.data.msg,
+ type: 'success',
+ });
+ emit('navAddorUpdata');
+ } else {
+ ElMessage.error(res.data.msg);
+ }
});
- emit('navAddorUpdata');
- } else {
- ElMessage.error(res.data.msg);
- }
- });
- form.value = {
- beExaminedDepartmentId: '', ////被考核部门ID/外键
- beExaminedPersonId: '', ////被考核人ID/外键(可能有多个,用逗号隔开)
- examineDate: '', ////考核日期
- examineDepartmentId: '', ////考核部门ID/外键
- examinePersonId: '', ////考核人ID/外键
- examineTemplateId: '', ////绩效考核模板ID/外键
- examineTotalNumber: '', ////总分
- extraFile: '9', //责任书附件
- itemDetail: '', ////考核项目
- memo: '', ////备注信息
- numberDetailJson: '[{"id":"123","number":"123"}]', ////各个考核项目的具体得分,json格式。形式为:[{“id”:"123","number":"123"}]
- title: '', ////考核标题
- };
+ } else {
+ console.log('error submit!', fields);
+ }
+ });
};
// 取消
- const resetForm = () => {
+ const resetForm = (formEl: FormInstance | undefined) => {
+ if (!formEl) return;
dialogVisible.value = false;
- form.value = {
- beExaminedDepartmentId: '', ////被考核部门ID/外键
- beExaminedPersonId: '', ////被考核人ID/外键(可能有多个,用逗号隔开)
- examineDate: '', ////考核日期
- examineDepartmentId: '', ////考核部门ID/外键
- examinePersonId: '', ////考核人ID/外键
- examineTemplateId: '', ////绩效考核模板ID/外键
- examineTotalNumber: '', ////总分
- extraFile: '9', //责任书附件
- itemDetail: '', ////考核项目
- memo: '', ////备注信息
- numberDetailJson: '[{"id":"123","number":"123"}]', ////各个考核项目的具体得分,json格式。形式为:[{“id”:"123","number":"123"}]
- title: '', ////考核标题
- };
+ formEl.resetFields();
};
+ const handleClose=(formEl: FormInstance | undefined)=>{
+ if (!formEl) return;
+ formEl.resetFields();
+ }
const activeName = ref('1');
// 新增弹窗
const Show = ref();
@@ -220,7 +242,7 @@
};
// 安全目标指标弹窗
const Shows = ref();
- const daiInpt = (type:any) => {
+ const daiInpt = (type: any) => {
Shows.value.openDailog(type);
};
// 点击上传
@@ -253,13 +275,15 @@
() => false
);
};
- const userId=(val:any,type:any)=>{
- if(type==1){
- form.value.examinePersonId=val.uid
- }else if(type==2){
- form.value.beExaminedPersonId=val.uid
- }
- }
+ const userId = (val: any, type: any) => {
+ if (type == 1) {
+ form.value.examinePersonId = val.uid;
+ form.value.examinePersonName = val.realName;
+ } else if (type == 2) {
+ form.value.beExaminedPersonId = val.uid;
+ form.value.beExaminedPersonName = val.realName;
+ }
+ };
//全屏
const full = ref(false);
const toggleFullscreen = () => {
@@ -269,7 +293,7 @@
full.value = false;
}
};
- //部门
+ //部门
const department = () => {
goalManagementApi()
.getTreedepartment()
@@ -284,10 +308,22 @@
const propse = {
label: 'depName',
children: 'children',
- value:"depId"
+ value: 'depId',
};
- const data=ref()
+ const data = ref();
+ const nameData1 = (val: any) => {
+ form.value.examineDepartmentName = val.depName;
+ };
+ const nameData2 = (val: any) => {
+ form.value.beExaminedDepartmentName = val.depName;
+ console.log(form.value);
+ };
return {
+ rules,
+ handleClose,
+ nameData1,
+ nameData2,
+ ruleFormRef,
department,
propse,
data,
diff --git a/src/views/goalManagement/performanceAppraisal/component/DailogSearch.vue b/src/views/goalManagement/performanceAppraisal/component/DailogSearch.vue
index 55e13b5..bb63dd6 100644
--- a/src/views/goalManagement/performanceAppraisal/component/DailogSearch.vue
+++ b/src/views/goalManagement/performanceAppraisal/component/DailogSearch.vue
@@ -7,7 +7,7 @@
<el-row>
<el-col :span="12">
<el-form-item size="default">
- <el-input v-model="ruleForm.pass" placeholder="标准标题" />
+ <el-input v-model="ruleForm.searchParams.title" placeholder="标准标题" />
</el-form-item>
</el-col>
<!-- <el-col :span="6" :offset="1">
@@ -17,7 +17,7 @@
</el-col> -->
<el-col :span="6" :offset="1">
<el-form-item>
- <el-button size="default" type="primary" @click="submitForm(ruleFormRef)">查询</el-button>
+ <el-button size="default" type="primary" @click="listApi()">查询</el-button>
<el-button size="default" @click="resetForm(ruleFormRef)">重置</el-button>
</el-form-item>
</el-col>
@@ -35,12 +35,9 @@
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"
/>
@@ -70,46 +67,51 @@
<script lang="ts">
import { defineComponent, reactive, ref } 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() {
const dialogVisible = ref<boolean>(false);
const openDailog = () => {
dialogVisible.value = true;
+ listApi()
};
// 搜索条件
const ruleForm = reactive({
- pass: '',
- checkPass: '',
+ pageSize: 10,
+ pageIndex: 1,
+ searchParams: {
+ title: '', //标准标题
+ },
});
- // 表格
- 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 listApi = () => {
+ goalManagementApi()
+ .getexamineTemplateList(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 = 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 dynamicTags = ref(['Tag 1', 'Tag 2', 'Tag 3']);
@@ -127,10 +129,13 @@
};
return {
dialogVisible,
+ listApi,
openDailog,
ruleForm,
tableData,
+ currentPage4,
pageSize4,
+ total,
handleSizeChange,
handleCurrentChange,
dynamicTags,
diff --git a/src/views/goalManagement/performanceAppraisal/index.vue b/src/views/goalManagement/performanceAppraisal/index.vue
index 6d756d8..a1c9637 100644
--- a/src/views/goalManagement/performanceAppraisal/index.vue
+++ b/src/views/goalManagement/performanceAppraisal/index.vue
@@ -38,10 +38,10 @@
</div>
</template>
</el-table-column>
- <el-table-column property="examineDate" align="center" label="考核日期" sortable />
- <el-table-column property="beExaminedDepartmentId" align="center" label="考核部门" sortable />
+ <el-table-column property="examineDate" align="center" :formatter="timeDate" label="考核日期" sortable />
+ <el-table-column property="examineDepartmentName" align="center" label="考核部门" sortable />
<el-table-column property="examinePersonId" label="考核人" align="center" sortable show-overflow-tooltip />
- <el-table-column property="beExaminedDepartmentId" label="被考核部门" align="center" sortable show-overflow-tooltip />
+ <el-table-column property="beExaminedDepartmentName" label="被考核部门" align="center" sortable show-overflow-tooltip />
<el-table-column property="examineTotalNumber" label="总分" align="center" sortable show-overflow-tooltip />
<el-table-column property="numberDetailJson.number" label="考核结果" align="center" sortable show-overflow-tooltip />
<el-table-column property="extraFile" label="附件" align="center" sortable show-overflow-tooltip />
@@ -107,7 +107,7 @@
<el-table-column property="applyRange" align="center" label="适用范围" sortable />
<el-table-column property="setPersonId" label="设定人" align="center" sortable show-overflow-tooltip />
<el-table-column property="setPersonDepartmentId" label="设定人部门" align="center" sortable show-overflow-tooltip />
- <el-table-column property="createTime" label="设定日期" align="center" sortable show-overflow-tooltip />
+ <el-table-column property="setTimem" label="设定日期" align="center" :formatter="timeDate" sortable show-overflow-tooltip />
<el-table-column property="templateCode" label="模板分类编码" align="center" sortable show-overflow-tooltip />
<el-table-column property="acceptanceNumber" label="合格分数" align="center" sortable show-overflow-tooltip />
<el-table-column label="操作" align="center" width="250px">
@@ -137,6 +137,7 @@
</div>
</template>
<script lang="ts">
+import {timeDate} from '/@/assets/index.ts'
import DailogAq from './component/DailogAq.vue';
import DailogKh from './component/DailogKh.vue';
import { ref, toRefs, reactive, onMounted, defineComponent } from 'vue';
@@ -442,6 +443,7 @@
};
const data = ref();
return {
+ timeDate,
department,
propse,
data,
diff --git a/src/views/goalManagement/targetDecompositionYear/component/Dailog.vue b/src/views/goalManagement/targetDecompositionYear/component/Dailog.vue
index 04d74fe..8960533 100644
--- a/src/views/goalManagement/targetDecompositionYear/component/Dailog.vue
+++ b/src/views/goalManagement/targetDecompositionYear/component/Dailog.vue
@@ -33,15 +33,15 @@
</el-form>
<el-tabs v-model="activeName" class="demo-tabs">
<el-tab-pane label="目标指标分解" name="1">
- <el-button type="primary" size="default" @click="daiAdd" :disabled="disabled">新增</el-button>
+ <el-button type="primary" size="default" @click="daiAdd('新增')" :disabled="disabled">新增</el-button>
</el-tab-pane>
</el-tabs>
<el-table :data="formUp.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" :formatter="timeDate(makeDate)" label="制定日期" />
- <el-table-column align="center" property="commitPersonId" label="上报人" />
+ <el-table-column align="center" property="makeDate" label="制定日期" :formatter="timeDate"/>
+ <el-table-column align="center" property="commitPersonName" label="上报人" />
<el-table-column align="center" property="操作">
<template #default="scope">
<el-button link type="primary" @click="daiAdd('查看', scope.row)">查看</el-button>
@@ -62,6 +62,7 @@
</template>
<script lang="ts">
import { defineComponent, ref, reactive } from 'vue';
+import {timeDate} from '/@/assets/index.ts'
import { Search, FullScreen } from '@element-plus/icons-vue';
import DailogAdd from './DailogAdd.vue';
import { ElMessageBox, ElMessage, ElButton, ElInput, TabsPaneContext } from 'element-plus';
@@ -69,7 +70,7 @@
import { goalManagementApi } from '/@/api/goalManagement';
import { emit } from 'process';
export default defineComponent({
- components: { DailogAdd, DailogSearch },
+ components: { DailogAdd, DailogSearch},
setup(props,{emit}) {
const dialogVisible = ref<boolean>(false);
const form = ref({
@@ -108,9 +109,10 @@
// 表格
const tableData = ref([]);
// 新增弹窗
+ const index=ref<any>()
const Show = ref();
const daiAdd = (title: string, data: any) => {
- console.log(data);
+ index.value = formUp.targetDivideDetailList.indexOf(data);
Show.value.openDailog(title, data);
};
const formUp = reactive({
@@ -119,7 +121,12 @@
targetDivideDetailList: [], //目标指标分解列表
});
const add = (val: any) => {
- formUp.targetDivideDetailList.push(val);
+ if(index.value==-1){
+ formUp.targetDivideDetailList.push(val);
+ }else{
+ formUp.targetDivideDetailList[index.value] = val;
+ }
+
// let obj=JSON.parse(JSON.stringify(form.value))
};
// 新增
@@ -189,14 +196,14 @@
}
};
// 时间格式处理
- const timeDate = (data: any) => {
- console.log('xxxxxxxxxxx',data)
- let result = new Date(data).getTime();
- return result;
- };
+ // const timeDate = (data: any) => {
+ // let result = new Date(data).getTime();
+ // return result;
+ // };
return {
- arr,
+ index,
timeDate,
+ arr,
form,
dialogVisible,
openDailog,
diff --git a/src/views/goalManagement/targetDecompositionYear/component/DailogAdd.vue b/src/views/goalManagement/targetDecompositionYear/component/DailogAdd.vue
index 6b04990..b74644b 100644
--- a/src/views/goalManagement/targetDecompositionYear/component/DailogAdd.vue
+++ b/src/views/goalManagement/targetDecompositionYear/component/DailogAdd.vue
@@ -1,5 +1,5 @@
<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" :disabled="disabled" label-width="120px" ref="ruleFormRef" :rules="rules">
<el-row>
@@ -10,7 +10,7 @@
</el-col>
<el-col :span="11" :offset="2">
<el-form-item label="考核指标" prop="value" size="default">
- <el-input v-model="form.value" />
+ <el-input v-model.number="form.value" />
</el-form-item>
</el-col>
</el-row>
@@ -28,8 +28,8 @@
</el-row>
<el-row>
<el-col :span="11">
- <el-form-item label="上报人" prop="commitPersonId" size="default">
- <el-input v-model="nameC">
+ <el-form-item label="上报人" prop="commitPersonName" size="default">
+ <el-input v-model="form.commitPersonName">
<template #append> <el-button :icon="Search" @click="openUser" /> </template
></el-input>
</el-form-item>
@@ -39,7 +39,7 @@
</el-form>
<template #footer>
<span class="dialog-footer">
- <!-- <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>
@@ -57,31 +57,15 @@
export default defineComponent({
components: { DailogSearchUser },
setup(props, { emit }) {
+ const ruleFormRef = ref<FormInstance>()
const form = ref({
dutyDepartmentId: '', ////责任部门/外键
makerDepartmentId: '', ////制定人部门/外键
commitPersonId: '', ////上报人/外键
+ commitPersonName: '',
value: '', ////考核指标值
makeDate: '', ////制定日期
});
- const submitForm = async (formEl: FormInstance | undefined) => {
- if (!formEl) return;
- await formEl.validate((valid, fields) => {
- if (valid) {
- dialogVisible.value = false;
- emit('onAdd', form.value);
- // formEl.resetFields();
- } else {
- console.log('error submit!', fields);
- }
- });
- };
-
- const resetForm = (formEl: FormInstance | undefined) => {
- dialogVisible.value = false;
- if (!formEl) return
- formEl.resetFields();
- };
//部门
const department = () => {
goalManagementApi()
@@ -104,8 +88,10 @@
});
const disabled = ref(false);
// 开启弹窗
+ const titles = ref();
const dialogVisible = ref(false);
const openDailog = (title: string, data: any) => {
+ titles.value = `${title}目标指标分解`;
if (title == '查看') {
disabled.value = true;
form.value = data;
@@ -122,7 +108,6 @@
const openUser = () => {
Show.value.openDailog();
};
- const ruleFormRef = ref<FormInstance>();
const rules = reactive<FormRules>({
dutyDepartmentId: [
{
@@ -142,24 +127,52 @@
{
required: true,
message: '上报人不能为空',
- trigger: 'change',
+ trigger: 'blur',
},
],
value: [
{
required: true,
message: '考核指标值不能为空',
- trigger: 'change',
+ trigger: 'blur',
+ },
+ {
+ type: 'number',
+ message: '考核指标值只能为数字类型',
+ trigger: 'blur',
},
],
makeDate: [
{
required: true,
message: '制定日期不能为空',
- trigger: 'change',
+ trigger: 'blur',
},
],
+ commitPersonName: [],
});
+ const submitForm = async (formEl: FormInstance | undefined) => {
+ if (!formEl) return;
+ await formEl.validate((valid, fields) => {
+ if (valid) {
+ emit('onAdd', form.value);
+ dialogVisible.value = false;
+ // handleClose(formEl)
+ } else {
+ console.log('error submit!', fields);
+ }
+ });
+ };
+
+ const resetForm = (formEl: FormInstance | undefined) => {
+ // console.log(formEl);
+ if (!formEl) return
+ formEl.resetFields();
+ // dialogVisible.value = false;
+ };
+ // const handleClose = (formEl: any) => {
+ // formEl.resetFields();
+ // };
//全屏
const full = ref(false);
const toggleFullscreen = () => {
@@ -170,14 +183,14 @@
}
};
const data = ref();
- const nameC = ref();
const onUser = (e: any) => {
form.value.commitPersonId = e.uid;
- nameC.value = e.realName;
+ form.value.commitPersonName = e.realName;
};
return {
disabled,
- nameC,
+ titles,
+ // handleClose,
form,
propse,
department,
diff --git a/src/views/goalManagement/targetSettings/component/dailogAdd.vue b/src/views/goalManagement/targetSettings/component/dailogAdd.vue
index e6d69db..f0fdef8 100644
--- a/src/views/goalManagement/targetSettings/component/dailogAdd.vue
+++ b/src/views/goalManagement/targetSettings/component/dailogAdd.vue
@@ -1,5 +1,5 @@
<template>
- <el-dialog v-model="Shows" :before-close="resetForm" :fullscreen="full" :title="titles" width="50%" draggable>
+ <el-dialog v-model="Shows" @close="handleClose(ruleFormRef)" :fullscreen="full" :title="titles" width="50%" draggable>
<el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button>
<el-form :model="form" :disabled="disabled" ref="ruleFormRef" :rules="rules" label-width="120px">
<el-row>
@@ -17,7 +17,7 @@
<el-row>
<el-col :span="11">
<el-form-item label="年度" prop="year" size="default">
- <el-input v-model.number="form.year" placeholder="请填写年度" />
+ <el-input v-model.number="form.year" maxlength="8" placeholder="请填写年度" />
</el-form-item>
</el-col>
<el-col :span="11" :offset="2">
@@ -28,30 +28,28 @@
</el-row>
<el-row>
<el-col :span="11">
- <el-form-item label="指标级别" size="default">
+ <el-form-item label="指标级别" size="default" prop="level">
<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-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.completeDate" format="YYYY-MM-DD HH:mm:ss" type="datetime"
- placeholder="请选择" style="width: 100%" />
+ <el-form-item label="完成期限" size="default" prop="completeDate">
+ <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-form-item label="备注信息" prop="memo">
<el-input v-model="form.memo" size="default" type="textarea" />
</el-form-item>
</el-form>
<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>
@@ -135,6 +133,10 @@
trigger: 'change',
},
],
+ level:[],
+ completeDate:[],
+ memo:[]
+
});
// 提交
const submitForm = async (formEl: FormInstance | undefined) => {
@@ -156,41 +158,24 @@
formEl.resetFields();
}
});
+ 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: '', ////指标值
- };
+ };
+ const handleClose = (formEl: FormInstance | undefined) => {
+ formEl.resetFields();
};
return {
openDialog,
+ handleClose,
titles,
Shows,
form,
diff --git a/src/views/goalManagement/targetSettings/index.vue b/src/views/goalManagement/targetSettings/index.vue
index 332afd8..63a96fc 100644
--- a/src/views/goalManagement/targetSettings/index.vue
+++ b/src/views/goalManagement/targetSettings/index.vue
@@ -44,7 +44,7 @@
<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 property="completeDate" label="完成期限" align="center" :formatter="timeDate" 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>
@@ -78,6 +78,7 @@
</template>
<script lang="ts">
import dailogAdd from './component/dailogAdd.vue';
+import {timeDate} from '/@/assets/index.ts'
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';
@@ -238,6 +239,7 @@
// upShow.value.openDialog();
// };
return {
+ timeDate,
tableData,
currentPage4,
pageSize4,
--
Gitblit v1.9.2