diff --git a/resources/jscomposition/base/table/BaseTable.vue b/resources/jscomposition/base/table/BaseTable.vue index 5c757cd94e..6e0b02a8a4 100644 --- a/resources/jscomposition/base/table/BaseTable.vue +++ b/resources/jscomposition/base/table/BaseTable.vue @@ -1,7 +1,8 @@ diff --git a/resources/jscomposition/base/table/ContainerRow.vue b/resources/jscomposition/base/table/ContainerRow.vue new file mode 100644 index 0000000000..0e960b83b0 --- /dev/null +++ b/resources/jscomposition/base/table/ContainerRow.vue @@ -0,0 +1,23 @@ + + + diff --git a/resources/jscomposition/base/table/TCell.vue b/resources/jscomposition/base/table/TCell.vue index c9e267a9b7..81aba43a3c 100644 --- a/resources/jscomposition/base/table/TCell.vue +++ b/resources/jscomposition/base/table/TCell.vue @@ -1,13 +1,14 @@ @@ -50,14 +53,17 @@ export default defineComponent({ return get(props.row, props.column?.field) || ""; }; - const getComponent = () => props.column.cellRenderer().component; + const getComponent = () => props.column.cellRenderer().component || props.column.cellRenderer(); const getParams = () => props.column.cellRenderer().params || {}; + const collapseContainer = (value) => emit("toogleContainer", value); + return { getComponent, getParams, getValue, + collapseContainer, }; }, }); diff --git a/resources/jscomposition/base/table/TRow.vue b/resources/jscomposition/base/table/TRow.vue index ad929a275a..7506895657 100644 --- a/resources/jscomposition/base/table/TRow.vue +++ b/resources/jscomposition/base/table/TRow.vue @@ -1,15 +1,25 @@ diff --git a/resources/jscomposition/cases/casesDetail/api/index.js b/resources/jscomposition/cases/casesDetail/api/index.js index f1d3f30f26..2ceea6cd63 100644 --- a/resources/jscomposition/cases/casesDetail/api/index.js +++ b/resources/jscomposition/cases/casesDetail/api/index.js @@ -1,19 +1,25 @@ import { api } from "../variables"; -export const getData = async () => { +const getData = async () => { const objectsList = []; for (let i = 0; i <= 31; i += 1) { const obj = { id: `${i}`, case_number: 100, - case_title: `Case Title ${i}`, - process_name: `Process ${i}`, - assigned: `Avatar ${i}`, + element_name: `Case Title ${i}`, + process: { + name: `Process ${i}`, + }, + user: { + fullname: `Avatar ${i}`, + }, current_task: `Task ${i}`, - status: `badge ${i}`, + status: "IN_PROGRESS", started: `21/21/${i}`, - due_date: `21/21/${i}`, + due_at: `21/21/${i}`, + completed_date: `21/21/${i}`, + screen_id: 4, }; objectsList.push(obj); @@ -22,7 +28,7 @@ export const getData = async () => { return objectsList; }; -export const getDataTask = async ({ params, pagination }) => { +const getDataTask = async ({ params, pagination }) => { const response = await api.get("tasks-by-case/", { params: { ...params, @@ -32,3 +38,10 @@ export const getDataTask = async ({ params, pagination }) => { return response.data.data; }; +const getScreenData = (id) => { + const response = ProcessMaker.apiClient.get(`screens/${id}`); + + return response; +}; + +export { getData, getDataTask, getScreenData }; diff --git a/resources/jscomposition/cases/casesDetail/components/CaseDetail.vue b/resources/jscomposition/cases/casesDetail/components/CaseDetail.vue index b568e843a3..d244d7550e 100644 --- a/resources/jscomposition/cases/casesDetail/components/CaseDetail.vue +++ b/resources/jscomposition/cases/casesDetail/components/CaseDetail.vue @@ -1,7 +1,8 @@ diff --git a/resources/jscomposition/cases/casesDetail/components/DisplayForm.vue b/resources/jscomposition/cases/casesDetail/components/DisplayForm.vue new file mode 100644 index 0000000000..3ffb06bc86 --- /dev/null +++ b/resources/jscomposition/cases/casesDetail/components/DisplayForm.vue @@ -0,0 +1,44 @@ + + + diff --git a/resources/jscomposition/cases/casesDetail/components/EllipsisMenu.vue b/resources/jscomposition/cases/casesDetail/components/EllipsisMenu.vue new file mode 100644 index 0000000000..4376c3bf79 --- /dev/null +++ b/resources/jscomposition/cases/casesDetail/components/EllipsisMenu.vue @@ -0,0 +1,54 @@ + + + diff --git a/resources/jscomposition/cases/casesDetail/components/TaskTable.vue b/resources/jscomposition/cases/casesDetail/components/TaskTable.vue index fd5689f016..60276e8a0a 100644 --- a/resources/jscomposition/cases/casesDetail/components/TaskTable.vue +++ b/resources/jscomposition/cases/casesDetail/components/TaskTable.vue @@ -5,14 +5,16 @@ :columns="columnsConfig" :data="data" class="tw-grow tw-overflow-y-scroll tw-overflow-hidden" - @changeFilter="onChangeFilter" /> + @changeFilter="onChangeFilter" + /> + @go="onGo" + /> @@ -27,7 +29,7 @@ const data = ref(null); const columnsConfig = ref(null); const dataPagination = ref({ total: 153, - page: 0, + page: 1, pages: 10, perPage: 15, }); diff --git a/resources/jscomposition/cases/casesDetail/config/columns.js b/resources/jscomposition/cases/casesDetail/config/columns.js index a3be35c151..bd462cf035 100644 --- a/resources/jscomposition/cases/casesDetail/config/columns.js +++ b/resources/jscomposition/cases/casesDetail/config/columns.js @@ -1,13 +1,14 @@ import { StatusCell, LinkCell, + CollapseFormCell, } from "../../../system/index"; export default {}; // Column for Task const taskNumberColumn = () => ({ - field: "id", + field: "case_number", header: "Tasks #", resizable: true, width: 200, @@ -114,6 +115,22 @@ const startedColumn = () => ({ width: 200, }); +const completedDateColumn = () => ({ + field: "completed_date", + header: "Completed Date", + resizable: true, + width: 200, +}); + +const actionColumn = () => ({ + field: "", + header: "", + resizable: false, + width: 50, + cellRenderer: () => CollapseFormCell, + params: {}, +}); + export const getColumns = (type) => { const columns = { tasks: [ @@ -130,6 +147,15 @@ export const getColumns = (type) => { statusColumn(), startedColumn(), ], + completed_forms: [ + actionColumn(), + taskNumberColumn(), + taskNameColumn(), + processNameColumn(), + assignedColumn(), + completedDateColumn(), + dueDateColumn(), + ], }; return columns[type]; diff --git a/resources/jscomposition/system/table/cell/CollapseFormCell.vue b/resources/jscomposition/system/table/cell/CollapseFormCell.vue new file mode 100644 index 0000000000..ab2d971895 --- /dev/null +++ b/resources/jscomposition/system/table/cell/CollapseFormCell.vue @@ -0,0 +1,49 @@ + + + diff --git a/resources/jscomposition/system/table/cell/index.js b/resources/jscomposition/system/table/cell/index.js index 5af39e9029..218f02f1da 100644 --- a/resources/jscomposition/system/table/cell/index.js +++ b/resources/jscomposition/system/table/cell/index.js @@ -3,6 +3,7 @@ import TruncatedOptionsCell from "./TruncatedOptionsCell.vue"; import StatusCell from "./StatusCell.vue"; import CaseTitleCell from "./CaseTitleCell.vue"; import LinkCell from "./LinkCell.vue"; +import CollapseFormCell from "./CollapseFormCell.vue"; export { ParticipantsCell, @@ -10,4 +11,5 @@ export { StatusCell, CaseTitleCell, LinkCell, + CollapseFormCell, };