1.0.23 • Published 4 days ago

jobdone-shared-files v1.0.23

Weekly downloads
-
License
MIT
Repository
-
Last release
4 days ago

Vue Components

如果要使用 vue 檔,需要直接引用 node_modules 裡的檔案,例如:

import OOXX from '../../node_modules/jobdone-shared-files/OOXX.vue';

.

01.ProjectManagement/projectNavbar - 專案資訊Navbar

需要傳入的值:

數值名稱說明必要
root-domain底層的 domain,傳入的值有無斜線皆可
arrow-back-link離開專案的連結,一般來說是底層的 ProjectList
project-info可接受api url或物件,api僅支援Get請求,結構應為{name: "", caseNo: "", caseNo: "",beginDT:"",endDT:"",approvedWorkingPeriod:0, extendToDT:"",extendDays:""}
project-apps可接受api url或物件,api僅支援Get請求,結構去Copy底層API取得專案所屬Module的App連結(V2 TOP)
active-client-idNavbar active的對象,請填入client id,不填預設active專案資訊N
project-idproject id
user-id傳入 user 的帳號 id
user-picture傳入 user 的大頭貼
log-out-link登出連結

.

02.Paginate - 分頁

範例

<template>
    <paginate 
        container-class="..." 
        :total-pages="..." 
        :current-page="..." 
        @to-page="...">
    </paginate>
</template>

<script setup>
    import paginate from 'jobdone-shared-files/paginate.vue';
<script>

可用參數

