Files
appco_dist/.output/server/chunks/build/index-JrRLwQMm.mjs
T
2026-03-03 20:40:54 +03:30

138 lines
5.2 KiB
JavaScript

import { a as useConfigStore, aS as useRoute, aX as useRouter, _ as __nuxt_component_0 } from './server.mjs';
import { defineComponent, ref, reactive, computed, watch, nextTick, useSSRContext } from 'vue';
import { ssrRenderComponent } from 'vue/server-renderer';
import { f as formFields, s as selectedFeatures, a as setItems, i as items, v as variants, b as updateMyAttrs, c as myAttributes, u as useProductStore } from './product-qwehvGHt.mjs';
import { differenceBy, cloneDeep } from 'lodash-es';
const _sfc_main = /* @__PURE__ */ defineComponent({
__name: "index",
__ssrInlineRender: true,
emits: ["update:visible", "update:isEdit", "success"],
setup(__props, { emit: __emit }) {
useConfigStore();
const collections = ref(null);
ref(false);
ref(false);
useRoute();
useRouter();
const loading = ref(false);
const dragKey = ref(0);
let selectedFeaturesLength = 0;
reactive({
height: "40px",
lineHeight: "40px"
});
const childCollections = ref(null);
computed(() => {
const parentId = parentCollectionId.value;
if (!parentId) return false;
const parentCollection = collections.value?.find((c) => c.id === parentId);
childCollections.value = parentCollection?.children;
return parentCollection?.children?.length > 0;
});
const parentCollectionId = computed({
get() {
return formFields?.collections?.parent_id || formFields?.collections?.id;
},
set(newVal) {
console.log(newVal, "cooool");
formFields.collections.parent_id = newVal;
formFields.collections.id = void 0;
formFields.collection_id = newVal;
}
});
computed(() => formFields.collection_id === 1 || formFields.collection_id === 2 || parentCollectionId.value == 1 || parentCollectionId.value == 2);
computed({
get() {
if (formFields?.collections?.parent_id == formFields.collections?.id)
return void 0;
return formFields?.collections?.parent_id ? formFields?.collections.id : void 0;
},
set(newVal) {
formFields.collections.id = newVal;
formFields.collection_id = newVal;
if (!formFields.collection_id)
formFields.collection_id = formFields?.collections?.parent_id;
}
});
watch(selectedFeatures, async (new_features, oldFeatures) => {
if (new_features?.length > selectedFeaturesLength) {
try {
loading.value = true;
await setItems(new_features);
if (new_features[new_features.length - 1] != null) selectedFeaturesLength = selectedFeatures.value.length;
dragKey.value++;
} catch (e) {
console.error(e);
} finally {
loading.value = false;
}
} else {
const deletedObject = differenceBy(oldFeatures, new_features);
selectedFeaturesLength = selectedFeatures.value.length;
const index = items.value.findIndex((x) => deletedObject[0] === x.id);
if (index !== -1) {
variants.value?.forEach((val) => {
val.attribute_values[index] = null;
});
items.value.splice(index, 1);
dragKey.value++;
}
}
}, { deep: true });
watch(
items,
(newValue) => {
console.log("**********************");
updateMyAttrs(items.value);
},
{ deep: true }
);
watch(() => formFields.variants, () => {
variants.value = formFields.variants;
}, { deep: true });
watch(() => formFields.variants?.map((v) => v?.attribute_values), () => {
nextTick(() => {
if (formRef.value && (formFields.variants?.length ?? 0) > 0 && myAttributes.value?.length > 0) {
formFields.variants?.forEach((variant, variantIndex) => {
if (!variant) return;
const attrValues = variant.attribute_values || {};
myAttributes.value.forEach((attr, attrIndex) => {
if (!attr?.valueKey) return;
["variants", variantIndex, "attribute_values", attr.valueKey];
const currentValue = attrValues[attr.valueKey];
if (currentValue != null && currentValue !== "" && currentValue !== void 0) {
for (let i = 0; i < attrIndex; i++) {
const prevAttr = myAttributes.value[i];
if (!prevAttr?.valueKey) continue;
const prevFieldName = ["variants", variantIndex, "attribute_values", prevAttr.valueKey];
formRef.value.validateFields([prevFieldName]).catch(() => {
});
}
}
});
});
}
});
}, { deep: true });
useProductStore();
const formRef = ref();
ref(["0"]);
cloneDeep(formFields);
ref(false);
ref([]);
return (_ctx, _push, _parent, _attrs) => {
const _component_ClientOnly = __nuxt_component_0;
_push(ssrRenderComponent(_component_ClientOnly, _attrs, {}, _parent));
};
}
});
const _sfc_setup = _sfc_main.setup;
_sfc_main.setup = (props, ctx) => {
const ssrContext = useSSRContext();
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("views/add/product/information/index.vue");
return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
};
export { _sfc_main as _ };