fix: added intemediate step for change deal status & convert to deal step

This commit is contained in:
Shariq Ansari 2025-03-24 13:11:29 +05:30
parent c13ec48824
commit 02994ca00d
4 changed files with 43 additions and 15 deletions

Binary file not shown.

Binary file not shown.

View File

@ -192,7 +192,6 @@ declare module 'vue' {
SidePanelLayout: typeof import('./src/components/SidePanelLayout.vue')['default'] SidePanelLayout: typeof import('./src/components/SidePanelLayout.vue')['default']
SidePanelLayoutEditor: typeof import('./src/components/SidePanelLayoutEditor.vue')['default'] SidePanelLayoutEditor: typeof import('./src/components/SidePanelLayoutEditor.vue')['default']
SidePanelModal: typeof import('./src/components/Modals/SidePanelModal.vue')['default'] SidePanelModal: typeof import('./src/components/Modals/SidePanelModal.vue')['default']
SignupBanner: typeof import('./src/components/SignupBanner.vue')['default']
SLASection: typeof import('./src/components/SLASection.vue')['default'] SLASection: typeof import('./src/components/SLASection.vue')['default']
SmileIcon: typeof import('./src/components/Icons/SmileIcon.vue')['default'] SmileIcon: typeof import('./src/components/Icons/SmileIcon.vue')['default']
SortBy: typeof import('./src/components/SortBy.vue')['default'] SortBy: typeof import('./src/components/SortBy.vue')['default']

View File

@ -132,6 +132,10 @@
:afterResetAll="() => capture('onboarding_steps_reset')" :afterResetAll="() => capture('onboarding_steps_reset')"
docsLink="https://docs.frappe.io/crm" docsLink="https://docs.frappe.io/crm"
/> />
<IntermediateStepModal
v-model="showIntermediateModal"
:currentStep="currentStep"
/>
</div> </div>
</template> </template>
@ -174,6 +178,7 @@ import {
useOnboarding, useOnboarding,
showHelpModal, showHelpModal,
minimize, minimize,
IntermediateStepModal,
} from 'frappe-ui/frappe' } from 'frappe-ui/frappe'
import { capture } from '@/telemetry' import { capture } from '@/telemetry'
import router from '@/router' import router from '@/router'
@ -308,6 +313,9 @@ async function getFirstDeal() {
return await call('crm.api.onboarding.get_first_deal') return await call('crm.api.onboarding.get_first_deal')
} }
const showIntermediateModal = ref(false)
const currentStep = ref({})
const steps = reactive([ const steps = reactive([
{ {
name: 'create_first_lead', name: 'create_first_lead',
@ -338,14 +346,24 @@ const steps = reactive([
onClick: async () => { onClick: async () => {
minimize.value = true minimize.value = true
let lead = await getFirstLead() currentStep.value = {
title: __('Convert lead to deal'),
buttonLabel: __('Convert'),
videoURL: '/assets/crm/videos/convert_to_deal.mov',
onClick: async () => {
showIntermediateModal.value = false
currentStep.value = {}
let lead = await getFirstLead()
if (lead) { if (lead) {
router.push({ name: 'Lead', params: { leadId: lead } }) router.push({ name: 'Lead', params: { leadId: lead } })
} else { } else {
router.push({ name: 'Leads' }) router.push({ name: 'Leads' })
} }
}, },
}
showIntermediateModal.value = true
},
}, },
{ {
name: 'create_first_task', name: 'create_first_task',
@ -434,8 +452,16 @@ const steps = reactive([
completed: false, completed: false,
onClick: async () => { onClick: async () => {
minimize.value = true minimize.value = true
let deal = await getFirstDeal()
currentStep.value = {
title: __('Change deal status'),
buttonLabel: __('Change'),
videoURL: '/assets/crm/videos/change_deal_status.mov',
onClick: async () => {
showIntermediateModal.value = false
currentStep.value = {}
let deal = await getFirstDeal()
if (deal) { if (deal) {
router.push({ router.push({
name: 'Deal', name: 'Deal',
@ -446,6 +472,9 @@ const steps = reactive([
router.push({ name: 'Leads' }) router.push({ name: 'Leads' })
} }
}, },
}
showIntermediateModal.value = true
},
}, },
]) ])