196 lines
4.9 KiB
JavaScript
196 lines
4.9 KiB
JavaScript
import api from "../../api/index";
|
|
export default {
|
|
data() {
|
|
let that = this;
|
|
return {
|
|
typeView: this.settings && this.settings.view && this.settings.view.typeView
|
|
? this.settings.view.typeView
|
|
: "GRID",
|
|
random: 1,
|
|
dataMultiviewHeader: {
|
|
actions: [
|
|
{
|
|
id: "view-grid",
|
|
title: "Grid",
|
|
onClick(action) {
|
|
that.typeView = "GRID";
|
|
that.updateRootSettings("view", {
|
|
typeView: that.typeView
|
|
});
|
|
},
|
|
icon: "fas fa-table",
|
|
},
|
|
{
|
|
id: "view-list",
|
|
title: "List",
|
|
onClick(action) {
|
|
that.typeView = "LIST";
|
|
that.updateRootSettings("view", {
|
|
typeView: that.typeView
|
|
});
|
|
},
|
|
icon: "fas fa-list",
|
|
},
|
|
{
|
|
id: "view-card",
|
|
title: "Card",
|
|
onClick(action) {
|
|
that.typeView = "CARD";
|
|
that.updateRootSettings("view", {
|
|
typeView: that.typeView
|
|
});
|
|
},
|
|
icon: "fas fa-th",
|
|
},
|
|
],
|
|
},
|
|
optionsVueView: {
|
|
limit: 10,
|
|
dblClick: (event, item, options) => {
|
|
this.showModalUnpauseCase(item);
|
|
},
|
|
headings: {
|
|
case_number: this.$i18n.t("ID_MYCASE_NUMBER"),
|
|
thread_title: this.$i18n.t('ID_CASE_THREAD_TITLE'),
|
|
process_name: this.$i18n.t("ID_PROCESS_NAME"),
|
|
task: this.$i18n.t("ID_TASK"),
|
|
send_by: this.$i18n.t("ID_SEND_BY"),
|
|
current_user: this.$i18n.t("ID_CURRENT_USER"),
|
|
due_date: this.$i18n.t("ID_DUE_DATE"),
|
|
delegation_date: this.$i18n.t("ID_DELEGATION_DATE"),
|
|
priority: this.$i18n.t("ID_PRIORITY")
|
|
},
|
|
columns: [
|
|
"case_number",
|
|
"thread_title",
|
|
"process_name",
|
|
"due_date",
|
|
"delegation_date",
|
|
"priority",
|
|
"task",
|
|
"send_by",
|
|
],
|
|
requestFunction(data) {
|
|
return that.getCases(data);
|
|
},
|
|
requestFunctionViewMore(data) {
|
|
return that.getCasesViewMore(data);
|
|
}
|
|
}
|
|
}
|
|
},
|
|
created: function () {
|
|
|
|
},
|
|
methods: {
|
|
/**
|
|
* Get cases for Vue Card View
|
|
*/
|
|
getCases(data) {
|
|
let that = this,
|
|
dt,
|
|
filters = {};
|
|
_.forIn(this.filters, function (item, key) {
|
|
filters[item.filterVar] = item.value;
|
|
});
|
|
return new Promise((resolutionFunc, rejectionFunc) => {
|
|
api.cases
|
|
.paused(filters)
|
|
.then((response) => {
|
|
dt = that.formatDataResponse(response.data.data);
|
|
resolutionFunc({
|
|
data: dt,
|
|
count: response.data.total,
|
|
});
|
|
})
|
|
.catch((e) => {
|
|
rejectionFunc(e);
|
|
});
|
|
});
|
|
},
|
|
/**
|
|
* Get cases for Vue Card View
|
|
*/
|
|
getCasesViewMore(data) {
|
|
let that = this,
|
|
dt,
|
|
paged,
|
|
limit = data.limit,
|
|
start = data.page === 1 ? 0 : limit * (data.page - 1),
|
|
filters = {};
|
|
filters = {
|
|
limit: limit,
|
|
offset: start
|
|
};
|
|
_.forIn(this.filters, function (item, key) {
|
|
if (filters && item.value) {
|
|
filters[item.filterVar] = item.value;
|
|
}
|
|
});
|
|
return new Promise((resolutionFunc, rejectionFunc) => {
|
|
api.cases
|
|
.paused(filters)
|
|
.then((response) => {
|
|
dt = that.formatDataResponse(response.data.data);
|
|
resolutionFunc({
|
|
data: dt,
|
|
count: response.data.total,
|
|
});
|
|
})
|
|
.catch((e) => {
|
|
rejectionFunc(e);
|
|
});
|
|
});
|
|
},
|
|
/**
|
|
* Format columns for custom columns
|
|
* @param {*} headings
|
|
* @returns
|
|
*/
|
|
formatColumnSettings(headings) {
|
|
let res = [];
|
|
_.forEach(headings, function (value, key) {
|
|
if (key != "actions") {
|
|
res.push({ value, key });
|
|
}
|
|
});
|
|
return res;
|
|
},
|
|
/**
|
|
* Formating the columns selected
|
|
* @param {*} columns
|
|
* @returns
|
|
*/
|
|
formatColumnSelected(columns) {
|
|
let cols = _.clone(columns);
|
|
cols.pop();
|
|
return cols;
|
|
},
|
|
/**
|
|
* Event handler when update the settings columns
|
|
* @param {*} columns
|
|
*/
|
|
onUpdateColumnSettings(columns) {
|
|
let cols = columns;
|
|
if (_.findIndex(cols, 'actions') == -1) {
|
|
cols.push("actions");
|
|
}
|
|
this.columns = cols;
|
|
this.random = _.random(0, 10000000000);
|
|
},
|
|
/**
|
|
* Update settings for user
|
|
* @param {string} key
|
|
* @param {*} data
|
|
*/
|
|
updateRootSettings(key, data) {
|
|
this.$emit("updateSettings", {
|
|
data: data,
|
|
key: key,
|
|
page: "paused",
|
|
type: "normal",
|
|
id: this.id
|
|
});
|
|
}
|
|
}
|
|
} |