diff --git a/src/components/button/StateButton.vue b/src/components/button/StateButton.vue
index dd3032ed..98e09734 100644
--- a/src/components/button/StateButton.vue
+++ b/src/components/button/StateButton.vue
@@ -30,7 +30,7 @@ defineEmits<{
['status-color-waiting']: statusWaiting,
['step-status-active']: statusActive,
}"
- @click="statusWaiting ? undefined : $emit('click')"
+ @click="statusWaiting && !statusDone ? undefined : $emit('click')"
>
+import { ref } from 'vue';
import { baseUrl } from 'src/stores/utils';
import BadgeComponent from 'src/components/BadgeComponent.vue';
@@ -6,14 +7,14 @@ import BadgeComponent from 'src/components/BadgeComponent.vue';
import { ProductRelation, PayCondition } from 'src/stores/quotations/types';
import { Step, RequestWorkStatus } from 'src/stores/request-list/types';
-const workStatus = [
+const workStatus = ref([
RequestWorkStatus.Ready,
RequestWorkStatus.Waiting,
RequestWorkStatus.InProgress,
RequestWorkStatus.Validate,
RequestWorkStatus.Ended,
RequestWorkStatus.Completed,
-];
+]);
defineEmits<{
(
@@ -22,7 +23,7 @@ defineEmits<{
): void;
}>();
-defineProps<{
+const props = defineProps<{
product: ProductRelation;
name: string;
code: string;
@@ -37,8 +38,30 @@ defineProps<{
payCondition: PayCondition;
readonly?: boolean;
cancel?: boolean;
+ orderAble?: boolean;
}>();
+function changeableStatus(currentStatus?: RequestWorkStatus) {
+ switch (currentStatus) {
+ case RequestWorkStatus.Ready:
+ case RequestWorkStatus.Waiting:
+ case RequestWorkStatus.InProgress:
+ return [RequestWorkStatus.Canceled];
+ case RequestWorkStatus.Validate:
+ case RequestWorkStatus.Ended:
+ case RequestWorkStatus.Completed:
+ case RequestWorkStatus.Canceled:
+ return [];
+ default:
+ if (props.readonly) return [];
+ if (props.orderAble) {
+ return [RequestWorkStatus.Ready, RequestWorkStatus.Canceled];
+ } else {
+ return [RequestWorkStatus.Ended, RequestWorkStatus.Canceled];
+ }
+ }
+}
+
// NOTE: Function
@@ -87,9 +110,7 @@ defineProps<{
diff --git a/src/pages/08_request-list/RequestListView.vue b/src/pages/08_request-list/RequestListView.vue
index 715f2475..ce5908a9 100644
--- a/src/pages/08_request-list/RequestListView.vue
+++ b/src/pages/08_request-list/RequestListView.vue
@@ -194,10 +194,6 @@ async function triggerChangeStatusWork(step: Step, responsibleUserId?: string) {
}
}
await nextTick();
-
- if (successAll.value) {
- await requestListStore.editStatusRequestWork(step, !!successAll.value);
- }
}
async function triggerChangeStatusFile(opt: {
@@ -503,7 +499,9 @@ function goToQuotation(
)?.workStatus;
return (
status === RequestWorkStatus.Completed ||
- status === RequestWorkStatus.Ended
+ status === RequestWorkStatus.Ended ||
+ status === RequestWorkStatus.Canceled ||
+ (data?.requestDataStatus === 'Canceled' && !status)
);
})
"
@@ -680,7 +678,7 @@ function goToQuotation(
(v) => v.id === getUserId(),
))
"
- :order-able="value._formExpansion"
+ :order-able="value._messengerExpansion"
:installment-info="getInstallmentInfo()"
:pay-success="
isInstallmentPaySuccess(value.productService.installmentNo)