#參數 Attribute型別 Type預設值 Default選項 Option說明 Description
1container-classString''' ' 'pagination-sm' 'pagination-lg'尺寸設定
2total-pagesNumber1任意阿拉伯數字總頁數
3current-pageNumber1任意阿拉伯數字當前頁碼
4page-rangeNumber5任意阿拉伯數字最多顯示幾個頁碼

可用方法

#參數 Attribute說明 Description
1to-page點選頁碼執行的動作

.

03.TagEditor - 標籤

範例

<template>
    <tagEditor 
        ref="tagEditorComponent" 
        :auto-complete-option='autoCompleteTagList'
        @update-auto-complete-option="getTagListByKeyWord">
    </tagEditor>
</template>

<script setup>
    import tagEditor from 'jobdone-shared-files/tagEditor.vue';
    
<!-- autoComplete 功能 -->
    const autoCompleteTagList = ref([]);
    async function getTagListByKeyWord(keyword) {
        autoCompleteTagList.value = await axios.get(...).data;
    }
    
<!-- 取得建立的TAG值 -->
    const tagEditorComponent = ref(null);
    const tags = ref([])
    functio getTag(){
        tags.value = tagEditorComponent.value.tagAry
    }
<script>

可用參數

#參數 Attribute型別 Type預設值 Default選項 Option說明 Description
1placeholderString'請在此處輸入標籤文字'任意字串input的提示文字
2auto-completeBooleantruetrue false是否啟用AutoComplete,啟用的話必需傳入用於AutoComplete的Array
3auto-complete-optionArray[]['...','...','...']僅接受字串陣列。
4disabledBooleanfalsetrue false停用

可用方法

#參數 Attribute說明 Description
1update-auto-complete-option文字輸入時呼叫,value為當前輸入的值,可用於刷新autoCompleteOption。

.

04.Tree - 樹狀結構

範例

<template>
     <tree :items="items" :click-item="clickItem" size="sm">
        <template v-slot:icon-start>
            // 前方箭頭後的 slot 插槽
        </template>
        <template v-slot:icon="slotProps">
            // 後方的 slot 插槽,預設為 radio icon
            // 透過 slotProps 取得每一個 item 的資料
            {{slotProps.item}}
        </template>
     </tree>
</template>

<script setup>
    import tree from 'jobdone-shared-files/tree.vue';
    const items = [
        {
            id:1,
            name:'分類A',
            children{
                id:11,
                title:'分類A'-1,
                children:[
                    ...
                ]
            }
        },{
            id:2,
            name:'分類B',
            children{
                id:12,
                title:'分類B-1',
                children:[
                    ...
                ]
            }
        },
        ...
    ]
    
    function clickItem(v){
        console.log(v)
    }
<script>

可用參數

#參數 Attribute型別 Type預設值 Default選項 Option說明 Description
1itemsArray[]須包含Id,名稱必須為title,子層的Key必須為children尺寸設定
2sizeString'''' 'sm'內容陣列
4bgColorString'''' 'white'用於什麼樣子的背景色上,預設用在灰色背景上。用在白背景上可使用white模式

可用方法

Function說明 Description
clickItem點選項目執行的方法

.

05.VueLoadingOverlay - 指定樣式讀取樣式

範例

<template>
    <Loading :is-active="isLoading"></Loading>
</template>
<script setup>
    import Loading from "jobdone-shared-files/vueLoadingOverlay.vue";

    <!-- loading 初始化 "isLoading" => 自定義變數 -->
    const isLoading = ref(false);
    
    <!--  開啟loading   -->
    function showLodaing(){
        isLoading.value = true;
    }
    
    <!--  關閉loading   -->
    function showLodaing(){
        isLoading.value = false;
    }
    
</script>

可用變數:

#參數 Attribute型別 Type預設值 Default說明Description
1.full-pageBooleantrue是否填滿整個視窗。為False時,則填滿放置位置的父層

其他可用變數(統一樣式不推薦修改):

#參數 Attribute型別 Type預設值 Default說明Description
1.is-activeBooleanfalse開啟 / 關閉
2.loaderStringbars圖案樣式spinner / dots / bars 三種可選
3.colorsString#fff圖案顏色
4.background-colorString#000遮罩顏色
5.opacityNumber0.5遮罩透明度

.

06.lightboxWithOverview - 有縮圖的圖片光箱

<lightbox-with-overview 
    :pictures-data="picturesData" 
    ref="lightboxWithOverviewRef">
</lightbox-with-overview>

可傳入的值:

數值名稱說明必要
pictures-data格式為: [{src: "", title: ""}]
preview是否要顯示縮圖,可傳入 true or false
display-index預設 index 為 0
preview-countpreview 的圖片陣列數量,預設為 5,可使用 lightboxWithOverviewRef?.previewPictureslightboxWithOverviewRef?.otherPictureCount

.

07.autocompleteSelect - autocomplete下拉選單

範例1:簡易型,String Array 的選單

<template>
    <autocomplete-select 
        :opts="opts"
        :selected-data="selected"
        @select="(v) => selected = v">
    </autocomplete-select>
</template>

<script setup>
    import autocompleteSelect from 'jobdone-shared-files/autocompleteSelect.vue';
    
    const selected =''
    const opts =['汪汪汪','喵喵喵','啾啾啾']
<script>

範例2:複雜型,Object Array 的選單

<template>
    <autocomplete-select
        :selected-data="selected" 
        :opts="members"
        :filter-keys="['firstName','lastName','enName']" 
        preview-key="enName + ' ( ' + lastName + ' ' + firstName + ' ) '"
        binding-key="id"
        @select="(v) => selected = v.id"
    ></autocomplete-select>
</template>
<script setup>
    import autocompleteSelect from 'jobdone-shared-files/autocompleteSelect.vue';
    
    const selected = '1'
    const members =[{
        id:'1',
        firstName:'美美',
        lastName:'陳',
        enName:'Amy'
    },{
        id:'2',
        firstName:'大蒙',
        lastName:'王',
        enName:'Jed'
    },{
        ...
    }]
<script>

範例3:自訂選單樣式()

<template>
    <autocomplete-select
        :selected-data="selected" 
        :opts="members"
        :filter-keys="['firstName','lastName','enName']" 
        preview-key="enName + ' ( ' + lastName + ' ' + firstName + ' ) '"
        binding-key="id"
        @select="(v) => selected = v.id"
        :html-option='true'
    >
      <template #option = "{ optData }">
            <div>我全要喵喵喵喵!!</div>
            <div>
                {{optData.phoneNumber}}
            </div>
            <div>
                {{ `${optData.enName} (${ optData.firstName } ${ optData.lastName })` }}
            </div>
        </template> 
    </autocomplete-select>
</template>
<script setup>
    import autocompleteSelect from 'jobdone-shared-files/autocompleteSelect.vue';
    
    const selected = '1'
    const members =[{
        id:'1',
        firstName:'美美',
        lastName:'陳',
        enName:'Amy',
        phoneNumber:'0911111111',
    },{
        id:'2',
        firstName:'大蒙',
        lastName:'王',
        enName:'Jed',
        phoneNumber:'092222222',
    },{
        ...
    }]
<script>

基本參數

#參數 Attribute型別 Type預設值 Default選項 Option說明 Description
1selected-dataString Number Objectnone當前選擇的值(類似平常vModel的用法)
2optsArray[]選項列表,只接受StringArray NumberArray ObjectArray,且請陣列內容格
3placeholderString'請選擇'未選擇內容時的提示文字
4search-placeholderString''自定義搜尋框的提示文字。如未設定,有選擇內容時會將選擇的內容當成提示文字,而未選擇時則顯示placeholder(參數3)的值
5trigger-classString''預覽框與輸入框的樣式CLSS,可用於驗證提示
6list-putString'body'列表Dom放置位置

清除按鈕參數

#參數 Attribute型別 Type預設值 Default選項 Option說明 Description
7clear-btnBooleanTrueTrue False是否顯示清除按鈕
8clear-placeholderString'清除選擇'清除按鈕的文字
9reset-valueString Number Object''清空選擇替換的預設值

Object陣列選項清單用參數

#參數 Attribute型別 Type預設值 Default選項 Option說明 Description
10preview-keyString''顯示指定字符連接。請填入符合規定的字串用+號連接keyName和自定義字串,自定義字串請用''包起來(空白同理)。範例enName + ' ( ' + lastName + ' ' + firstName + ' ) '
11filter-keyArray['name']字串陣列傳入需要進行篩選比對的keyName,可多個。
12binding-keyString''本參數僅供提傳入供單一且為唯一值得keyName,一般用於ID。如傳入的選項列表為複雜object陣列,但選中的值是某個key。可傳入Key Name以供Component辨並從傳入的陣列中找出該object。如綁定的是整個object,不需使用此參數。
13is-undefined-hintString'⚠️ 未找到符合原選擇的選項,可能相關資料曾發生異動字串傳入binding-key但比對失敗,在opts(參數2)中找不到binding-key內容與selected-data值相符的選項,用於提示的預覽文字
14html-optionBooleanfalsetrue false是否啟用自訂選項樣式,用法請參考範例3。請注意就算起啟用preview-key還是必須傳入。

可用方法

Function說明 Description
select選到項目要做什麼

.

.

.


Directives

01.SelectPlaceholder

<select>未選擇值時加上Placeholder樣式 null false undefined '' 預設會被判斷為Placeholder,如有增減需求請參考option可用變數。

使用範例:

<template>
    <select class="form-select" 
        v-model="selectingValue" 
        v-select-placeholder="{ 
            value: selectingValue,
            placeholderValue: [1,2],
            excludeValue: [false],
            unselectClass:'is-invalid'
        }">
        <option :value="null">請選擇一隻貓,這是Placeholder</option>
        <option :value="false">雖然是false,但是我任性地說他一個正常的選項</option>
        <option :value="1">雖然是1,但是我任性地說他Placeholder選項</option>
        <option :value="2">雖然是2,但是我任性地說他Placeholder選項</option>
        <option :value="3">Candy</option>
        ...
    </select>
</template>
<script setup>
    import { ref } from "vue";
    import vSelectPlaceholder from 'jobdone-shared-files/common/directives/selectPlaceholder.js';
    
    const selectingValue = ref(null)
    
</script>

可用變數

#參數 Attribute型別 Type必填 required預設值 Default說明Description
1value----當前選擇內容的值
2placeholderValueArray[]除了預設會被判斷為Placeholder的值,如有其他需求可增加。
3excludeValueArray[]如預設會被判斷為Placeholder的值,需被排除判斷,可在此處排除
4unselectClassString''如在未選擇值時希望有更多特殊樣式,可在此傳入Class。不需要加.

.

02.textareaAutoHeight

使用範例:

<template>
    <textarea v-textarea-auto-height v-model="inputValue"></textarea>
</template>
<script setup>
    import { ref } from "vue";
    import vTextareaAutoHeight from 'jobdone-shared-files/common/directives/textareaAutoHeight.js';
    
    const inputValue = ref(null)
    
</script>

SCSS

Layout

Layout 名稱說明在 jobdone-shared-files 內?
LayoutBase客製化的 Bootstrap (5.3.0)
LayoutProjectProject 使用的共用樣式,含開合雙欄樣式
LayoutSinglePage單頁版面的樣式,如:登入、錯誤頁、條款等
LayoutTwoColumn雙欄可開合樣式
LayoutDocs針對條文調整的樣式
LayoutInnerColumn針對 Project 雙欄樣式內的雙欄樣式
LayoutOutside針對 (底層) Project 外的共用樣式

Common

  • Animation:目前只有 Fade In keyframe
  • SelectableTable:勾選 tr focus style
  • thumbnail-group:方形大頭貼與小大頭貼相疊 style
  • filepond:客製化 filepond 樣式
1.0.21-beta.3

5 days ago

1.0.21-beta.4

5 days ago

1.0.21-beta.5

5 days ago

1.0.21-beta.1

5 days ago

1.0.21-beta.2

5 days ago

1.0.22

5 days ago

1.0.21

5 days ago

1.0.20

5 days ago

1.0.23

4 days ago

1.0.19

11 days ago

1.0.18

11 days ago

1.0.18-beta.1

11 days ago

1.0.18-beta.2

11 days ago

1.0.18-beta.3

11 days ago

1.0.18-beta.4

11 days ago

1.0.18-beta.5

11 days ago

1.0.18-beta.6

11 days ago

1.0.18-beta.7

11 days ago

1.0.18-beta.8

11 days ago

1.0.18-beta.9

11 days ago

1.0.16-beta.3

12 days ago

1.0.16-beta.4

12 days ago

1.0.16-beta.1

12 days ago

1.0.16-beta.2

12 days ago

1.0.17

12 days ago

1.0.16

22 days ago

1.0.14-beta.5

22 days ago

1.0.14-beta.4

25 days ago

1.0.14-beta.3

25 days ago

1.0.14-beta.2

25 days ago

1.0.14-beta.1

25 days ago

1.0.15

25 days ago

1.0.14

25 days ago

1.0.13

1 month ago

1.0.10-beta02

1 month ago

1.0.10-beta01

1 month ago

1.0.10-beta04

1 month ago

1.0.10-beta03

1 month ago

1.0.10-beta05

1 month ago

1.0.11

1 month ago

1.0.10

1 month ago

1.0.12

1 month ago

1.0.9

1 month ago

1.0.9-beta

1 month ago

1.0.7-3.6

2 months ago

1.0.7-3.4

2 months ago

1.0.7-3.5

2 months ago

1.0.7-3.2

2 months ago

1.0.7-3.3

2 months ago

1.0.7-3.1

2 months ago

1.0.7-beta8

2 months ago

1.0.7-beta7

2 months ago

1.0.7-beta6

2 months ago

1.0.7-beta5

2 months ago

1.0.7-beta4

2 months ago

1.0.7-beta3

2 months ago

1.0.7-beta2

2 months ago

1.0.73

2 months ago

1.0.72

2 months ago

1.0.71

2 months ago

1.0.8

2 months ago

1.0.7-beta14

2 months ago

1.0.7-beta10

2 months ago

1.0.7-beta11

2 months ago

1.0.7-beta12

2 months ago

1.0.7-beta13

2 months ago

1.0.7-beta

2 months ago

1.0.6

3 months ago

1.0.5-beta.1

3 months ago

1.0.4

3 months ago

1.0.3

3 months ago

1.0.2-beta.1

3 months ago

1.0.2

3 months ago

1.0.1

3 months ago

1.0.0

3 months ago

1.0.1-beta.2

3 months ago

1.0.1-beta.1

3 months ago

1.0.1-beta.4

3 months ago

1.0.1-beta.3

3 months ago

0.0.1-beta.105

3 months ago

0.0.1-beta.103

3 months ago

0.0.1-beta.104

3 months ago

0.0.1-beta.102

3 months ago

0.0.1-beta.101

3 months ago

0.0.1-beta.100

3 months ago

0.0.1-beta.98

3 months ago

0.0.1-beta.97

3 months ago

0.0.1-beta.99

3 months ago

0.0.1-beta.90

3 months ago

0.0.1-beta.92

3 months ago

0.0.1-beta.91

3 months ago

0.0.1-beta.89

3 months ago

0.0.1-beta.94

3 months ago

0.0.1-beta.93

3 months ago

0.0.1-beta.96

3 months ago

0.0.1-beta.95

3 months ago

0.0.1-beta.87

4 months ago

0.0.1-beta.86

4 months ago

0.0.1-beta.88

4 months ago

0.0.1-beta.85

5 months ago

0.0.1-beta.84

5 months ago

0.0.1-beta.83

5 months ago

0.0.1-beta.82

6 months ago

0.0.1-beta.81

7 months ago

0.0.1-beta.80

7 months ago

0.0.1-beta.76

7 months ago

0.0.1-beta.75

7 months ago

0.0.1-beta.78

7 months ago

0.0.1-beta.77

7 months ago

0.0.1-beta.72

7 months ago

0.0.1-beta.71

7 months ago

0.0.1-beta.74

7 months ago

0.0.1-beta.73

7 months ago

0.0.1-beta.79

7 months ago

0.0.1-beta.69

8 months ago

0.0.1-beta.65

8 months ago

0.0.1-beta.64

8 months ago

0.0.1-beta.67

8 months ago

0.0.1-beta.66

8 months ago

0.0.1-beta.61

9 months ago

0.0.1-beta.60

9 months ago

0.0.1-beta.63

8 months ago

0.0.1-beta.62

8 months ago

0.0.1-beta.68

8 months ago

0.0.1-beta.54

9 months ago

0.0.1-beta.56

9 months ago

0.0.1-beta.55

9 months ago

0.0.1-beta.58

9 months ago

0.0.1-beta.57

9 months ago

0.0.1-beta.59

9 months ago

0.0.1-beta.53

9 months ago

0.0.1-beta.52

9 months ago

0.0.1-beta.51

9 months ago

0.0.1-beta.50

9 months ago

0.0.1-beta.49

9 months ago

0.0.1-beta.48

9 months ago

0.0.1-beta.47

9 months ago

0.0.1-beta.46

9 months ago

0.0.1-beta.45

9 months ago

0.0.1-beta.44

9 months ago

0.0.1-beta.43

9 months ago

0.0.1-beta.42

9 months ago

0.0.1-beta.41

9 months ago

0.0.1-beta.40

10 months ago

0.0.1-beta.39

10 months ago

0.0.1-beta.38

10 months ago

0.0.1-beta.37

10 months ago

0.0.1-beta.36

10 months ago

0.0.1-beta.35

10 months ago

0.0.1-beta.34

10 months ago

0.0.1-beta.33

10 months ago

0.0.1-beta.32

10 months ago

0.0.1-beta.31

10 months ago

0.0.1-beta.30

10 months ago

0.0.1-beta.29

10 months ago

0.0.1-beta.28

10 months ago

0.0.1-beta.27

10 months ago

0.0.1-beta.26

10 months ago

0.0.1-beta.25

10 months ago

0.0.1-beta.24

10 months ago

0.0.1-beta.23

10 months ago

0.0.1-beta.22

10 months ago

0.0.1-beta.21

10 months ago

0.0.1-beta.20

10 months ago

0.0.1-beta.19

10 months ago

0.0.1-beta.18

11 months ago

0.0.1-beta.17

11 months ago

0.0.1-beta.16

11 months ago

0.0.1-beta.15

11 months ago

0.0.1-beta.14

11 months ago

0.0.1-beta.13

11 months ago

0.0.1-beta.12

11 months ago

0.0.1-beta.11

11 months ago

0.0.1-beta.10

11 months ago

0.0.1-beta.9

11 months ago

0.0.1-beta.8

11 months ago

0.0.1-beta.7

11 months ago

0.0.1-beta.6

11 months ago

0.0.1-beta.5

11 months ago

0.0.1-beta.4

11 months ago

0.0.1-beta.3

11 months ago

0.0.1-beta.2

11 months ago