hookehuyr

feat(form-components): 为详情页表单标签添加置灰样式

新增.info-page-label CSS类,在所有表单组件中添加page_type为info时自动应用该样式,统一详情页表单标签的展示效果。
......@@ -108,6 +108,10 @@
border-bottom: 1px solid #05ae33;
}
.info-page-label {
color: #999;
}
.toast-fail {
width: 30vw;
text-align: justify;
......
......@@ -10,7 +10,7 @@
<div class="label">
<span v-if="item.component_props.disabled_show"><van-icon name="https://cdn.ipadbiz.cn/custom_form/icon/closed-eye1.png" /></span>
<span v-if="item.component_props.required" style="color: red">*&nbsp;</span>
<span :class="[ReadonlyShow ? 'readonly-show' : '']">{{ item.component_props.label }}</span>
<span :class="[ReadonlyShow ? 'readonly-show' : '', InfoPageLabelShow ? 'info-page-label' : '']">{{ item.component_props.label }}</span>
</div>
<van-field :name="item.name" :rules="rules">
<template #input>
......@@ -41,6 +41,11 @@ const ReadonlyShow = computed(() => {
return ($route.query.page_type === 'flow' || $route.query.page_type === 'edit') && !props.item.component_props.readonly;
});
// 详情页标签置灰
const InfoPageLabelShow = computed(() => {
return $route.query.page_type === 'info';
});
// 注入子组件属性
provide('props', props.item);
......
......@@ -10,7 +10,7 @@
<div class="label">
<span v-if="item.component_props.disabled_show"><van-icon name="https://cdn.ipadbiz.cn/custom_form/icon/closed-eye1.png" /></span>
<span v-if="item.component_props.required" style="color: red">*&nbsp;</span>
<span :class="[ReadonlyShow ? 'readonly-show' : '']">{{ item.component_props.label }}</span>
<span :class="[ReadonlyShow ? 'readonly-show' : '', InfoPageLabelShow ? 'info-page-label' : '']">{{ item.component_props.label }}</span>
</div>
<van-field :name="item.key" :rules="rules" style="padding: 0;">
<template #input>
......@@ -36,6 +36,11 @@ const ReadonlyShow = computed(() => {
return ($route.query.page_type === 'flow' || $route.query.page_type === 'edit') && !props.item.component_props.readonly;
});
// 详情页标签置灰
const InfoPageLabelShow = computed(() => {
return $route.query.page_type === 'info';
});
if (props.item.component_props.default) { // 存在默认值时业务逻辑
if (!props.item.component_props.default?.city_code) { // 默认值为空
props.item.component_props.default.picker_value = '';
......
......@@ -10,7 +10,7 @@
<div class="label">
<span v-if="item.component_props.disabled_show"><van-icon name="https://cdn.ipadbiz.cn/custom_form/icon/closed-eye1.png" /></span>
<span v-if="item.component_props.required" style="color: red">*&nbsp;</span>
<span :class="[ReadonlyShow ? 'readonly-show' : '']">{{ item.component_props.label }}</span>
<span :class="[ReadonlyShow ? 'readonly-show' : '', InfoPageLabelShow ? 'info-page-label' : '']">{{ item.component_props.label }}</span>
</div>
<van-field
v-model="item.value"
......@@ -49,6 +49,11 @@ const ReadonlyShow = computed(() => {
return ($route.query.page_type === 'flow' || $route.query.page_type === 'edit') && !props.item.component_props.readonly;
});
// 详情页标签置灰
const InfoPageLabelShow = computed(() => {
return $route.query.page_type === 'info';
});
const show = ref(false);
const formatDate = (date) =>
......
......@@ -10,7 +10,7 @@
<div class="label">
<span v-if="item.component_props.disabled_show"><van-icon name="https://cdn.ipadbiz.cn/custom_form/icon/closed-eye1.png" /></span>
<span v-if="item.component_props.required" style="color: red">*&nbsp;</span>
<span :class="[ReadonlyShow ? 'readonly-show' : '']">{{ item.component_props.label }}</span>
<span :class="[ReadonlyShow ? 'readonly-show' : '', InfoPageLabelShow ? 'info-page-label' : '']">{{ item.component_props.label }}</span>
<span v-if="item.component_props.max" style="color: gray">
(最多可选数:&nbsp;{{ item.component_props.max }})
</span>
......@@ -81,6 +81,11 @@ const ReadonlyShow = computed(() => {
return ($route.query.page_type === 'flow' || $route.query.page_type === 'edit') && !props.item.component_props.readonly;
});
// 详情页标签置灰
const InfoPageLabelShow = computed(() => {
return $route.query.page_type === 'info';
});
// 校验函数返回 true 表示校验通过,false 表示不通过
const required = props.item.component_props.required;
const validator = (val) => {
......
......@@ -10,7 +10,7 @@
<div class="label">
<span v-if="item.component_props.disabled_show"><van-icon name="https://cdn.ipadbiz.cn/custom_form/icon/closed-eye1.png" /></span>
<span v-if="item.component_props.required" style="color: red">*&nbsp;</span>
<span :class="[ReadonlyShow ? 'readonly-show' : '']">{{ item.component_props.label }}</span>
<span :class="[ReadonlyShow ? 'readonly-show' : '', InfoPageLabelShow ? 'info-page-label' : '']">{{ item.component_props.label }}</span>
</div>
<div v-if="item.component_props.readonly" style="padding: 0.5rem 1rem 1rem 0.3rem; font-size: 0.9rem;">
{{ item.value }}
......@@ -59,6 +59,11 @@ const HideShow = computed(() => {
const ReadonlyShow = computed(() => {
return ($route.query.page_type === 'flow' || $route.query.page_type === 'edit') && !props.item.component_props.readonly;
});
// 详情页标签置灰
const InfoPageLabelShow = computed(() => {
return $route.query.page_type === 'info';
});
const showPicker = ref(false);
const currentDate = ref([]);
const readonly = props.item.component_props.readonly;
......
......@@ -10,7 +10,7 @@
<div class="label">
<span v-if="item.component_props.disabled_show"><van-icon name="https://cdn.ipadbiz.cn/custom_form/icon/closed-eye1.png" /></span>
<span v-if="item.component_props.required" style="color: red">*&nbsp;</span>
<span :class="[ReadonlyShow ? 'readonly-show' : '']">{{ item.component_props.label }}</span>
<span :class="[ReadonlyShow ? 'readonly-show' : '', InfoPageLabelShow ? 'info-page-label' : '']">{{ item.component_props.label }}</span>
</div>
<van-field
v-model="item.value"
......@@ -55,6 +55,11 @@ const HideShow = computed(() => {
const ReadonlyShow = computed(() => {
return ($route.query.page_type === 'flow' || $route.query.page_type === 'edit') && !props.item.component_props.readonly;
});
// 详情页标签置灰
const InfoPageLabelShow = computed(() => {
return $route.query.page_type === 'info';
});
const showPicker = ref(false);
const readonly = props.item.component_props.readonly;
......
......@@ -10,7 +10,7 @@
<div class="label">
<span v-if="item.component_props.disabled_show"><van-icon name="https://cdn.ipadbiz.cn/custom_form/icon/closed-eye1.png" /></span>
<span v-if="item.component_props.required" style="color: red">*&nbsp;</span>
<span :class="[ReadonlyShow ? 'readonly-show' : '']">{{ item.component_props.label }}</span>
<span :class="[ReadonlyShow ? 'readonly-show' : '', InfoPageLabelShow ? 'info-page-label' : '']">{{ item.component_props.label }}</span>
</div>
<van-field
v-model="item.value"
......@@ -43,6 +43,11 @@ const HideShow = computed(() => {
const ReadonlyShow = computed(() => {
return ($route.query.page_type === 'flow' || $route.query.page_type === 'edit') && !props.item.component_props.readonly;
});
// 详情页标签置灰
const InfoPageLabelShow = computed(() => {
return $route.query.page_type === 'info';
});
onMounted(() => {
props.item.value = props.item.component_props.default;
})
......
......@@ -10,7 +10,7 @@
<div class="label">
<span v-if="item.component_props.disabled_show"><van-icon name="https://cdn.ipadbiz.cn/custom_form/icon/closed-eye1.png" /></span>
<span v-if="item.component_props.required" style="color: red">*&nbsp;</span>
<span :class="[ReadonlyShow ? 'readonly-show' : '']">{{ item.component_props.label }}</span>
<span :class="[ReadonlyShow ? 'readonly-show' : '', InfoPageLabelShow ? 'info-page-label' : '']">{{ item.component_props.label }}</span>
</div>
<div
v-if="item.component_props.note"
......@@ -123,6 +123,11 @@ const HideShow = computed(() => {
const ReadonlyShow = computed(() => {
return ($route.query.page_type === 'flow' || $route.query.page_type === 'edit') && !props.item.component_props.readonly;
});
// 详情页标签置灰
const InfoPageLabelShow = computed(() => {
return $route.query.page_type === 'info';
});
const emit = defineEmits(["active"]);
const show_empty = ref(false);
const default_file = ref(props.item.component_props.default);
......
......@@ -10,7 +10,7 @@
<div class="label">
<span v-if="item.component_props.disabled_show"><van-icon name="https://cdn.ipadbiz.cn/custom_form/icon/closed-eye1.png" /></span>
<span v-if="item.component_props.required" style="color: red">*&nbsp;</span>
<span :class="[ReadonlyShow ? 'readonly-show' : '']">{{ item.component_props.label }}</span>
<span :class="[ReadonlyShow ? 'readonly-show' : '', InfoPageLabelShow ? 'info-page-label' : '']">{{ item.component_props.label }}</span>
</div>
<div v-if="item.component_props.note" class="note" v-html="item.component_props.note" />
<van-field
......@@ -66,6 +66,11 @@ const ReadonlyShow = computed(() => {
return ($route.query.page_type === 'flow' || $route.query.page_type === 'edit') && !props.item.component_props.readonly;
});
// 详情页标签置灰
const InfoPageLabelShow = computed(() => {
return $route.query.page_type === 'info';
});
const gender_value = ref(props.item.component_props.default);
onMounted(() => {
......
......@@ -10,7 +10,7 @@
<div class="label">
<span v-if="item.component_props.disabled_show"><van-icon name="https://cdn.ipadbiz.cn/custom_form/icon/closed-eye1.png" /></span>
<span v-if="item.component_props.required" style="color: red">*&nbsp;</span>
<span :class="[ReadonlyShow ? 'readonly-show' : '']">{{ item.component_props.label }}</span>
<span :class="[ReadonlyShow ? 'readonly-show' : '', InfoPageLabelShow ? 'info-page-label' : '']">{{ item.component_props.label }}</span>
</div>
<div v-if="item.component_props.note" class="note" v-html="item.component_props.note" />
<div>
......@@ -52,6 +52,11 @@ const ReadonlyShow = computed(() => {
return ($route.query.page_type === 'flow' || $route.query.page_type === 'edit') && !props.item.component_props.readonly;
});
// 详情页标签置灰
const InfoPageLabelShow = computed(() => {
return $route.query.page_type === 'info';
});
// let obj = {
// "field_10_group[0]_7653" : "1",
// "field_10_group[1]_4154" : "11",
......
......@@ -10,7 +10,7 @@
<div class="label">
<span v-if="item.component_props.disabled_show"><van-icon name="https://cdn.ipadbiz.cn/custom_form/icon/closed-eye1.png" /></span>
<span v-if="item.component_props.required" style="color: red">*&nbsp;</span>
<span :class="[ReadonlyShow ? 'readonly-show' : '']">{{ item.component_props.label }}</span>
<span :class="[ReadonlyShow ? 'readonly-show' : '', InfoPageLabelShow ? 'info-page-label' : '']">{{ item.component_props.label }}</span>
</div>
<!-- <div v-if="item.component_props.readonly" style="padding: 0.5rem 1rem;">{{ item.value }}</div> -->
<!-- <van-field
......@@ -88,6 +88,11 @@ const HideShow = computed(() => {
const ReadonlyShow = computed(() => {
return ($route.query.page_type === 'flow' || $route.query.page_type === 'edit') && !props.item.component_props.readonly;
});
// 详情页标签置灰
const InfoPageLabelShow = computed(() => {
return $route.query.page_type === 'info';
});
// 是否显示编辑按钮
const IdEditShow = computed(() => {
return ($route.query.page_type === 'edit') && data_type === 'encrypt_mode';
......
......@@ -10,7 +10,7 @@
<div class="label">
<span v-if="item.component_props.disabled_show"><van-icon name="https://cdn.ipadbiz.cn/custom_form/icon/closed-eye1.png" /></span>
<span v-if="item.component_props.required" style="color: red">*&nbsp;</span>
<span :class="[ReadonlyShow ? 'readonly-show' : '']">{{ item.component_props.label }}</span>
<span :class="[ReadonlyShow ? 'readonly-show' : '', InfoPageLabelShow ? 'info-page-label' : '']">{{ item.component_props.label }}</span>
</div>
<div
v-if="item.component_props.note"
......@@ -92,6 +92,11 @@ const HideShow = computed(() => {
const ReadonlyShow = computed(() => {
return ($route.query.page_type === 'flow' || $route.query.page_type === 'edit') && !props.item.component_props.readonly;
});
// 详情页标签置灰
const InfoPageLabelShow = computed(() => {
return $route.query.page_type === 'info';
});
// 默认图片列表
const default_tmp = ref(props.item.component_props.default)
const default_list = ref([]);
......
......@@ -9,7 +9,7 @@
<div v-if="HideShow" class="multi-rule-field-page">
<div class="label">
<span v-if="item.component_props.required" class="required" style="color: red">&nbsp;*</span>
<span :class="[ReadonlyShow ? 'readonly-show' : '']">{{ item.component_props.label }}</span>
<span :class="[ReadonlyShow ? 'readonly-show' : '', InfoPageLabelShow ? 'info-page-label' : '']">{{ item.component_props.label }}</span>
<span v-if="item.component_props.min_count" style="color: #999; font-size: 0.85rem;">(最少选{{ item.component_props.min_count }}项)</span>
</div>
<van-field :name="item.key" :rules="rules" :border="false" style="padding-bottom: 0">
......@@ -75,6 +75,11 @@ const HideShow = computed(() => {
const ReadonlyShow = computed(() => {
return ($route.query.page_type === 'flow' || $route.query.page_type === 'edit') && !props.item.component_props.readonly;
});
// 详情页标签置灰
const InfoPageLabelShow = computed(() => {
return $route.query.page_type === 'info';
});
// TAG: 自定义主题颜色
const themeVars = {
radioColor: styleColor.baseColor,
......
......@@ -10,7 +10,7 @@
<div :class="[isGroup ? 'group-label' : 'label']">
<span v-if="item.component_props.disabled_show"><van-icon name="https://cdn.ipadbiz.cn/custom_form/icon/closed-eye1.png" /></span>
<span v-if="item.component_props.required" style="color: red">*&nbsp;</span>
<span :class="[ReadonlyShow ? 'readonly-show' : '']">{{ item.component_props.label }}</span>
<span :class="[ReadonlyShow ? 'readonly-show' : '', InfoPageLabelShow ? 'info-page-label' : '']">{{ item.component_props.label }}</span>
</div>
<div v-if="item.component_props.readonly" style="padding: 0.5rem 1.3rem; font-size: 0.9rem;">
{{ item.value }}
......@@ -51,6 +51,11 @@ const ReadonlyShow = computed(() => {
return ($route.query.page_type === 'flow' || $route.query.page_type === 'edit') && !props.item.component_props.readonly;
});
// 详情页标签置灰
const InfoPageLabelShow = computed(() => {
return $route.query.page_type === 'info';
});
// 集合组标识
const isGroup = computed(() => {
return props.item.component_props.is_field_group
......
......@@ -10,7 +10,7 @@
<div class="label">
<span v-if="item.component_props.disabled_show"><van-icon name="https://cdn.ipadbiz.cn/custom_form/icon/closed-eye1.png" /></span>
<span v-if="item.component_props.required" style="color: red">*&nbsp;</span>
<span :class="[ReadonlyShow ? 'readonly-show' : '']">{{ item.component_props.label }}</span>
<span :class="[ReadonlyShow ? 'readonly-show' : '', InfoPageLabelShow ? 'info-page-label' : '']">{{ item.component_props.label }}</span>
</div>
<div
v-if="item.component_props.note"
......@@ -70,6 +70,11 @@ const HideShow = computed(() => {
const ReadonlyShow = computed(() => {
return ($route.query.page_type === 'flow' || $route.query.page_type === 'edit') && !props.item.component_props.readonly;
});
// 详情页标签置灰
const InfoPageLabelShow = computed(() => {
return $route.query.page_type === 'info';
});
let content = "";
onMounted(() => {
......
......@@ -10,7 +10,7 @@
<div :class="[isGroup ? 'group-label' : 'label']">
<span v-if="item.component_props.disabled_show"><van-icon name="https://cdn.ipadbiz.cn/custom_form/icon/closed-eye1.png" /></span>
<span v-if="item.component_props.required" style="color: red">*&nbsp;</span>
<span :class="[ReadonlyShow ? 'readonly-show' : '']">{{ item.component_props.label }}</span>
<span :class="[ReadonlyShow ? 'readonly-show' : '', InfoPageLabelShow ? 'info-page-label' : '']">{{ item.component_props.label }}</span>
</div>
<van-field :name="item.key" :rules="rules" style="padding: 0 1rem;">
......@@ -45,6 +45,11 @@ const ReadonlyShow = computed(() => {
return ($route.query.page_type === 'flow' || $route.query.page_type === 'edit') && !props.item.component_props.readonly;
});
// 详情页标签置灰
const InfoPageLabelShow = computed(() => {
return $route.query.page_type === 'info';
});
// 集合组标识
const isGroup = computed(() => {
return props.item.component_props.is_field_group
......
......@@ -10,7 +10,7 @@
<div :class="[isGroup ? 'group-label' : 'label']">
<span v-if="item.component_props.disabled_show"><van-icon name="https://cdn.ipadbiz.cn/custom_form/icon/closed-eye1.png" /></span>
<span v-if="item.component_props.required" style="color: red">*&nbsp;</span>
<span :class="[ReadonlyShow ? 'readonly-show' : '']">{{ item.component_props.label }}</span>
<span :class="[ReadonlyShow ? 'readonly-show' : '', InfoPageLabelShow ? 'info-page-label' : '']">{{ item.component_props.label }}</span>
</div>
<van-field :name="item.key" :rules="rules" style="padding: 0 1rem;">
......@@ -43,6 +43,11 @@ const ReadonlyShow = computed(() => {
return ($route.query.page_type === 'flow' || $route.query.page_type === 'edit') && !props.item.component_props.readonly;
});
// 详情页标签置灰
const InfoPageLabelShow = computed(() => {
return $route.query.page_type === 'info';
});
// 集合组标识
const isGroup = computed(() => {
return props.item.component_props.is_field_group;
......
......@@ -10,7 +10,7 @@
<div class="label">
<span v-if="item.component_props.disabled_show"><van-icon name="https://cdn.ipadbiz.cn/custom_form/icon/closed-eye1.png" /></span>
<span v-if="item.component_props.required" style="color: red">*&nbsp;</span>
<span :class="[ReadonlyShow ? 'readonly-show' : '']">{{ item.component_props.label }}</span>
<span :class="[ReadonlyShow ? 'readonly-show' : '', InfoPageLabelShow ? 'info-page-label' : '']">{{ item.component_props.label }}</span>
</div>
<!-- <van-field
:id="item.name"
......@@ -89,6 +89,11 @@ const HideShow = computed(() => {
const ReadonlyShow = computed(() => {
return ($route.query.page_type === 'flow' || $route.query.page_type === 'edit') && !props.item.component_props.readonly;
});
// 详情页标签置灰
const InfoPageLabelShow = computed(() => {
return $route.query.page_type === 'info';
});
onMounted(() => {
props.item.value = props.item.component_props.default;
})
......
......@@ -10,7 +10,7 @@
<div class="label">
<span v-if="item.component_props.disabled_show"><van-icon name="https://cdn.ipadbiz.cn/custom_form/icon/closed-eye1.png" /></span>
<span v-if="item.component_props.required" style="color: red">*&nbsp;</span>
<span :class="[ReadonlyShow ? 'readonly-show' : '']">{{ item.component_props.label }}</span>
<span :class="[ReadonlyShow ? 'readonly-show' : '', InfoPageLabelShow ? 'info-page-label' : '']">{{ item.component_props.label }}</span>
<!-- TAG:显示分数时保留0分,仅在有值(非空字符串/非空/非undefined)时展示 -->
<span
v-if="item.component_props.x_score !== undefined && item.component_props.x_score !== null && item.component_props.x_score !== ''"
......@@ -50,6 +50,11 @@ const ReadonlyShow = computed(() => {
return ($route.query.page_type === 'flow' || $route.query.page_type === 'edit') && !props.item.component_props.readonly;
});
// 详情页标签置灰
const InfoPageLabelShow = computed(() => {
return $route.query.page_type === 'info';
});
// 子组件通信,适配规则触发
const onActive = (val) => {
emit("active", val);
......
......@@ -10,7 +10,7 @@
<div class="label">
<span v-if="item.component_props.disabled_show"><van-icon name="https://cdn.ipadbiz.cn/custom_form/icon/closed-eye1.png" /></span>
<span v-if="item.component_props.required" style="color: red">*&nbsp;</span>
<span :class="[ReadonlyShow ? 'readonly-show' : '']">{{ item.component_props.label }}</span>
<span :class="[ReadonlyShow ? 'readonly-show' : '', InfoPageLabelShow ? 'info-page-label' : '']">{{ item.component_props.label }}</span>
<!-- TAG:显示分数时保留0分,仅在有值(非空字符串/非空/非undefined)时展示 -->
<span
v-if="item.component_props.x_score !== undefined && item.component_props.x_score !== null && item.component_props.x_score !== ''"
......@@ -106,6 +106,11 @@ const ReadonlyShow = computed(() => {
return ($route.query.page_type === 'flow' || $route.query.page_type === 'edit') && !props.item.component_props.readonly;
});
// 详情页标签置灰
const InfoPageLabelShow = computed(() => {
return $route.query.page_type === 'info';
});
// 校验函数返回 true 表示校验通过,false 表示不通过
const required = props.item.component_props.required;
const validator = (val) => {
......
......@@ -10,7 +10,7 @@
<div class="label">
<span v-if="item.component_props.disabled_show"><van-icon name="https://cdn.ipadbiz.cn/custom_form/icon/closed-eye1.png" /></span>
<span v-if="item.component_props.required" style="color: red">*&nbsp;</span>
<span :class="[ReadonlyShow ? 'readonly-show' : '']">{{ item.component_props.label }}</span>
<span :class="[ReadonlyShow ? 'readonly-show' : '', InfoPageLabelShow ? 'info-page-label' : '']">{{ item.component_props.label }}</span>
</div>
<van-field :name="item.name" :rules="rules">
<template #input>
......@@ -36,6 +36,11 @@ const HideShow = computed(() => {
const ReadonlyShow = computed(() => {
return ($route.query.page_type === 'flow' || $route.query.page_type === 'edit') && !props.item.component_props.readonly;
});
// 详情页标签置灰
const InfoPageLabelShow = computed(() => {
return $route.query.page_type === 'info';
});
// 注入子组件属性
provide('props', props.item);
......
......@@ -10,7 +10,7 @@
<div class="label">
<span v-if="item.component_props.disabled_show"><van-icon name="https://cdn.ipadbiz.cn/custom_form/icon/closed-eye1.png" /></span>
<span v-if="item.component_props.required" style="color: red">*&nbsp;</span>
<span :class="[ReadonlyShow ? 'readonly-show' : '']">{{ item.component_props.label }}</span>
<span :class="[ReadonlyShow ? 'readonly-show' : '', InfoPageLabelShow ? 'info-page-label' : '']">{{ item.component_props.label }}</span>
</div>
<van-field
:name="item.key"
......@@ -59,6 +59,11 @@ const show = ref(false);
const ReadonlyShow = computed(() => {
return ($route.query.page_type === 'flow' || $route.query.page_type === 'edit') && !props.item.component_props.readonly;
});
// 详情页标签置灰
const InfoPageLabelShow = computed(() => {
return $route.query.page_type === 'info';
});
</script>
<style lang="less" scoped>
......
......@@ -10,7 +10,7 @@
<div class="label">
<span v-if="item.component_props.disabled_show"><van-icon name="https://cdn.ipadbiz.cn/custom_form/icon/closed-eye1.png" /></span>
<span v-if="item.component_props.required" style="color: red">*&nbsp;</span>
<span :class="[ReadonlyShow ? 'readonly-show' : '']">{{ item.component_props.label }}</span>
<span :class="[ReadonlyShow ? 'readonly-show' : '', InfoPageLabelShow ? 'info-page-label' : '']">{{ item.component_props.label }}</span>
</div>
<van-field :name="item.key" :rules="rules" style="padding: 0;">
<template #input>
......@@ -40,6 +40,11 @@ const ReadonlyShow = computed(() => {
return ($route.query.page_type === 'flow' || $route.query.page_type === 'edit') && !props.item.component_props.readonly;
});
// 详情页标签置灰
const InfoPageLabelShow = computed(() => {
return $route.query.page_type === 'info';
});
const refComponent = ref(null)
// 规则校验
......
......@@ -10,7 +10,7 @@
<div class="label">
<span v-if="item.component_props.disabled_show"><van-icon name="https://cdn.ipadbiz.cn/custom_form/icon/closed-eye1.png" /></span>
<span v-if="item.component_props.required" style="color: red">*&nbsp;</span>
<span :class="[ReadonlyShow ? 'readonly-show' : '']">{{ item.component_props.label }}</span>
<span :class="[ReadonlyShow ? 'readonly-show' : '', InfoPageLabelShow ? 'info-page-label' : '']">{{ item.component_props.label }}</span>
</div>
<div v-if="!item.component_props.readonly" class="tinymce-box">
<TEditor ref="refEdit" @blur="onBlur" :table_html="table_html" :readonly="item.component_props.readonly"></TEditor>
......@@ -55,6 +55,11 @@ const ReadonlyShow = computed(() => {
return ($route.query.page_type === 'flow' || $route.query.page_type === 'edit') && !props.item.component_props.readonly;
});
// 详情页标签置灰
const InfoPageLabelShow = computed(() => {
return $route.query.page_type === 'info';
});
onMounted(() => {
//
table_html.value = props.item.component_props?.default ? props.item.component_props.default : props.item.component_props.note;
......
......@@ -10,7 +10,7 @@
<div :class="[isGroup ? 'group-label' : 'label']">
<span v-if="item.component_props.disabled_show"><van-icon name="https://cdn.ipadbiz.cn/custom_form/icon/closed-eye1.png" /></span>
<span v-if="item.component_props.required" style="color: red">*&nbsp;</span>
<span :class="[ReadonlyShow ? 'readonly-show' : '']">{{ item.component_props.label }}</span>
<span :class="[ReadonlyShow ? 'readonly-show' : '', InfoPageLabelShow ? 'info-page-label' : '']">{{ item.component_props.label }}</span>
</div>
<div class="note-wrapper" v-if="item.component_props.note" v-html="item.component_props.note" />
<div v-if="item.component_props.readonly || (item.component_props.is_camera_scan && !item.component_props.is_edit_camera_scan_result)" style="padding: 0.5rem 1.3rem; font-size: 0.9rem;">
......@@ -50,6 +50,11 @@ const ReadonlyShow = computed(() => {
return ($route.query.page_type === 'flow' || $route.query.page_type === 'edit') && !props.item.component_props.readonly;
});
// 详情页标签置灰
const InfoPageLabelShow = computed(() => {
return $route.query.page_type === 'info';
});
// 集合组标识
const isGroup = computed(() => {
return props.item.component_props.is_field_group
......
......@@ -10,7 +10,7 @@
<div class="label">
<span v-if="item.component_props.disabled_show"><van-icon name="https://cdn.ipadbiz.cn/custom_form/icon/closed-eye1.png" /></span>
<span v-if="item.component_props.required" style="color: red">*&nbsp;</span>
<span :class="[ReadonlyShow ? 'readonly-show' : '']">{{ item.component_props.label }}</span>
<span :class="[ReadonlyShow ? 'readonly-show' : '', InfoPageLabelShow ? 'info-page-label' : '']">{{ item.component_props.label }}</span>
</div>
<div
v-if="item.component_props.note"
......@@ -56,6 +56,11 @@ const ReadonlyShow = computed(() => {
return ($route.query.page_type === 'flow' || $route.query.page_type === 'edit') && !props.item.component_props.readonly;
});
// 详情页标签置灰
const InfoPageLabelShow = computed(() => {
return $route.query.page_type === 'info';
});
onMounted(() => {
// 只读模式下默认值替换换行符
props.item.value = props.item.component_props.readonly ? props.item.component_props.default?.replace(/\n/g, "<br>") : props.item.component_props.default;
......
......@@ -10,7 +10,7 @@
<div class="label">
<span v-if="item.component_props.disabled_show"><van-icon name="https://cdn.ipadbiz.cn/custom_form/icon/closed-eye1.png" /></span>
<span v-if="item.component_props.required" style="color: red">*&nbsp;</span>
<span :class="[ReadonlyShow ? 'readonly-show' : '']">{{ item.component_props.label }}</span>
<span :class="[ReadonlyShow ? 'readonly-show' : '', InfoPageLabelShow ? 'info-page-label' : '']">{{ item.component_props.label }}</span>
</div>
<van-field
v-model="item.value"
......@@ -47,6 +47,11 @@ const HideShow = computed(() => {
const ReadonlyShow = computed(() => {
return ($route.query.page_type === 'flow' || $route.query.page_type === 'edit') && !props.item.component_props.readonly;
});
// 详情页标签置灰
const InfoPageLabelShow = computed(() => {
return $route.query.page_type === 'info';
});
const showPicker = ref(false);
const currentTime = ref([]);
const readonly = props.item.component_props.readonly;
......
......@@ -10,7 +10,7 @@
<div class="label">
<span v-if="item.component_props.disabled_show"><van-icon name="https://cdn.ipadbiz.cn/custom_form/icon/closed-eye1.png" /></span>
<span v-if="item.component_props.required" style="color: red">*&nbsp;</span>
<span :class="[ReadonlyShow ? 'readonly-show' : '']">{{ item.component_props.label }}</span>
<span :class="[ReadonlyShow ? 'readonly-show' : '', InfoPageLabelShow ? 'info-page-label' : '']">{{ item.component_props.label }}</span>
</div>
<div v-if="item.component_props.note" class="note" v-html="item.component_props.note" />
<van-field :rules="item.rules">
......@@ -78,6 +78,11 @@ const ReadonlyShow = computed(() => {
return ($route.query.page_type === 'flow' || $route.query.page_type === 'edit') && !props.item.component_props.readonly;
});
// 详情页标签置灰
const InfoPageLabelShow = computed(() => {
return $route.query.page_type === 'info';
});
// 校验函数返回 true 表示校验通过,false 表示不通过
const required = props.item.component_props.required;
const validator = (val) => {
......