xuxy
2024-06-25 d1bb68d9f9054bbf87cd84956d3240c71d8e370c
update 商品管理和花农的
已修改28个文件
已添加1个文件
3408 ■■■■ 文件已修改
App.vue 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
common/global.scss 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
common/self.scss 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
common/uni.css 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
components/footer/farmer-footer.vue 54 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
components/footer/main.scss 85 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
components/no-data.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
main.js 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
package-lock.json 2181 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
package.json 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages.json 35 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/farmer/flower-manage/flower-add.vue 306 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/farmer/flower-manage/flower-manage.vue 143 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/farmer/order-settlement/order-settlement.vue 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/home/farmer-home.vue 82 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/home/home.scss 215 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/login/farmer-login.vue 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/login/farmer-reg.vue 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/notice/list.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/notice/notice.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/user/bussincess-user.vue 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/user/farmer-user.vue 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/user/user.scss 47 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
plugins/http.js 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
static/common/nodata.png 补丁 | 查看 | 原始文档 | blame | 历史
static/images/farmer/user/bg.png 补丁 | 查看 | 原始文档 | blame | 历史
store/index.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
uni.scss 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
uni_modules/uni-scss/theme.scss 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
App.vue
@@ -49,6 +49,21 @@
            }
            // #endif
            // #ifdef H5
            if (true && storage.getItem('token')) {
                setTimeout(async () => {
                    const res = await this.$store.dispatch('getCurrentInfo');
                    // console.log('init info',res,this.currentInfo)
                    if (this.currentInfo && this.currentInfo.id && !this.currentInfo.openId) {
                        // uni.reLaunch({
                        //     url: '/pages/home/farmer-home'
                        // })
                    }
                }, 200);
            } else {
            }
            // #endif
        },
        onReady() {
@@ -66,8 +81,14 @@
</script>
<style lang="scss">
    /*每个页面公共css */
    @import '@/uni_modules/uni-scss/index.scss';
    /* uni.scss */
    // @import "@/uni_modules/uview-plus/index.scss";
    @import "uview-ui/index.scss";
    /* #ifndef APP-NVUE */
    @import '@/static/customicons.css';
common/global.scss
@@ -1,5 +1,13 @@
// $u-tips-color: #2979ff;
// $u-primary: #2979ff;
// @import '@/node_modules/uview-ui/theme.scss';
.component-tab-container{
    display: flex;
    width: fit-content;
    margin:0 auto;
    .tab-item{
        display: flex;
        text-align: center;
@@ -7,17 +15,31 @@
        border: 2rpx solid var(--topicolor);
        background: #fff;
        color: var(--topicolor);
        width: 212rpx;
        line-height: 64rpx;
        font-weight: 600;
        font-size: 28rpx;
        display: block;
    }
    .tab-item.cur{
        background: var(--topicolor);
        border-radius: 0rpx 8rpx 8rpx 0rpx;
        // border-radius: 0rpx 8rpx 8rpx 0rpx;
        color: #fff;
    }
    .tab-item:first-child{
        border-top-right-radius: 0rpx;
        border-bottom-right-radius: 0rpx;
    }
    .tab-item:last-child{
        border-top-left-radius: 0rpx;
        border-bottom-left-radius: 0rpx;
    }
}
.component-button-upload{
    width: 96rpx;
    height: 96rpx;
    border-radius: 4rpx;
    border: 2rpx solid #CECECE;
    border: 2rpx dashed #CECECE;
    position: relative;
    background-image: 100% 100%;
    &::after{
@@ -25,10 +47,39 @@
        position: absolute;
        left: 50%;
        top: 50%;
        transform: translate(50%,50%);
        transform: translate(-50%,-50%);
        // width: 22rpx;
        // height: 22rpx;
        font-size: 24rpx;
        color: #000000;
        color: #696969;
    }
}
}
.component-popup_input{
    margin-top: calc(50% + 200rpx);
    margin-left: 78rpx - 26rpx;
    width: 594rpx;
    background: linear-gradient(180deg, #D8F0EE 0%, #FFFFFF 100%);
    border-radius: 16rpx;
    padding: 26rpx;
    position: relative;
    .uni-easyinput{
        width: auto !important;
    }
    .icon{
        z-index: -1;
        position: absolute;
        width: 266rpx;
        height: 146rpx;
        top: -134rpx;
        left: 50%;
        transform: translateX(-50%);
    }
    .close-parent{
        margin-bottom: 34rpx;
    }
    .button-green{
        margin-top: 50rpx;
    }
}
common/self.scss
@@ -522,7 +522,7 @@
.button-green-1{
    height: 80rpx;
    
    background: #04BA97;
    background: var(--topicolor);
    border-radius: 44rpx;
    line-height: 80rpx;
    text-align: center;
@@ -531,7 +531,7 @@
}
.button-green-border{
    height: 80rpx;
    border: 1px solid  #04BA97;
    border: 1px solid  var(--topicolor);
    border-radius: 44rpx;
    line-height: 80rpx;
    text-align: center;
@@ -640,6 +640,7 @@
    bottom: 60rpx;
    left: 40rpx;
    right: 40rpx;
    z-index: 1;
}
.close-parent{
@@ -676,7 +677,7 @@
.button-green{
    width: 302rpx;
    height: 80rpx;
    background: #04BA97;
    background: var(--topicolor);
    border-radius: 62rpx;
    
    font-size: 32rpx;
@@ -942,9 +943,10 @@
    }
.before-line::before{
    border-top: 2rpx solid #EEEEEE;
}
.img100{
    background-size: 100% 100%;
}
uni-image>img{
    opacity: 1 !important;
}
common/uni.css
@@ -4,6 +4,7 @@
    font-style: normal;
    src: url('~@/static/uni.ttf') format('truetype');
}
@import "uview-ui/index.scss";
/* #ifdef H5 */
.fix-left-window {
components/footer/farmer-footer.vue
@@ -1,49 +1,52 @@
<template>
    <view class="footer flex">
        <view v-for="(item,index) in tabBar" :key="index" class="footer-item">
            <view class="item flex" :class="[flg==index?'cur':'']" @click="go(index,item)">
                    <view v-if="index==0">
                        <image src="../../static/imgs/footer/footer-home-1.png"  class="footer-icon" :class="(''+index)"  v-if="flg==0"></image>
                        <image src="../../static/imgs/footer/footer-home-0.png"  class="footer-icon" :class="(''+index)"  v-if="flg!=0"></image>
                    </view>
                    <view v-if="index==1">
                        <image src="../../static/imgs/footer/footer-self-1.png"  class="footer-icon" :class="(''+index)"   v-if="flg==2"></image>
                        <image src="../../static/imgs/footer/footer-self-0.png"  class="footer-icon"  :class="(''+index)"  v-if="flg!=2"></image>
                    </view>
                    <view>
                        {{item.text}}
                    </view>
    <view class="footer flex farmer-footer">
        <view v-for="(item,index) in tabBar" :key="index" class="footer-item"  :class="[flg==index?'cur':'']">
            <view class="item flex" @click="go(index,item)">
                <view v-if="index==0">
                    <image src="../../static/imgs/footer/footer-home-1.png" class="footer-icon m-t-4 m-l-a m-r-0" :class="(''+index)"
                        v-if="flg==0"></image>
                    <image src="../../static/imgs/footer/footer-home-0.png" class="footer-icon m-t-4 m-l-a m-r-0" :class="(''+index)"
                        v-if="flg!=0"></image>
                </view>
                <view v-if="index==1">
                    <image src="../../static/imgs/footer/footer-self-1.png" class="footer-icon m-t-4 m-l-a m-r-0" :class="(''+index)"
                        v-if="flg==2"></image>
                    <image src="../../static/imgs/footer/footer-self-0.png" class="footer-icon m-t-4 m-l-a m-r-0" :class="(''+index)"
                        v-if="flg!=2"></image>
                </view>
                <view class="m-l-0 m-r-a">
                    {{item.text}}
                </view>
            </view>
        </view>
    </view>
</template>
<script>
    export default {
        data() {
            return {
                tabBar: [
                    {
                        "pagePath": "/pages/home/shop-home",
                        "pagePath": "/pages/home/farmer-home",
                        "iconPath": "/static/tabbar/home.png",
                        "selectedIconPath": "/static/tabbar/home_s.png",
                        "text": "工作台"
                    },
                    {
                        "pagePath": "/pages/user/shop-user",
                        "pagePath": "/pages/user/farmer-user",
                        "iconPath": "/static/tabbar/my.png",
                        "selectedIconPath": "/static/tabbar/my_s.png",
                        "text": "我的"
                    }
                ],
                value:''
                value: ''
            }
        },
        props: {
@@ -62,9 +65,6 @@
        },
        methods: {
            go(index, item) {
                if (index == 1) {
                    return
                }
                if (this.flg == ('' + index)) {
                    return
                }
@@ -73,10 +73,10 @@
                });
            },
        }
    }
</script>
<style lang="scss">
    @import "./main.scss";
