diff --git a/web-admin/src/views/crm/quote/components/ApproverSelector.vue b/web-admin/src/views/crm/quote/components/ApproverSelector.vue index 8dbdf9e59..fa656c4f0 100644 --- a/web-admin/src/views/crm/quote/components/ApproverSelector.vue +++ b/web-admin/src/views/crm/quote/components/ApproverSelector.vue @@ -84,6 +84,7 @@ import { ref, reactive } from 'vue' import type { FormInstance, FormRules } from 'element-plus' import { Check, Close } from '@element-plus/icons-vue' import { fetchUserOptions } from '@/api/admin' +import { getQuoteApproverSetting } from '@/api/crm/quote' const emit = defineEmits(['submit', 'close']) @@ -94,7 +95,7 @@ const formRef = ref() const userList = ref([]) const form = reactive({ - approverIds: [] as number[], + approverIds: [] as string[], remark: '' }) @@ -103,9 +104,22 @@ const rules = reactive({ remark: [{ required: true, message: '请输入审批说明', trigger: 'blur' }] }) -const open = () => { +async function resolvePrefillApproverIds(userList: { userId: string | number }[]) { + try { + const { data } = await getQuoteApproverSetting() + if (!data || String(data.status) !== '0') return [] as string[] + const valid = new Set(userList.map((u) => String(u.userId))) + return (data.approverIds || []).map(String).filter((id) => valid.has(id)) + } catch { + return [] + } +} + +const open = async () => { dialogVisible.value = true - loadUsers() + await loadUsers() + form.approverIds = await resolvePrefillApproverIds(userList.value) + form.remark = '' } const handleClose = () => { diff --git a/web-admin/src/views/crm/quote/components/QuoteFormPanel.vue b/web-admin/src/views/crm/quote/components/QuoteFormPanel.vue index f1f575797..ff48846d2 100644 --- a/web-admin/src/views/crm/quote/components/QuoteFormPanel.vue +++ b/web-admin/src/views/crm/quote/components/QuoteFormPanel.vue @@ -463,6 +463,14 @@ scroll-to-error :scroll-into-view-options="{ behavior: 'smooth', block: 'center' }" > +