-
+
+
@@ -93,11 +99,12 @@
{{ status ? "Lưu thiết lập thành công." : "Lỗi. Lưu thiết lập thất bại." }}
- Lưu lại
+ Lưu lại
+
@@ -106,28 +113,30 @@ import { ref } from "vue";
import { useStore } from "@/stores/index";
const emit = defineEmits([]);
const store = useStore();
-var props = defineProps({
+const props = defineProps({
pagename: String,
classify: String,
option: String,
data: Object,
focus: Boolean,
});
-const { $empty, $copy, $filter, $stripHtml, $updateapi, $insertapi, $findIndex, $snackbar } = useNuxtApp();
-var pagename = props.pagename;
-var radioOption = ref();
+const { $empty, $copy, $stripHtml, $updateapi, $insertapi, $findIndex, $snackbar } = useNuxtApp();
+const radioOption = ref();
var login = { id: 1 };
-var errors = [];
-var radioType = undefined;
-var radioDefault = 0;
-var radioSave = ref("new");
-var note = undefined;
-var status = undefined;
-var name = undefined;
+const errors = ref([]);
+const radioType = ref();
+const radioDefault = 0;
+const radioSave = ref("overwrite");
+const name = ref();
+const note = ref();
+const status = undefined;
var currentsetting = undefined;
+var pagename = props.pagename;
var pagedata = store[props.pagename];
+const isLoading = ref(false);
+
async function saveSetting() {
- errors = [];
+ errors.value = [];
let detail = pagename ? { fields: pagedata.fields } : {};
if (pagename) {
let element = pagedata.tablesetting || {};
@@ -139,19 +148,21 @@ async function saveSetting() {
if (props.option) detail.option = props.option;
if (props.data) detail.data = props.data;
let data = {
- user: login.id,
- name: name,
- detail: detail,
- note: note,
- type: radioType.id,
+ // user: login.id,
+ user: undefined,
+ name: name.value,
+ detail,
+ note,
+ type: radioType.value.id,
classify: props.classify ? props.classify : store.settingclass.find((v) => v.code === "data-field").id,
default: radioDefault,
update_time: new Date(),
};
let result;
+ isLoading.value = true;
if (radioSave.value === "new") {
- if ($empty(name)) {
- return errors.push({
+ if ($empty(name.value)) {
+ return errors.value.push({
name: "name",
msg: "Tên thiết lập không được bỏ trống",
});
@@ -163,6 +174,7 @@ async function saveSetting() {
copy.update_time = new Date();
result = await $updateapi("usersetting", copy);
}
+ isLoading.value = false;
if (radioSave.value === "new") {
emit("modalevent", { name: "opensetting", data: result });
} else {
@@ -187,11 +199,12 @@ function changeOption(v) {
radioOption.value = v.code;
}
function initData() {
- radioType = store.settingtype.find((v) => v.code === "private");
+ radioType.value = store.settingtype.find((v) => v.code === "private");
if (props.pagename) currentsetting = $copy(pagedata.setting ? pagedata.setting : undefined);
- if (!currentsetting) radioSave.value = "new";
+ // disable temp: for now, radioSave is always 'overwrite'
+ /* if (!currentsetting) radioSave.value = "new";
else if (currentsetting.user !== login.id) radioSave.value = "new";
- else radioSave.value = "overwrite";
+ else radioSave.value = "overwrite"; */
}
initData();
diff --git a/app/components/datatable/NewField.vue b/app/components/datatable/NewField.vue
index 9dc1b89..666e608 100644
--- a/app/components/datatable/NewField.vue
+++ b/app/components/datatable/NewField.vue
@@ -2,10 +2,12 @@