</style>
</style>
components/footer/main.scss
@@ -1,9 +1,10 @@
.footer {
    position: fixed;
    // position: sticky;
    bottom: 0px;
    bottom: 60rpx;
    left: 0px;
    width: 100vw;
    // width: 100vw;
    min-width: 600rpx;
    // height: 98rpx;
    // background: #fff;
    // background-image: url('../../static/imgs/home/foot-bg.png');
@@ -18,8 +19,8 @@
    // border-top: 2rpx solid #F2f2f2f2;
    .footer-item{
        flex: 1;
                    border-radius: 50rpx;
                    padding: 8rpx;
        border-radius: 50rpx;
        padding: 8rpx;
        .item {
            font-family: PingFangSC-Regular, PingFang SC;
@@ -36,16 +37,7 @@
            height: 60rpx;
            line-height: 60rpx;
            
            &.cur {
                // font-weight: 600;
                // font-size: 28rpx;
                // color: #000000;
                // text-align: left;
                // font-style: normal;
                background: #E1F0E7;
                border-radius: 50rpx;
                    color: var(--topicolor);
            }
        
 
            
@@ -58,45 +50,21 @@
            //     height: 50rpx;
            //     margin-top: 20rpx;
            // }
            .footer-icon{
                width: 28rpx;
                height: 29rpx;
            }
            .footer-icon.0 {
              width: 28rpx;
              height: 29rpx;
            }
            .footer-icon.1 {
            width: 26rpx;
            height: 32rpx;
                width: 26rpx;
                height: 32rpx;
            }
        }
    }
    
    .popup_brand{
        margin-top: calc(50% + 200rpx);
        // left: 50%;
        // left: calc(50% - 295rpx);
        // transform: translate(-295rpx,250rpx);
        margin-left: 78rpx - 26rpx;
        width: 594rpx;
        height: 500rpx - 52rpx;
        background: linear-gradient(180deg, #D8F0EE 0%, #FFFFFF 100%);
        border-radius: 16rpx;
        padding: 26rpx;
        position: relative;
        .icon{
            z-index: -1;
            position: absolute;
            width: 266rpx;
            height: 146rpx;
            top: -134rpx;
            left: 50%;
            transform: translateX(-50%);
        }
        .close-parent{
            margin-bottom: 34rpx;
        }
        .button-green{
            margin-top: 50rpx;
        }
    }
}
// .aaa{
//     position:static;
@@ -104,14 +72,39 @@
//     top: -10px;
// }
.footer.bussincess-footer{
.footer.farmer-footer{
    left: 50%;
    transform: translateX(-50%);
    background-image: unset;
    background-color: #fff;
    padding-top:0rpx;
    border-radius: 50rpx;
    padding:8rpx;
    .footer-item{
        border-radius: 50rpx;
        width: 252rpx;
        .item {
            margin-top: 0rpx;
            padding-top: 0rpx;
            min-width: unset;
            // min-width: 252rpx;
            // max-width: 252rpx;;
            padding-top: 12rpx;
            line-height: 50rpx;
            .footer-icon{
                margin-top: 12rpx;
            }
        }
        &.cur {
            // font-weight: 600;
            // font-size: 28rpx;
            // color: #000000;
            // text-align: left;
            // font-style: normal;
            background: #E1F0E7;
            border-radius: 50rpx;
            color: var(--topicolor);
        }
    }
}
components/no-data.vue
@@ -1,7 +1,7 @@
<template>
    <view>
        <image src="../static/common/nodata.png" class="img-nodata"></image>
        <view class="txt-nodata">小狗狗尽力了,没有找到数据</view>
        <view class="txt-nodata">尽力了,没有找到数据</view>
    </view>
</template>
main.js
@@ -19,6 +19,34 @@
Vue.mixin(mixinsCommon)
// main.js
import uView from 'uview-ui'
Vue.use(uView)
// 调用setConfig方法,方法内部会进行对象属性深度合并,可以放心嵌套配置
// 需要在Vue.use(uView)之后执行
uni.$u.setConfig({
    // 修改$u.config对象的属性
    config: {
        // 修改默认单位为rpx,相当于执行 uni.$u.config.unit = 'rpx'
        unit: 'rpx'
    },
    // 修改$u.props对象的属性
    props: {
        // 修改radio组件的size参数的默认值,相当于执行 uni.$u.props.radio.size = 30
        radio: {
            size: 32,
            labelSize:32
        },
        picker:{
            confirmColor:'#20613D'
        }
        // 其他组件属性配置
        // ......
    }
})
import farmerfooter from '@/components/footer/farmer-footer'
Vue.component('farmer-footer', farmerfooter)
package-lock.json
@@ -1,11 +1,825 @@
{
  "name": "schoolgo-app",
  "name": "hmy_farmer",
  "lockfileVersion": 2,
  "requires": true,
  "packages": {
    "": {
      "dependencies": {
        "moment": "^2.30.1"
        "moment": "^2.30.1",
        "uview-ui": "^2.0.36"
      },
      "devDependencies": {
        "sass": "^1.77.6",
        "sass-loader": "^10.5.2"
      }
    },
    "node_modules/@jridgewell/gen-mapping": {
      "version": "0.3.5",
      "resolved": "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz",
      "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==",
      "dev": true,
      "peer": true,
      "dependencies": {
        "@jridgewell/set-array": "^1.2.1",
        "@jridgewell/sourcemap-codec": "^1.4.10",
        "@jridgewell/trace-mapping": "^0.3.24"
      },
      "engines": {
        "node": ">=6.0.0"
      }
    },
    "node_modules/@jridgewell/resolve-uri": {
      "version": "3.1.2",
      "resolved": "https://registry.npmmirror.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
      "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
      "dev": true,
      "peer": true,
      "engines": {
        "node": ">=6.0.0"
      }
    },
    "node_modules/@jridgewell/set-array": {
      "version": "1.2.1",
      "resolved": "https://registry.npmmirror.com/@jridgewell/set-array/-/set-array-1.2.1.tgz",
      "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==",
      "dev": true,
      "peer": true,
      "engines": {
        "node": ">=6.0.0"
      }
    },
    "node_modules/@jridgewell/source-map": {
      "version": "0.3.6",
      "resolved": "https://registry.npmmirror.com/@jridgewell/source-map/-/source-map-0.3.6.tgz",
      "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==",
      "dev": true,
      "peer": true,
      "dependencies": {
        "@jridgewell/gen-mapping": "^0.3.5",
        "@jridgewell/trace-mapping": "^0.3.25"
      }
    },
    "node_modules/@jridgewell/sourcemap-codec": {
      "version": "1.4.15",
      "resolved": "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
      "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==",
      "dev": true,
      "peer": true
    },
    "node_modules/@jridgewell/trace-mapping": {
      "version": "0.3.25",
      "resolved": "https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz",
      "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==",
      "dev": true,
      "peer": true,
      "dependencies": {
        "@jridgewell/resolve-uri": "^3.1.0",
        "@jridgewell/sourcemap-codec": "^1.4.14"
      }
    },
    "node_modules/@types/eslint": {
      "version": "8.56.10",
      "resolved": "https://registry.npmmirror.com/@types/eslint/-/eslint-8.56.10.tgz",
      "integrity": "sha512-Shavhk87gCtY2fhXDctcfS3e6FdxWkCx1iUZ9eEUbh7rTqlZT0/IzOkCOVt0fCjcFuZ9FPYfuezTBImfHCDBGQ==",
      "dev": true,
      "peer": true,
      "dependencies": {
        "@types/estree": "*",
        "@types/json-schema": "*"
      }
    },
    "node_modules/@types/eslint-scope": {
      "version": "3.7.7",
      "resolved": "https://registry.npmmirror.com/@types/eslint-scope/-/eslint-scope-3.7.7.tgz",
      "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==",
      "dev": true,
      "peer": true,
      "dependencies": {
        "@types/eslint": "*",
        "@types/estree": "*"
      }
    },
    "node_modules/@types/estree": {
      "version": "1.0.5",
      "resolved": "https://registry.npmmirror.com/@types/estree/-/estree-1.0.5.tgz",
      "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==",
      "dev": true,
      "peer": true
    },
    "node_modules/@types/json-schema": {
      "version": "7.0.15",
      "resolved": "https://registry.npmmirror.com/@types/json-schema/-/json-schema-7.0.15.tgz",
      "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==",
      "dev": true
    },
    "node_modules/@types/node": {
      "version": "20.14.8",
      "resolved": "https://registry.npmmirror.com/@types/node/-/node-20.14.8.tgz",
      "integrity": "sha512-DO+2/jZinXfROG7j7WKFn/3C6nFwxy2lLpgLjEXJz+0XKphZlTLJ14mo8Vfg8X5BWN6XjyESXq+LcYdT7tR3bA==",
      "dev": true,
      "peer": true,
      "dependencies": {
        "undici-types": "~5.26.4"
      }
    },
    "node_modules/@webassemblyjs/ast": {
      "version": "1.12.1",
      "resolved": "https://registry.npmmirror.com/@webassemblyjs/ast/-/ast-1.12.1.tgz",
      "integrity": "sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==",
      "dev": true,
      "peer": true,
      "dependencies": {
        "@webassemblyjs/helper-numbers": "1.11.6",
        "@webassemblyjs/helper-wasm-bytecode": "1.11.6"
      }
    },
    "node_modules/@webassemblyjs/floating-point-hex-parser": {
      "version": "1.11.6",
      "resolved": "https://registry.npmmirror.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz",
      "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==",
      "dev": true,
      "peer": true
    },
    "node_modules/@webassemblyjs/helper-api-error": {
      "version": "1.11.6",
      "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz",
      "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==",
      "dev": true,
      "peer": true
    },
    "node_modules/@webassemblyjs/helper-buffer": {
      "version": "1.12.1",
      "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.12.1.tgz",
      "integrity": "sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==",
      "dev": true,
      "peer": true
    },
    "node_modules/@webassemblyjs/helper-numbers": {
      "version": "1.11.6",
      "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz",
      "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==",
      "dev": true,
      "peer": true,
      "dependencies": {
        "@webassemblyjs/floating-point-hex-parser": "1.11.6",
        "@webassemblyjs/helper-api-error": "1.11.6",
        "@xtuc/long": "4.2.2"
      }
    },
    "node_modules/@webassemblyjs/helper-wasm-bytecode": {
      "version": "1.11.6",
      "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz",
      "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==",
      "dev": true,
      "peer": true
    },
    "node_modules/@webassemblyjs/helper-wasm-section": {
      "version": "1.12.1",
      "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.12.1.tgz",
      "integrity": "sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==",
      "dev": true,
      "peer": true,
      "dependencies": {
        "@webassemblyjs/ast": "1.12.1",
        "@webassemblyjs/helper-buffer": "1.12.1",
        "@webassemblyjs/helper-wasm-bytecode": "1.11.6",
        "@webassemblyjs/wasm-gen": "1.12.1"
      }
    },
    "node_modules/@webassemblyjs/ieee754": {
      "version": "1.11.6",
      "resolved": "https://registry.npmmirror.com/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz",
      "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==",
      "dev": true,
      "peer": true,
      "dependencies": {
        "@xtuc/ieee754": "^1.2.0"
      }
    },
    "node_modules/@webassemblyjs/leb128": {
      "version": "1.11.6",
      "resolved": "https://registry.npmmirror.com/@webassemblyjs/leb128/-/leb128-1.11.6.tgz",
      "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==",
      "dev": true,
      "peer": true,
      "dependencies": {
        "@xtuc/long": "4.2.2"
      }
    },
    "node_modules/@webassemblyjs/utf8": {
      "version": "1.11.6",
      "resolved": "https://registry.npmmirror.com/@webassemblyjs/utf8/-/utf8-1.11.6.tgz",
      "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==",
      "dev": true,
      "peer": true
    },
    "node_modules/@webassemblyjs/wasm-edit": {
      "version": "1.12.1",
      "resolved": "https://registry.npmmirror.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.12.1.tgz",
      "integrity": "sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==",
      "dev": true,
      "peer": true,
      "dependencies": {
        "@webassemblyjs/ast": "1.12.1",
        "@webassemblyjs/helper-buffer": "1.12.1",
        "@webassemblyjs/helper-wasm-bytecode": "1.11.6",
        "@webassemblyjs/helper-wasm-section": "1.12.1",
        "@webassemblyjs/wasm-gen": "1.12.1",
        "@webassemblyjs/wasm-opt": "1.12.1",
        "@webassemblyjs/wasm-parser": "1.12.1",
        "@webassemblyjs/wast-printer": "1.12.1"
      }
    },
    "node_modules/@webassemblyjs/wasm-gen": {
      "version": "1.12.1",
      "resolved": "https://registry.npmmirror.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.12.1.tgz",
      "integrity": "sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==",
      "dev": true,
      "peer": true,
      "dependencies": {
        "@webassemblyjs/ast": "1.12.1",
        "@webassemblyjs/helper-wasm-bytecode": "1.11.6",
        "@webassemblyjs/ieee754": "1.11.6",
        "@webassemblyjs/leb128": "1.11.6",
        "@webassemblyjs/utf8": "1.11.6"
      }
    },
    "node_modules/@webassemblyjs/wasm-opt": {
      "version": "1.12.1",
      "resolved": "https://registry.npmmirror.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.12.1.tgz",
      "integrity": "sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==",
      "dev": true,
      "peer": true,
      "dependencies": {
        "@webassemblyjs/ast": "1.12.1",
        "@webassemblyjs/helper-buffer": "1.12.1",
        "@webassemblyjs/wasm-gen": "1.12.1",
        "@webassemblyjs/wasm-parser": "1.12.1"
      }
    },
    "node_modules/@webassemblyjs/wasm-parser": {
      "version": "1.12.1",
      "resolved": "https://registry.npmmirror.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz",
      "integrity": "sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==",
      "dev": true,
      "peer": true,
      "dependencies": {
        "@webassemblyjs/ast": "1.12.1",
        "@webassemblyjs/helper-api-error": "1.11.6",
        "@webassemblyjs/helper-wasm-bytecode": "1.11.6",
        "@webassemblyjs/ieee754": "1.11.6",
        "@webassemblyjs/leb128": "1.11.6",
        "@webassemblyjs/utf8": "1.11.6"
      }
    },
    "node_modules/@webassemblyjs/wast-printer": {
      "version": "1.12.1",
      "resolved": "https://registry.npmmirror.com/@webassemblyjs/wast-printer/-/wast-printer-1.12.1.tgz",
      "integrity": "sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==",
      "dev": true,
      "peer": true,
      "dependencies": {
        "@webassemblyjs/ast": "1.12.1",
        "@xtuc/long": "4.2.2"
      }
    },
    "node_modules/@xtuc/ieee754": {
      "version": "1.2.0",
      "resolved": "https://registry.npmmirror.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz",
      "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==",
      "dev": true,
      "peer": true
    },
    "node_modules/@xtuc/long": {
      "version": "4.2.2",
      "resolved": "https://registry.npmmirror.com/@xtuc/long/-/long-4.2.2.tgz",
      "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==",
      "dev": true,
      "peer": true
    },
    "node_modules/acorn": {
      "version": "8.12.0",
      "resolved": "https://registry.npmmirror.com/acorn/-/acorn-8.12.0.tgz",
      "integrity": "sha512-RTvkC4w+KNXrM39/lWCUaG0IbRkWdCv7W/IOW9oU6SawyxulvkQy5HQPVTKxEjczcUvapcrw3cFx/60VN/NRNw==",
      "dev": true,
      "peer": true,
      "bin": {
        "acorn": "bin/acorn"
      },
      "engines": {
        "node": ">=0.4.0"
      }
    },
    "node_modules/acorn-import-attributes": {
      "version": "1.9.5",
      "resolved": "https://registry.npmmirror.com/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz",
      "integrity": "sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==",
      "dev": true,
      "peer": true,
      "peerDependencies": {
        "acorn": "^8"
      }
    },
    "node_modules/ajv": {
      "version": "6.12.6",
      "resolved": "https://registry.npmmirror.com/ajv/-/ajv-6.12.6.tgz",
      "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
      "dev": true,
      "dependencies": {
        "fast-deep-equal": "^3.1.1",
        "fast-json-stable-stringify": "^2.0.0",
        "json-schema-traverse": "^0.4.1",
        "uri-js": "^4.2.2"
      },
      "funding": {
        "type": "github",
        "url": "https://github.com/sponsors/epoberezkin"
      }
    },
    "node_modules/ajv-keywords": {
      "version": "3.5.2",
      "resolved": "https://registry.npmmirror.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz",
      "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==",
      "dev": true,
      "peerDependencies": {
        "ajv": "^6.9.1"
      }
    },
    "node_modules/anymatch": {
      "version": "3.1.3",
      "resolved": "https://registry.npmmirror.com/anymatch/-/anymatch-3.1.3.tgz",
      "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
      "dev": true,
      "dependencies": {
        "normalize-path": "^3.0.0",
        "picomatch": "^2.0.4"
      },
      "engines": {
        "node": ">= 8"
      }
    },
    "node_modules/big.js": {
      "version": "5.2.2",
      "resolved": "https://registry.npmmirror.com/big.js/-/big.js-5.2.2.tgz",
      "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==",
      "dev": true,
      "engines": {
        "node": "*"
      }
    },
    "node_modules/binary-extensions": {
      "version": "2.3.0",
      "resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.3.0.tgz",
      "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==",
      "dev": true,
      "engines": {
        "node": ">=8"
      },
      "funding": {
        "url": "https://github.com/sponsors/sindresorhus"
      }
    },
    "node_modules/braces": {
      "version": "3.0.3",
      "resolved": "https://registry.npmmirror.com/braces/-/braces-3.0.3.tgz",
      "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
      "dev": true,
      "dependencies": {
        "fill-range": "^7.1.1"
      },
      "engines": {
        "node": ">=8"
      }
    },
    "node_modules/browserslist": {
      "version": "4.23.1",
      "resolved": "https://registry.npmmirror.com/browserslist/-/browserslist-4.23.1.tgz",
      "integrity": "sha512-TUfofFo/KsK/bWZ9TWQ5O26tsWW4Uhmt8IYklbnUa70udB6P2wA7w7o4PY4muaEPBQaAX+CEnmmIA41NVHtPVw==",
      "dev": true,
      "funding": [
        {
          "type": "opencollective",
          "url": "https://opencollective.com/browserslist"
        },
        {
          "type": "tidelift",
          "url": "https://tidelift.com/funding/github/npm/browserslist"
        },
        {
          "type": "github",
          "url": "https://github.com/sponsors/ai"
        }
      ],
      "peer": true,
      "dependencies": {
        "caniuse-lite": "^1.0.30001629",
        "electron-to-chromium": "^1.4.796",
        "node-releases": "^2.0.14",
        "update-browserslist-db": "^1.0.16"
      },
      "bin": {
        "browserslist": "cli.js"
      },
      "engines": {
        "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
      }
    },
    "node_modules/buffer-from": {
      "version": "1.1.2",
      "resolved": "https://registry.npmmirror.com/buffer-from/-/buffer-from-1.1.2.tgz",
      "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
      "dev": true,
      "peer": true
    },
    "node_modules/caniuse-lite": {
      "version": "1.0.30001636",
      "resolved": "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001636.tgz",
      "integrity": "sha512-bMg2vmr8XBsbL6Lr0UHXy/21m84FTxDLWn2FSqMd5PrlbMxwJlQnC2YWYxVgp66PZE+BBNF2jYQUBKCo1FDeZg==",
      "dev": true,
      "funding": [
        {
          "type": "opencollective",
          "url": "https://opencollective.com/browserslist"
        },
        {
          "type": "tidelift",
          "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
        },
        {
          "type": "github",
          "url": "https://github.com/sponsors/ai"
        }
      ],
      "peer": true
    },
    "node_modules/chokidar": {
      "version": "3.6.0",
      "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-3.6.0.tgz",
      "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
      "dev": true,
      "dependencies": {
        "anymatch": "~3.1.2",
        "braces": "~3.0.2",
        "glob-parent": "~5.1.2",
        "is-binary-path": "~2.1.0",
        "is-glob": "~4.0.1",
        "normalize-path": "~3.0.0",
        "readdirp": "~3.6.0"
      },
      "engines": {
        "node": ">= 8.10.0"
      },
      "funding": {
        "url": "https://paulmillr.com/funding/"
      },
      "optionalDependencies": {
        "fsevents": "~2.3.2"
      }
    },
    "node_modules/chrome-trace-event": {
      "version": "1.0.4",
      "resolved": "https://registry.npmmirror.com/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz",
      "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==",
      "dev": true,
      "peer": true,
      "engines": {
        "node": ">=6.0"
      }
    },
    "node_modules/commander": {
      "version": "2.20.3",
      "resolved": "https://registry.npmmirror.com/commander/-/commander-2.20.3.tgz",
      "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
      "dev": true,
      "peer": true
    },
    "node_modules/electron-to-chromium": {
      "version": "1.4.811",
      "resolved": "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.4.811.tgz",
      "integrity": "sha512-CDyzcJ5XW78SHzsIOdn27z8J4ist8eaFLhdto2hSMSJQgsiwvbv2fbizcKUICryw1Wii1TI/FEkvzvJsR3awrA==",
      "dev": true,
      "peer": true
    },
    "node_modules/emojis-list": {
      "version": "3.0.0",
      "resolved": "https://registry.npmmirror.com/emojis-list/-/emojis-list-3.0.0.tgz",
      "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==",
      "dev": true,
      "engines": {
        "node": ">= 4"
      }
    },
    "node_modules/enhanced-resolve": {
      "version": "5.17.0",
      "resolved": "https://registry.npmmirror.com/enhanced-resolve/-/enhanced-resolve-5.17.0.tgz",
      "integrity": "sha512-dwDPwZL0dmye8Txp2gzFmA6sxALaSvdRDjPH0viLcKrtlOL3tw62nWWweVD1SdILDTJrbrL6tdWVN58Wo6U3eA==",
      "dev": true,
      "peer": true,
      "dependencies": {
        "graceful-fs": "^4.2.4",
        "tapable": "^2.2.0"
      },
      "engines": {
        "node": ">=10.13.0"
      }
    },
    "node_modules/es-module-lexer": {
      "version": "1.5.4",
      "resolved": "https://registry.npmmirror.com/es-module-lexer/-/es-module-lexer-1.5.4.tgz",
      "integrity": "sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==",
      "dev": true,
      "peer": true
    },
    "node_modules/escalade": {
      "version": "3.1.2",
      "resolved": "https://registry.npmmirror.com/escalade/-/escalade-3.1.2.tgz",
      "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==",
      "dev": true,
      "peer": true,
      "engines": {
        "node": ">=6"
      }
    },
    "node_modules/eslint-scope": {
      "version": "5.1.1",
      "resolved": "https://registry.npmmirror.com/eslint-scope/-/eslint-scope-5.1.1.tgz",
      "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
      "dev": true,
      "peer": true,
      "dependencies": {
        "esrecurse": "^4.3.0",
        "estraverse": "^4.1.1"
      },
      "engines": {
        "node": ">=8.0.0"
      }
    },
    "node_modules/esrecurse": {
      "version": "4.3.0",
      "resolved": "https://registry.npmmirror.com/esrecurse/-/esrecurse-4.3.0.tgz",
      "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
      "dev": true,
      "peer": true,
      "dependencies": {
        "estraverse": "^5.2.0"
      },
      "engines": {
        "node": ">=4.0"
      }
    },
    "node_modules/esrecurse/node_modules/estraverse": {
      "version": "5.3.0",
      "resolved": "https://registry.npmmirror.com/estraverse/-/estraverse-5.3.0.tgz",
      "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
      "dev": true,
      "peer": true,
      "engines": {
        "node": ">=4.0"
      }
    },
    "node_modules/estraverse": {
      "version": "4.3.0",
      "resolved": "https://registry.npmmirror.com/estraverse/-/estraverse-4.3.0.tgz",
      "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
      "dev": true,
      "peer": true,
      "engines": {
        "node": ">=4.0"
      }
    },
    "node_modules/events": {
      "version": "3.3.0",
      "resolved": "https://registry.npmmirror.com/events/-/events-3.3.0.tgz",
      "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==",
      "dev": true,
      "peer": true,
      "engines": {
        "node": ">=0.8.x"
      }
    },
    "node_modules/fast-deep-equal": {
      "version": "3.1.3",
      "resolved": "https://registry.npmmirror.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
      "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
      "dev": true
    },
    "node_modules/fast-json-stable-stringify": {
      "version": "2.1.0",
      "resolved": "https://registry.npmmirror.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
      "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
      "dev": true
    },
    "node_modules/fill-range": {
      "version": "7.1.1",
      "resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.1.1.tgz",
      "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
      "dev": true,
      "dependencies": {
        "to-regex-range": "^5.0.1"
      },
      "engines": {
        "node": ">=8"
      }
    },
    "node_modules/fsevents": {
      "version": "2.3.3",
      "resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.3.tgz",
      "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
      "dev": true,
      "hasInstallScript": true,
      "optional": true,
      "os": [
        "darwin"
      ],
      "engines": {
        "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
      }
    },
    "node_modules/glob-parent": {
      "version": "5.1.2",
      "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz",
      "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
      "dev": true,
      "dependencies": {
        "is-glob": "^4.0.1"
      },
      "engines": {
        "node": ">= 6"
      }
    },
    "node_modules/glob-to-regexp": {
      "version": "0.4.1",
      "resolved": "https://registry.npmmirror.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz",
      "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==",
      "dev": true,
      "peer": true
    },
    "node_modules/graceful-fs": {
      "version": "4.2.11",
      "resolved": "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.11.tgz",
      "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
      "dev": true,
      "peer": true
    },
    "node_modules/has-flag": {
      "version": "4.0.0",
      "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz",
      "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
      "dev": true,
      "peer": true,
      "engines": {
        "node": ">=8"
      }
    },
    "node_modules/immutable": {
      "version": "4.3.6",
      "resolved": "https://registry.npmmirror.com/immutable/-/immutable-4.3.6.tgz",
      "integrity": "sha512-Ju0+lEMyzMVZarkTn/gqRpdqd5dOPaz1mCZ0SH3JV6iFw81PldE/PEB1hWVEA288HPt4WXW8O7AWxB10M+03QQ==",
      "dev": true
    },
    "node_modules/is-binary-path": {
      "version": "2.1.0",
      "resolved": "https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz",
      "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
      "dev": true,
      "dependencies": {
        "binary-extensions": "^2.0.0"
      },
      "engines": {
        "node": ">=8"
      }
    },
    "node_modules/is-extglob": {
      "version": "2.1.1",
      "resolved": "https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz",
      "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
      "dev": true,
      "engines": {
        "node": ">=0.10.0"
      }
    },
    "node_modules/is-glob": {
      "version": "4.0.3",
      "resolved": "https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz",
      "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
      "dev": true,
      "dependencies": {
        "is-extglob": "^2.1.1"
      },
      "engines": {
        "node": ">=0.10.0"
      }
    },
    "node_modules/is-number": {
      "version": "7.0.0",
      "resolved": "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz",
      "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
      "dev": true,
      "engines": {
        "node": ">=0.12.0"
      }
    },
    "node_modules/jest-worker": {
      "version": "27.5.1",
      "resolved": "https://registry.npmmirror.com/jest-worker/-/jest-worker-27.5.1.tgz",
      "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==",
      "dev": true,
      "peer": true,
      "dependencies": {
        "@types/node": "*",
        "merge-stream": "^2.0.0",
        "supports-color": "^8.0.0"
      },
      "engines": {
        "node": ">= 10.13.0"
      }
    },
    "node_modules/json-parse-even-better-errors": {
      "version": "2.3.1",
      "resolved": "https://registry.npmmirror.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
      "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==",
      "dev": true,
      "peer": true
    },
    "node_modules/json-schema-traverse": {
      "version": "0.4.1",
      "resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
      "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
      "dev": true
    },
    "node_modules/json5": {
      "version": "2.2.3",
      "resolved": "https://registry.npmmirror.com/json5/-/json5-2.2.3.tgz",
      "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
      "dev": true,
      "bin": {
        "json5": "lib/cli.js"
      },
      "engines": {
        "node": ">=6"
      }
    },
    "node_modules/klona": {
      "version": "2.0.6",
      "resolved": "https://registry.npmmirror.com/klona/-/klona-2.0.6.tgz",
      "integrity": "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==",
      "dev": true,
      "engines": {
        "node": ">= 8"
      }
    },
    "node_modules/loader-runner": {
      "version": "4.3.0",
      "resolved": "https://registry.npmmirror.com/loader-runner/-/loader-runner-4.3.0.tgz",
      "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==",
      "dev": true,
      "peer": true,
      "engines": {
        "node": ">=6.11.5"
      }
    },
    "node_modules/loader-utils": {
      "version": "2.0.4",
      "resolved": "https://registry.npmmirror.com/loader-utils/-/loader-utils-2.0.4.tgz",
      "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==",
      "dev": true,
      "dependencies": {
        "big.js": "^5.2.2",
        "emojis-list": "^3.0.0",
        "json5": "^2.1.2"
      },
      "engines": {
        "node": ">=8.9.0"
      }
    },
    "node_modules/merge-stream": {
      "version": "2.0.0",
      "resolved": "https://registry.npmmirror.com/merge-stream/-/merge-stream-2.0.0.tgz",
      "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
      "dev": true,
      "peer": true
    },
    "node_modules/mime-db": {
      "version": "1.52.0",
      "resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz",
      "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
      "dev": true,
      "peer": true,
      "engines": {
        "node": ">= 0.6"
      }
    },
    "node_modules/mime-types": {
      "version": "2.1.35",
      "resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz",
      "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
      "dev": true,
      "peer": true,
      "dependencies": {
        "mime-db": "1.52.0"
      },
      "engines": {
        "node": ">= 0.6"
      }
    },
    "node_modules/moment": {
@@ -15,13 +829,1376 @@
      "engines": {
        "node": "*"
      }
    },
    "node_modules/neo-async": {
      "version": "2.6.2",
      "resolved": "https://registry.npmmirror.com/neo-async/-/neo-async-2.6.2.tgz",
      "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==",
      "dev": true
    },
    "node_modules/node-releases": {
      "version": "2.0.14",
      "resolved": "https://registry.npmmirror.com/node-releases/-/node-releases-2.0.14.tgz",
      "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==",
      "dev": true,
      "peer": true
    },
    "node_modules/normalize-path": {
      "version": "3.0.0",
      "resolved": "https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz",
      "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
      "dev": true,
      "engines": {
        "node": ">=0.10.0"
      }
    },
    "node_modules/picocolors": {
      "version": "1.0.1",
      "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.0.1.tgz",
      "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==",
      "dev": true,
      "peer": true
    },
    "node_modules/picomatch": {
      "version": "2.3.1",
      "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz",
      "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
      "dev": true,
      "engines": {
        "node": ">=8.6"
      },
      "funding": {
        "url": "https://github.com/sponsors/jonschlinkert"
      }
    },
    "node_modules/punycode": {
      "version": "2.3.1",
      "resolved": "https://registry.npmmirror.com/punycode/-/punycode-2.3.1.tgz",
      "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
      "dev": true,
      "engines": {
        "node": ">=6"
      }
    },
    "node_modules/randombytes": {
      "version": "2.1.0",
      "resolved": "https://registry.npmmirror.com/randombytes/-/randombytes-2.1.0.tgz",
      "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
      "dev": true,
      "peer": true,
      "dependencies": {
        "safe-buffer": "^5.1.0"
      }
    },
    "node_modules/readdirp": {
      "version": "3.6.0",
      "resolved": "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz",
      "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
      "dev": true,
      "dependencies": {
        "picomatch": "^2.2.1"
      },
      "engines": {
        "node": ">=8.10.0"
      }
    },
    "node_modules/safe-buffer": {
      "version": "5.2.1",
      "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.2.1.tgz",
      "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
      "dev": true,
      "funding": [
        {
          "type": "github",
          "url": "https://github.com/sponsors/feross"
        },
        {
          "type": "patreon",
          "url": "https://www.patreon.com/feross"
        },
        {
          "type": "consulting",
          "url": "https://feross.org/support"
        }
      ],
      "peer": true
    },
    "node_modules/sass": {
      "version": "1.77.6",
      "resolved": "https://registry.npmmirror.com/sass/-/sass-1.77.6.tgz",
      "integrity": "sha512-ByXE1oLD79GVq9Ht1PeHWCPMPB8XHpBuz1r85oByKHjZY6qV6rWnQovQzXJXuQ/XyE1Oj3iPk3lo28uzaRA2/Q==",
      "dev": true,
      "dependencies": {
        "chokidar": ">=3.0.0 <4.0.0",
        "immutable": "^4.0.0",
        "source-map-js": ">=0.6.2 <2.0.0"
      },
      "bin": {
        "sass": "sass.js"
      },
      "engines": {
        "node": ">=14.0.0"
      }
    },
    "node_modules/sass-loader": {
      "version": "10.5.2",
      "resolved": "https://registry.npmmirror.com/sass-loader/-/sass-loader-10.5.2.tgz",
      "integrity": "sha512-vMUoSNOUKJILHpcNCCyD23X34gve1TS7Rjd9uXHeKqhvBG39x6XbswFDtpbTElj6XdMFezoWhkh5vtKudf2cgQ==",
      "dev": true,
      "dependencies": {
        "klona": "^2.0.4",
        "loader-utils": "^2.0.0",
        "neo-async": "^2.6.2",
        "schema-utils": "^3.0.0",
        "semver": "^7.3.2"
      },
      "engines": {
        "node": ">= 10.13.0"
      },
      "funding": {
        "type": "opencollective",
        "url": "https://opencollective.com/webpack"
      },
      "peerDependencies": {
        "fibers": ">= 3.1.0",
        "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0",
        "sass": "^1.3.0",
        "webpack": "^4.36.0 || ^5.0.0"
      },
      "peerDependenciesMeta": {
        "fibers": {
          "optional": true
        },
        "node-sass": {
          "optional": true
        },
        "sass": {
          "optional": true
        }
      }
    },
    "node_modules/schema-utils": {
      "version": "3.3.0",
      "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-3.3.0.tgz",
      "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==",
      "dev": true,
      "dependencies": {
        "@types/json-schema": "^7.0.8",
        "ajv": "^6.12.5",
        "ajv-keywords": "^3.5.2"
      },
      "engines": {
        "node": ">= 10.13.0"
      },
      "funding": {
        "type": "opencollective",
        "url": "https://opencollective.com/webpack"
      }
    },
    "node_modules/semver": {
      "version": "7.6.2",
      "resolved": "https://registry.npmmirror.com/semver/-/semver-7.6.2.tgz",
      "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==",
      "dev": true,
      "bin": {
        "semver": "bin/semver.js"
      },
      "engines": {
        "node": ">=10"
      }
    },
    "node_modules/serialize-javascript": {
      "version": "6.0.2",
      "resolved": "https://registry.npmmirror.com/serialize-javascript/-/serialize-javascript-6.0.2.tgz",
      "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==",
      "dev": true,
      "peer": true,
      "dependencies": {
        "randombytes": "^2.1.0"
      }
    },
    "node_modules/source-map": {
      "version": "0.6.1",
      "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz",
      "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
      "dev": true,
      "peer": true,
      "engines": {
        "node": ">=0.10.0"
      }
    },
    "node_modules/source-map-js": {
      "version": "1.2.0",
      "resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.2.0.tgz",
      "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==",
      "dev": true,
      "engines": {
        "node": ">=0.10.0"
      }
    },
    "node_modules/source-map-support": {
      "version": "0.5.21",
      "resolved": "https://registry.npmmirror.com/source-map-support/-/source-map-support-0.5.21.tgz",
      "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==",
      "dev": true,
      "peer": true,
      "dependencies": {
        "buffer-from": "^1.0.0",
        "source-map": "^0.6.0"
      }
    },
    "node_modules/supports-color": {
      "version": "8.1.1",
      "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-8.1.1.tgz",
      "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
      "dev": true,
      "peer": true,
      "dependencies": {
        "has-flag": "^4.0.0"
      },
      "engines": {
        "node": ">=10"
      },
      "funding": {
        "url": "https://github.com/chalk/supports-color?sponsor=1"
      }
    },
    "node_modules/tapable": {
      "version": "2.2.1",
      "resolved": "https://registry.npmmirror.com/tapable/-/tapable-2.2.1.tgz",
      "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==",
      "dev": true,
      "peer": true,
      "engines": {
        "node": ">=6"
      }
    },
    "node_modules/terser": {
      "version": "5.31.1",
      "resolved": "https://registry.npmmirror.com/terser/-/terser-5.31.1.tgz",
      "integrity": "sha512-37upzU1+viGvuFtBo9NPufCb9dwM0+l9hMxYyWfBA+fbwrPqNJAhbZ6W47bBFnZHKHTUBnMvi87434qq+qnxOg==",
      "dev": true,
      "peer": true,
      "dependencies": {
        "@jridgewell/source-map": "^0.3.3",
        "acorn": "^8.8.2",
        "commander": "^2.20.0",
        "source-map-support": "~0.5.20"
      },
      "bin": {
        "terser": "bin/terser"
      },
      "engines": {
        "node": ">=10"
      }
    },
    "node_modules/terser-webpack-plugin": {
      "version": "5.3.10",
      "resolved": "https://registry.npmmirror.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz",
      "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==",
      "dev": true,
      "peer": true,
      "dependencies": {
        "@jridgewell/trace-mapping": "^0.3.20",
        "jest-worker": "^27.4.5",
        "schema-utils": "^3.1.1",
        "serialize-javascript": "^6.0.1",
        "terser": "^5.26.0"
      },
      "engines": {
        "node": ">= 10.13.0"
      },
      "funding": {
        "type": "opencollective",
        "url": "https://opencollective.com/webpack"
      },
      "peerDependencies": {
        "webpack": "^5.1.0"
      },
      "peerDependenciesMeta": {
        "@swc/core": {
          "optional": true
        },
        "esbuild": {
          "optional": true
        },
        "uglify-js": {
          "optional": true
        }
      }
    },
    "node_modules/to-regex-range": {
      "version": "5.0.1",
      "resolved": "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz",
      "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
      "dev": true,
      "dependencies": {
        "is-number": "^7.0.0"
      },
      "engines": {
        "node": ">=8.0"
      }
    },
    "node_modules/undici-types": {
      "version": "5.26.5",
      "resolved": "https://registry.npmmirror.com/undici-types/-/undici-types-5.26.5.tgz",
      "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==",
      "dev": true,
      "peer": true
    },
    "node_modules/update-browserslist-db": {
      "version": "1.0.16",
      "resolved": "https://registry.npmmirror.com/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz",
      "integrity": "sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==",
      "dev": true,
      "funding": [
        {
          "type": "opencollective",
          "url": "https://opencollective.com/browserslist"
        },
        {
          "type": "tidelift",
          "url": "https://tidelift.com/funding/github/npm/browserslist"
        },
        {
          "type": "github",
          "url": "https://github.com/sponsors/ai"
        }
      ],
      "peer": true,
      "dependencies": {
        "escalade": "^3.1.2",
        "picocolors": "^1.0.1"
      },
      "bin": {
        "update-browserslist-db": "cli.js"
      },
      "peerDependencies": {
        "browserslist": ">= 4.21.0"
      }
    },
    "node_modules/uri-js": {
      "version": "4.4.1",
      "resolved": "https://registry.npmmirror.com/uri-js/-/uri-js-4.4.1.tgz",
      "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
      "dev": true,
      "dependencies": {
        "punycode": "^2.1.0"
      }
    },
    "node_modules/uview-ui": {
      "version": "2.0.36",
      "resolved": "https://registry.npmmirror.com/uview-ui/-/uview-ui-2.0.36.tgz",
      "integrity": "sha512-ASSZT6M8w3GTO1eFPbsgEFV0U5UujK+8pTNr+MSUbRNcRMC1u63DDTLJVeArV91kWM0bfAexK3SK9pnTqF9TtA==",
      "engines": {
        "HBuilderX": "^3.1.0"
      }
    },
    "node_modules/watchpack": {
      "version": "2.4.1",
      "resolved": "https://registry.npmmirror.com/watchpack/-/watchpack-2.4.1.tgz",
      "integrity": "sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==",
      "dev": true,
      "peer": true,
      "dependencies": {
        "glob-to-regexp": "^0.4.1",
        "graceful-fs": "^4.1.2"
      },
      "engines": {
        "node": ">=10.13.0"
      }
    },
    "node_modules/webpack": {
      "version": "5.92.1",
      "resolved": "https://registry.npmmirror.com/webpack/-/webpack-5.92.1.tgz",
      "integrity": "sha512-JECQ7IwJb+7fgUFBlrJzbyu3GEuNBcdqr1LD7IbSzwkSmIevTm8PF+wej3Oxuz/JFBUZ6O1o43zsPkwm1C4TmA==",
      "dev": true,
      "peer": true,
      "dependencies": {
        "@types/eslint-scope": "^3.7.3",
        "@types/estree": "^1.0.5",
        "@webassemblyjs/ast": "^1.12.1",
        "@webassemblyjs/wasm-edit": "^1.12.1",
        "@webassemblyjs/wasm-parser": "^1.12.1",
        "acorn": "^8.7.1",
        "acorn-import-attributes": "^1.9.5",
        "browserslist": "^4.21.10",
        "chrome-trace-event": "^1.0.2",
        "enhanced-resolve": "^5.17.0",
        "es-module-lexer": "^1.2.1",
        "eslint-scope": "5.1.1",
        "events": "^3.2.0",
        "glob-to-regexp": "^0.4.1",
        "graceful-fs": "^4.2.11",
        "json-parse-even-better-errors": "^2.3.1",
        "loader-runner": "^4.2.0",
        "mime-types": "^2.1.27",
        "neo-async": "^2.6.2",
        "schema-utils": "^3.2.0",
        "tapable": "^2.1.1",
        "terser-webpack-plugin": "^5.3.10",
        "watchpack": "^2.4.1",
        "webpack-sources": "^3.2.3"
      },
      "bin": {
        "webpack": "bin/webpack.js"
      },
      "engines": {
        "node": ">=10.13.0"
      },
      "funding": {
        "type": "opencollective",
        "url": "https://opencollective.com/webpack"
      },
      "peerDependenciesMeta": {
        "webpack-cli": {
          "optional": true
        }
      }
    },
    "node_modules/webpack-sources": {
      "version": "3.2.3",
      "resolved": "https://registry.npmmirror.com/webpack-sources/-/webpack-sources-3.2.3.tgz",
      "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==",
      "dev": true,
      "peer": true,
      "engines": {
        "node": ">=10.13.0"
      }
    }
  },
  "dependencies": {
    "@jridgewell/gen-mapping": {
      "version": "0.3.5",
      "resolved": "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz",
      "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==",
      "dev": true,
      "peer": true,
      "requires": {
        "@jridgewell/set-array": "^1.2.1",
        "@jridgewell/sourcemap-codec": "^1.4.10",
        "@jridgewell/trace-mapping": "^0.3.24"
      }
    },
    "@jridgewell/resolve-uri": {
      "version": "3.1.2",
      "resolved": "https://registry.npmmirror.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
      "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
      "dev": true,
      "peer": true
    },
    "@jridgewell/set-array": {
      "version": "1.2.1",
      "resolved": "https://registry.npmmirror.com/@jridgewell/set-array/-/set-array-1.2.1.tgz",
      "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==",
      "dev": true,
      "peer": true
    },
    "@jridgewell/source-map": {
      "version": "0.3.6",
      "resolved": "https://registry.npmmirror.com/@jridgewell/source-map/-/source-map-0.3.6.tgz",
      "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==",
      "dev": true,
      "peer": true,
      "requires": {
        "@jridgewell/gen-mapping": "^0.3.5",
        "@jridgewell/trace-mapping": "^0.3.25"
      }
    },
    "@jridgewell/sourcemap-codec": {
      "version": "1.4.15",
      "resolved": "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
      "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==",
      "dev": true,
      "peer": true
    },
    "@jridgewell/trace-mapping": {
      "version": "0.3.25",
      "resolved": "https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz",
      "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==",
      "dev": true,
      "peer": true,
      "requires": {
        "@jridgewell/resolve-uri": "^3.1.0",
        "@jridgewell/sourcemap-codec": "^1.4.14"
      }
    },
    "@types/eslint": {
      "version": "8.56.10",
      "resolved": "https://registry.npmmirror.com/@types/eslint/-/eslint-8.56.10.tgz",
      "integrity": "sha512-Shavhk87gCtY2fhXDctcfS3e6FdxWkCx1iUZ9eEUbh7rTqlZT0/IzOkCOVt0fCjcFuZ9FPYfuezTBImfHCDBGQ==",
      "dev": true,
      "peer": true,
      "requires": {
        "@types/estree": "*",
        "@types/json-schema": "*"
      }
    },
    "@types/eslint-scope": {
      "version": "3.7.7",
      "resolved": "https://registry.npmmirror.com/@types/eslint-scope/-/eslint-scope-3.7.7.tgz",
      "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==",
      "dev": true,
      "peer": true,
      "requires": {
        "@types/eslint": "*",
        "@types/estree": "*"
      }
    },
    "@types/estree": {
      "version": "1.0.5",
      "resolved": "https://registry.npmmirror.com/@types/estree/-/estree-1.0.5.tgz",
      "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==",
      "dev": true,
      "peer": true
    },
    "@types/json-schema": {
      "version": "7.0.15",
      "resolved": "https://registry.npmmirror.com/@types/json-schema/-/json-schema-7.0.15.tgz",
      "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==",
      "dev": true
    },
    "@types/node": {
      "version": "20.14.8",
      "resolved": "https://registry.npmmirror.com/@types/node/-/node-20.14.8.tgz",
      "integrity": "sha512-DO+2/jZinXfROG7j7WKFn/3C6nFwxy2lLpgLjEXJz+0XKphZlTLJ14mo8Vfg8X5BWN6XjyESXq+LcYdT7tR3bA==",
      "dev": true,
      "peer": true,
      "requires": {
        "undici-types": "~5.26.4"
      }
    },
    "@webassemblyjs/ast": {
      "version": "1.12.1",
      "resolved": "https://registry.npmmirror.com/@webassemblyjs/ast/-/ast-1.12.1.tgz",
      "integrity": "sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==",
      "dev": true,
      "peer": true,
      "requires": {
        "@webassemblyjs/helper-numbers": "1.11.6",
        "@webassemblyjs/helper-wasm-bytecode": "1.11.6"
      }
    },
    "@webassemblyjs/floating-point-hex-parser": {
      "version": "1.11.6",
      "resolved": "https://registry.npmmirror.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz",
      "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==",
      "dev": true,
      "peer": true
    },
    "@webassemblyjs/helper-api-error": {
      "version": "1.11.6",
      "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz",
      "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==",
      "dev": true,
      "peer": true
    },
    "@webassemblyjs/helper-buffer": {
      "version": "1.12.1",
      "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.12.1.tgz",
      "integrity": "sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==",
      "dev": true,
      "peer": true
    },
    "@webassemblyjs/helper-numbers": {
      "version": "1.11.6",
      "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz",
      "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==",
      "dev": true,
      "peer": true,
      "requires": {
        "@webassemblyjs/floating-point-hex-parser": "1.11.6",
        "@webassemblyjs/helper-api-error": "1.11.6",
        "@xtuc/long": "4.2.2"
      }
    },
    "@webassemblyjs/helper-wasm-bytecode": {
      "version": "1.11.6",
      "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz",
      "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==",
      "dev": true,
      "peer": true
    },
    "@webassemblyjs/helper-wasm-section": {
      "version": "1.12.1",
      "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.12.1.tgz",
      "integrity": "sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==",
      "dev": true,
      "peer": true,
      "requires": {
        "@webassemblyjs/ast": "1.12.1",
        "@webassemblyjs/helper-buffer": "1.12.1",
        "@webassemblyjs/helper-wasm-bytecode": "1.11.6",
        "@webassemblyjs/wasm-gen": "1.12.1"
      }
    },
    "@webassemblyjs/ieee754": {
      "version": "1.11.6",
      "resolved": "https://registry.npmmirror.com/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz",
      "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==",
      "dev": true,
      "peer": true,
      "requires": {
        "@xtuc/ieee754": "^1.2.0"
      }
    },
    "@webassemblyjs/leb128": {
      "version": "1.11.6",
      "resolved": "https://registry.npmmirror.com/@webassemblyjs/leb128/-/leb128-1.11.6.tgz",
      "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==",
      "dev": true,
      "peer": true,
      "requires": {
        "@xtuc/long": "4.2.2"
      }
    },
    "@webassemblyjs/utf8": {
      "version": "1.11.6",
      "resolved": "https://registry.npmmirror.com/@webassemblyjs/utf8/-/utf8-1.11.6.tgz",
      "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==",
      "dev": true,
      "peer": true
    },
    "@webassemblyjs/wasm-edit": {
      "version": "1.12.1",
      "resolved": "https://registry.npmmirror.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.12.1.tgz",
      "integrity": "sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==",
      "dev": true,
      "peer": true,
      "requires": {
        "@webassemblyjs/ast": "1.12.1",
        "@webassemblyjs/helper-buffer": "1.12.1",
        "@webassemblyjs/helper-wasm-bytecode": "1.11.6",
        "@webassemblyjs/helper-wasm-section": "1.12.1",
        "@webassemblyjs/wasm-gen": "1.12.1",
        "@webassemblyjs/wasm-opt": "1.12.1",
        "@webassemblyjs/wasm-parser": "1.12.1",
        "@webassemblyjs/wast-printer": "1.12.1"
      }
    },
    "@webassemblyjs/wasm-gen": {
      "version": "1.12.1",
      "resolved": "https://registry.npmmirror.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.12.1.tgz",
      "integrity": "sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==",
      "dev": true,
      "peer": true,
      "requires": {
        "@webassemblyjs/ast": "1.12.1",
        "@webassemblyjs/helper-wasm-bytecode": "1.11.6",
        "@webassemblyjs/ieee754": "1.11.6",
        "@webassemblyjs/leb128": "1.11.6",
        "@webassemblyjs/utf8": "1.11.6"
      }
    },
    "@webassemblyjs/wasm-opt": {
      "version": "1.12.1",
      "resolved": "https://registry.npmmirror.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.12.1.tgz",
      "integrity": "sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==",
      "dev": true,
      "peer": true,
      "requires": {
        "@webassemblyjs/ast": "1.12.1",
        "@webassemblyjs/helper-buffer": "1.12.1",
        "@webassemblyjs/wasm-gen": "1.12.1",
        "@webassemblyjs/wasm-parser": "1.12.1"
      }
    },
    "@webassemblyjs/wasm-parser": {
      "version": "1.12.1",
      "resolved": "https://registry.npmmirror.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz",
      "integrity": "sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==",
      "dev": true,
      "peer": true,
      "requires": {
        "@webassemblyjs/ast": "1.12.1",
        "@webassemblyjs/helper-api-error": "1.11.6",
        "@webassemblyjs/helper-wasm-bytecode": "1.11.6",
        "@webassemblyjs/ieee754": "1.11.6",
        "@webassemblyjs/leb128": "1.11.6",
        "@webassemblyjs/utf8": "1.11.6"
      }
    },
    "@webassemblyjs/wast-printer": {
      "version": "1.12.1",
      "resolved": "https://registry.npmmirror.com/@webassemblyjs/wast-printer/-/wast-printer-1.12.1.tgz",
      "integrity": "sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==",
      "dev": true,
      "peer": true,
      "requires": {
        "@webassemblyjs/ast": "1.12.1",
        "@xtuc/long": "4.2.2"
      }
    },
    "@xtuc/ieee754": {
      "version": "1.2.0",
      "resolved": "https://registry.npmmirror.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz",
      "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==",
      "dev": true,
      "peer": true
    },
    "@xtuc/long": {
      "version": "4.2.2",
      "resolved": "https://registry.npmmirror.com/@xtuc/long/-/long-4.2.2.tgz",
      "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==",
      "dev": true,
      "peer": true
    },
    "acorn": {
      "version": "8.12.0",
      "resolved": "https://registry.npmmirror.com/acorn/-/acorn-8.12.0.tgz",
      "integrity": "sha512-RTvkC4w+KNXrM39/lWCUaG0IbRkWdCv7W/IOW9oU6SawyxulvkQy5HQPVTKxEjczcUvapcrw3cFx/60VN/NRNw==",
      "dev": true,
      "peer": true
    },
    "acorn-import-attributes": {
      "version": "1.9.5",
      "resolved": "https://registry.npmmirror.com/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz",
      "integrity": "sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==",
      "dev": true,
      "peer": true,
      "requires": {}
    },
    "ajv": {
      "version": "6.12.6",
      "resolved": "https://registry.npmmirror.com/ajv/-/ajv-6.12.6.tgz",
      "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
      "dev": true,
      "requires": {
        "fast-deep-equal": "^3.1.1",
        "fast-json-stable-stringify": "^2.0.0",
        "json-schema-traverse": "^0.4.1",
        "uri-js": "^4.2.2"
      }
    },
    "ajv-keywords": {
      "version": "3.5.2",
      "resolved": "https://registry.npmmirror.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz",
      "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==",
      "dev": true,
      "requires": {}
    },
    "anymatch": {
      "version": "3.1.3",
      "resolved": "https://registry.npmmirror.com/anymatch/-/anymatch-3.1.3.tgz",
      "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
      "dev": true,
      "requires": {
        "normalize-path": "^3.0.0",
        "picomatch": "^2.0.4"
      }
    },
    "big.js": {
      "version": "5.2.2",
      "resolved": "https://registry.npmmirror.com/big.js/-/big.js-5.2.2.tgz",
      "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==",
      "dev": true
    },
    "binary-extensions": {
      "version": "2.3.0",
      "resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.3.0.tgz",
      "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==",
      "dev": true
    },
    "braces": {
      "version": "3.0.3",
      "resolved": "https://registry.npmmirror.com/braces/-/braces-3.0.3.tgz",
      "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
      "dev": true,
      "requires": {
        "fill-range": "^7.1.1"
      }
    },
    "browserslist": {
      "version": "4.23.1",
      "resolved": "https://registry.npmmirror.com/browserslist/-/browserslist-4.23.1.tgz",
      "integrity": "sha512-TUfofFo/KsK/bWZ9TWQ5O26tsWW4Uhmt8IYklbnUa70udB6P2wA7w7o4PY4muaEPBQaAX+CEnmmIA41NVHtPVw==",
      "dev": true,
      "peer": true,
      "requires": {
        "caniuse-lite": "^1.0.30001629",
        "electron-to-chromium": "^1.4.796",
        "node-releases": "^2.0.14",
        "update-browserslist-db": "^1.0.16"
      }
    },
    "buffer-from": {
      "version": "1.1.2",
      "resolved": "https://registry.npmmirror.com/buffer-from/-/buffer-from-1.1.2.tgz",
      "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
      "dev": true,
      "peer": true
    },
    "caniuse-lite": {
      "version": "1.0.30001636",
      "resolved": "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001636.tgz",
      "integrity": "sha512-bMg2vmr8XBsbL6Lr0UHXy/21m84FTxDLWn2FSqMd5PrlbMxwJlQnC2YWYxVgp66PZE+BBNF2jYQUBKCo1FDeZg==",
      "dev": true,
      "peer": true
    },
    "chokidar": {
      "version": "3.6.0",
      "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-3.6.0.tgz",
      "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
      "dev": true,
      "requires": {
        "anymatch": "~3.1.2",
        "braces": "~3.0.2",
        "fsevents": "~2.3.2",
        "glob-parent": "~5.1.2",
        "is-binary-path": "~2.1.0",
        "is-glob": "~4.0.1",
        "normalize-path": "~3.0.0",
        "readdirp": "~3.6.0"
      }
    },
    "chrome-trace-event": {
      "version": "1.0.4",
      "resolved": "https://registry.npmmirror.com/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz",
      "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==",
      "dev": true,
      "peer": true
    },
    "commander": {
      "version": "2.20.3",
      "resolved": "https://registry.npmmirror.com/commander/-/commander-2.20.3.tgz",
      "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
      "dev": true,
      "peer": true
    },
    "electron-to-chromium": {
      "version": "1.4.811",
      "resolved": "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.4.811.tgz",
      "integrity": "sha512-CDyzcJ5XW78SHzsIOdn27z8J4ist8eaFLhdto2hSMSJQgsiwvbv2fbizcKUICryw1Wii1TI/FEkvzvJsR3awrA==",
      "dev": true,
      "peer": true
    },
    "emojis-list": {
      "version": "3.0.0",
      "resolved": "https://registry.npmmirror.com/emojis-list/-/emojis-list-3.0.0.tgz",
      "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==",
      "dev": true
    },
    "enhanced-resolve": {
      "version": "5.17.0",
      "resolved": "https://registry.npmmirror.com/enhanced-resolve/-/enhanced-resolve-5.17.0.tgz",
      "integrity": "sha512-dwDPwZL0dmye8Txp2gzFmA6sxALaSvdRDjPH0viLcKrtlOL3tw62nWWweVD1SdILDTJrbrL6tdWVN58Wo6U3eA==",
      "dev": true,
      "peer": true,
      "requires": {
        "graceful-fs": "^4.2.4",
        "tapable": "^2.2.0"
      }
    },
    "es-module-lexer": {
      "version": "1.5.4",
      "resolved": "https://registry.npmmirror.com/es-module-lexer/-/es-module-lexer-1.5.4.tgz",
      "integrity": "sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==",
      "dev": true,
      "peer": true
    },
    "escalade": {
      "version": "3.1.2",
      "resolved": "https://registry.npmmirror.com/escalade/-/escalade-3.1.2.tgz",
      "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==",
      "dev": true,
      "peer": true
    },
    "eslint-scope": {
      "version": "5.1.1",
      "resolved": "https://registry.npmmirror.com/eslint-scope/-/eslint-scope-5.1.1.tgz",
      "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
      "dev": true,
      "peer": true,
      "requires": {
        "esrecurse": "^4.3.0",
        "estraverse": "^4.1.1"
      }
    },
    "esrecurse": {
      "version": "4.3.0",
      "resolved": "https://registry.npmmirror.com/esrecurse/-/esrecurse-4.3.0.tgz",
      "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
      "dev": true,
      "peer": true,
      "requires": {
        "estraverse": "^5.2.0"
      },
      "dependencies": {
        "estraverse": {
          "version": "5.3.0",
          "resolved": "https://registry.npmmirror.com/estraverse/-/estraverse-5.3.0.tgz",
          "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
          "dev": true,
          "peer": true
        }
      }
    },
    "estraverse": {
      "version": "4.3.0",
      "resolved": "https://registry.npmmirror.com/estraverse/-/estraverse-4.3.0.tgz",
      "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
      "dev": true,
      "peer": true
    },
    "events": {
      "version": "3.3.0",
      "resolved": "https://registry.npmmirror.com/events/-/events-3.3.0.tgz",
      "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==",
      "dev": true,
      "peer": true
    },
    "fast-deep-equal": {
      "version": "3.1.3",
      "resolved": "https://registry.npmmirror.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
      "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
      "dev": true
    },
    "fast-json-stable-stringify": {
      "version": "2.1.0",
      "resolved": "https://registry.npmmirror.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
      "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
      "dev": true
    },
    "fill-range": {
      "version": "7.1.1",
      "resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.1.1.tgz",
      "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
      "dev": true,
      "requires": {
        "to-regex-range": "^5.0.1"
      }
    },
    "fsevents": {
      "version": "2.3.3",
      "resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.3.tgz",
      "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
      "dev": true,
      "optional": true
    },
    "glob-parent": {
      "version": "5.1.2",
      "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz",
      "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
      "dev": true,
      "requires": {
        "is-glob": "^4.0.1"
      }
    },
    "glob-to-regexp": {
      "version": "0.4.1",
      "resolved": "https://registry.npmmirror.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz",
      "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==",
      "dev": true,
      "peer": true
    },
    "graceful-fs": {
      "version": "4.2.11",
      "resolved": "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.11.tgz",
      "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
      "dev": true,
      "peer": true
    },
    "has-flag": {
      "version": "4.0.0",
      "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz",
      "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
      "dev": true,
      "peer": true
    },
    "immutable": {
      "version": "4.3.6",
      "resolved": "https://registry.npmmirror.com/immutable/-/immutable-4.3.6.tgz",
      "integrity": "sha512-Ju0+lEMyzMVZarkTn/gqRpdqd5dOPaz1mCZ0SH3JV6iFw81PldE/PEB1hWVEA288HPt4WXW8O7AWxB10M+03QQ==",
      "dev": true
    },
    "is-binary-path": {
      "version": "2.1.0",
      "resolved": "https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz",
      "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
      "dev": true,
      "requires": {
        "binary-extensions": "^2.0.0"
      }
    },
    "is-extglob": {
      "version": "2.1.1",
      "resolved": "https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz",
      "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
      "dev": true
    },
    "is-glob": {
      "version": "4.0.3",
      "resolved": "https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz",
      "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
      "dev": true,
      "requires": {
        "is-extglob": "^2.1.1"
      }
    },
    "is-number": {
      "version": "7.0.0",
      "resolved": "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz",
      "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
      "dev": true
    },
    "jest-worker": {
      "version": "27.5.1",
      "resolved": "https://registry.npmmirror.com/jest-worker/-/jest-worker-27.5.1.tgz",
      "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==",
      "dev": true,
      "peer": true,
      "requires": {
        "@types/node": "*",
        "merge-stream": "^2.0.0",
        "supports-color": "^8.0.0"
      }
    },
    "json-parse-even-better-errors": {
      "version": "2.3.1",
      "resolved": "https://registry.npmmirror.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
      "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==",
      "dev": true,
      "peer": true
    },
    "json-schema-traverse": {
      "version": "0.4.1",
      "resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
      "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
      "dev": true
    },
    "json5": {
      "version": "2.2.3",
      "resolved": "https://registry.npmmirror.com/json5/-/json5-2.2.3.tgz",
      "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
      "dev": true
    },
    "klona": {
      "version": "2.0.6",
      "resolved": "https://registry.npmmirror.com/klona/-/klona-2.0.6.tgz",
      "integrity": "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==",
      "dev": true
    },
    "loader-runner": {
      "version": "4.3.0",
      "resolved": "https://registry.npmmirror.com/loader-runner/-/loader-runner-4.3.0.tgz",
      "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==",
      "dev": true,
      "peer": true
    },
    "loader-utils": {
      "version": "2.0.4",
      "resolved": "https://registry.npmmirror.com/loader-utils/-/loader-utils-2.0.4.tgz",
      "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==",
      "dev": true,
      "requires": {
        "big.js": "^5.2.2",
        "emojis-list": "^3.0.0",
        "json5": "^2.1.2"
      }
    },
    "merge-stream": {
      "version": "2.0.0",
      "resolved": "https://registry.npmmirror.com/merge-stream/-/merge-stream-2.0.0.tgz",
      "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
      "dev": true,
      "peer": true
    },
    "mime-db": {
      "version": "1.52.0",
      "resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz",
      "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
      "dev": true,
      "peer": true
    },
    "mime-types": {
      "version": "2.1.35",
      "resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz",
      "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
      "dev": true,
      "peer": true,
      "requires": {
        "mime-db": "1.52.0"
      }
    },
    "moment": {
      "version": "2.30.1",
      "resolved": "https://registry.npmmirror.com/moment/-/moment-2.30.1.tgz",
      "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how=="
    },
    "neo-async": {
      "version": "2.6.2",
      "resolved": "https://registry.npmmirror.com/neo-async/-/neo-async-2.6.2.tgz",
      "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==",
      "dev": true
    },
    "node-releases": {
      "version": "2.0.14",
      "resolved": "https://registry.npmmirror.com/node-releases/-/node-releases-2.0.14.tgz",
      "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==",
      "dev": true,
      "peer": true
    },
    "normalize-path": {
      "version": "3.0.0",
      "resolved": "https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz",
      "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
      "dev": true
    },
    "picocolors": {
      "version": "1.0.1",
      "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.0.1.tgz",
      "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==",
      "dev": true,
      "peer": true
    },
    "picomatch": {
      "version": "2.3.1",
      "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz",
      "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
      "dev": true
    },
    "punycode": {
      "version": "2.3.1",
      "resolved": "https://registry.npmmirror.com/punycode/-/punycode-2.3.1.tgz",
      "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
      "dev": true
    },
    "randombytes": {
      "version": "2.1.0",
      "resolved": "https://registry.npmmirror.com/randombytes/-/randombytes-2.1.0.tgz",
      "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
      "dev": true,
      "peer": true,
      "requires": {
        "safe-buffer": "^5.1.0"
      }
    },
    "readdirp": {
      "version": "3.6.0",
      "resolved": "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz",
      "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
      "dev": true,
      "requires": {
        "picomatch": "^2.2.1"
      }
    },
    "safe-buffer": {
      "version": "5.2.1",
      "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.2.1.tgz",
      "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
      "dev": true,
      "peer": true
    },
    "sass": {
      "version": "1.77.6",
      "resolved": "https://registry.npmmirror.com/sass/-/sass-1.77.6.tgz",
      "integrity": "sha512-ByXE1oLD79GVq9Ht1PeHWCPMPB8XHpBuz1r85oByKHjZY6qV6rWnQovQzXJXuQ/XyE1Oj3iPk3lo28uzaRA2/Q==",
      "dev": true,
      "requires": {
        "chokidar": ">=3.0.0 <4.0.0",
        "immutable": "^4.0.0",
        "source-map-js": ">=0.6.2 <2.0.0"
      }
    },
    "sass-loader": {
      "version": "10.5.2",
      "resolved": "https://registry.npmmirror.com/sass-loader/-/sass-loader-10.5.2.tgz",
      "integrity": "sha512-vMUoSNOUKJILHpcNCCyD23X34gve1TS7Rjd9uXHeKqhvBG39x6XbswFDtpbTElj6XdMFezoWhkh5vtKudf2cgQ==",
      "dev": true,
      "requires": {
        "klona": "^2.0.4",
        "loader-utils": "^2.0.0",
        "neo-async": "^2.6.2",
        "schema-utils": "^3.0.0",
        "semver": "^7.3.2"
      }
    },
    "schema-utils": {
      "version": "3.3.0",
      "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-3.3.0.tgz",
      "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==",
      "dev": true,
      "requires": {
        "@types/json-schema": "^7.0.8",
        "ajv": "^6.12.5",
        "ajv-keywords": "^3.5.2"
      }
    },
    "semver": {
      "version": "7.6.2",
      "resolved": "https://registry.npmmirror.com/semver/-/semver-7.6.2.tgz",
      "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==",
      "dev": true
    },
    "serialize-javascript": {
      "version": "6.0.2",
      "resolved": "https://registry.npmmirror.com/serialize-javascript/-/serialize-javascript-6.0.2.tgz",
      "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==",
      "dev": true,
      "peer": true,
      "requires": {
        "randombytes": "^2.1.0"
      }
    },
    "source-map": {
      "version": "0.6.1",
      "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz",
      "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
      "dev": true,
      "peer": true
    },
    "source-map-js": {
      "version": "1.2.0",
      "resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.2.0.tgz",
      "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==",
      "dev": true
    },
    "source-map-support": {
      "version": "0.5.21",
      "resolved": "https://registry.npmmirror.com/source-map-support/-/source-map-support-0.5.21.tgz",
      "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==",
      "dev": true,
      "peer": true,
      "requires": {
        "buffer-from": "^1.0.0",
        "source-map": "^0.6.0"
      }
    },
    "supports-color": {
      "version": "8.1.1",
      "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-8.1.1.tgz",
      "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
      "dev": true,
      "peer": true,
      "requires": {
        "has-flag": "^4.0.0"
      }
    },
    "tapable": {
      "version": "2.2.1",
      "resolved": "https://registry.npmmirror.com/tapable/-/tapable-2.2.1.tgz",
      "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==",
      "dev": true,
      "peer": true
    },
    "terser": {
      "version": "5.31.1",
      "resolved": "https://registry.npmmirror.com/terser/-/terser-5.31.1.tgz",
      "integrity": "sha512-37upzU1+viGvuFtBo9NPufCb9dwM0+l9hMxYyWfBA+fbwrPqNJAhbZ6W47bBFnZHKHTUBnMvi87434qq+qnxOg==",
      "dev": true,
      "peer": true,
      "requires": {
        "@jridgewell/source-map": "^0.3.3",
        "acorn": "^8.8.2",
        "commander": "^2.20.0",
        "source-map-support": "~0.5.20"
      }
    },
    "terser-webpack-plugin": {
      "version": "5.3.10",
      "resolved": "https://registry.npmmirror.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz",
      "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==",
      "dev": true,
      "peer": true,
      "requires": {
        "@jridgewell/trace-mapping": "^0.3.20",
        "jest-worker": "^27.4.5",
        "schema-utils": "^3.1.1",
        "serialize-javascript": "^6.0.1",
        "terser": "^5.26.0"
      }
    },
    "to-regex-range": {
      "version": "5.0.1",
      "resolved": "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz",
      "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
      "dev": true,
      "requires": {
        "is-number": "^7.0.0"
      }
    },
    "undici-types": {
      "version": "5.26.5",
      "resolved": "https://registry.npmmirror.com/undici-types/-/undici-types-5.26.5.tgz",
      "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==",
      "dev": true,
      "peer": true
    },
    "update-browserslist-db": {
      "version": "1.0.16",
      "resolved": "https://registry.npmmirror.com/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz",
      "integrity": "sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==",
      "dev": true,
      "peer": true,
      "requires": {
        "escalade": "^3.1.2",
        "picocolors": "^1.0.1"
      }
    },
    "uri-js": {
      "version": "4.4.1",
      "resolved": "https://registry.npmmirror.com/uri-js/-/uri-js-4.4.1.tgz",
      "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
      "dev": true,
      "requires": {
        "punycode": "^2.1.0"
      }
    },
    "uview-ui": {
      "version": "2.0.36",
      "resolved": "https://registry.npmmirror.com/uview-ui/-/uview-ui-2.0.36.tgz",
      "integrity": "sha512-ASSZT6M8w3GTO1eFPbsgEFV0U5UujK+8pTNr+MSUbRNcRMC1u63DDTLJVeArV91kWM0bfAexK3SK9pnTqF9TtA=="
    },
    "watchpack": {
      "version": "2.4.1",
      "resolved": "https://registry.npmmirror.com/watchpack/-/watchpack-2.4.1.tgz",
      "integrity": "sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==",
      "dev": true,
      "peer": true,
      "requires": {
        "glob-to-regexp": "^0.4.1",
        "graceful-fs": "^4.1.2"
      }
    },
    "webpack": {
      "version": "5.92.1",
      "resolved": "https://registry.npmmirror.com/webpack/-/webpack-5.92.1.tgz",
      "integrity": "sha512-JECQ7IwJb+7fgUFBlrJzbyu3GEuNBcdqr1LD7IbSzwkSmIevTm8PF+wej3Oxuz/JFBUZ6O1o43zsPkwm1C4TmA==",
      "dev": true,
      "peer": true,
      "requires": {
        "@types/eslint-scope": "^3.7.3",
        "@types/estree": "^1.0.5",
        "@webassemblyjs/ast": "^1.12.1",
        "@webassemblyjs/wasm-edit": "^1.12.1",
        "@webassemblyjs/wasm-parser": "^1.12.1",
        "acorn": "^8.7.1",
        "acorn-import-attributes": "^1.9.5",
        "browserslist": "^4.21.10",
        "chrome-trace-event": "^1.0.2",
        "enhanced-resolve": "^5.17.0",
        "es-module-lexer": "^1.2.1",
        "eslint-scope": "5.1.1",
        "events": "^3.2.0",
        "glob-to-regexp": "^0.4.1",
        "graceful-fs": "^4.2.11",
        "json-parse-even-better-errors": "^2.3.1",
        "loader-runner": "^4.2.0",
        "mime-types": "^2.1.27",
        "neo-async": "^2.6.2",
        "schema-utils": "^3.2.0",
        "tapable": "^2.1.1",
        "terser-webpack-plugin": "^5.3.10",
        "watchpack": "^2.4.1",
        "webpack-sources": "^3.2.3"
      }
    },
    "webpack-sources": {
      "version": "3.2.3",
      "resolved": "https://registry.npmmirror.com/webpack-sources/-/webpack-sources-3.2.3.tgz",
      "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==",
      "dev": true,
      "peer": true
    }
  }
}
package.json
@@ -1,5 +1,10 @@
{
  "dependencies": {
    "moment": "^2.30.1"
    "moment": "^2.30.1",
    "uview-ui": "^2.0.36"
  },
  "devDependencies": {
    "sass": "^1.77.6",
    "sass-loader": "^10.5.2"
  }
}
pages.json
@@ -1,4 +1,8 @@
{
    // 如果您是通过uni_modules形式引入uView,可以忽略此配置
    "easycom": {
        "^u-(.*)": "uview-ui/components/u-$1/u-$1.vue"
    },
    "pages": [{
            "path": "pages/login/farmer-login",
            "style": {
@@ -40,7 +44,7 @@
            "path": "pages/order/order",
            "style": {
                "navigationBarTitleText": "我的订单",
                "enablePullDownRefresh": false
                "enablePullDownRefresh": true
            }
        },
@@ -48,28 +52,28 @@
            "path": "pages/login/farmer-reg",
            "style": {
                "navigationBarTitleText": "申请入住",
                "enablePullDownRefresh": false
                "enablePullDownRefresh": true
            }
        },
        {
            "path": "pages/farmer/order-settlement/order-settlement",
            "style": {
                "navigationBarTitleText": "账单结算",
                "enablePullDownRefresh": false
                "enablePullDownRefresh": true
            }
        },
        {
            "path": "pages/farmer/flower-manage/flower-manage",
            "style": {
                "navigationBarTitleText": "商品管理",
                "enablePullDownRefresh": false
                "enablePullDownRefresh": true
            }
        },
        {
            "path": "pages/farmer/order-sale/order-sale",
            "style": {
                "navigationBarTitleText": "售后理赔",
                "enablePullDownRefresh": false
                "enablePullDownRefresh": true
            }
        },
        {
@@ -78,16 +82,31 @@
                "navigationBarTitleText": "扣款记录",
                "enablePullDownRefresh": false,
                "navigationBarBackgroundColor": "#E6F2EB"
            }
        },
        {
            "path" : "pages/farmer/flower-manage/flower-add",
            "path": "pages/farmer/flower-manage/flower-add",
            "style": {
                "navigationBarTitleText": "",
                "enablePullDownRefresh": false
            }
        },
        {
            "path" : "pages/notice/notice",
            "style" : 
            {
                "navigationBarTitleText" : "",
                "navigationBarTitleText" : "通知公告",
                "enablePullDownRefresh" : false
            }
        },
        {
            "path" : "pages/notice/list",
            "style" :
            {
                "navigationBarTitleText" : "通知公告",
                "enablePullDownRefresh" : true
            }
        }
    ],
    "globalStyle": {
pages/farmer/flower-manage/flower-add.vue
@@ -1,12 +1,10 @@
<template>
    <view class="container-page">
    <view class="container-page" style="padding: 0rpx;">
        <view>
            <view class="form-item">
                <view class="label required">商品分类</view>
                <view class="label required">商品分类todo</view>
                <view class="m-l-a m-r-0 flex " :class="[!dto.category?'desc-gray':'']" @click="()=>{
                    if(!id){
                        show_select_category=true
                    }
                    show_select_category=true
                }">
                    <view>{{dto.categoryStr||dto.category || '请选择'}}</view>
                    <u-icon class="m-l-a" name="arrow-right"></u-icon>
@@ -14,59 +12,75 @@
            </view>
            <view class="form-item before-line">
                <view class="label required">商品名称</view>
                <view class="m-l-a m-r-0 flex">
                    <input v-model="dto.name" placeholder="请输入商品名称" style="margin-top: 16px;text-align: right;"></input>
                </view>
            </view>
            <view class="form-item before-line">
                <view class="label required">商品单位</view>
                <view class="m-l-a m-r-0 flex">
                    <input v-model="dto.applicationTitle" placeholder="请输入店铺名称"
                        style="margin-top: 16px;text-align: right;"></input>
                    <input v-model="dto.unit" placeholder="请输入商品单位" style="margin-top: 16px;text-align: right;"></input>
                </view>
            </view>
            <view class="form-item before-line">
                <view class="label required">商品颜色</view>
                <view class="m-l-a m-r-0 flex " :class="[!dto.applicationType?'desc-gray':'']" @click="()=>{
                    if(!id){
                        show_select_type=true
                    }
                <!--     <view class="m-l-a m-r-0 flex " :class="[!dto.color?'desc-gray':'']" @click="()=>{
                    show_select_color=true
                }">
                    <view>{{dto.applicationTypeStr||dto.applicationType || '请选择'}}</view>
                    <u-icon class="m-l-a" name="arrow-right"></u-icon>
                </view> -->
                <view class="m-l-a m-r-0 flex">
                    <input v-model="dto.color" placeholder="请输入商品颜色"
                        style="margin-top: 16px;text-align: right;"></input>
                </view>
            </view>
            <view class="line-gray-big"></view>
            <view class="form-item">
                <view class="label required">列表封面图(130*120px)</view>
                <view class="label required" style="width: 400rpx;">列表封面图(130*120px)</view>
                <view class="m-l-a m-r-0 flex">
                    <view class="component-button-upload" @click="uploadIcon('icon')"
                        :style="{'background-image':dto.icon&&`url('${dto.icon}')`||''}">
                    <view class="component-button-upload" @click="uploadIcon('cover')"
                        :style="{'background-image':dto.icon&&`url('${dto.cover}')`||''}">
                    </view>
                </view>
            </view>
            <view class="form-item before-line">
                <view class="label required">商品轮播图(300*160px)</view>
            <view class="form-item before-line bottom-border-no">
                <view class="label required" style="width: 400rpx;">商品轮播图(300*160px)</view>
                <view class="m-l-a m-r-0 flex">
                    <view class="component-button-upload" @click="uploadIcon('icon')"
                        :style="{'background-image':dto.icon&&`url('${dto.icon}')`||''}">
                    <!-- :style="{'background-image':dto.icon&&`url('${dto.icon}')`||''}" -->
                    <view class="component-button-upload" @click="uploadIcon('bannerList')">
                    </view>
                </view>
            </view>
            <view class="flex p20" style="padding-top: 0rpx;padding-bottom: 10rpx"
                v-if="dto.bannerList&&dto.bannerList.length>0">
                <view class="m-t-12 m-r-10 " v-for="(tBanner,index) of dto.bannerList" :key="index">
                    <image class="banner-img" :src="tBanner" @click.stop="previewImg(tBanner)">
                    </image>
                    <view class="t-red text-center" @click.stop="deleteBanner(index)">删除</view>
                </view>
            </view>
            <view class="line-gray-big"></view>
            <view class="form-item before-line">
                <view class="label required">售价</view>
                <view class="label required">售价(元)</view>
                <view class="m-l-a m-r-0 flex">
                    <input v-model="dto.applicationTitle" placeholder="请输入数字" type="digit"
                    <input v-model="dto.price" placeholder="请输入数字" type="digit"
                        style="margin-top: 16px;text-align: right;"></input>
                </view>
            </view>
            <view class="form-item before-line">
            <view class="form-item ">
                <view class="label required">库存</view>
                <view class="m-l-a m-r-0 flex">
                    <input v-model="dto.applicationTitle" placeholder="请输入数字" type="number"
                    <input v-model="dto.stock" placeholder="请输入数字" type="number"
                        style="margin-top: 16px;text-align: right;"></input>
                </view>
            </view>
@@ -76,11 +90,18 @@
            <view class="form-item ">
                <view class="label required">商品参数详情</view>
                <view class="m-l-a m-r-0 flex " :class="[!dto.applicationType?'desc-gray':'']" @click="()=>{
                    if(!id){
                        show_select_type=true
                    if(!dto.category){
                        $message.showToast('请先选择分类')
                    }else{
                        if(dto.params&&dto.params.length==0){
                            $message.showToast('暂无参数可以设置')
                        }else{
                            $refs.popup_param.open()
                        }
                    }
                }">
                    <view>{{dto.applicationTypeStr||dto.applicationType || '去设置'}}</view>
                    <view>{{ '去设置'}}</view>
                    <u-icon class="m-l-a" name="arrow-right"></u-icon>
                </view>
@@ -88,12 +109,10 @@
            <view class="line-gray-big"></view>
            <view class="form-item before-line">
                <view class="label required">商品等级</view>
                <view class="m-l-a m-r-0 flex " :class="[!dto.applicationType?'desc-gray':'']" @click="()=>{
                    if(!id){
                        show_select_type=true
                    }
                <view class="m-l-a m-r-0 flex " :class="[!dto.level?'desc-gray':'']" @click="()=>{
                    show_select_level=true
                }">
                    <view>{{dto.applicationTypeStr||dto.applicationType || '请选择'}}</view>
                    <view>{{dto.levelStr||dto.level || '请选择'}}</view>
                    <u-icon class="m-l-a" name="arrow-right"></u-icon>
                </view>
