0.1.5 • Published 2 years ago

zhangjun-defined-components v0.1.5

Weekly downloads
-
License
-
Repository
github
Last release
2 years ago

自定义组件库

下拉

  • 多选

    • MultipleChoiceBox(*下拉多选选择框*)

      API

      Props
      属性说明类型默认值
      treeData提供选择的数据源Array<{children,title,key,scopedSlots}>[]
      value(v-model)指定当前选中的条目string[]\number[]\undefinedundefined
      bordered是否无边框booleantrue
      loading加载状态(异步获取treeData情况下使用)booleantrue
      placeholder没有选择数据情况下的提示string"请选择"
      maxShowCount最多显示的"选中项"数量number2
      maxSelectedOptionTextLength最大显示的"选中项"文本长度number2
      requiredvalue不能为空,至少需要选择一项booleanfalse
      Events
      事件名称说明回调参数
      check选中时调用,参数为选中项的value值function(value)
      Option props
      属性说明类型默认值
      title备选项显示的titlestring-
      key备选项的唯一值string-
      children树形结构下,当前节点的子节点,叶子节点情况下可以为空Array<{children,title,key,scopedSlots}>-
      scopedSlots使用treeData时,可以通过该属性配置支持slot的属性,如scopedSlots:{title:'xxx'}object-

      代码演示

      html
      <multiple-choice-box placeholder="请选择"
                               v-model="value"
                               :bordered="true"
                               :required="true"
                               :tree-data="treeData"></multiple-choice-box>
      javascript
       value = ['黎明-01', '黎明-02'];
      
       treeData: any[] = [
          {
            title: '四大天王',
            key: 'root',
            children: [
              {
                title: '张学友',
                key: '张学友',
                children: [
                  { key: '张学友-01', title: '张学友1' },
                  {
                    key: '张学友-02',
                    title: '张学友2',
                    children: [
                      {
                        key: '张学友-02-01',
                        title: '张学友2-01',
                      },
                    ],
                  }],
              },
              {
                title: '黎明',
                key: '黎明',
                children: [
                  { title: '黎明1', key: '黎明-01' },
                  { title: '黎明2', key: '黎明-02' },
                ],
                // scopedSlots: { title: 'title' },
              },
              {
                title: '刘德华',
                key: '刘德华',
                children: [{ key: '刘德华-01', title: '刘德华1' }],
              },
              {
                title: '郭富城',
                key: '郭富城',
                children: [
                  { key: '郭富城-01', title: '郭富城1' },
                  { key: '郭富城-02', title: '郭富城2' }],
              },
            ],
          },
        ];
    • RangePicker(*时间选择*)

      API

      Props
      属性说明类型默认值
      format展示的日期格式string"YYYY-MM-DD HH:mm:ss"
      Events
      事件名称说明回调参数
      ok点击确定按钮的回调function(dates: moment, momentstring, string)
      change日期范围发生变化的回调function(dates: moment, momentstring, string, dateStrings: string, string)
      clear日期范围清空后的回调--

      代码演示

      html
      <range-picker style="width:200px;" v-model="dates"></range-picker>
      javascript
      dates = ['2021-01-03T08:51:22.384Z', '2021-02-25T08:51:22.384Z'];

tabs切换

  • 弹出框

    • TabsModal(*tabs切换的modal*)

      API

      Props
      属性说明类型默认值
      title标题stringslot-
      selectedTab(v-model)当前激活 tab 面板的 keystring
      tabList需要展示的所有的tabArray<{tab:string,key:string}>[]

      注意:tabPanel可以通过tab的key值,slot="xxx" 自定义添加

      Events
      事件名称说明回调参数
      change切换面板的回调function(activeKey) {}
      close关闭modal的回调function()
      Tab props
      属性说明类型默认值
      titletab标题string-
      keytab的唯一值string-

      代码演示

      html
       <tabs-modal ref="tabsModal"
                      v-model="activeTabKey"
                      :title="modelTitle"
                      :tab-list="tabs">
            <!--基本信息-->
            <a-card slot="jbxx"
                    :bordered="false"
                    :bodyStyle="{padding:0}"
                    :headStyle="{padding:0,border:0}">
              <h1>基本信息:这个就是一个tab页的content</h1>
            </a-card>
      
            <!--家庭信息-->
            <a-card slot="jtxx"
                    :bordered="false"
                    :bodyStyle="{padding:0}"
                    :headStyle="{padding:0,border:0}">
              <h1>家庭信息:这个就是一个tab页的content</h1>
            </a-card>
      
            <!--学历信息-->
            <a-card slot="xlxx"
                    :bordered="false"
                    :bodyStyle="{padding:0}"
                    :headStyle="{padding:0,border:0}">
              <h1>学历信息:这个就是一个tab页的content</h1>
            </a-card>
          </tabs-modal>
      javascript
      tabs = [
          { tab: '基本信息', key: 'jbxx' },
          { tab: '家庭信息', key: 'jtxx' },
          { tab: '学历信息', key: 'xlxx' },
        ];
      
        activeTabKey = 'jtxx';
      
        modelTitle = '个人简历';
      
        showModal() {
          const { tabsModal } = this.$refs;
          if (tabsModal) {
            (tabsModal as any).show();
          }
        }