easybill-ui 0.1.0 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,7 +1,7 @@
1
1
  <template>
2
2
  <el-form ref="schemaFormRef" :model="formModel" :rules="rules" v-bind="{ ...$attrs, ...getFormProps }" class="curd-form" :style="getFormStyle()" @submit.prevent>
3
3
  <template v-for="formItem in schemaItems" :key="formItem.prop">
4
- <el-form-item v-if="!$slots[formItem.type + 'Item']" :label="formItem.label" :prop="formItem.prop" :label-width="formItem.labelWidth" :style="getFormItemStyle(formItem)" v-bind="getFormItemProps(formItem)">
4
+ <el-form-item v-if="!$slots[formItem.prop + 'Item']" :label="formItem.label" :prop="formItem.prop" :label-width="formItem.labelWidth" :style="getFormItemStyle(formItem)" v-bind="getFormItemProps(formItem)">
5
5
  <slot :name="formItem.prop" :form-item="formItem" :form-model="formModel"></slot>
6
6
  <FormItem v-if="!(formItem.prop && $slots[formItem.prop])" :form-item="formItem" :form-model="formModel" @change="onChange">
7
7
  <template #prefix>
@@ -2,14 +2,15 @@
2
2
  <div class="form-item">
3
3
  <div v-if="props.formItem.prefix" class="form-item-prefix" v-html="props.formItem.prefix"></div>
4
4
  <slot name="prefix"></slot>
5
- <component :is="getComponent(props.formItem.type)" v-if="!(props.formItem.type && $slots[props.formItem.type])" v-model="modelRef[props.formItem.prop || '']" :form-item="props.formItem" :form-model="modelRef" :props="formItemProps" :event-object="eventObject" />
5
+ <component :is="comp" v-if="comp" v-model="modelRef[props.formItem.prop || '']" :form-item="props.formItem" :form-model="modelRef" :props="formItemProps" :event-object="eventObject" />
6
+ <component :is="props.formItem.type" v-else v-model="modelRef[props.formItem.prop || '']" v-bind="formItemProps" v-on="eventObject" />
6
7
  <FormTooltip v-if="props.formItem.tooltip" :tooltip="props.formItem.tooltip" :form-item="props.formItem" :form-model="props.formModel" />
7
8
  <slot name="suffix"></slot>
8
9
  <div v-if="props.formItem.suffix" class="form-item-suffix" v-html="props.formItem.suffix"></div>
9
10
  </div>
10
11
  </template>
11
12
  <script lang="ts" setup>
12
- import { ref, computed, getCurrentInstance, Ref, PropType } from "vue"
13
+ import { ref, computed, Ref, PropType } from "vue"
13
14
  import { FormItem, Fields } from "./types"
14
15
  import { getComponent } from "./components"
15
16
  import FormTooltip from "./FormTooltip.vue"
@@ -28,6 +29,7 @@ const props = defineProps({
28
29
  })
29
30
  const emit = defineEmits(["change"])
30
31
  const modelRef: Ref<Fields> = ref(props.formModel || {})
32
+ const comp = computed(() => getComponent(props.formItem.type))
31
33
  // 重新组装props