@@ -103,16 +122,21 @@
            <view class="form-item before-line">
                <view class="label required">商品视频</view>
                <view class="m-l-a m-r-0 flex">
                    <view class="component-button-upload m-r-15" @click="uploadIcon('icon')"
                        :style="{'background-image':dto.icon&&`url('${dto.icon}')`||''}">
                    <!-- :style="{'background-image':dto.icon&&`url('${dto.icon}')`||''}" -->
                    <view class="component-button-upload m-r-15" @click="uploadIcon('video')">
                    </view>
                </view>
            </view>
            <view v-if="dto.video">
                <video :src="dto.video" style="display: block;margin: 0 auto;"></video>
            </view>
            <view class="button-green-1 m-t-20 button-fixed-bottom before-line" @click="submit" v-if="!dto.id">
            <view style="min-height: 200rpx;">
                &nbsp;
            </view>
            <view class="button-green-1 m-t-20 button-fixed-bottom " @click="submit" v-if="!dto.id">
                提交审核
            </view>
            <view class="button-green-1 m-t-20 button-fixed-bottom before-line" @click="submit" v-if="dto.id">
@@ -121,12 +145,33 @@
        </view>
        <u-picker @confirm="select_category" keyName="label" @cancel="show_select_category=false" :show="show_select_category"
            :columns="columns_types"></u-picker>
        <u-picker @confirm="select_category" keyName="name" @cancel="show_select_category=false"
            :show="show_select_category" :columns="columns_categorys"></u-picker>
        <u-picker @confirm="select_user" keyName="label" @cancel="show_select_user=false" :show="show_select_user"
            :columns="userListCols"></u-picker>
        <u-picker @confirm="select_level" keyName="label" @cancel="show_select_level=false" :show="show_select_level"
            :columns="columns_levels"></u-picker>
        <uni-popup ref="popup_param" type="top">
            <view class="component-popup_input" v-if="dto.params">
                <view class="text-center m-b-40" style="font-size: 48rpx;font-weight: 600;">商品参数设置</view>
                <!-- 输入框-->
                <view v-for="(item,i) in dto.params" :key="i" class="m-b-20">
                    <view class="title topic-font" style="font-size: 36rpx;font-weight: 600;">{{item.name}}</view>
                    <view class="m-t-12">
                        <u-radio-group v-model="item.value" placement="row">
                            <u-radio
                                :customStyle="{'margin-bottom': '16rpx','margin-right': '24rpx','font-size':'28rpx'}"
                                v-for="(each, j) in item.values" :key="j" :label="each" :name="each">
                            </u-radio>
                        </u-radio-group>
                    </view>
                </view>
                <!-- 提交按钮 -->
                <view class="button-green" @click="closeParamPop">返回</view>
            </view>
        </uni-popup>
    </view>
