13404089107
2025-02-24 0248a7dd871d4119109fdbe706aa7389ef83978f
引入扩展组件select
4个文件已修改
38个文件已添加
4485 ■■■■■ 已修改文件
H5/pages/dispatchWorkOrder/dispatchWorkOrder.vue 113 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
H5/pages/dispatchWorkOrder/service.js 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
H5/pages/problemReporting/problemReporting.vue 48 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
H5/pages/problemReporting/service.js 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
H5/uni_modules/uni-data-select/changelog.md 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
H5/uni_modules/uni-data-select/components/uni-data-select/uni-data-select.vue 564 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
H5/uni_modules/uni-data-select/package.json 86 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
H5/uni_modules/uni-data-select/readme.md 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
H5/uni_modules/uni-icons/changelog.md 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
H5/uni_modules/uni-icons/components/uni-icons/uni-icons.uvue 91 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
H5/uni_modules/uni-icons/components/uni-icons/uni-icons.vue 110 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
H5/uni_modules/uni-icons/components/uni-icons/uniicons.css 664 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
H5/uni_modules/uni-icons/components/uni-icons/uniicons.ttf 补丁 | 查看 | 原始文档 | blame | 历史
H5/uni_modules/uni-icons/components/uni-icons/uniicons_file.ts 664 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
H5/uni_modules/uni-icons/components/uni-icons/uniicons_file_vue.js 649 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
H5/uni_modules/uni-icons/package.json 89 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
H5/uni_modules/uni-icons/readme.md 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
H5/uni_modules/uni-load-more/changelog.md 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
H5/uni_modules/uni-load-more/components/uni-load-more/i18n/en.json 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
H5/uni_modules/uni-load-more/components/uni-load-more/i18n/index.js 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
H5/uni_modules/uni-load-more/components/uni-load-more/i18n/zh-Hans.json 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
H5/uni_modules/uni-load-more/components/uni-load-more/i18n/zh-Hant.json 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
H5/uni_modules/uni-load-more/components/uni-load-more/uni-load-more.vue 404 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
H5/uni_modules/uni-load-more/package.json 84 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
H5/uni_modules/uni-load-more/readme.md 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
H5/uni_modules/uni-scss/changelog.md 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
H5/uni_modules/uni-scss/index.scss 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
H5/uni_modules/uni-scss/package.json 82 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
H5/uni_modules/uni-scss/readme.md 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
H5/uni_modules/uni-scss/styles/index.scss 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
H5/uni_modules/uni-scss/styles/setting/_border.scss 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
H5/uni_modules/uni-scss/styles/setting/_color.scss 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
H5/uni_modules/uni-scss/styles/setting/_radius.scss 55 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
H5/uni_modules/uni-scss/styles/setting/_space.scss 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
H5/uni_modules/uni-scss/styles/setting/_styles.scss 167 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
H5/uni_modules/uni-scss/styles/setting/_text.scss 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
H5/uni_modules/uni-scss/styles/setting/_variables.scss 146 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
H5/uni_modules/uni-scss/styles/tools/functions.scss 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
H5/uni_modules/uni-scss/theme.scss 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
H5/uni_modules/uni-scss/variables.scss 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
management/config/env.ts 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
management/src/pages/Login/service.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
H5/pages/dispatchWorkOrder/dispatchWorkOrder.vue
@@ -2,12 +2,12 @@
    <view class="problem-report-page">
        <view class="info-cards">
            <view class="info-top">
                <view class="num">诉求号:7843523454</view>
                <view class="status">正在办理</view>
                <view class="num">诉求号:{{detail.serialNumber}}</view>
                <view class="status">{{['正在办理','延期办理','超时办理','已办结','群众撤销','上报待审核','上级驳回'][detail.status]}}</view>
            </view>
            <view class="address">
                <view class="adr">江苏省常州市溧阳市牛顿大道172号</view>
                <view class="adr">{{detail.detailedAddress || ''}}</view>
                <image src="/static/position@2x.png" class="w-31 h-31" mode="aspectFill"></image>
            </view>
@@ -21,14 +21,13 @@
                <view class="table-item">
                    <view class="type-tip flex1">
                        <view class="tip">
                            教育
                            {{detail.problemType}}
                        </view>
                    </view>
                    <view class="person-item flex1">沙振</view>
                    <view class="phone-item flex1">14225874426</view>
                    <view class="person-item flex1">{{detail.name}}</view>
                    <view class="phone-item flex1">{{detail.contactNumber}}</view>
                </view>
            </view>
        </view>
        <view class="input-card">
@@ -43,19 +42,17 @@
            <image src="/static/warnng@2x.png" class="w-31 h-31 mr-15" mode="aspectFill"></image>
            提交后会由上级部门进行审核,请留意审核结果
        </view>
        <view class="btn">下派至下级部门</view>
        <view class="btn" @click="dispatch">下派至下级部门</view>
        <u-popup round="19rpx" :show="showPop" mode="center" @close="close" @open="open">
            <view class="popup-content">
                <view class="title-pop">请选择下派单位</view>
                <view class="pop-label">社区:</view>
                <view class="pop-select">
                    请选择
                </view>
                <uni-data-select v-model="value" :localdata="range" @change="change"></uni-data-select>
                <view class="botton-btn">
                    <view class="cancle">取消</view>
                    <view class="sure">确定</view>
                    <view class="cancle" @tap="close">取消</view>
                    <view class="sure" @tap="toDispatch">确定</view>
                </view>
            </view>
        </u-popup>
@@ -63,19 +60,105 @@
</template>
<script>
    import {
        saveDispatch,
        getDetail,
        getDispatchList
    } from './service'
    export default {
        data() {
            return {
                content: '',
                detail: {},
                showPop: false,
                value: '',
                range: [],
            };
        }
        },
        onLoad(option) {
            if (option.id) {
                this.id = option.id
                getDetail({
                    id: option.id
                }).then(res => {
                    if (res.code == 200) {
                        this.detail = res.data
                    }
                })
            }
        },
        methods: {
            change(e) {
                console.log("e:", e);
            },
            close() {
                this.showPop = false
            },
            dispatch() {
                this.showPop = true
            },
            open() {
                getDispatchList().then(res => {
                    if (res.code == 200) {
                        this.range = res.data.map(item => {
                            item.text = item.name
                            item.value = item.id
                        })
                    }
                })
            },
            toDispatch() {
                if (!this.value) {
                    uni.showToast({
                        icon: 'none',
                        title: '请选择下派单位'
                    })
                    return
                }
                saveDispatch({
                    complaintId: this.id,
                    comment: this.content,
                    dispatchId: this.value
                }).then(res => {
                    if (res.code == 200) {
                        uni.showToast({
                            icon: 'none',
                            title: '下派成功'
                        })
                        uni.navigateBack()
                    }
                })
            }
        },
    }
</script>
<style lang="scss" scoped>
    /deep/.uni-select {
        width: calc(484rpx) !important;
        border: unset;
        margin-top: 25rpx;
        margin-left: 45.15rpx;
    }
    /deep/.uni-select__input-box {
        width: calc(454rpx - 30.77rpx) !important;
        height: 77rpx;
        background: #FFFFFF;
        border-radius: 15rpx;
        border: 2rpx solid rgba(0, 0, 0, 0.15);
        padding-left: 30.77rpx;
        padding-right: 30.77rpx;
    }
    /deep/.uni-select__selector {
        width: calc(461rpx) !important;
        left: 15rpx;
    }
    .problem-report-page {
        padding-top: 38.46rpx;
        margin: 0 30.77rpx;
@@ -338,5 +421,7 @@
            color: #FFFFFF;
            cursor: pointer;
        }
    }
</style>
H5/pages/dispatchWorkOrder/service.js
New file
@@ -0,0 +1,17 @@
import request from '@/utils/request.js'
//获取工单详情
export const getDetail = (params) => {
    return request.get(`/api/huacheng-sangeshenbian/applet/complaint/detail`, params)
}
//下派
export const saveDispatch = (params) => {
    return request.post(`/api/huacheng-sangeshenbian/applet/complaint/saveDispatch`, params)
}
//获取下派单位
export const getDispatchList = (params) => {
    return request.get(`/api/huacheng-sangeshenbian/applet/complaint/getDispatchList`, params)
}
H5/pages/problemReporting/problemReporting.vue
@@ -2,12 +2,12 @@
    <view class="problem-report-page">
        <view class="info-cards">
            <view class="info-top">
                <view class="num">诉求号:7843523454</view>
                <view class="status">正在办理</view>
                <view class="num">诉求号:{{detail.serialNumber}}</view>
                <view class="status">{{['正在办理','延期办理','超时办理','已办结','群众撤销','上报待审核','上级驳回'][detail.status]}}</view>
            </view>
            <view class="address">
                <view class="adr">江苏省常州市溧阳市牛顿大道172号</view>
                <view class="adr">{{detail.detailedAddress || ''}}</view>
                <image src="/static/position@2x.png" class="w-31 h-31" mode="aspectFill"></image>
            </view>
@@ -21,11 +21,11 @@
                <view class="table-item">
                    <view class="type-tip flex1">
                        <view class="tip">
                            教育
                            {{detail.problemType}}
                        </view>
                    </view>
                    <view class="person-item flex1">沙振</view>
                    <view class="phone-item flex1">14225874426</view>
                    <view class="person-item flex1">{{detail.name}}</view>
                    <view class="phone-item flex1">{{detail.contactNumber}}</view>
                </view>
            </view>
@@ -50,12 +50,46 @@
</template>
<script>
    import {
        problemReport,
        getDetail
    } from './service'
    export default {
        data() {
            return {
                content: '',
                id: '',
                detail: {},
            };
        }
        },
        onLoad(option) {
            if (option.id) {
                this.id = option.id
                getDetail({
                    id: option.id
                }).then(res => {
                    if (res.code == 200) {
                        this.detail = res.data
                    }
                })
            }
        },
        methods: {
            problemReports() {
                problemReport({
                    comment: this.content,
                    complaintId: this.id
                }).then(res => {
                    if (res.code == 200) {
                        uni.showToast({
                            icon: 'none',
                            title: '上报成功'
                        })
                        uni.navigateBack()
                    }
                })
            },
        },
    }
</script>
H5/pages/problemReporting/service.js
New file
@@ -0,0 +1,8 @@
import request from '@/utils/request.js'
export const getDetail = (params) => {
    return request.get(`/api/huacheng-sangeshenbian/applet/complaint/detail`, params)
}
export const problemReport = (params) => {
    return request.get(`/api/huacheng-sangeshenbian/applet/complaint/report`, params)
}
H5/uni_modules/uni-data-select/changelog.md
New file
@@ -0,0 +1,39 @@
## 1.0.8(2024-03-28)
- 修复 在vue2下:style动态绑定导致编译失败的bug
## 1.0.7(2024-01-20)
- 修复 长文本回显超过容器的bug,超过容器部分显示省略号
## 1.0.6(2023-04-12)
- 修复 微信小程序点击时会改变背景颜色的 bug
## 1.0.5(2023-02-03)
- 修复 禁用时会显示清空按钮
## 1.0.4(2023-02-02)
- 优化 查询条件短期内多次变更只查询最后一次变更后的结果
- 调整 内部缓存键名调整为 uni-data-select-lastSelectedValue
## 1.0.3(2023-01-16)
- 修复 不关联服务空间报错的问题
## 1.0.2(2023-01-14)
- 新增  属性 `format` 可用于格式化显示选项内容
## 1.0.1(2022-12-06)
- 修复  当where变化时,数据不会自动更新的问题
## 0.1.9(2022-09-05)
- 修复 微信小程序下拉框出现后选择会点击到蒙板后面的输入框
## 0.1.8(2022-08-29)
- 修复 点击的位置不准确
## 0.1.7(2022-08-12)
- 新增 支持 disabled 属性
## 0.1.6(2022-07-06)
- 修复 pc端宽度异常的bug
## 0.1.5
- 修复 pc端宽度异常的bug
## 0.1.4(2022-07-05)
- 优化 显示样式
## 0.1.3(2022-06-02)
- 修复 localdata 赋值不生效的 bug
- 新增 支持  uni.scss 修改颜色
- 新增 支持选项禁用(数据选项设置 disabled: true 即禁用)
## 0.1.2(2022-05-08)
- 修复 当 value 为 0 时选择不生效的 bug
## 0.1.1(2022-05-07)
- 新增 记住上次的选项(仅 collection 存在时有效)
## 0.1.0(2022-04-22)
- 初始化
H5/uni_modules/uni-data-select/components/uni-data-select/uni-data-select.vue
New file
@@ -0,0 +1,564 @@
<template>
    <view class="uni-stat__select">
        <span v-if="label" class="uni-label-text hide-on-phone">{{label + ':'}}</span>
        <view class="uni-stat-box" :class="{'uni-stat__actived': current}">
            <view class="uni-select" :class="{'uni-select--disabled':disabled}">
                <view class="uni-select__input-box" @click="toggleSelector">
                    <view v-if="current" class="uni-select__input-text">{{textShow}}</view>
                    <view v-else class="uni-select__input-text uni-select__input-placeholder">{{typePlaceholder}}</view>
                    <!-- <view v-if="current && clear && !disabled" @click.stop="clearVal">
                        <uni-icons type="clear" color="#c0c4cc" size="24" />
                    </view> -->
                    <view>
                        <u-icon :name="showSelector?'arrow-up':'arrow-down'"></u-icon>
                        <!-- <uni-icons :type="showSelector? 'top' : 'bottom'" size="14" color="#999" /> -->
                    </view>
                </view>
                <view class="uni-select--mask" v-if="showSelector" @click="toggleSelector" />
                <view class="uni-select__selector" :style="getOffsetByPlacement" v-if="showSelector">
                    <view :class="placement=='bottom'?'uni-popper__arrow_bottom':'uni-popper__arrow_top'"></view>
                    <scroll-view scroll-y="true" class="uni-select__selector-scroll">
                        <view class="uni-select__selector-empty" v-if="mixinDatacomResData.length === 0">
                            <text>{{emptyTips}}</text>
                        </view>
                        <view v-else class="uni-select__selector-item" v-for="(item,index) in mixinDatacomResData"
                            :key="index" @click="change(item)">
                            <text
                                :class="{'uni-select__selector__disabled': item.disable}">{{formatItemName(item)}}</text>
                        </view>
                    </scroll-view>
                </view>
            </view>
        </view>
    </view>
