This commit is contained in:
Viet An
2026-06-11 11:50:11 +07:00
parent a5a88b3b1c
commit 069ea1002c
20 changed files with 112 additions and 474 deletions

View File

@@ -91,22 +91,6 @@ export default defineNuxtPlugin(() => {
return structuredClone(toRawDeep(val));
};
const clone = function (obj) {
if (obj === null || typeof obj !== "object" || "isActiveClone" in obj) return obj;
let temp;
if (obj instanceof Date)
temp = new obj.constructor(); //or new Date(obj);
else temp = obj.constructor();
for (let key in obj) {
if (Object.prototype.hasOwnProperty.call(obj, key)) {
obj["isActiveClone"] = null;
temp[key] = clone(obj[key]);
delete obj["isActiveClone"];
}
}
return temp;
};
const remove = function (arr, idx) {
arr.splice(idx, 1);
};
@@ -459,7 +443,6 @@ export default defineNuxtPlugin(() => {
empty,
toRawDeep,
copy,
clone,
remove,
stripHtml,
isNumber,

View File

@@ -1,5 +1,7 @@
/** @typedef {import('~/utils/apis').ApiName} ApiName */
import { cloneDeep } from "es-toolkit";
export default defineNuxtPlugin((nuxtApp) => {
const module = "application";
const mode = "dev";
@@ -9,7 +11,7 @@ export default defineNuxtPlugin((nuxtApp) => {
{ name: "prod", url: "https://erpapi.bigdatatech.vn/" },
];
const path = paths.find((v) => v.name === mode).url;
const { $copy, $clone, $updateSeriesFields, $snackbar, $store, $remove, $dialog } = nuxtApp;
const { $copy, $updateSeriesFields, $snackbar, $store, $remove, $dialog } = nuxtApp;
const requestLogin = function () {
$store.commit("login", undefined);
@@ -274,7 +276,7 @@ export default defineNuxtPlugin((nuxtApp) => {
return;
}
const params = $clone(apiConfig.params) || {};
const params = cloneDeep(apiConfig.params) || {};
// List of parameters that need to be stringified if they are objects
const paramsToJSONify = ["filter_or", "exclude", "distinct_values", "calculation", "final_filter", "final_exclude"];
@@ -302,7 +304,7 @@ export default defineNuxtPlugin((nuxtApp) => {
const insertrow = async function (name, data, values, pagename, notify) {
let result = await insertapi(name, { data, values, notify });
if (result === "error" || !pagename || !$store[pagename]) return result;
let copy = $clone($store[pagename]);
let copy = cloneDeep($store[pagename]);
copy.update = { refresh: true };
$store.commit(pagename, copy);
return result;
@@ -311,7 +313,7 @@ export default defineNuxtPlugin((nuxtApp) => {
const updaterow = async function (name, data, values, pagename, notify) {
let result = await patchapi(name, data, values, notify);
if (result === "error" || !pagename || !$store[pagename]) return result;
let copy = $clone($store[pagename]);
let copy = cloneDeep($store[pagename]);
copy.update = { refresh: true };
$store.commit(pagename, copy);
return result;
@@ -374,7 +376,7 @@ export default defineNuxtPlugin((nuxtApp) => {
const deleterow = async function (name, id, pagename) {
const result = await deleteapi(name, id);
if (result === "error" || !pagename || !$store[pagename]) return result;
const copy = $clone($store[pagename]);
const copy = cloneDeep($store[pagename]);
copy.update = { refresh: true };
$store.commit(pagename, copy);
return result;
@@ -382,7 +384,7 @@ export default defineNuxtPlugin((nuxtApp) => {
// update page
const updatepage = function (pagename, row, action) {
let copy = $clone($store[pagename]);
let copy = cloneDeep($store[pagename]);
let rows = Array.isArray(row) ? row : [row];
rows.map((x) => {
let idx = copy.data.findIndex((v) => v.id === x.id);

View File

@@ -1,22 +1,21 @@
export default defineNuxtPlugin(async (nuxtApp) => {
const { $getapi, $readyapi } = nuxtApp;
const connlist = $readyapi([
"datatype",
"common",
"tablesetting",
"datatype",
"filtertype",
"sorttype",
"settingtype",
"settingclass",
"settingchoice",
"filterchoice",
"colorchoice",
"sharechoice",
"menuchoice",
"textalign",
"placement",
"colorscheme",
"filtertype",
"sorttype",
"tablesetting",
"settingchoice",
"sharechoice",
"menuchoice",
"settingtype",
"settingclass",
"sex",
]);
const notReadyConns = connlist.filter((v) => !v.ready);
if (notReadyConns.length > 0) await $getapi(notReadyConns);

View File

@@ -1,4 +1,3 @@
import SvgIcon from "~/components/SvgIcon.vue";
import Datepicker from "~/components/datepicker/Datepicker.vue";
import DataTable from "~/components/datatable/DataTable.vue";
@@ -90,7 +89,6 @@ const components = {
CountWithAdd,
MenuAction,
Email,
SvgIcon,
Datepicker,
ImageGallery,
FileGallery,