更新工作汇报相关代码

This commit is contained in:
许允枞 2025-02-10 18:00:35 +08:00
parent 98ab71da3e
commit 1fa8ac0a14
3 changed files with 137 additions and 73 deletions

View File

@ -7,11 +7,30 @@
<el-input v-model="formData.reportTopic" placeholder="请输入汇报主题"/>
</el-form-item>
<el-form-item label="汇报时间" prop="reportTime">
<el-date-picker clearable v-model="formData.reportTime" type="date" value-format="timestamp"
placeholder="选择汇报时间"/>
<el-date-picker
v-model="formData.reportTime"
type="datetime"
placeholder="选择日期时间">
</el-date-picker>
</el-form-item>
<el-form-item label="汇报内容">
<Editor v-model="formData.reportContent" :min-height="192"/>
<el-form-item label="汇报给" prop="reportTos">
<el-select v-model="formData.reportTos" multiple placeholder="请选择">
<el-option
v-for="item in reportTo"
:key="item.id"
:label="item.nickname"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="汇报内容" prop="reportContent">
<el-input type="textarea" v-model="formData.reportContent" :autosize="{ minRows: 6, maxRows: 10 }"/>
</el-form-item>
<el-form-item label="汇报附件" prop="reportFiles">
<insp-file-upload
:fileSize="30"
:fileType="['doc', 'xls', 'ppt', 'txt', 'pdf','png','jpg','jpeg','gif','docx','xlsx','pptx','wps']"
v-model="formData.filePath"/>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
@ -25,10 +44,14 @@
<script>
import * as ReportApi from '@/views/inspection/workReport/api/index';
import Editor from '@/components/Editor';
import {getReportTo} from "@/views/inspection/workReport/api/index";
import {formatDate} from "@/utils";
import inspFileUpload from "@/components/FileUpload/index.vue";
export default {
name: "ReportForm",
components: {
inspFileUpload,
Editor,
},
data() {
@ -39,15 +62,24 @@ export default {
dialogVisible: false,
// 12
formLoading: false,
//
reportTo: [],
//
formData: {
id: undefined,
reportTopic: undefined,
reportTime: undefined,
reportContent: undefined,
servicePackageId: undefined,
reportTos: [],
},
//
formRules: {},
formRules: {
reportTopic: [{required: true, message: '汇报主题不能为空', trigger: 'blur'}],
reportTime: [{required: true, message: '汇报时间不能为空', trigger: 'blur'}],
reportContent: [{required: true, message: '汇报内容不能为空', trigger: 'blur'}],
reportTos: [{required: true, message: '汇报给不能为空', trigger: 'blur'}],
},
};
},
methods: {
@ -55,18 +87,25 @@ export default {
async open(id) {
this.dialogVisible = true;
this.reset();
this.getReportTo()
//
if (id) {
this.formLoading = true;
try {
const res = await ReportApi.getReport(id);
this.formData = res.data;
this.title = "修改工作汇报";
this.dialogTitle = "修改工作汇报";
//
this.formData.filePath = this.formData.filePath.split(",");
console.log(this.formData)
console.log(this.formData.filePath)
} finally {
this.formLoading = false;
}
}else {
this.setDefaultData();
this.dialogTitle = "新增工作汇报";
}
this.title = "新增工作汇报";
},
/** 提交按钮 */
async submitForm() {
@ -84,6 +123,7 @@ export default {
return;
}
//
data.reportTime = this.formData.reportTime.getTime();
await ReportApi.createReport(data);
this.$modal.msgSuccess("新增成功");
this.dialogVisible = false;
@ -101,6 +141,32 @@ export default {
reportContent: undefined,
};
this.resetForm("formRef");
},
/** 设置默认数据 */
setDefaultData() {
this.formData.reportTime = new Date();
this.formData.servicePackageId = "jiance";
},
/** 获取汇报对象 */
getReportTo() {
const data = {
dictType: "ins_report_role"
}
getReportTo(data).then(response => {
this.reportTo = response.data;
});
},
/** 格式化时间yyyy-MM-dd HH:mm:ss */
formatDateTime(date) {
if (!date) return null;
const d = new Date(date);
const year = d.getFullYear();
const month = String(d.getMonth() + 1).padStart(2, '0');
const day = String(d.getDate()).padStart(2, '0');
const hours = String(d.getHours()).padStart(2, '0');
const minutes = String(d.getMinutes()).padStart(2, '0');
const seconds = String(d.getSeconds()).padStart(2, '0');
return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
}
}
};

View File

@ -1,53 +1,62 @@
import request from '@/utils/request'
// 创建工作汇报
export function createReport(data) {
return request({
url: '/work/report/create',
method: 'post',
data: data
})
}
// 更新工作汇报
export function updateReport(data) {
return request({
url: '/work/report/update',
method: 'put',
data: data
})
}
// 删除工作汇报
export function deleteReport(id) {
return request({
url: '/work/report/delete?id=' + id,
method: 'delete'
})
}
// 获得工作汇报
export function getReport(id) {
return request({
url: '/work/report/get?id=' + id,
method: 'get'
})
}
// 获得工作汇报分页
export function getReportPage(params) {
return request({
url: '/work/report/page',
method: 'get',
params
})
}
// 导出工作汇报 Excel
export function exportReportExcel(params) {
return request({
url: '/work/report/export-excel',
method: 'get',
params,
responseType: 'blob'
})
}
import request from '@/utils/request'
// 创建工作汇报
export function getReportTo(query) {
return request({
url: '/work/report/queryReportTo',
method: 'get',
params: query
})
}
// 创建工作汇报
export function createReport(data) {
return request({
url: '/work/report/create',
method: 'post',
data: data
})
}
// 更新工作汇报
export function updateReport(data) {
return request({
url: '/work/report/update',
method: 'put',
data: data
})
}
// 删除工作汇报
export function deleteReport(id) {
return request({
url: '/work/report/delete?id=' + id,
method: 'delete'
})
}
// 获得工作汇报
export function getReport(id) {
return request({
url: '/work/report/get?id=' + id,
method: 'get'
})
}
// 获得工作汇报分页
export function getReportPage(params) {
return request({
url: '/work/report/page',
method: 'get',
params
})
}
// 导出工作汇报 Excel
export function exportReportExcel(params) {
return request({
url: '/work/report/export-excel',
method: 'get',
params,
responseType: 'blob'
})
}

View File

@ -12,12 +12,6 @@
range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期"
:default-time="['00:00:00', '23:59:59']"/>
</el-form-item>
<el-form-item label="创建时间" prop="createTime">
<el-date-picker v-model="queryParams.createTime" style="width: 240px" value-format="yyyy-MM-dd HH:mm:ss"
type="daterange"
range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期"
:default-time="['00:00:00', '23:59:59']"/>
</el-form-item>
<el-form-item label="汇报人" prop="userId">
<el-input v-model="queryParams.userName" placeholder="请输入汇报人" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
@ -44,7 +38,6 @@
</el-row>
<el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true">
<el-table-column label="id" align="center" prop="id"/>
<el-table-column label="汇报主题" align="center" prop="reportTopic"/>
<el-table-column label="汇报时间" align="center" prop="reportTime" width="180">
<template v-slot="scope">
@ -52,11 +45,6 @@
</template>
</el-table-column>
<el-table-column label="汇报内容" align="center" prop="reportContent"/>
<el-table-column label="创建时间" align="center" prop="createTime" width="180">
<template v-slot="scope">
<span>{{ parseTime(scope.row.createTime) }}</span>
</template>
</el-table-column>
<el-table-column label="汇报人" align="center" prop="userName"/>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template v-slot="scope">
@ -113,6 +101,7 @@ export default {
createTime: [],
userId: null,
userName: null,
servicePackageId: "jiance",
},
};
},
@ -125,7 +114,7 @@ export default {
try {
this.loading = true;
const res = await ReportApi.getReportPage(this.queryParams);
this.list = res.data.list;
this.list = res.data.records;
this.total = res.data.total;
} finally {
this.loading = false;