Index.vue 5.98 KB
<template>
    <div class="test">
        <h4>机构选择</h4>
        <div class="flex items-center">
            <van-button type="primary" size="small" @click="unitData.visible = true">选择机构</van-button>
            <span class="ml-2">{{unitData.value}}</span>
        </div>
        <DocUnit v-model:show="unitData.visible" v-model:value="unitData.value"/>
        <div class="flex items-center">
            <h4>多选/单选按键</h4>
            <span>{{ checkData }}</span>
        </div>
        <CheckBtn :options="checkOptions" v-model:value="checkData" column-1 text-align="center"/>
        
        <h4>upload</h4>
        <DocImageUpload />

        <h4>work-tab</h4>
        <div class="work-tab">
            <div class="back"></div>
            <div class="flex work-tab-inner">
                <div class="item">工作记录</div>
                <div class="item" active>待筛查记录</div>
                <div class="item" >慢病待随访</div>
            </div>
        </div>

        <h4>tab</h4>
        <van-tabs shrink type="card" class="doc-tab-round">
            <van-tab v-for="index in 4" :title="'标签 ' + index" :key="index"></van-tab>
        </van-tabs>

        <h4>button</h4>
        <van-button round size="small" class="doc-btn-primary">修改</van-button>
        <van-button round size="small" class="doc-btn-red">删除</van-button>

        <h4>MP4</h4>
        <Mp4 :files="mp4Data" remove/>

        <h4 @click="mp3Show">MP3</h4>
        <Mp3 v-for="item in mp3Data" :file="item" :key="item.annexId" remove/>
    </div>
</template>

<script>
import DocUnit from '@/doctor/components/docUnit/DocUnit.vue'
import CheckBtn from '@/doctor/components/checkBtn/CheckBtn.vue'
import DocImageUpload from '@/doctor/components/docImageUpload/DocImageUpload.vue'
import Mp4 from '@/doctor/components/mediaPlay/Mp4.vue'
import Mp3 from '@/doctor/components/mediaPlay/Mp3.vue'

export default {
    components:{
        DocUnit,
        CheckBtn,
        DocImageUpload,
        Mp4,
        Mp3
    },
    data(){
        return {
            unitData: {
                visible: false,
                value: undefined
            },
            checkData: undefined,
            checkOptions: [
                { name: '血常规', value: 1, disabled: true },
                { name: '尿常规', value: 2 },
                { name: '肝功能', value: 3 },
                { name: '肾功能', value: 4 },
                { name: '电解质', value: 5 }
            ],
            mp4Data: [{ annexId: 1, annexUrl: 'https://beta-tumour.zmnyjk.com/chronic-admin/file-proxy/tumour/20241025/1729847263522306995.mp4?e=1733300684&token=yrkyCAltqk1WVrw1ZNWUl5F5gLxE0O8LJ0Vq4hzi:xukYHUsfX6OuAXIagBuHMCJ8XNg=', annexFileName: 'kanna.mp4' }],
            mp3Data: []
        }
    },
    created() {
        sessionStorage.setItem('token', 'dd16fd27-4cfc-492e-a772-c817033133bb')
    },
    methods: {
        mp3Show() {
            this.mp3Data = [{ annexId: 2, annexUrl: 'https://beta-tumour.zmnyjk.com/chronic-admin/file-proxy/tumour/20241025/1729847336798585370.mp3?e=1733300684&token=yrkyCAltqk1WVrw1ZNWUl5F5gLxE0O8LJ0Vq4hzi:RTqkJZsScil9rGf9kdA0Lq1TEOs=', annexFileName: 'Never Gonna Give You Up-Rick Astley.mp3'}]
        }
    }
}
</script>

<style lang="less" scoped>
:deep(.doc-tab-round) {
    .van-tabs__nav--card {
        column-gap: 10px;
        border: 0;
        margin: 0;
    }
    .van-tab--card {
        border: 0;
        border-radius: 40px;
        background: #fff;
        color: #262626;
        font-size: 14px;
        line-height: 28px;
        padding: 0 10px;
        transition: all .2s;
    }
    .van-tab--card.van-tab--active {
        color: #fff;
        background: var(--van-primary-color);
        font-weight: 500;
    }
}

.doc-btn {
    border: 0;
    padding: 4px 12px;
    height: 26px;
}
.doc-btn-primary {
    .doc-btn();
    color: var(--van-primary-color);
    background: #F0F3FF;
}
.doc-btn-red {
    .doc-btn();
    color: #FF4D4F;
    background: #FFF3F0;
}

.work-tab {
    background: #C6DBF9;
    padding-top: 10px;
    position: relative;
    .work-tab-inner {
        align-items: flex-end;
        position: relative;
    }
    .back {
        position: absolute;
        left: 0;
        bottom: 0;
        right: 0;
        height: 42px;
        background-color: #E7F1FF;
        border-top-left-radius: 12px;
        border-top-right-radius: 12px;
    }
    .item {
        // flex-grow: 1;
        position: relative;
        padding: 0 16px;
        height: 42px;
        line-height: 42px;
        text-align: center;
        &:first-child {
            border-top-left-radius: 12px;
        }
        &:last-child {
            border-top-right-radius: 12px;
        }
    }
    .item:first-child[active] {
        border-top-left-radius: 12px;
        &::before {
            display: none;
        }
    }
    .item:last-child[active] {
        border-top-right-radius: 12px;
        &::after {
            display: none;
        }
    }
    .item[active] {
        background-color: #F8FAFC;
        border-top-left-radius: 20px;
        border-top-right-radius: 20px;
        font-size: 16px;
        height: 46px;
        line-height: 46px;
        &::after {
            content: '';
            display: inline-block;
            position: absolute;
            right: -26px;
            bottom: 0;
            background: url('@/assets/image/doctor/tab-bg.png') no-repeat;
            background-size: auto 100%;
            background-position-x: -20px;
            height: 100%;
            width: 34px;
            z-index: 1;
        }
        &::before {
            content: '';
            display: inline-block;
            position: absolute;
            left: -26px;
            bottom: 0;
            background: url('@/assets/image/doctor/tab-bg.png') no-repeat;
            background-size: auto 100%;
            background-position-x: -20px;
            height: 100%;
            width: 34px;
            z-index: 1;
            transform: rotateY(180deg);
        }
    }
}
</style>