32
34
  const formItemProps = computed(() => {
33
35
  if (!props.formItem.props) {
@@ -9,6 +9,7 @@ import SchemaFormTimePicker from "./schema-form-time-picker.vue"
9
9
  import SchemaFormColorPicker from "./schema-form-color-picker.vue"
10
10
  import SchemaFormValue from "./schema-form-value.vue"
11
11
  import SchemaFormCascader from "./schema-form-cascader.vue"
12
+ import SchemaFormAutocomplete from "./schema-form-autocomplete.vue"
12
13
  import { isReactive, isRef, createVNode, isVNode } from "vue"
13
14
  interface PresetMap {
14
15
  [key: string]: any
@@ -25,6 +26,7 @@ const presetMap: PresetMap = {
25
26
  "schema-color-picker": SchemaFormColorPicker,
26
27
  "schema-value": SchemaFormValue,
27
28
  "schema-cascader": SchemaFormCascader,
29
+ "schema-autocomplete": SchemaFormAutocomplete,
28
30
  }
29
31
 
30
32
  export default presetMap
@@ -0,0 +1,25 @@
1
+ <template>
2
+ <el-autocomplete v-model="model" v-bind="props.props" v-on="props.eventObject">
3
+ <template #default="{ item }">
4
+ <div v-if="item.html" v-html="item.html"></div>
5
+ <div v-else>{{ item.label || item.value }}</div>
6
+ </template>
7
+ </el-autocomplete>
8
+ </template>
9
+ <script lang="ts" setup>
10
+ import { computed, PropType } from "vue"
11
+ import { ElCascader, CascaderOption, CascaderValue } from "element-plus"
12
+ import { FormItemProps } from "easybill-ui/components/CurdForm/src/types"
13
+ const props = defineProps({
14
+ ...FormItemProps,
15
+ modelValue: {
16
+ type: [String, Number] as PropType<CascaderValue>,
17
+ default: undefined,
18
+ }, // 表单项值
19
+ })
20
+ const emits = defineEmits(["update:modelValue"])
21
+ const model = computed({
22
+ get: () => props.modelValue,
23
+ set: (val) => emits("update:modelValue", val),
24
+ })
25
+ </script>
@@ -27,6 +27,8 @@ export interface FormItem {
27
27
  disabled?: boolean
28
28
  tooltip?: string
29
29
  autoload?: boolean
30
+ prefix?: string
31
+ suffix?: string
30
32
  }
31
33
  export type FormItemTypeEmun = "input" | "select" | "radio" | "checkbox" | "input-number" | "switch" | "file" | "date-picker" | "time-picker" | "color-picker" | "value"
32
34
  // type FormItemProps = FormItemPropObject | ((formModel: Fields, formItem: FormItem) => void)
@@ -46,5 +46,5 @@ const getCurrentTableFilterProp = () => {
46
46
  return selectParams.value[tableFilterRef.value.getCurrentIndex()].prop
47
47
  }
48
48
  }
49
- defineExpose({ setItem, getSelectList, loadOptions, clear, refreshSelectParams, getCurrentTableFilterProp })
49
+ defineExpose({ filterRef: tableFilterRef, setItem, getSelectList, loadOptions, clear, refreshSelectParams, getCurrentTableFilterProp })
50
50
  </script>
@@ -100,7 +100,7 @@ export interface FeachDataParam {
100
100
 
101
101
  export interface DetailDataItem {
102
102
  label: string
103
- value: string
103
+ value: any
104
104
  /** 当前项占的宽度,最大24, 默认24 */
105
105
  span?: number
106
106
  /** 当前数据的选项,里面包含的图标、颜色信息会自动显示 */
@@ -181,6 +181,6 @@ const tableFilterContext = reactive<I.TableFilterContext>({
181
181
  provide("tableFilter", tableFilterContext)
182
182
  provide("state", state)
183
183
  provide("selectList", selectList)
184
- defineExpose({ setItem, selectList, loadOptions, clear, refreshSelectParams, getCurrentIndex })
184
+ defineExpose({ setItem, selectList, loadOptions, clear, refreshSelectParams, getCurrentIndex, listQuery, selectParams })
185
185
  getTags()
186
186
  </script>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "easybill-ui",
3
- "version": "0.1.0",
3
+ "version": "0.1.2",
4
4
  "description": "A component library for easybill",
5
5
  "author": "tuchongyang <779311998@qq.com>",
6
6
  "private": false,
@@ -14,5 +14,5 @@
14
14
  "publishConfig": {
15
15
  "access": "public"
16
16
  },
17
- "gitHead": "20250696a8d4cbd888728e8d2f34737b5975503a"
17
+ "gitHead": "d7fedb90ece256b251f72e382263813efc61e668"
18
18
  }