</template>
<script>
    /**
     * DataChecklist 数据选择器
     * @description 通过数据渲染的下拉框组件
     * @tutorial https://uniapp.dcloud.io/component/uniui/uni-data-select
     * @property {String} value 默认值
     * @property {Array} localdata 本地数据 ,格式 [{text:'',value:''}]
     * @property {Boolean} clear 是否可以清空已选项
     * @property {Boolean} emptyText 没有数据时显示的文字 ,本地数据无效
     * @property {String} label 左侧标题
     * @property {String} placeholder 输入框的提示文字
     * @property {Boolean} disabled 是否禁用
     * @property {String} placement 弹出位置
     *     @value top           顶部弹出
     *     @value bottom        底部弹出(default)
     * @event {Function} change  选中发生变化触发
     */
    export default {
        name: "uni-data-select",
        mixins: [uniCloud.mixinDatacom || {}],
        props: {
            localdata: {
                type: Array,
                default () {
                    return []
                }
            },
            value: {
                type: [String, Number],
                default: ''
            },
            modelValue: {
                type: [String, Number],
                default: ''
            },
            label: {
                type: String,
                default: ''
            },
            placeholder: {
                type: String,
                default: '请选择'
            },
            emptyTips: {
                type: String,
                default: '无选项'
            },
            clear: {
                type: Boolean,
                default: true
            },
            defItem: {
                type: Number,
                default: 0
            },
            disabled: {
                type: Boolean,
                default: false
            },
            // 格式化输出 用法 field="_id as value, version as text, uni_platform as label" format="{label} - {text}"
            format: {
                type: String,
                default: ''
            },
            placement: {
                type: String,
                default: 'bottom'
            }
        },
        data() {
            return {
                showSelector: false,
                current: '',
                mixinDatacomResData: [],
                apps: [],
                channels: [],
                cacheKey: "uni-data-select-lastSelectedValue",
            };
        },
        created() {
            this.debounceGet = this.debounce(() => {
                this.query();
            }, 300);
            if (this.collection && !this.localdata.length) {
                this.debounceGet();
            }
        },
        computed: {
            typePlaceholder() {
                const text = {
                    'opendb-stat-app-versions': '版本',
                    'opendb-app-channels': '渠道',
                    'opendb-app-list': '应用'
                }
                const common = this.placeholder
                const placeholder = text[this.collection]
                return placeholder ?
                    common + placeholder :
                    common
            },
            valueCom() {
                // #ifdef VUE3
                return this.modelValue;
                // #endif
                // #ifndef VUE3
                return this.value;
                // #endif
            },
            textShow() {
                // 长文本显示
                let text = this.current;
                if (text.length > 10) {
                    return text.slice(0, 25) + '...';
                }
                return text;
            },
            getOffsetByPlacement() {
                switch (this.placement) {
                    case 'top':
                        return "bottom:calc(100% + 12px);";
                    case 'bottom':
                        return "top:calc(100% + 12px);";
                }
            }
        },
        watch: {
            localdata: {
                immediate: true,
                handler(val, old) {
                    if (Array.isArray(val) && old !== val) {
                        this.mixinDatacomResData = val
                    }
                }
            },
            valueCom(val, old) {
                this.initDefVal()
            },
            mixinDatacomResData: {
                immediate: true,
                handler(val) {
                    if (val.length) {
                        this.initDefVal()
                    }
                }
            },
        },
        methods: {
            debounce(fn, time = 100) {
                let timer = null
                return function(...args) {
                    if (timer) clearTimeout(timer)
                    timer = setTimeout(() => {
                        fn.apply(this, args)
                    }, time)
                }
            },
            // 执行数据库查询
            query() {
                this.mixinDatacomEasyGet();
            },
            // 监听查询条件变更事件
            onMixinDatacomPropsChange() {
                if (this.collection) {
                    this.debounceGet();
                }
            },
            initDefVal() {
                let defValue = ''
                if ((this.valueCom || this.valueCom === 0) && !this.isDisabled(this.valueCom)) {
                    defValue = this.valueCom
                } else {
                    let strogeValue
                    if (this.collection) {
                        strogeValue = this.getCache()
                    }
                    if (strogeValue || strogeValue === 0) {
                        defValue = strogeValue
                    } else {
                        let defItem = ''
                        if (this.defItem > 0 && this.defItem <= this.mixinDatacomResData.length) {
                            defItem = this.mixinDatacomResData[this.defItem - 1].value
                        }
                        defValue = defItem
                    }
                    if (defValue || defValue === 0) {
                        this.emit(defValue)
                    }
                }
                const def = this.mixinDatacomResData.find(item => item.value === defValue)
                this.current = def ? this.formatItemName(def) : ''
            },
            /**
             * @param {[String, Number]} value
             * 判断用户给的 value 是否同时为禁用状态
             */
            isDisabled(value) {
                let isDisabled = false;
                this.mixinDatacomResData.forEach(item => {
                    if (item.value === value) {
                        isDisabled = item.disable
                    }
                })
                return isDisabled;
            },
            clearVal() {
                this.emit('')
                if (this.collection) {
                    this.removeCache()
                }
            },
            change(item) {
                if (!item.disable) {
                    this.showSelector = false
                    this.current = this.formatItemName(item)
                    this.emit(item.value)
                }
            },
            emit(val) {
                this.$emit('input', val)
                this.$emit('update:modelValue', val)
                this.$emit('change', val)
                if (this.collection) {
                    this.setCache(val);
                }
            },
            toggleSelector() {
                if (this.disabled) {
                    return
                }
                this.showSelector = !this.showSelector
            },
            formatItemName(item) {
                let {
                    text,
                    value,
                    channel_code
                } = item
                channel_code = channel_code ? `(${channel_code})` : ''
                if (this.format) {
                    // 格式化输出
                    let str = "";
                    str = this.format;
                    for (let key in item) {
                        str = str.replace(new RegExp(`{${key}}`, "g"), item[key]);
                    }
                    return str;
                } else {
                    return this.collection.indexOf('app-list') > 0 ?
                        `${text}(${value})` :
                        (
                            text ?
                            text :
                            `未命名${channel_code}`
                        )
                }
            },
            // 获取当前加载的数据
            getLoadData() {
                return this.mixinDatacomResData;
            },
            // 获取当前缓存key
            getCurrentCacheKey() {
                return this.collection;
            },
            // 获取缓存
            getCache(name = this.getCurrentCacheKey()) {
                let cacheData = uni.getStorageSync(this.cacheKey) || {};
                return cacheData[name];
            },
            // 设置缓存
            setCache(value, name = this.getCurrentCacheKey()) {
                let cacheData = uni.getStorageSync(this.cacheKey) || {};
                cacheData[name] = value;
                uni.setStorageSync(this.cacheKey, cacheData);
            },
            // 删除缓存
            removeCache(name = this.getCurrentCacheKey()) {
                let cacheData = uni.getStorageSync(this.cacheKey) || {};
                delete cacheData[name];
                uni.setStorageSync(this.cacheKey, cacheData);
            },
        }
    }
</script>
<style lang="scss">
    $uni-base-color: #6a6a6a !default;
    $uni-main-color: #333 !default;
    $uni-secondary-color: #909399 !default;
    $uni-border-3: #e5e5e5;
    /* #ifndef APP-NVUE */
    @media screen and (max-width: 500px) {
        .hide-on-phone {
            display: none;
        }
    }
    /* #endif */
    .uni-stat__select {
        display: flex;
        align-items: center;
        // padding: 15px;
        /* #ifdef H5 */
        cursor: pointer;
        /* #endif */
        width: 100%;
        flex: 1;
        box-sizing: border-box;
    }
    .uni-stat-box {
        width: 100%;
        flex: 1;
    }
    .uni-stat__actived {
        width: 100%;
        flex: 1;
        // outline: 1px solid #2979ff;
    }
    .uni-label-text {
        font-size: 14px;
        font-weight: bold;
        color: $uni-base-color;
        margin: auto 0;
        margin-right: 5px;
    }
    .uni-select {
        font-size: 14px;
        border: 1px solid $uni-border-3;
        box-sizing: border-box;
        border-radius: 4px;
        padding: 0 5px;
        padding-left: 10px;
        position: relative;
        /* #ifndef APP-NVUE */
        display: flex;
        user-select: none;
        /* #endif */
        flex-direction: row;
        align-items: center;
        border-bottom: solid 1px $uni-border-3;
        width: 100%;
        flex: 1;
        height: 35px;
        &--disabled {
            background-color: #f5f7fa;
            cursor: not-allowed;
        }
    }
    .uni-select__label {
        font-size: 16px;
        // line-height: 22px;
        height: 35px;
        padding-right: 10px;
        color: $uni-secondary-color;
    }
    .uni-select__input-box {
        height: 35px;
        position: relative;
        /* #ifndef APP-NVUE */
        display: flex;
        /* #endif */
        flex: 1;
        flex-direction: row;
        align-items: center;
    }
    .uni-select__input {
        flex: 1;
        font-size: 14px;
        height: 22px;
        line-height: 22px;
    }
    .uni-select__input-plac {
        font-size: 14px;
        color: $uni-secondary-color;
    }
    .uni-select__selector {
        /* #ifndef APP-NVUE */
        box-sizing: border-box;
        /* #endif */
        position: absolute;
        left: 0;
        width: 100%;
        background-color: #FFFFFF;
        border: 1px solid #EBEEF5;
        border-radius: 6px;
        box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
        z-index: 3;
        padding: 4px 0;
    }
    .uni-select__selector-scroll {
        /* #ifndef APP-NVUE */
        max-height: 200px;
        box-sizing: border-box;
        /* #endif */
    }
    /* #ifdef H5 */
    @media (min-width: 768px) {
        .uni-select__selector-scroll {
            max-height: 600px;
        }
    }
    /* #endif */
    .uni-select__selector-empty,
    .uni-select__selector-item {
        /* #ifndef APP-NVUE */
        display: flex;
        cursor: pointer;
        /* #endif */
        line-height: 35px;
        font-size: 14px;
        text-align: center;
        /* border-bottom: solid 1px $uni-border-3; */
        padding: 0px 10px;
    }
    .uni-select__selector-item:hover {
        background-color: #f9f9f9;
    }
    .uni-select__selector-empty:last-child,
    .uni-select__selector-item:last-child {
        /* #ifndef APP-NVUE */
        border-bottom: none;
        /* #endif */
    }
    .uni-select__selector__disabled {
        opacity: 0.4;
        cursor: default;
    }
    /* picker 弹出层通用的指示小三角 */
    .uni-popper__arrow_bottom,
    .uni-popper__arrow_bottom::after,
    .uni-popper__arrow_top,
    .uni-popper__arrow_top::after,
    {
    position: absolute;
    display: block;
    width: 0;
    height: 0;
    border-color: transparent;
    border-style: solid;
    border-width: 6px;
    }
    .uni-popper__arrow_bottom {
        filter: drop-shadow(0 2px 12px rgba(0, 0, 0, 0.03));
        top: -6px;
        left: 10%;
        margin-right: 3px;
        border-top-width: 0;
        border-bottom-color: #EBEEF5;
    }
    .uni-popper__arrow_bottom::after {
        content: " ";
        top: 1px;
        margin-left: -6px;
        border-top-width: 0;
        border-bottom-color: #fff;
    }
    .uni-popper__arrow_top {
        filter: drop-shadow(0 2px 12px rgba(0, 0, 0, 0.03));
        bottom: -6px;
        left: 10%;
        margin-right: 3px;
        border-bottom-width: 0;
        border-top-color: #EBEEF5;
    }
    .uni-popper__arrow_top::after {
        content: " ";
        bottom: 1px;
        margin-left: -6px;
        border-bottom-width: 0;
        border-top-color: #fff;
    }
    .uni-select__input-text {
        // width: 280px;
        width: 100%;
        color: $uni-main-color;
        white-space: nowrap;
        text-overflow: ellipsis;
        -o-text-overflow: ellipsis;
        overflow: hidden;
    }
    .uni-select__input-placeholder {
        color: $uni-base-color;
        font-size: 12px;
    }
    .uni-select--mask {
        position: fixed;
        top: 0;
        bottom: 0;
        right: 0;
        left: 0;
        z-index: 2;
    }
