PMCORE-3519: process category in my cases

This commit is contained in:
Henry Jordan
2021-11-19 19:53:07 +00:00
committed by Paula Quispe
parent 731a4f2e41
commit e5b221c877
14 changed files with 676 additions and 403 deletions

View File

@@ -1,81 +1,89 @@
<template> <template>
<div> <div>
<SearchPopover <SearchPopover
target="popover-target-1" target="popover-target-1"
@savePopover="onOk" @savePopover="onOk"
:title="addSearchTitle" :title="addSearchTitle"
> >
<template v-slot:body> <template v-slot:body>
<b-form-group> <b-form-group>
<b-form-radio-group <b-form-radio-group
v-model="selected" v-model="selected"
:options="criteriaItems" :options="criteriaItems"
value-field="id" value-field="id"
text-field="optionLabel" text-field="optionLabel"
name="flavour-2a" name="flavour-2a"
stacked stacked
></b-form-radio-group> ></b-form-radio-group>
<b-form-group> <b-form-group> </b-form-group>
</b-form-group> <b-form-checkbox
<b-form-checkbox id="checkbox-1"
id="checkbox-1" v-model="byProcessName"
v-model="byProcessName" name="checkbox-1"
name="checkbox-1" value="processName"
value="processName" >
> {{ $t("ID_BY_PROCESS_NAME") }}
{{$t('ID_BY_PROCESS_NAME') }} </b-form-checkbox>
</b-form-checkbox> <b-form-checkbox
</b-form-group> id="checkbox-2"
</template> v-model="byProcessCategory"
</SearchPopover> name="checkbox-2"
value="processCategory"
<div class="p-1 v-flex"> >
<h5 class="v-search-title">{{ title }}</h5> {{ $t("ID_BY_PROCESS_CATEGORY") }}
<div class="pm-in-text-icon"> </b-form-checkbox>
<i :class="icon"></i> </b-form-group>
</div>
<b-input-group class="w-75 p-1">
<div class="input-group mb-3">
<div class="input-group-prepend">
<span
class="input-group-text bg-primary-pm text-white"
id="popover-target-1"
@click="searchClickHandler"
>
<b-icon icon="search"></b-icon
></span>
</div>
<b-form-tags input-id="tags-pills" v-model="searchTags">
<template v-slot="{ tags, tagVariant, removeTag }">
<div class="d-inline-block" style="font-size: 1rem">
<b-form-tag
v-for="tag in tags"
@remove="customRemove(removeTag, tag)"
:key="tag"
:title="tag"
:variant="tagVariant"
class="mr-1 badge badge-light"
>
<div :id="tag">
<i class="fas fa-tags"></i>
{{ tagContent(tag) }}
</div>
<component
v-bind:is="tagComponent(tag)"
v-bind:info="tagInfo(tag)"
v-bind:tag="tag"
v-bind:filter="dataToFilter(tag)"
@updateSearchTag="updateSearchTag"
/>
</b-form-tag>
</div>
</template> </template>
</b-form-tags> </SearchPopover>
<div class="p-1 v-flex">
<h5 class="v-search-title">{{ title }}</h5>
<div class="pm-in-text-icon">
<i :class="icon"></i>
</div>
<b-input-group class="w-75 p-1">
<div class="input-group mb-3">
<div class="input-group-prepend">
<span
class="input-group-text bg-primary-pm text-white"
id="popover-target-1"
@click="searchClickHandler"
>
<b-icon icon="search"></b-icon
></span>
</div>
<b-form-tags input-id="tags-pills" v-model="searchTags">
<template v-slot="{ tags, tagVariant, removeTag }">
<div class="d-inline-block" style="font-size: 1rem">
<b-form-tag
v-for="tag in tags"
@remove="customRemove(removeTag, tag)"
:key="tag"
:title="tag"
:variant="tagVariant"
class="mr-1 badge badge-light"
>
<div :id="tag">
<i class="fas fa-tags"></i>
{{ tagContent(tag) }}
</div>
<component
:filters="filters"
v-bind:is="tagComponent(tag)"
v-bind:info="tagInfo(tag)"
v-bind:tag="tag"
v-bind:filter="dataToFilter(tag)"
@updateSearchTag="updateSearchTag"
/>
</b-form-tag>
</div>
</template>
</b-form-tags>
</div>
</b-input-group>
</div> </div>
</b-input-group>
</div> </div>
</div>
</template> </template>
<script> <script>
@@ -83,376 +91,469 @@ import SearchPopover from "./popovers/SearchPopover.vue";
import CaseNumber from "./popovers/CaseNumber.vue"; import CaseNumber from "./popovers/CaseNumber.vue";
import CaseTitle from "./popovers/CaseTitle.vue"; import CaseTitle from "./popovers/CaseTitle.vue";
import ProcessName from "./popovers/ProcessName.vue"; import ProcessName from "./popovers/ProcessName.vue";
import ProcessCategory from "./popovers/ProcessCategory.vue";
import DateFilter from "./popovers/DateFilter.vue"; import DateFilter from "./popovers/DateFilter.vue";
import TaskTitle from "./popovers/TaskTitle.vue"; import TaskTitle from "./popovers/TaskTitle.vue";
import CurrentUser from "./popovers/CurrentUser.vue"; import CurrentUser from "./popovers/CurrentUser.vue";
import api from "./../../api/index"; import api from "./../../api/index";
export default { export default {
name: "Cases", name: "Cases",
props: ["filters", "title", "icon" , "hiddenItems"], props: ["filters", "title", "icon", "hiddenItems"],
components: { components: {
SearchPopover, SearchPopover,
CaseNumber, CaseNumber,
CaseTitle, CaseTitle,
ProcessName, ProcessName,
DateFilter, ProcessCategory,
TaskTitle, DateFilter,
CurrentUser TaskTitle,
}, CurrentUser,
data() { },
return { data() {
searchLabel: this.$i18n.t("ID_SEARCH"), return {
addSearchTitle: this.$i18n.t("ID_ADD_SEARCH_FILTER_CRITERIA"), searchLabel: this.$i18n.t("ID_SEARCH"),
searchTags: [], addSearchTitle: this.$i18n.t("ID_ADD_SEARCH_FILTER_CRITERIA"),
dataLoaded: false, searchTags: [],
filterItems: [ dataLoaded: false,
{ filterItems: [
type: "CaseNumber", {
id: "caseNumber", type: "CaseNumber",
title: `${this.$i18n.t("ID_FILTER")}: ${this.$i18n.t( id: "caseNumber",
"ID_BY_CASE_NUMBER" title: `${this.$i18n.t("ID_FILTER")}: ${this.$i18n.t(
)}`, "ID_BY_CASE_NUMBER"
optionLabel: this.$i18n.t("ID_BY_CASE_NUMBER"), )}`,
detail: this.$i18n.t("ID_PLEASE_SET_THE_CASE_NUMBER_TO_BE_SEARCHED"), optionLabel: this.$i18n.t("ID_BY_CASE_NUMBER"),
tagText: "", detail: this.$i18n.t(
tagPrefix: this.$i18n.t("ID_SEARCH_BY_CASE_NUMBER"), "ID_PLEASE_SET_THE_CASE_NUMBER_TO_BE_SEARCHED"
items: [ ),
{ tagText: "",
id: "filterCases", tagPrefix: this.$i18n.t("ID_SEARCH_BY_CASE_NUMBER"),
value: "", items: [
{
id: "filterCases",
value: "",
},
],
autoShow: true,
makeTagText: function(params, data) {
return `${params.tagPrefix}: ${data[0].value}`;
}, },
],
autoShow: true,
makeTagText: function (params, data) {
return `${params.tagPrefix}: ${data[0].value}`;
}, },
}, {
{ type: "CaseTitle",
type: "CaseTitle", id: "caseTitle",
id: "caseTitle", title: `${this.$i18n.t("ID_FILTER")}: ${this.$i18n.t(
title: `${this.$i18n.t("ID_FILTER")}: ${this.$i18n.t( "ID_BY_CASE_THREAD_TITLE"
"ID_BY_CASE_THREAD_TITLE" )}`,
)}`, optionLabel: this.$i18n.t("ID_BY_CASE_THREAD_TITLE"),
optionLabel: this.$i18n.t("ID_BY_CASE_THREAD_TITLE"), tagPrefix: this.$i18n.t("ID_SEARCH_BY_CASE_THREAD_TITLE"),
tagPrefix: this.$i18n.t("ID_SEARCH_BY_CASE_THREAD_TITLE"), detail: "",
detail: "", tagText: "",
tagText: "", items: [
items: [ {
{ id: "caseTitle",
id: "caseTitle", value: "",
value: "", },
],
autoShow: true,
makeTagText: function(params, data) {
return `${this.tagPrefix} ${data[0].value}`;
}, },
],
autoShow: true,
makeTagText: function (params, data) {
return `${this.tagPrefix} ${data[0].value}`;
}, },
}, {
{ type: "DateFilter",
type: "DateFilter", id: "delegationDate",
id: "delegationDate", title: `${this.$i18n.t("ID_FILTER")}: ${this.$i18n.t(
title: `${this.$i18n.t('ID_FILTER')}: ${this.$i18n.t('ID_BY_DELEGATION_DATE')}`, "ID_BY_DELEGATION_DATE"
optionLabel: this.$i18n.t('ID_BY_DELEGATION_DATE'), )}`,
detail: this.$i18n.t('ID_PLEASE_SELECT_THE_DELEGATION_DATE_TO_BE_SEARCHED'), optionLabel: this.$i18n.t("ID_BY_DELEGATION_DATE"),
tagText: "", detail: this.$i18n.t(
tagPrefix: this.$i18n.t('ID_SEARCH_BY_DELEGATION_DATE'), "ID_PLEASE_SELECT_THE_DELEGATION_DATE_TO_BE_SEARCHED"
items:[ ),
{ tagText: "",
id: "delegateFrom", tagPrefix: this.$i18n.t("ID_SEARCH_BY_DELEGATION_DATE"),
value: "", items: [
label: this.$i18n.t('ID_FROM_DELEGATION_DATE') {
id: "delegateFrom",
value: "",
label: this.$i18n.t("ID_FROM_DELEGATION_DATE"),
},
{
id: "delegateTo",
value: "",
label: this.$i18n.t("ID_TO_DELEGATION_DATE"),
},
],
makeTagText: function(params, data) {
return `${params.tagPrefix} ${data[0].value} - ${data[1].value}`;
}, },
{
id: "delegateTo",
value: "",
label: this.$i18n.t('ID_TO_DELEGATION_DATE')
}
],
makeTagText: function (params, data) {
return `${params.tagPrefix} ${data[0].value} - ${data[1].value}`;
}
},
{
type: "CurrentUser",
id: "bySendBy",
title: `${this.$i18n.t('ID_FILTER')}: ${this.$i18n.t('ID_BY_SEND_BY')}`,
optionLabel: this.$i18n.t('ID_BY_SEND_BY'),
detail: this.$i18n.t('ID_PLEASE_SELECT_USER_NAME_TO_BE_SEARCHED'),
placeholder: this.$i18n.t('ID_USER_NAME'),
tagText: "",
tagPrefix: this.$i18n.t('ID_SEARCH_BY_SEND_BY'),
autoShow: true,
items:[
{
id: "sendBy",
value: "",
options: [],
placeholder: this.$i18n.t('ID_USER_NAME')
}
],
makeTagText: function (params, data) {
return `${params.tagPrefix} : ${data[0].label || ''}`;
}
},
{
type: "TaskTitle",
id: "taskTitle",
title: `${this.$i18n.t("ID_FILTER")}: ${this.$i18n.t(
"ID_TASK_NAME"
)}`,
optionLabel: this.$i18n.t("ID_BY_TASK"),
detail: "",
tagText: "",
tagPrefix: this.$i18n.t("ID_SEARCH_BY_TASK_NAME"),
autoShow: true,
items: [
{
id: "task",
value: "",
options: [],
placeholder: this.$i18n.t("ID_TASK_NAME"),
},
],
makeTagText: function (params, data) {
return `${this.tagPrefix}: ${data[0].label || ""}`;
}, },
}, {
], type: "CurrentUser",
processName: { id: "bySendBy",
title: `${this.$i18n.t("ID_FILTER")}: ${this.$i18n.t(
"ID_BY_SEND_BY"
)}`,
optionLabel: this.$i18n.t("ID_BY_SEND_BY"),
detail: this.$i18n.t(
"ID_PLEASE_SELECT_USER_NAME_TO_BE_SEARCHED"
),
placeholder: this.$i18n.t("ID_USER_NAME"),
tagText: "",
tagPrefix: this.$i18n.t("ID_SEARCH_BY_SEND_BY"),
autoShow: true,
items: [
{
id: "sendBy",
value: "",
options: [],
placeholder: this.$i18n.t("ID_USER_NAME"),
},
],
makeTagText: function(params, data) {
return `${params.tagPrefix} : ${data[0].label || ""}`;
},
},
{
type: "TaskTitle",
id: "taskTitle",
title: `${this.$i18n.t("ID_FILTER")}: ${this.$i18n.t(
"ID_TASK_NAME"
)}`,
optionLabel: this.$i18n.t("ID_BY_TASK"),
detail: "",
tagText: "",
tagPrefix: this.$i18n.t("ID_SEARCH_BY_TASK_NAME"),
autoShow: true,
items: [
{
id: "task",
value: "",
options: [],
placeholder: this.$i18n.t("ID_TASK_NAME"),
},
],
makeTagText: function(params, data) {
return `${this.tagPrefix}: ${data[0].label || ""}`;
},
},
],
processName: {
type: "ProcessName", type: "ProcessName",
id: "processName", id: "processName",
title: `${this.$i18n.t('ID_FILTER')}: ${this.$i18n.t('ID_BY_PROCESS_NAME')}`, title: `${this.$i18n.t("ID_FILTER")}: ${this.$i18n.t(
optionLabel: this.$i18n.t('ID_BY_PROCESS_NAME'), "ID_BY_PROCESS_NAME"
)}`,
optionLabel: this.$i18n.t("ID_BY_PROCESS_NAME"),
detail: "", detail: "",
tagText: "", tagText: "",
tagPrefix: this.$i18n.t('ID_SEARCH_BY_PROCESS_NAME'), tagPrefix: this.$i18n.t("ID_SEARCH_BY_PROCESS_NAME"),
autoShow: true, autoShow: true,
items:[ items: [
{ {
id: "process", id: "process",
value: "", value: "",
options: [], options: [],
placeholder: this.$i18n.t('ID_PROCESS_NAME') placeholder: this.$i18n.t("ID_PROCESS_NAME"),
} },
], ],
makeTagText: function (params, data) { makeTagText: function(params, data) {
return `${this.tagPrefix} ${data[0].options && data[0].options.label || ''}`; return `${this.tagPrefix} ${(data[0].options &&
data[0].options.label) ||
""}`;
},
},
processCategory: {
type: "ProcessCategory",
id: "processCategory",
title: `${this.$i18n.t("ID_FILTER")}: ${this.$i18n.t(
"ID_BY_PROCESS_CATEGORY"
)}`,
optionLabel: this.$i18n.t("ID_BY_PROCESS_CATEGORY"),
detail: "",
tagText: "",
tagPrefix: this.$i18n.t("ID_SEARCH_BY_PROCESS_CATEGORY"),
autoShow: true,
items: [
{
id: "category",
value: "",
options: [],
placeholder: "",
},
],
makeTagText: function(params, data) {
return `${params.tagPrefix}: ${data[0].label || ""}`;
},
},
selected: "",
itemModel: {},
byProcessName: "",
byProcessCategory: "",
};
},
computed: {
// a computed getter
criteriaItems: function() {
let found,
criteria = [];
if (this.hiddenItems && this.hiddenItems.length) {
this.filterItems.forEach((item) => {
found = this.hiddenItems.find((elem) => elem !== item.id);
if (found) {
criteria.push(item);
}
});
return criteria;
} else {
return this.filterItems;
}
},
},
mounted() {},
watch: {
filters: {
immediate: true,
handler(newVal, oldVal) {
this.searchTags = [];
this.selected = [];
//Prevent show popover at the first time
if (newVal.length) {
this.setFilters(newVal, oldVal);
this.searchClickHandler();
} }
}, },
selected: "", },
itemModel: {}, },
byProcessName: "" methods: {
}; /**
}, * Add filter criteria save button handler
computed: { */
// a computed getter onOk() {
criteriaItems: function () { let self = this,
let found, element,
criteria = []; initialFilters = [],
if (this.hiddenItems && this.hiddenItems.length) { item;
this.filterItems.forEach(item => { this.$root.$emit("bv::hide::popover");
found = this.hiddenItems.find( elem => elem !== item.id); element = _.find(this.filterItems, function(o) {
if (found) { return o.id === self.selected;
criteria.push(item); });
} if (element) {
}); initialFilters = this.prepareFilterItems(
return criteria; element.items,
} else { this.selected,
return this.filterItems; true
} );
}
},
mounted() {
},
watch: {
filters: {
immediate: true,
handler(newVal, oldVal) {
this.searchTags = [];
this.selected = [];
//Prevent show popover at the first time
if (newVal.length) {
this.setFilters(newVal, oldVal);
this.searchClickHandler();
} }
} //adding process name filter
} if (self.byProcessName !== "") {
}, if (element !== undefined) {
methods: { this.processName.autoShow = false;
/** } else {
* Add filter criteria save button handler this.processName.autoShow = true;
*/ }
onOk() { initialFilters = [
let self = this, ...new Set([
element, ...initialFilters,
initialFilters = [], ...this.prepareFilterItems(
item; this.processName.items,
this.$root.$emit("bv::hide::popover"); self.byProcessName,
element = _.find(this.filterItems, function (o) { true
return o.id === self.selected; ),
}); ]),
if (element) { ];
initialFilters = this.prepareFilterItems(element.items, this.selected, true);
}
//adding process name filter
if (self.byProcessName !== "") {
if (element !== undefined) {
this.processName.autoShow = false;
} else {
this.processName.autoShow = true;
} }
initialFilters =[...new Set([...initialFilters,...this.prepareFilterItems(this.processName.items, self.byProcessName, true)])]; if (self.byProcessCategory !== "") {
} if (element !== undefined) {
this.$emit("onUpdateFilters", {params: initialFilters, refresh: false}); this.processCategory.autoShow = false;
}, } else {
/** this.processCategory.autoShow = true;
* Prepare the filter items }
* @param {array} items initialFilters = [
* @param {id} string ...new Set([
* @param {boolean} restore ...initialFilters,
*/ ...this.prepareFilterItems(
prepareFilterItems(items, id, restore){ this.processCategory.items,
let initialFilters = [], self.byProcessCategory,
self = this, true
filter, ),
item; ]),
_.forEach(items, function(value, key) { ];
filter = _.find(self.filters, function(o) { return o.filterVar === value.id; });
if (filter && restore) {
initialFilters.push(filter);
} else {
item = {
filterVar: value.id,
fieldId: id,
value: '',
label: "",
options: [],
autoShow: true
};
initialFilters.push(item);
} }
}); this.$emit("onUpdateFilters", {
return initialFilters; params: initialFilters,
}, refresh: false,
/** });
* Set Filters and make the tag labels },
* @param {object} filters json to manage the query /**
*/ * Prepare the filter items
setFilters(filters, oldVal) { * @param {array} items
let self = this; * @param {id} string
_.forEach(filters, function (item, key) { * @param {boolean} restore
let component = _.find(self.filterItems, function (o) { */
return o.id === item.fieldId; prepareFilterItems(items, id, restore) {
}); let initialFilters = [],
if (component) { self = this,
self.searchTags.push(component.id); filter,
self.selected = component.id; item;
self.itemModel[component.id] = component; _.forEach(items, function(value, key) {
self.itemModel[component.id].autoShow = typeof item.autoShow !== "undefined" ? item.autoShow : true; filter = _.find(self.filters, function(o) {
} return o.filterVar === value.id;
if(item.fieldId === "processName") { });
self.searchTags.push(self.processName.id); if (filter && restore) {
self.byProcessName = self.processName.id; initialFilters.push(filter);
self.itemModel[self.processName.id] = self.processName; } else {
self.itemModel[self.processName.id].autoShow = typeof item.autoShow !== "undefined" ? item.autoShow : self.processName.autoShow; item = {
} filterVar: value.id,
}); fieldId: id,
}, value: "",
dataToFilter(id) { label: "",
let data = []; options: [],
_.forEach(this.filters, function (item) { autoShow: true,
if (item.fieldId === id) { };
data.push(item); initialFilters.push(item);
} }
}); });
return data; return initialFilters;
}, },
/** /**
* * Set Filters and make the tag labels
*/ * @param {object} filters json to manage the query
tagContent(id) { */
if ( setFilters(filters, oldVal) {
this.itemModel[id] && let self = this;
typeof this.itemModel[id].makeTagText === "function" _.forEach(filters, function(item, key) {
) { let component = _.find(self.filterItems, function(o) {
return this.itemModel[id].makeTagText( return o.id === item.fieldId;
this.itemModel[id], });
this.dataToFilter(id) if (component) {
); self.searchTags.push(component.id);
} self.selected = component.id;
return ""; self.itemModel[component.id] = component;
}, self.itemModel[component.id].autoShow =
tagComponent(id) { typeof item.autoShow !== "undefined"
if (this.itemModel[id]) { ? item.autoShow
return this.itemModel[id].type; : true;
} }
return null; if (item.fieldId === "processName") {
}, self.searchTags.push(self.processName.id);
self.byProcessName = self.processName.id;
self.itemModel[self.processName.id] = self.processName;
self.itemModel[self.processName.id].autoShow =
typeof item.autoShow !== "undefined"
? item.autoShow
: self.processName.autoShow;
}
if (item.fieldId === "processCategory") {
self.searchTags.push(self.processCategory.id);
self.byProcessCategory = self.processCategory.id;
self.itemModel[self.processCategory.id] =
self.processCategory;
self.itemModel[self.processCategory.id].autoShow =
typeof self.processCategory.autoShow !== "undefined"
? self.processCategory.autoShow
: true;
}
});
},
dataToFilter(id) {
let data = [];
_.forEach(this.filters, function(item) {
if (item.fieldId === id) {
data.push(item);
}
});
return data;
},
/**
*
*/
tagContent(id) {
if (
this.itemModel[id] &&
typeof this.itemModel[id].makeTagText === "function"
) {
return this.itemModel[id].makeTagText(
this.itemModel[id],
this.dataToFilter(id)
);
}
return "";
},
tagComponent(id) {
if (this.itemModel[id]) {
return this.itemModel[id].type;
}
return null;
},
tagInfo(id) { tagInfo(id) {
if (this.itemModel[id]) { if (this.itemModel[id]) {
return this.itemModel[id]; return this.itemModel[id];
}
return null;
},
/**
* Remove from tag button
* @param {function} removeTag - default callback
* @param {string} tag filter identifier
*/
customRemove(removeTag, tag) {
let temp = [];
_.forEach(this.filters, function(item, key) {
if(item.fieldId !== tag) {
temp.push(item);
} }
}); return null;
if (tag === "processName") { },
this.byProcessName = ""; /**
} * Remove from tag button
this.$emit("onUpdateFilters", {params: temp, refresh: true}); * @param {function} removeTag - default callback
* @param {string} tag filter identifier
*/
customRemove(removeTag, tag) {
let temp = [];
_.forEach(this.filters, function(item, key) {
if (item.fieldId !== tag) {
temp.push(item);
}
});
if (tag === "processName") {
this.byProcessName = "";
}
if (tag === "processCategory") {
this.byProcessCategory = "";
}
this.$emit("onUpdateFilters", { params: temp, refresh: true });
},
/**
* Update the filter model this is fired from filter popaver save action
* @param {object} params - arrives the settings
* @param {string} tag filter identifier
*/
updateSearchTag(params) {
let temp = this.filters.concat(params);
temp = [...new Set([...this.filters, ...params])];
this.$emit("onUpdateFilters", { params: temp, refresh: true });
},
searchClickHandler() {
this.$root.$emit("bv::hide::popover");
},
}, },
/**
* Update the filter model this is fired from filter popaver save action
* @param {object} params - arrives the settings
* @param {string} tag filter identifier
*/
updateSearchTag(params) {
let temp = this.filters.concat(params);
temp = [...new Set([...this.filters, ...params])];
this.$emit("onUpdateFilters", { params: temp, refresh: true });
},
searchClickHandler() {
this.$root.$emit("bv::hide::popover");
},
},
}; };
</script> </script>
<style scoped> <style scoped>
.bv-example-row .row + .row { .bv-example-row .row + .row {
margin-top: 1rem; margin-top: 1rem;
} }
.bv-example-row-flex-cols .row { .bv-example-row-flex-cols .row {
min-height: 10rem; min-height: 10rem;
} }
.bg-primary-pm { .bg-primary-pm {
background-color: #0099dd; background-color: #0099dd;
} }
.v-flex { .v-flex {
display: flex; display: flex;
} }
.v-search-title { .v-search-title {
padding-right: 10px; padding-right: 10px;
line-height: 40px; line-height: 40px;
} }
.pm-in-text-icon { .pm-in-text-icon {
font-size: 1.40rem; font-size: 1.4rem;
padding-right: 10px; padding-right: 10px;
line-height: 40px; line-height: 40px;
} }
</style> </style>

View File

@@ -6,6 +6,7 @@
:title="addSearchTitle" :title="addSearchTitle"
> >
<template v-slot:body> <template v-slot:body>
<b-form-group> <b-form-group>
<b-form-radio-group <b-form-radio-group
v-model="selected" v-model="selected"
@@ -24,6 +25,15 @@
> >
{{$t('ID_BY_PROCESS_NAME') }} {{$t('ID_BY_PROCESS_NAME') }}
</b-form-checkbox> </b-form-checkbox>
<b-form-checkbox
id="checkbox-2"
v-model="byProcessCategory"
name="checkbox-2"
value="processCategory"
>
{{$t('ID_BY_PROCESS_CATEGORY') }}
</b-form-checkbox>
</template> </template>
</SearchPopover> </SearchPopover>
@@ -61,6 +71,7 @@
</div> </div>
<component <component
:filters="filters"
v-bind:is="tagComponent(tag)" v-bind:is="tagComponent(tag)"
v-bind:info="tagInfo(tag)" v-bind:info="tagInfo(tag)"
v-bind:tag="tag" v-bind:tag="tag"
@@ -82,6 +93,7 @@ import SearchPopover from "./popovers/SearchPopover.vue";
import CaseNumber from "./popovers/CaseNumber.vue"; import CaseNumber from "./popovers/CaseNumber.vue";
import CaseTitle from "./popovers/CaseTitle.vue"; import CaseTitle from "./popovers/CaseTitle.vue";
import ProcessName from "./popovers/ProcessName.vue"; import ProcessName from "./popovers/ProcessName.vue";
import ProcessCategory from "./popovers/ProcessCategory.vue";
import DateFilter from "./popovers/DateFilter.vue"; import DateFilter from "./popovers/DateFilter.vue";
import TaskTitle from "./popovers/TaskTitle.vue"; import TaskTitle from "./popovers/TaskTitle.vue";
import api from "./../../api/index"; import api from "./../../api/index";
@@ -94,6 +106,7 @@ export default {
CaseNumber, CaseNumber,
CaseTitle, CaseTitle,
ProcessName, ProcessName,
ProcessCategory,
DateFilter, DateFilter,
TaskTitle TaskTitle
}, },
@@ -235,9 +248,31 @@ export default {
return `${this.tagPrefix} ${data[0].options && data[0].options.label || ''}`; return `${this.tagPrefix} ${data[0].options && data[0].options.label || ''}`;
} }
}, },
processCategory:{
type: "ProcessCategory",
id: "processCategory",
title: `${this.$i18n.t('ID_FILTER')}: ${this.$i18n.t('ID_BY_PROCESS_CATEGORY')}`,
optionLabel: this.$i18n.t('ID_BY_PROCESS_CATEGORY'),
detail: "",
tagText: "",
tagPrefix: this.$i18n.t('ID_SEARCH_BY_PROCESS_CATEGORY'),
autoShow: true,
items:[
{
id: "category",
value: "",
options: [],
placeholder: ""
}
],
makeTagText: function (params, data) {
return `${params.tagPrefix}: ${data[0].label || ''}`;
}
},
selected: "", selected: "",
itemModel: {}, itemModel: {},
byProcessName: "" byProcessName: "",
byProcessCategory: "",
}; };
}, },
mounted() { mounted() {
@@ -284,6 +319,15 @@ export default {
} }
initialFilters =[...new Set([...initialFilters,...this.prepareFilterItems(this.processName.items, self.byProcessName, true)])]; initialFilters =[...new Set([...initialFilters,...this.prepareFilterItems(this.processName.items, self.byProcessName, true)])];
} }
//adding process name filter
if (self.byProcessCategory !== "") {
if (element !== undefined) {
this.processCategory.autoShow = false;
} else {
this.processCategory.autoShow = true;
}
initialFilters =[...new Set([...initialFilters,...this.prepareFilterItems(this.processCategory.items, self.byProcessCategory, true)])];
}
this.$emit("onUpdateFilters", {params: initialFilters, refresh: false}); this.$emit("onUpdateFilters", {params: initialFilters, refresh: false});
}, },
/** /**
@@ -334,6 +378,12 @@ export default {
self.itemModel[self.processName.id] = self.processName; self.itemModel[self.processName.id] = self.processName;
self.itemModel[self.processName.id].autoShow = typeof self.processName.autoShow !== "undefined" ? self.processName.autoShow : true; self.itemModel[self.processName.id].autoShow = typeof self.processName.autoShow !== "undefined" ? self.processName.autoShow : true;
} }
if(item.fieldId === "processCategory") {
self.searchTags.push(self.processCategory.id);
self.byProcessCategory = self.processCategory.id;
self.itemModel[self.processCategory.id] = self.processCategory;
self.itemModel[self.processCategory.id].autoShow = typeof self.processCategory.autoShow !== "undefined" ? self.processCategory.autoShow : true;
}
}); });
}, },
dataToFilter(id) { dataToFilter(id) {
@@ -382,6 +432,9 @@ export default {
if (tag === "processName") { if (tag === "processName") {
this.byProcessName = ""; this.byProcessName = "";
} }
if (tag === "processCategory") {
this.byProcessCategory = "";
}
this.$emit("onUpdateFilters", {params: temp, refresh: true}); this.$emit("onUpdateFilters", {params: temp, refresh: true});
}, },
/** /**

View File

@@ -38,6 +38,7 @@
import SearchPopover from "./SearchPopover.vue"; import SearchPopover from "./SearchPopover.vue";
import Multiselect from "vue-multiselect"; import Multiselect from "vue-multiselect";
import api from "./../../../api/index"; import api from "./../../../api/index";
import _ from "lodash";
export default { export default {
components: { components: {
@@ -57,11 +58,16 @@ export default {
* @param {string} query - string from the text field * @param {string} query - string from the text field
*/ */
asyncFind(query) { asyncFind(query) {
let self = this; let self = this,
cat = this.verifyCategory(),
params = { text: query };
this.isLoading = true; this.isLoading = true;
if (cat) {
params.category = cat;
}
self.processes = []; self.processes = [];
api.filters api.filters
.processList(query) .processListPaged(params)
.then((response) => { .then((response) => {
self.processes = []; self.processes = [];
_.forEach(response.data, function(elem, key) { _.forEach(response.data, function(elem, key) {
@@ -76,6 +82,13 @@ export default {
console.error(err); console.error(err);
}); });
}, },
verifyCategory() {
let cat = _.find(
this.$attrs.filters,
(o) => o.fieldId == "processCategory"
);
return cat ? cat.value : null;
},
/** /**
* Form validations review * Form validations review
*/ */

View File

@@ -52,6 +52,9 @@
<div slot="process_name" slot-scope="props"> <div slot="process_name" slot-scope="props">
{{ props.row.PROCESS_NAME }} {{ props.row.PROCESS_NAME }}
</div> </div>
<div slot="process_category" slot-scope="props">
{{ props.row.PROCESS_CATEGORY }}
</div>
<div slot="task" slot-scope="props"> <div slot="task" slot-scope="props">
<TaskCell :data="props.row.TASK" /> <TaskCell :data="props.row.TASK" />
</div> </div>
@@ -143,6 +146,7 @@ export default {
columns: [ columns: [
"case_number", "case_number",
"process_name", "process_name",
"process_category",
"status", "status",
"thread_title", "thread_title",
"task", "task",
@@ -158,6 +162,7 @@ export default {
headings: { headings: {
case_number: this.$i18n.t("ID_MYCASE_NUMBER"), case_number: this.$i18n.t("ID_MYCASE_NUMBER"),
process_name: this.$i18n.t("ID_PROCESS_NAME"), process_name: this.$i18n.t("ID_PROCESS_NAME"),
process_category: this.$i18n.t("ID_PROCESS_CATEGORY"),
status: this.$i18n.t("ID_STATUS"), status: this.$i18n.t("ID_STATUS"),
thread_title: this.$i18n.t('ID_CASE_THREAD_TITLE'), thread_title: this.$i18n.t('ID_CASE_THREAD_TITLE'),
task: this.$i18n.t("ID_TASK"), task: this.$i18n.t("ID_TASK"),
@@ -296,6 +301,7 @@ export default {
CASE_NUMBER: v.APP_NUMBER, CASE_NUMBER: v.APP_NUMBER,
THREAD_TITLE: v.THREAD_TITLES, THREAD_TITLE: v.THREAD_TITLES,
PROCESS_NAME: v.PRO_TITLE, PROCESS_NAME: v.PRO_TITLE,
PROCESS_CATEGORY: v.CATEGORY,
TASK: this.formatTasks(v.THREAD_TASKS), TASK: this.formatTasks(v.THREAD_TASKS),
USER_DATA: this.formatUser(v.THREAD_USERS), USER_DATA: this.formatUser(v.THREAD_USERS),
START_DATE: v.APP_CREATE_DATE_LABEL, START_DATE: v.APP_CREATE_DATE_LABEL,

View File

@@ -54,6 +54,9 @@
<div slot="process_name" slot-scope="props"> <div slot="process_name" slot-scope="props">
{{ props.row.PROCESS_NAME }} {{ props.row.PROCESS_NAME }}
</div> </div>
<div slot="process_category" slot-scope="props">
{{ props.row.PROCESS_CATEGORY }}
</div>
<div slot="task" slot-scope="props"> <div slot="task" slot-scope="props">
<TaskCell :data="props.row.TASK" /> <TaskCell :data="props.row.TASK" />
</div> </div>
@@ -104,6 +107,14 @@
>{{ props["item"]["PROCESS_NAME"] }} >{{ props["item"]["PROCESS_NAME"] }}
</span> </span>
</div> </div>
<div slot="process_category" slot-scope="props" class="v-card-text">
<span class="v-card-text-dark"
>{{ props["headings"][props.column] }} :</span
>
<span class="v-card-text-light"
>{{ props["item"]["PROCESS_CATEGORY"] }}
</span>
</div>
<div slot="due_date" slot-scope="props" class="v-card-text"> <div slot="due_date" slot-scope="props" class="v-card-text">
<span class="v-card-text-dark" <span class="v-card-text-dark"
>{{ props["headings"][props.column] }} :</span >{{ props["headings"][props.column] }} :</span
@@ -178,6 +189,14 @@
>{{ props["item"]["PROCESS_NAME"] }} >{{ props["item"]["PROCESS_NAME"] }}
</span> </span>
</div> </div>
<div slot="process_category" slot-scope="props" class="v-card-text">
<span class="v-card-text-dark"
>{{ props["headings"][props.column] }} :</span
>
<span class="v-card-text-light"
>{{ props["item"]["PROCESS_CATEGORY"] }}
</span>
</div>
<div slot="due_date" slot-scope="props" class="v-card-text"> <div slot="due_date" slot-scope="props" class="v-card-text">
<span class="v-card-text-dark" <span class="v-card-text-dark"
>{{ props["headings"][props.column] }} :</span >{{ props["headings"][props.column] }} :</span
@@ -296,6 +315,7 @@ export default {
case_number: this.$i18n.t("ID_MYCASE_NUMBER"), case_number: this.$i18n.t("ID_MYCASE_NUMBER"),
thread_title: this.$i18n.t('ID_CASE_THREAD_TITLE'), thread_title: this.$i18n.t('ID_CASE_THREAD_TITLE'),
process_name: this.$i18n.t("ID_PROCESS_NAME"), process_name: this.$i18n.t("ID_PROCESS_NAME"),
process_category: this.$i18n.t("ID_PROCESS_CATEGORY"),
task: this.$i18n.t("ID_TASK"), task: this.$i18n.t("ID_TASK"),
priority: this.$i18n.t("ID_PRIORITY"), priority: this.$i18n.t("ID_PRIORITY"),
actions: "" actions: ""
@@ -523,6 +543,7 @@ export default {
CASE_NUMBER: v.APP_NUMBER, CASE_NUMBER: v.APP_NUMBER,
THREAD_TITLE: v.DEL_TITLE, THREAD_TITLE: v.DEL_TITLE,
PROCESS_NAME: v.PRO_TITLE, PROCESS_NAME: v.PRO_TITLE,
PROCESS_CATEGORY: v.CATEGORY,
TASK: [{ TASK: [{
TITLE: v.TAS_TITLE, TITLE: v.TAS_TITLE,
CODE_COLOR: v.TAS_COLOR, CODE_COLOR: v.TAS_COLOR,

View File

@@ -54,6 +54,7 @@ export default {
case_number: this.$i18n.t("ID_MYCASE_NUMBER"), case_number: this.$i18n.t("ID_MYCASE_NUMBER"),
thread_title: this.$i18n.t('ID_CASE_THREAD_TITLE'), thread_title: this.$i18n.t('ID_CASE_THREAD_TITLE'),
process_name: this.$i18n.t("ID_PROCESS_NAME"), process_name: this.$i18n.t("ID_PROCESS_NAME"),
process_category: this.$i18n.t("ID_PROCESS_CATEGORY"),
task: this.$i18n.t("ID_TASK"), task: this.$i18n.t("ID_TASK"),
current_user: this.$i18n.t("ID_CURRENT_USER"), current_user: this.$i18n.t("ID_CURRENT_USER"),
due_date: this.$i18n.t("ID_DUE_DATE"), due_date: this.$i18n.t("ID_DUE_DATE"),

View File

@@ -49,7 +49,9 @@
<div slot="process_name" slot-scope="props"> <div slot="process_name" slot-scope="props">
{{ props.row.PROCESS_NAME }} {{ props.row.PROCESS_NAME }}
</div> </div>
<div slot="process_category" slot-scope="props">
{{ props.row.PROCESS_CATEGORY }}
</div>
<div slot="task" slot-scope="props"> <div slot="task" slot-scope="props">
<TaskCell :data="props.row.TASK" /> <TaskCell :data="props.row.TASK" />
</div> </div>
@@ -117,6 +119,14 @@
>{{ props["item"]["PROCESS_NAME"] }} >{{ props["item"]["PROCESS_NAME"] }}
</span> </span>
</div> </div>
<div slot="process_category" slot-scope="props" class="v-card-text">
<span class="v-card-text-dark"
>{{ props["headings"][props.column] }} :</span
>
<span class="v-card-text-light"
>{{ props["item"]["PROCESS_CATEGORY"] }}
</span>
</div>
<div slot="due_date" slot-scope="props" class="v-card-text"> <div slot="due_date" slot-scope="props" class="v-card-text">
<span class="v-card-text-dark" <span class="v-card-text-dark"
>{{ props["headings"][props.column] }} :</span >{{ props["headings"][props.column] }} :</span
@@ -203,6 +213,14 @@
>{{ props["item"]["PROCESS_NAME"] }} >{{ props["item"]["PROCESS_NAME"] }}
</span> </span>
</div> </div>
<div slot="process_category" slot-scope="props" class="v-card-text">
<span class="v-card-text-dark"
>{{ props["headings"][props.column] }} :</span
>
<span class="v-card-text-light"
>{{ props["item"]["PROCESS_CATEGORY"] }}
</span>
</div>
<div slot="due_date" slot-scope="props" class="v-card-text"> <div slot="due_date" slot-scope="props" class="v-card-text">
<span class="v-card-text-dark" <span class="v-card-text-dark"
>{{ props["headings"][props.column] }} :</span >{{ props["headings"][props.column] }} :</span
@@ -343,6 +361,7 @@ export default {
case_number: this.$i18n.t("ID_MYCASE_NUMBER"), case_number: this.$i18n.t("ID_MYCASE_NUMBER"),
thread_title: this.$i18n.t('ID_CASE_THREAD_TITLE'), thread_title: this.$i18n.t('ID_CASE_THREAD_TITLE'),
process_name: this.$i18n.t("ID_PROCESS_NAME"), process_name: this.$i18n.t("ID_PROCESS_NAME"),
process_category: this.$i18n.t("ID_PROCESS_CATEGORY"),
task: this.$i18n.t("ID_TASK"), task: this.$i18n.t("ID_TASK"),
send_by: this.$i18n.t("ID_SEND_BY"), send_by: this.$i18n.t("ID_SEND_BY"),
due_date: this.$i18n.t("ID_DUE_DATE"), due_date: this.$i18n.t("ID_DUE_DATE"),
@@ -574,6 +593,7 @@ export default {
CASE_NUMBER: v.APP_NUMBER, CASE_NUMBER: v.APP_NUMBER,
THREAD_TITLE: v.DEL_TITLE, THREAD_TITLE: v.DEL_TITLE,
PROCESS_NAME: v.PRO_TITLE, PROCESS_NAME: v.PRO_TITLE,
PROCESS_CATEGORY: v.CATEGORY,
TASK: [ TASK: [
{ {
TITLE: v.TAS_TITLE, TITLE: v.TAS_TITLE,

View File

@@ -54,6 +54,7 @@ export default {
case_number: this.$i18n.t("ID_MYCASE_NUMBER"), case_number: this.$i18n.t("ID_MYCASE_NUMBER"),
thread_title: this.$i18n.t('ID_CASE_THREAD_TITLE'), thread_title: this.$i18n.t('ID_CASE_THREAD_TITLE'),
process_name: this.$i18n.t("ID_PROCESS_NAME"), process_name: this.$i18n.t("ID_PROCESS_NAME"),
process_category: this.$i18n.t("ID_PROCESS_CATEGORY"),
task: this.$i18n.t("ID_TASK"), task: this.$i18n.t("ID_TASK"),
send_by: this.$i18n.t("ID_SEND_BY"), send_by: this.$i18n.t("ID_SEND_BY"),
current_user: this.$i18n.t("ID_CURRENT_USER"), current_user: this.$i18n.t("ID_CURRENT_USER"),
@@ -65,6 +66,7 @@ export default {
"case_number", "case_number",
"thread_title", "thread_title",
"process_name", "process_name",
"process_category",
"due_date", "due_date",
"delegation_date", "delegation_date",
"priority", "priority",

View File

@@ -50,6 +50,9 @@
<div slot="process_name" slot-scope="props"> <div slot="process_name" slot-scope="props">
{{ props.row.PROCESS_NAME }} {{ props.row.PROCESS_NAME }}
</div> </div>
<div slot="process_category" slot-scope="props">
{{ props.row.PROCESS_CATEGORY }}
</div>
<div slot="pending_taks" slot-scope="props"> <div slot="pending_taks" slot-scope="props">
<GroupedCell :data="props.row.PENDING_TASKS" /> <GroupedCell :data="props.row.PENDING_TASKS" />
</div> </div>
@@ -161,6 +164,7 @@ export default {
headings: { headings: {
case_number: this.$i18n.t("ID_MYCASE_NUMBER"), case_number: this.$i18n.t("ID_MYCASE_NUMBER"),
process_name: this.$i18n.t("ID_PROCESS_NAME"), process_name: this.$i18n.t("ID_PROCESS_NAME"),
process_category: this.$i18n.t("ID_PROCESS_CATEGORY"),
thread_title: this.$i18n.t('ID_CASE_THREAD_TITLE'), thread_title: this.$i18n.t('ID_CASE_THREAD_TITLE'),
pending_taks: this.$i18n.t("ID_PENDING_TASKS"), pending_taks: this.$i18n.t("ID_PENDING_TASKS"),
status: this.$i18n.t("ID_CASESLIST_APP_STATUS"), status: this.$i18n.t("ID_CASESLIST_APP_STATUS"),
@@ -454,6 +458,8 @@ export default {
CASE_NUMBER: v.APP_NUMBER, CASE_NUMBER: v.APP_NUMBER,
THREAD_TITLE: v.THREAD_TITLES, THREAD_TITLE: v.THREAD_TITLES,
PROCESS_NAME: v.PRO_TITLE, PROCESS_NAME: v.PRO_TITLE,
PROCESS_NAME: v.PRO_TITLE,
PROCESS_CATEGORY: v.CATEGORY,
STATUS: v.APP_STATUS, STATUS: v.APP_STATUS,
START_DATE: v.APP_CREATE_DATE_LABEL || "", START_DATE: v.APP_CREATE_DATE_LABEL || "",
FINISH_DATE: v.APP_FINISH_DATE_LABEL || "", FINISH_DATE: v.APP_FINISH_DATE_LABEL || "",

View File

@@ -1,8 +1,12 @@
import _ from "lodash";
import api from "../../api/index"; import api from "../../api/index";
export default { export default {
data() { data() {
return { return {
random: 1 random: 1,
defaultColumnsDisabled: [
"process_category"
]
}; };
}, },
methods: { methods: {

View File

@@ -48,6 +48,9 @@
<div slot="process_name" slot-scope="props"> <div slot="process_name" slot-scope="props">
{{ props.row.PROCESS_NAME }} {{ props.row.PROCESS_NAME }}
</div> </div>
<div slot="process_category" slot-scope="props">
{{ props.row.PROCESS_CATEGORY }}
</div>
<div slot="task" slot-scope="props"> <div slot="task" slot-scope="props">
<TaskCell :data="props.row.TASK" /> <TaskCell :data="props.row.TASK" />
</div> </div>
@@ -115,6 +118,14 @@
>{{ props["item"]["PROCESS_NAME"] }} >{{ props["item"]["PROCESS_NAME"] }}
</span> </span>
</div> </div>
<div slot="process_category" slot-scope="props" class="v-card-text">
<span class="v-card-text-dark"
>{{ props["headings"][props.column] }} :</span
>
<span class="v-card-text-light"
>{{ props["item"]["PROCESS_CATEGORY"] }}
</span>
</div>
<div slot="due_date" slot-scope="props" class="v-card-text"> <div slot="due_date" slot-scope="props" class="v-card-text">
<span class="v-card-text-dark" <span class="v-card-text-dark"
>{{ props["headings"][props.column] }} :</span >{{ props["headings"][props.column] }} :</span
@@ -201,6 +212,14 @@
>{{ props["item"]["PROCESS_NAME"] }} >{{ props["item"]["PROCESS_NAME"] }}
</span> </span>
</div> </div>
<div slot="process_category" slot-scope="props" class="v-card-text">
<span class="v-card-text-dark"
>{{ props["headings"][props.column] }} :</span
>
<span class="v-card-text-light"
>{{ props["item"]["PROCESS_CATEGORY"] }}
</span>
</div>
<div slot="due_date" slot-scope="props" class="v-card-text"> <div slot="due_date" slot-scope="props" class="v-card-text">
<span class="v-card-text-dark" <span class="v-card-text-dark"
>{{ props["headings"][props.column] }} :</span >{{ props["headings"][props.column] }} :</span
@@ -342,6 +361,7 @@ export default {
case_number: this.$i18n.t("ID_MYCASE_NUMBER"), case_number: this.$i18n.t("ID_MYCASE_NUMBER"),
thread_title: this.$i18n.t('ID_CASE_THREAD_TITLE'), thread_title: this.$i18n.t('ID_CASE_THREAD_TITLE'),
process_name: this.$i18n.t("ID_PROCESS_NAME"), process_name: this.$i18n.t("ID_PROCESS_NAME"),
process_category: this.$i18n.t("ID_PROCESS_CATEGORY"),
task: this.$i18n.t("ID_TASK"), task: this.$i18n.t("ID_TASK"),
send_by: this.$i18n.t("ID_SEND_BY"), send_by: this.$i18n.t("ID_SEND_BY"),
due_date: this.$i18n.t("ID_DUE_DATE"), due_date: this.$i18n.t("ID_DUE_DATE"),
@@ -572,6 +592,7 @@ export default {
CASE_NUMBER: v.APP_NUMBER, CASE_NUMBER: v.APP_NUMBER,
THREAD_TITLE: v.DEL_TITLE, THREAD_TITLE: v.DEL_TITLE,
PROCESS_NAME: v.PRO_TITLE, PROCESS_NAME: v.PRO_TITLE,
PROCESS_CATEGORY: v.CATEGORY,
TASK: [{ TASK: [{
TITLE: v.TAS_TITLE, TITLE: v.TAS_TITLE,
CODE_COLOR: v.TAS_COLOR, CODE_COLOR: v.TAS_COLOR,

View File

@@ -53,6 +53,7 @@ export default {
case_number: this.$i18n.t("ID_MYCASE_NUMBER"), case_number: this.$i18n.t("ID_MYCASE_NUMBER"),
thread_title: this.$i18n.t('ID_CASE_THREAD_TITLE'), thread_title: this.$i18n.t('ID_CASE_THREAD_TITLE'),
process_name: this.$i18n.t("ID_PROCESS_NAME"), process_name: this.$i18n.t("ID_PROCESS_NAME"),
process_category: this.$i18n.t("ID_PROCESS_CATEGORY"),
task: this.$i18n.t("ID_TASK"), task: this.$i18n.t("ID_TASK"),
send_by: this.$i18n.t("ID_SEND_BY"), send_by: this.$i18n.t("ID_SEND_BY"),
current_user: this.$i18n.t("ID_CURRENT_USER"), current_user: this.$i18n.t("ID_CURRENT_USER"),
@@ -64,6 +65,7 @@ export default {
"case_number", "case_number",
"thread_title", "thread_title",
"process_name", "process_name",
"process_category",
"due_date", "due_date",
"delegation_date", "delegation_date",
"priority", "priority",

View File

@@ -46,6 +46,9 @@
<div slot="process_name" slot-scope="props"> <div slot="process_name" slot-scope="props">
{{ props.row.PROCESS_NAME }} {{ props.row.PROCESS_NAME }}
</div> </div>
<div slot="process_category" slot-scope="props">
{{ props.row.PROCESS_CATEGORY }}
</div>
<div slot="task" slot-scope="props"> <div slot="task" slot-scope="props">
<TaskCell :data="props.row.TASK" /> <TaskCell :data="props.row.TASK" />
</div> </div>
@@ -110,6 +113,14 @@
>{{ props["item"]["PROCESS_NAME"] }} >{{ props["item"]["PROCESS_NAME"] }}
</span> </span>
</div> </div>
<div slot="process_category" slot-scope="props" class="v-card-text">
<span class="v-card-text-dark"
>{{ props["headings"][props.column] }} :</span
>
<span class="v-card-text-light"
>{{ props["item"]["PROCESS_CATEGORY"] }}
</span>
</div>
<div slot="due_date" slot-scope="props" class="v-card-text"> <div slot="due_date" slot-scope="props" class="v-card-text">
<span class="v-card-text-dark" <span class="v-card-text-dark"
>{{ props["headings"][props.column] }} :</span >{{ props["headings"][props.column] }} :</span
@@ -196,6 +207,14 @@
>{{ props["item"]["PROCESS_NAME"] }} >{{ props["item"]["PROCESS_NAME"] }}
</span> </span>
</div> </div>
<div slot="process_category" slot-scope="props" class="v-card-text">
<span class="v-card-text-dark"
>{{ props["headings"][props.column] }} :</span
>
<span class="v-card-text-light"
>{{ props["item"]["PROCESS_CATEGORY"] }}
</span>
</div>
<div slot="due_date" slot-scope="props" class="v-card-text"> <div slot="due_date" slot-scope="props" class="v-card-text">
<span class="v-card-text-dark" <span class="v-card-text-dark"
>{{ props["headings"][props.column] }} :</span >{{ props["headings"][props.column] }} :</span
@@ -334,6 +353,7 @@ export default {
case_number: this.$i18n.t("ID_MYCASE_NUMBER"), case_number: this.$i18n.t("ID_MYCASE_NUMBER"),
thread_title: this.$i18n.t('ID_CASE_THREAD_TITLE'), thread_title: this.$i18n.t('ID_CASE_THREAD_TITLE'),
process_name: this.$i18n.t("ID_PROCESS_NAME"), process_name: this.$i18n.t("ID_PROCESS_NAME"),
process_category: this.$i18n.t("ID_PROCESS_CATEGORY"),
task: this.$i18n.t("ID_TASK"), task: this.$i18n.t("ID_TASK"),
send_by: this.$i18n.t("ID_SEND_BY"), send_by: this.$i18n.t("ID_SEND_BY"),
due_date: this.$i18n.t("ID_DUE_DATE"), due_date: this.$i18n.t("ID_DUE_DATE"),
@@ -535,6 +555,7 @@ export default {
CASE_NUMBER: v.APP_NUMBER, CASE_NUMBER: v.APP_NUMBER,
THREAD_TITLE: v.DEL_TITLE, THREAD_TITLE: v.DEL_TITLE,
PROCESS_NAME: v.PRO_TITLE, PROCESS_NAME: v.PRO_TITLE,
PROCESS_CATEGORY: v.CATEGORY,
TASK: [{ TASK: [{
TITLE: v.TAS_TITLE, TITLE: v.TAS_TITLE,
CODE_COLOR: v.TAS_COLOR, CODE_COLOR: v.TAS_COLOR,

View File

@@ -53,6 +53,7 @@ export default {
case_number: this.$i18n.t("ID_MYCASE_NUMBER"), case_number: this.$i18n.t("ID_MYCASE_NUMBER"),
thread_title: this.$i18n.t('ID_CASE_THREAD_TITLE'), thread_title: this.$i18n.t('ID_CASE_THREAD_TITLE'),
process_name: this.$i18n.t("ID_PROCESS_NAME"), process_name: this.$i18n.t("ID_PROCESS_NAME"),
process_category: this.$i18n.t("ID_PROCESS_CATEGORY"),
task: this.$i18n.t("ID_TASK"), task: this.$i18n.t("ID_TASK"),
send_by: this.$i18n.t("ID_SEND_BY"), send_by: this.$i18n.t("ID_SEND_BY"),
current_user: this.$i18n.t("ID_CURRENT_USER"), current_user: this.$i18n.t("ID_CURRENT_USER"),
@@ -64,6 +65,7 @@ export default {
"case_number", "case_number",
"thread_title", "thread_title",
"process_name", "process_name",
"process_category",
"due_date", "due_date",
"delegation_date", "delegation_date",
"priority", "priority",