fix: 日期时间区间支持只读显示,选人组件在只读状态下不再可选
fix: 略微调整表单标签的高度
This commit is contained in:
@ -162,6 +162,9 @@ export const basicComponents = [
|
|||||||
typeName: t('编码组件'),
|
typeName: t('编码组件'),
|
||||||
type: 'auto-code',
|
type: 'auto-code',
|
||||||
options: {
|
options: {
|
||||||
|
labelWidthMode: 'fix',
|
||||||
|
labelFixWidth: 120,
|
||||||
|
responsive: false,
|
||||||
width: '100%',
|
width: '100%',
|
||||||
span: '',
|
span: '',
|
||||||
placeholder: t('请输入编码组件'),
|
placeholder: t('请输入编码组件'),
|
||||||
@ -1151,6 +1154,9 @@ export const infoComponents = [
|
|||||||
typeName: t('组织架构'),
|
typeName: t('组织架构'),
|
||||||
type: 'organization',
|
type: 'organization',
|
||||||
options: {
|
options: {
|
||||||
|
labelWidthMode: 'fix',
|
||||||
|
labelFixWidth: 120,
|
||||||
|
responsive: false,
|
||||||
span: '',
|
span: '',
|
||||||
width: '100%',
|
width: '100%',
|
||||||
defaultValue: undefined,
|
defaultValue: undefined,
|
||||||
|
|||||||
@ -8,38 +8,52 @@ import { ref, watch } from 'vue';
|
|||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
value: String,
|
value: String,
|
||||||
schema: Object,
|
schema: Object,
|
||||||
|
model: Object
|
||||||
});
|
});
|
||||||
|
|
||||||
const fieldValue = ref(genFieldValue(props.value));
|
const fieldValue = ref(genFieldValue(props.value));
|
||||||
|
const textComponents = ['Input', 'AutoCodeRule', 'DatePicker', 'TimePicker', 'Info', 'Text', 'InputTextArea', 'InputNumber'];
|
||||||
|
|
||||||
|
function parseRangeVal(val, component) {
|
||||||
|
if (component !== 'RangePicker' || !val) {
|
||||||
|
return val || '';
|
||||||
|
}
|
||||||
|
return val.split(' ')[0];
|
||||||
|
}
|
||||||
|
|
||||||
function genFieldValue(val) {
|
function genFieldValue(val) {
|
||||||
if (!props?.schema || (!val && val !== 0)) {
|
const schema = props.schema;
|
||||||
|
const model = props.model;
|
||||||
|
const { componentProps, component } = schema;
|
||||||
|
if (model && (component === 'TimeRangePicker' || component === 'RangePicker')) {
|
||||||
|
const fieldArr = schema.field.split(',');
|
||||||
|
const valStart = parseRangeVal(model[fieldArr[0]], component);
|
||||||
|
const valEnd = parseRangeVal(model[fieldArr[1]], component);
|
||||||
|
return `${valStart} - ${valEnd}`;
|
||||||
|
}
|
||||||
|
if (!schema || (!val && val !== 0)) {
|
||||||
return '';
|
return '';
|
||||||
}
|
}
|
||||||
const schema = props.schema;
|
|
||||||
const { componentProps, component } = schema;
|
|
||||||
|
|
||||||
if ([
|
if (textComponents.includes(component)) {
|
||||||
"Input",
|
|
||||||
"AutoCodeRule",
|
|
||||||
"DatePicker",
|
|
||||||
"TimePicker",
|
|
||||||
"Info",
|
|
||||||
"Text",
|
|
||||||
'InputTextArea',
|
|
||||||
'InputNumber'].includes(component)) {
|
|
||||||
return `${componentProps?.addonBefore || ''}${val}${componentProps?.addonAfter || ''}`;
|
return `${componentProps?.addonBefore || ''}${val}${componentProps?.addonAfter || ''}`;
|
||||||
}
|
} else if (component === 'Switch') {
|
||||||
if (component === 'Switch') {
|
|
||||||
return val === 1 ? '是' : '否';
|
return val === 1 ? '是' : '否';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
watch(
|
watch(
|
||||||
() => props.value,
|
() => props.value,
|
||||||
|
(newValue) => {
|
||||||
|
fieldValue.value = genFieldValue(newValue);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
watch(
|
||||||
|
() => props.model,
|
||||||
(newValue) => {
|
(newValue) => {
|
||||||
fieldValue.value = genFieldValue(newValue);
|
fieldValue.value = genFieldValue(newValue);
|
||||||
},
|
},
|
||||||
|
{ deep: true }
|
||||||
);
|
);
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|||||||
@ -1,10 +1,11 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div :class="{ disabled }" class="form-select-user">
|
||||||
<FormItemRest>
|
<FormItemRest>
|
||||||
<SelectUser
|
<SelectUser
|
||||||
|
:key="key"
|
||||||
:multiple="multiple"
|
:multiple="multiple"
|
||||||
:selectedIds="selectedIds"
|
:selectedIds="selectedIds"
|
||||||
:key="key"
|
:disabled="disabled"
|
||||||
@change="
|
@change="
|
||||||
(ids, options) => {
|
(ids, options) => {
|
||||||
emit('update:value', ids.join(','));
|
emit('update:value', ids.join(','));
|
||||||
@ -18,18 +19,11 @@
|
|||||||
}
|
}
|
||||||
"
|
"
|
||||||
>
|
>
|
||||||
<a-input
|
<a-input v-model:value="userNames" :bordered="bordered" :disabled="disabled" :placeholder="placeholder" :size="size" readonly>
|
||||||
readonly
|
<template v-if="prefix" #prefix>
|
||||||
:disabled="disabled"
|
|
||||||
:placeholder="placeholder"
|
|
||||||
v-model:value="userNames"
|
|
||||||
:size="size"
|
|
||||||
:bordered="bordered"
|
|
||||||
>
|
|
||||||
<template #prefix v-if="prefix">
|
|
||||||
<Icon :icon="prefix" />
|
<Icon :icon="prefix" />
|
||||||
</template>
|
</template>
|
||||||
<template #suffix v-if="suffix">
|
<template v-if="suffix" #suffix>
|
||||||
<Icon :icon="suffix" />
|
<Icon :icon="suffix" />
|
||||||
</template>
|
</template>
|
||||||
</a-input>
|
</a-input>
|
||||||
@ -56,12 +50,12 @@
|
|||||||
size: String,
|
size: String,
|
||||||
bordered: {
|
bordered: {
|
||||||
type: Boolean,
|
type: Boolean,
|
||||||
default: true,
|
default: true
|
||||||
},
|
},
|
||||||
multiple: {
|
multiple: {
|
||||||
type: Boolean,
|
type: Boolean,
|
||||||
default: true,
|
default: true
|
||||||
},
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
const userNames = ref<string>();
|
const userNames = ref<string>();
|
||||||
@ -80,7 +74,29 @@
|
|||||||
key.value++;
|
key.value++;
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
immediate: true,
|
immediate: true
|
||||||
},
|
}
|
||||||
);
|
);
|
||||||
</script>
|
</script>
|
||||||
|
<style lang="less">
|
||||||
|
.form-select-user {
|
||||||
|
&.disabled {
|
||||||
|
.ant-input-suffix {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ant-input-affix-wrapper-disabled {
|
||||||
|
background-color: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ant-input[disabled] {
|
||||||
|
color: rgba(0, 0, 0, 0.85);
|
||||||
|
}
|
||||||
|
|
||||||
|
.ant-input-affix-wrapper{
|
||||||
|
border: none;
|
||||||
|
padding-left: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|||||||
@ -65,6 +65,7 @@
|
|||||||
disabledIds?: Array<string>;
|
disabledIds?: Array<string>;
|
||||||
multiple?: Boolean;
|
multiple?: Boolean;
|
||||||
visible?: Boolean;
|
visible?: Boolean;
|
||||||
|
disabled?: Boolean;
|
||||||
}>(),
|
}>(),
|
||||||
{
|
{
|
||||||
selectedIds: () => {
|
selectedIds: () => {
|
||||||
@ -126,6 +127,7 @@
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
async function show() {
|
async function show() {
|
||||||
|
if(props.disabled) return;
|
||||||
data.selectedIds = [];
|
data.selectedIds = [];
|
||||||
data.selectedList = [];
|
data.selectedList = [];
|
||||||
data.page.current = 1;
|
data.page.current = 1;
|
||||||
|
|||||||
@ -2,65 +2,68 @@
|
|||||||
<div>
|
<div>
|
||||||
<!--如果是grid 组件 需要新增grid布局包裹-->
|
<!--如果是grid 组件 需要新增grid布局包裹-->
|
||||||
<template v-if="schema.component.includes('Grid')">
|
<template v-if="schema.component.includes('Grid')">
|
||||||
<Row v-show="getIsShow(schema)" :align="(schema.componentProps as any).align"
|
<Row v-show="getIsShow(schema)" :align="(schema.componentProps as any).align" :gutter="(schema.componentProps as any).gutter ?? 0" :justify="(schema.componentProps as any).justify" type="flex">
|
||||||
:gutter="(schema.componentProps as any).gutter ?? 0" :justify="(schema.componentProps as any).justify"
|
|
||||||
type="flex">
|
|
||||||
<Col v-for="(col, colIndex) in schema.children" :key="colIndex" :span="col.span">
|
<Col v-for="(col, colIndex) in schema.children" :key="colIndex" :span="col.span">
|
||||||
<template v-for="childSchema in col.list" :key="childSchema.field">
|
<template v-for="childSchema in col.list" :key="childSchema.field">
|
||||||
<SimpleFormItem v-if="showComponent(childSchema)" v-model:value="formModel![childSchema.field]"
|
<SimpleFormItem v-if="showComponent(childSchema)" v-model:value="formModel![childSchema.field]" :form-api="formApi" :isWorkFlow="isWorkFlow" :label-col="labelCol" :refreshFieldObj="refreshFieldObj" :schema="childSchema" />
|
||||||
:form-api="formApi" :isWorkFlow="isWorkFlow" :label-col="labelCol"
|
|
||||||
:refreshFieldObj="refreshFieldObj" :schema="childSchema" />
|
|
||||||
</template>
|
</template>
|
||||||
</Col>
|
</Col>
|
||||||
</Row>
|
</Row>
|
||||||
</template>
|
</template>
|
||||||
<!--如果是tab 组件 需要新增tab组件包裹-->
|
<!--如果是tab 组件 需要新增tab组件包裹-->
|
||||||
<template v-else-if="schema.component === 'Tab'">
|
<template v-else-if="schema.component === 'Tab'">
|
||||||
<Tabs v-show="getIsShow(schema)" v-model:activeKey="activeKey"
|
<Tabs v-show="getIsShow(schema)" v-model:activeKey="activeKey" :size="(schema.componentProps as any).tabSize" :tabPosition="(schema.componentProps as any).tabPosition" :type="(schema.componentProps as any).type">
|
||||||
:size="(schema.componentProps as any).tabSize" :tabPosition="(schema.componentProps as any).tabPosition"
|
|
||||||
:type="(schema.componentProps as any).type">
|
|
||||||
<TabPane v-for="(tab, tabIndex) in schema.children" :key="tabIndex" :forceRender="true" :tab="tab.name">
|
<TabPane v-for="(tab, tabIndex) in schema.children" :key="tabIndex" :forceRender="true" :tab="tab.name">
|
||||||
<template v-for="childSchema in tab.list" :key="childSchema.field">
|
<template v-for="childSchema in tab.list" :key="childSchema.field">
|
||||||
<SimpleFormItem v-if="showComponent(childSchema)" v-model:value="formModel![childSchema.field]"
|
<SimpleFormItem v-if="showComponent(childSchema)" v-model:value="formModel![childSchema.field]" :form-api="formApi" :isWorkFlow="isWorkFlow" :refreshFieldObj="refreshFieldObj" :schema="childSchema" />
|
||||||
:form-api="formApi" :isWorkFlow="isWorkFlow" :refreshFieldObj="refreshFieldObj"
|
|
||||||
:schema="childSchema" />
|
|
||||||
</template>
|
</template>
|
||||||
</TabPane>
|
</TabPane>
|
||||||
</Tabs>
|
</Tabs>
|
||||||
</template>
|
</template>
|
||||||
<!--如果是子表单 组件 需要v-model:value="表单对象[字段名]"-->
|
<!--如果是子表单 组件 需要v-model:value="表单对象[字段名]"-->
|
||||||
<template v-else-if="schema.component.includes('Form')">
|
<template v-else-if="schema.component.includes('Form')">
|
||||||
<FormItem v-if="getShow(schema)" v-show="getIsShow(schema)" :key="schema.key"
|
<FormItem
|
||||||
:label="getComponentsProps.showLabel ? schema.label : ''" :label-col="labelCol"
|
v-if="getShow(schema)"
|
||||||
:labelAlign="formProps?.labelAlign" :name="schema.field" :wrapperCol="itemLabelWidthProp.wrapperCol">
|
v-show="getIsShow(schema)"
|
||||||
<component :is="formComponent(schema)" v-model:value="formModel![schema.field]" :disabled="getDisable"
|
:key="schema.key"
|
||||||
:size="formProps?.size" v-bind="schema.componentProps" />
|
:label="getComponentsProps.showLabel ? schema.label : ''"
|
||||||
|
:label-col="labelCol"
|
||||||
|
:labelAlign="formProps?.labelAlign"
|
||||||
|
:name="schema.field"
|
||||||
|
:wrapperCol="itemLabelWidthProp.wrapperCol"
|
||||||
|
>
|
||||||
|
<component :is="formComponent(schema)" v-model:value="formModel![schema.field]" :disabled="getDisable" :size="formProps?.size" v-bind="schema.componentProps" />
|
||||||
</FormItem>
|
</FormItem>
|
||||||
</template>
|
</template>
|
||||||
<!--如果是子表单 组件 需要v-model:value="表单对象[字段名]"-->
|
<!--如果是子表单 组件 需要v-model:value="表单对象[字段名]"-->
|
||||||
<template v-else-if="schema.component.includes('OneForOne')">
|
<template v-else-if="schema.component.includes('OneForOne')">
|
||||||
<FormItem v-if="getShow(schema)" v-show="getIsShow(schema)" :key="schema.key"
|
<FormItem
|
||||||
:label="getComponentsProps.showLabel ? schema.label : ''" :label-col="labelCol"
|
v-if="getShow(schema)"
|
||||||
:labelAlign="formProps?.labelAlign" :name="schema.field" :wrapperCol="itemLabelWidthProp.wrapperCol">
|
v-show="getIsShow(schema)"
|
||||||
<component :is="componentMap.get(schema.component)" v-model:value="formModel![schema.field]"
|
:key="schema.key"
|
||||||
:disabled="getDisable" :refreshFieldObj="refreshFieldObj" :size="formProps?.size"
|
:label="getComponentsProps.showLabel ? schema.label : ''"
|
||||||
v-bind="schema.componentProps" />
|
:label-col="labelCol"
|
||||||
|
:labelAlign="formProps?.labelAlign"
|
||||||
|
:name="schema.field"
|
||||||
|
:wrapperCol="itemLabelWidthProp.wrapperCol"
|
||||||
|
>
|
||||||
|
<component :is="componentMap.get(schema.component)" v-model:value="formModel![schema.field]" :disabled="getDisable" :refreshFieldObj="refreshFieldObj" :size="formProps?.size" v-bind="schema.componentProps" />
|
||||||
</FormItem>
|
</FormItem>
|
||||||
</template>
|
</template>
|
||||||
<template v-else-if="schema.component === 'TableLayout'">
|
<template v-else-if="schema.component === 'TableLayout'">
|
||||||
<TableLayoutPreview v-if="getShow(schema)" v-show="getIsShow(schema)" :element="schema">
|
<TableLayoutPreview v-if="getShow(schema)" v-show="getIsShow(schema)" :element="schema">
|
||||||
<template #tdElement="{ tdElement }">
|
<template #tdElement="{ tdElement }">
|
||||||
<div class="h-full">
|
<div class="h-full">
|
||||||
<div :style="{
|
<div
|
||||||
|
:style="{
|
||||||
height: tdElement.height ? tdElement.height + 'px' : '',
|
height: tdElement.height ? tdElement.height + 'px' : '',
|
||||||
minHeight: (tdElement.height || '42') + 'px',
|
minHeight: (tdElement.height || '42') + 'px',
|
||||||
overflow: 'hidden',
|
overflow: 'hidden',
|
||||||
padding: '10px'
|
padding: '10px'
|
||||||
}">
|
}"
|
||||||
|
>
|
||||||
<template v-for="childSchema in tdElement.children" :key="childSchema.field">
|
<template v-for="childSchema in tdElement.children" :key="childSchema.field">
|
||||||
<SimpleFormItem v-if="showComponent(childSchema)"
|
<SimpleFormItem v-if="showComponent(childSchema)" v-model:value="formModel![childSchema.field]" :form-api="formApi" :isWorkFlow="isWorkFlow" :refreshFieldObj="refreshFieldObj" :schema="childSchema" />
|
||||||
v-model:value="formModel![childSchema.field]" :form-api="formApi"
|
|
||||||
:isWorkFlow="isWorkFlow" :refreshFieldObj="refreshFieldObj" :schema="childSchema" />
|
|
||||||
</template>
|
</template>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -69,41 +72,51 @@
|
|||||||
</template>
|
</template>
|
||||||
<!--如果是时间区间 组件 需要v-model:startField="表单对象[字段名]" v-model:endField="表单对象[字段名]"-->
|
<!--如果是时间区间 组件 需要v-model:startField="表单对象[字段名]" v-model:endField="表单对象[字段名]"-->
|
||||||
<template v-else-if="schema.component.includes('Range')">
|
<template v-else-if="schema.component.includes('Range')">
|
||||||
<FormItem v-if="getShow(schema)" v-show="getIsShow(schema)" :key="schema.key"
|
<FormItem
|
||||||
:label="getComponentsProps.showLabel ? schema.label : ''" :label-col="labelCol" :name="schema.field"
|
v-if="getShow(schema)"
|
||||||
:rules="rules" :validateTrigger="['blur', 'change']" :wrapperCol="itemLabelWidthProp.wrapperCol">
|
v-show="getIsShow(schema)"
|
||||||
<component :is="componentMap.get(schema.component)" v-model:endField="schema.field.split(',')[1]"
|
:key="schema.key"
|
||||||
v-model:startField="schema.field.split(',')[0]" v-model:value="formModel![schema.field]"
|
:label="getComponentsProps.showLabel ? schema.label : ''"
|
||||||
:disabled="getDisable" :size="formProps?.size" v-bind="schema.componentProps" />
|
:label-col="labelCol"
|
||||||
|
:name="schema.field"
|
||||||
|
:rules="rules"
|
||||||
|
:validateTrigger="['blur', 'change']"
|
||||||
|
:wrapperCol="itemLabelWidthProp.wrapperCol"
|
||||||
|
>
|
||||||
|
<template v-if="getDisable && readonlySupport(schema.component)">
|
||||||
|
<readonly :schema="schema" :model="formModel" />
|
||||||
|
</template>
|
||||||
|
<template v-else>
|
||||||
|
<component
|
||||||
|
:is="componentMap.get(schema.component)"
|
||||||
|
v-model:endField="schema.field.split(',')[1]"
|
||||||
|
v-model:startField="schema.field.split(',')[0]"
|
||||||
|
v-model:value="formModel![schema.field]"
|
||||||
|
:disabled="getDisable"
|
||||||
|
:size="formProps?.size"
|
||||||
|
v-bind="schema.componentProps"
|
||||||
|
/>
|
||||||
|
</template>
|
||||||
</FormItem>
|
</FormItem>
|
||||||
<!-- 因为Range会变为 开始时间 和 结束时间 2个属性给与表单数据 所以需要2个隐藏框绑定 starTime 和 endTime -->
|
<!-- 因为Range会变为 开始时间 和 结束时间 2个属性给与表单数据 所以需要2个隐藏框绑定 starTime 和 endTime -->
|
||||||
<FormItem v-show="false" :key="schema.key" :label="getComponentsProps.showLabel ? schema.label : ''"
|
<FormItem v-show="false" :key="schema.key" :label="getComponentsProps.showLabel ? schema.label : ''" :name="schema.field.split(',')[0]">
|
||||||
:name="schema.field.split(',')[0]">
|
|
||||||
<input type="hidden" />
|
<input type="hidden" />
|
||||||
</FormItem>
|
</FormItem>
|
||||||
<FormItem v-show="false" :key="schema.key" :label="getComponentsProps.showLabel ? schema.label : ''"
|
<FormItem v-show="false" :key="schema.key" :label="getComponentsProps.showLabel ? schema.label : ''" :name="schema.field.split(',')[1]">
|
||||||
:name="schema.field.split(',')[1]">
|
|
||||||
<input type="hidden" />
|
<input type="hidden" />
|
||||||
</FormItem>
|
</FormItem>
|
||||||
</template>
|
</template>
|
||||||
<!--如果checked 或者 switch组件 需要v-model:checked="表单对象[字段名]" "-->
|
<!--如果checked 或者 switch组件 需要v-model:checked="表单对象[字段名]" "-->
|
||||||
<template v-else-if="checkedValueComponents.includes(schema.component)">
|
<template v-else-if="checkedValueComponents.includes(schema.component)">
|
||||||
<FormItem v-if="getShow(schema)" v-show="getIsShow(schema)" :key="schema.key"
|
<FormItem v-if="getShow(schema)" v-show="getIsShow(schema)" :key="schema.key" :label="getComponentsProps.showLabel ? schema.label : ''" :label-col="labelCol" :name="schema.field" :rules="rules" :wrapperCol="itemLabelWidthProp.wrapperCol">
|
||||||
:label="getComponentsProps.showLabel ? schema.label : ''" :label-col="labelCol" :name="schema.field"
|
<component :is="componentMap.get(schema.component)" :key="refreshFieldObj[schema.field]" v-model:checked="formModel![schema.field]" :disabled="getDisable" :size="formProps?.size" v-bind="getComponentsProps" />
|
||||||
:rules="rules" :wrapperCol="itemLabelWidthProp.wrapperCol">
|
|
||||||
<component :is="componentMap.get(schema.component)" :key="refreshFieldObj[schema.field]"
|
|
||||||
v-model:checked="formModel![schema.field]" :disabled="getDisable" :size="formProps?.size"
|
|
||||||
v-bind="getComponentsProps" />
|
|
||||||
</FormItem>
|
</FormItem>
|
||||||
</template>
|
</template>
|
||||||
<!--如果是card 组件 需要新增card组件包裹-->
|
<!--如果是card 组件 需要新增card组件包裹-->
|
||||||
<template v-else-if="schema.component.includes('Card')">
|
<template v-else-if="schema.component.includes('Card')">
|
||||||
<CollapseContainer v-show="getIsShow(schema)" :bordered="false" :hasLeftBorder="true"
|
<CollapseContainer v-show="getIsShow(schema)" :bordered="false" :hasLeftBorder="true" :title="(schema.componentProps as any).title">
|
||||||
:title="(schema.componentProps as any).title">
|
|
||||||
<template v-for="childSchema in schema.children![0].list" :key="childSchema.field">
|
<template v-for="childSchema in schema.children![0].list" :key="childSchema.field">
|
||||||
<SimpleFormItem v-if="showComponent(childSchema)" v-model:value="formModel![childSchema.field]"
|
<SimpleFormItem v-if="showComponent(childSchema)" v-model:value="formModel![childSchema.field]" :form-api="formApi" :isWorkFlow="isWorkFlow" :refreshFieldObj="refreshFieldObj" :schema="childSchema" />
|
||||||
:form-api="formApi" :isWorkFlow="isWorkFlow" :refreshFieldObj="refreshFieldObj"
|
|
||||||
:schema="childSchema" />
|
|
||||||
</template>
|
</template>
|
||||||
</CollapseContainer>
|
</CollapseContainer>
|
||||||
</template>
|
</template>
|
||||||
@ -115,25 +128,37 @@
|
|||||||
</template>
|
</template>
|
||||||
<!--如果是 意见簿 组件 需要使用defaultValue直接赋值 -->
|
<!--如果是 意见簿 组件 需要使用defaultValue直接赋值 -->
|
||||||
<template v-else-if="schema.component.includes('Opinion')">
|
<template v-else-if="schema.component.includes('Opinion')">
|
||||||
<FormItem v-if="getShow(schema)" v-show="getIsShow(schema)" :key="schema.key"
|
<FormItem
|
||||||
:label="getComponentsProps.showLabel ? schema.label : ''" :label-col="labelCol" :name="schema.field"
|
v-if="getShow(schema)"
|
||||||
:rules="rules" :validateTrigger="['blur', 'change']" :wrapperCol="itemLabelWidthProp.wrapperCol">
|
v-show="getIsShow(schema)"
|
||||||
<component :is="componentMap.get(schema.component)" :key="refreshFieldObj[schema.field]"
|
:key="schema.key"
|
||||||
:disabled="getDisable" :size="formProps?.size" :value="schema.defaultValue"
|
:label="getComponentsProps.showLabel ? schema.label : ''"
|
||||||
v-bind="getComponentsProps" />
|
:label-col="labelCol"
|
||||||
|
:name="schema.field"
|
||||||
|
:rules="rules"
|
||||||
|
:validateTrigger="['blur', 'change']"
|
||||||
|
:wrapperCol="itemLabelWidthProp.wrapperCol"
|
||||||
|
>
|
||||||
|
<component :is="componentMap.get(schema.component)" :key="refreshFieldObj[schema.field]" :disabled="getDisable" :size="formProps?.size" :value="schema.defaultValue" v-bind="getComponentsProps" />
|
||||||
</FormItem>
|
</FormItem>
|
||||||
</template>
|
</template>
|
||||||
<template v-else>
|
<template v-else>
|
||||||
<FormItem v-if="getShow(schema)" v-show="getIsShow(schema)" :key="schema.key"
|
<FormItem
|
||||||
:label="getComponentsProps.showLabel ? schema.label : ''" :label-col="labelCol" :name="schema.field"
|
v-if="getShow(schema)"
|
||||||
:rules="rules" :validateTrigger="['blur', 'change']" :wrapperCol="itemLabelWidthProp.wrapperCol">
|
v-show="getIsShow(schema)"
|
||||||
|
:key="schema.key"
|
||||||
|
:label="getComponentsProps.showLabel ? schema.label : ''"
|
||||||
|
:label-col="labelCol"
|
||||||
|
:name="schema.field"
|
||||||
|
:rules="rules"
|
||||||
|
:validateTrigger="['blur', 'change']"
|
||||||
|
:wrapperCol="itemLabelWidthProp.wrapperCol"
|
||||||
|
>
|
||||||
<template v-if="getDisable && readonlySupport(schema.component)">
|
<template v-if="getDisable && readonlySupport(schema.component)">
|
||||||
<readonly :schema="schema" :value="formModel![schema.field]" />
|
<readonly :schema="schema" :value="formModel![schema.field]" />
|
||||||
</template>
|
</template>
|
||||||
<template v-else>
|
<template v-else>
|
||||||
<component :is="defaultComponent(schema)" :key="refreshFieldObj[schema.field]"
|
<component :is="defaultComponent(schema)" :key="refreshFieldObj[schema.field]" v-model:value="formModel![schema.field]" :disabled="getDisable" :size="formProps?.size" v-bind="getComponentsProps" />
|
||||||
v-model:value="formModel![schema.field]" :disabled="getDisable" :size="formProps?.size"
|
|
||||||
v-bind="getComponentsProps" />
|
|
||||||
</template>
|
</template>
|
||||||
</FormItem>
|
</FormItem>
|
||||||
</template>
|
</template>
|
||||||
@ -392,7 +417,7 @@ function showComponent(schema) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function readonlySupport(name) {
|
function readonlySupport(name) {
|
||||||
return /Input|AutoCodeRule|DatePicker|Text|TimePicker|Info/.test(name)
|
return /Input|AutoCodeRule|DatePicker|Text|TimePicker|Info|Range/.test(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
function getShow(schema: FormSchema): boolean {
|
function getShow(schema: FormSchema): boolean {
|
||||||
@ -421,7 +446,7 @@ function getIsShow(schema: FormSchema): boolean {
|
|||||||
:deep(.ant-form-item-label > label) {
|
:deep(.ant-form-item-label > label) {
|
||||||
white-space: normal;
|
white-space: normal;
|
||||||
display: inline;
|
display: inline;
|
||||||
line-height: 28px;
|
line-height: 32px;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
<style lang="less">
|
<style lang="less">
|
||||||
|
|||||||
Reference in New Issue
Block a user