</style>
H5/uni_modules/uni-data-select/package.json
New file
@@ -0,0 +1,86 @@
{
  "id": "uni-data-select",
  "displayName": "uni-data-select 下拉框选择器",
  "version": "1.0.8",
  "description": "通过数据驱动的下拉框选择器",
  "keywords": [
    "uni-ui",
    "select",
    "uni-data-select",
    "下拉框",
    "下拉选"
],
  "repository": "https://github.com/dcloudio/uni-ui",
  "engines": {
    "HBuilderX": "^3.1.1"
  },
  "directories": {
    "example": "../../temps/example_temps"
  },
"dcloudext": {
    "sale": {
      "regular": {
        "price": "0.00"
      },
      "sourcecode": {
        "price": "0.00"
      }
    },
    "contact": {
      "qq": ""
    },
    "declaration": {
      "ads": "无",
      "data": "无",
      "permissions": "无"
    },
    "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui",
    "type": "component-vue"
  },
  "uni_modules": {
    "dependencies": ["uni-load-more"],
    "encrypt": [],
    "platforms": {
      "cloud": {
        "tcb": "y",
        "aliyun": "y",
        "alipay": "n"
      },
      "client": {
        "App": {
          "app-vue": "u",
          "app-nvue": "n"
        },
        "H5-mobile": {
          "Safari": "y",
          "Android Browser": "y",
          "微信浏览器(Android)": "y",
          "QQ浏览器(Android)": "y"
        },
        "H5-pc": {
          "Chrome": "y",
          "IE": "y",
          "Edge": "y",
          "Firefox": "y",
          "Safari": "y"
        },
        "小程序": {
          "微信": "y",
          "阿里": "u",
          "百度": "u",
          "字节跳动": "u",
        "QQ": "u",
        "京东": "u"
        },
        "快应用": {
          "华为": "u",
          "联盟": "u"
        },
        "Vue": {
            "vue2": "y",
            "vue3": "y"
        }
      }
    }
  }
}
H5/uni_modules/uni-data-select/readme.md
New file
@@ -0,0 +1,8 @@
## DataSelect 下拉框选择器
> **组件名:uni-data-select**
> 代码块: `uDataSelect`
当选项过多时,使用下拉菜单展示并选择内容
### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-data-select)
#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839
H5/uni_modules/uni-icons/changelog.md
New file
@@ -0,0 +1,42 @@
## 2.0.10(2024-06-07)
- 优化 uni-app x 中,size 属性的类型
## 2.0.9(2024-01-12)
fix: 修复图标大小默认值错误的问题
## 2.0.8(2023-12-14)
- 修复 项目未使用 ts 情况下,打包报错的bug
## 2.0.7(2023-12-14)
- 修复 size 属性为 string 时,不加单位导致尺寸异常的bug
## 2.0.6(2023-12-11)
- 优化 兼容老版本icon类型,如 top ,bottom 等
## 2.0.5(2023-12-11)
- 优化 兼容老版本icon类型,如 top ,bottom 等
## 2.0.4(2023-12-06)
- 优化 uni-app x 下示例项目图标排序
## 2.0.3(2023-12-06)
- 修复 nvue下引入组件报错的bug
## 2.0.2(2023-12-05)
-优化 size 属性支持单位
## 2.0.1(2023-12-05)
- 新增 uni-app x 支持定义图标
## 1.3.5(2022-01-24)
- 优化 size 属性可以传入不带单位的字符串数值
## 1.3.4(2022-01-24)
- 优化 size 支持其他单位
## 1.3.3(2022-01-17)
- 修复 nvue 有些图标不显示的bug,兼容老版本图标
## 1.3.2(2021-12-01)
- 优化 示例可复制图标名称
## 1.3.1(2021-11-23)
- 优化 兼容旧组件 type 值
## 1.3.0(2021-11-19)
- 新增 更多图标
- 优化 自定义图标使用方式
- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource)
- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-icons](https://uniapp.dcloud.io/component/uniui/uni-icons)
## 1.1.7(2021-11-08)
## 1.2.0(2021-07-30)
- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834)
## 1.1.5(2021-05-12)
- 新增 组件示例地址
## 1.1.4(2021-02-05)
- 调整为uni_modules目录规范
H5/uni_modules/uni-icons/components/uni-icons/uni-icons.uvue
New file
@@ -0,0 +1,91 @@
<template>
  <text class="uni-icons" :style="styleObj">
    <slot>{{unicode}}</slot>
  </text>
</template>
<script>
  import { fontData, IconsDataItem } from './uniicons_file'
  /**
   * Icons 图标
   * @description 用于展示 icon 图标
   * @tutorial https://ext.dcloud.net.cn/plugin?id=28
   * @property {Number,String} size 图标大小
   * @property {String} type 图标图案,参考示例
   * @property {String} color 图标颜色
   * @property {String} customPrefix 自定义图标
   * @event {Function} click 点击 Icon 触发事件
   */
  export default {
    name: "uni-icons",
    props: {
      type: {
        type: String,
        default: ''
      },
      color: {
        type: String,
        default: '#333333'
      },
      size: {
        type: [Number, String],
        default: 16
      },
      fontFamily: {
        type: String,
        default: ''
      }
    },
    data() {
      return {};
    },
    computed: {
      unicode() : string {
        let codes = fontData.find((item : IconsDataItem) : boolean => { return item.font_class == this.type })
        if (codes !== null) {
          return codes.unicode
        }
        return ''
      },
      iconSize() : string {
        const size = this.size
        if (typeof size == 'string') {
          const reg = /^[0-9]*$/g
          return reg.test(size as string) ? '' + size + 'px' : '' + size;
          // return '' + this.size
        }
        return this.getFontSize(size as number)
      },
      styleObj() : UTSJSONObject {
        if (this.fontFamily !== '') {
          return { color: this.color, fontSize: this.iconSize, fontFamily: this.fontFamily }
        }
        return { color: this.color, fontSize: this.iconSize }
      }
    },
    created() { },
    methods: {
      /**
       * 字体大小
       */
      getFontSize(size : number) : string {
        return size + 'px';
      },
    },
  }
</script>
<style scoped>
  @font-face {
    font-family: UniIconsFontFamily;
    src: url('./uniicons.ttf');
  }
  .uni-icons {
    font-family: UniIconsFontFamily;
    font-size: 18px;
    font-style: normal;
    color: #333;
  }
</style>
H5/uni_modules/uni-icons/components/uni-icons/uni-icons.vue
New file
@@ -0,0 +1,110 @@
<template>
    <!-- #ifdef APP-NVUE -->
    <text :style="styleObj" class="uni-icons" @click="_onClick">{{unicode}}</text>
    <!-- #endif -->
    <!-- #ifndef APP-NVUE -->
    <text :style="styleObj" class="uni-icons" :class="['uniui-'+type,customPrefix,customPrefix?type:'']" @click="_onClick">
        <slot></slot>
    </text>
    <!-- #endif -->
</template>
<script>
    import { fontData } from './uniicons_file_vue.js';
    const getVal = (val) => {
        const reg = /^[0-9]*$/g
        return (typeof val === 'number' || reg.test(val)) ? val + 'px' : val;
    }
    // #ifdef APP-NVUE
    var domModule = weex.requireModule('dom');
    import iconUrl from './uniicons.ttf'
    domModule.addRule('fontFace', {
        'fontFamily': "uniicons",
        'src': "url('" + iconUrl + "')"
    });
    // #endif
    /**
     * Icons 图标
     * @description 用于展示 icons 图标
     * @tutorial https://ext.dcloud.net.cn/plugin?id=28
     * @property {Number} size 图标大小
     * @property {String} type 图标图案,参考示例
     * @property {String} color 图标颜色
     * @property {String} customPrefix 自定义图标
     * @event {Function} click 点击 Icon 触发事件
     */
    export default {
        name: 'UniIcons',
        emits: ['click'],
        props: {
            type: {
                type: String,
                default: ''
            },
            color: {
                type: String,
                default: '#333333'
            },
            size: {
                type: [Number, String],
                default: 16
            },
            customPrefix: {
                type: String,
                default: ''
            },
            fontFamily: {
                type: String,
                default: ''
            }
        },
        data() {
            return {
                icons: fontData
            }
        },
        computed: {
            unicode() {
                let code = this.icons.find(v => v.font_class === this.type)
                if (code) {
                    return code.unicode
                }
                return ''
            },
            iconSize() {
                return getVal(this.size)
            },
            styleObj() {
                if (this.fontFamily !== '') {
                    return `color: ${this.color}; font-size: ${this.iconSize}; font-family: ${this.fontFamily};`
                }
                return `color: ${this.color}; font-size: ${this.iconSize};`
            }
        },
        methods: {
            _onClick() {
                this.$emit('click')
            }
        }
    }
</script>
<style lang="scss">
    /* #ifndef APP-NVUE */
    @import './uniicons.css';
    @font-face {
        font-family: uniicons;
        src: url('./uniicons.ttf');
    }
    /* #endif */
    .uni-icons {
        font-family: uniicons;
        text-decoration: none;
        text-align: center;
    }
