ny
昨天 282fbc6488f4e8ceb5fda759f963ee88fbf7b999
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
<script lang="ts" setup>
import type { ItemCfg } from '../types/genItem';
 
import { computed, inject, unref } from 'vue';
 
import { alignOptions, fixedOptions } from '#/utils/constants';
 
import { layoutList, noWithList } from '../helper/rightPanel';
 
const props = defineProps(['activeData', 'formConf', 'drawingList', 'formInfo', 'dbType']);
const sliderMarks = { 2: 2, 4: 4, 6: 6, 8: 8, 10: 10, 12: 12, 14: 14, 16: 16, 18: 18, 20: 20, 22: 22, 24: 24 };
const visibilityOptions = [
  { id: 'pc', fullName: 'Web' },
  { id: 'app', fullName: 'App' },
];
const iframeVisibilityOptions = [{ id: 'pc', fullName: 'Web' }];
 
const getShowType: (() => string | undefined) | undefined = inject('getShowType');
const showType = computed(() => (getShowType as () => string | undefined)());
const config = computed<ItemCfg>(() => unref(props.activeData).__config__);
const jnpfKey = computed(() => unref(props.activeData).__config__?.jnpfKey);
const getClassNameOptions = computed(() => unref(props.formConf).classNames.map((o) => ({ id: o, fullName: o })));
const getVisibilityOptions = computed(() => (unref(jnpfKey) == 'iframe' ? iframeVisibilityOptions : visibilityOptions));
</script>
<template>
  <a-form :colon="false" layout="vertical" class="right-board-form">
    <a-form-item label="多端显示">
      <jnpf-checkbox v-model:value="activeData.__config__.visibility" :options="getVisibilityOptions" />
    </a-form-item>
    <template v-if="config.isSubTable && showType === 'pc'">
      <a-divider class="!mt-0">表格布局配置</a-divider>
      <a-form-item label="冻结方式">
        <jnpf-radio v-model:value="activeData.__config__.tableFixed" :options="fixedOptions" option-type="button" button-style="solid" class="right-radio" />
      </a-form-item>
      <a-form-item label="对齐方式">
        <jnpf-radio v-model:value="activeData.__config__.tableAlign" :options="alignOptions" option-type="button" button-style="solid" class="right-radio" />
      </a-form-item>
      <a-form-item label="列宽度">
        <a-input-number v-model:value="activeData.__config__.columnWidth" placeholder="请输入" :min="0" />
      </a-form-item>
      <a-divider>平铺布局配置</a-divider>
    </template>
    <a-form-item label="控件栅格">
      <a-slider v-model:value="activeData.__config__.span" :max="24" :min="2" :step="2" :marks="sliderMarks" />
    </a-form-item>
    <a-form-item label="标题宽度" v-if="!layoutList.includes(jnpfKey)">
      <jnpf-input-number v-model:value="activeData.__config__.labelWidth" placeholder="请输入" :min="0" />
    </a-form-item>
    <a-form-item v-if="!noWithList.includes(jnpfKey) && activeData.style && showType === 'pc'">
      <template #label>
        控件宽度
        <BasicHelp text="支持%和px两种宽度设置" />
      </template>
      <a-input v-model:value="activeData.style.width" placeholder="请输入" />
    </a-form-item>
    <a-form-item>
      <template #label>控件Class<BasicHelp text="不支持代码生成" /></template>
      <jnpf-select v-model:value="activeData.__config__.className" multiple allow-clear :options="getClassNameOptions" show-search />
    </a-form-item>
  </a-form>
</template>