2026-03-22 09:54:02 +00:00
|
|
|
<style scoped>
|
|
|
|
|
.scroll-pane {
|
|
|
|
|
max-height: calc(100vh - 200px);
|
|
|
|
|
overflow-y: auto;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.tool-button {
|
|
|
|
|
width: 100%;
|
|
|
|
|
margin-bottom: 0.5rem;
|
|
|
|
|
text-align: left;
|
|
|
|
|
}
|
|
|
|
|
</style>
|
|
|
|
|
<template>
|
|
|
|
|
<div class="card shadow-sm h-100">
|
2026-03-22 10:14:48 +00:00
|
|
|
<div class="card-header bg-light pane-header">Transformation Tools</div>
|
2026-03-22 09:54:02 +00:00
|
|
|
<div class="card-body scroll-pane">
|
|
|
|
|
<div class="mb-3">
|
|
|
|
|
<div class="text-muted small mb-2">Signal → Lead</div>
|
|
|
|
|
<button
|
|
|
|
|
class="btn btn-outline-primary tool-button"
|
2026-03-23 17:14:14 -07:00
|
|
|
:disabled="selectedSignalIDs.size === 0 || creating"
|
2026-03-25 21:45:13 -07:00
|
|
|
@click="emit('doCreateLead')"
|
2026-03-22 09:54:02 +00:00
|
|
|
>
|
|
|
|
|
<span v-if="!creating">Create New Lead from Selection</span>
|
|
|
|
|
<span v-else>
|
|
|
|
|
<span class="spinner-border spinner-border-sm me-1"></span>
|
|
|
|
|
Creating...
|
|
|
|
|
</span>
|
|
|
|
|
</button>
|
|
|
|
|
<button
|
|
|
|
|
class="btn btn-outline-secondary tool-button"
|
2026-03-23 17:14:14 -07:00
|
|
|
:disabled="selectedSignalIDs.size === 0"
|
2026-03-25 21:45:13 -07:00
|
|
|
@click="emit('doAddToLead')"
|
2026-03-22 09:54:02 +00:00
|
|
|
>
|
|
|
|
|
Add Signals to Existing Lead
|
|
|
|
|
</button>
|
|
|
|
|
<button
|
|
|
|
|
class="btn btn-outline-secondary tool-button"
|
2026-03-23 17:14:14 -07:00
|
|
|
:disabled="selectedSignalIDs.size === 0"
|
2026-03-25 21:45:13 -07:00
|
|
|
@click="emit('doMarkSignalAddressed')"
|
2026-03-22 09:54:02 +00:00
|
|
|
>
|
|
|
|
|
Mark Signal as Addressed
|
|
|
|
|
</button>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<hr />
|
|
|
|
|
|
|
|
|
|
<div class="mb-3">
|
|
|
|
|
<div class="text-muted small mb-2">Lead → Field Assignment</div>
|
2026-03-27 14:06:50 -07:00
|
|
|
<button
|
|
|
|
|
class="btn btn-outline-success tool-button"
|
|
|
|
|
@click="emit('doCreateProposedAssignment')"
|
|
|
|
|
>
|
2026-03-22 09:54:02 +00:00
|
|
|
Create Proposed Assignment
|
|
|
|
|
</button>
|
2026-03-27 14:06:50 -07:00
|
|
|
<button
|
|
|
|
|
class="btn btn-outline-secondary tool-button"
|
|
|
|
|
@click="emit('doAddLeadsToAssignment')"
|
|
|
|
|
>
|
2026-03-22 09:54:02 +00:00
|
|
|
Add Leads to Existing Assignment
|
|
|
|
|
</button>
|
2026-03-27 14:06:50 -07:00
|
|
|
<button
|
|
|
|
|
class="btn btn-outline-secondary tool-button"
|
|
|
|
|
@click="emit('doSplitLead')"
|
|
|
|
|
>
|
2026-03-22 09:54:02 +00:00
|
|
|
Split Lead
|
|
|
|
|
</button>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<hr />
|
|
|
|
|
|
|
|
|
|
<div class="mb-3">
|
|
|
|
|
<div class="text-muted small mb-2">Assignment Controls</div>
|
2026-03-27 14:06:50 -07:00
|
|
|
<button
|
|
|
|
|
class="btn btn-outline-dark tool-button"
|
|
|
|
|
@click="emit('doSetPriority')"
|
|
|
|
|
>
|
|
|
|
|
Set Priority
|
|
|
|
|
</button>
|
|
|
|
|
<button
|
|
|
|
|
class="btn btn-outline-dark tool-button"
|
|
|
|
|
@click="emit('doEstimateEffort')"
|
|
|
|
|
>
|
2026-03-22 09:54:02 +00:00
|
|
|
Estimate Effort
|
|
|
|
|
</button>
|
2026-03-27 14:06:50 -07:00
|
|
|
<button
|
|
|
|
|
class="btn btn-outline-dark tool-button"
|
|
|
|
|
@click="emit('doSendToOperations')"
|
|
|
|
|
>
|
2026-03-22 09:54:02 +00:00
|
|
|
Send to Operations
|
|
|
|
|
</button>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
<script setup lang="ts">
|
2026-03-25 21:45:13 -07:00
|
|
|
interface Emits {
|
|
|
|
|
(e: "doAddToLead"): void;
|
|
|
|
|
(e: "doAddLeadsToAssignment"): void;
|
|
|
|
|
(e: "doCreateLead"): void;
|
|
|
|
|
(e: "doCreateProposedAssignment"): void;
|
|
|
|
|
(e: "doEstimateEffort"): void;
|
|
|
|
|
(e: "doMarkSignalAddressed"): void;
|
|
|
|
|
(e: "doSetPriority"): void;
|
|
|
|
|
(e: "doSendToOperations"): void;
|
|
|
|
|
(e: "doSplitLead"): void;
|
|
|
|
|
}
|
2026-03-22 09:54:02 +00:00
|
|
|
interface Props {
|
|
|
|
|
creating: boolean;
|
2026-03-23 17:14:14 -07:00
|
|
|
selectedSignalIDs: Set<int>;
|
2026-03-22 09:54:02 +00:00
|
|
|
}
|
2026-03-25 21:45:13 -07:00
|
|
|
const emit = defineEmits<Emits>();
|
2026-03-22 09:54:02 +00:00
|
|
|
const props = defineProps<Props>();
|
|
|
|
|
</script>
|