cuiqian2004
2025-06-19 619b47962e41f506baf7ce2b535b2de1fecc719e
components/oi-form/list/index.vue
@@ -1,35 +1,35 @@
<template>
   <view :class="viewMode ? 'oi-form-item-view':'oi-form-item'">
   <view class="oi-form-item" :class="largeMode?'large-mode':''">
      <uni-forms-item v-show="!hiddenIds.includes(data.fieldId)"
         :label="data.labelWidth === 0 ? '' : data.label? data.label+':':''"
         :label-width="data.labelWidth || data.labelWidth === 0 ? data.labelWidth : 100+'px'"
         :label-width="largeMode?'100%': data.labelWidth || data.labelWidth === 0 ? data.labelWidth : 100+'px'"
         :style="{ textAlign: data.setting.align }">
         <OIFormText v-if="viewMode && data.disabled" :data="data" :model="model">
         </OIFormText>
         <OIFormInput v-else-if="data.name == 'Input'" :viewMode="viewMode" :focus="focusId== data.fieldId"
            :data="data" :model="model" @change="onChange" @focus="onFocus" @click="onClick"
            @click-prefix="onClickPrefix" @click-suffix="onClickSuffix">
            :data="data" :model="model" @on-change="onChange" @on-focus="onFocus" @on-click="onClick"
            @on-click-prefix="onClickPrefix" @on-click-suffix="onClickSuffix">
         </OIFormInput>
         <OIFormInputNumber v-else-if="data.name == 'InputNumber'" :focus="focusId== data.fieldId" :data="data"
            :model="model" @change="onChange" @focus="onFocus" @click="onClick">
            :model="model" @on-change="onChange" @on-focus="onFocus" @on-click="onClick">
         </OIFormInputNumber>
         <OIFormTextArea v-else-if="data.name == 'Textarea'" :focus="focusId== data.fieldId" :data="data"
            :model="model" @change="onChange" @focus="onFocus" @click="onClick">
            :model="model" @on-change="onChange" @on-focus="onFocus" @on-click="onClick">
         </OIFormTextArea>
         <OIFormSelect v-else-if="data.name == 'Select'" :data="data" :model="model" @change="onChange">
         <OIFormSelect v-else-if="data.name == 'Select'" :data="data" :model="model" @on-change="onChange">
         </OIFormSelect>
         <OIFormSwitch v-else-if="data.name == 'Switch'" :data="data" :model="model" @change="onChange">
         <OIFormSwitch v-else-if="data.name == 'Switch'" :data="data" :model="model" @on-change="onChange">
         </OIFormSwitch>
         <OIFormCheckbox v-else-if="data.name == 'Checkbox'" :data="data" :model="model" @change="onChange">
         <OIFormCheckbox v-else-if="data.name == 'Checkbox'" :data="data" :model="model" @on-change="onChange">
         </OIFormCheckbox>
         <OIFormRadio v-else-if="data.name == 'Radio'" :data="data" :model="model" @change="onChange">
         <OIFormRadio v-else-if="data.name == 'Radio'" :data="data" :model="model" @on-change="onChange">
         </OIFormRadio>
         <OIFormDatePicker v-else-if="data.name == 'DatePicker'" :data="data" :model="model" @change="onChange">
         <OIFormDatePicker v-else-if="data.name == 'DatePicker'" :data="data" :model="model" @on-change="onChange">
         </OIFormDatePicker>
         <OIFormTimePicker v-else-if="data.name == 'TimePicker'" :data="data" :model="model" @change="onChange">
         <OIFormTimePicker v-else-if="data.name == 'TimePicker'" :data="data" :model="model" @on-change="onChange">
         </OIFormTimePicker>
         <OIFormDatePickerRange v-else-if="data.name == 'DatePickerRange'" :data="data" :model="model"
            @change="onChange">
            @on-change="onChange">
         </OIFormDatePickerRange>
         <OIFormText v-else-if="data.name == 'Text'" :data="data" :model="model">
         </OIFormText>
@@ -85,45 +85,42 @@
            default: () => [],
         },
      },
      data() {
         return {
            largeMode: getApp().globalData?.largeMode || false,
         }
      },
      methods: {
         onChange(e) {
            this.$emit("change", this.data)
            this.$emit("on-change", this.data)
         },
         onClick(e) {
            this.$emit("click", this.data)
            this.$emit("on-click", this.data)
         },
         onFocus(e) {
            this.$emit("focus", this.data)
            this.$emit("on-focus", this.data)
         },
         onClickPrefix() {
            this.$emit("click-prefix", this.data)
            this.$emit("on-click-prefix", this.data)
         },
         onClickSuffix() {
            this.$emit("click-suffix", this.data)
            this.$emit("on-click-suffix", this.data)
         },
      },
      mounted() {
         console.log("item", this.data)
      }
   };
</script>
<style lang="scss" scoped>
<style lang="less" scoped>
   .oi-form-item {
      .uni-forms-item {
         margin-bottom: 11rpx;
         margin-bottom: 15rpx;
      }
   }
   .oi-form-item-view {
      .uni-forms-item {
         padding-bottom: 5rpx;
         margin-bottom: 0;
         .uni-forms-item__label {
            height: 20px !important;
            padding: 0 10rpx 0 0 !important;
         }
   .oi-form-item.large-mode {
      .uni-forms-item {
         margin-left: 10rpx;
         margin-right: 10rpx;
      }
   }
</style>