{src: "~/plugins/vue-chartjs.js", ssr: false}
export const state = () => ({
errorData: "",
load: false,
info: {
labels: [],
data: [],
}
});
export const getters = {
getData: state => state.info,
getLoad: state => state.load,
getError: state => state.errorData
};
export const mutations = {
changeData: (state, data) => {
if (data) {
state.info.labels = data.map(r => r[0]);
state.info.data = data.map(r => r[1]);
}
},
changeError: (state, error) => (state.error = error),
changeLoad: (state, load) => (state.load = load)
};
export const actions = {
async getStatisticClient({commit}) {
commit("changeLoad", false);
const res = await this.app.$rest.api(
"admin/visits/statistic/get",
this.app.context.query
);
commit("changeLoad", true);
let main = res.data.visitorStatistics;
if (main.length === 0) return commit("changeData", false);
let arr = main.map(el => {
return [el.date.slice(0, 10), parseInt(el.total_count)];
});
commit("changeData", arr);
}
};
<chartline
:options="{responsive: true, maintainAspectRatio: false}"
:chart-data="chart"
:height="260"
/>
return {
labels: this.dat.labels,
datasets: [
{
backgroundColor: "rgb(122, 190, 253)",
borderColor: "rgba(24, 143, 255, 1)",
pointBackgroundColor: "rgba(24, 143, 255, 1)",
borderWidth: 3,
label: "Visits",
pointHoverBorderWidth: 2,
pointBorderWidth: 0,
lineTension: 0.3,
data: this.dat.data
}
]
};