更新工作汇报相关代码

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-input v-model="formData.reportTopic" placeholder="请输入汇报主题"/>
</el-form-item> </el-form-item>
<el-form-item label="汇报时间" prop="reportTime"> <el-form-item label="汇报时间" prop="reportTime">
<el-date-picker clearable v-model="formData.reportTime" type="date" value-format="timestamp" <el-date-picker
placeholder="选择汇报时间"/> v-model="formData.reportTime"
type="datetime"
placeholder="选择日期时间">
</el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="汇报内容"> <el-form-item label="汇报给" prop="reportTos">
<Editor v-model="formData.reportContent" :min-height="192"/> <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-item>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
@ -25,10 +44,14 @@
<script> <script>
import * as ReportApi from '@/views/inspection/workReport/api/index'; import * as ReportApi from '@/views/inspection/workReport/api/index';
import Editor from '@/components/Editor'; 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 { export default {
name: "ReportForm", name: "ReportForm",
components: { components: {
inspFileUpload,
Editor, Editor,
}, },
data() { data() {
@ -39,15 +62,24 @@ export default {
dialogVisible: false, dialogVisible: false,
// 12 // 12
formLoading: false, formLoading: false,
//
reportTo: [],
// //
formData: { formData: {
id: undefined, id: undefined,
reportTopic: undefined, reportTopic: undefined,
reportTime: undefined, reportTime: undefined,
reportContent: 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: { methods: {
@ -55,18 +87,25 @@ export default {
async open(id) { async open(id) {
this.dialogVisible = true; this.dialogVisible = true;
this.reset(); this.reset();
this.getReportTo()
// //
if (id) { if (id) {
this.formLoading = true; this.formLoading = true;
try { try {
const res = await ReportApi.getReport(id); const res = await ReportApi.getReport(id);
this.formData = res.data; 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 { } finally {
this.formLoading = false; this.formLoading = false;
} }
}else {
this.setDefaultData();
this.dialogTitle = "新增工作汇报";
} }
this.title = "新增工作汇报";
}, },
/** 提交按钮 */ /** 提交按钮 */
async submitForm() { async submitForm() {
@ -84,6 +123,7 @@ export default {
return; return;
} }
// //
data.reportTime = this.formData.reportTime.getTime();
await ReportApi.createReport(data); await ReportApi.createReport(data);
this.$modal.msgSuccess("新增成功"); this.$modal.msgSuccess("新增成功");
this.dialogVisible = false; this.dialogVisible = false;
@ -101,6 +141,32 @@ export default {
reportContent: undefined, reportContent: undefined,
}; };
this.resetForm("formRef"); 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' import request from '@/utils/request'
// 创建工作汇报 // 创建工作汇报
export function createReport(data) { export function getReportTo(query) {
return request({ return request({
url: '/work/report/create', url: '/work/report/queryReportTo',
method: 'post', method: 'get',
data: data params: query
}) })
} }
// 更新工作汇报 // 创建工作汇报
export function updateReport(data) { export function createReport(data) {
return request({ return request({
url: '/work/report/update', url: '/work/report/create',
method: 'put', method: 'post',
data: data data: data
}) })
} }
// 删除工作汇报 // 更新工作汇报
export function deleteReport(id) { export function updateReport(data) {
return request({ return request({
url: '/work/report/delete?id=' + id, url: '/work/report/update',
method: 'delete' method: 'put',
}) data: data
} })
}
// 获得工作汇报
export function getReport(id) { // 删除工作汇报
return request({ export function deleteReport(id) {
url: '/work/report/get?id=' + id, return request({
method: 'get' url: '/work/report/delete?id=' + id,
}) method: 'delete'
} })
}
// 获得工作汇报分页
export function getReportPage(params) { // 获得工作汇报
return request({ export function getReport(id) {
url: '/work/report/page', return request({
method: 'get', url: '/work/report/get?id=' + id,
params method: 'get'
}) })
} }
// 导出工作汇报 Excel
export function exportReportExcel(params) { // 获得工作汇报分页
return request({ export function getReportPage(params) {
url: '/work/report/export-excel', return request({
method: 'get', url: '/work/report/page',
params, method: 'get',
responseType: 'blob' 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="结束日期" range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期"
:default-time="['00:00:00', '23:59:59']"/> :default-time="['00:00:00', '23:59:59']"/>
</el-form-item> </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-form-item label="汇报人" prop="userId">
<el-input v-model="queryParams.userName" placeholder="请输入汇报人" clearable @keyup.enter.native="handleQuery"/> <el-input v-model="queryParams.userName" placeholder="请输入汇报人" clearable @keyup.enter.native="handleQuery"/>
</el-form-item> </el-form-item>
@ -44,7 +38,6 @@
</el-row> </el-row>
<el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true"> <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="reportTopic"/>
<el-table-column label="汇报时间" align="center" prop="reportTime" width="180"> <el-table-column label="汇报时间" align="center" prop="reportTime" width="180">
<template v-slot="scope"> <template v-slot="scope">
@ -52,11 +45,6 @@
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="汇报内容" align="center" prop="reportContent"/> <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" prop="userName"/>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width"> <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template v-slot="scope"> <template v-slot="scope">
@ -113,6 +101,7 @@ export default {
createTime: [], createTime: [],
userId: null, userId: null,
userName: null, userName: null,
servicePackageId: "jiance",
}, },
}; };
}, },
@ -125,7 +114,7 @@ export default {
try { try {
this.loading = true; this.loading = true;
const res = await ReportApi.getReportPage(this.queryParams); const res = await ReportApi.getReportPage(this.queryParams);
this.list = res.data.list; this.list = res.data.records;
this.total = res.data.total; this.total = res.data.total;
} finally { } finally {
this.loading = false; this.loading = false;