</style>
H5/uni_modules/uni-icons/components/uni-icons/uniicons.css
New file
@@ -0,0 +1,664 @@
.uniui-cart-filled:before {
  content: "\e6d0";
}
.uniui-gift-filled:before {
  content: "\e6c4";
}
.uniui-color:before {
  content: "\e6cf";
}
.uniui-wallet:before {
  content: "\e6b1";
}
.uniui-settings-filled:before {
  content: "\e6ce";
}
.uniui-auth-filled:before {
  content: "\e6cc";
}
.uniui-shop-filled:before {
  content: "\e6cd";
}
.uniui-staff-filled:before {
  content: "\e6cb";
}
.uniui-vip-filled:before {
  content: "\e6c6";
}
.uniui-plus-filled:before {
  content: "\e6c7";
}
.uniui-folder-add-filled:before {
  content: "\e6c8";
}
.uniui-color-filled:before {
  content: "\e6c9";
}
.uniui-tune-filled:before {
  content: "\e6ca";
}
.uniui-calendar-filled:before {
  content: "\e6c0";
}
.uniui-notification-filled:before {
  content: "\e6c1";
}
.uniui-wallet-filled:before {
  content: "\e6c2";
}
.uniui-medal-filled:before {
  content: "\e6c3";
}
.uniui-fire-filled:before {
  content: "\e6c5";
}
.uniui-refreshempty:before {
  content: "\e6bf";
}
.uniui-location-filled:before {
  content: "\e6af";
}
.uniui-person-filled:before {
  content: "\e69d";
}
.uniui-personadd-filled:before {
  content: "\e698";
}
.uniui-arrowthinleft:before {
  content: "\e6d2";
}
.uniui-arrowthinup:before {
  content: "\e6d3";
}
.uniui-arrowthindown:before {
  content: "\e6d4";
}
.uniui-back:before {
  content: "\e6b9";
}
.uniui-forward:before {
  content: "\e6ba";
}
.uniui-arrow-right:before {
  content: "\e6bb";
}
.uniui-arrow-left:before {
  content: "\e6bc";
}
.uniui-arrow-up:before {
  content: "\e6bd";
}
.uniui-arrow-down:before {
  content: "\e6be";
}
.uniui-arrowthinright:before {
  content: "\e6d1";
}
.uniui-down:before {
  content: "\e6b8";
}
.uniui-bottom:before {
  content: "\e6b8";
}
.uniui-arrowright:before {
  content: "\e6d5";
}
.uniui-right:before {
  content: "\e6b5";
}
.uniui-up:before {
  content: "\e6b6";
}
.uniui-top:before {
  content: "\e6b6";
}
.uniui-left:before {
  content: "\e6b7";
}
.uniui-arrowup:before {
  content: "\e6d6";
}
.uniui-eye:before {
  content: "\e651";
}
.uniui-eye-filled:before {
  content: "\e66a";
}
.uniui-eye-slash:before {
  content: "\e6b3";
}
.uniui-eye-slash-filled:before {
  content: "\e6b4";
}
.uniui-info-filled:before {
  content: "\e649";
}
.uniui-reload:before {
  content: "\e6b2";
}
.uniui-micoff-filled:before {
  content: "\e6b0";
}
.uniui-map-pin-ellipse:before {
  content: "\e6ac";
}
.uniui-map-pin:before {
  content: "\e6ad";
}
.uniui-location:before {
  content: "\e6ae";
}
.uniui-starhalf:before {
  content: "\e683";
}
.uniui-star:before {
  content: "\e688";
}
.uniui-star-filled:before {
  content: "\e68f";
}
.uniui-calendar:before {
  content: "\e6a0";
}
.uniui-fire:before {
  content: "\e6a1";
}
.uniui-medal:before {
  content: "\e6a2";
}
.uniui-font:before {
  content: "\e6a3";
}
.uniui-gift:before {
  content: "\e6a4";
}
.uniui-link:before {
  content: "\e6a5";
}
.uniui-notification:before {
  content: "\e6a6";
}
.uniui-staff:before {
  content: "\e6a7";
}
.uniui-vip:before {
  content: "\e6a8";
}
.uniui-folder-add:before {
  content: "\e6a9";
}
.uniui-tune:before {
  content: "\e6aa";
}
.uniui-auth:before {
  content: "\e6ab";
}
.uniui-person:before {
  content: "\e699";
}
.uniui-email-filled:before {
  content: "\e69a";
}
.uniui-phone-filled:before {
  content: "\e69b";
}
.uniui-phone:before {
  content: "\e69c";
}
.uniui-email:before {
  content: "\e69e";
}
.uniui-personadd:before {
  content: "\e69f";
}
.uniui-chatboxes-filled:before {
  content: "\e692";
}
.uniui-contact:before {
  content: "\e693";
}
.uniui-chatbubble-filled:before {
  content: "\e694";
}
.uniui-contact-filled:before {
  content: "\e695";
}
.uniui-chatboxes:before {
  content: "\e696";
}
.uniui-chatbubble:before {
  content: "\e697";
}
.uniui-upload-filled:before {
  content: "\e68e";
}
.uniui-upload:before {
  content: "\e690";
}
.uniui-weixin:before {
  content: "\e691";
}
.uniui-compose:before {
  content: "\e67f";
}
.uniui-qq:before {
  content: "\e680";
}
.uniui-download-filled:before {
  content: "\e681";
}
.uniui-pyq:before {
  content: "\e682";
}
.uniui-sound:before {
  content: "\e684";
}
.uniui-trash-filled:before {
  content: "\e685";
}
.uniui-sound-filled:before {
  content: "\e686";
}
.uniui-trash:before {
  content: "\e687";
}
.uniui-videocam-filled:before {
  content: "\e689";
}
.uniui-spinner-cycle:before {
  content: "\e68a";
}
.uniui-weibo:before {
  content: "\e68b";
}
.uniui-videocam:before {
  content: "\e68c";
}
.uniui-download:before {
  content: "\e68d";
}
.uniui-help:before {
  content: "\e679";
}
.uniui-navigate-filled:before {
  content: "\e67a";
}
.uniui-plusempty:before {
  content: "\e67b";
}
.uniui-smallcircle:before {
  content: "\e67c";
}
.uniui-minus-filled:before {
  content: "\e67d";
}
.uniui-micoff:before {
  content: "\e67e";
}
.uniui-closeempty:before {
  content: "\e66c";
}
.uniui-clear:before {
  content: "\e66d";
}
.uniui-navigate:before {
  content: "\e66e";
}
.uniui-minus:before {
  content: "\e66f";
}
.uniui-image:before {
  content: "\e670";
}
.uniui-mic:before {
  content: "\e671";
}
.uniui-paperplane:before {
  content: "\e672";
}
.uniui-close:before {
  content: "\e673";
}
.uniui-help-filled:before {
  content: "\e674";
}
.uniui-paperplane-filled:before {
  content: "\e675";
}
.uniui-plus:before {
  content: "\e676";
}
.uniui-mic-filled:before {
  content: "\e677";
}
.uniui-image-filled:before {
  content: "\e678";
}
.uniui-locked-filled:before {
  content: "\e668";
}
.uniui-info:before {
  content: "\e669";
}
.uniui-locked:before {
  content: "\e66b";
}
.uniui-camera-filled:before {
  content: "\e658";
}
.uniui-chat-filled:before {
  content: "\e659";
}
.uniui-camera:before {
  content: "\e65a";
}
.uniui-circle:before {
  content: "\e65b";
}
.uniui-checkmarkempty:before {
  content: "\e65c";
}
.uniui-chat:before {
  content: "\e65d";
}
.uniui-circle-filled:before {
  content: "\e65e";
}
.uniui-flag:before {
  content: "\e65f";
}
.uniui-flag-filled:before {
  content: "\e660";
}
.uniui-gear-filled:before {
  content: "\e661";
}
.uniui-home:before {
  content: "\e662";
}
.uniui-home-filled:before {
  content: "\e663";
}
.uniui-gear:before {
  content: "\e664";
}
.uniui-smallcircle-filled:before {
  content: "\e665";
}
.uniui-map-filled:before {
  content: "\e666";
}
.uniui-map:before {
  content: "\e667";
}
.uniui-refresh-filled:before {
  content: "\e656";
}
.uniui-refresh:before {
  content: "\e657";
}
.uniui-cloud-upload:before {
  content: "\e645";
}
.uniui-cloud-download-filled:before {
  content: "\e646";
}
.uniui-cloud-download:before {
  content: "\e647";
}
.uniui-cloud-upload-filled:before {
  content: "\e648";
}
.uniui-redo:before {
  content: "\e64a";
}
.uniui-images-filled:before {
  content: "\e64b";
}
.uniui-undo-filled:before {
  content: "\e64c";
}
.uniui-more:before {
  content: "\e64d";
}
.uniui-more-filled:before {
  content: "\e64e";
}
.uniui-undo:before {
  content: "\e64f";
}
.uniui-images:before {
  content: "\e650";
}
.uniui-paperclip:before {
  content: "\e652";
}
.uniui-settings:before {
  content: "\e653";
}
.uniui-search:before {
  content: "\e654";
}
.uniui-redo-filled:before {
  content: "\e655";
}
.uniui-list:before {
  content: "\e644";
}
.uniui-mail-open-filled:before {
  content: "\e63a";
}
.uniui-hand-down-filled:before {
  content: "\e63c";
}
.uniui-hand-down:before {
  content: "\e63d";
}
.uniui-hand-up-filled:before {
  content: "\e63e";
}
.uniui-hand-up:before {
  content: "\e63f";
}
.uniui-heart-filled:before {
  content: "\e641";
}
.uniui-mail-open:before {
  content: "\e643";
}
.uniui-heart:before {
  content: "\e639";
}
.uniui-loop:before {
  content: "\e633";
}
.uniui-pulldown:before {
  content: "\e632";
}
.uniui-scan:before {
  content: "\e62a";
}
.uniui-bars:before {
  content: "\e627";
}
.uniui-checkbox:before {
  content: "\e62b";
}
.uniui-checkbox-filled:before {
  content: "\e62c";
}
.uniui-shop:before {
  content: "\e62f";
}
.uniui-headphones:before {
  content: "\e630";
}
.uniui-cart:before {
  content: "\e631";
}
H5/uni_modules/uni-icons/components/uni-icons/uniicons.ttf
Binary files differ
H5/uni_modules/uni-icons/components/uni-icons/uniicons_file.ts
New file
@@ -0,0 +1,664 @@
export type IconsData = {
    id : string
    name : string
    font_family : string
    css_prefix_text : string
    description : string
    glyphs : Array<IconsDataItem>
}
export type IconsDataItem = {
    font_class : string
    unicode : string
}
export const fontData = [
  {
    "font_class": "arrow-down",
    "unicode": "\ue6be"
  },
  {
    "font_class": "arrow-left",
    "unicode": "\ue6bc"
  },
  {
    "font_class": "arrow-right",
    "unicode": "\ue6bb"
  },
  {
    "font_class": "arrow-up",
    "unicode": "\ue6bd"
  },
  {
    "font_class": "auth",
    "unicode": "\ue6ab"
  },
  {
    "font_class": "auth-filled",
    "unicode": "\ue6cc"
  },
  {
    "font_class": "back",
    "unicode": "\ue6b9"
  },
  {
    "font_class": "bars",
    "unicode": "\ue627"
  },
  {
    "font_class": "calendar",
    "unicode": "\ue6a0"
  },
  {
    "font_class": "calendar-filled",
    "unicode": "\ue6c0"
  },
  {
    "font_class": "camera",
    "unicode": "\ue65a"
  },
  {
    "font_class": "camera-filled",
    "unicode": "\ue658"
  },
  {
    "font_class": "cart",
    "unicode": "\ue631"
  },
  {
    "font_class": "cart-filled",
    "unicode": "\ue6d0"
  },
  {
    "font_class": "chat",
    "unicode": "\ue65d"
  },
  {
    "font_class": "chat-filled",
    "unicode": "\ue659"
  },
  {
    "font_class": "chatboxes",
    "unicode": "\ue696"
  },
  {
    "font_class": "chatboxes-filled",
    "unicode": "\ue692"
  },
  {
    "font_class": "chatbubble",
    "unicode": "\ue697"
  },
  {
    "font_class": "chatbubble-filled",
    "unicode": "\ue694"
  },
  {
    "font_class": "checkbox",
    "unicode": "\ue62b"
  },
  {
    "font_class": "checkbox-filled",
    "unicode": "\ue62c"
  },
  {
    "font_class": "checkmarkempty",
    "unicode": "\ue65c"
  },
  {
    "font_class": "circle",
    "unicode": "\ue65b"
  },
  {
    "font_class": "circle-filled",
    "unicode": "\ue65e"
  },
  {
    "font_class": "clear",
    "unicode": "\ue66d"
  },
  {
    "font_class": "close",
    "unicode": "\ue673"
  },
  {
    "font_class": "closeempty",
    "unicode": "\ue66c"
  },
  {
    "font_class": "cloud-download",
    "unicode": "\ue647"
  },
  {
    "font_class": "cloud-download-filled",
    "unicode": "\ue646"
  },
  {
    "font_class": "cloud-upload",
    "unicode": "\ue645"
  },
  {
    "font_class": "cloud-upload-filled",
    "unicode": "\ue648"
  },
  {
    "font_class": "color",
    "unicode": "\ue6cf"
  },
  {
    "font_class": "color-filled",
    "unicode": "\ue6c9"
  },
  {
    "font_class": "compose",
    "unicode": "\ue67f"
  },
  {
    "font_class": "contact",
    "unicode": "\ue693"
  },
  {
    "font_class": "contact-filled",
    "unicode": "\ue695"
  },
  {
    "font_class": "down",
    "unicode": "\ue6b8"
  },
    {
      "font_class": "bottom",
      "unicode": "\ue6b8"
    },
  {
    "font_class": "download",
    "unicode": "\ue68d"
  },
  {
    "font_class": "download-filled",
    "unicode": "\ue681"
  },
  {
    "font_class": "email",
    "unicode": "\ue69e"
  },
  {
    "font_class": "email-filled",
    "unicode": "\ue69a"
  },
  {
    "font_class": "eye",
    "unicode": "\ue651"
  },
  {
    "font_class": "eye-filled",
    "unicode": "\ue66a"
  },
  {
    "font_class": "eye-slash",
    "unicode": "\ue6b3"
  },
  {
    "font_class": "eye-slash-filled",
    "unicode": "\ue6b4"
  },
  {
    "font_class": "fire",
    "unicode": "\ue6a1"
  },
  {
    "font_class": "fire-filled",
    "unicode": "\ue6c5"
  },
  {
    "font_class": "flag",
    "unicode": "\ue65f"
  },
  {
    "font_class": "flag-filled",
    "unicode": "\ue660"
  },
  {
    "font_class": "folder-add",
    "unicode": "\ue6a9"
  },
  {
    "font_class": "folder-add-filled",
    "unicode": "\ue6c8"
  },
  {
    "font_class": "font",
    "unicode": "\ue6a3"
  },
  {
    "font_class": "forward",
    "unicode": "\ue6ba"
  },
  {
    "font_class": "gear",
    "unicode": "\ue664"
  },
  {
    "font_class": "gear-filled",
    "unicode": "\ue661"
  },
  {
    "font_class": "gift",
    "unicode": "\ue6a4"
  },
  {
    "font_class": "gift-filled",
    "unicode": "\ue6c4"
  },
  {
    "font_class": "hand-down",
    "unicode": "\ue63d"
  },
  {
    "font_class": "hand-down-filled",
    "unicode": "\ue63c"
  },
  {
    "font_class": "hand-up",
    "unicode": "\ue63f"
  },
  {
    "font_class": "hand-up-filled",
    "unicode": "\ue63e"
  },
  {
    "font_class": "headphones",
    "unicode": "\ue630"
  },
  {
    "font_class": "heart",
    "unicode": "\ue639"
  },
  {
    "font_class": "heart-filled",
    "unicode": "\ue641"
  },
  {
    "font_class": "help",
    "unicode": "\ue679"
  },
  {
    "font_class": "help-filled",
    "unicode": "\ue674"
  },
  {
    "font_class": "home",
    "unicode": "\ue662"
  },
  {
    "font_class": "home-filled",
    "unicode": "\ue663"
  },
  {
    "font_class": "image",
    "unicode": "\ue670"
  },
  {
    "font_class": "image-filled",
    "unicode": "\ue678"
  },
  {
    "font_class": "images",
    "unicode": "\ue650"
  },
  {
    "font_class": "images-filled",
    "unicode": "\ue64b"
  },
  {
    "font_class": "info",
    "unicode": "\ue669"
  },
  {
    "font_class": "info-filled",
    "unicode": "\ue649"
  },
  {
    "font_class": "left",
    "unicode": "\ue6b7"
  },
  {
    "font_class": "link",
    "unicode": "\ue6a5"
  },
  {
    "font_class": "list",
    "unicode": "\ue644"
  },
  {
    "font_class": "location",
    "unicode": "\ue6ae"
  },
  {
    "font_class": "location-filled",
    "unicode": "\ue6af"
  },
  {
    "font_class": "locked",
    "unicode": "\ue66b"
  },
  {
    "font_class": "locked-filled",
    "unicode": "\ue668"
  },
  {
    "font_class": "loop",
    "unicode": "\ue633"
  },
  {
    "font_class": "mail-open",
    "unicode": "\ue643"
  },
  {
    "font_class": "mail-open-filled",
    "unicode": "\ue63a"
  },
  {
    "font_class": "map",
    "unicode": "\ue667"
  },
  {
    "font_class": "map-filled",
    "unicode": "\ue666"
  },
  {
    "font_class": "map-pin",
    "unicode": "\ue6ad"
  },
  {
    "font_class": "map-pin-ellipse",
    "unicode": "\ue6ac"
  },
  {
    "font_class": "medal",
    "unicode": "\ue6a2"
  },
  {
    "font_class": "medal-filled",
    "unicode": "\ue6c3"
  },
  {
    "font_class": "mic",
    "unicode": "\ue671"
  },
  {
    "font_class": "mic-filled",
    "unicode": "\ue677"
  },
  {
    "font_class": "micoff",
    "unicode": "\ue67e"
  },
  {
    "font_class": "micoff-filled",
    "unicode": "\ue6b0"
  },
  {
    "font_class": "minus",
    "unicode": "\ue66f"
  },
  {
    "font_class": "minus-filled",
    "unicode": "\ue67d"
  },
  {
    "font_class": "more",
    "unicode": "\ue64d"
  },
  {
    "font_class": "more-filled",
    "unicode": "\ue64e"
  },
  {
    "font_class": "navigate",
    "unicode": "\ue66e"
  },
  {
    "font_class": "navigate-filled",
    "unicode": "\ue67a"
  },
  {
    "font_class": "notification",
    "unicode": "\ue6a6"
  },
  {
    "font_class": "notification-filled",
    "unicode": "\ue6c1"
  },
  {
    "font_class": "paperclip",
    "unicode": "\ue652"
  },
  {
    "font_class": "paperplane",
    "unicode": "\ue672"
  },
  {
    "font_class": "paperplane-filled",
    "unicode": "\ue675"
  },
  {
    "font_class": "person",
    "unicode": "\ue699"
  },
  {
    "font_class": "person-filled",
    "unicode": "\ue69d"
  },
  {
    "font_class": "personadd",
    "unicode": "\ue69f"
  },
  {
    "font_class": "personadd-filled",
    "unicode": "\ue698"
  },
  {
    "font_class": "personadd-filled-copy",
    "unicode": "\ue6d1"
  },
  {
    "font_class": "phone",
    "unicode": "\ue69c"
  },
  {
    "font_class": "phone-filled",
    "unicode": "\ue69b"
  },
  {
    "font_class": "plus",
    "unicode": "\ue676"
  },
  {
    "font_class": "plus-filled",
    "unicode": "\ue6c7"
  },
  {
    "font_class": "plusempty",
    "unicode": "\ue67b"
  },
  {
    "font_class": "pulldown",
    "unicode": "\ue632"
  },
  {
    "font_class": "pyq",
    "unicode": "\ue682"
  },
  {
    "font_class": "qq",
    "unicode": "\ue680"
  },
  {
    "font_class": "redo",
    "unicode": "\ue64a"
  },
  {
    "font_class": "redo-filled",
    "unicode": "\ue655"
  },
  {
    "font_class": "refresh",
    "unicode": "\ue657"
  },
  {
    "font_class": "refresh-filled",
    "unicode": "\ue656"
  },
  {
    "font_class": "refreshempty",
    "unicode": "\ue6bf"
  },
  {
    "font_class": "reload",
    "unicode": "\ue6b2"
  },
  {
    "font_class": "right",
    "unicode": "\ue6b5"
  },
  {
    "font_class": "scan",
    "unicode": "\ue62a"
  },
  {
    "font_class": "search",
    "unicode": "\ue654"
  },
  {
    "font_class": "settings",
    "unicode": "\ue653"
  },
  {
    "font_class": "settings-filled",
    "unicode": "\ue6ce"
  },
  {
    "font_class": "shop",
    "unicode": "\ue62f"
  },
  {
    "font_class": "shop-filled",
    "unicode": "\ue6cd"
  },
  {
    "font_class": "smallcircle",
    "unicode": "\ue67c"
  },
  {
    "font_class": "smallcircle-filled",
    "unicode": "\ue665"
  },
  {
    "font_class": "sound",
    "unicode": "\ue684"
  },
  {
    "font_class": "sound-filled",
    "unicode": "\ue686"
  },
  {
    "font_class": "spinner-cycle",
    "unicode": "\ue68a"
  },
  {
    "font_class": "staff",
    "unicode": "\ue6a7"
  },
  {
    "font_class": "staff-filled",
    "unicode": "\ue6cb"
  },
  {
    "font_class": "star",
    "unicode": "\ue688"
  },
  {
    "font_class": "star-filled",
    "unicode": "\ue68f"
  },
  {
    "font_class": "starhalf",
    "unicode": "\ue683"
  },
  {
    "font_class": "trash",
    "unicode": "\ue687"
  },
  {
    "font_class": "trash-filled",
    "unicode": "\ue685"
  },
  {
    "font_class": "tune",
    "unicode": "\ue6aa"
  },
  {
    "font_class": "tune-filled",
    "unicode": "\ue6ca"
  },
  {
    "font_class": "undo",
    "unicode": "\ue64f"
  },
  {
    "font_class": "undo-filled",
    "unicode": "\ue64c"
  },
  {
    "font_class": "up",
    "unicode": "\ue6b6"
  },
    {
      "font_class": "top",
      "unicode": "\ue6b6"
    },
  {
    "font_class": "upload",
    "unicode": "\ue690"
  },
  {
    "font_class": "upload-filled",
    "unicode": "\ue68e"
  },
  {
    "font_class": "videocam",
    "unicode": "\ue68c"
  },
  {
    "font_class": "videocam-filled",
    "unicode": "\ue689"
  },
  {
    "font_class": "vip",
    "unicode": "\ue6a8"
  },
  {
    "font_class": "vip-filled",
    "unicode": "\ue6c6"
  },
  {
    "font_class": "wallet",
    "unicode": "\ue6b1"
  },
  {
    "font_class": "wallet-filled",
    "unicode": "\ue6c2"
  },
  {
    "font_class": "weibo",
    "unicode": "\ue68b"
  },
  {
    "font_class": "weixin",
    "unicode": "\ue691"
  }
] as IconsDataItem[]
// export const fontData = JSON.parse<IconsDataItem>(fontDataJson)
H5/uni_modules/uni-icons/components/uni-icons/uniicons_file_vue.js
New file
@@ -0,0 +1,649 @@
export const fontData = [
  {
    "font_class": "arrow-down",
    "unicode": "\ue6be"
  },
  {
    "font_class": "arrow-left",
    "unicode": "\ue6bc"
  },
  {
    "font_class": "arrow-right",
    "unicode": "\ue6bb"
  },
  {
    "font_class": "arrow-up",
    "unicode": "\ue6bd"
  },
  {
    "font_class": "auth",
    "unicode": "\ue6ab"
  },
  {
    "font_class": "auth-filled",
    "unicode": "\ue6cc"
  },
  {
    "font_class": "back",
    "unicode": "\ue6b9"
  },
  {
    "font_class": "bars",
    "unicode": "\ue627"
  },
  {
    "font_class": "calendar",
    "unicode": "\ue6a0"
  },
  {
    "font_class": "calendar-filled",
    "unicode": "\ue6c0"
  },
  {
    "font_class": "camera",
    "unicode": "\ue65a"
  },
  {
    "font_class": "camera-filled",
    "unicode": "\ue658"
  },
  {
    "font_class": "cart",
    "unicode": "\ue631"
  },
  {
    "font_class": "cart-filled",
    "unicode": "\ue6d0"
  },
  {
    "font_class": "chat",
    "unicode": "\ue65d"
  },
  {
    "font_class": "chat-filled",
    "unicode": "\ue659"
  },
  {
    "font_class": "chatboxes",
    "unicode": "\ue696"
  },
  {
    "font_class": "chatboxes-filled",
    "unicode": "\ue692"
  },
  {
    "font_class": "chatbubble",
    "unicode": "\ue697"
  },
  {
    "font_class": "chatbubble-filled",
    "unicode": "\ue694"
  },
  {
    "font_class": "checkbox",
    "unicode": "\ue62b"
  },
  {
    "font_class": "checkbox-filled",
    "unicode": "\ue62c"
  },
  {
    "font_class": "checkmarkempty",
    "unicode": "\ue65c"
  },
  {
    "font_class": "circle",
    "unicode": "\ue65b"
  },
  {
    "font_class": "circle-filled",
    "unicode": "\ue65e"
  },
  {
    "font_class": "clear",
    "unicode": "\ue66d"
  },
  {
    "font_class": "close",
    "unicode": "\ue673"
  },
  {
    "font_class": "closeempty",
    "unicode": "\ue66c"
  },
  {
    "font_class": "cloud-download",
    "unicode": "\ue647"
  },
  {
    "font_class": "cloud-download-filled",
    "unicode": "\ue646"
  },
  {
    "font_class": "cloud-upload",
    "unicode": "\ue645"
  },
  {
    "font_class": "cloud-upload-filled",
    "unicode": "\ue648"
  },
  {
    "font_class": "color",
    "unicode": "\ue6cf"
  },
  {
    "font_class": "color-filled",
    "unicode": "\ue6c9"
  },
  {
    "font_class": "compose",
    "unicode": "\ue67f"
  },
  {
    "font_class": "contact",
    "unicode": "\ue693"
  },
  {
    "font_class": "contact-filled",
    "unicode": "\ue695"
  },
  {
    "font_class": "down",
    "unicode": "\ue6b8"
  },
    {
      "font_class": "bottom",
      "unicode": "\ue6b8"
    },
  {
    "font_class": "download",
    "unicode": "\ue68d"
  },
  {
    "font_class": "download-filled",
    "unicode": "\ue681"
  },
  {
    "font_class": "email",
    "unicode": "\ue69e"
  },
  {
    "font_class": "email-filled",
    "unicode": "\ue69a"
  },
  {
    "font_class": "eye",
    "unicode": "\ue651"
  },
  {
    "font_class": "eye-filled",
    "unicode": "\ue66a"
  },
  {
    "font_class": "eye-slash",
    "unicode": "\ue6b3"
  },
  {
    "font_class": "eye-slash-filled",
    "unicode": "\ue6b4"
  },
  {
    "font_class": "fire",
    "unicode": "\ue6a1"
  },
  {
    "font_class": "fire-filled",
    "unicode": "\ue6c5"
  },
  {
    "font_class": "flag",
    "unicode": "\ue65f"
  },
  {
    "font_class": "flag-filled",
    "unicode": "\ue660"
  },
  {
    "font_class": "folder-add",
    "unicode": "\ue6a9"
  },
  {
    "font_class": "folder-add-filled",
    "unicode": "\ue6c8"
  },
  {
    "font_class": "font",
    "unicode": "\ue6a3"
  },
  {
    "font_class": "forward",
    "unicode": "\ue6ba"
  },
  {
    "font_class": "gear",
    "unicode": "\ue664"
  },
  {
    "font_class": "gear-filled",
    "unicode": "\ue661"
  },
  {
    "font_class": "gift",
    "unicode": "\ue6a4"
  },
  {
    "font_class": "gift-filled",
    "unicode": "\ue6c4"
  },
  {
    "font_class": "hand-down",
    "unicode": "\ue63d"
  },
  {
    "font_class": "hand-down-filled",
    "unicode": "\ue63c"
  },
  {
    "font_class": "hand-up",
    "unicode": "\ue63f"
  },
  {
    "font_class": "hand-up-filled",
    "unicode": "\ue63e"
  },
  {
    "font_class": "headphones",
    "unicode": "\ue630"
  },
  {
    "font_class": "heart",
    "unicode": "\ue639"
  },
  {
    "font_class": "heart-filled",
    "unicode": "\ue641"
  },
  {
    "font_class": "help",
    "unicode": "\ue679"
  },
  {
    "font_class": "help-filled",
    "unicode": "\ue674"
  },
  {
    "font_class": "home",
    "unicode": "\ue662"
  },
  {
    "font_class": "home-filled",
    "unicode": "\ue663"
  },
  {
    "font_class": "image",
    "unicode": "\ue670"
  },
  {
    "font_class": "image-filled",
    "unicode": "\ue678"
  },
  {
    "font_class": "images",
    "unicode": "\ue650"
  },
  {
    "font_class": "images-filled",
    "unicode": "\ue64b"
  },
  {
    "font_class": "info",
    "unicode": "\ue669"
  },
  {
    "font_class": "info-filled",
    "unicode": "\ue649"
  },
  {
    "font_class": "left",
    "unicode": "\ue6b7"
  },
  {
    "font_class": "link",
    "unicode": "\ue6a5"
  },
  {
    "font_class": "list",
    "unicode": "\ue644"
  },
  {
    "font_class": "location",
    "unicode": "\ue6ae"
  },
  {
    "font_class": "location-filled",
    "unicode": "\ue6af"
  },
  {
    "font_class": "locked",
    "unicode": "\ue66b"
  },
  {
    "font_class": "locked-filled",
    "unicode": "\ue668"
  },
  {
    "font_class": "loop",
    "unicode": "\ue633"
  },
  {
    "font_class": "mail-open",
    "unicode": "\ue643"
  },
  {
    "font_class": "mail-open-filled",
    "unicode": "\ue63a"
  },
  {
    "font_class": "map",
    "unicode": "\ue667"
  },
  {
    "font_class": "map-filled",
    "unicode": "\ue666"
  },
  {
    "font_class": "map-pin",
    "unicode": "\ue6ad"
  },
  {
    "font_class": "map-pin-ellipse",
    "unicode": "\ue6ac"
  },
  {
    "font_class": "medal",
    "unicode": "\ue6a2"
  },
  {
    "font_class": "medal-filled",
    "unicode": "\ue6c3"
  },
  {
    "font_class": "mic",
    "unicode": "\ue671"
  },
  {
    "font_class": "mic-filled",
    "unicode": "\ue677"
  },
  {
    "font_class": "micoff",
    "unicode": "\ue67e"
  },
  {
    "font_class": "micoff-filled",
    "unicode": "\ue6b0"
  },
  {
    "font_class": "minus",
    "unicode": "\ue66f"
  },
  {
    "font_class": "minus-filled",
    "unicode": "\ue67d"
  },
  {
    "font_class": "more",
    "unicode": "\ue64d"
  },
  {
    "font_class": "more-filled",
    "unicode": "\ue64e"
  },
  {
    "font_class": "navigate",
    "unicode": "\ue66e"
  },
  {
    "font_class": "navigate-filled",
    "unicode": "\ue67a"
  },
  {
    "font_class": "notification",
    "unicode": "\ue6a6"
  },
  {
    "font_class": "notification-filled",
    "unicode": "\ue6c1"
  },
  {
    "font_class": "paperclip",
    "unicode": "\ue652"
  },
  {
    "font_class": "paperplane",
    "unicode": "\ue672"
  },
  {
    "font_class": "paperplane-filled",
    "unicode": "\ue675"
  },
  {
    "font_class": "person",
    "unicode": "\ue699"
  },
  {
    "font_class": "person-filled",
    "unicode": "\ue69d"
  },
  {
    "font_class": "personadd",
    "unicode": "\ue69f"
  },
  {
    "font_class": "personadd-filled",
    "unicode": "\ue698"
  },
  {
    "font_class": "personadd-filled-copy",
    "unicode": "\ue6d1"
  },
  {
    "font_class": "phone",
    "unicode": "\ue69c"
  },
  {
    "font_class": "phone-filled",
    "unicode": "\ue69b"
  },
  {
    "font_class": "plus",
    "unicode": "\ue676"
  },
  {
    "font_class": "plus-filled",
    "unicode": "\ue6c7"
  },
  {
    "font_class": "plusempty",
    "unicode": "\ue67b"
  },
  {
    "font_class": "pulldown",
    "unicode": "\ue632"
  },
  {
    "font_class": "pyq",
    "unicode": "\ue682"
  },
  {
    "font_class": "qq",
    "unicode": "\ue680"
  },
  {
    "font_class": "redo",
    "unicode": "\ue64a"
  },
  {
    "font_class": "redo-filled",
    "unicode": "\ue655"
  },
  {
    "font_class": "refresh",
    "unicode": "\ue657"
  },
  {
    "font_class": "refresh-filled",
    "unicode": "\ue656"
  },
  {
    "font_class": "refreshempty",
    "unicode": "\ue6bf"
  },
  {
    "font_class": "reload",
    "unicode": "\ue6b2"
  },
  {
    "font_class": "right",
    "unicode": "\ue6b5"
  },
  {
    "font_class": "scan",
    "unicode": "\ue62a"
  },
  {
    "font_class": "search",
    "unicode": "\ue654"
  },
  {
    "font_class": "settings",
    "unicode": "\ue653"
  },
  {
    "font_class": "settings-filled",
    "unicode": "\ue6ce"
  },
  {
    "font_class": "shop",
    "unicode": "\ue62f"
  },
  {
    "font_class": "shop-filled",
    "unicode": "\ue6cd"
  },
  {
    "font_class": "smallcircle",
    "unicode": "\ue67c"
  },
  {
    "font_class": "smallcircle-filled",
    "unicode": "\ue665"
  },
  {
    "font_class": "sound",
    "unicode": "\ue684"
  },
  {
    "font_class": "sound-filled",
    "unicode": "\ue686"
  },
  {
    "font_class": "spinner-cycle",
    "unicode": "\ue68a"
  },
  {
    "font_class": "staff",
    "unicode": "\ue6a7"
  },
  {
    "font_class": "staff-filled",
    "unicode": "\ue6cb"
  },
  {
    "font_class": "star",
    "unicode": "\ue688"
  },
  {
    "font_class": "star-filled",
    "unicode": "\ue68f"
  },
  {
    "font_class": "starhalf",
    "unicode": "\ue683"
  },
  {
    "font_class": "trash",
    "unicode": "\ue687"
  },
  {
    "font_class": "trash-filled",
    "unicode": "\ue685"
  },
  {
    "font_class": "tune",
    "unicode": "\ue6aa"
  },
  {
    "font_class": "tune-filled",
    "unicode": "\ue6ca"
  },
  {
    "font_class": "undo",
    "unicode": "\ue64f"
  },
  {
    "font_class": "undo-filled",
    "unicode": "\ue64c"
  },
  {
    "font_class": "up",
    "unicode": "\ue6b6"
  },
    {
      "font_class": "top",
      "unicode": "\ue6b6"
    },
  {
    "font_class": "upload",
    "unicode": "\ue690"
  },
  {
    "font_class": "upload-filled",
    "unicode": "\ue68e"
  },
  {
    "font_class": "videocam",
    "unicode": "\ue68c"
  },
  {
    "font_class": "videocam-filled",
    "unicode": "\ue689"
  },
  {
    "font_class": "vip",
    "unicode": "\ue6a8"
  },
  {
    "font_class": "vip-filled",
    "unicode": "\ue6c6"
  },
  {
    "font_class": "wallet",
    "unicode": "\ue6b1"
  },
  {
    "font_class": "wallet-filled",
    "unicode": "\ue6c2"
  },
  {
    "font_class": "weibo",
    "unicode": "\ue68b"
  },
  {
    "font_class": "weixin",
    "unicode": "\ue691"
  }
]
// export const fontData = JSON.parse<IconsDataItem>(fontDataJson)
H5/uni_modules/uni-icons/package.json
New file
@@ -0,0 +1,89 @@
{
  "id": "uni-icons",
  "displayName": "uni-icons 图标",
  "version": "2.0.10",
  "description": "图标组件,用于展示移动端常见的图标,可自定义颜色、大小。",
  "keywords": [
    "uni-ui",
    "uniui",
    "icon",
    "图标"
],
  "repository": "https://github.com/dcloudio/uni-ui",
  "engines": {
    "HBuilderX": "^3.2.14"
  },
  "directories": {
    "example": "../../temps/example_temps"
  },
"dcloudext": {
    "sale": {
      "regular": {
        "price": "0.00"
      },
      "sourcecode": {
        "price": "0.00"
      }
    },
    "contact": {
      "qq": ""
    },
    "declaration": {
      "ads": "无",
      "data": "无",
      "permissions": "无"
    },
    "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui",
    "type": "component-vue"
  },
  "uni_modules": {
    "dependencies": ["uni-scss"],
    "encrypt": [],
    "platforms": {
      "cloud": {
        "tcb": "y",
        "aliyun": "y",
        "alipay": "n"
      },
      "client": {
        "App": {
          "app-vue": "y",
          "app-nvue": "y",
          "app-uvue": "y"
        },
        "H5-mobile": {
          "Safari": "y",
          "Android Browser": "y",
          "微信浏览器(Android)": "y",
          "QQ浏览器(Android)": "y"
        },
        "H5-pc": {
          "Chrome": "y",
          "IE": "y",
          "Edge": "y",
          "Firefox": "y",
          "Safari": "y"
        },
        "小程序": {
          "微信": "y",
          "阿里": "y",
          "百度": "y",
          "字节跳动": "y",
          "QQ": "y",
                    "钉钉": "y",
                    "快手": "y",
                    "飞书": "y",
                    "京东": "y"
        },
        "快应用": {
          "华为": "y",
          "联盟": "y"
        },
        "Vue": {
            "vue2": "y",
            "vue3": "y"
        }
      }
    }
  }
}
H5/uni_modules/uni-icons/readme.md
New file
@@ -0,0 +1,8 @@
## Icons 图标
> **组件名:uni-icons**
> 代码块: `uIcons`
用于展示 icons 图标 。
### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-icons)
#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839
H5/uni_modules/uni-load-more/changelog.md
New file
@@ -0,0 +1,25 @@
## 1.3.6(2024-10-15)
- 修复 微信小程序中的getSystemInfo警告
## 1.3.5(2024-10-12)
- 修复 微信小程序中的getSystemInfo警告
## 1.3.4(2024-10-12)
- 修复 微信小程序中的getSystemInfo警告
## 1.3.3(2022-01-20)
- 新增 showText属性 ,是否显示文本
## 1.3.2(2022-01-19)
- 修复 nvue 平台下不显示文本的bug
## 1.3.1(2022-01-19)
- 修复 微信小程序平台样式选择器报警告的问题
## 1.3.0(2021-11-19)
- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource)
- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-load-more](https://uniapp.dcloud.io/component/uniui/uni-load-more)
## 1.2.1(2021-08-24)
- 新增 支持国际化
## 1.2.0(2021-07-30)
- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834)
## 1.1.8(2021-05-12)
- 新增 组件示例地址
## 1.1.7(2021-03-30)
- 修复 uni-load-more 在首页使用时,h5 平台报 'uni is not defined' 的 bug
## 1.1.6(2021-02-05)
- 调整为uni_modules目录规范
H5/uni_modules/uni-load-more/components/uni-load-more/i18n/en.json
New file
@@ -0,0 +1,5 @@
{
    "uni-load-more.contentdown": "Pull up to show more",
    "uni-load-more.contentrefresh": "loading...",
    "uni-load-more.contentnomore": "No more data"
}
H5/uni_modules/uni-load-more/components/uni-load-more/i18n/index.js
New file
@@ -0,0 +1,8 @@
import en from './en.json'
import zhHans from './zh-Hans.json'
import zhHant from './zh-Hant.json'
export default {
    en,
    'zh-Hans': zhHans,
    'zh-Hant': zhHant
}
H5/uni_modules/uni-load-more/components/uni-load-more/i18n/zh-Hans.json
New file
@@ -0,0 +1,5 @@
{
    "uni-load-more.contentdown": "上拉显示更多",
    "uni-load-more.contentrefresh": "正在加载...",
    "uni-load-more.contentnomore": "没有更多数据了"
}
H5/uni_modules/uni-load-more/components/uni-load-more/i18n/zh-Hant.json
New file
@@ -0,0 +1,5 @@
{
    "uni-load-more.contentdown": "上拉顯示更多",
    "uni-load-more.contentrefresh": "正在加載...",
    "uni-load-more.contentnomore": "沒有更多數據了"
}
H5/uni_modules/uni-load-more/components/uni-load-more/uni-load-more.vue
New file
@@ -0,0 +1,404 @@
<template>
    <view class="uni-load-more" @click="onClick">
        <!-- #ifdef APP-NVUE -->
        <loading-indicator v-if="!webviewHide && status === 'loading' && showIcon"
            :style="{color: color,width:iconSize+'px',height:iconSize+'px'}" :animating="true"
            class="uni-load-more__img uni-load-more__img--nvue"></loading-indicator>
        <!-- #endif -->
        <!-- #ifdef H5 -->
        <svg width="24" height="24" viewBox="25 25 50 50"
            v-if="!webviewHide && (iconType==='circle' || iconType==='auto' && platform === 'android') && status === 'loading' && showIcon"
            :style="{width:iconSize+'px',height:iconSize+'px'}"
            class="uni-load-more__img uni-load-more__img--android-H5">
            <circle cx="50" cy="50" r="20" fill="none" :style="{color:color}" :stroke-width="3"></circle>
        </svg>
        <!-- #endif -->
        <!-- #ifndef APP-NVUE || H5 -->
        <view
            v-if="!webviewHide && (iconType==='circle' || iconType==='auto' && platform === 'android') && status === 'loading' && showIcon"
            :style="{width:iconSize+'px',height:iconSize+'px'}"
            class="uni-load-more__img uni-load-more__img--android-MP">
            <view class="uni-load-more__img-icon" :style="{borderTopColor:color,borderTopWidth:iconSize/12}"></view>
            <view class="uni-load-more__img-icon" :style="{borderTopColor:color,borderTopWidth:iconSize/12}"></view>
            <view class="uni-load-more__img-icon" :style="{borderTopColor:color,borderTopWidth:iconSize/12}"></view>
        </view>
        <!-- #endif -->
        <!-- #ifndef APP-NVUE -->
        <view v-else-if="!webviewHide && status === 'loading' && showIcon"
            :style="{width:iconSize+'px',height:iconSize+'px'}" class="uni-load-more__img uni-load-more__img--ios-H5">
            <image :src="imgBase64" mode="widthFix"></image>
        </view>
        <!-- #endif -->
        <text v-if="showText" class="uni-load-more__text"
            :style="{color: color}">{{ status === 'more' ? contentdownText : status === 'loading' ? contentrefreshText : contentnomoreText }}</text>
    </view>