</template>
@@ -158,15 +203,18 @@
                    params: [], //id,value
                },
                show_select_category: false,
                show_select_user: false,
                show_select_level: false,
                columns_categorys: [],
                columns_levels:[],
                columns_levels: [],
                //     columns_params: [], //弹窗选择具体的值
            }
        },
        async onLoad(options) {
            if (options.id) {
                this.id = options.id
                uni.setNavigationBarTitle({
                    title: '商品详情'
                })
                this.getDetail()
            } else {
                if (options.copyId) {
@@ -174,25 +222,28 @@
                    await this.getDetail()
                    this.id = ''
                    delete this.dto.id
                    uni.setNavigationBarTitle({
                        title: '复制商品并新增'
                    })
                } else {
                    uni.setNavigationBarTitle({
                        title: '商品新增'
                    })
                }
                //tree
                this.$http.request('get', '/api/flower/category/tree', {
                    params: {
                        typeCode: 'FLOWER_LEVEL'
                    }
                }).then(res => {
                this.$http.request('get', '/api/flower/category/tree', {}).then(res => {
                    var data = res.data
                    this.columns_categorys = [data || []]
                    this.columns_categorys[0].unshift({
                        label: '全部',
                        value: '',
                        children:[]
                        children: []
                    })
                })
                this.$http.request('get', '/api/dict/value', {
                this.$http.request('get', '/api/code/value', {
                    params: {
                        typeCode: 'FLOWER_LEVEL'
                    }
@@ -210,17 +261,48 @@
        },
        methods: {
            select_category(e) {
                this.show_select_category = false
                this.dto.categoryStr = e.value[0].label
                this.dto.category = e.value[0].value
            closeParamPop() {
                this.$refs.popup_param.close()
            },
            select_user(e) {
                this.show_select_user = false
                this.dto.auditPersonStr = e.value[0].label
                this.dto.auditPersonId = e.value[0].value
            async select_category(e) {
                if (e.value[0].id !== this.dto.category) {
                    if (this.dto.category) {
                        await this.$message.confirm('修改分类将清空商品参数,确定修改吗')
                    }
                    console.log('select_category', e)
                    this.show_select_category = false
                    this.dto.categoryStr = e.value[0].name
                    this.dto.category = e.value[0].id
                    this.$message.showLoading()
                    await this.refresh_category()
                    this.$message.hideLoading()
                } else {
                }
            },
            async refresh_category() {
                // this.columns_params = []
                this.dto.params = []
                //获取分类参数
                if (this.dto.category) {
                    const res = await this.$http.request('get', '/api/supplier/flower/params', {
                        params: {
                            categoryId: this.dto.category
                        }
                    })
                    if (res.code == 0) {
                        // this.columns_params = res.data || []
                        this.dto.params = res.data || []
                    }
                }
            },
            select_level(e) {
                this.show_select_level = false
                this.dto.levelStr = e.value[0].label
                this.dto.level = e.value[0].value
            },
            async getDetail() {
@@ -238,7 +320,12 @@
                    //     this.dto.applicationDate = this.$util.toDate(new Date(this.dto.applicationDate))
                    // }
                    // // console.log('this.dto', this.dto)
                    if (!this.dto.bannerList) {
                        this.dto.bannerList = []
                    }
                    // if (this.dto.category) {
                    //     await this.refresh_category()
                    // }
                }
                this.$message.hideLoading()
@@ -279,34 +366,72 @@
                    this.backpage()
                }
            },
            async deleteBanner(index) {
                await this.$message.confirm('是否确认删除此图片')
                // this.dto.bannerList  =
                this.dto.bannerList.splice(index, 1)
            },
            uploadIcon(key) {
                console.log('that dto key', key)
                const that = this
                uni.chooseImage({
                    count: 1, // 最多可以选择的图片张数,默认9
                    sizeType: ['original', 'compressed'], //original 原图,compressed 压缩图,默认二者都有
                    sourceType: ['camera', 'album'], //album 从相册选图,camera 使用相机,默认二者都有。如需直接开相机或直接选相册,请只使用一个选项
                    success: function({
                        errMsg,
                        tempFiles
                    }) {
                        if (errMsg === 'chooseImage:ok') {
                            // console.log(tempFiles[0])
                            that.$message.showLoading()
                            that.$http.upload(tempFiles[0].path).then(async res => {
                                var pic = res.data && res.data.length > 0 && res.data[
                                        0]
                                    .url || ''
                                that.$message.hideLoading()
                                that.dto[key] = pic || ''
                                that.$forceUpdate()
                            }).catch(res => {
                                that.$message.hideLoading()
                if (key == 'video') {
                    uni.chooseVideo({
                        sourceType: ['camera', 'album'],
                        success: function(res) {
                            if (res.tempFilePath) {
                                console.log('res.tempFilePath', res.tempFilePath)
                                that.$message.showLoading()
                                that.$http.upload(res.tempFilePath).then(async res => {
                                    console.log('res1', res)
                                    var pic = res.data && res.data.length > 0 && res.data[
                                            0]
                                        .url || ''
                                    that.$message.hideLoading()
                                    that.dto[key] = pic || ''
                            })
                                    that.$forceUpdate()
                                    console.log('that dto', that.dto)
                                }).catch(res => {
                                    that.$message.hideLoading()
                                    console.error(res)
                                })
                            }
                        }
                    }
                })
                    });
                } else {
                    uni.chooseImage({
                        count: 1, // 最多可以选择的图片张数,默认9
                        sizeType: ['compressed'], //original 原图,compressed 压缩图,默认二者都有
                        sourceType: ['camera', 'album'], //album 从相册选图,camera 使用相机,默认二者都有。如需直接开相机或直接选相册,请只使用一个选项
                        success: function({
                            errMsg,
                            tempFiles
                        }) {
                            if (errMsg === 'chooseImage:ok') {
                                // console.log(tempFiles[0])
                                that.$message.showLoading()
                                that.$http.upload(tempFiles[0].path).then(async res => {
                                    console.log('res1', res)
                                    var pic = res.data && res.data.length > 0 && res.data[
                                            0]
                                        .url || ''
                                    that.$message.hideLoading()
                                    if (key == 'bannerList') {
                                        that.dto[key].push(pic)
                                    } else {
                                        that.dto[key] = pic || ''
                                    }
                                    that.$forceUpdate()
                                }).catch(res => {
                                    that.$message.hideLoading()
                                    console.error(res)
                                })
                            }
                        }
                    })
                }
            },
        },
@@ -320,10 +445,18 @@
</script>
<style lang="scss" scoped>
    .banner-img {
        width: 96rpx;
        height: 96rpx;
        border-radius: 4rpx;
        border: 2rpx dashed #CECECE;
    }
    .form-item {
        // padding: 40rpx;
        border-bottom: 1px solid #F3F3F3;
        display: flex;
        padding: 20rpx;
        // height: 100px;
        .label {
@@ -343,6 +476,7 @@
        }
    }
    .form-item.bottom-border-no {
pages/farmer/flower-manage/flower-manage.vue
@@ -4,7 +4,7 @@
            <view @click.stop="clickButton('add')" class="button button-add"></view>
            <view @click.stop="clickButton('in')" class="button button-search-in"></view>
            <view @click.stop="clickButton('unpass')" class="button button-search-unpass"></view>
            <view @click.stop="clickButton('inpass')" class="button button-search-inpass"></view>
            <view @click.stop="clickButton('inpass')" class="button button-search-inpass" style="flex:5"></view>
            <view @click.stop="clickButton('delete')" class="button button-search-delete"></view>
        </view>
@@ -14,38 +14,43 @@
            <view v-for="(item,index) in list" :key="index" class="m-b-24 flow-manage-list">
                <view class="flow-manage-list-item">
                    <view class="flex">
                        <image class="flower-img img100 m-r-6" :src="item.img" @click="previewImg(item.img)"></image>
                        <view>
                            <view class="flex">
                                <view class="title">{{item.title}}<span class="level">A级别</span></view>
                                <view class="t-red m-l-a m-r-0">
                                    ¥20.00/扎
                        <image class="flower-img img100 m-r-6" :src="item.cover" @click="previewImg(item.cover)">
                        </image>
                        <view class="flex1">
                            <view class=" flex">
                                <view class="title">{{item.name}}<span class="level">{{item.levelStr}}</span></view>
                                <view class="m-l-a m-r-0">
                                    {{item.categoryStr || '-'}}
                                </view>
                            </view>
                            <view class="each-list">
                            <view class="each-list m-t-12">
                                <view class="each-item">
                                    <view class="label">分类</view>
                                    <view class="value">卡罗拉</view>
                                    <view class="label">状态</view>
                                    <view class="value">{{item.statusStr || '-'}}</view>
                                </view>
                                <view class="each-item">
                                    <view class="label">颜色</view>
                                    <view class="value">红色</view>
                                    <view class="value">{{item.color || '-'}}</view>
                                </view>
                                <view class="each-item">
                                    <view class="label">规格</view>
                                    <view class="value">20支/扎</view>
                                    <view class="value">{{item.unit || '-'}}</view>
                                </view>
                                <view class="each-item">
                                    <view class="label">库存</view>
                                    <view class="value">10</view>
                                    <view class="value">{{item.stock || 0}}</view>
                                </view>
                                <view class="each-item">
                                    <view class="label">销量</view>
                                    <view class="value">10</view>
                                    <view class="value">{{item.sales || 0}}</view>
                                </view>
                                <view class="each-item">
                                    <view class="label">价格</view>
                                    <view class="value">{{item.price||'-'}}</view>
                                </view>
                            </view>
                        </view>
@@ -54,13 +59,16 @@
                    </view>
                    <view class="buttons">
                        <view class="button" @click.stop="toDetailAdd(item)">复制</view>
                        <view class="button" @click.stop="buttonDelete(item)">删除</view>
                        <view class="button" @click.stop="toDetail(item)">编辑</view>
                        <view class="button" @click.stop="buttonStatus(item,'off')" v-if="item.status=='UP'">下架</view>
                        <view class="button" @click.stop="buttonStatus(item,'up')" v-if="item.status=='OFF'">上架</view>
                        <view class="button" @click.stop="toDetail(item)">编辑</view>
                        <view class="button" @click.stop="changeValue(item,'price')">价格</view>
                        <view class="button" @click.stop="changeValue(item,'stock')">库存</view>
                        <view class="button" @click.stop="openValue(item,'price')">价格</view>
                        <view class="button" @click.stop="openValue(item,'stock')">库存</view>
                        <view class="button" @click.stop="toDetailAdd(item)">复制</view>
                        <view class="button t-red" @click.stop="buttonDelete(item)">删除</view>
                    </view>
                </view>
            </view>
@@ -68,6 +76,18 @@
        <!-- 判断是否到底了,自动吧 -->
        <footer-msg :more="page.total>0&&page.total>page.current*page.size"></footer-msg>
        <uni-popup ref="popup_input" type="bottom">
            <view class="component-popup_input">
                <!-- 输入框-->
                <uni-easyinput class="p9-12" maxlength="100" type="textarea" v-model="content"
                    :placeholder="inputplaceholder"></uni-easyinput>
                <!-- 提交按钮 -->
                <view class="button-green" @click="submitValue">提交</view>
            </view>
        </uni-popup>
    </view>
</template>
@@ -78,7 +98,11 @@
                type: 'all',
                query: {
                    type: ''
                }
                },
                content: '',
                currentInputDto: {},
                currentInputKey: '',
                inputplaceholder:'',
            }
        },
        onLoad(options) {
@@ -112,21 +136,31 @@
            uni.stopPullDownRefresh()
        },
        methods: {
            async changeValue(item, key) {
            async openValue(item, key) {
                this.content = item[key] || ''
                this.currentInputDto = item
                this.currentInputKey = key
                this.inputplaceholder = key=='price'&&'请输入价格(元)' || key=='stock'&&'请输入库存(整数)'  || '请输入'
                this.$refs.popup_input.open('top')
            },
            async submitValue() {
                let item = this.currentInputDto,
                    key = this.currentInputKey
                const res = await this.$message.confirm(`确定修改此商品的${key==='price'&&'价格'|| key==='stock'&&'库存'}吗`, {
                    editable: true
                    editable: false
                })
                if(!res.content){
                if (!this.content) {
                    this.$message.showToast('输入不能为空')
                    return
                }
                var value = ''
                if(key=='price'){
                    value = parseFloat(res.content).toFixed(2)
                }else{
                    value = parseInt(res.content)
                if (key == 'price') {
                    value = parseFloat(this.content).toFixed(2)
                } else {
                    value = parseInt(this.content)
                }
                if(isNaN(value)){
                if (isNaN(value)) {
                    this.$message.showToast('输入格式不正确')
                    return
                }
@@ -143,6 +177,8 @@
                    if (res.code == 0) {
                        this.$message.showToast('操作成功')
                        item[key] = value
                        this.$refs.popup_input.close()
                    }
                }).finally(() => {
                    this.$message.hideLoading()
@@ -210,11 +246,28 @@
<style lang="scss" scoped>
    .flow-manage {
        .flow-manage-list {
            margin: 20rpx 30rpx;
            // padding: 20rpx 30rpx;
            padding: 22rpx;
            background-color: #fff;
            .flow-manage-item {
            .flow-manage-list-item {
                margin-bottom: 20rpx;
                .title {
                    font-weight: 600;
                    font-size: 28rpx;
                    color: #000000;
                    line-height: 40rpx;
                    .level {
                        font-weight: 400;
                        font-size: 28rpx;
                        color: #20613D;
                        line-height: 40rpx;
                        margin-left: 20rpx;
                    }
                }
                .buttons {
                    display: flex;
@@ -222,16 +275,18 @@
                    .button {
                        margin: 0 auto;
                        width: 98rpx;
                        height: 48rpx;
                        line-height: 48rpx;
                        border-radius: 24rpx;
                        border: 2rpx solid #CECECE;
                        text-align: center;
                    }
                }
                .flower-img {
                    width: 128rpx;
                    height: 118rpx;
                    min-width: 128rpx;
                    min-height: 118rpx;
                }
                .each-list {
@@ -242,11 +297,16 @@
                        min-width: 30%;
                        max-width: 40%;
                        text-align: center;
                        margin-left: 0rpx;
                        margin-right: auto;
                        display: flex;
                        .label {
                            font-weight: 400;
                            font-size: 24rpx;
                            color: #666666;
                            text-align: left;
                            padding-right: 10rpx;
                        }
                        .label::after {
@@ -261,16 +321,29 @@
        .top-buttons {
            display: flex;
            margin: 22rpx 42rpx;
            padding: 22rpx 42rpx;
            background-color: #fff;
            .button {
                // flex:1;
                margin: 0 auto;
                width: 96rpx;
                height: 130rpx;
                width: 90rpx;
                height: 146rpx;
                background-size: 100% 100%;
                text-align: center;
                // min-width: 90rpx;
                flex: 4;
                // max-width: 90rpx;
                margin-left:14rpx;
                margin-right:14rpx;
            }
            .button:first-child {
                margin-left: 0rpx
            }
            .button:last-child {
                margin-right: 0rpx
            }
            .button-add {
                background-image: url('@/static/images/farmer/flower/flower-mange-icon-add-flower.png');
pages/farmer/order-settlement/order-settlement.vue
@@ -90,8 +90,9 @@
        methods: {
            changeIndex(index) {
                if (this.tabIndex !== index) {
                    this.changeIndex = index
                    this.tabIndex = index
                    // 刷新 query
                    this.refreshList()
                }
            },
            toDetail(item) {
pages/home/farmer-home.vue
@@ -5,27 +5,22 @@
        </view> -->
        <!-- 背景图 -->
        <view class="top-bg" :style="{'padding-top':(StatusBar)+'px','line-height':CustomBar+'rpx' }">
            <view class="title" style="position: relative;"  >
                我<uni-icons type="settings"></uni-icons>
            <view class="title" style="position: relative;">
                首页
            </view>
            <view class="icons">
                <image class="icon1" src="../../static/imgs/user/usr-icon1.png" mode="aspectFit"></image>
                <image class="icon2" src="../../static/imgs/home/home-shop-top-icon.png" mode="aspectFit"></image>
            </view>
            <view class="flex m-20 user-info" @click="goto('/pages/user/user-info/user-info',true)"
                v-if="currentInfo&&(currentInfo.id)">
            <view class="flex m-t-20 user-info" v-if="currentInfo&&(currentInfo.id)">
                <!-- 头像 -->
                <image class="user-icon" v-if="!currentInfo.picture" src="../../static/imgs/home/home-shop-top-icon.png"
                    mode="aspectFit"></image>
                <image class="user-icon" v-if="currentInfo.picture" :src="currentInfo.picture" mode="aspectFit"></image>
                <view class="name">
                    {{currentInfo.nickName || '-'}}
                <view class="name" style="margin-top: 12rpx;">
                    <view class="t1">{{currentInfo.nickName || '-'}}</view>
                    <view class="t2 m-t-12">{{currentInfo.tel || '暂无电话'}}</view>
                </view>
                <uni-icons class="right-icon" type="right"></uni-icons>
            </view>
        </view>
        <view class="item-container">
@@ -84,54 +79,53 @@
                </view>
            </view>
        </view>
        <view class="item-container">
            <view class="view">
        <view class="item-container flex m-t-20" style="padding: 34rpx 44rpx;">
            <view class="rate-view flex1" style="max-width: 140rpx;">
                <view class="title">售后率</view>
                <view class="title" style="color: red;">0.02%</view>
            </view>
            <view class="tj-panel green">
            <view class="tj-panel green flex1">
                <view class="name">今日待配送</view>
                <view class="title">12扎</view>
            </view>
            <view class="tj-panel pink">
                <view class="name">今日配送汇总</view>
            <view class="tj-panel pink flex1">
                <view class="name pink">今日配送汇总</view>
                <view class="title">12扎</view>
            </view>
        </view>
        <view class="p10">
            <uni-notice-bar @click="getNoticeMore" class="notice-bar"
                color="#333" background-color="#fff" show-get-more show-icon :scrollable="scrollable"
                :text="currentNotice.title" :key="currentNotice.id" />
        <view class="m-t-12" @click="getNoticeMore" >
            <uni-notice-bar class="notice-bar" color="#333" background-color="#fff" show-get-more
                show-icon :scrollable="scrollable" :text="currentNotice.title" :key="currentNotice.id" />
            <span v-if="!currentNotice||!currentNotice.id">&nbsp;</span>
        </view>
        <view class="item-container">
            <view class="title">常用功能</view>
            <view class="flex order-icons m-t-12">
                <view class="nav row margin-tb" @click="goto('/pages/farmer/order-settlement',true)">
                <view class="nav row margin-tb" @click="goto('/pages/farmer/order-settlement/order-settlement',true)">
                    <view class="img-c">
                        <image class="icon margin-bottom order-icon zdjs" src="/static/images/farmer/user/user-icon-kkjl.png"
                            mode="scaleToFill" />
                        <image class="icon margin-bottom order-icon zdjs"
                            src="/static/images/farmer/user/user-icon-kkjl.png" mode="scaleToFill" />
                    </view>
                    <view class="order-desc tg">账单结算</view>
                </view>
                <view class="nav row margin-tb" @click="goto('/pages/farmer/flower-manage',true)">
                <view class="nav row margin-tb" @click="goto('/pages/farmer/flower-manage/flower-manage',true)">
                    <view class="img-c">
                        <image class="icon margin-bottom order-icon spgl" src="/static/images/farmer/user/user-icon-spgl.png"
                            mode="scaleToFill" />
                        <image class="icon margin-bottom order-icon spgl"
                            src="/static/images/farmer/user/user-icon-spgl.png" mode="scaleToFill" />
                    </view>
                    <view class="order-desc cqw">商品管理</view>
                </view>
                <view class="nav row margin-tb" @click="goto('/pages/farmer/order-sale',true)">
                <view class="nav row margin-tb" @click="goto('/pages/farmer/order-sale/order-sale',true)">
                    <view class="img-c">
                        <image class="icon margin-bottom order-icon shlp" src="/static/images/farmer/user/user-icon-shlp.png"
                            mode="scaleToFill" />
                        <image class="icon margin-bottom order-icon shlp"
                            src="/static/images/farmer/user/user-icon-shlp.png" mode="scaleToFill" />
                    </view>
                    <view class="order-desc syst">售后理赔</view>
                </view>
                <view class="nav row margin-tb" @click="goto('/pages/farmer/order-records',true)">
                <view class="nav row margin-tb" @click="goto('/pages/farmer/order-records/order-records',true)">
                    <view class="img-c">
                        <image class="icon margin-bottom order-icon kkjl" src="/static/images/farmer/user/user-icon-kkjl.png"
                            mode="scaleToFill" />
                        <image class="icon margin-bottom order-icon kkjl"
                            src="/static/images/farmer/user/user-icon-kkjl.png" mode="scaleToFill" />
                    </view>
                    <view class="order-desc wbsp">扣款记录</view>
                </view>
@@ -142,7 +136,7 @@
        </view>
        <farmer-footer flg="0"></farmer-footer>
    </view>
</template>
@@ -155,25 +149,25 @@
                tcode: '',
                inviterName: '',
                // StatusBar:0,
                //公告的
                noticeList: [],
                currentNoticeIndex: 0,
                currentNotice: {
                },
                scrollable: false,
            };
        },
        onLoad(options) {
            const url = options.q ? decodeURIComponent(options.q) : '';
            const urlcode = options.url&&decodeURIComponent(options.url) || ''
            const urlcode = options.url && decodeURIComponent(options.url) || ''
        },
        created() {
            //公告
            this.$http.request('get', '/api/ua/announcement/list', {
            this.$http.request('get', '/api/announcement/page', {
                params: {
                    size: 5,
                    status: 'A'
@@ -221,14 +215,16 @@
                })
            },
        }
    }
</script>
<style lang="scss" scoped>
    @import "../user/user.scss";
    @import "./home.scss";
</style>
pages/home/home.scss
@@ -1,6 +1,13 @@
.main-container.home{
    background-image: url('../../static/images/farmer/home/bg.png');
.main-container{
    // background-image: url('../../static/images/farmer/home/bg.png');
    background: #E1F0E7;
    .top-bg{
        background-image: unset;
        max-height: unset;
        height: unset;
        background-color: unset;
    }
    
    .home-banner-image{
        width: 750rpx;
@@ -78,11 +85,12 @@
.main-container.farmer.home{
    background-image: url('../../static/images/farmer/home/bg.png');
    // background-image: url('../../static/images/farmer/home/bg.png');
    min-height: 99vh;
    padding: 30rpx;
    .item-container{
        padding: 22rpx 28rpx;
        background-color: #fff;
        .title{
            font-weight: 600;
            font-size: 32rpx;
@@ -99,6 +107,8 @@
            .tj-each{
                flex:1;
                text-align: center;
                margin-top: 20rpx;
                margin-bottom: 20rpx;
                .num{
                    font-weight: 400;
                    font-size: 32rpx;
@@ -110,100 +120,125 @@
                    font-size: 24rpx;
                    color: #000000;
                    line-height: 34rpx;
                    margin-top: 12rpx;
                }
            }
            .tj-panel{
                border-radius: 6rpx;
                .name{
                    font-weight: 400;
                    font-size: 24rpx;
                    color: #000000;
                    line-height: 34rpx;
                }
                .name::after{
                  width: 0;
                  height: 0;
                  border-top: 0px solid transparent;
                  border-right: 12rpx solid transparent;
                  border-left: 18rpx solid var(--topicdarkgray);
                  border-bottom: 12rpx solid transparent;
                }
                .num{
                    font-weight: 400;
                    font-size: 32rpx;
                    color: #20613D;
                    line-height: 44rpx;
                }
            }
            .tj-panel.pink{
                background: #E7F6EB;
            }
            .tj-panel.green{
                background: #FDF4E5;
            }
            
            
            .order-icon{
                width: 80rpx;
                height: 80rpx;
                margin: 0 auto;
                display: block;
        }
        .rate-view{
            padding-top: 16rpx;
        }
        .tj-panel{
            border-radius: 6rpx;
            max-width: 234rpx;
            text-align: center;
            margin-left: 20rpx;
            padding-top: 16rpx;
            height: 102rpx;
            .name{
                position: relative;
                font-weight: 400;
                font-size: 24rpx;
                color: #000000;
                line-height: 34rpx;
            }
            .name::after{
                  content: '';
                  position: absolute;
                  top: 50%; /* 将三角形垂直居中 */
                  left: 180rpx;
                  transform: translateY(-50%) rotate(0deg); /* 旋转90度使三角形指向右,并垂直居中 */
                  border-top: 12rpx solid transparent;
                  border-left: 12rpx solid #20613D;
                  border-bottom: 12rpx solid transparent;
            }
            .name.pink::after{
                  content: '';
                  position: absolute;
                  top: 50%; /* 将三角形垂直居中 */
                  transform: translateY(-50%) rotate(0deg); /* 旋转90度使三角形指向右,并垂直居中 */
                  border-top: 12rpx solid transparent;
                  border-left: 12rpx solid #936E32;
                  border-bottom: 12rpx solid transparent;
            }
            .num{
                font-weight: 400;
                font-size: 32rpx;
                color: #20613D;
                line-height: 44rpx;
            }
            .title{
                margin-top: 12rpx;
                
            .order-icons{
                margin-top: 40rpx;
                .nav{
                    flex: 1;
                }
                .margin-tb{
                    // margin-top: 24rpx;
                }
                .order-desc{
                    font-size: 28rpx;
                    color: #000000;
                    text-align: center;
                }
                .img-c{
                    // min-height: 68rpx;
                    // width: fit-content;
                    // margin: 0 auto;
                }
                .order-icon{
                    background-size: 100% 100%;
                    // display: inline-block;
                    // margin-left: auto;
                    // margin-right: auto;
                }
                .order-icon.zdjs{
                    margin-top: -8rpx;
                width: 32rpx;
                height: 42rpx;
                }
                .order-icon.spgl{
                    margin-top: -8rpx;
                    width: 48rpx;
                    height: 48rpx;
                }
                .order-icon.cqw{
                    // margin-top: 16rpx;
                    margin-top: -2rpx;
                    width: 54rpx;
                    height: 58rpx;
                }
                .order-icon.syst{
                    // margin-top: 12rpx;
                    // margin-top: 0rpx;
                    width: 58rpx;
                    height: 58rpx;
                }
                .order-icon.wbsp{
                    margin-top: -10rpx;
                    width: 52rpx;
                    height: 52rpx;
                }
            }
            
        }
        .tj-panel.pink{
            background: #E7F6EB;
        }
        .tj-panel.green{
            background: #FDF4E5;
        }
    }
    .order-icon{
        width: 80rpx;
        height: 80rpx;
        margin: 0 auto;
        display: block;
    }
    .order-icons{
        margin-top: 40rpx;
        .nav{
            flex: 1;
        }
        .margin-tb{
            // margin-top: 24rpx;
        }
        .order-desc{
            font-size: 28rpx;
            color: #000000;
            text-align: center;
            margin-top: 12rpx;
        }
        .img-c{
            // min-height: 68rpx;
            // width: fit-content;
            // margin: 0 auto;
        }
        .order-icon{
            background-size: 100% 100%;
            // display: inline-block;
            // margin-left: auto;
            // margin-right: auto;
        }
        .order-icon.zdjs{
            // margin-top: -8rpx;
            width: 54rpx;
            height: 58rpx;
        }
        .order-icon.spgl{
            margin-top: 6rpx;
            width: 52rpx;
            height: 52rpx;
        }
        .order-icon.shlp{
            // margin-top: 16rpx;
            margin-top: -4rpx;
            width: 54rpx;
            height: 58rpx;
        }
        .order-icon.kkjl{
            // margin-top: 12rpx;
            // margin-top: 0rpx;
            margin-top: -6rpx;
            width: 58rpx;
            height: 58rpx;
        }
    }
}
pages/login/farmer-login.vue
@@ -32,8 +32,8 @@
                    <button @tap="login()" class="bottom-button">登 录</button>
                    <view class="flex">
                        <view class="topic-font" @click="loginType='code'">手机验证码登录</view>
                        <view class="topic-font" @click="loginType='pwd'">账号密码登录</view>
                        <view class="topic-font" v-if="loginType=='pwd'" @click="loginType='code'">手机验证码登录</view>
                        <view class="topic-font" v-if="loginType=='code'" @click="loginType='pwd'">账号密码登录</view>
                        
                        <view class="topic-font m-l-a m-r-0" @click="toReg">前往注册</view>
                    </view>
@@ -50,12 +50,14 @@
        data() {
            return {
                openId: '-1',
                // userName: '12345678',
                // password: '12345678',
                userName: '',
                userName: 'gzm',
                password: '123456',
                // userName: '',
                // password: '',
                phoneNumber: '',
                smsCode:'',
                password: '',
                checked: false,
                loginType: 'pwd', //pwd和code,密码和验证码登录
                pcfvalue: undefined,
@@ -154,7 +156,7 @@
                // const {
                // code
                // } = await this.$http.request('get', '/api/login/admin')
                const resp = await this.$store.dispatch('loginShop', post);
                const resp = await this.$store.dispatch('loginSupplier', post);
                // uni.hideLoading()
                if (resp.code == 0) {
@@ -258,6 +260,11 @@
    .t-login .t-a {
        position: relative;
        .get-code{
            position: absolute;
            right: 40rpx;
            top: 20rpx;
        }
    }
    .t-login .t-a .icon {
pages/login/farmer-reg.vue
@@ -22,8 +22,8 @@
                </view>
            </view>
            <view class="form-item before-line">
                <view class="label required">店铺头像(750*750px)</view>
                <view class="m-l-a m-r-0 flex">
                <view class="label required" style="width: 300rpx;">店铺头像(750*750px)</view>
                <view class="m-l-a m-r-0 flex m-t-20 m-b-20">
                    <view class="component-button-upload" @click="uploadIcon('icon')"
                        :style="{'background-image':dto.icon&&`url('${dto.icon}')`||''}">
@@ -83,19 +83,19 @@
            </view>
            <view class="flex">
                <u--textarea v-model="dto.ps" placeholder="请输入店铺简介"></u--textarea>
            </view>
            <view class="form-item before-line">
            <view class="form-item before-line m-t-20">
                <view class="label required">选择审核方式</view>
                <view class="m-l-a m-r-0 flex">
                    <u-radio-group v-model="dto.idcardType" placement="row">
                        <u-radio :customStyle="{marginBottom: '8px'}" v-for="(item, index) in shTypeList" :key="index"
                        <u-radio :customStyle="{'margin-bottom': '8px','margin-right': '8px','font-size':'28rpx'}" v-for="(item, index) in shTypeList" :key="index"
                            :label="item.name" :name="item.name">
                        </u-radio>
                    </u-radio-group>
                </view>
            </view>
            <view class="form-item before-line" v-if="dto.idcardType=='身份证'">
            <view class="form-item before-line m-t-20 p-b-20" v-if="dto.idcardType=='身份证'">
                <view class="label required">身份证正反面</view>
                <view class="m-l-a m-r-0 flex">
                    <view class="component-button-upload m-r-15" @click="uploadIcon('icon')"
@@ -108,7 +108,7 @@
                    </view>
                </view>
            </view>
            <view class="form-item before-line" v-if="dto.idcardType=='营业执照'">
            <view class="form-item before-line m-t-20 p-b-20" v-if="dto.idcardType=='营业执照'">
                <view class="label required">营业执照</view>
                <view class="m-l-a m-r-0 flex">
                    <view class="component-button-upload m-r-15" @click="uploadIcon('icon')"
@@ -122,7 +122,7 @@
            <view class="button-green-1 m-t-20 button-fixed-bottom before-line" @click="submit">
            <view class="button-green-1 m-t-20 button-fixed-bottom before-line " @click="submit">
                提交审核
            </view>
@@ -141,7 +141,6 @@
<script>
    import environments from '@/environments'
    import xflSelect from '@/components/xfl-select/xfl-select.vue'; //导入
    import {
        mapState
@@ -214,7 +213,7 @@
                // })
                this.$http.request('get', '/api/dict/value', {
                this.$http.request('get', '/api/code/value', {
                    params: {
                        typeCode: 'APPLICATION_TYPE'
                    }
@@ -359,7 +358,6 @@
            ...mapState(['currentInfo'])
        },
        components: {
            xflSelect
        }
    }
</script>
@@ -367,7 +365,7 @@
<style lang="scss" scoped>
    .form-item {
        // padding: 40rpx;
        border-bottom: 1px solid #F3F3F3;
        border-bottom: 2rpx solid #F3F3F3;
        display: flex;
        // height: 100px;
pages/notice/list.vue
@@ -1,7 +1,7 @@
<template>
    <!-- 列表页面 -->
    <view>
        <view class="p15"  style="min-height: calc(100vh - 160rpx);">
        <view class="p15"  style="min-height: calc(100vh - 260rpx);">
            <no-data  v-if="!list||list.length==0" style="width: 100%;"></no-data>
            <view v-for="(item,index) in list" :key="index" class="m-b-24">
                <view @click.stop="toDetail(item)" class="notice-item">
@@ -25,7 +25,7 @@
        },
        onLoad() {
            // this.list = [{},{}]
            this.listApi = '/api/ua/announcement/list'
            this.listApi = '/api/announcement/page'
            this.getList()
        },
pages/notice/notice.vue
@@ -45,7 +45,7 @@
                this.$message.showLoading()
                const {
                    data
                } = await this.$http.request('get', '/api/ua/announcement/get/' + this.id, {
                } = await this.$http.request('get', '/api/announcement/page/view?id=' + this.id, {
                })
pages/user/bussincess-user.vue
@@ -34,35 +34,6 @@
            </view>
            <!-- 其他 -->
            <view class="user-utils m-20" v-if="false">
                <view class="flex user-util">
                    <view class="m-r-2">
                        <uni-icons type="location-filled"></uni-icons>
                    </view>
                    <view class="name">
                        我送达的todo?
                    </view>
                    <view class="right-icon">
                        <uni-icons type="right"></uni-icons>
                    </view>
                </view>
                <!-- @click="goto('/pages/user/other/contact',true)" -->
                <view class="flex user-util">
                    <view class="m-r-2">
                        <uni-icons type="location-filled"></uni-icons>
                    </view>
                    <view class="name">
                        我核销的todo?
                    </view>
                    <view class="right-icon">
                        <uni-icons type="right"></uni-icons>
                    </view>
                </view>
            </view>
        </view>
pages/user/farmer-user.vue
@@ -4,33 +4,28 @@
            我的
        </view> -->
        <!-- 背景图 -->
        <view class="top-bg" :style="{'padding-top':(StatusBar)+'px','line-height':CustomBar+'rpx' }">
            <view class="title" style="position: relative;"  >
                我<uni-icons type="settings"></uni-icons>
        <view class="top-bg img100" :style="{'padding-top':(StatusBar)+'px','line-height':CustomBar+'rpx' }">
            <view class="title" style="position: relative;">
                我的
            </view>
            <view class="icons">
                <image class="icon1" src="../../static/imgs/user/usr-icon1.png" mode="aspectFit"></image>
                <image class="icon2" src="../../static/imgs/home/home-shop-top-icon.png" mode="aspectFit"></image>
            </view>
            <view class="flex m-20 user-info" @click="goto('/pages/user/user-info/user-info',true)"
                v-if="currentInfo&&(currentInfo.id)">
            <view class="flex m-t-20 user-info" v-if="currentInfo&&(currentInfo.id)">
                <!-- 头像 -->
                <image class="user-icon" v-if="!currentInfo.picture" src="../../static/imgs/home/home-shop-top-icon.png"
                    mode="aspectFit"></image>
                <image class="user-icon" v-if="currentInfo.picture" :src="currentInfo.picture" mode="aspectFit"></image>
                <view class="name">
                    {{currentInfo.nickName || '-'}}
                <view class="name" style="margin-top: 12rpx;">
                    <view class="t1">{{currentInfo.nickName || '-'}}</view>
                    <view class="t2 m-t-12">{{currentInfo.tel || '暂无电话'}}</view>
                </view>
                <uni-icons class="right-icon" type="right"></uni-icons>
            </view>
        </view>
        <view class="user-utils m-20">
            <view class="user-util">
                <view>我的客服</view>
                <view class="title">我的客服</view>
                <view class="flex">
                    <image class="icon-clock m-r-6 m-t-2" src="../../static/common/icon-call.png"></image>
                    <view class="name">
@@ -41,7 +36,7 @@
        </view>
        <view class="button-login-ou topic-gray" @click="clearlogout">
        <view class="button-login-out topic-gray" @click="clearlogout">
            退出登录
        </view>
pages/user/user.scss
@@ -1,20 +1,35 @@
.user-container{
.main-container{
    
    .right-icon{
        margin-left: auto;
        margin-right: 0rpx;
    }
    .top-bg{
        // background: linear-gradient( 180deg, #BBE9E6 0%, rgba(245,245,245,0) 100%, rgba(245,245,245,0) 100%);
        background-image: url('../../static/images/farmer/home/bg.png');
        width: 750rpx;
        padding: 32rpx;
        background-image: url('../../static/images/farmer/user/bg.png');
        height: 438rpx;
        max-height: 438rpx;
        .user-icon{
            width: 116rpx;
            height: 116rpx;
            margin-right: 30rpx;
            border-radius: 50%;
        }
        .title{
            text-align: center;
            font-weight: 600;
            font-size: 32rpx;
        }
        .name{
            .t1{
                font-size: 36rpx;
                font-weight: 600;
            }
            .t2{
                font-size: 28rpx;;
            }
        }
        .icons{
            width: fit-content;
@@ -38,11 +53,12 @@
            }
        }
    }
    .user-info{
        padding: 28rpx 24rpx;
        background: #FFFFFF;
        // background: #FFFFFF;
        border-radius: 16rpx;
        line-height:  116rpx;
        // line-height:  116rpx;
        .name{
            font-weight: 600;
            font-size: 32rpx;
@@ -131,6 +147,11 @@
    .button-login-out{
        width: 690rpx;
        height: 86rpx;
        margin: 0 auto;
        position: fixed;
        bottom: 220rpx;
        left: 0;
        right: 0;
        background: #FFFFFF;
        border-radius: 8rpx;
        text-align: center;
@@ -140,10 +161,16 @@
    .user-utils{
        background: #FFFFFF;
        border-radius: 16rpx;
        padding: 12rpx 28rpx;
        padding: 22rpx 28rpx;
        .user-util{
            border-bottom: 2rpx solid #EEEEEE;
            .title{
                font-weight: 600;
                font-size: 32rpx;
                color: #000000;
                line-height: 44rpx;
                margin-bottom: 20rpx;
            }
            .name{
                font-size: 600;
                font-size: 28rpx;
plugins/http.js
@@ -191,7 +191,7 @@
        let header = {
            Authorization: token ? `Bearer ${token}` : null,
        }
        var url = environments.httpBaseUri + '/wxkj/upload/file'
        var url = environments.httpBaseUri + '/api/upload/file'
        if (environments.type == 'prod') {
            //需要拼接
            var year = utils.toYear(new Date())
@@ -210,11 +210,12 @@
                filePath: filePath,
                name: 'file',
                success: (res) => {
                    console.log('res', res)
                    console.log('res debug', res)
                    message.hideLoading()
                    if (res.statusCode === 200) {
                        const obj = JSON.parse(res.data)
                        if (obj.code.startsWith('200')) {
                        console.log('res debug2', obj)
                        if (obj.code.startsWith('200')||obj.code==='0') {
                            resolve({
                                data: obj.data,
                                code: 0,
@@ -257,6 +258,7 @@
        try {
            return await http.uploadTemp(filePath, dto)
        } catch (e) {
            console.log('error',e)
            return e
        }
    },
static/common/nodata.png

static/images/farmer/user/bg.png
store/index.js
@@ -294,7 +294,7 @@
                                //     url: '/views/app/app-home/app-home'
                                // })
                                uni.reLaunch({
                                    url: '/pages/home/home'
                                    url: '/pages/home/farmer-home'
                                })
                            } else {
                                // this.$message.showToast('登录失败')
uni.scss
@@ -1 +1,4 @@
/* uni.scss */
@import 'uview-ui/theme.scss';
@import '@/uni_modules/uni-scss/variables.scss';
uni_modules/uni-scss/theme.scss
@@ -29,3 +29,8 @@
$uni-black: #000000;
$uni-white: #ffffff;
$uni-transparent: rgba($color: #000000, $alpha: 0);
@import "uview-ui/theme.scss";
@import "uview-ui/index.scss";
@import '@/node_modules/uview-ui/theme.scss';