|
|
|
|
@ -7,12 +7,12 @@
|
|
|
|
|
<el-row :gutter="10" class="form-row">
|
|
|
|
|
<el-col :span="12">
|
|
|
|
|
<el-form-item label="项目名称" prop="projectName">
|
|
|
|
|
<el-input v-model="queryParams.projectName" placeholder="请点击右侧图标选择项目">
|
|
|
|
|
<template #suffix>
|
|
|
|
|
<el-input v-model="queryParams.projectName" placeholder="请输入项目名称">
|
|
|
|
|
<!-- <template #suffix>
|
|
|
|
|
<el-icon style="cursor: pointer; margin-right: 4px; font-size: 14px" @click="openProjectSelect">
|
|
|
|
|
<Search />
|
|
|
|
|
</el-icon>
|
|
|
|
|
</template>
|
|
|
|
|
</template> -->
|
|
|
|
|
</el-input>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-col>
|
|
|
|
|
@ -45,6 +45,11 @@
|
|
|
|
|
<el-input v-model="queryParams.chargeName" placeholder="请输入部门负责人" clearable />
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-col>
|
|
|
|
|
<el-col :span="12" v-show="false">
|
|
|
|
|
<el-form-item label="周报ID" prop="reportId">
|
|
|
|
|
<el-input v-model="queryParams.reportId" placeholder="请点击右侧图标选择项目" />
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-col>
|
|
|
|
|
<el-col :span="12" v-show="false">
|
|
|
|
|
<el-form-item label="项目ID" prop="projectId">
|
|
|
|
|
<el-input v-model="queryParams.projectId" placeholder="请点击右侧图标选择项目" />
|
|
|
|
|
@ -109,13 +114,13 @@
|
|
|
|
|
</div>
|
|
|
|
|
</transition>
|
|
|
|
|
|
|
|
|
|
<ProjectSelect ref="projectSelectRef" :multiple="false" @confirm-call-back="projectInfoSelectCallBack"></ProjectSelect>
|
|
|
|
|
<!-- <ProjectSelect ref="projectSelectRef" :multiple="false" @confirm-call-back="projectInfoSelectCallBack"></ProjectSelect> -->
|
|
|
|
|
|
|
|
|
|
<el-card shadow="never">
|
|
|
|
|
<template #header>
|
|
|
|
|
<el-row :gutter="10" class="mb8">
|
|
|
|
|
<el-col :span="1.5">
|
|
|
|
|
<el-button type="primary" plain icon="Plus" @click="handleAdd" v-hasPermi="['oa/erp:projectReport:add']">新增</el-button>
|
|
|
|
|
<el-button type="primary" plain icon="Plus" @click="handleAdd(null)" v-hasPermi="['oa/erp:projectReport:add']">新增</el-button>
|
|
|
|
|
</el-col>
|
|
|
|
|
<el-col :span="1.5">
|
|
|
|
|
<el-button type="success" plain icon="Edit" :disabled="single" @click="handleUpdate()" v-hasPermi="['oa/erp:projectReport:edit']"
|
|
|
|
|
@ -151,13 +156,25 @@
|
|
|
|
|
<el-table-column label="备注" align="center" prop="remark" v-if="columns[12].visible" />
|
|
|
|
|
<el-table-column label="激活标识" align="center" prop="activeFlag" v-if="columns[13].visible" />
|
|
|
|
|
<!-- <el-table-column label="创建时间" align="center" prop="createTime" v-if="columns[20].visible" /> -->
|
|
|
|
|
<el-table-column label="操作" align="center" fixed="right" class-name="small-padding fixed-width">
|
|
|
|
|
<el-table-column label="操作" align="center" width="150" fixed="right" class-name="small-padding fixed-width">
|
|
|
|
|
<template #default="scope">
|
|
|
|
|
<el-tooltip content="新增" placement="top">
|
|
|
|
|
<el-button link type="primary" icon="Plus" @click="handleAdd(scope.row)" v-hasPermi="['oa/erp:projectReport:add']"></el-button>
|
|
|
|
|
</el-tooltip>
|
|
|
|
|
<el-tooltip content="查看详情" placement="top">
|
|
|
|
|
<el-button link type="info" icon="DocumentChecked" @click="handleView(scope.row)"></el-button>
|
|
|
|
|
</el-tooltip>
|
|
|
|
|
<el-tooltip content="修改" placement="top">
|
|
|
|
|
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['oa:projectReport:edit']"></el-button>
|
|
|
|
|
<el-button
|
|
|
|
|
link
|
|
|
|
|
type="primary"
|
|
|
|
|
icon="Edit"
|
|
|
|
|
@click="handleUpdateReport(scope.row)"
|
|
|
|
|
v-hasPermi="['oa/erp:projectReport:edit']"
|
|
|
|
|
></el-button>
|
|
|
|
|
</el-tooltip>
|
|
|
|
|
<el-tooltip content="删除" placement="top">
|
|
|
|
|
<el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['oa:projectReport:remove']"></el-button>
|
|
|
|
|
<el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['oa/erp:projectReport:remove']"></el-button>
|
|
|
|
|
</el-tooltip>
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
@ -165,47 +182,6 @@
|
|
|
|
|
|
|
|
|
|
<pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize" @pagination="getList" />
|
|
|
|
|
</el-card>
|
|
|
|
|
<!-- 添加或修改项目周报信息对话框 -->
|
|
|
|
|
<el-dialog :title="dialog.title" v-model="dialog.visible" width="500px" append-to-body>
|
|
|
|
|
<el-form ref="projectReportFormRef" :model="form" :rules="rules" label-width="120px">
|
|
|
|
|
<el-form-item label="项目名称" prop="projectName">
|
|
|
|
|
<el-input v-model="form.projectName" placeholder="请输入项目名称" />
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item label="项目编号" prop="projectCode">
|
|
|
|
|
<el-input v-model="form.projectCode" placeholder="请输入项目编号" />
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item label="当前里程碑" prop="milestonePlan">
|
|
|
|
|
<el-input v-model="form.milestonePlan" placeholder="请输入当前里程碑" />
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item label="项目经理" prop="managerId">
|
|
|
|
|
<el-input v-model="form.managerId" placeholder="请输入项目经理" />
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item label="部门ID" prop="deptId">
|
|
|
|
|
<el-input v-model="form.deptId" placeholder="请输入部门ID" />
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item label="部门负责人" prop="chargeId">
|
|
|
|
|
<el-input v-model="form.chargeId" placeholder="请输入部门负责人" />
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item label="分管副总" prop="deputyId">
|
|
|
|
|
<el-input v-model="form.deputyId" placeholder="请输入分管副总" />
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item label="周报情况说明" prop="informationNote">
|
|
|
|
|
<el-input v-model="form.informationNote" type="textarea" placeholder="请输入内容" />
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item label="附件ID" prop="ossId">
|
|
|
|
|
<el-input v-model="form.ossId" placeholder="请输入附件ID" />
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item label="备注" prop="remark">
|
|
|
|
|
<el-input v-model="form.remark" placeholder="请输入备注" />
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-form>
|
|
|
|
|
<template #footer>
|
|
|
|
|
<div class="dialog-footer">
|
|
|
|
|
<el-button :loading="buttonLoading" type="primary" @click="submitForm">确 定</el-button>
|
|
|
|
|
<el-button @click="cancel">取 消</el-button>
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
</el-dialog>
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
@ -213,6 +189,7 @@
|
|
|
|
|
import { ProjectReportVO, ProjectReportQuery, ProjectReportForm } from '@/api/oa/erp/projectReport/types';
|
|
|
|
|
import { listProjectReport, getProjectReport, delProjectReport, addProjectReport, updateProjectReport } from '@/api/oa/erp/projectReport';
|
|
|
|
|
import ProjectSelect from '@/components/ProjectSelect/index.vue';
|
|
|
|
|
import { report } from 'process';
|
|
|
|
|
|
|
|
|
|
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
|
|
|
|
|
|
|
|
|
@ -286,6 +263,7 @@ const data = reactive<PageData<ProjectReportForm, ProjectReportQuery>>({
|
|
|
|
|
queryParams: {
|
|
|
|
|
pageNum: 1,
|
|
|
|
|
pageSize: 10,
|
|
|
|
|
reportId: undefined,
|
|
|
|
|
projectId: undefined,
|
|
|
|
|
projectName: undefined,
|
|
|
|
|
projectCode: undefined,
|
|
|
|
|
@ -326,7 +304,7 @@ const resetQuery = () => {
|
|
|
|
|
queryFormRef.value?.resetFields();
|
|
|
|
|
handleQuery();
|
|
|
|
|
};
|
|
|
|
|
/** 根据部门查询项目周报信息列表 */
|
|
|
|
|
/** 查询项目周报信息列表 */
|
|
|
|
|
const getList = async () => {
|
|
|
|
|
loading.value = true;
|
|
|
|
|
const res = await listProjectReport(queryParams.value);
|
|
|
|
|
@ -381,32 +359,50 @@ const handleSelectionChange = (selection: ProjectReportVO[]) => {
|
|
|
|
|
single.value = selection.length != 1;
|
|
|
|
|
multiple.value = !selection.length;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/** 新增按钮操作 */
|
|
|
|
|
const handleAdd = () => {
|
|
|
|
|
const handleAdd = (row?: ProjectReportVO) => {
|
|
|
|
|
reset();
|
|
|
|
|
proxy.$tab.closePage(route);
|
|
|
|
|
// 构建路由参数,包含所有需要传递的项目信息
|
|
|
|
|
const routeParams = {
|
|
|
|
|
type: 'add',
|
|
|
|
|
projectId: queryParams.value.projectId,
|
|
|
|
|
projectName: queryParams.value.projectName,
|
|
|
|
|
projectCode: queryParams.value.projectCode,
|
|
|
|
|
managerId: queryParams.value.managerId,
|
|
|
|
|
managerName: queryParams.value.managerName,
|
|
|
|
|
deptId: queryParams.value.deptId,
|
|
|
|
|
deptName: queryParams.value.deptName,
|
|
|
|
|
chargeId: queryParams.value.chargeId,
|
|
|
|
|
chargeName: queryParams.value.chargeName,
|
|
|
|
|
deputyId: queryParams.value.deputyId,
|
|
|
|
|
deputyName: queryParams.value.deputyName
|
|
|
|
|
reportData: null
|
|
|
|
|
};
|
|
|
|
|
if (row && Object.keys(row).length > 0) {
|
|
|
|
|
routeParams.reportData = encodeURIComponent(JSON.stringify(row));
|
|
|
|
|
}
|
|
|
|
|
router.push({
|
|
|
|
|
path: '/project/projectReport/edit',
|
|
|
|
|
query: routeParams
|
|
|
|
|
});
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/** 查看按钮操作 */
|
|
|
|
|
const handleView = (row?: ProjectReportVO) => {
|
|
|
|
|
reset();
|
|
|
|
|
proxy.$tab.closePage(route);
|
|
|
|
|
router.push({
|
|
|
|
|
path: '/project/projectReport/edit',
|
|
|
|
|
query: {
|
|
|
|
|
type: 'view',
|
|
|
|
|
// 传递完整的行数据,方便合同信息页面直接使用
|
|
|
|
|
reportData: encodeURIComponent(JSON.stringify(row))
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
};
|
|
|
|
|
/** 修改按钮操作 */
|
|
|
|
|
const handleUpdateReport = (row?: ProjectReportVO) => {
|
|
|
|
|
reset();
|
|
|
|
|
const _projectId = row?.projectId;
|
|
|
|
|
proxy.$tab.closePage(route);
|
|
|
|
|
router.push({
|
|
|
|
|
path: '/project/projectReport/edit',
|
|
|
|
|
query: {
|
|
|
|
|
id: _projectId,
|
|
|
|
|
type: 'update',
|
|
|
|
|
// 传递完整的行数据,方便合同信息页面直接使用
|
|
|
|
|
reportData: encodeURIComponent(JSON.stringify(row))
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
};
|
|
|
|
|
/** 修改按钮操作 */
|
|
|
|
|
const handleUpdate = async (row?: ProjectReportVO) => {
|
|
|
|
|
reset();
|
|
|
|
|
@ -417,23 +413,6 @@ const handleUpdate = async (row?: ProjectReportVO) => {
|
|
|
|
|
dialog.title = '修改项目周报信息';
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/** 提交按钮 */
|
|
|
|
|
const submitForm = () => {
|
|
|
|
|
projectReportFormRef.value?.validate(async (valid: boolean) => {
|
|
|
|
|
if (valid) {
|
|
|
|
|
buttonLoading.value = true;
|
|
|
|
|
if (form.value.reportId) {
|
|
|
|
|
await updateProjectReport(form.value).finally(() => (buttonLoading.value = false));
|
|
|
|
|
} else {
|
|
|
|
|
await addProjectReport(form.value).finally(() => (buttonLoading.value = false));
|
|
|
|
|
}
|
|
|
|
|
proxy?.$modal.msgSuccess('操作成功');
|
|
|
|
|
dialog.visible = false;
|
|
|
|
|
await getList();
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/** 删除按钮操作 */
|
|
|
|
|
const handleDelete = async (row?: ProjectReportVO) => {
|
|
|
|
|
const _reportIds = row?.reportId || ids.value;
|
|
|
|
|
|