Admin Workflow - New UI for Admin to go through questions and answers (update)

This commit is contained in:
Dillon Ngo
2025-01-03 03:06:55 +08:00
parent 2e625828e7
commit db7d3dd3ae
5 changed files with 40 additions and 18 deletions
@@ -26,10 +26,10 @@ class IdAfter implements Filter
if ($nextId) {
return $builder->where('id', '>', $id)
->where('id', '<', $nextId);
->where('id', '<', $nextId)->withTrashed();
}
return $builder->where('id', '>', $id);
return $builder->where('id', '>', $id)->withTrashed();
}
}
+1 -1
View File
@@ -298,7 +298,7 @@ class QAWorkFlowSeeder extends Seeder
'is_start' => false,
'is_end' => false,
'answer_options' => [
['display_text' => 'Sensitive Goods', 'value' => 'Sensitive Goods'],
['display_text' => 'Sensitive Goods', 'value' => 'Sensitive Goods', 'next_question_number' => 'approve_po_reject_others_complete'],
['display_text' => 'Others', 'value' => 'approve_po_reject_others', 'next_question_number' => 'approve_po_reject_others'],
['display_text' => 'Stop Working', 'value' => 'stop_working', 'next_question_number' => 'stop_working'],
['display_text' => 'Next Order', 'value' => 'approve_po', 'next_question_number' => 'approve_po'],
@@ -50,10 +50,11 @@
<div class="row align-items-center m-t-10 p-t-10 p-b-10 b-t b-grey muted all-caps fs-10">
<div class="col-1">Id</div>
<div class="col-2">Question Text</div>
<div class="col-1">Order/Booking/Transfer</div>
<div class="col-1">Answer Text</div>
<div class="col-2">Answer Value</div>
<div class="col-1">Documents Uploaded</div>
<div class="col-1">Time(seconds)</div>
<div class="col-1">Order/Booking/Transfer</div>
</div>
</div>
</div>
@@ -78,6 +79,7 @@
expanded: false,
options: {
'order_by': {column: 'created_at', DESC: false},
'per_page': 20,
},
showExpandedIcon: false,
loading: true
@@ -108,7 +110,6 @@
created(){
this.options['reference'] = this.item.reference;
this.options['id_after'] = [this.item.id, this.item.question_groups];
},
methods: {
expand(){
@@ -2,23 +2,44 @@
<div class="row parentContainer">
<div class="col-1">{{ item.id }}</div>
<div class="col-2">{{ item.question_title }}</div>
<div class="col-1">{{ item.answer }}</div>
<div class="col-2">{{ parsedAnswer }}</div>
<div class="col-1">{{ item.time }}</div>
<div class="col-1">
<a :href="route('booking.details', JSON.parse(item.question_metadata).booking.marking)"
target="_blank">{{ JSON.parse(item.question_metadata).booking.marking }}
</a>
</div>
<div class="col-1">
<document-file-viewer-component v-if="item.documents" :file="item.documents.files[0]">
<template slot="button">
<button class="btn btn-xs btn-default bg-master-lightest b-rad-none no-border">
<i class="fa fa-eye"></i>
</button>
</template>
</document-file-viewer-component>
<div class="col-1">{{ parsedAnswer === 'go_back' ? '' : item.answer }}</div>
<div class="col-2">{{ parsedAnswer }}</div>
<div class="col-1" style="display: flex; flex-wrap: nowrap; gap: 5px;">
<div v-if="item.documents != null" style="display: flex; flex-wrap: nowrap; gap: 5px;">
<div
v-for="file in item.documents.files"
v-bind:key="file.id"
class="col-auto no-padding">
<document-file-viewer-component :file="file">
<template slot="button">
<button class="btn btn-xs btn-default bg-master-lightest b-rad-none no-border">
<i class="fa fa-download"></i>
</button>
</template>
</document-file-viewer-component>
</div>
</div>
</div>
<div class="col-1">{{ item.time }}</div>
<!-- <div class="col-1">
<div v-if="item.documents != null">
<div v-for="file in item.documents.files" v-bind:key="file.id" class="col-auto no-padding m-r-5">
<document-file-viewer-component :file="file">
<template slot="button">
<button class="btn btn-xs btn-default bg-master-lightest b-rad-none no-border">
<i class="fa fa-download"></i>
</button>
</template>
</document-file-viewer-component>
</div>
</div>
</div> -->
</div>
</template>
<script>
@@ -7,8 +7,8 @@
<div class="row">
<div class="col-md-4">
<validation-wrapper-component selectable :validator="$v.filterQuestionnaireSet">
<label>Questionnaire Set</label>
<selectable-component :endpoint="route('api.questionnaires.list')" :section="section + 'QuestionnaireSet'" valueColumn="id" :labelColumn="['version', 'name']" v-model="filterQuestionnaireSet"></selectable-component>
<label>Questionnaire Set Version</label>
<selectable-component :endpoint="route('api.questionnaires.list')" :section="section + 'QuestionnaireSet'" valueColumn="id" :labelColumn="['name', 'version']" v-model="filterQuestionnaireSet"></selectable-component>
</validation-wrapper-component>
</div>
<div class="col-md-4">