@cqmcui/cqmcui
Version:
轻量级移动端 Vue2、Vue3 组件库(支持小程序开发)
123 lines (122 loc) • 3.67 kB
JavaScript
import { p as pxCheck } from "./pxCheck-c6b9f6b7.js";
import { inject, provide, computed, resolveComponent, openBlock, createBlock, normalizeClass, normalizeStyle, withCtx, createElementBlock, renderSlot, createTextVNode, toDisplayString, createCommentVNode, createElementVNode } from "vue";
import { c as createComponent } from "./component-81a4c1d0.js";
import Cell from "./Cell.js";
import { _ as _export_sfc } from "./_plugin-vue_export-helper-cc2b3d55.js";
import "../locale/lang";
import "./index-54d03fc1.js";
import "@cqmcui/icons-vue";
const { componentName, create } = createComponent("form-item");
const _sfc_main = create({
inheritAttrs: false,
props: {
prop: {
type: String,
default: ""
},
label: {
type: String,
default: ""
},
rules: {
type: Array,
default: () => {
return [];
}
},
required: {
type: Boolean,
default: false
},
showErrorMessage: {
type: Boolean,
default: true
},
showErrorLine: {
type: Boolean,
default: true
},
labelWidth: {
type: [String, Number],
default: ""
},
labelAlign: {
type: String,
default: ""
},
errorMessageAlign: {
type: String,
default: ""
},
bodyAlign: {
type: String,
default: ""
}
},
components: {
[Cell.name]: Cell
},
emits: [""],
setup(props, { emit, slots }) {
const parent = inject("formErrorTip");
provide("form", {
props
});
const labelStyle = computed(() => {
return {
width: pxCheck(props.labelWidth),
textAlign: props.labelAlign
};
});
const bodyStyle = computed(() => {
return {
textAlign: props.bodyAlign
};
});
const errorMessageStyle = computed(() => {
return {
textAlign: props.errorMessageAlign
};
});
const getSlots = (name) => slots[name];
return { parent, labelStyle, bodyStyle, errorMessageStyle, getSlots };
}
});
const _hoisted_1 = { class: "cqmc-cell__value cqmc-form-item__body" };
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
const _component_nut_cell = resolveComponent("cqmc-cell");
return openBlock(), createBlock(_component_nut_cell, {
class: normalizeClass(["cqmc-form-item", [{ error: _ctx.parent[_ctx.prop], line: _ctx.showErrorLine }, _ctx.$attrs.class]]),
style: normalizeStyle(_ctx.$attrs.style)
}, {
default: withCtx(() => [
_ctx.label || _ctx.getSlots("label") ? (openBlock(), createElementBlock("view", {
key: 0,
class: normalizeClass(["cqmc-cell__title cqmc-form-item__label", { required: _ctx.required }]),
style: normalizeStyle(_ctx.labelStyle)
}, [
renderSlot(_ctx.$slots, "label", {}, () => [
createTextVNode(toDisplayString(_ctx.label), 1)
])
], 6)) : createCommentVNode("", true),
createElementVNode("view", _hoisted_1, [
createElementVNode("view", {
class: "cqmc-form-item__body__slots",
style: normalizeStyle(_ctx.bodyStyle)
}, [
renderSlot(_ctx.$slots, "default")
], 4),
_ctx.parent[_ctx.prop] && _ctx.showErrorMessage ? (openBlock(), createElementBlock("view", {
key: 0,
class: "cqmc-form-item__body__tips",
style: normalizeStyle(_ctx.errorMessageStyle)
}, toDisplayString(_ctx.parent[_ctx.prop]), 5)) : createCommentVNode("", true)
])
]),
_: 3
}, 8, ["class", "style"]);
}
const FormItem = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
export {
FormItem as default
};