From 68872d3f067a274ec5e48b5a21d18f40b713d3e9 Mon Sep 17 00:00:00 2001
From: Viet An
Date: Wed, 1 Jul 2026 10:59:23 +0700
Subject: [PATCH] changes
---
app/components/TopMenu.vue | 6 ++--
.../pos/composables/usePlaceOrder.js | 11 +++++--
app/error.vue | 18 +++++-------
app/layouts/default.vue | 6 ++--
app/plugins/02-connection.js | 8 ++---
app/plugins/03-api-loader.js | 3 ++
app/stores/index.js | 29 ++++++++++++-------
app/utils/apis.js | 25 +++++++++++-----
envdev.py | 12 +-------
envdevdealer.py | 26 -----------------
envprod.py | 14 ++-------
envproddealer.py | 25 ----------------
12 files changed, 66 insertions(+), 117 deletions(-)
delete mode 100644 envdevdealer.py
delete mode 100644 envproddealer.py
diff --git a/app/components/TopMenu.vue b/app/components/TopMenu.vue
index e39859a..2e7a445 100644
--- a/app/components/TopMenu.vue
+++ b/app/components/TopMenu.vue
@@ -140,9 +140,9 @@ if (topmenus.length === 0) {
topmenus.forEach((topmenu) => {
let submenus = $filter($store.common, { category: "submenu", classify: topmenu.code });
- if ($store.rights.length > 0) {
- submenus = submenus.filter((x) => $findIndex($store.rights, { setting: x.id }) >= 0);
- }
+ // if ($store.rights.length > 0) {
+ // submenus = submenus.filter((x) => $findIndex($store.rights, { setting: x.id }) >= 0);
+ // }
topmenu.submenu = submenus.length > 0 ? submenus : null;
});
diff --git a/app/components/pos/composables/usePlaceOrder.js b/app/components/pos/composables/usePlaceOrder.js
index 190c179..107b6f0 100644
--- a/app/components/pos/composables/usePlaceOrder.js
+++ b/app/components/pos/composables/usePlaceOrder.js
@@ -4,6 +4,11 @@ import useOrderInfo from "~/components/pos/composables/useOrderInfo";
export default function usePlaceOrder({ onSuccess }) {
const { $dayjs, $id, $getdata, $insertapi, $patchapi, $deleteapi, $snackbar } = useNuxtApp();
+ const store = useStore();
+ const pendingInvoiceStatus = store.Invoice_Status.find(({ code }) => code === "DRAFT");
+ const pendingPaymentStatus = store.Payment_Status.find(({ code }) => code === "PENDING");
+ const pendingDeliveryStatus = store.Delivery_Status.find(({ code }) => code === "PENDING");
+
const posStore = usePosStore();
const { invalidCartItems, orderInfo } = storeToRefs(posStore);
const { activeCart, activeCartItems, subtotal } = useActiveCart();
@@ -51,8 +56,8 @@ export default function usePlaceOrder({ onSuccess }) {
discount_amount: 0,
final_amount: total.value,
order_type: "pos",
- status: "pending",
- payment_status: 1,
+ invoice_status: pendingInvoiceStatus.id,
+ payment_status: pendingPaymentStatus.id,
staff: 1,
ordered_at: new Date(),
paid_at: null,
@@ -167,7 +172,7 @@ export default function usePlaceOrder({ onSuccess }) {
shipping_fee: orderInfo.value.shipping_fee,
carrier: orderInfo.value.deliveryMethod.id,
tracking_code: $id(),
- status: "pending",
+ delivery_status: pendingDeliveryStatus.id,
staff: 1,
};
diff --git a/app/error.vue b/app/error.vue
index d4080f3..b0fb454 100644
--- a/app/error.vue
+++ b/app/error.vue
@@ -3,10 +3,10 @@ const props = defineProps({
error: Object,
});
console.error(props.error);
-const router = useRouter();
const { $createMeta } = useNuxtApp();
const description =
"Rất tiếc! Có vẻ như đã xảy ra sự cố. Vui lòng thử lại hoặc liên hệ quản trị viên nếu lỗi tiếp tục.";
+
useHead(
$createMeta({
title: props.error.message,
@@ -15,10 +15,6 @@ useHead(
type: "website",
}),
);
-
-function reload() {
- window.location.reload();
-}
@@ -35,8 +31,8 @@ function reload() {
{{ description }}
diff --git a/app/layouts/default.vue b/app/layouts/default.vue
index 675b53f..6cbf659 100644
--- a/app/layouts/default.vue
+++ b/app/layouts/default.vue
@@ -69,10 +69,10 @@ async function checkRedirect() {
}
async function checkLogin() {
- if ($store.login ? $store.login.token : false) {
+ if ($store.login?.token) {
$store.commit("rights", await $getdata("grouprights", { filter: { group: $store.login.type } }));
- let authtoken = await $getdata("token", { first: true, filter: { token: $store.login.token } });
- if (authtoken ? authtoken.expiry : true) return; /* $requestLogin(); */
+ const authtoken = await $getdata("token", { first: true, filter: { token: $store.login.token } });
+ if (authtoken?.expiry) return; /* $requestLogin(); */
authorized.value = true;
}
// else $requestLogin();
diff --git a/app/plugins/02-connection.js b/app/plugins/02-connection.js
index 8c15c3c..621bbf7 100644
--- a/app/plugins/02-connection.js
+++ b/app/plugins/02-connection.js
@@ -10,7 +10,8 @@ export default defineNuxtPlugin((nuxtApp) => {
{ name: "local", url: "http://localhost:8000/" },
{ name: "prod", url: "https://erpapi.bigdatatech.vn/" },
];
- const path = paths.find((v) => v.name === mode).url;
+
+ const store = useStore();
const { $copy, $updateSeriesFields, $snackbar, $store, $remove, $dialog } = nuxtApp;
const requestLogin = function () {
@@ -18,9 +19,8 @@ export default defineNuxtPlugin((nuxtApp) => {
window.location.href = `https://${mode === "dev" ? "dev." : ""}login.utopia.com.vn/signin?module=${module}&link=${window.location.origin}`;
};
- const getpath = function (name = mode) {
- return paths.find((v) => v.name === name).url;
- };
+ const getpath = (name = mode) => paths.find((v) => v.name === name).url;
+ const path = getpath();
/**
* @param {ApiName | ApiName[]} name
diff --git a/app/plugins/03-api-loader.js b/app/plugins/03-api-loader.js
index 1acd5ed..5e80dac 100644
--- a/app/plugins/03-api-loader.js
+++ b/app/plugins/03-api-loader.js
@@ -10,6 +10,9 @@ export default defineNuxtPlugin((nuxtApp) => {
"colorchoice",
"menuchoice",
"colorscheme",
+ "Invoice_Status",
+ "Payment_Status",
+ "Delivery_Status",
]);
const notReadyConns = connlist.filter((v) => !v.ready);
diff --git a/app/stores/index.js b/app/stores/index.js
index 7f96cd1..74d03ca 100644
--- a/app/stores/index.js
+++ b/app/stores/index.js
@@ -1,20 +1,27 @@
import { defineStore } from "pinia";
-export const useStore = defineStore("maindev", {
+export const useStore = defineStore("erp-dev", {
state: () => ({
ready: false,
- viewport: undefined,
- login: undefined,
- token: undefined,
- common: undefined,
+ viewport: null,
+ login: null,
+ token: null,
+ showmodal: null,
+ snackbar: null,
settings: [],
- showmodal: undefined,
- snackbar: undefined,
- country: undefined,
lang: "vi",
- branch: {},
- rights: [],
- product: [],
+ // set by api-loader
+ common: null,
+ tablesetting: null,
+ datatype: null,
+ settingtype: null,
+ settingclass: null,
+ colorchoice: null,
+ menuchoice: null,
+ colorscheme: null,
+ Invoice_Status: null,
+ Payment_Status: null,
+ Delivery_Status: null,
}),
actions: {
commit(name, data) {
diff --git a/app/utils/apis.js b/app/utils/apis.js
index 6ad8c28..b2b6291 100644
--- a/app/utils/apis.js
+++ b/app/utils/apis.js
@@ -66,12 +66,6 @@ export default /** @type {const} */ ([
url_detail: "data-detail/Approve_Status/",
params: {},
},
- {
- name: "bizrights",
- url: "data/Biz_Rights/",
- url_detail: "data-detail/Biz_Rights/",
- params: { sort: "-id" },
- },
{
name: "documenttype",
url: "data/Document_Type/",
@@ -80,8 +74,8 @@ export default /** @type {const} */ ([
},
{
name: "country",
- url: "data/Country/",
commit: "country",
+ url: "data/Country/",
params: {
sort: "id",
values: "id,code,name,en,create_time",
@@ -493,7 +487,7 @@ export default /** @type {const} */ ([
url_detail: "data-detail/Invoice/",
params: {
values:
- "delivery,delivery__receiver_name,delivery__receiver_phone,delivery__tracking_code,delivery__expected_date,delivery__delivered_date,delivery__status,payments,history,id,code,customer,staff,staff__fullname,staff__phone,staff__email,voucher,customer_name,customer_phone,customer_email,shipping_address,product_amount,shipping_fee,total_amount,discount_amount,final_amount,order_type,status,payment_status,payment_status__code,payment_status__name,note,ordered_at,paid_at,creator,updater,deleted,delivery_method,create_time,update_time",
+ "delivery,delivery__receiver_name,delivery__receiver_phone,delivery__tracking_code,delivery__expected_date,delivery__delivered_date,delivery__delivery_status,payments,history,id,code,customer,staff,staff__fullname,staff__phone,staff__email,voucher,customer_name,customer_phone,customer_email,shipping_address,product_amount,shipping_fee,total_amount,discount_amount,final_amount,order_type,invoice_status,invoice_status__code,invoice_status__name,invoice_status__color,payment_status,payment_status__code,payment_status__name,payment_status__color,note,ordered_at,paid_at,creator,updater,deleted,delivery_method,create_time,update_time",
sort: "-id",
},
},
@@ -506,6 +500,13 @@ export default /** @type {const} */ ([
"id,code,invoice,variant,variant__code,variant__product,variant__product__name,variant__color,variant__color__name,variant__ram__code,variant__ram__capacity,variant__internal_storage__code,variant__internal_storage__capacity,variant__price,variant__image__path,imei_sold,price,status,note,deleted,create_time,update_time",
},
},
+ {
+ name: "Invoice_Status",
+ commit: "Invoice_Status",
+ url: "data/Invoice_Status/",
+ url_detail: "data-detail/Invoice_Status/",
+ params: {},
+ },
{
name: "Manufacturer",
url: "data/Manufacturer/",
@@ -662,6 +663,7 @@ export default /** @type {const} */ ([
},
{
name: "Payment_Status",
+ commit: "Payment_Status",
url: "data/Payment_Status/",
url_detail: "data-detail/Payment_Status/",
params: {},
@@ -684,6 +686,13 @@ export default /** @type {const} */ ([
url_detail: "data-detail/Delivery_Method/",
params: {},
},
+ {
+ name: "Delivery_Status",
+ commit: "Delivery_Status",
+ url: "data/Delivery_Status/",
+ url_detail: "data-detail/Delivery_Status/",
+ params: {},
+ },
{
name: "Cart",
url: "data/Cart/",
diff --git a/envdev.py b/envdev.py
index dc5de02..7b12c6f 100644
--- a/envdev.py
+++ b/envdev.py
@@ -10,16 +10,6 @@ def search_text(file, text, new_text):
file = './app/plugins/02-connection.js'
text1 = 'mode = "prod"'
newtext1 = 'mode = "dev"'
-newtext2 = 'module = "application"'
-text2 = 'module = "dealer"'
-newtext3 = 'Biz_Setting'
-text3 = 'Dealer_Setting'
-newtext4 = 'Biz_Rights'
-text4 = 'Dealer_Rights'
search_text(file, text1, newtext1)
-search_text(file, text2, newtext2)
-search_text(file, text3, newtext3)
-search_text(file, text4, newtext4)
-file = './app/assets/styles/main.scss'
file = './app/stores/index.js'
-search_text(file,'export const useStore = defineStore("main", {','export const useStore = defineStore("maindev", {')
\ No newline at end of file
+search_text(file,'defineStore("erp"','defineStore("erp-dev"')
\ No newline at end of file
diff --git a/envdevdealer.py b/envdevdealer.py
deleted file mode 100644
index cd4368e..0000000
--- a/envdevdealer.py
+++ /dev/null
@@ -1,26 +0,0 @@
-def search_text(file, text, new_text):
- f = open(file, 'r', newline='\n')
- content = f.read()
- print(text, content.find(new_text))
- content = content.replace(text, new_text)
- f.close()
- with open(file, 'w', newline='\n') as f:
- f.write(content)
-
-file = './app/plugins/02-connection.js'
-
-text1 = 'mode = "prod"'
-newtext1 = 'mode = "dev"'
-text2 = 'module = "application"'
-newtext2 = 'module = "dealer"'
-text3 = 'Biz_Setting'
-newtext3 = 'Dealer_Setting'
-text4 = 'Biz_Rights'
-newtext4 = 'Dealer_Rights'
-search_text(file, text1, newtext1)
-search_text(file, text2, newtext2)
-search_text(file, text3, newtext3)
-search_text(file, text4, newtext4)
-file = './app/assets/styles/main.scss'
-file = './app/stores/index.js'
-search_text(file,'export const useStore = defineStore("main", {','export const useStore = defineStore("maindev", {')
diff --git a/envprod.py b/envprod.py
index b52383c..1d5cfbd 100644
--- a/envprod.py
+++ b/envprod.py
@@ -8,18 +8,8 @@ def search_text(file, text, new_text):
f.write(content)
file = './app/plugins/02-connection.js'
-newtext1 = 'mode = "prod"'
text1 = 'mode = "dev"'
-newtext2 = 'module = "application"'
-text2 = 'module = "dealer"'
-newtext3 = 'Biz_Setting'
-text3 = 'Dealer_Setting'
-newtext4 = 'Biz_Rights'
-text4 = 'Dealer_Rights'
+newtext1 = 'mode = "prod"'
search_text(file, text1, newtext1)
-search_text(file, text2, newtext2)
-search_text(file, text3, newtext3)
-search_text(file, text4, newtext4)
-file = './app/assets/styles/main.scss'
file = './app/stores/index.js'
-search_text(file,'export const useStore = defineStore("maindev", {','export const useStore = defineStore("main", {')
+search_text(file,'defineStore("erp-dev"','defineStore("erp"')
diff --git a/envproddealer.py b/envproddealer.py
deleted file mode 100644
index de400fc..0000000
--- a/envproddealer.py
+++ /dev/null
@@ -1,25 +0,0 @@
-def search_text(file, text, new_text):
- f = open(file, 'r', newline='\n')
- content = f.read()
- print(text, content.find(new_text))
- content = content.replace(text, new_text)
- f.close()
- with open(file, 'w', newline='\n') as f:
- f.write(content)
-
-file = './app/plugins/02-connection.js'
-text1 = 'mode = "dev"'
-text2 = 'module = "application"'
-newtext1 = 'mode = "prod"'
-newtext2 = 'module = "dealer"'
-text3 = 'Biz_Setting'
-newtext3 = 'Dealer_Setting'
-text4 = 'Biz_Rights'
-newtext4 = 'Dealer_Rights'
-search_text(file, text1, newtext1)
-search_text(file, text2, newtext2)
-search_text(file, text3, newtext3)
-search_text(file, text4, newtext4)
-file = './app/assets/styles/main.scss'
-file = './app/stores/index.js'
-search_text(file,'export const useStore = defineStore("maindev", {','export const useStore = defineStore("main", {')
\ No newline at end of file