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