feat(ctr): 添加招标计划选择功能

- 新增获取招标计划的 API 接口
- 在合同创建页面添加招标计划选择功能
- 优化合同类型选择逻辑,增加相关提示
This commit is contained in:
tcy
2025-08-21 15:40:59 +08:00
parent 3b90f269ae
commit 396dcd5748
2 changed files with 35 additions and 5 deletions

View File

@ -71,4 +71,13 @@ export const getFileList = (data) => {
method: 'get',
params: data
})
}
// 获取招标计划
export const getTenderPlan = (data) => {
return request({
url: '/ctr/expensesContract/tender/list',
method: 'get',
params: data
})
}

View File

@ -64,6 +64,11 @@
:value="item.value" />
</el-select>
</el-form-item>
<el-form-item label="招标计划" prop="tenderId">
<!-- <el-input v-model="form.tenderId" placeholder="请输入招标Id" /> -->
<el-input v-model="form.name" placeholder="请选择招标计划" />
<el-button type="primary" @click="handleChoose">选择招标</el-button>
</el-form-item>
<el-form-item label="供应商" prop="contractSupplier">
<el-input v-model="form.contractSupplier" placeholder="请输入供应商" />
</el-form-item>
@ -75,9 +80,7 @@
oninput="value=value.replace(/[^0-9.]/g,'').replace(/\.{2,}/g,'.').replace(/^(\-)*(\d+)\.(\d\d).*$/,'$1$2.$3')"
v-model="form.amount" placeholder="请输入合同金额" />
</el-form-item>
<el-form-item label="招标Id" prop="tenderId">
<el-input v-model="form.tenderId" placeholder="请输入招标Id" />
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" placeholder="请输入备注" />
</el-form-item>
@ -131,15 +134,17 @@
</template>
<script setup>
import FileUpload from '@/components/FileUpload';
import { listExpensesContract, getExpensesContract, delExpensesContract, addExpensesContract, updateExpensesContract } from '@/api/ctr/expensesContract';
import { listExpensesContract, getExpensesContract, delExpensesContract, addExpensesContract, updateExpensesContract, getTenderPlan } from '@/api/ctr/expensesContract';
import { listIncomeContract, getIncomeContract, delIncomeContract, addIncomeContract, updateIncomeContract } from '@/api/ctr/incomeContract';
import { useUserStore } from '@/store/modules/user';
const active = ref(0);
const contract_type = ref("")
const form = ref({ payType: 1 })
const fileList = ref([])
const tempFileList = ref([])
const { proxy } = getCurrentInstance();
const userStore = useUserStore();
const planList = ref([]);
const { expenses_contract_type, income_contract_type } = toRefs(
proxy?.useDict('income_contract_type', 'expenses_contract_type')
@ -172,6 +177,8 @@ const payMentRules = {
};
const project = computed(() => {
console.log(111);
return JSON.parse(localStorage.getItem("selectedProject"))
});
@ -302,6 +309,20 @@ const submitForm = async () => {
// });
// }
}
const handleChoose = async () => {
if (!form.value.contractType) {
ElMessage.error('请先选择合同类型');
return;
}
const formData = {
projectId: userStore.selectedProject.id,
dictName: form.value.contractType
}
const { data } = await getTenderPlan(formData)
planList.value = data
}
watch(form, (val) => {
localStorage.setItem("tempContractForm", JSON.stringify({ ...val, fileList: fileList.value }));
}, { deep: true });