feat(ctr): 优化合同管理功能
- 支出合同和收入合同页面移除项目ID相关字段 - 合同列表页面添加当前项目ID筛选条件 - 合同表单页面禁用某些字段的编辑 - 优化合同类型页面的表单布局和提示信息 - 添加对当前项目变更的监听,自动刷新合同列表
This commit is contained in:
@ -5,9 +5,9 @@
|
||||
<div v-show="showSearch" class="mb-[10px]">
|
||||
<el-card shadow="hover">
|
||||
<el-form ref="queryFormRef" :model="queryParams" :inline="true">
|
||||
<el-form-item label="项目ID" prop="projectId">
|
||||
<!-- <el-form-item label="项目ID" prop="projectId">
|
||||
<el-input v-model="queryParams.projectId" placeholder="请输入项目ID" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
</el-form-item> -->
|
||||
<el-form-item label="合同编号" prop="contractCode">
|
||||
<el-input v-model="queryParams.contractCode" placeholder="请输入合同编号" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
@ -18,9 +18,9 @@
|
||||
<el-form-item label="合同金额" prop="amount">
|
||||
<el-input v-model="queryParams.amount" placeholder="请输入合同金额" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="招标Id" prop="tenderId">
|
||||
<!-- <el-form-item label="招标Id" prop="tenderId">
|
||||
<el-input v-model="queryParams.tenderId" placeholder="请输入招标Id" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
</el-form-item> -->
|
||||
<el-form-item>
|
||||
<el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
|
||||
<el-button icon="Refresh" @click="resetQuery">重置</el-button>
|
||||
@ -57,7 +57,7 @@
|
||||
<el-table-column type="selection" width="55" align="center" />
|
||||
<!-- <el-table-column label="主键ID" align="center" prop="id" v-if="true" /> -->
|
||||
<el-table-column type="index" width="50" label="序号" />
|
||||
<el-table-column label="项目ID" align="center" prop="projectId" />
|
||||
<!-- <el-table-column label="项目ID" align="center" prop="projectId" /> -->
|
||||
<el-table-column label="合同编号" align="center" prop="contractCode" />
|
||||
<el-table-column label="合同类型" align="center" prop="contractType" />
|
||||
<el-table-column label="合同类型" align="center" prop="contractType">
|
||||
@ -68,7 +68,7 @@
|
||||
<el-table-column label="供应商" align="center" prop="contractSupplier" />
|
||||
<el-table-column label="分包内容" align="center" prop="contractedContent" />
|
||||
<el-table-column label="合同金额" align="center" prop="amount" />
|
||||
<el-table-column label="招标Id" align="center" prop="tenderId" />
|
||||
<!-- <el-table-column label="招标Id" align="center" prop="tenderId" /> -->
|
||||
<el-table-column label="备注" align="center" prop="remark" />
|
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||
<template #default="scope">
|
||||
@ -93,9 +93,9 @@
|
||||
<!-- 添加或修改支出合同对话框 -->
|
||||
<el-dialog :title="dialog.title" v-model="dialog.visible" width="500px" append-to-body>
|
||||
<el-form ref="expensesContractFormRef" :model="form" :rules="rules" label-width="80px">
|
||||
<el-form-item label="项目ID" prop="projectId">
|
||||
<!-- <el-form-item label="项目ID" prop="projectId">
|
||||
<el-input v-model="form.projectId" placeholder="请输入项目ID" />
|
||||
</el-form-item>
|
||||
</el-form-item> -->
|
||||
<el-form-item label="合同编号" prop="contractCode">
|
||||
<el-input v-model="form.contractCode" placeholder="请输入合同编号" />
|
||||
</el-form-item>
|
||||
@ -131,6 +131,7 @@
|
||||
import { listExpensesContract, getExpensesContract, delExpensesContract, addExpensesContract, updateExpensesContract, getFileList } from '@/api/ctr/expensesContract';
|
||||
import { ExpensesContractVO, ExpensesContractQuery, ExpensesContractForm } from '@/api/ctr/expensesContract/types';
|
||||
import FileList from '@/components/FileList/index.vue';
|
||||
import useUserStore from '@/store/modules/user';
|
||||
|
||||
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
||||
const { expenses_contract_type, income_contract_type } = toRefs(
|
||||
@ -146,9 +147,10 @@ const multiple = ref(true);
|
||||
const total = ref(0);
|
||||
const fileListVisible = ref(false); // 控制附件列表对话框的显示
|
||||
const fileList = ref<Array<any>>([]); // 文件列表
|
||||
|
||||
const userStore = useUserStore();
|
||||
const queryFormRef = ref<ElFormInstance>();
|
||||
const expensesContractFormRef = ref<ElFormInstance>();
|
||||
const currentProject = computed(() => userStore.selectedProject);
|
||||
|
||||
const dialog = reactive<DialogOption>({
|
||||
visible: false,
|
||||
@ -171,7 +173,7 @@ const data = reactive<PageData<ExpensesContractForm, ExpensesContractQuery>>({
|
||||
queryParams: {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
projectId: undefined,
|
||||
projectId: currentProject.value?.id,
|
||||
contractCode: undefined,
|
||||
contractType: undefined,
|
||||
contractSupplier: undefined,
|
||||
@ -292,7 +294,21 @@ const handleShowFileList = async (row: ExpensesContractVO) => {
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
onMounted(() => {
|
||||
getList();
|
||||
});
|
||||
// 监听项目id刷新数据
|
||||
const listeningProject = watch(
|
||||
() => currentProject.value?.id,
|
||||
(nid, oid) => {
|
||||
queryParams.value.projectId = nid;
|
||||
form.value.projectId = nid;
|
||||
getList();
|
||||
}
|
||||
);
|
||||
|
||||
onUnmounted(() => {
|
||||
listeningProject();
|
||||
});
|
||||
</script>
|
||||
|
||||
Reference in New Issue
Block a user