</template>
<script>
    let platform
    setTimeout(() => {
        // #ifdef MP-WEIXIN
        platform = uni.getDeviceInfo().platform
        // #endif
        // #ifndef MP-WEIXIN
        platform = uni.getSystemInfoSync().platform
        // #endif
    }, 16)
    import {
        initVueI18n
    } from '@dcloudio/uni-i18n'
    import messages from './i18n/index.js'
    const {
        t
    } = initVueI18n(messages)
    /**
     * LoadMore 加载更多
     * @description 用于列表中,做滚动加载使用,展示 loading 的各种状态
     * @tutorial https://ext.dcloud.net.cn/plugin?id=29
     * @property {String} status = [more|loading|noMore] loading 的状态
     *     @value more loading前
     *     @value loading loading中
     *     @value noMore 没有更多了
     * @property {Number} iconSize 指定图标大小
     * @property {Boolean} iconSize = [true|false] 是否显示 loading 图标
     * @property {String} iconType = [snow|circle|auto] 指定图标样式
     *     @value snow ios雪花加载样式
     *     @value circle 安卓唤醒加载样式
     *     @value auto 根据平台自动选择加载样式
     * @property {String} color 图标和文字颜色
     * @property {Object} contentText 各状态文字说明,值为:{contentdown: "上拉显示更多",contentrefresh: "正在加载...",contentnomore: "没有更多数据了"}
     * @event {Function} clickLoadMore 点击加载更多时触发
     */
    export default {
        name: 'UniLoadMore',
        emits: ['clickLoadMore'],
        props: {
            status: {
                // 上拉的状态:more-loading前;loading-loading中;noMore-没有更多了
                type: String,
                default: 'more'
            },
            showIcon: {
                type: Boolean,
                default: true
            },
            iconType: {
                type: String,
                default: 'auto'
            },
            iconSize: {
                type: Number,
                default: 24
            },
            color: {
                type: String,
                default: '#777777'
            },
            contentText: {
                type: Object,
                default () {
                    return {
                        contentdown: '',
                        contentrefresh: '',
                        contentnomore: ''
                    }
                }
            },
            showText: {
                type: Boolean,
                default: true
            }
        },
        data() {
            return {
                webviewHide: false,
                platform: platform,
                imgBase64: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QzlBMzU3OTlEOUM0MTFFOUI0NTZDNERBQURBQzI4RkUiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QzlBMzU3OUFEOUM0MTFFOUI0NTZDNERBQURBQzI4RkUiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpDOUEzNTc5N0Q5QzQxMUU5QjQ1NkM0REFBREFDMjhGRSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpDOUEzNTc5OEQ5QzQxMUU5QjQ1NkM0REFBREFDMjhGRSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pt+ALSwAAA6CSURBVHja1FsLkFZV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'
            }
        },
        computed: {
            iconSnowWidth() {
                return (Math.floor(this.iconSize / 24) || 1) * 2
            },
            contentdownText() {
                return this.contentText.contentdown || t("uni-load-more.contentdown")
            },
            contentrefreshText() {
                return this.contentText.contentrefresh || t("uni-load-more.contentrefresh")
            },
            contentnomoreText() {
                return this.contentText.contentnomore || t("uni-load-more.contentnomore")
            }
        },
        mounted() {
            // #ifdef APP-PLUS
            var pages = getCurrentPages();
            var page = pages[pages.length - 1];
            var currentWebview = page.$getAppWebview();
            currentWebview.addEventListener('hide', () => {
                this.webviewHide = true
            })
            currentWebview.addEventListener('show', () => {
                this.webviewHide = false
            })
            // #endif
        },
        methods: {
            onClick() {
                this.$emit('clickLoadMore', {
                    detail: {
                        status: this.status,
                    }
                })
            }
        }
    }
