采购更新
This commit is contained in:
@@ -39,6 +39,14 @@
|
||||
<el-option label="是" value="1" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="是否特殊" prop="isSpecial">
|
||||
<el-select v-model="state.queryForm.isSpecial" placeholder="请选择是否特殊" clearable style="width: 200px">
|
||||
<el-option label="否" value="0" />
|
||||
<el-option label="紧急" value="1" />
|
||||
<el-option label="单一" value="2" />
|
||||
<el-option label="进口" value="3" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="采购形式" prop="purchaseMode">
|
||||
<el-select
|
||||
v-model="state.queryForm.purchaseMode"
|
||||
@@ -51,13 +59,25 @@
|
||||
<el-option label="学校统一采购" value="2" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="采购方式" prop="purchaseType">
|
||||
<el-form-item v-if="state.queryForm.purchaseMode === '1'" label="采购途径" prop="purchaseChannel">
|
||||
<el-select
|
||||
v-model="state.queryForm.purchaseChannel"
|
||||
placeholder="请选择采购途径"
|
||||
clearable
|
||||
style="width: 200px"
|
||||
@change="handlePurchaseChannelChange"
|
||||
>
|
||||
<el-option label="自行采购" value="1" />
|
||||
<el-option label="委托采购中心采购" value="2" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item v-if="showPurchaseTypeSelect" label="采购方式" prop="purchaseType">
|
||||
<el-select v-model="state.queryForm.purchaseType" placeholder="请选择采购方式" clearable style="width: 200px">
|
||||
<el-option v-for="item in purchaseTypeSearchOptions" :key="item.value" :label="item.label" :value="item.value" />
|
||||
<el-option v-for="item in purchaseTypeOptions" :key="item.value" :label="item.label" :value="item.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="需求部门" prop="deptId">
|
||||
<el-select v-model="state.queryForm.deptId" placeholder="请选择需求部门" clearable filterable style="width: 200px">
|
||||
<el-select v-model="state.queryForm.deptCode" placeholder="请选择需求部门" clearable filterable style="width: 200px">
|
||||
<el-option v-for="item in secondDeptList" :key="item.id" :label="item.name" :value="item.id" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
@@ -345,7 +365,14 @@
|
||||
<template v-if="scope.row.status === '1'">
|
||||
<el-tooltip v-if="scope.row.contractFlowStatus" content="点击查看合同详情" placement="top">
|
||||
<el-tag
|
||||
v-if="scope.row.contractFlowStatus === '0'"
|
||||
v-if="scope.row.contractFlowStatus === '-1'"
|
||||
type="info"
|
||||
class="status-tag-clickable"
|
||||
@click="handleEditContract(scope.row)"
|
||||
>已上传
|
||||
</el-tag>
|
||||
<el-tag
|
||||
v-else-if="scope.row.contractFlowStatus === '0'"
|
||||
type="warning"
|
||||
class="status-tag-clickable"
|
||||
@click="handleShowContractDetail(scope.row)"
|
||||
@@ -365,9 +392,6 @@
|
||||
@click="handleShowContractDetail(scope.row)"
|
||||
>已作废
|
||||
</el-tag>
|
||||
<el-tag v-else type="info" class="status-tag-clickable" @click="handleShowContractDetail(scope.row)">{{
|
||||
scope.row.contractFlowStatus
|
||||
}}</el-tag>
|
||||
</el-tooltip>
|
||||
<el-button v-else type="primary" link size="small" @click="handleAddContract(scope.row)">添加合同</el-button>
|
||||
</template>
|
||||
@@ -593,45 +617,46 @@ const dictData = ref({
|
||||
const purchaseTypeDeptDelegationList = ref<any[]>([]); // 委托采购中心采购方式字典
|
||||
const secondDeptList = ref<any[]>([]); // 二级部门列表
|
||||
|
||||
// 采购方式搜索选项(根据采购形式动态变化)
|
||||
const purchaseTypeSearchOptions = computed(() => {
|
||||
// 是否显示采购方式选择框
|
||||
const showPurchaseTypeSelect = computed(() => {
|
||||
const mode = state.queryForm.purchaseMode;
|
||||
if (mode === '2') {
|
||||
// 学校统一采购:使用UNION_PURCHASE_TYPE字典
|
||||
return dictData.value.purchaseTypeUnionList;
|
||||
// 学校统一采购:显示采购方式
|
||||
return true;
|
||||
} else if (mode === '1') {
|
||||
// 部门自行采购:合并DEPT_PURCHASE_TYPE和PURCHASE_TYPE_DEPT_DELEGATION
|
||||
return [...dictData.value.purchaseTypeDeptList, ...purchaseTypeDeptDelegationList.value];
|
||||
// 部门自行采购:需要先选择采购途径
|
||||
return !!state.queryForm.purchaseChannel;
|
||||
}
|
||||
// 未选择采购形式时,显示所有选项
|
||||
return [...dictData.value.purchaseTypeDeptList, ...purchaseTypeDeptDelegationList.value, ...dictData.value.purchaseTypeUnionList];
|
||||
return false;
|
||||
});
|
||||
|
||||
// 采购形式变化时清空采购方式
|
||||
// 采购方式选项(根据采购形式和采购途径动态变化)
|
||||
const purchaseTypeOptions = computed(() => {
|
||||
const mode = state.queryForm.purchaseMode;
|
||||
if (mode === '2') {
|
||||
// 学校统一采购:使用 UNION_PURCHASE_TYPE 字典
|
||||
return dictData.value.purchaseTypeUnionList;
|
||||
} else if (mode === '1') {
|
||||
const channel = state.queryForm.purchaseChannel;
|
||||
if (channel === '1') {
|
||||
// 自行采购:使用 DEPT_PURCHASE_TYPE 字典
|
||||
return dictData.value.purchaseTypeDeptList;
|
||||
} else if (channel === '2') {
|
||||
// 委托采购中心采购:使用 PURCHASE_TYPE_DEPT_DELEGATION 字典
|
||||
return purchaseTypeDeptDelegationList.value;
|
||||
}
|
||||
}
|
||||
return [];
|
||||
});
|
||||
|
||||
// 采购形式变化时清空采购途径和采购方式
|
||||
const handlePurchaseModeChange = () => {
|
||||
state.queryForm.purchaseChannel = '';
|
||||
state.queryForm.purchaseType = '';
|
||||
};
|
||||
|
||||
// 搜索条件相关数据
|
||||
const purchaseTypeDeptDelegationList = ref<any[]>([]); // 委托采购中心采购方式字典
|
||||
const secondDeptList = ref<any[]>([]); // 二级部门列表
|
||||
|
||||
// 采购方式搜索选项(根据采购形式动态变化)
|
||||
const purchaseTypeSearchOptions = computed(() => {
|
||||
const mode = state.queryForm.purchaseMode;
|
||||
if (mode === '2') {
|
||||
// 学校统一采购:使用UNION_PURCHASE_TYPE字典
|
||||
return dictData.value.purchaseTypeUnionList;
|
||||
} else if (mode === '1') {
|
||||
// 部门自行采购:合并DEPT_PURCHASE_TYPE和PURCHASE_TYPE_DEPT_DELEGATION
|
||||
return [...dictData.value.purchaseTypeDeptList, ...purchaseTypeDeptDelegationList.value];
|
||||
}
|
||||
// 未选择采购形式时,显示所有选项
|
||||
return [...dictData.value.purchaseTypeDeptList, ...purchaseTypeDeptDelegationList.value, ...dictData.value.purchaseTypeUnionList];
|
||||
});
|
||||
|
||||
// 采购形式变化时清空采购方式
|
||||
const handlePurchaseModeChange = () => {
|
||||
// 采购途径变化时清空采购方式
|
||||
const handlePurchaseChannelChange = () => {
|
||||
state.queryForm.purchaseType = '';
|
||||
};
|
||||
|
||||
@@ -726,9 +751,11 @@ const state: BasicTableProps = reactive<BasicTableProps>({
|
||||
projectType: '',
|
||||
status: '',
|
||||
isCentralized: '',
|
||||
isSpecial: '',
|
||||
purchaseMode: '',
|
||||
purchaseChannel: '',
|
||||
purchaseType: '',
|
||||
deptId: '',
|
||||
deptCode: '',
|
||||
},
|
||||
createdIsNeed: true,
|
||||
});
|
||||
@@ -837,6 +864,16 @@ const handleAddContract = (row: any) => {
|
||||
purchaseContractDialogRef.value?.open(String(id), 'add');
|
||||
};
|
||||
|
||||
/** 点击已上传合同:打开采购合同编辑弹窗 */
|
||||
const handleEditContract = (row: any) => {
|
||||
const id = row?.id ?? row?.purchaseId;
|
||||
if (!id) {
|
||||
useMessage().warning('无法获取采购申请ID');
|
||||
return;
|
||||
}
|
||||
purchaseContractDialogRef.value?.open(String(id), 'edit');
|
||||
};
|
||||
|
||||
/** 点击采购合同状态:打开采购合同详情弹窗 */
|
||||
const handleShowContractDetail = (row: any) => {
|
||||
const id = row?.id ?? row?.purchaseId;
|
||||
|
||||
Reference in New Issue
Block a user