EASYAIuniappNewUI/dist/dev/mp-weixin/components/firstui/fui-col/fui-col.js
2025-02-08 18:50:38 +08:00

143 lines
3.9 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"use strict";
const common_vendor = require("../../../common/vendor.js");
const _sfc_main = {
name: "fui-col",
options: {
virtualHost: true
},
props: {
//栅格占据的列数
span: {
type: Number,
default: 24
},
//栅格左侧的间隔格数
offset: {
type: Number,
default: 0
},
//栅格向右移动格数
pushLeft: {
type: Number,
default: -1
},
//栅格向左移动格数
pullRight: {
type: Number,
default: -1
},
//max-width:767px 响应式栅格数或者栅格属性对象
//Number时表示在此屏幕宽度下栅格占据的列数。Object时可配置多个描述{span: 4, offset: 4}
xs: {
type: [Number, Object],
default: -1
},
//max-width:768px 响应式栅格数或者栅格属性对象
sm: {
type: [Number, Object],
default: -1
},
//max-width:992px 响应式栅格数或者栅格属性对象
md: {
type: [Number, Object],
default: -1
},
//max-width:1200px 响应式栅格数或者栅格属性对象
lg: {
type: [Number, Object],
default: -1
},
//max-width:1920px 响应式栅格数或者栅格属性对象
xl: {
type: [Number, Object],
default: -1
}
},
data() {
return {
classList: "fui-col",
gutter: 0,
sizeClass: "",
parentWidth: 0,
nvueWidth: 0,
marginLeft: 0,
right: 0,
left: 0
};
},
created() {
let parent = this.$parent;
while (parent && parent.$options.componentName !== "fuiRow") {
parent = parent.$parent;
}
this.updateGutter(parent.gutter);
parent.$watch("gutter", (gutter) => {
this.updateGutter(gutter);
});
this.updateCol();
},
computed: {
sizeChange() {
let {
span,
offset,
pullRight,
pushLeft
} = this;
return `${span}-${offset}-${pullRight}-${pushLeft}`;
}
},
watch: {
sizeChange: {
immediate: true,
handler(newVal) {
this.updateCol();
}
}
},
methods: {
updateGutter(parentGutter) {
parentGutter = Number(parentGutter);
if (!isNaN(parentGutter)) {
this.gutter = parentGutter / 2;
}
},
updateCol() {
let classList = ["fui-col"];
classList.push("fui-col-" + this.span);
classList.push("fui-col-offset-" + this.offset);
if (this.pushLeft !== -1) {
this.pushLeft && classList.push("fui-col-push-" + this.pushLeft);
}
if (this.pullRight !== -1) {
this.pullRight && classList.push("fui-col-pull-" + this.pullRight);
}
this.screenSizeSet("xs", classList);
this.screenSizeSet("sm", classList);
this.screenSizeSet("md", classList);
this.screenSizeSet("lg", classList);
this.screenSizeSet("xl", classList);
this.classList = classList;
},
screenSizeSet(screen, classList) {
if (typeof this[screen] === "number" && this[screen] !== -1) {
classList.push("fui-col-" + screen + "-" + this[screen]);
} else if (typeof this[screen] === "object") {
typeof this[screen].offset === "number" && classList.push("fui-col-" + screen + "-offset-" + this[screen].offset);
typeof this[screen].pushLeft === "number" && classList.push("fui-col-" + screen + "-push-" + this[screen].pushLeft);
typeof this[screen].pullRight === "number" && classList.push("fui-col-" + screen + "-pull-" + this[screen].pullRight);
typeof this[screen].span === "number" && classList.push("fui-col-" + screen + "-" + this[screen].span);
}
}
}
};
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
return {
a: common_vendor.n($data.classList),
b: `${Number($data.gutter)}rpx`,
c: `${Number($data.gutter)}rpx`
};
}
const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-d8b502e3"]]);
wx.createComponent(Component);