Import
-
-
-
+
+
diff --git a/app/plugins/02-connection.js b/app/plugins/02-connection.js
index 4bbfc9b..ea0030b 100644
--- a/app/plugins/02-connection.js
+++ b/app/plugins/02-connection.js
@@ -570,19 +570,13 @@ export default defineNuxtPlugin((nuxtApp) => {
commit: "product",
url: "data/Product/",
url_detail: "data-detail/Product/",
- params: {
- sort: "id",
- values:
- "prdbk__transaction__amount_remain,prdbk__transaction,price_excluding_vat,prdbk__transaction__txncurrent__detail__status__name,locked_until,note,cart,cart__name,cart__code,cart__dealer,cart__dealer__code,cart__dealer__name,direction,type,zone_type,dealer,link,type__name,dealer__code,dealer__name,prdbk,prdbk__transaction__customer,prdbk__transaction,prdbk__transaction__policy__code,prdbk__transaction__sale_price,prdbk__transaction__discount_amount,prdbk__transaction__code,prdbk__transaction__customer__code,prdbk__transaction__customer__phone,prdbk__transaction__customer__fullname,prdbk__transaction__customer__legal_code,id,code,trade_code,land_lot_code,zone_code,zone_type__name,lot_area,building_area,total_built_area,number_of_floors,land_lot_size,origin_price,direction__name,villa_model,product_type,template_name,project,project__name,status,status__code,status__name,status__color,status__sale_status,status__sale_status__color,create_time,prdbk__transaction__amount_received",
- distinct_values: {
- label: {
- type: "Concat",
- field: ["trade_code", "type__name", "land_lot_size", "zone_type__name", "status__name"],
- },
- count_note: { type: "Count", field: "prdnote" },
- },
- summary: "annotate",
- },
+ params: {},
+ },
+ {
+ name: "Product_Variant",
+ url: "data/Product_Variant/",
+ url_detail: "data-detail/Product_Variant/",
+ params: {},
},
{
name: "productdocument",
@@ -996,6 +990,115 @@ export default defineNuxtPlugin((nuxtApp) => {
url_detail: "data-detail/Invoice/",
params: {},
},
+ {
+ name: "Manufacturer",
+ url: "data/Manufacturer/",
+ url_detail: "data-detail/Manufacturer/",
+ params: {},
+ },
+ {
+ name: "OS",
+ url: "data/OS/",
+ url_detail: "data-detail/OS/",
+ params: {},
+ },
+ {
+ name: "Battery",
+ url: "data/Battery/",
+ url_detail: "data-detail/Battery/",
+ params: {},
+ },
+ {
+ name: "Screen",
+ url: "data/Screen/",
+ url_detail: "data-detail/Screen/",
+ params: {},
+ },
+ {
+ name: "CPU",
+ url: "data/CPU/",
+ url_detail: "data-detail/CPU/",
+ params: {},
+ },
+ {
+ name: "GPU",
+ url: "data/GPU/",
+ url_detail: "data-detail/GPU/",
+ params: {},
+ },
+ {
+ name: "Camera_System",
+ url: "data/Camera_System/",
+ url_detail: "data-detail/Camera_System/",
+ params: {},
+ },
+ {
+ name: "SIM",
+ url: "data/SIM/",
+ url_detail: "data-detail/SIM/",
+ params: {},
+ },
+ {
+ name: "Network_Technology",
+ url: "data/Network_Technology/",
+ url_detail: "data-detail/Network_Technology/",
+ params: {},
+ },
+ {
+ name: "Charging_Technology",
+ url: "data/Charging_Technology/",
+ url_detail: "data-detail/Charging_Technology/",
+ params: {},
+ },
+ {
+ name: "External_Storage",
+ url: "data/External_Storage/",
+ url_detail: "data-detail/External_Storage/",
+ params: {},
+ },
+ {
+ name: "IP_Rating",
+ url: "data/IP_Rating/",
+ url_detail: "data-detail/IP_Rating/",
+ params: {},
+ },
+ {
+ name: "Design",
+ url: "data/Design/",
+ url_detail: "data-detail/Design/",
+ params: {
+ values: "id,code,frame_material,back_material,create_time",
+ distinct_values: {
+ label: {
+ type: "Concat",
+ field: ["frame_material", "back_material"],
+ },
+ },
+ summary: "annotate",
+ },
+ },
+ {
+ name: "color",
+ url: "data/Color/",
+ url_detail: "data-detail/Color/",
+ params: {},
+ },
+ {
+ name: "RAM",
+ url: "data/RAM/",
+ url_detail: "data-detail/RAM/",
+ params: {
+ sort: "capacity",
+ },
+ },
+ {
+ name: "internalstorage",
+ url: "data/Internal_Storage/",
+ url_detail: "data-detail/Internal_Storage/",
+ params: {
+ sort: "capacity",
+ },
+ },
];
const { $copy, $clone, $updateSeriesFields, $snackbar, $store, $remove, $dialog } = nuxtApp;
@@ -1014,6 +1117,11 @@ export default defineNuxtPlugin((nuxtApp) => {
const result = Array.isArray(name)
? apis.filter((v) => name.findIndex((x) => v.name === x) >= 0)
: apis.find((v) => v.name === name);
+
+ if (!result) {
+ console.error(`API "${name}" doesn't exist`);
+ }
+
return $copy(result);
};
@@ -1070,18 +1178,17 @@ export default defineNuxtPlugin((nuxtApp) => {
params: { values },
});
} else {
- let params = { action: "import", values };
rs = await $fetch(`${curpath}import-data/${found.url.substring(5, found.url.length - 1)}/`, {
method: "POST",
body: data,
- params,
+ params: { action: "import", values },
});
}
// update store
if (found.commit) {
if ($store[found.commit]) {
- let copy = JSON.parse(JSON.stringify($store[found.commit]));
- let rows = Array.isArray(rs.data) ? rs.data : [rs.data];
+ let copy = $copy($store[found.commit]);
+ let rows = Array.isArray(rs) ? rs : [rs];
rows.map((v) => {
if (v.id && !v.error) {
let idx = copy.findIndex((x) => x.id === v.id);
diff --git a/app/plugins/04-components.js b/app/plugins/04-components.js
index 0c226f1..183da55 100644
--- a/app/plugins/04-components.js
+++ b/app/plugins/04-components.js
@@ -7,6 +7,7 @@ import POS from "@/components/pos/POS.vue";
import CreateReceipts from "@/components/receipts/CreateReceipts.vue";
import Return from "@/components/receipts/Return.vue";
import Imports from "@/components/imports/Imports.vue";
+import AddOS from "@/components/imports/AddOS.vue";
import Returns from "@/components/imports/Returns.vue";
import Exports from "@/components/exports/Exports.vue";
import ExportsDamaged from "@/components/exports/ExportsDamaged.vue";
@@ -145,6 +146,7 @@ const components = {
CreateReceipts,
Return,
Imports,
+ AddOS,
Returns,
Exports,
ExportsDamaged,