</script>
<style lang="scss" >
    .uni-load-more {
        /* #ifndef APP-NVUE */
        display: flex;
        /* #endif */
        flex-direction: row;
        height: 40px;
        align-items: center;
        justify-content: center;
    }
    .uni-load-more__text {
        font-size: 14px;
        margin-left: 8px;
    }
    .uni-load-more__img {
        width: 24px;
        height: 24px;
        // margin-right: 8px;
    }
    .uni-load-more__img--nvue {
        color: #666666;
    }
    .uni-load-more__img--android,
    .uni-load-more__img--ios {
        width: 24px;
        height: 24px;
        transform: rotate(0deg);
    }
    /* #ifndef APP-NVUE */
    .uni-load-more__img--android {
        animation: loading-ios 1s 0s linear infinite;
    }
    @keyframes loading-android {
        0% {
            transform: rotate(0deg);
        }
        100% {
            transform: rotate(360deg);
        }
    }
    .uni-load-more__img--ios-H5 {
        position: relative;
        animation: loading-ios-H5 1s 0s step-end infinite;
    }
    .uni-load-more__img--ios-H5 image {
        position: absolute;
        width: 100%;
        height: 100%;
        left: 0;
        top: 0;
    }
    @keyframes loading-ios-H5 {
        0% {
            transform: rotate(0deg);
        }
        8% {
            transform: rotate(30deg);
        }
        16% {
            transform: rotate(60deg);
        }
        24% {
            transform: rotate(90deg);
        }
        32% {
            transform: rotate(120deg);
        }
        40% {
            transform: rotate(150deg);
        }
        48% {
            transform: rotate(180deg);
        }
        56% {
            transform: rotate(210deg);
        }
        64% {
            transform: rotate(240deg);
        }
        73% {
            transform: rotate(270deg);
        }
        82% {
            transform: rotate(300deg);
        }
        91% {
            transform: rotate(330deg);
        }
        100% {
            transform: rotate(360deg);
        }
    }
    /* #endif */
    /* #ifdef H5 */
    .uni-load-more__img--android-H5 {
        animation: loading-android-H5-rotate 2s linear infinite;
        transform-origin: center center;
    }
    .uni-load-more__img--android-H5 circle {
        display: inline-block;
        animation: loading-android-H5-dash 1.5s ease-in-out infinite;
        stroke: currentColor;
        stroke-linecap: round;
    }
    @keyframes loading-android-H5-rotate {
        0% {
            transform: rotate(0deg);
        }
        100% {
            transform: rotate(360deg);
        }
    }
    @keyframes loading-android-H5-dash {
        0% {
            stroke-dasharray: 1, 200;
            stroke-dashoffset: 0;
        }
        50% {
            stroke-dasharray: 90, 150;
            stroke-dashoffset: -40;
        }
        100% {
            stroke-dasharray: 90, 150;
            stroke-dashoffset: -120;
        }
    }
    /* #endif */
    /* #ifndef APP-NVUE || H5 */
    .uni-load-more__img--android-MP {
        position: relative;
        width: 24px;
        height: 24px;
        transform: rotate(0deg);
        animation: loading-ios 1s 0s ease infinite;
    }
    .uni-load-more__img--android-MP .uni-load-more__img-icon {
        position: absolute;
        box-sizing: border-box;
        width: 100%;
        height: 100%;
        border-radius: 50%;
        border: solid 2px transparent;
        border-top: solid 2px #777777;
        transform-origin: center;
    }
    .uni-load-more__img--android-MP .uni-load-more__img-icon:nth-child(1) {
        animation: loading-android-MP-1 1s 0s linear infinite;
    }
    .uni-load-more__img--android-MP .uni-load-more__img-icon:nth-child(2) {
        animation: loading-android-MP-2 1s 0s linear infinite;
    }
    .uni-load-more__img--android-MP .uni-load-more__img-icon:nth-child(3) {
        animation: loading-android-MP-3 1s 0s linear infinite;
    }
    @keyframes loading-android {
        0% {
            transform: rotate(0deg);
        }
        100% {
            transform: rotate(360deg);
        }
    }
    @keyframes loading-android-MP-1 {
        0% {
            transform: rotate(0deg);
        }
        50% {
            transform: rotate(90deg);
        }
        100% {
            transform: rotate(360deg);
        }
    }
    @keyframes loading-android-MP-2 {
        0% {
            transform: rotate(0deg);
        }
        50% {
            transform: rotate(180deg);
        }
        100% {
            transform: rotate(360deg);
        }
    }
    @keyframes loading-android-MP-3 {
        0% {
            transform: rotate(0deg);
        }
        50% {
            transform: rotate(270deg);
        }
        100% {
            transform: rotate(360deg);
        }
    }
    /* #endif */
</style>
H5/uni_modules/uni-load-more/package.json
New file
@@ -0,0 +1,84 @@
{
  "id": "uni-load-more",
  "displayName": "uni-load-more 加载更多",
  "version": "1.3.6",
  "description": "LoadMore 组件,常用在列表里面,做滚动加载使用。",
  "keywords": [
    "uni-ui",
    "uniui",
    "加载更多",
    "load-more"
],
  "repository": "https://github.com/dcloudio/uni-ui",
  "engines": {
    "HBuilderX": ""
  },
  "directories": {
    "example": "../../temps/example_temps"
  },
"dcloudext": {
    "sale": {
      "regular": {
        "price": "0.00"
      },
      "sourcecode": {
        "price": "0.00"
      }
    },
    "contact": {
      "qq": ""
    },
    "declaration": {
      "ads": "无",
      "data": "无",
      "permissions": "无"
    },
    "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui",
    "type": "component-vue"
  },
  "uni_modules": {
    "dependencies": ["uni-scss"],
    "encrypt": [],
    "platforms": {
      "cloud": {
        "tcb": "y",
        "aliyun": "y",
        "alipay": "n"
      },
      "client": {
        "App": {
          "app-vue": "y",
          "app-nvue": "y"
        },
        "H5-mobile": {
          "Safari": "y",
          "Android Browser": "y",
          "微信浏览器(Android)": "y",
          "QQ浏览器(Android)": "y"
        },
        "H5-pc": {
          "Chrome": "y",
          "IE": "y",
          "Edge": "y",
          "Firefox": "y",
          "Safari": "y"
        },
        "小程序": {
          "微信": "y",
          "阿里": "y",
          "百度": "y",
          "字节跳动": "y",
          "QQ": "y"
        },
        "快应用": {
          "华为": "u",
          "联盟": "u"
        },
        "Vue": {
            "vue2": "y",
            "vue3": "y"
        }
      }
    }
  }
}
H5/uni_modules/uni-load-more/readme.md
New file
@@ -0,0 +1,14 @@
### LoadMore 加载更多
> **组件名:uni-load-more**
> 代码块: `uLoadMore`
用于列表中,做滚动加载使用,展示 loading 的各种状态。
### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-load-more)
#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839
H5/uni_modules/uni-scss/changelog.md
New file
@@ -0,0 +1,8 @@
## 1.0.3(2022-01-21)
- 优化 组件示例
## 1.0.2(2021-11-22)
- 修复 / 符号在 vue 不同版本兼容问题引起的报错问题
## 1.0.1(2021-11-22)
- 修复 vue3中scss语法兼容问题
## 1.0.0(2021-11-18)
- init
H5/uni_modules/uni-scss/index.scss
New file
@@ -0,0 +1 @@
@import './styles/index.scss';
H5/uni_modules/uni-scss/package.json
New file
@@ -0,0 +1,82 @@
{
  "id": "uni-scss",
  "displayName": "uni-scss 辅助样式",
  "version": "1.0.3",
  "description": "uni-sass是uni-ui提供的一套全局样式 ,通过一些简单的类名和sass变量,实现简单的页面布局操作,比如颜色、边距、圆角等。",
  "keywords": [
    "uni-scss",
    "uni-ui",
    "辅助样式"
],
  "repository": "https://github.com/dcloudio/uni-ui",
  "engines": {
    "HBuilderX": "^3.1.0"
  },
  "dcloudext": {
    "category": [
        "JS SDK",
        "通用 SDK"
    ],
    "sale": {
      "regular": {
        "price": "0.00"
      },
      "sourcecode": {
        "price": "0.00"
      }
    },
    "contact": {
      "qq": ""
    },
    "declaration": {
      "ads": "无",
      "data": "无",
      "permissions": "无"
    },
    "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui"
  },
  "uni_modules": {
    "dependencies": [],
    "encrypt": [],
    "platforms": {
      "cloud": {
        "tcb": "y",
        "aliyun": "y"
      },
      "client": {
        "App": {
          "app-vue": "y",
          "app-nvue": "u"
        },
        "H5-mobile": {
          "Safari": "y",
          "Android Browser": "y",
          "微信浏览器(Android)": "y",
          "QQ浏览器(Android)": "y"
        },
        "H5-pc": {
          "Chrome": "y",
          "IE": "y",
          "Edge": "y",
          "Firefox": "y",
          "Safari": "y"
        },
        "小程序": {
          "微信": "y",
          "阿里": "y",
          "百度": "y",
          "字节跳动": "y",
          "QQ": "y"
        },
        "快应用": {
          "华为": "n",
          "联盟": "n"
        },
        "Vue": {
            "vue2": "y",
            "vue3": "y"
        }
      }
    }
  }
}
H5/uni_modules/uni-scss/readme.md
New file
@@ -0,0 +1,4 @@
`uni-sass` 是 `uni-ui`提供的一套全局样式 ,通过一些简单的类名和`sass`变量,实现简单的页面布局操作,比如颜色、边距、圆角等。
### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-sass)
#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839
H5/uni_modules/uni-scss/styles/index.scss
New file
@@ -0,0 +1,7 @@
@import './setting/_variables.scss';
@import './setting/_border.scss';
@import './setting/_color.scss';
@import './setting/_space.scss';
@import './setting/_radius.scss';
@import './setting/_text.scss';
@import './setting/_styles.scss';
H5/uni_modules/uni-scss/styles/setting/_border.scss
New file
@@ -0,0 +1,3 @@
.uni-border {
    border: 1px $uni-border-1 solid;
}
H5/uni_modules/uni-scss/styles/setting/_color.scss
New file
@@ -0,0 +1,66 @@
// TODO 暂时不需要 class ,需要用户使用变量实现 ,如果使用类名其实并不推荐
// @mixin get-styles($k,$c) {
//     @if $k == size or $k == weight{
//         font-#{$k}:#{$c}
//     }@else{
//         #{$k}:#{$c}
//     }
// }
$uni-ui-color:(
    // 主色
    primary: $uni-primary,
    primary-disable: $uni-primary-disable,
    primary-light: $uni-primary-light,
    // 辅助色
    success: $uni-success,
    success-disable: $uni-success-disable,
    success-light: $uni-success-light,
    warning: $uni-warning,
    warning-disable: $uni-warning-disable,
    warning-light: $uni-warning-light,
    error: $uni-error,
    error-disable: $uni-error-disable,
    error-light: $uni-error-light,
    info: $uni-info,
    info-disable: $uni-info-disable,
    info-light: $uni-info-light,
    // 中性色
    main-color: $uni-main-color,
    base-color: $uni-base-color,
    secondary-color: $uni-secondary-color,
    extra-color: $uni-extra-color,
    // 背景色
    bg-color: $uni-bg-color,
    // 边框颜色
    border-1: $uni-border-1,
    border-2: $uni-border-2,
    border-3: $uni-border-3,
    border-4: $uni-border-4,
    // 黑色
    black:$uni-black,
    // 白色
    white:$uni-white,
    // 透明
    transparent:$uni-transparent
) !default;
@each $key, $child in $uni-ui-color {
    .uni-#{"" + $key} {
        color: $child;
    }
    .uni-#{"" + $key}-bg {
        background-color: $child;
    }
}
.uni-shadow-sm {
    box-shadow: $uni-shadow-sm;
}
.uni-shadow-base {
    box-shadow: $uni-shadow-base;
}
.uni-shadow-lg {
    box-shadow: $uni-shadow-lg;
}
.uni-mask {
    background-color:$uni-mask;
}
H5/uni_modules/uni-scss/styles/setting/_radius.scss
New file
@@ -0,0 +1,55 @@
@mixin radius($r,$d:null ,$important: false){
  $radius-value:map-get($uni-radius, $r) if($important, !important, null);
  // Key exists within the $uni-radius variable
  @if (map-has-key($uni-radius, $r) and  $d){
        @if $d == t {
                border-top-left-radius:$radius-value;
                border-top-right-radius:$radius-value;
        }@else if $d == r {
                border-top-right-radius:$radius-value;
                border-bottom-right-radius:$radius-value;
        }@else if $d == b {
                border-bottom-left-radius:$radius-value;
                border-bottom-right-radius:$radius-value;
        }@else if $d == l {
                border-top-left-radius:$radius-value;
                border-bottom-left-radius:$radius-value;
        }@else if $d == tl {
                border-top-left-radius:$radius-value;
        }@else if $d == tr {
                border-top-right-radius:$radius-value;
        }@else if $d == br {
                border-bottom-right-radius:$radius-value;
        }@else if $d == bl {
                border-bottom-left-radius:$radius-value;
        }
  }@else{
        border-radius:$radius-value;
  }
}
@each $key, $child in $uni-radius {
    @if($key){
        .uni-radius-#{"" + $key} {
                @include radius($key)
        }
    }@else{
        .uni-radius {
                @include radius($key)
        }
    }
}
@each $direction in t, r, b, l,tl, tr, br, bl {
    @each $key, $child in $uni-radius {
        @if($key){
            .uni-radius-#{"" + $direction}-#{"" + $key} {
                @include radius($key,$direction,false)
            }
        }@else{
            .uni-radius-#{$direction} {
                @include radius($key,$direction,false)
            }
        }
    }
}
H5/uni_modules/uni-scss/styles/setting/_space.scss
New file
@@ -0,0 +1,56 @@
@mixin fn($space,$direction,$size,$n) {
    @if $n {
        #{$space}-#{$direction}: #{$size*$uni-space-root}px
    } @else {
         #{$space}-#{$direction}: #{-$size*$uni-space-root}px
    }
}
@mixin get-styles($direction,$i,$space,$n){
    @if $direction == t {
        @include fn($space, top,$i,$n);
    }
    @if $direction == r {
        @include fn($space, right,$i,$n);
    }
    @if $direction == b {
        @include fn($space, bottom,$i,$n);
    }
    @if $direction == l {
     @include fn($space, left,$i,$n);
    }
    @if $direction == x {
        @include fn($space, left,$i,$n);
        @include fn($space, right,$i,$n);
    }
    @if $direction == y {
        @include fn($space, top,$i,$n);
        @include fn($space, bottom,$i,$n);
    }
    @if $direction == a {
        @if $n {
            #{$space}:#{$i*$uni-space-root}px;
        } @else {
            #{$space}:#{-$i*$uni-space-root}px;
        }
    }
}
@each $orientation in m,p {
    $space: margin;
    @if $orientation == m {
        $space: margin;
    } @else {
        $space: padding;
    }
    @for $i from 0 through 16 {
        @each $direction in t, r, b, l, x, y, a {
            .uni-#{$orientation}#{$direction}-#{$i} {
                @include  get-styles($direction,$i,$space,true);
            }
            .uni-#{$orientation}#{$direction}-n#{$i} {
                @include  get-styles($direction,$i,$space,false);
            }
        }
    }
}
H5/uni_modules/uni-scss/styles/setting/_styles.scss
New file
@@ -0,0 +1,167 @@
/* #ifndef APP-NVUE */
$-color-white:#fff;
$-color-black:#000;
@mixin base-style($color) {
    color: #fff;
    background-color: $color;
    border-color: mix($-color-black, $color, 8%);
    &:not([hover-class]):active {
        background: mix($-color-black, $color, 10%);
        border-color: mix($-color-black, $color, 20%);
        color: $-color-white;
        outline: none;
    }
}
@mixin is-color($color) {
    @include base-style($color);
    &[loading] {
        @include base-style($color);
        &::before {
            margin-right:5px;
        }
    }
    &[disabled] {
      &,
        &[loading],
      &:not([hover-class]):active {
        color: $-color-white;
            border-color: mix(darken($color,10%), $-color-white);
        background-color: mix($color, $-color-white);
      }
    }
}
@mixin base-plain-style($color) {
    color:$color;
    background-color: mix($-color-white, $color, 90%);
    border-color: mix($-color-white, $color, 70%);
    &:not([hover-class]):active {
      background: mix($-color-white, $color, 80%);
      color: $color;
      outline: none;
        border-color: mix($-color-white, $color, 50%);
    }
}
@mixin is-plain($color){
    &[plain] {
        @include base-plain-style($color);
        &[loading] {
            @include base-plain-style($color);
            &::before {
                margin-right:5px;
            }
        }
        &[disabled] {
          &,
          &:active {
            color: mix($-color-white, $color, 40%);
            background-color: mix($-color-white, $color, 90%);
                border-color: mix($-color-white, $color, 80%);
          }
        }
    }
}
.uni-btn {
    margin: 5px;
    color: #393939;
    border:1px solid #ccc;
    font-size: 16px;
    font-weight: 200;
    background-color: #F9F9F9;
    // TODO 暂时处理边框隐藏一边的问题
    overflow: visible;
    &::after{
        border: none;
    }
    &:not([type]),&[type=default] {
        color: #999;
        &[loading] {
            background: none;
            &::before {
                margin-right:5px;
            }
        }
        &[disabled]{
            color: mix($-color-white, #999, 60%);
          &,
            &[loading],
          &:active {
                color: mix($-color-white, #999, 60%);
            background-color: mix($-color-white,$-color-black , 98%);
                border-color: mix($-color-white,  #999, 85%);
          }
        }
        &[plain] {
            color: #999;
            background: none;
            border-color: $uni-border-1;
            &:not([hover-class]):active {
                background: none;
              color: mix($-color-white, $-color-black, 80%);
                border-color: mix($-color-white, $-color-black, 90%);
              outline: none;
            }
            &[disabled]{
              &,
                &[loading],
              &:active {
                background: none;
                    color: mix($-color-white, #999, 60%);
                    border-color: mix($-color-white,  #999, 85%);
              }
            }
        }
    }
    &:not([hover-class]):active {
      color: mix($-color-white, $-color-black, 50%);
    }
    &[size=mini] {
        font-size: 16px;
        font-weight: 200;
        border-radius: 8px;
    }
    &.uni-btn-small {
        font-size: 14px;
    }
    &.uni-btn-mini {
        font-size: 12px;
    }
    &.uni-btn-radius {
        border-radius: 999px;
    }
    &[type=primary] {
        @include is-color($uni-primary);
        @include is-plain($uni-primary)
    }
    &[type=success] {
        @include is-color($uni-success);
        @include is-plain($uni-success)
    }
    &[type=error] {
        @include is-color($uni-error);
        @include is-plain($uni-error)
    }
    &[type=warning] {
        @include is-color($uni-warning);
        @include is-plain($uni-warning)
    }
    &[type=info] {
        @include is-color($uni-info);
        @include is-plain($uni-info)
    }
}
/* #endif */
H5/uni_modules/uni-scss/styles/setting/_text.scss
New file
@@ -0,0 +1,24 @@
@mixin get-styles($k,$c) {
    @if $k == size or $k == weight{
        font-#{$k}:#{$c}
    }@else{
        #{$k}:#{$c}
    }
}
@each $key, $child in $uni-headings {
    /* #ifndef APP-NVUE */
    .uni-#{$key} {
        @each $k, $c in $child {
            @include get-styles($k,$c)
        }
    }
    /* #endif */
    /* #ifdef APP-NVUE */
    .container .uni-#{$key} {
        @each $k, $c in $child {
            @include get-styles($k,$c)
        }
    }
    /* #endif */
}
H5/uni_modules/uni-scss/styles/setting/_variables.scss
New file
@@ -0,0 +1,146 @@
// @use "sass:math";
@import  '../tools/functions.scss';
// 间距基础倍数
$uni-space-root: 2 !default;
// 边框半径默认值
$uni-radius-root:5px !default;
$uni-radius: () !default;
// 边框半径断点
$uni-radius: map-deep-merge(
  (
    0: 0,
        // TODO 当前版本暂时不支持 sm 属性
    // 'sm': math.div($uni-radius-root, 2),
    null: $uni-radius-root,
    'lg': $uni-radius-root * 2,
    'xl': $uni-radius-root * 6,
    'pill': 9999px,
    'circle': 50%
  ),
  $uni-radius
);
// 字体家族
$body-font-family: 'Roboto', sans-serif !default;
// 文本
$heading-font-family: $body-font-family !default;
$uni-headings: () !default;
$letterSpacing: -0.01562em;
$uni-headings: map-deep-merge(
  (
    'h1': (
      size: 32px,
            weight: 300,
            line-height: 50px,
            // letter-spacing:-0.01562em
    ),
    'h2': (
      size: 28px,
      weight: 300,
      line-height: 40px,
      // letter-spacing: -0.00833em
    ),
    'h3': (
      size: 24px,
      weight: 400,
      line-height: 32px,
      // letter-spacing: normal
    ),
    'h4': (
      size: 20px,
      weight: 400,
      line-height: 30px,
      // letter-spacing: 0.00735em
    ),
    'h5': (
      size: 16px,
      weight: 400,
      line-height: 24px,
      // letter-spacing: normal
    ),
    'h6': (
      size: 14px,
      weight: 500,
      line-height: 18px,
      // letter-spacing: 0.0125em
    ),
    'subtitle': (
      size: 12px,
      weight: 400,
      line-height: 20px,
      // letter-spacing: 0.00937em
    ),
    'body': (
      font-size: 14px,
            font-weight: 400,
            line-height: 22px,
            // letter-spacing: 0.03125em
    ),
    'caption': (
      'size': 12px,
      'weight': 400,
      'line-height': 20px,
      // 'letter-spacing': 0.03333em,
      // 'text-transform': false
    )
  ),
  $uni-headings
);
// 主色
$uni-primary: #2979ff !default;
$uni-primary-disable:lighten($uni-primary,20%) !default;
$uni-primary-light: lighten($uni-primary,25%) !default;
// 辅助色
// 除了主色外的场景色,需要在不同的场景中使用(例如危险色表示危险的操作)。
$uni-success: #18bc37 !default;
$uni-success-disable:lighten($uni-success,20%) !default;
$uni-success-light: lighten($uni-success,25%) !default;
$uni-warning: #f3a73f !default;
$uni-warning-disable:lighten($uni-warning,20%) !default;
$uni-warning-light: lighten($uni-warning,25%) !default;
$uni-error: #e43d33 !default;
$uni-error-disable:lighten($uni-error,20%) !default;
$uni-error-light: lighten($uni-error,25%) !default;
$uni-info: #8f939c !default;
$uni-info-disable:lighten($uni-info,20%) !default;
$uni-info-light: lighten($uni-info,25%) !default;
// 中性色
// 中性色用于文本、背景和边框颜色。通过运用不同的中性色,来表现层次结构。
$uni-main-color: #3a3a3a !default;             // 主要文字
$uni-base-color: #6a6a6a !default;            // 常规文字
$uni-secondary-color: #909399 !default;    // 次要文字
$uni-extra-color: #c7c7c7 !default;            // 辅助说明
// 边框颜色
$uni-border-1: #F0F0F0 !default;
$uni-border-2: #EDEDED !default;
$uni-border-3: #DCDCDC !default;
$uni-border-4: #B9B9B9 !default;
// 常规色
$uni-black: #000000 !default;
$uni-white: #ffffff !default;
$uni-transparent: rgba($color: #000000, $alpha: 0) !default;
// 背景色
$uni-bg-color: #f7f7f7 !default;
/* 水平间距 */
$uni-spacing-sm: 8px !default;
$uni-spacing-base: 15px !default;
$uni-spacing-lg: 30px !default;
// 阴影
$uni-shadow-sm:0 0 5px rgba($color: #d8d8d8, $alpha: 0.5) !default;
$uni-shadow-base:0 1px 8px 1px rgba($color: #a5a5a5, $alpha: 0.2) !default;
$uni-shadow-lg:0px 1px 10px 2px rgba($color: #a5a4a4, $alpha: 0.5) !default;
// 蒙版
$uni-mask: rgba($color: #000000, $alpha: 0.4) !default;
H5/uni_modules/uni-scss/styles/tools/functions.scss
New file
@@ -0,0 +1,19 @@
// 合并 map
@function map-deep-merge($parent-map, $child-map){
    $result: $parent-map;
    @each $key, $child in $child-map {
        $parent-has-key: map-has-key($result, $key);
        $parent-value: map-get($result, $key);
        $parent-type: type-of($parent-value);
        $child-type: type-of($child);
        $parent-is-map: $parent-type == map;
        $child-is-map: $child-type == map;
        @if (not $parent-has-key) or ($parent-type != $child-type) or (not ($parent-is-map and $child-is-map)){
            $result: map-merge($result, ( $key: $child ));
        }@else {
            $result: map-merge($result, ( $key: map-deep-merge($parent-value, $child) ));
        }
    }
    @return $result;
};
H5/uni_modules/uni-scss/theme.scss
New file
@@ -0,0 +1,31 @@
// 间距基础倍数
$uni-space-root: 2;
// 边框半径默认值
$uni-radius-root:5px;
// 主色
$uni-primary: #2979ff;
// 辅助色
$uni-success: #4cd964;
// 警告色
$uni-warning: #f0ad4e;
// 错误色
$uni-error: #dd524d;
// 描述色
$uni-info: #909399;
// 中性色
$uni-main-color: #303133;
$uni-base-color: #606266;
$uni-secondary-color: #909399;
$uni-extra-color: #C0C4CC;
// 背景色
$uni-bg-color: #f5f5f5;
// 边框颜色
$uni-border-1: #DCDFE6;
$uni-border-2: #E4E7ED;
$uni-border-3: #EBEEF5;
$uni-border-4: #F2F6FC;
// 常规色
$uni-black: #000000;
$uni-white: #ffffff;
$uni-transparent: rgba($color: #000000, $alpha: 0);
H5/uni_modules/uni-scss/variables.scss
New file
@@ -0,0 +1,62 @@
@import './styles/setting/_variables.scss';
// 间距基础倍数
$uni-space-root: 2;
// 边框半径默认值
$uni-radius-root:5px;
// 主色
$uni-primary: #2979ff;
$uni-primary-disable:mix(#fff,$uni-primary,50%);
$uni-primary-light: mix(#fff,$uni-primary,80%);
// 辅助色
// 除了主色外的场景色,需要在不同的场景中使用(例如危险色表示危险的操作)。
$uni-success: #18bc37;
$uni-success-disable:mix(#fff,$uni-success,50%);
$uni-success-light: mix(#fff,$uni-success,80%);
$uni-warning: #f3a73f;
$uni-warning-disable:mix(#fff,$uni-warning,50%);
$uni-warning-light: mix(#fff,$uni-warning,80%);
$uni-error: #e43d33;
$uni-error-disable:mix(#fff,$uni-error,50%);
$uni-error-light: mix(#fff,$uni-error,80%);
$uni-info: #8f939c;
$uni-info-disable:mix(#fff,$uni-info,50%);
$uni-info-light: mix(#fff,$uni-info,80%);
// 中性色
// 中性色用于文本、背景和边框颜色。通过运用不同的中性色,来表现层次结构。
$uni-main-color: #3a3a3a;             // 主要文字
$uni-base-color: #6a6a6a;            // 常规文字
$uni-secondary-color: #909399;    // 次要文字
$uni-extra-color: #c7c7c7;            // 辅助说明
// 边框颜色
$uni-border-1: #F0F0F0;
$uni-border-2: #EDEDED;
$uni-border-3: #DCDCDC;
$uni-border-4: #B9B9B9;
// 常规色
$uni-black: #000000;
$uni-white: #ffffff;
$uni-transparent: rgba($color: #000000, $alpha: 0);
// 背景色
$uni-bg-color: #f7f7f7;
/* 水平间距 */
$uni-spacing-sm: 8px;
$uni-spacing-base: 15px;
$uni-spacing-lg: 30px;
// 阴影
$uni-shadow-sm:0 0 5px rgba($color: #d8d8d8, $alpha: 0.5);
$uni-shadow-base:0 1px 8px 1px rgba($color: #a5a5a5, $alpha: 0.2);
$uni-shadow-lg:0px 1px 10px 2px rgba($color: #a5a4a4, $alpha: 0.5);
// 蒙版
$uni-mask: rgba($color: #000000, $alpha: 0.4);
management/config/env.ts
@@ -1,6 +1,6 @@
export default {
  dev: {
    SERVER_URL: '',
    SERVER_URL: 'http://192.168.110.80:6194/',
  },
  test: {
    SERVER_URL: '',
management/src/pages/Login/service.js
@@ -24,7 +24,7 @@
export async function login(data) {
  return request('/management/tUser/login', {
  return request('/api/huacheng-sangeshenbian/sangeshenbian/systemUser/login', {
    method: 'POST',
    data,
  });