智慧保安互联网APP
shuishen
2021-07-30 273beff9c110f6c4753b9436d872a9fa8d63b7d3
文件配置及部分修改
21 files modified
9 files added
1449 ■■■■ changed files
api/mock/dispatch.js 7 ●●●● patch | view | raw | blame | history
api/mock/home.js 7 ●●●● patch | view | raw | blame | history
api/mock/report.js 8 ●●●● patch | view | raw | blame | history
manifest.json 36 ●●●●● patch | view | raw | blame | history
pages.json 61 ●●●● patch | view | raw | blame | history
pages/company/company.vue 98 ●●●● patch | view | raw | blame | history
pages/dispatch/imgissue.vue 101 ●●●●● patch | view | raw | blame | history
pages/dispatch/issue.vue 68 ●●●●● patch | view | raw | blame | history
pages/dispatch/look.vue 17 ●●●● patch | view | raw | blame | history
pages/home/home.vue 16 ●●●● patch | view | raw | blame | history
pages/map/map.vue 2 ●●● patch | view | raw | blame | history
pages/message/message.vue 1 ●●●● patch | view | raw | blame | history
pages/registerUser/index.css 1 ●●●● patch | view | raw | blame | history
pages/registerUser/registerUser.vue 483 ●●●●● patch | view | raw | blame | history
pages/report/initiate.vue 158 ●●●●● patch | view | raw | blame | history
pages/report/report.vue 2 ●●● patch | view | raw | blame | history
pages/user/center.vue 76 ●●●●● patch | view | raw | blame | history
pages/user/profile.vue 97 ●●●● patch | view | raw | blame | history
static/images/dispatch/ZHBA.png patch | view | raw | blame | history
static/images/dispatch/imgissue.png patch | view | raw | blame | history
static/images/dispatch/issue.png patch | view | raw | blame | history
static/images/report/initiate.png patch | view | raw | blame | history
static/images/wz.png patch | view | raw | blame | history
store/actions.js 11 ●●●●● patch | view | raw | blame | history
store/index.js 19 ●●●● patch | view | raw | blame | history
store/mutations.js 20 ●●●●● patch | view | raw | blame | history
utils/func.js 3 ●●●●● patch | view | raw | blame | history
xcxMapWz/img/wz.png patch | view | raw | blame | history
xcxMapWz/js/vueMain.js 90 ●●●● patch | view | raw | blame | history
xcxMapWz/xcxmap.html 67 ●●●●● patch | view | raw | blame | history
api/mock/dispatch.js
@@ -9,9 +9,14 @@
                    url: '../dispatch/look'
                },
                {
                    name: '指令下发',
                    name: '文字指令',
                    img: '/static/images/dispatch/issue.png',
                    url: '../dispatch/issue'
                },
                {
                    name: '图片指令',
                    img: '/static/images/dispatch/imgissue.png',
                    url: '../dispatch/imgissue'
                }
            ];
            resolute(list);
api/mock/home.js
@@ -110,7 +110,7 @@
                {
                    name: '保安管理',
                    img: '/static/images/home/s2.png',
                    url: ''
                    url: '../securityStaff/exhibition'
                },
                // {
                //     name: '调度指令',
@@ -136,6 +136,11 @@
                    name: '现场检查',
                    img: '/static/images/home/s5.png',
                    url: '../examine/examine'
                },
                {
                    name: '位置查看',
                    img: '/static/images/wz.png',
                    url: '../map/map'
                }
            ];
            resolute(list);
api/mock/report.js
@@ -4,12 +4,16 @@
    return new Promise((resolute, reject) => {
        try {
            const list = [{
                    name: '发送汇报',
                    name: '发起汇报',
                    img: '/static/images/report/initiate.png',
                    url: '../report/initiate'
                },{
                    name: '发送汇报列表',
                    img: '/static/images/report/start.png',
                    url: '../report/send'
                },
                {
                    name: '接受汇报',
                    name: '接受汇报列表',
                    img: '/static/images/report/receive.png',
                    url: '../report/receive'
                }
manifest.json
@@ -1,6 +1,6 @@
{
    "name" : "Rider",
    "appid" : "__UNI__C29A206",
    "name" : "智慧保安",
    "appid" : "__UNI__0F00D11",
    "description" : "",
    "versionName" : "1.0.0",
    "versionCode" : "100",
@@ -56,6 +56,38 @@
            /* SDK配置 */
            "sdkConfigs" : {
                "ad" : {}
            },
            "icons" : {
                "android" : {
                    "hdpi" : "unpackage/res/icons/72x72.png",
                    "xhdpi" : "unpackage/res/icons/96x96.png",
                    "xxhdpi" : "unpackage/res/icons/144x144.png",
                    "xxxhdpi" : "unpackage/res/icons/192x192.png"
                },
                "ios" : {
                    "appstore" : "unpackage/res/icons/1024x1024.png",
                    "ipad" : {
                        "app" : "unpackage/res/icons/76x76.png",
                        "app@2x" : "unpackage/res/icons/152x152.png",
                        "notification" : "unpackage/res/icons/20x20.png",
                        "notification@2x" : "unpackage/res/icons/40x40.png",
                        "proapp@2x" : "unpackage/res/icons/167x167.png",
                        "settings" : "unpackage/res/icons/29x29.png",
                        "settings@2x" : "unpackage/res/icons/58x58.png",
                        "spotlight" : "unpackage/res/icons/40x40.png",
                        "spotlight@2x" : "unpackage/res/icons/80x80.png"
                    },
                    "iphone" : {
                        "app@2x" : "unpackage/res/icons/120x120.png",
                        "app@3x" : "unpackage/res/icons/180x180.png",
                        "notification@2x" : "unpackage/res/icons/40x40.png",
                        "notification@3x" : "unpackage/res/icons/60x60.png",
                        "settings@2x" : "unpackage/res/icons/58x58.png",
                        "settings@3x" : "unpackage/res/icons/87x87.png",
                        "spotlight@2x" : "unpackage/res/icons/80x80.png",
                        "spotlight@3x" : "unpackage/res/icons/120x120.png"
                    }
                }
            }
        }
    },
pages.json
@@ -2,13 +2,24 @@
    "easycom": {
        "^u-(.*)": "@/uview-ui/components/u-$1/u-$1.vue"
    },
    "pages": [
        {
    "pages": [{
            "path": "pages/login/login-account",
            "style": {
                "navigationBarTitleText": "登录",
                "enablePullDownRefresh": false,
                "navigationStyle": "custom"
            }
        }, {
            "path": "pages/registerUser/registerUser",
            "name": "loging",
            "style": {
                "navigationBarTitleText": "注册账号",
                "navigationBarBackgroundColor": "#0BB9C8",
                "navigationBarTextStyle": "white"
                // "app-plus": {
                //     "animationType": "fade-in",
                //     "animationDuration": 300
                // }
            }
        }, {
            "path": "pages/home/home",
@@ -47,7 +58,7 @@
                "enablePullDownRefresh": false,
                "navigationStyle": "custom"
            }
        },  {
        }, {
            "path": "pages/groupChat/groupChat",
            "style": {
                "navigationBarTitleText": "聊天室",
@@ -68,8 +79,8 @@
                "enablePullDownRefresh": false,
                "navigationStyle": "custom"
            }
        },
        },
        {
            "path": "pages/securityStaff/exhibition",
            "style": {
@@ -77,7 +88,7 @@
                "enablePullDownRefresh": false,
                "navigationStyle": "custom"
            }
        },{
        }, {
            "path": "pages/securityStaff/information",
            "style": {
                "navigationBarTitleText": "详细信息",
@@ -85,9 +96,9 @@
                "navigationStyle": "custom"
            }
        },
        {
            "path": "pages/company/company",
            "style": {
@@ -113,9 +124,17 @@
                "navigationBarTextStyle": "white"
            }
        }, {
            "path": "pages/report/initiate",
            "style": {
                "navigationBarTitleText": "发起汇报",
                "enablePullDownRefresh": false,
                "navigationBarBackgroundColor": "#0BB9C8",
                "navigationBarTextStyle": "white"
            }
        }, {
            "path": "pages/report/send",
            "style": {
                "navigationBarTitleText": "发送汇报",
                "navigationBarTitleText": "发送汇报列表",
                "enablePullDownRefresh": false,
                "navigationBarBackgroundColor": "#0BB9C8",
                "navigationBarTextStyle": "white"
@@ -131,7 +150,7 @@
        }, {
            "path": "pages/report/receive",
            "style": {
                "navigationBarTitleText": "接收汇报",
                "navigationBarTitleText": "接受汇报列表",
                "enablePullDownRefresh": false,
                "navigationBarBackgroundColor": "#0BB9C8",
                "navigationBarTextStyle": "white"
@@ -171,7 +190,15 @@
        }, {
            "path": "pages/dispatch/issue",
            "style": {
                "navigationBarTitleText": "指令下发",
                "navigationBarTitleText": "文字指令下发",
                "enablePullDownRefresh": false,
                "navigationBarBackgroundColor": "#0BB9C8",
                "navigationBarTextStyle": "white"
            }
        }, {
            "path": "pages/dispatch/imgissue",
            "style": {
                "navigationBarTitleText": "图片指令下发",
                "enablePullDownRefresh": false,
                "navigationBarBackgroundColor": "#0BB9C8",
                "navigationBarTextStyle": "white"
@@ -192,7 +219,15 @@
                "navigationBarBackgroundColor": "#0BB9C8",
                "navigationBarTextStyle": "white"
            }
        },
        }, {
            "path": "pages/map/map",
            "style": {
                "navigationBarTitleText": "位置查看",
                "enablePullDownRefresh": false,
                "navigationBarBackgroundColor": "#0BB9C8",
                "navigationBarTextStyle": "white"
            }
        },
        {
            "path": "pages/map/map",
            "name": "map",
pages/company/company.vue
@@ -1,7 +1,8 @@
<template>
    <view class="container">
        <u-search v-model="keyword" shape="round" class="u-search" input-align="center" height="70"
            :show-action="false"></u-search>
        <u-search v-model='keyValue' placeholder='请输入公司名称' shape="round" class="u-search" input-align="center" height="70"
            @search='searchValue' @custom='searchValue' @clear='clearValue' @change='changeValue'></u-search>
        <view v-if="newsList.length > 0">
            <view class="inTmain" v-for="(item,index) in newsList">
@@ -21,7 +22,7 @@
            </view>
            <u-loadmore class='msg' :status="status" />
        </view>
        <view class="msg" v-else>
            暂无数据
        </view>
@@ -36,6 +37,8 @@
                dataList: [],
                newsList: [],
                status: 'loadmore',
                keyValue: '',
                pagelist: 0,
            };
        },
        onLoad() {
@@ -43,7 +46,7 @@
        },
        onReachBottom() {
            var that = this;
            if (that.dataList.length == 0) {
            if (that.dataList.length - 1 == that.pagelist) {
                this.status = 'nomore';
                return;
            }
@@ -51,10 +54,23 @@
            this.status = 'loading';
            setTimeout(() => {
                for (var i = 0; i < 5; i++) {
                    if (that.dataList.length > 0) {
                        that.newsList.push(that.dataList[0])
                        that.dataList.splice(0, 1)
                    if (that.pagelist <= that.dataList.length - 1) {
                        that.newsList.push(that.dataList[that.pagelist])
                        if (that.pagelist <= that.dataList.length - 2) {
                            that.pagelist += 1
                            if (that.dataList.length - 1 == that.pagelist) {
                                that.newsList.push(that.dataList[that.pagelist])
                            }
                        }
                    }
                }
            }, 2000);
        },
@@ -75,9 +91,28 @@
                        that.dataList = resdata;
                        for (var i = 0; i < 5; i++) {
                            that.newsList.push(that.dataList[0])
                            that.dataList.splice(0, 1)
                            if (that.pagelist <= that.dataList.length - 1) {
                                that.newsList.push(that.dataList[that.pagelist])
                                if (that.pagelist <= that.dataList.length - 2) {
                                    that.pagelist += 1
                                    if (that.dataList.length - 1 == that.pagelist) {
                                        that.newsList.push(that.dataList[that.pagelist])
                                    }
                                } else {
                                    that.status = 'nomore';
                                }
                            }
                        }
                    }
                });
            },
@@ -85,6 +120,49 @@
                uni.navigateTo({
                    url: './companyDetail?detailData=' + JSON.stringify(item)
                });
            },
            searchValue(value) {
                var that = this;
                var str = value.replace(/\s*/g, "");
                if (str == '') {
                    return
                } else {
                    that.newsList = [];
                    that.dataList.forEach(item => {
                        if (item.enterprisename.indexOf(str) != -1) {
                            that.newsList.push(item)
                        }
                    })
                    that.status = 'nomore';
                }
            },
            clearValue() {
                this.keyValue = ''
                this.newsList = [];
                for (var i = 0; i < this.pagelist; i++) {
                    this.newsList.push(this.dataList[i])
                }
                if (this.dataList.length - 1 == this.pagelist) {
                    this.newsList.push(this.dataList[this.pagelist])
                    this.status = 'nomore';
                } else if (this.pagelist < this.dataList.length - 1) {
                    this.status = 'loadmore';
                }
            },
            changeValue(value) {
                if (value == '') {
                    this.newsList = [];
                    for (var i = 0; i < this.pagelist; i++) {
                        this.newsList.push(this.dataList[i])
                    }
                    if (this.dataList.length - 1 == this.pagelist) {
                        this.newsList.push(this.dataList[this.pagelist])
                        this.status = 'nomore';
                    } else if (this.pagelist < this.dataList.length - 1) {
                        this.status = 'loadmore';
                    }
                }
            }
        }
@@ -116,7 +194,7 @@
    }
    .inTmain {}
    .msg {
        height: 72rpx;
        line-height: 72rpx;
pages/dispatch/imgissue.vue
New file
@@ -0,0 +1,101 @@
<template>
    <view class="container">
        <view class='initiae-box'>
            <u-form :model="form" ref="uForm">
                <u-form-item label-position='top' prop="content" label="指令内容" :required="true">
                    <u-input type='textarea' v-model="form.content" placeholder="请输入指令内容" />
                </u-form-item>
                <u-form-item label-position='top' label="指令相关图片">
                    <u-upload :action="action" :file-list="fileList" max-count='1'></u-upload>
                </u-form-item>
            </u-form>
            <view>
                <u-button type="primary" @click="initiateClick">发送</u-button>
            </view>
            <view>
                <u-toast ref="uToast" />
            </view>
        </view>
    </view>
</template>
<script>
    export default {
        data() {
            return {
                action: 'http://192.168.0.108:81/blade-resource/oss/endpoint/put-file',
                fileList:[{
                    url: 'http://pics.sc.chinaz.com/files/pic/pic9/201912/hpic1886.jpg',
                }],
                form: {
                    content: '',
                },
                rules: {
                    content: [{
                        min: 5,
                        required: true,
                        message: '指令内容不能少于5个字',
                        trigger: ['change', 'blur'],
                    }]
                }
            };
        },
        onLoad() {
            console.log(this.$store.state)
        },
        onReachBottom() {
        },
        mounted() {},
        onReady() {
            this.$refs.uForm.setRules(this.rules);
        },
        methods: {
            initiateClick() {
                this.$refs.uForm.validate(valid => {
                    if (valid) {
                        uni.request({
                            url: this.$store.state.piAPI + "/directive/saveDirectiveAndFile",
                            method: "post",
                            data: {
                                // 接收
                                receiveDirectiveIds: this.$store.state
                                .UserData.user_id,
                                // 发送
                                sendDirectiveId: this.$store.state
                                .UserData.user_id,
                                content: this.form.content,
                            },
                            success: (res) => {
                                if (res.data.msg == "操作成功") {
                                    // this.$refs.uToast.show({
                                    //     title: '发送成功',
                                    //     type: 'success',
                                    //     url: '/pages/report/report'
                                    // })
                                }
                            }
                        });
                    } else {
                        console.log('验证失败');
                    }
                });
            }
        }
    };
</script>
<style lang="scss">
    .initiae-box {
        padding: 0 30rpx;
    }
</style>
pages/dispatch/issue.vue
@@ -1,85 +1,27 @@
<template>
    <view class="container">
        <view class="service-box">
            <u-grid :col="4" :border="false">
                <u-grid-item bg-color="transparent" v-for="(item, index) in serviceButton" :key="index" @click="goBusinessPage(item.url,index)">
                    <view class="service-item">
                        <image :src="item.img" mode="widthFix" class="img"></image>
                        <view class="name">{{ item.name }}</view>
                    </view>
                </u-grid-item>
            </u-grid>
        </view>
        开发中
    </view>
</template>
<script>
    import {
        fakeServiceButton
    } from "@/api/mock/dispatch.js";
    export default {
        data() {
            return {
                dataList:[],
                serviceButton: []
            };
        },
        onLoad() {
        },
        onReachBottom() {
        },
        mounted() {
        },
        methods: {
            onLoad() {
                // 加载服务按钮数据
                fakeServiceButton().then(data => {
                    this.serviceButton = data;
                });
            },
            //页面跳转
            goBusinessPage(url,index){
                uni.navigateTo({
                    url:url
                })
            },
        }
        methods: {}
    };
</script>
<style lang="scss">
    .container {
        background-color: #f7f7f7;
        min-height: 100vh;
        overflow: hidden;
    }
    .service-box {
        background: #ffffff;
        border-radius: 20px 20px 20px 20px;
        margin: 30rpx 20rpx 0;
        padding: 0rpx 20rpx;
        .service-item {
            display: flex;
            flex-direction: column;
            justify-content: space-between;
            align-items: center;
            width: 100%;
            height: 120rpx;
            font-size: 26rpx;
            font-family: PingFang SC;
            font-weight: 500;
            color: #585b61;
            .img {
                width: 70rpx;
                height: auto;
            }
        }
    }
</style>
pages/dispatch/look.vue
@@ -2,9 +2,8 @@
    <view class="container">
        <u-tabs :list="list" :is-scroll="false" :current="current" active-color="#14B9C8" inactive-color="#595959"
            height="100" @change="change"></u-tabs>
        <u-search v-model="keyword" shape="round" class="u-search" input-align="center" height="70"
            :show-action="false"></u-search>
        <u-search v-model="keyword" shape="round" class="u-search" input-align="center" height="70"></u-search>
        <view class="inTmain" v-for="(item,index) in receiveDataList" v-show="current == 0">
            <u-card :title="item.content" @click="goDetail(item)">
                <view class="" slot="body">
@@ -20,7 +19,7 @@
                    </u-icon>发送指令时间:{{item.sendTime}}</view>
            </u-card>
        </view>
        <view class="inTmain" v-for="(item,index) in issueDataList" v-show="current == 1">
            <u-card :title="item.content" @click="goDetail(item)">
                <view class="" slot="body">
@@ -36,7 +35,7 @@
                    </u-icon>发送指令时间:{{item.sendTime}}</view>
            </u-card>
        </view>
    </view>
</template>
@@ -54,10 +53,10 @@
                    }
                ],
                current: 0,
                keyword: ''
            };
        },
        onLoad() {
        },
        onLoad() {},
        onReachBottom() {
        },
@@ -68,9 +67,9 @@
            // 接收
            getReceive() {
                var that = this;
                console.log(this.$store.state)
                uni.request({
                    url: this.$store.state.piAPI + "/directive/page?receiveDirectiveIds=" + this.$store.state.puserID,
                    url: this.$store.state.piAPI + "/directive/page?receiveDirectiveIds=" + this.$store.state
                        .puserID,
                    method: "get",
                    data: {
pages/home/home.vue
@@ -185,18 +185,10 @@
            //页面跳转
            goBusinessPage(url,index){
                // console.log(url,index)
                if(index == 1){
                    console.log(index)
                    uni.navigateTo({
                        url:'../securityStaff/exhibition'
                    })
                    return;
                }
                // console.log(index)
                // uni.navigateTo({
                //     url:url
                // })
                uni.navigateTo({
                    url:url
                })
            },
            handleFocus() {
                this.focus = !this.focus;
pages/map/map.vue
@@ -23,7 +23,7 @@
                    "state": '0',
                    "dtype": '0',
                    "size": '300',
                    "jd": "115.822311",
                    "jd": "114.822311",
                    "wd": "28.646341"
                }]
                data = JSON.stringify(data);
pages/message/message.vue
@@ -34,6 +34,7 @@
                    }
                ],
                current: 0,
                keyword: ''
            };
        },
        onLoad() {
pages/registerUser/index.css
New file
@@ -0,0 +1 @@
@charset "UTF-8";.avue-article__body,.avue-comment__body{font-family:Segoe UI,Lucida Grande,Helvetica,Arial,Microsoft YaHei,FreeSans,Arimo,Droid Sans,wenquanyi micro hei,Hiragino Sans GB,Hiragino Sans GB W3,FontAwesome,sans-serif}.avue-affix{position:fixed;z-index:10}.avue-sign{padding:5px}.avue-sign__canvas{border:1px solid #ccc}.avue-carousel--fullscreen{height:100%}.avue-carousel--fullscreen .el-carousel,.avue-carousel--fullscreen .el-carousel__container{height:90%}.avue-carousel__item{position:relative;width:100%;height:100%}.avue-carousel__item a{width:100%;height:100%;display:block}.avue-carousel__img{height:100%;background-size:cover;background-position:center center}.avue-carousel__title{z-index:1024;position:absolute;left:0;bottom:0;width:100%;height:50px;line-height:50px;font-size:16px;text-align:center;color:#fff;background-color:rgba(0,0,0,.6)}.avue-article__title{margin-bottom:15px;font-size:32px;line-height:32px;font-weight:400}.avue-article__meta{display:block;margin-bottom:20px;font-size:12px;color:#999}.avue-article__lead{color:#666;font-size:14px;line-height:22px;border:1px solid #dedede;border-radius:2px;background:#f9f9f9;padding:10px}.avue-article__body{padding-top:10px;background:#fff;color:#333;font-size:14px}.avue-article blockquote{margin:0;font-family:Georgia,Times New Roman,Times,Kai,Kaiti SC,KaiTi,BiauKai,FontAwesome,serif;padding:1px 0 1px 15px;border-left:4px solid #ddd}.avue-avatar{font-size:14px;font-variant:tabular-nums;-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;list-style:none;display:inline-block;text-align:center;background:#ccc;color:#fff;white-space:nowrap;position:relative;overflow:hidden;vertical-align:middle;width:32px;height:32px;line-height:32px;border-radius:50%}.avue-avatar__images{width:100%;height:100%}.avue-avatar__icon{font-size:18px}.avue-avatar__string{position:absolute;left:50%;-webkit-transform-origin:0 center;transform-origin:0 center}.avue-avatar--lg{width:40px;height:40px;line-height:40px;border-radius:50%;font-size:24px}.avue-avatar--sm{width:24px;height:24px;line-height:24px;border-radius:50%;font-size:14px}.avue-avatar--square{border-radius:4px}.avue-skeleton__avatar{width:40px;height:40px;line-height:40px;display:inline-block;border-radius:50%;background:#f2f2f2}.avue-skeleton__header{display:table-cell;vertical-align:top;padding-right:16px}.avue-skeleton__content{display:table-cell;vertical-align:top;width:100%}.avue-skeleton__title{margin-top:16px;height:16px;width:40%;background:#f2f2f2}.avue-skeleton__item{padding-top:16px;padding-bottom:16px;border-bottom:1px solid #e8e8e8}.avue-skeleton__item:last-child{border-bottom:none}.avue-skeleton__li{margin-bottom:10px;height:16px;background:#f2f2f2;list-style:none;width:100%}.avue-skeleton__li:last-child{width:50%}.avue-skeleton__loading{background:-webkit-gradient(linear,left top,right top,color-stop(25%,#f2f2f2),color-stop(37%,#e6e6e6),color-stop(63%,#f2f2f2));background:linear-gradient(90deg,#f2f2f2 25%,#e6e6e6 37%,#f2f2f2 63%);-webkit-animation:avue-skeleton-loading 1.4s ease infinite;animation:avue-skeleton-loading 1.4s ease infinite;background-size:400% 100%}@-webkit-keyframes avue-skeleton-loading{0%{background-position:100% 50%}100%{background-position:0 50%}}@keyframes avue-skeleton-loading{0%{background-position:100% 50%}100%{background-position:0 50%}}.avue-crud{margin:0 auto;width:100%}.avue-crud .el-card+.el-card{margin-top:8px}.avue-crud--card .el-card{border:none}.avue-crud--card .el-card__body{padding:0}.avue-crud--card .el-card+.el-card{margin-top:0}.avue-crud .el-table .el-form-item{margin-bottom:0;display:inline-block;width:100%}.avue-crud .el-table .el-form-item__label{position:absolute;left:2px}.avue-crud .el-table .el-form-item__content{line-height:inherit;font-size:inherit}.avue-crud .el-table .el-form-item__error{width:100%;text-align:left;position:relative}.avue-crud .el-dropdown+.el-button{margin-left:10px}.avue-crud .el-checkbox:last-of-type{margin-right:0}.avue-crud .el-range-editor--mini{height:28px}.avue-crud__img{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.avue-crud__img img{height:40px;margin-left:5px;-o-object-fit:contain;object-fit:contain}.avue-crud__column .el-checkbox{margin-bottom:10px;cursor:move}.avue-crud__menu{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;position:relative;width:100%;min-height:40px;height:auto;overflow:hidden;margin-bottom:5px;background-color:#fff}.avue-crud__search .el-form-item--medium.el-form-item{margin-bottom:22px}.avue-crud__search .el-form-item--mini.el-form-item,.avue-crud__search .el-form-item--small.el-form-item{margin-bottom:14px}.avue-crud .el-table--mini .avue-crud__color{width:20px;height:20px}.avue-crud .el-table--mini .avue-crud__icon{font-size:20px}.avue-crud .el-table--small .avue-crud__color{width:30px;height:30px}.avue-crud .el-table--small .avue-crud__icon{font-size:30px}.avue-crud th{word-break:break-word;color:rgba(0,0,0,.85);background-color:#fafafa}.avue-crud .ms-tree-title{padding-left:10px}.avue-crud .ms-tree-space{position:relative;top:1px;display:inline-block;font-style:normal;font-weight:400;line-height:1;width:15px;height:14px}.avue-crud .ms-tree-space::before{content:""}.avue-crud .processContainer{width:100%;height:100%}.avue-crud table td{line-height:26px}.avue-crud .tree-ctrl{position:relative;cursor:pointer;color:#666;margin-left:-15px;display:inline-block;width:17px;height:17px;text-align:center;line-height:14px;border:1px solid #e8e8e8;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background:#fff;font-size:10px}.avue-crud .tree-ctrl i{padding-top:3px}@keyframes treeTableShow{from{opacity:0}to{opacity:1}}@-webkit-keyframes treeTableShow{from{opacity:0}to{opacity:1}}.avue-crud--indeterminate .is-indeterminate .el-checkbox__inner{background-color:#fff;border-color:#dcdfe6}.avue-crud .el-table th{word-break:break-word;color:rgba(0,0,0,.85);background-color:#fafafa}.avue-crud__color{margin:0 auto;width:40px;height:40px;border-radius:5px;display:block}.avue-crud__icon{font-size:45px}.avue-crud__icon--small{font-size:20px}.avue-crud__ghost{cursor:move;opacity:.4}.avue-crud__pagination{position:relative;padding:25px 0 20px 20px;text-align:right}.avue-crud__pagination .el-pagination{display:inline-block}.avue-crud__tip,.avue-crud__title{display:-webkit-box;display:-ms-flexbox}.avue-crud__form{padding:0 8px}.avue-crud__empty{padding:60px 0}.avue-crud__header{margin-bottom:10px}.avue-crud__header>.el-button{padding:12px 25px}.avue-crud__title{font-weight:700;margin-bottom:20px;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;font-size:22px}.avue-crud__tip{margin:8px 0;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;font-size:12px}.avue-crud__tip-name{margin-right:10px}.avue-crud__tip-count{font-size:16px;font-weight:600}.avue-crud__tip .el-button{margin-bottom:0}.avue-crud__filter-item{margin-bottom:12px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.avue-crud__filter-menu{padding:0 5px;margin-bottom:20px}.avue-crud__filter-label{margin:0 5px;width:120px!important}.avue-crud__filter-symbol{margin:0 5px;width:80px!important}.avue-crud__filter-value{margin:0 5px;width:150px!important}.avue-crud__filter-value .el-date-editor.el-input,.avue-crud__filter-value .el-date-editor.el-input__inner{width:100%}.avue-crud__filter-icon{margin-left:10px}.avue-crud__dialog--fullscreen .el-dialog{left:0!important;top:0!important}.avue-crud__dialog__header{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.avue-crud__dialog .el-transfer__buttons,.avue-form__item--top{-ms-flex-direction:column;-webkit-box-orient:vertical;-webkit-box-direction:normal}.avue-crud__dialog__menu{padding-right:20px}.avue-crud__dialog__menu i{color:#909399;font-size:15px}.avue-crud__dialog__menu i:hover{color:#409EFF}.avue-crud__dialog .el-transfer{position:relative;padding:0 20px;height:80%}.avue-crud__dialog .el-transfer-panel__body,.avue-crud__dialog .el-transfer-panel__list.is-filterable{height:90%!important}.avue-crud__dialog .el-transfer__buttons{display:-webkit-box;display:-ms-flexbox;display:flex;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.avue-crud__dialog .el-transfer__buttons .el-button{margin:5px 0}.avue-crud__dialog .el-transfer-panel{min-width:200px;width:40%}.avue-crud__dialog .el-dialog__body{padding:20px 20px 5px 10px}.avue-crud__dialog .el-scrollbar__wrap{overflow-x:hidden}.avue-crud__dialog .avue-form__menu{padding-top:15px}.avue-card__item{margin-bottom:16px;border:1px solid #e8e8e8;background-color:#fff;-webkit-box-sizing:border-box;box-sizing:border-box;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;list-style:none;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";cursor:pointer;height:200px}.avue-card__item:hover{border-color:rgba(0,0,0,.09);-webkit-box-shadow:0 2px 8px rgba(0,0,0,.09);box-shadow:0 2px 8px rgba(0,0,0,.09)}.avue-chat,.avue-data-pay .item{-webkit-box-shadow:1px 2px 10px #eee}.avue-card__item--add{border:1px dashed #d9d9d9;width:100%;color:rgba(0,0,0,.45);background-color:#fff;border-radius:2px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;font-size:16px}.avue-card__item--add i{margin-right:10px}.avue-card__item--add:hover{color:#40a9ff;background-color:#fff;border-color:#40a9ff}.avue-card__body{display:-webkit-box;display:-ms-flexbox;display:flex;padding:24px}.avue-card__detail{-webkit-box-flex:1;-ms-flex:1;flex:1}.avue-card__avatar{width:48px;height:48px;border-radius:48px;overflow:hidden;margin-right:12px}.avue-card__avatar img{width:100%;height:100%}.avue-card__title{color:rgba(0,0,0,.85);margin-bottom:12px;font-size:16px}.avue-card__title:hover{color:#1890ff}.avue-card__info,.avue-card__menu{display:-webkit-box;color:rgba(0,0,0,.45)}.avue-card__info{-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;height:64px}.avue-card__menu{display:-ms-flexbox;display:flex;-ms-flex-pack:distribute;justify-content:space-around;height:50px;background:#f7f9fa;text-align:center;line-height:50px}.avue-card__menu:hover{color:#1890ff}.avue-comment{margin-bottom:30px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.avue-comment--reverse{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.avue-comment--reverse .avue-comment__main:after,.avue-comment--reverse .avue-comment__main:before{left:auto;right:-8px;border-width:8px 0 8px 8px}.avue-comment--reverse .avue-comment__main:before{border-left-color:#dedede}.avue-comment--reverse .avue-comment__main:after{border-left-color:#f8f8f8;margin-right:1px;margin-left:auto}.avue-comment__avatar{width:48px;height:48px;border-radius:50%;border:1px solid transparent;-webkit-box-sizing:border-box;box-sizing:border-box;vertical-align:middle}.avue-comment__header{padding:5px 15px;background:#f8f8f8;border-bottom:1px solid #eee;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.avue-comment__author{font-weight:700;font-size:14px;color:#999}.avue-comment__main{-webkit-box-flex:1;-ms-flex:1;flex:1;margin:0 20px;position:relative;border:1px solid #dedede;border-radius:2px}.avue-comment__main:after,.avue-comment__main:before{position:absolute;top:10px;left:-8px;right:100%;width:0;height:0;display:block;content:" ";border-color:transparent;border-style:solid solid outset;border-width:8px 8px 8px 0;pointer-events:none}.avue-comment__main:before{border-right-color:#dedede;z-index:1}.avue-comment__main:after{border-right-color:#f8f8f8;margin-left:1px;z-index:2}.avue-comment__body{padding:15px;overflow:hidden;background:#fff;color:#333;font-size:14px}.avue-comment blockquote{margin:0;font-family:Georgia,Times New Roman,Times,Kai,Kaiti SC,KaiTi,BiauKai,FontAwesome,serif;padding:1px 0 1px 15px;border-left:4px solid #ddd}.avue-chat{box-shadow:1px 2px 10px #eee;position:relative;background-color:#fcfcfc}.avue-chat li,.avue-chat ul{padding:0;margin:0}.avue-chat li{list-style:none;cursor:pointer}.avue-chat .web__content{height:100%;display:-webkit-box;display:-ms-flexbox;display:flex}.avue-chat .web__main{height:calc(100% - 200px);padding:15px 15px 20px;overflow-x:hidden;overflow-y:auto;-webkit-box-sizing:border-box;box-sizing:border-box}.avue-chat .web__logo{background-color:#409eff;display:-webkit-box;display:-ms-flexbox;display:flex;padding:15px 12px;margin:0 auto;vertical-align:middle}.avue-chat .web__logo-img{margin-top:3px;width:35px;height:35px;border-radius:100%;-webkit-box-shadow:0 3px 3px 0 rgba(0,0,0,.1);box-shadow:0 3px 3px 0 rgba(0,0,0,.1)}.avue-chat .web__logo-info{margin-left:10px}.avue-chat .web__logo-name{position:relative;margin-top:5px;font-size:13px}.avue-chat .web__logo-dept{margin-top:1px;font-size:12px}.avue-chat .web__logo-dept,.avue-chat .web__logo-name{color:#fff;margin:0;padding:0;width:175px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.avue-chat .web__main-item{position:relative;font-size:0;margin-bottom:10px;padding-left:60px;min-height:68px}.avue-chat .web__main-text,.avue-chat .web__main-user{display:inline-block;vertical-align:top;font-size:14px}.avue-chat .web__main-user{position:absolute;left:3px}.avue-chat .web__main-user img{width:40px;height:40px;border-radius:100%}.avue-chat .web__main-user cite{position:absolute;left:60px;top:-2px;width:500px;line-height:24px;font-size:12px;white-space:nowrap;color:#999;text-align:left;font-style:normal}.avue-chat .web__main-user cite i{padding-left:15px;font-style:normal}.avue-chat .web__main-text{position:relative;line-height:22px;margin-top:25px;padding:8px 15px;background-color:#f3f3f3;border-radius:3px;border:1px solid #f0f0f0;color:#000;word-break:break-all}.avue-chat .web__main-arrow{top:6px;left:-8px;position:absolute;display:block;width:0;height:0;border-color:transparent #ebeef5 transparent transparent;border-style:solid;border-width:8px 8px 8px 0}.avue-chat .web__main-arrow::after{content:" ";top:-7px;left:1px;position:absolute;display:block;width:0;height:0;border-color:transparent #fff transparent transparent;border-style:solid;border-width:7px 7px 7px 0}.avue-chat .web__main-item--mine .web__main-text .web__main-arrow{left:auto;right:-5px;border-color:transparent transparent transparent #409eff;border-style:solid;border-width:8px 0 8px 8px}.avue-chat .web__main-item--mine .web__main-text .web__main-arrow::after{left:auto;right:-2px;border-color:transparent transparent transparent #409eff;border-style:solid;border-width:7px 0 7px 7px}.avue-chat .web__main-list{margin:10px 0}.avue-chat .web__main-list li{height:30px;color:#409eff;line-height:30px}.avue-chat .web__main-item--mine{text-align:right;padding-left:0;padding-right:60px}.avue-chat .web__main-item--mine .web__main-user{left:auto;right:3px}.avue-chat .web__main-item--mine .web__main-user cite{left:auto;right:60px;text-align:right}.avue-chat .web__main-item--mine .web__main-user cite i{padding-left:0;padding-right:15px}.avue-chat .web__main-item--mine .web__main-text{margin-left:0;text-align:left;background-color:#409eff;color:#fff}.avue-chat .web__footer{-webkit-box-shadow:0 -1px 0 0 rgba(0,0,0,.04),0 -2px 0 0 rgba(0,0,0,.01);box-shadow:0 -1px 0 0 rgba(0,0,0,.04),0 -2px 0 0 rgba(0,0,0,.01);position:absolute;left:0;bottom:0;width:100%;background-color:#fff}.avue-chat .web__msg{padding:10px;height:auto;overflow:hidden}.avue-chat .web__msg--file,.avue-chat .web__msg--img,.avue-chat .web__msg--video{position:relative;max-width:250px;min-width:200px;width:100%;margin:10px 0;border:1px solid #eee;overflow:hidden;border-radius:5px;cursor:pointer;display:block}.avue-chat .web__msg--file span,.avue-image-preview__box,.avue-img--center{display:-webkit-box;display:-ms-flexbox;-webkit-box-align:center}.avue-chat .web__msg--file{height:140px;background-color:#fff}.avue-chat .web__msg--file span{-webkit-box-sizing:border-box;box-sizing:border-box;padding:3px 5px;color:#333;display:flex;-ms-flex-align:center;align-items:center;width:100%;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;height:calc(100% - 80px);overflow:hidden;font-size:13px;text-align:center}.avue-chat .web__msg--file h2{margin:0;width:100%;text-align:center;line-height:80px;background-color:#409EFF;color:#fff}.avue-chat .web__msg--map{height:160px}.avue-chat .web__msg-input{display:block;width:100%;height:60px;overflow-x:hidden;overflow-y:auto;-webkit-box-sizing:border-box;box-sizing:border-box;resize:none;outline:0;background-color:#fff;border:0;word-break:break-all;font-size:13px;line-height:17px;-webkit-appearance:none}.avue-chat .web__msg-submit{float:right;display:block;outline:0;cursor:pointer;text-align:center}.avue-chat .web__tools{padding:8px 10px 0;-webkit-box-sizing:border-box;box-sizing:border-box}.avue-chat .web__tools i{margin-right:12px;font-size:20px;color:#888a91}.avue-chat .web__tools i:hover{color:#76b1f9}.avue-draggable{padding:10px;position:absolute;cursor:move;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.avue-draggable__focus{opacity:0;position:absolute!important;top:0;left:0;z-index:-1024}.avue-draggable__mask{width:100%;height:100%;border:0;position:absolute;top:0;right:0;bottom:0;left:0;z-index:1}.avue-draggable--active{cursor:move;border:1px dashed #09f;background-color:rgba(115,170,229,.5)}.avue-draggable--move{opacity:.6;background-color:rgba(115,170,229,.5)}.avue-draggable--click{cursor:pointer}.avue-draggable__line--left{position:absolute;border-top:1px dashed #09f;width:10000px;height:0;top:0;-webkit-transform:translateX(-100%);transform:translateX(-100%)}.avue-draggable__line--top{position:absolute;border-left:1px dashed #09f;width:0;height:10000px;left:0;-webkit-transform:translateY(-100%);transform:translateY(-100%)}.avue-draggable__line--label{top:-5px;left:-8px;position:absolute;padding:5px;-webkit-transform:translate(-100%,-100%);transform:translate(-100%,-100%);color:#09f;font-size:18px;white-space:nowrap;cursor:move}.avue-draggable__menu{position:absolute;top:0;left:0;background-color:#409EFF;font-size:25px;color:#fff;z-index:9999;cursor:pointer}.avue-draggable__range{position:absolute;width:10px;height:10px;border-radius:100%;z-index:9999;background-color:#09f}.avue-draggable__range--left,.avue-draggable__range--right{top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.avue-draggable__range--left:hover,.avue-draggable__range--right:hover{cursor:ew-resize}.avue-draggable__range--left{left:-6px}.avue-draggable__range--right{right:-6px}.avue-draggable__range--bottom,.avue-draggable__range--top{left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%)}.avue-draggable__range--bottom:hover,.avue-draggable__range--top:hover{cursor:ns-resize}.avue-draggable__range--top{top:-6px}.avue-draggable__range--bottom{bottom:-6px}.avue-draggable__range--bottom-right:hover,.avue-draggable__range--top-left:hover{cursor:nwse-resize}.avue-draggable__range--bottom-left:hover,.avue-draggable__range--top-right:hover{cursor:nesw-resize}.avue-draggable__range--top-right{top:-6px;right:-6px}.avue-draggable__range--top-left{top:-6px;left:-6px}.avue-draggable__range--bottom-right{bottom:-6px;right:-6px}.avue-draggable__range--bottom-left{bottom:-6px;left:-6px}.avue-img--center{display:flex;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.avue-img--fullscreen .el-dialog__body{height:100%}.avue-image-preview{position:fixed;top:0;left:0;width:100%;height:100%;-webkit-transition:all .5s;transition:all .5s;z-index:9998}.avue-image-preview .el-image-viewer__close i{color:#fff}.avue-image-preview .el-image-viewer__btn{z-index:1024}.avue-image-preview img{-webkit-transition:all .5s;transition:all .5s;cursor:pointer}.avue-image-preview__mask{position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.5)}.avue-image-preview__box{width:100%;height:100%;display:flex;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.avue-image-preview__box .el-carousel{width:90%;height:100%}.avue-image-preview__box .el-carousel__container{height:100%}.avue-image-preview__box .el-carousel__item{width:100%;height:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.avue-input-tree .el-tag__close{display:none!important}.avue-input-table__crud .avue-crud__pagination{padding:10px 0 2px 10px;margin:0}.amap-icon img,.amap-marker-content img{width:25px;height:34px}.avue-input-map__marker{position:absolute;top:-20px;right:-118px;color:#fff;padding:4px 10px;-webkit-box-shadow:1px 1px 1px rgba(10,10,10,.2);box-shadow:1px 1px 1px rgba(10,10,10,.2);white-space:nowrap;font-size:12px;font-family:"";background-color:#25a5f7;border-radius:3px}.avue-input-map__content-input{margin-bottom:10px}.avue-input-map__content-box{position:relative}.avue-input-map__content-container{width:100%;height:450px}.avue-input-map__content-result{display:block!important;position:absolute;top:0;right:-8px;width:250px;height:450px;overflow-y:auto}.avue-input-icon__item{text-align:center;max-width:80px;padding:20px;-webkit-transition:all .2s;transition:all .2s}.avue-input-icon__item:hover{-webkit-transform:scale(1.4);transform:scale(1.4)}.avue-input-icon__item--active{-webkit-transform:scale(1.4);transform:scale(1.4);color:#409EFF}.avue-input-icon__list{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.avue-input-icon__icon{font-size:32px!important}.avue-upload--upload .el-upload,.avue-upload--upload .el-upload__tip{display:none}.avue-upload--upload .el-upload--picture-img{display:inline-block}.avue-upload--upload .el-upload-list{margin-top:-6px}.avue-upload--list .el-upload{border:1px dashed #d9d9d9;border-radius:6px;cursor:pointer;position:relative;overflow:hidden}.avue-upload--list .el-upload:hover{border-color:#409eff}.avue-upload__dialog .el-dialog__header{display:none}.avue-upload__dialog .el-dialog__body{padding:10px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.avue-upload__menu{position:absolute;top:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,.5);display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;z-index:1024}.avue-form,.avue-form__group .el-col{position:relative}.avue-upload__menu i{color:#fff;margin:0 8px;font-size:20px}.avue-upload__icon{font-size:28px;color:#8c939d;width:178px;height:178px;line-height:178px;text-align:center}.avue-upload__avatar{width:178px;height:178px;display:block}.avue-form{margin:0 auto;-webkit-box-sizing:border-box;box-sizing:border-box}.avue-form__item--top{display:-webkit-box;display:-ms-flexbox;display:flex;flex-direction:column}.avue-form__item--top .el-form-item__label{width:100%!important;text-align:left!important}.avue-form__item--top .el-form-item__content{margin-left:0!important}.avue-form__item--left .el-form-item__label{text-align:left!important}.avue-form__menu{padding:5px 10px 0;-webkit-box-sizing:border-box;box-sizing:border-box}.avue-form__menu--center{text-align:center}.avue-form__menu--center .el-button{margin:0 5px}.avue-form__menu--left{text-align:left}.avue-form__menu--right{text-align:right}.avue-form__tabs{padding:0 10px;-webkit-box-sizing:border-box;box-sizing:border-box}.avue-form__group{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;-ms-flex-wrap:wrap;flex-wrap:wrap;height:auto}.avue-form__group--flex{display:-webkit-box;display:-ms-flexbox;display:flex}.avue-form__line{display:inline-block;height:42px}.avue-form__row--block{width:100%;display:block}.avue-flow__node,.avue-flow__node-body{display:-webkit-box;display:-ms-flexbox}.avue-form__row--cursor{cursor:pointer}.avue-form__option{position:absolute;right:0;top:-10px;z-index:999}.avue-flow,.avue-flow__node,.avue-tree{position:relative}.avue-form__option i{color:#666}.avue-form__option i+i{margin-left:10px}.el-drawer .avue-form{padding:0 20px}.avue-flow .avue-draggable{padding:0}.avue-flow__node{display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;width:200px;height:80px;border-radius:5px;-webkit-box-shadow:'#66a6e0 0px 0px 12px 0px';box-shadow:'#66a6e0 0px 0px 12px 0px';border:1px solid #eee;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden}.avue-flow__node--active{border-width:2px;border-color:#f56c6c}.avue-flow__node-drag{margin:0 5px;display:inline-block}.avue-flow__node-header{-webkit-box-flex:1;-ms-flex:1;flex:1;background-color:#66a6e0}.avue-flow__node-body{display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-flex:1.5;-ms-flex:1.5;flex:1.5;text-align:center;background:#fff}.avue-date__group{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.avue-date__radio .el-radio-button:last-child .el-radio-button__inner{border-radius:0;border-right:0}.avue-date__date{width:300px}.avue-date__date .el-date-editor{border-top-left-radius:0;border-bottom-left-radius:0}.avue-empty{margin:0 8px;font-size:14px;line-height:22px;text-align:center}.avue-checkbox .el-checkbox+.el-checkbox,.avue-crud .avue-crud__left .el-button+.el-button,.avue-crud .avue-crud__right .el-button+.el-button,.avue-form .avue-crud__left .el-button+.el-button,.avue-form .avue-crud__right .el-button+.el-button,.avue-radio .el-radio+.el-radio{margin-left:0}.avue-checkbox .el-checkbox,.avue-radio .el-radio{margin-right:10px}.avue-empty__image{height:100px;margin-bottom:8px}.avue-empty__image img{height:100%;vertical-align:middle;border-style:none}.avue-empty__desc{color:rgba(0,0,0,.65)}.avue-select .sortable-ghost{opacity:.8;color:#fff!important;background:#409EFF!important}.avue-select .el-tag{cursor:pointer}.avue-select__desc{float:right;color:#8492a6;font-size:13px}.avue-group{width:100%}.avue-group .el-collapse,.avue-group .el-collapse-item__wrap{border-color:#fff}.avue-group .el-collapse-item__header{height:inherit;border:none;border-bottom:1px solid #eee;margin-bottom:20px}.avue-group .el-collapse-item__content,.avue-group .van-collapse-item__content{padding-bottom:0}.avue-group .van-collapse-item__content{padding:0 2px}.avue-group .van-hairline--top-bottom::after,.avue-group .van-hairline-unset--top-bottom::after,.avue-group--arrow .el-collapse-item__arrow,.avue-group--arrow .van-icon-arrow{display:none}.avue-group .van-collapse-item__title,.avue-group__header,.avue-tree__filter{display:-webkit-box;display:-ms-flexbox}.avue-group .van-collapse-item__title{padding:0 10px;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.avue-group .van-collapse-item__title::after{left:0!important}.avue-group--none{margin:0!important;border:none!important}.avue-group--header .el-collapse-item__header,.avue-group--header .van-collapse-item__title{display:none}.avue-group--collapse .el-collapse-item__arrow,.avue-group--collapse .el-collapse-item__header{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important}.avue-group__item{margin-bottom:10px;background-color:#fff;border-bottom:1px solid #eee;border-radius:5px;-webkit-box-sizing:border-box;box-sizing:border-box}.avue-group__item:last-child{border-bottom:none}.avue-group__header{width:100%;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:50px;line-height:50px;-webkit-box-sizing:border-box;box-sizing:border-box}.avue-group__icon{margin-right:8px;font-size:20px;color:rgba(0,0,0,.85)}.avue-group__title{font-size:16px;font-weight:500;color:rgba(0,0,0,.85)}.avue-tree__menu{width:200px;position:fixed;z-index:1024;-ms-flex-wrap:wrap;flex-wrap:wrap;background-color:#fff}.avue-tree__item,.avue-video{position:relative;overflow:hidden}.avue-tree__dialog .el-dialog__body{padding:30px 20px 0}.avue-tree__item{height:34px;line-height:34px;outline:0;padding:0 10px;white-space:nowrap;text-overflow:ellipsis;width:100%;color:#666}.avue-tree__item:hover{cursor:pointer;color:#409eff}.avue-tree__filter{margin-bottom:5px;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.avue-tree__content{padding:5px 0;height:calc(100% - 32px)}.avue-title p{font-weight:700;font-size:18px;margin:5px 10px}.avue-search{padding:0 20px}.avue-search__item{padding:20px 0 10px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;border-bottom:1px dashed #e8e8e8}.avue-search__item:last-child{border-bottom:none}.avue-search__tags{padding:0 12px;margin-right:24px;margin-bottom:12px;font-size:14px;color:rgba(0,0,0,.65);cursor:pointer;white-space:nowrap;display:inline-block}.avue-search__tags:hover{color:#1890ff}.avue-search__tags--active{color:#fff;background-color:#1890ff;border-radius:5px}.avue-search__tags--active:hover{opacity:.85;color:#fff}.avue-search__title{margin:0;padding:0 20px;width:120px;font-size:14px;text-align:right;display:inline-block;-webkit-box-sizing:border-box;box-sizing:border-box}.avue-search__content{width:calc(100% - 190px);display:inline-block}.avue-dynamic__item,.avue-notice__item{display:-webkit-box;display:-ms-flexbox}.avue-search__content .el-tag{margin-right:10px;margin-bottom:10px}.avue-video{width:500px}.avue-video__border span{position:absolute;width:30px;height:30px;border-width:4px;color:#0073eb;border-style:solid}.avue-video__border span:nth-child(1){left:15px;top:15px;border-right:0;border-bottom:0}.avue-video__border span:nth-child(2){right:15px;top:15px;border-left:0;border-bottom:0}.avue-video__border span:nth-child(3){bottom:15px;left:15px;border-right:0;border-top:0}.avue-video__border span:nth-child(4){bottom:15px;right:15px;border-left:0;border-top:0}.avue-video__img{width:100px;position:absolute;left:50%;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.avue-video__main{width:100%}.avue-dynamic__item{margin-bottom:10px;width:100%;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.avue-dynamic__header{padding-left:40px}.avue-dynamic__row{position:relative;border-top:1px dashed #eee;padding-top:13px}.avue-dynamic__row:first-child{border-top:0}.avue-dynamic__menu{position:absolute;right:0;z-index:1024}.avue-dynamic__input{margin-right:8px;width:100%}.avue-dynamic__button{margin-bottom:0!important}.avue-verify__item{padding:5px 10px;display:inline-block;margin:0 4px;-webkit-box-sizing:border-box;box-sizing:border-box;border:1px solid #e1e1e1;font-size:64px;text-align:center}.avue-text-ellipsis__more{padding:0 2px}.avue-login .el-form-item{margin-bottom:18px}.avue-login .el-input-group__append{padding:0;overflow:hidden}.avue-login__send{min-width:150px;-webkit-box-sizing:border-box;box-sizing:border-box}.avue-login__send:hover{color:#C0C4CC!important;border-color:#EBEEF5!important;background-color:#F5F7FA!important}.avue-login__submit{width:100%}.avue-keyboard--default .akeyboard-keyboard{height:100%;width:100%;background:#f0f0f0;border-radius:5px;padding:9px 5px 5px;-webkit-box-sizing:border-box;box-sizing:border-box}.avue-keyboard--default .akeyboard-keyboard-innerKeys{text-align:center}.avue-keyboard--default .akeyboard-keyboard-keys{height:40px;min-width:40px;padding:0 10px;border-radius:5px;background:#fff;display:inline-block;line-height:40px;text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box;margin:4px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.avue-keyboard--default .akeyboard-keyboard-keys:hover,.avue-keyboard--default .keyboard-keyboard-keys-focus{background:#1e9fff;color:#fff}.avue-keyboard--default .akeyboard-mobileKeyboard-keys,.avue-keyboard--green .akeyboard-keyboard-keys{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;display:inline-block;cursor:pointer}.avue-keyboard--default .akeyboard-keyboard-keys-Delete,.avue-keyboard--default .akeyboard-keyboard-keys-Tab{width:80px}.avue-keyboard--default .akeyboard-keyboard-keys-Caps{width:77px}.avue-keyboard--default .akeyboard-keyboard-keys-Enter{width:90px}.avue-keyboard--default .akeyboard-keyboard-keys-Shift{width:106px}.avue-keyboard--default .akeyboard-keyboard-keys-Space{width:350px}.avue-keyboard--default .akeyboard-keyboard-fixedBottomCenter{width:100%!important;height:auto!important;position:fixed;bottom:0;left:0;border-radius:0!important}.avue-keyboard--default .akeyboard-numberKeyboard{height:100%;width:100%;background:#f0f0f0;border-radius:5px;padding:10px 5px 5px;-webkit-box-sizing:border-box;box-sizing:border-box}.avue-keyboard--default .akeyboard-numberKeyboard-keys-Enter{height:40px;width:100px}.avue-keyboard--default .akeyboard-mobileKeyboard{height:100%;width:100%;background:#f0f0f0;border-radius:5px;padding:11px 5px 5px;-webkit-box-sizing:border-box;box-sizing:border-box}.avue-keyboard--default .akeyboard-mobileKeyboard-keys{height:25px;min-width:25px;padding:0 10px;border-radius:3px;background:#fff;line-height:25px;text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box;margin:3px 2px 2px;user-select:none;font-size:10px}.avue-keyboard--default .akeyboard-mobileKeyboard-keys:hover{background:#1e9fff!important;color:#fff}.avue-keyboard--default .akeyboard-mobileKeyboard-keys-⇦,.avue-keyboard--default .akeyboard-mobileKeyboard-keys-⇧{width:25px;background-color:#999faf}.avue-keyboard--default .akeyboard-mobileKeyboard-keys-Space{height:28px;width:100px;line-height:28px;margin-left:55px}.avue-keyboard--default .akeyboard-mobileKeyboard-keys-Enter{height:28px;width:55px;line-height:28px;background:#1e9fff!important;color:#fff}.avue-keyboard--default .akeyboard-mobileKeyboard-keys-focus{background:#1e9fff!important;color:#fff}.avue-keyboard--green .akeyboard-keyboard{height:100%;width:100%;background:#030;border-radius:5px;padding:9px 5px 5px;-webkit-box-sizing:border-box;box-sizing:border-box}.avue-keyboard--green .akeyboard-keyboard-innerKeys{text-align:center}.avue-keyboard--green .akeyboard-keyboard-keys{height:40px;min-width:40px;padding:0 10px;border-radius:5px;background:#cc9;line-height:40px;text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box;margin:4px;user-select:none}.avue-keyboard--green .akeyboard-keyboard-keys:hover,.avue-keyboard--green .keyboard-keyboard-keys-focus{background:#693;color:#fff}.avue-keyboard--green .akeyboard-keyboard-keys-Delete,.avue-keyboard--green .akeyboard-keyboard-keys-Tab{width:80px}.avue-keyboard--green .akeyboard-keyboard-keys-Caps{width:77px}.avue-keyboard--green .akeyboard-keyboard-keys-Enter{width:90px}.avue-keyboard--green .akeyboard-keyboard-keys-Shift{width:106px}.avue-keyboard--green .akeyboard-keyboard-keys-Space{width:350px}.avue-keyboard--green .akeyboard-keyboard-fixedBottomCenter{width:100%!important;height:auto!important;position:fixed;bottom:0;left:0;border-radius:0!important}.avue-keyboard--green .akeyboard-numberKeyboard{height:100%;width:100%;background:#030;border-radius:5px;padding:10px 5px 5px;-webkit-box-sizing:border-box;box-sizing:border-box}.avue-keyboard--green .akeyboard-numberKeyboard-keys-Enter{height:40px;width:100px}.avue-keyboard--green .akeyboard-mobileKeyboard{height:100%;width:100%;background:#030;border-radius:5px;padding:11px 5px 5px;-webkit-box-sizing:border-box;box-sizing:border-box}.avue-keyboard--green .akeyboard-mobileKeyboard-keys{height:25px;min-width:25px;padding:0 10px;border-radius:3px;background:#cc9;display:inline-block;line-height:25px;text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box;margin:3px 2px 2px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;font-size:10px}.avue-keyboard--green .akeyboard-mobileKeyboard-keys:hover{background:#693!important;color:#fff}.avue-keyboard--green .akeyboard-mobileKeyboard-keys-⇦,.avue-keyboard--green .akeyboard-mobileKeyboard-keys-⇧{width:25px;background-color:#999faf}.avue-keyboard--green .akeyboard-mobileKeyboard-keys-Space{height:28px;width:100px;line-height:28px;margin-left:55px}.avue-keyboard--green .akeyboard-mobileKeyboard-keys-Enter{height:28px;width:55px;line-height:28px;background:#693!important;color:#fff}.avue-keyboard--green .akeyboard-mobileKeyboard-keys-focus{background:#693!important;color:#fff}.avue-keyboard--dark .akeyboard-keyboard{height:100%;width:100%;background:#000;color:#fff;border-radius:5px;padding:9px 5px 5px;-webkit-box-sizing:border-box;box-sizing:border-box}.avue-keyboard--dark .akeyboard-keyboard-innerKeys{text-align:center}.avue-keyboard--dark .akeyboard-keyboard-keys{height:40px;min-width:40px;padding:0 10px;border-radius:5px;background:#393d49;color:#fff;display:inline-block;line-height:40px;text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box;margin:4px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.avue-keyboard--dark .akeyboard-keyboard-keys:hover,.avue-keyboard--dark .keyboard-keyboard-keys-focus{background:#1e9fff}.avue-keyboard--dark .akeyboard-keyboard-keys-Delete,.avue-keyboard--dark .akeyboard-keyboard-keys-Tab{width:80px}.avue-keyboard--dark .akeyboard-keyboard-keys-Caps{width:77px}.avue-keyboard--dark .akeyboard-keyboard-keys-Enter{width:90px}.avue-keyboard--dark .akeyboard-keyboard-keys-Shift{width:106px}.avue-keyboard--dark .akeyboard-keyboard-keys-Space{width:350px}.avue-keyboard--dark .akeyboard-keyboard-fixedBottomCenter{width:100%!important;height:auto!important;position:fixed;bottom:0;left:0;border-radius:0!important}.avue-keyboard--dark .akeyboard-numberKeyboard{height:100%;width:100%;background:#000;border-radius:5px;padding:10px 5px 5px;-webkit-box-sizing:border-box;box-sizing:border-box}.avue-keyboard--dark .akeyboard-numberKeyboard-keys-Enter{height:40px;width:100px}.avue-keyboard--dark .akeyboard-mobileKeyboard{height:100%;width:100%;background:#000;border-radius:5px;padding:11px 5px 5px;-webkit-box-sizing:border-box;box-sizing:border-box}.avue-keyboard--dark .akeyboard-mobileKeyboard-keys{height:25px;min-width:25px;padding:0 10px;border-radius:3px;background:#393d49;color:#fff;display:inline-block;line-height:25px;text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box;margin:3px 2px 2px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;font-size:10px}.avue-keyboard--dark .akeyboard-mobileKeyboard-keys:hover{background:#1e9fff!important;color:#fff}.avue-keyboard--dark .akeyboard-mobileKeyboard-keys-⇦,.avue-keyboard--dark .akeyboard-mobileKeyboard-keys-⇧{width:25px;background-color:#999faf}.avue-keyboard--dark .akeyboard-mobileKeyboard-keys-Space{height:28px;width:100px;line-height:28px;margin-left:55px}.avue-keyboard--dark .akeyboard-mobileKeyboard-keys-Enter{height:28px;width:55px;line-height:28px;background:#1e9fff!important;color:#fff}.avue-keyboard--dark .akeyboard-mobileKeyboard-keys-focus{background:#1e9fff!important;color:#fff}.avue-keyboard--classic .akeyboard-keyboard{height:100%;width:100%;background:#2f4056;border-radius:5px;padding:9px 5px 5px;-webkit-box-sizing:border-box;box-sizing:border-box}.avue-keyboard--classic .akeyboard-keyboard-innerKeys{text-align:center}.avue-keyboard--classic .akeyboard-keyboard-keys{height:40px;min-width:40px;padding:0 10px;border-radius:5px;background:#fff;display:inline-block;line-height:40px;text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box;margin:4px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.avue-keyboard--classic .akeyboard-keyboard-keys:hover,.avue-keyboard--classic .keyboard-keyboard-keys-focus{background:#c2c2c2;color:#fff}.avue-keyboard--classic .akeyboard-keyboard-keys-Delete,.avue-keyboard--classic .akeyboard-keyboard-keys-Tab{width:80px}.avue-keyboard--classic .akeyboard-keyboard-keys-Caps{width:77px}.avue-keyboard--classic .akeyboard-keyboard-keys-Enter{width:90px}.avue-keyboard--classic .akeyboard-keyboard-keys-Shift{width:106px}.avue-keyboard--classic .akeyboard-keyboard-keys-Space{width:350px}.avue-keyboard--classic .akeyboard-keyboard-fixedBottomCenter{width:100%!important;height:auto!important;position:fixed;bottom:0;left:0;border-radius:0!important}.avue-keyboard--classic .akeyboard-numberKeyboard{height:100%;width:100%;background:#2f4056;border-radius:5px;padding:10px 5px 5px;-webkit-box-sizing:border-box;box-sizing:border-box}.avue-keyboard--classic .akeyboard-numberKeyboard-keys-Enter{height:40px;width:100px}.avue-keyboard--classic .akeyboard-mobileKeyboard{height:100%;width:100%;background:#2f4056;border-radius:5px;padding:11px 5px 5px;-webkit-box-sizing:border-box;box-sizing:border-box}.avue-keyboard--classic .akeyboard-mobileKeyboard-keys{height:25px;min-width:25px;padding:0 10px;border-radius:3px;background:#fff;display:inline-block;line-height:25px;text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box;margin:3px 2px 2px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;font-size:10px}.avue-keyboard--classic .akeyboard-mobileKeyboard-keys:hover{background:#c2c2c2!important;color:#fff}.avue-keyboard--classic .akeyboard-mobileKeyboard-keys-⇦,.avue-keyboard--classic .akeyboard-mobileKeyboard-keys-⇧{width:25px;background-color:#999faf}.avue-keyboard--classic .akeyboard-mobileKeyboard-keys-Space{height:28px;width:100px;line-height:28px;margin-left:55px}.avue-keyboard--classic .akeyboard-mobileKeyboard-keys-Enter{height:28px;width:55px;line-height:28px;background:#c2c2c2!important;color:#fff}.avue-keyboard--classic .akeyboard-mobileKeyboard-keys-focus{background:#c2c2c2!important;color:#fff}.avue-notice__item{padding:12px 24px;border-bottom:1px solid #e8eaec;cursor:pointer;-webkit-transition:background-color .2s ease-in-out;transition:background-color .2s ease-in-out;text-align:left;display:flex;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.avue-array__input,.avue-data-tabs .item-tip,.data-box .item a{display:-webkit-box;display:-ms-flexbox}.avue-notice__content{-webkit-box-flex:1;-ms-flex:1;flex:1}.avue-notice__img{width:38px;height:38px;border-radius:100%;margin-top:5px;margin-right:10px;overflow:hidden}.avue-notice__img img{width:100%;height:100%}.avue-notice__name{line-height:25px}.avue-notice__title{font-size:14px;font-weight:400;line-height:22px;color:#515a6e;margin-bottom:4px}.avue-notice__tag{float:right;margin-top:2px}.avue-notice__subtitle{font-size:12px;color:#808695}.avue-notice__more{cursor:pointer;color:#2d8cf0;text-align:center;padding:10px 0}.avue-array__item{margin-bottom:5px}.ant-form-item,.ant-form-item-with-help{margin-bottom:0}.avue-array__input{display:flex}.avue-array__input .el-input{-webkit-box-flex:1;-ms-flex:auto;flex:auto}.avue-array__input .el-button{margin-left:5px}.ant-btn+.ant-btn{margin-left:10px}.ant-calendar-picker,.ant-time-picker{width:100%}.ant-form{padding-right:50px}.ant-form-item-control{line-height:34px}.ant-form-item{height:60px}.avue-data-tabs .item{position:relative;margin:15px;padding:12px;height:160px;border-radius:4px;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden;color:#fff}.avue-data-tabs .item a{color:#fff}.avue-data-tabs .item-header{position:relative}.avue-data-tabs .item-header>p{color:#fff;margin:0;font-size:14px}.avue-data-tabs .item-header>span{position:absolute;right:0;top:0;padding:2px 8px;border-radius:4px;font-size:12px;background:rgba(255,255,255,.3)}.avue-data-tabs .item-body .h2{color:#fff;margin:0;font-size:32px;line-height:60px;font-weight:700}.avue-data-tabs .item-footer{padding-top:8px;line-height:20px}.avue-data-tabs .item-footer>span{font-size:10px}.avue-data-tabs .item-footer>p{color:#fff;margin:0;font-size:12px}.avue-data-tabs .item-tip{display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;position:absolute;width:80px;height:80px;bottom:10px;right:10px;border:2px solid #fff;border-radius:100%;font-size:48px;-webkit-transform:rotate(-40deg);transform:rotate(-40deg);opacity:.1}.avue-data-cardText .item{padding:20px 25px;margin:10px 20px;background:#F8F8F8;border-radius:6px;-webkit-box-shadow:2px 2px 20px #ccc;box-shadow:2px 2px 20px #ccc}.avue-data-cardText .item-header{position:relative}.avue-data-cardText .item-header i{font-size:26px;color:#009688}.avue-data-cardText .item-header a{font-size:16px;margin-left:6px;position:absolute;bottom:4px}.avue-data-cardText .item-content{margin-top:8PX;font-size:14px;line-height:22px;color:#333}.avue-data-cardText .item-footer{position:relative}.avue-data-cardText .item-footer span:nth-child(1){color:#777;font-size:12px;text-overflow:ellipsis;word-break:break-all}.avue-data-cardText .item-footer span:nth-child(2){color:#CCC;font-size:12px;line-height:24px;position:absolute;right:0}.data-box .item{position:relative;margin:0 auto 10px;width:96%;height:100px;overflow:hidden;border-radius:5px;-webkit-box-sizing:border-box;box-sizing:border-box}.data-box .item:hover .item-text{top:0}.data-box .item a{display:flex}.data-box .item-icon{width:100px;height:100px;color:#fff;text-align:center;line-height:100px;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;display:-webkit-box;display:-ms-flexbox;display:flex}.data-box .item-icon i{font-size:48px!important}.data-box .item-info{border-radius:0 5px 5px 0;border:1px solid #eee;border-left:none;background-color:#fff;-webkit-box-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.data-icons .item,.data-progress .item-header{display:-webkit-box;display:-ms-flexbox;-webkit-box-align:center}.data-box .item-info .title{font-size:30px;line-height:40px;text-align:center}.data-box .item-info .info{color:#999;font-size:14px;text-align:center}.data-progress .item{margin:10px}.data-progress .item-header{margin-bottom:10px;display:flex;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.data-progress .item-count{line-height:26px;font-size:26px;color:#666}.data-progress .item-title{color:#999;font-size:14px}.data-icons .item{display:flex;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;width:90%;margin:10px 15px}.data-icons .item-icon{margin-top:3px;margin-right:0!important;text-align:center}.data-icons .item-icon>i{font-size:46px!important}.data-icons .item-info{text-align:center;padding:10px 0}.data-icons .item-info>span{display:block;padding:5px 0;color:#999;font-size:12px}.data-icons .item-info .count{font-size:20px;line-height:25px}.data-icons .item--easy{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.data-icons .item--easy>.item-icon{margin:0}.data-icons .item--easy>.item-info{margin-top:-15px}.data-icons .item--easy>.item-info>span{font-size:14px}.data-card .item{position:relative;margin:0 auto 50px;width:230px;height:340px;overflow:hidden;border-radius:5px;border-color:#fff;border-width:1px;border-style:solid}.data-card .item:hover .item-text{top:0}.data-card .item-img{width:100%;border-radius:5px 5px 0 0}.data-card .item-text{position:absolute;top:150px;padding:20px 15px;width:100%;height:340px;overflow:auto;-webkit-box-sizing:border-box;box-sizing:border-box;border-radius:0 0 5px 5px;opacity:.9;-webkit-transition:top .4s;transition:top .4s}.data-card .item-text>p{font-size:12px;line-height:25px;text-indent:2em}.avue-data-display .item{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;margin:5px 0;text-align:center}.avue-data-display .count{display:block;margin:8px 0 15px;font-weight:700;font-size:32px;color:#15A0FF}.avue-data-display .title{line-height:32px;color:#999}.avue-data-display .splitLine{display:block;margin:0 auto;width:24px;height:1px;background:#9B9B9B}.avue-data-imgtext .item{position:relative;height:340px;width:240px;margin:10px auto 50px;border-radius:5px;-webkit-box-shadow:2px 2px 20px #ccc;box-shadow:2px 2px 20px #ccc}.avue-data-imgtext .item-header img{width:100%;height:170px;background:red;border-radius:5px 5px 0 0}.avue-data-imgtext .item-content{padding:10px 15px;color:#333!important}.avue-data-imgtext .item-content span{font-size:20px}.avue-data-imgtext .item-content:hover span{color:#1890ff}.avue-data-imgtext .item-content p{font-size:14px;height:60px;margin:6px 0;overflow:hidden}.avue-data-imgtext .item-footer{padding:10px 15px;position:relative}.avue-data-imgtext .item-footer img{height:20px;width:20px;border-radius:50%}.avue-data-imgtext .item-footer div{display:inline-block}.avue-data-imgtext .item-footer div li,.avue-data-imgtext .item-footer div ul{padding:0;margin:0 0 0 -8px;list-style:none;display:inline-block;border:2px solid #fff;border-radius:50%}.avue-data-imgtext .item-footer div:nth-child(1){font-size:14px;color:#ccc!important}.avue-data-imgtext .item-footer div:nth-child(2){position:absolute;right:15px}.avue-data-operatext .item{margin:5px 10px;-webkit-box-sizing:border-box;box-sizing:border-box;position:relative;border-radius:3px;background:#fff;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.1);box-shadow:0 1px 1px rgba(0,0,0,.1)}.avue-data-operatext .item a{color:#333}.avue-data-operatext .item-header{padding:20px 20px 60px;border-top-right-radius:3px;border-top-left-radius:3px;color:#fff;background-position:center center}.avue-data-operatext .item-title{margin-top:0;margin-bottom:5px;font-size:25px;font-weight:300;text-shadow:0 1px 1px rgba(0,0,0,.2);display:block}.avue-data-operatext .item-subtitle{font-size:14px;font-weight:400}.avue-data-operatext .item-content{border-top:1px solid #f4f4f4;padding:10px 10px 20px;background-color:#fff;border-radius:0 0 3px 3px}.avue-data-operatext .item-img{margin:-60px auto 5px;width:90px;height:90px;border-radius:100%;overflow:hidden;border:4px solid #fff}.avue-data-operatext .item-img img{width:100%;height:100%}.avue-data-operatext .item-list{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.avue-data-operatext .item-row{-webkit-box-sizing:border-box;box-sizing:border-box;width:33.33%;text-align:center}.avue-data-operatext .item-label{margin-bottom:5px;display:block;font-weight:600;font-size:16px}.avue-data-operatext .item-value{display:block;font-weight:300;text-transform:uppercase}.avue-data-rotate .item{margin:5px 10px;-webkit-box-sizing:border-box;box-sizing:border-box;position:relative;color:#fff;border-radius:3px}.avue-data-rotate .item-box{padding:10px 20px}.avue-data-rotate .item-count{margin-bottom:5px;font-size:38px;white-space:nowrap;font-weight:300;display:block}.avue-data-rotate .item-title{font-size:15px}.avue-data-rotate .item-icon{-webkit-transition:all .3s linear;transition:all .3s linear;position:absolute;top:20px;right:20px;font-size:65px;color:rgba(0,0,0,.15)}.avue-data-rotate .item-icon:hover{font-size:70px}.avue-data-rotate .item-more{position:relative;text-align:center;padding:3px 0;color:#fff;color:rgba(255,255,255,.8);display:block;z-index:10;font-size:14px;letter-spacing:2px;background:rgba(0,0,0,.1);text-decoration:none}.avue-data-pay .item{margin:0 auto;padding-bottom:16px;width:80%;position:relative;border-radius:4px;background-color:#fff;min-height:670px;box-shadow:1px 2px 10px #eee}.avue-data-pay .top{width:100%;height:6px;position:absolute;top:0;left:0;border-radius:4px 4px 0 0}.avue-data-pay .header{margin-bottom:40px;text-align:center}.avue-data-pay .title{text-align:center;padding:20px 0 10px;font-size:20px;font-weight:200}.avue-data-pay .money span{margin-right:5px;font-size:14px}.avue-data-pay .money .b{margin-right:2px;font-size:20px;font-weight:700}.avue-data-pay .money s{margin-right:3px;font-size:12px}.avue-data-pay .money em{font-size:14px;font-style:normal}.avue-data-pay .img{width:50px}.avue-data-pay .line{width:60%;height:1px;background:rgba(150,150,150,.1);margin:20px auto}.avue-data-pay .btn{display:block;width:120px;height:32px;line-height:32px;margin:0 auto;text-align:center;border-radius:32px;color:#fff;cursor:pointer;-webkit-transition:opacity .2s ease-in-out;transition:opacity .2s ease-in-out}.avue-data-pay .list-item{list-style:none;padding-left:20px;margin-bottom:12px;color:#666;font-size:14px}.avue-data-pay .list-item a{color:#666}.avue-data-pay .list-item-icon{color:#515a6e;margin-right:8px}.avue-data-pay .list-item--link{font-size:12px;color:#2d8cf0}.avue-data-pay .list-item--no,.avue-data-pay .list-item--no+span{color:#c5c8ce}.data-price .item{margin:0 20px;text-align:center;-webkit-box-shadow:2px 3px 15px #eee;box-shadow:2px 3px 15px #eee}.data-price .item:hover{border:1px solid #00a680}.data-price .item:hover .body{color:#fff;background-color:#00a680}.data-price .item:hover .body::after{border-top-color:#00a680}.data-price .item:hover .list{color:#00a680}.data-price .item:hover .price{color:#fff}.data-price .item .title{height:80px;line-height:80px;font-size:18px;color:#333}.data-price .item .body,.data-price .item .price{margin:0 0 50px;line-height:120px;height:120px;color:#6b6b6b}.data-price .item .price{padding:0 8px;font-size:42px}.data-price .item .append{font-size:16px}.data-price .item .body{position:relative;padding:0;background-color:#f4f4f4;font-size:42px}.data-price .item .body::before{content:"¥";font-size:16px;font-weight:400}.data-price .item .body::after{content:'';position:absolute;display:block;width:0;height:0;bottom:-15px;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%);border-color:#f4f4f4 transparent transparent;border-style:solid;border-width:20px 30px 0}.data-price .item .list{padding-bottom:30px;color:#666;font-size:14px}.avue-data-panel .item{padding:0 30px;margin:0 20px;cursor:pointer;height:108px;font-size:12px;position:relative;overflow:hidden;color:#666;background:#fff;-webkit-box-shadow:4px 4px 40px rgba(0,0,0,.05);box-shadow:4px 4px 40px rgba(0,0,0,.05);border-color:rgba(0,0,0,.05);display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.avue-data-panel .item-icon{font-size:52px}.avue-data-panel .item-info{text-align:center}.avue-data-panel .item-title{line-height:18px;color:rgba(0,0,0,.45);font-size:16px;margin-bottom:12px}.avue-data-panel .item-count{font-size:20px}[class^=avue-data-] a,[class^=data-] a{text-decoration:none}@-webkit-keyframes rotating{from{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes rotating{from{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.avue-echart-tabs .el-select{width:100%}.avue-echart-tabs .el-input,.avue-echart-tabs .el-select,.avue-echart-tabs input{height:100%}.avue-echart-tabs .el-input{font-size:inherit}.avue-echart-tabs__list{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-pack:distribute;justify-content:space-around;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:100%}.avue-echart-tabs__icon{margin-right:10px}.avue-echart-tabs__item{width:100%;height:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-sizing:border-box;box-sizing:border-box}.avue-echart-iframe iframe{border:none;width:100%;height:100%}.avue-echart-text{overflow:hidden}.avue-echart-text__box{width:100%;height:100%}.avue-echart-text__text{display:block;text-decoration:none}.avue-echart-swiper .el-carousel,.avue-echart-swiper .el-carousel__container{height:100%}.avue-echart-swiper img{width:100%;height:100%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.avue-echart-pie__title{position:absolute;width:100%;height:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.avue-echart-slide .swiper-container{width:100%;height:100%}.avue-echart-slide .swiper-slide{text-align:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.avue-echart-table__body{position:relative;overflow:hidden}.avue-echart-table__menu{position:absolute;padding:0 5px;text-align:right}.avue-echart-table__menu i{margin-right:10px;font-size:20px}.avue-echart-table__allview{opacity:.9}.avue-echart-table__allview .el-table--enable-row-hover .el-table__body tr:hover>td{background-color:#333}.avue-echart-table__tr{display:-webkit-box;display:-ms-flexbox;display:flex}.avue-echart-table__tr--line{-webkit-transition:all .5s;transition:all .5s;width:100%;position:absolute}.avue-echart-table__td{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;-o-text-overflow:ellipsis;-webkit-box-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.avue-echart-table__header{margin-bottom:20px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;border-bottom-width:0}.avue-echart-table__index{margin:0 auto;width:30px;height:30px;line-height:30px;text-align:center;color:#fff;background-color:#144280;border-radius:100%}.avue-echart-table__index--1{background-color:#fdd706}.avue-echart-table__index--2,.avue-echart-table__index--3{background-color:#1f94f4}.avue-echart-table__item{display:inline-block;padding:5px 10px;border-style:solid;border-width:1px}.avue-echart-table__item--active{color:#fff!important}.avue-echart-table table{width:100%;border-width:1px;border-style:solid}.avue-echart-table td,.avue-echart-table th{border-width:0 0 1px;border-style:solid;font-size:16px;font-weight:300}.avue-echart-header{padding:10px}.avue-echart-header--center{text-align:center}.avue-echart-header--right{text-align:right}.avue-echart-header__title{margin-right:5px;font-size:18px;font-weight:400;color:#333;text-decoration:none}.avue-echart-header__info{display:inline-block}.avue-echart-progress{position:relative}.avue-echart-progress__text--circle{position:absolute;width:100%;top:50%;-webkit-transform:translate(0,-50%);transform:translate(0,-50%);text-align:center}.avue-echart-progress__text--line{margin-bottom:20px;position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.avue-echart-progress__text--line p{margin-right:5px}.avue-echart-img--rotate{-webkit-animation:rotating 0s linear infinite;animation:rotating 0s linear infinite}.avue-echart-flop .el-tooltip{width:100%}.avue-echart-flop__count{-webkit-box-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.avue-echart-flop__item{font-family:"Microsoft Yahei";font-size:28px;font-weight:400;color:#fff;-webkit-box-sizing:border-box;box-sizing:border-box;display:inline-block}.avue-echart-flop__item--img{padding:0 5px;border-image-slice:10 16 15 10 fill;border-width:10px 16px 15px 10px;border-style:solid}.avue-echart-flop__item--none{padding:0!important;border-width:0!important;background-color:transparent!important}.avue-echart-map{position:relative}.avue-echart-map__bg{position:absolute;top:0;left:0}.avue-echart-map__box{position:relative}.avue-echart-map__location{position:absolute;background-color:red;width:10px;height:10px}.avue-echart-map__location:hover{background-color:green}.avue-checkbox__mobile .avue__tag,.avue-radio__mobile .avue__tag{margin-right:5px;margin-bottom:2px}.avue-grid__mobile{padding:30px 0 0}.avue-grid__mobile .avue-grid__icon{width:50px;height:50px;line-height:50px;text-align:center}.avue-grid__mobile .avue-grid__icon i{line-height:50px;font-size:26px;color:#fff}.avue-grid__mobile .avue-grid__item{margin-bottom:20px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.avue-grid__mobile .avue-grid__img{width:50px;height:50px}.avue-grid__mobile .avue-grid__title{line-height:30px;font-size:13px}.avue-swipe__mobile .avue-swipe__item{position:relative}.avue-swipe__mobile .avue-swipe__title{width:100%;padding:8px 0;position:absolute;left:0;bottom:0;background-color:rgba(0,0,0,.5);color:#fff;font-size:14px;text-align:center}.avue-swipe__mobile .avue-swipe__img{-o-object-fit:cover;object-fit:cover}.avue-cell__mobile .avue-cell__icon{margin-right:5px;font-size:20px}.avue-cell__mobile .avue-cell__icon--color{width:30px;height:30px;text-align:center;line-height:30px;border-radius:3px;color:#fff}.van-cell::after{display:block!important}.avue--detail .el-radio,.avue--detail .el-radio .el-radio__inner,.avue-canvas{display:none}.van-image-preview{z-index:9999!important}.van-field__control{-ms-flex-wrap:wrap;flex-wrap:wrap}.avue-crud__mobile .avue-crud__page{margin-top:10px;background-color:#fff}.avue-crud__mobile .van-cell-group{margin-bottom:10px}body{font-family:Chinese Quote,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Helvetica Neue,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol}*{outline:0}.avue-ghost{opacity:.5;background:#c8ebfb}.avue--disabled{color:#ccc}.avue--detail .el-input.is-disabled .el-input__inner,.avue--detail .el-range-editor.is-disabled,.avue--detail .el-range-editor.is-disabled input,.avue--detail .el-textarea.is-disabled .el-textarea__inner{color:#606266;background-color:#fff}.avue--detail .hover-row td{background-color:#fff!important}.avue--detail .el-input-group__append,.avue--detail .el-input-group__prepend{background-color:transparent;border:none}.avue--detail .el-checkbox__input.is-disabled+span.el-checkbox__label{color:#606266}.avue--detail .el-input__inner,.avue--detail .el-textarea__inner{border:none}.avue--detail .el-input__inner::-webkit-input-placeholder,.avue--detail .el-textarea__inner::-webkit-input-placeholder{color:transparent!important}.avue--detail .el-input__inner::-moz-placeholder,.avue--detail .el-textarea__inner::-moz-placeholder{color:transparent!important}.avue--detail .el-input__inner::-ms-input-placeholder,.avue--detail .el-textarea__inner::-ms-input-placeholder{color:transparent!important}.avue--detail .el-radio .is-disabled.is-checked,.avue--detail .el-radio.is-checked{display:inline-block;color:#606266}.avue--detail .el-radio .is-disabled.is-checked .el-radio__label,.avue--detail .el-radio.is-checked .el-radio__label{padding-left:14px;color:#606266;font-weight:400;font-size:14px}.avue--detail .el-checkbox{display:none}.avue--detail .el-checkbox .is-disabled.is-checked,.avue--detail .el-checkbox.is-checked{display:inline-block;color:#606266}.avue--detail .el-checkbox .el-checkbox__inner,.avue--detail .el-form-item.is-required:not(.is-no-asterisk) .el-form-item__label-wrap>.el-form-item__label:before,.avue--detail .el-form-item.is-required:not(.is-no-asterisk)>.el-form-item__label:before,.avue--detail .el-input__suffix,.avue--view .el-input-number.is-disabled .el-input-number__decrease,.avue--view .el-input-number.is-disabled .el-input-number__increase{display:none}.avue--detail .el-checkbox .is-disabled.is-checked .el-checkbox__label,.avue--detail .el-checkbox.is-checked .el-checkbox__label{padding-left:14px;color:#606266;font-weight:400;font-size:14px}.avue--view .el-textarea.is-disabled .el-textarea__inner{background-color:#fff;border-color:#dcdfe6;color:#606266;resize:none}.avue--view .el-input.is-disabled .el-input__inner{background-color:#fff;border-color:#dcdfe6;color:#606266}.avue--view .el-input-number.is-disabled .el-input__inner{padding-left:15px}.avue-grid{position:absolute;top:0;left:0;width:100%;height:100%;background-size:20px 20px,20px 20px;background-image:linear-gradient(rgba(0,0,0,.1) 1px,transparent 0),linear-gradient(90deg,rgba(0,0,0,.1) 1px,transparent 0)}#nprogress .bar,.avue-mask{position:fixed;top:0;left:0}.avue-mask{bottom:0;right:0;background-color:rgba(55,55,55,.6);height:100%;z-index:1000}.avue--card{-webkit-box-shadow:2px 1px 8px rgba(0,0,0,.15);box-shadow:2px 1px 8px rgba(0,0,0,.15);border-radius:5px}.avue-dialog .el-dialog{border-radius:2px}.avue-dialog .el-dialog__title,.avue-dialog .el-drawer__header{color:rgba(0,0,0,.85);font-weight:500;word-wrap:break-word}.el-select-dropdown .el-tree-node__label,.el-select-dropdown__item.selected{font-weight:400}.avue-dialog .el-drawer__header{margin:0;min-height:20px;padding:16px 10px 16px 24px;border-bottom:1px solid #f0f0f0}.avue-dialog .el-drawer__body{padding:30px 10px}.avue-dialog .el-dialog__footer{padding:10px 16px;border-top:1px solid #f0f0f0}.avue-dialog .el-dialog__header{padding:16px 24px;min-height:20px;border-bottom:1px solid #f0f0f0}.avue-dialog iframe{width:100%;height:100%;border:0;overflow:hidden;-webkit-box-sizing:border-box;box-sizing:border-box}.avue-queue--block{display:inline-block}.avue-opacity{opacity:0}.avue-opacity--active{opacity:1}.fade-enter-active,.fade-leave-active{-webkit-transition:opacity .3s;transition:opacity .3s}.fade-enter,.fade-leave-to{opacity:0}.el-tooltip__popper{max-width:60%}.avue-crud .avue-input-number,.avue-crud .el-cascader,.avue-crud .el-date-editor.el-input,.avue-crud .el-date-editor.el-input__inner,.avue-crud .el-select,.avue-form .avue-input-number,.avue-form .el-cascader,.avue-form .el-date-editor.el-input,.avue-form .el-date-editor.el-input__inner,.avue-form .el-select{width:100%!important}.avue-crud .el-input-number .el-input__inner,.avue-form .el-input-number .el-input__inner{text-align:left}.avue-crud .avue-crud__left .el-button,.avue-crud .avue-crud__right .el-button,.avue-form .avue-crud__left .el-button,.avue-form .avue-crud__right .el-button{margin-right:8px;margin-bottom:8px}.avue-crud .el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content,.avue-form .el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content{color:#409EFF}.avue-crud .el-tree-node__label,.avue-form .el-tree-node__label{margin-left:8px}.avue-crud .el-input__inner,.avue-form .el-input__inner{height:38px;line-height:38px}.avue-crud .el-range-editor--small,.avue-form .el-range-editor--small{height:32px;line-height:32px}.avue-crud .el-range-editor--mini,.avue-form .el-range-editor--mini{height:28px;line-height:28px}.avue-crud .el-input--small input,.avue-form .el-input--small input{height:32px;line-height:32px}.avue-crud .el-input--mini input,.avue-form .el-input--mini input{height:28px;line-height:28px}.avue-crud .el-table--medium td,.avue-form .el-table--medium td{padding:7px 0!important}.avue-crud .el-tooltip__popper,.avue-form .el-tooltip__popper{max-width:60%}.avue-crud .el-dropdown-menu__item,.avue-form .el-dropdown-menu__item{line-height:25px}.avue-crud .el-table-filter__list,.avue-form .el-table-filter__list{width:100%;height:300px;overflow-y:auto}.el-form-item--mini .el-color-picker--mini,.el-form-item--mini .el-color-picker--mini .el-color-picker__trigger{width:23px;height:23px}.el-dropdown-menu .el-button--text{width:100%!important}.el-pagination__editor.el-input .el-input__inner{line-height:28px}.el-drawer__body{height:100%}.el-checkbox:last-of-type{margin-right:8px}.el-table colgroup.gutter,.el-table th.gutter{display:table-cell!important}.el-input-number .el-input__suffix{display:none}.el-input-number__decrease,.el-input-number__increase{background-color:transparent;color:#c0c4cc!important;font-size:16px!important}.el-transfer{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.el-tree-node.is-current>.el-tree-node__content{color:#409eff;background-color:#F5F7FA}.el-transfer-panel__item{width:100%}.el-select-dropdown .el-scrollbar .el-scrollbar__view .el-select-dropdown__item{height:auto;padding:0}.el-select-dropdown .el-scrollbar .el-scrollbar__view .el-select-dropdown__item>span{padding:0 20px}.el-select-dropdown ul li>>>.el-tree .el-tree-node__content{height:auto;padding:0 20px}.el-select-dropdown .el-tree>>>.is-current .el-tree-node__label{color:#409EFF;font-weight:700}.el-select-dropdown .el-tree>>>.is-current .el-tree-node__children .el-tree-node__label{color:#606266;font-weight:400}.el-form-item.is-error .avue-dynamic{border:1px solid #F56C6C;border-radius:3px}.el-dropdown-menu__item{padding-top:3px!important;padding-bottom:3px!important}.avue-theme--dark body{background:#000}.avue-theme--dark .el-pagination.is-background .btn-next,.avue-theme--dark .el-pagination.is-background .btn-prev,.avue-theme--dark .el-pagination.is-background .el-pager li{background-color:#151518;color:#525256;-webkit-box-sizing:border-box;box-sizing:border-box;border:1px solid #313135}.avue-theme--dark .el-pagination.is-background .el-pager li:not(.disabled).active{background-color:#151518;border-color:#409EFF}.avue-theme--dark .el-cascader-menu{border-right:solid 1px #313135}.avue-theme--dark .el-select-dropdown.is-multiple .el-select-dropdown__item.selected,.avue-theme--dark .el-select-dropdown.is-multiple .el-select-dropdown__item.selected.hover{background-color:#151518}.avue-theme--dark .el-cascader__dropdown,.avue-theme--dark .el-input__inner,.avue-theme--dark .el-range-input,.avue-theme--dark .el-select-dropdown{background-color:#151518;color:#999;border:1px solid #313135}.avue-theme--dark .el-cascader__dropdown:hover,.avue-theme--dark .el-input__inner:hover,.avue-theme--dark .el-range-input:hover,.avue-theme--dark .el-select-dropdown:hover{border-color:#409EFF}.avue-theme--dark .el-cascader__dropdown::-webkit-input-placeholder,.avue-theme--dark .el-input__inner::-webkit-input-placeholder,.avue-theme--dark .el-range-input::-webkit-input-placeholder,.avue-theme--dark .el-select-dropdown::-webkit-input-placeholder{color:#525256}.avue-theme--dark .el-cascader__dropdown::-moz-placeholder,.avue-theme--dark .el-input__inner::-moz-placeholder,.avue-theme--dark .el-range-input::-moz-placeholder,.avue-theme--dark .el-select-dropdown::-moz-placeholder{color:#525256}.avue-theme--dark .el-cascader__dropdown:-moz-placeholder,.avue-theme--dark .el-input__inner:-moz-placeholder,.avue-theme--dark .el-range-input:-moz-placeholder,.avue-theme--dark .el-select-dropdown:-moz-placeholder{color:#525256}.avue-theme--dark .el-cascader__dropdown:-ms-input-placeholder,.avue-theme--dark .el-input__inner:-ms-input-placeholder,.avue-theme--dark .el-range-input:-ms-input-placeholder,.avue-theme--dark .el-select-dropdown:-ms-input-placeholder{color:#525256}.avue-theme--dark .el-form-item__label{color:#9a9a9f}.avue-theme--dark .el-switch__core{background:#151518;border-color:#151518}.avue-theme--dark .avue-group__item{background-color:#000}.avue-theme--dark .el-table--border,.avue-theme--dark .el-table--group{border-color:#313135}.avue-theme--dark .el-table__body tr.current-row>td,.avue-theme--dark .el-table__body tr.hover-row>td{background-color:#151518}.avue-theme--dark .el-table--border td,.avue-theme--dark .el-table--border th,.avue-theme--dark .el-table__body-wrapper .el-table--border.is-scrolling-left~.el-table__fixed{border-color:#999}.avue-theme--dark .avue-crud .el-table th,.avue-theme--dark .el-table,.avue-theme--dark .el-table th,.avue-theme--dark .el-table tr,.avue-theme--dark .el-table__fixed-footer-wrapper tbody td,.avue-theme--dark .el-table__footer-wrapper tbody td,.avue-theme--dark .el-table__header-wrapper tbody td{background-color:#151518;color:#999;border-color:#999}@media screen and (max-width:992px){.el-dialog__footer{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.el-button+.el-button{margin-left:0}.avue-upload__avatar,.avue-upload__icon,.el-upload--picture-card,.el-upload-list--picture-card .el-upload-list__item{width:100px;height:100px;line-height:100px}.avue-crud .el-form-item,.avue-crud__title .avue-date__radio,.avue-crud__title .avue-date__radio .el-radio-group .el-radio-button__inner,.avue-crud__title .avue-date__radio .el-radio-group label{width:100%}.avue-tip{display:none}.avue-crud__menu,.avue-crud__title{display:block!important}.avue-crud .el-form-item__label{-webkit-box-flex:1;-ms-flex:1;flex:1}.avue-crud .el-form-item__content{-webkit-box-flex:5;-ms-flex:5;flex:5}.avue-crud__searchMenu{text-align:center}.avue-crud__title p{margin-bottom:20px}.avue-crud__title .avue-date__group{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.avue-crud__title .avue-date__date{display:none}.avue-crud__title .avue-date__radio .el-radio-group{display:-webkit-box;display:-ms-flexbox;display:flex}.avue-crud__title .avue-date__radio .el-radio-button:last-child .el-radio-button__inner{border-radius:0 4px 4px 0;border-right:1px solid #dcdfe6}}#nprogress{pointer-events:none}#nprogress .bar{background:#29d;z-index:1031;width:100%;height:2px}#nprogress .peg{display:block;position:absolute;right:0;width:100px;height:100%;-webkit-box-shadow:0 0 10px #29d,0 0 5px #29d;box-shadow:0 0 10px #29d,0 0 5px #29d;opacity:1;-webkit-transform:rotate(3deg) translate(0,-4px);transform:rotate(3deg) translate(0,-4px)}#nprogress .spinner{display:block;position:fixed;z-index:1031;top:15px;right:15px}#nprogress .spinner-icon{width:18px;height:18px;-webkit-box-sizing:border-box;box-sizing:border-box;border:2px solid transparent;border-top-color:#29d;border-left-color:#29d;border-radius:50%;-webkit-animation:nprogress-spinner .4s linear infinite;animation:nprogress-spinner .4s linear infinite}.nprogress-custom-parent{overflow:hidden;position:relative}.nprogress-custom-parent #nprogress .bar,.nprogress-custom-parent #nprogress .spinner{position:absolute}@-webkit-keyframes nprogress-spinner{0%{-webkit-transform:rotate(0)}100%{-webkit-transform:rotate(360deg)}}@keyframes nprogress-spinner{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}
pages/registerUser/registerUser.vue
New file
@@ -0,0 +1,483 @@
<template>
    <view class="registerUser">
        <u-form :model="form" ref="uForm">
            <u-form-item :label="item.title" :prop="item.froms" label-width="200" :left-icon="item.img" :required="item.requireds"
                v-for="(item, index) in list" :key="index">
                <u-input v-model="form[item.froms]"  :placeholder="item.placeholder" />
            </u-form-item>
            <u-form-item label="部门" left-icon="account-fill" label-width="200" :required="true">
                <u-input v-model="form.obj" type="select" placeholder="请选择部门" :border="true" @click="depl" />
                <u-select v-model="show" mode="mutil-column-auto" :list="listbm" @confirm="confirm"></u-select>
            </u-form-item>
            <u-form-item label="性别" label-width="200" left-icon="man">
                <u-radio-group v-model="form.sex">
                    <u-radio v-for="(item, index) in sex" :key="index" :name="item.name" :disabled="item.disabled">
                        {{ item.name }}
                    </u-radio>
                </u-radio-group>
            </u-form-item>
        </u-form>
        <u-button class="submit" @click="zc">
            注册{{faceMsg}}</u-button>
        <!-- <u-button class="submit" @click="submit">提交</u-button> -->
    </view>
</template>
<script>
    export default {
        data() {
            return {
                show: false,
                listbm: [],
                flag: false,
                list: [{
                        title: '账号',
                        img: 'man-add-fill',
                        froms: 'user',
                        requireds:true,
                        placeholder: '请输入帐号'
                    },
                    {
                        title: '密码',
                        img: 'lock-fill',
                        froms: 'pass',
                        requireds:true,
                        placeholder: '请输入密码'
                    },
                    {
                        title: '确认密码',
                        img: 'lock-fill',
                        froms: 'passTwo',
                        requireds:true,
                        placeholder: '请确认密码'
                    },
                    {
                        title: '姓名',
                        img: 'account',
                        froms: 'name',
                        requireds:true,
                        placeholder: '请输入姓名'
                    },
                    // {
                    //     title: '身份证',
                    //     img: 'fingerprint',
                    //     froms: 'carId',
                    //     placeholder: '请输入身份证'
                    // },
                    {
                        title: '手机号',
                        img: 'phone-fill',
                        froms: 'phone',
                        requireds:false,
                        placeholder: '请输入手机号'
                    },
                    // {
                    //     title: '部门',
                    //     img: 'phone-fill',
                    //     froms: 'depl',
                    //     placeholder: '请选择部门'
                    // },
                ],
                sex: [{
                        name: '男',
                        disabled: false
                    },
                    {
                        name: '女',
                        disabled: false
                    },
                ],
                objList: [{
                        text: '赣州'
                    },
                    {
                        text: '南昌'
                    }
                ],
                form: {
                    user: '',
                    pass: '',
                    passTwo: '',
                    name: '',
                    carId: '',
                    phone: '',
                    sex: '男',
                    obj: '',
                    objId: '',
                },
                rules: {
                    user: [{
                        required: true,
                        message: '请输入账号',
                        // 可以单个或者同时写两个触发验证方式
                        trigger: ['change', 'blur'],
                    }],
                    pass: [{
                        required: true,
                        message: '请输入密码',
                        // 可以单个或者同时写两个触发验证方式
                        trigger: ['change', 'blur'],
                    }, {
                        min: 6,
                        message: '密码不能少于6个字',
                        trigger: ['change', 'blur']
                    }],
                    passTwo: [{
                        required: true,
                        message: '请再次输入密码',
                        // 可以单个或者同时写两个触发验证方式
                        trigger: ['change', 'blur'],
                    }, {
                        validator: (rule, value, callback) => {
                            console.log(this.form.pass, value)
                            if (this.form.pass == value) {
                                return true
                            } else {
                                return false
                            }
                            // return this.$u.test.code(this.form.pass,value);
                        },
                        message: '两次输入密码不正确',
                        trigger: ['change', 'blur'],
                    }],
                    name: [{
                        required: true,
                        message: '请输入姓名',
                        // 可以单个或者同时写两个触发验证方式
                        trigger: ['change', 'blur'],
                    }],
                    depts: [{
                        required: true,
                        message: '请输入姓名',
                        // 可以单个或者同时写两个触发验证方式
                        trigger: ['change', 'blur'],
                    }],
                    carId: [{
                            required: true,
                            message: '请输入身份证',
                            // 可以单个或者同时写两个触发验证方式
                            trigger: ['change', 'blur'],
                        },
                        {
                            validator: (rule, value, callback) => {
                                return this.$u.test.idCard(value);
                            },
                            message: '身份证号码不正确',
                            trigger: ['change', 'blur'],
                        }
                    ],
                    // phone: [{
                    //     required: false,
                    //     message: '请输入手机号',
                    //     // 可以单个或者同时写两个触发验证方式
                    //     trigger: ['change', 'blur'],
                    // }, {
                    //     validator: (rule, value, callback) => {
                    //         return this.$u.test.mobile(value);
                    //     },
                    //     message: '手机号码不正确',
                    //     trigger: ['change', 'blur'],
                    // }],
                },
                showGetFace: false,
                faceState: -2,
                facebc: '#fff',
                faceco: '#000',
                faceMsg: ''
            };
        },
        methods: {
            zc(){
                var that = this;
                if(that.form.obj == "" || that.form.obj == null){
                    uni.showToast({
                        title: '请选择部门',
                        icon:'none',
                        duration: 2000
                    });
                    return;
                }
                this.$refs.uForm.validate(valid => {
                    if (valid) {
                console.log(this.form);
                var d = this.form;
                var url = 'http://s16s652780.51mypc.cn/api/zc/inster',
                    data = {
                        // deptid: ,
                        password: d.pass,
                        password2: d.passTwo,
                        phone: d.phone,
                        sex: d.sex == '男' ? 1 : 2,
                        sname: d.name,
                        username: d.user,
                        deptid:d.objId
                    }
                uni.request({
                    url: url,
                    method: 'POST',
                    data: data,
                    success: (res) => {
                        uni.showToast({
                            title: '注册成功,请等待审核',
                            icon:'none',
                            duration: 2000
                        });
                        setTimeout(function(){
                            uni.navigateTo({
                                url: '/pages/loging/loging'
                            })
                        },2000);
                    }
                });
                }
            });
            },
            depl(){
                var that = this;
                uni.request({
                    url: "http://s16s652780.51mypc.cn/api/blade-system/dept/trees",
                    method: 'get',
                    success: (res) => {
                        var routerArr = res.data.data;
                        var arr = that.formatRoutes(routerArr);
                        console.log(arr)
                        var list = [];
                        list.push(arr[0]);
                        that.listbm = list;
                        that.show = true;
                    }
                })
            },
            confirm(e) {
                this.form.obj = e[e.length - 1].label;
                var arr = "";
                for (var i = 0; i < e.length; i++) {
                    arr += e[i].value + ",";
                }
                var obj = arr.substr(0,arr.length-1);
                this.form.objId = obj;
            },
            formatRoutes(routerArr){
                var that = this;
                const arr = [];
                let obj = {};
                routerArr.forEach(router => {
                    const tmp = { ...router };
                    if (tmp.hasChildren == true) {
                        tmp.children = that.formatRoutes(tmp.children);
                        const {id, title} = router;
                        obj = {
                            label: tmp.title,
                            value: tmp.id,
                            children: tmp.children
                        }
                    }else if(tmp.hasChildren == false){
                        obj = {
                            label: tmp.title,
                            value: tmp.id,
                        }
                    }
                    arr.push(obj);
                })
                return arr;
            },
            camera() {
                let that = this;
                uni.showToast({
                    title: '功能研发中',
                    icon:'none',
                    duration: 2000
                });
                // uni.showLoading({
                //     title: '加载中'
                // });
                // var i = 0;
                // var time = setTimeout(() => {
                //     if (i == 0) {
                //         uni.showToast({
                //             title: '未进行验证!',
                //             icon: "none",
                //             duration: 1000
                //         });
                //         clearTimeout(time);
                //         time = null;
                //     } else {
                //         // console.log('进行验证')
                //     }
                // }, 2000)
                // uni.chooseImage({
                //     count: 1, //默认9
                //     sizeType: ['compressed'], //可以指定是原图还是压缩图,默认二者都有
                //     // sourceType: 'camera', //从相册选择
                //     sourceType: ['camera', 'album'], //从相册选择
                //     success: function(res) {
                //         i = 1;
                //         var img = res.tempFiles;
                //         console.log('img', img)
                //         // imgToBase64(res)
                //         var url = that.$store.state.piAPI + 'blade-user/faceCompare',
                //             // var url = 'http://192.168.0.114:82/' + 'blade-user/faceCompare',
                //             data = {
                //                 "name": that.form.name,
                //                 "idCardNo": that.form.carId
                //             };
                //         uni.uploadFile({
                //             url: url,
                //             filePath: img[0].path,
                //             name: 'file',
                //             formData: data,
                //             success: (data) => {
                //                 if (data.statusCode == 200) {
                //                     var data = JSON.parse(data.data);
                //                     if (data.data.result == 0) {
                //                         that.faceState = 1;
                //                         uni.showToast({
                //                             title: '人脸识别成功!',
                //                             icon: "none",
                //                             duration: 1000
                //                         });
                //                     } else {
                //                         that.faceState = -1;
                //                         uni.showToast({
                //                             title: data.data.errMsg == "pic not has face" ?
                //                                 '未检测到人脸' : data.data.errMsg,
                //                             icon: "none",
                //                             duration: 1000
                //                         });
                //                     }
                //                 } else {
                //                     that.faceState = 0;
                //                     uni.showToast({
                //                         title: '服务器连接失败!',
                //                         icon: "none",
                //                         duration: 1000
                //                     });
                //                 }
                //                 console.log(data)
                //             }
                //         });
                //     },
                //     complete: function() {
                //         console.log(4534)
                //     }
                // })
            },
            startRecord() {
                this.flag = true;
                // this.$message.success('开始录制')
                this.$refs.video.startRecord();
            },
            stopRecord() {
                this.flag = false;
                // this.$message.success('请看控制台视频文件的base64')
                this.$refs.video.stopRecord();
            },
            dataChange(data) {
                console.log(data);
            },
            objCallback(index) {
                this.form.obj = this.objList[index].text;
            },
            submit() {
                this.$refs.uForm.validate(valid => {
                    if (valid && this.faceState == 1) {
                        // console.log('验证通过');
                        console.log(this.form);
                        var d = this.form;
                        var url = 'http://s16s652780.51mypc.cn/api/zc/inster',
                            data = {
                                // deptid: ,
                                password: d.pass,
                                password2: d.passTwo,
                                phone: d.phone,
                                sex: d.sex == '男' ? 1 : 2,
                                sname: d.name,
                                username: d.user,
                            }
                        uni.request({
                            url: url,
                            method: 'POST',
                            data: data,
                            success: (res) => {
                                console.log(res)
                            }
                        })
                        // uni.showToast({
                        //     title: '提交成功!',
                        //     icon: "none",
                        //     duration: 1000
                        // });
                    } else {
                        // console.log('验证失败');
                        uni.showToast({
                            title: '确认信息无误后重试!',
                            icon: "none",
                            duration: 1000
                        });
                    }
                });
            }
        },
        onReady() {
            this.$refs.uForm.setRules(this.rules);
        },
        watch: {
            faceState() {
                // console.log(this.faceState);
                if (this.faceState == -1) {
                    this.facebc = '#ff7f29';
                    this.faceco = '#fff';
                    this.faceMsg = '(信息有误!请重新验证)';
                } else if (this.faceState == 1) {
                    this.facebc = '#15dd55';
                    this.faceMsg = '(验证成功!)';
                    this.faceco = '#fff';
                } else if (this.faceState == 0) {
                    this.facebc = '#f7f7f7';
                    this.faceco = '#000';
                    this.faceMsg = '(服务连接失败!)';
                }
            }
        }
    };
</script>
</script>
<style lang="scss" scoped>
    .submit {
        margin: 30rpx 50rpx 0;
        border: none;
        width: 572rpx;
        height: 86rpx;
        line-height: 86rpx;
        box-sizing: border-box;
        border-radius: 15rpx;
        background-color: #14b9c8;
        color: #ffffff;
        &::after {
            content: none;
        }
        &::before {
            content: none;
        }
        &[disabled='true'] {
            background: #e4e4e4;
            font-size: 36rpx;
            font-family: Source Han Sans CN;
            font-weight: 500;
            color: #ffffff;
        }
    }
    .registerUser {
        padding: 0 1.2rem;
    }
</style>
pages/report/initiate.vue
New file
@@ -0,0 +1,158 @@
<template>
    <view class="container">
        <view class='initiae-box'>
            <u-form :model="form" ref="uForm">
                <u-form-item label-position='type' prop="categoryText" label="汇报类别" :required="true">
                    <u-input v-model="form.categoryText" type="select" placeholder="请选择汇报类别" :border="false"
                        @click="categoryClick" />
                    <u-select v-model="categoryShow" mode="single-column" :list="categoryList"
                        @confirm="categoryConfirm">
                    </u-select>
                </u-form-item>
                <u-form-item label-position='top' prop="typeText" label="汇报类型" :required="true">
                    <u-input v-model="form.typeText" type="select" placeholder="请选择汇报类型" :border="false"
                        @click="typeClick" />
                    <u-select v-model="typeShow" mode="single-column" :list="typeList" @confirm="typeConfirm">
                    </u-select>
                </u-form-item>
                <u-form-item label-position='top' prop="content" label="汇报内容" :required="true">
                    <u-input type='textarea' v-model="form.content" placeholder="请输入汇报内容" />
                </u-form-item>
            </u-form>
            <view>
                <u-button type="primary" @click="initiateClick">发送</u-button>
            </view>
            <view>
                <u-toast ref="uToast" />
            </view>
        </view>
    </view>
</template>
<script>
    export default {
        data() {
            return {
                categoryShow: false,
                typeShow: false,
                categoryList: [{
                        value: '1',
                        label: '保安向保安汇报'
                    },
                    {
                        value: '2',
                        label: '保安向民警汇报'
                    },
                    {
                        value: '3',
                        label: '民警向民警汇报'
                    }
                ],
                typeList: [{
                        value: '1',
                        label: '日报'
                    },
                    {
                        value: '2',
                        label: '周报'
                    },
                    {
                        value: '2',
                        label: '月报'
                    }
                ],
                form: {
                    content: '',
                    category: '',
                    type: '',
                    categoryText: '',
                    typeText: ''
                },
                rules: {
                    categoryText: [{
                        required: true,
                        message: '请选择汇报类别',
                        // 可以单个或者同时写两个触发验证方式
                        trigger: ['change', 'blur'],
                    }],
                    typeText: [{
                        required: true,
                        message: '请选择汇报类型',
                        trigger: ['change', 'blur'],
                    }],
                    content: [{
                        min: 5,
                        required: true,
                        message: '汇报内容不能少于5个字',
                        trigger: ['change', 'blur'],
                    }]
                }
            };
        },
        onLoad() {
        },
        onReachBottom() {
        },
        mounted() {},
        onReady() {
            this.$refs.uForm.setRules(this.rules);
        },
        methods: {
            categoryClick() {
                this.categoryShow = true;
            },
            typeClick() {
                this.typeShow = true;
            },
            categoryConfirm(e) {
                this.form.category = e[0].value
                this.form.categoryText = e[0].label
            },
            typeConfirm(e) {
                this.form.type = e[0].value
                this.form.typeText = e[0].label
            },
            initiateClick() {
                this.$refs.uForm.validate(valid => {
                    if (valid) {
                        uni.request({
                            url: this.$store.state.piAPI + "/workReport/submit?deptId=" + this.$store.state
                                .UserData.dept_id + '&userId=' + this.$store.state.puserID,
                            method: "post",
                            data: {
                                type: this.form.type,
                                category: this.form.category,
                                content: this.form.content,
                                userId: this.$store.state.puserID,
                                deptId: this.$store.state.UserData.dept_id,
                                receivedIds: "1416717479708815362"
                            },
                            success: (res) => {
                                if (res.data.msg == "操作成功") {
                                    this.$refs.uToast.show({
                                        title: '发送成功',
                                        type: 'success',
                                        url: '/pages/report/report'
                                    })
                                }
                            }
                        });
                    } else {
                        console.log('验证失败');
                    }
                });
            }
        }
    };
</script>
<style lang="scss">
    .initiae-box {
        padding: 0 30rpx;
    }
</style>
pages/report/report.vue
@@ -1,7 +1,7 @@
<template>
    <view class="container">
        <view class="service-box">
            <u-grid :col="4" :border="false">
            <u-grid :col="3" :border="false">
                <u-grid-item bg-color="transparent" v-for="(item, index) in serviceButton" :key="index" @click="goBusinessPage(item.url,index)">
                    <view class="service-item">
                        <image :src="item.img" mode="widthFix" class="img"></image>
pages/user/center.vue
@@ -15,10 +15,11 @@
                <view class="left">
                    <image :src="useimg" class="avatar" mode=""></image>
                    <view class="user-name">{{ name }}</view>
                    <view class="tag">{{ tenantName }}</view>
                    <view class="tag">用户id: {{ id }}</view>
                    <!-- <view class="tag">{{ tenantName }}</view> -->
                </view>
                <!-- <view @click="$u.func.route('/pages/user/profile')" class="edit-btn">编辑资料</view> -->
                <view class="edit-btn">编辑资料</view>
                <view @click="$u.func.route('/pages/user/profile')" class="edit-btn">编辑资料</view>
                <!-- <view class="edit-btn">编辑资料</view> -->
            </view>
            <!-- 操作按钮 -->
            <view class="nav">
@@ -85,48 +86,63 @@
    export default {
        data() {
            return {
                list: [ {
                list: [{
                    text: '登出'
                }],
                show: false,
                name:'',
                id:'',
                tenantName:''
                name: '',
                id: '',
                tenantName: '',
                useimg: ''
            };
        },
        methods: {
            outInClick(index){
                if(index == 0){
                    this.$store.commit('loginReset'); //重置登录
                    uni.redirectTo({ //关闭并打开
                        url: '../login/login-account',
                        animationType: 'slide-in-top',
                        animationDuration: 20000
                    });
            outInClick(index) {
                if (index == 0) {
                    this.$u.func.logout();
                    // this.$store.commit('loginReset'); //重置登录
                    // uni.redirectTo({ //关闭并打开
                    //     url: '../login/login-account',
                    //     animationType: 'slide-in-top',
                    //     animationDuration: 20000
                    // });
                }
            },
            //登录成功后,获取个人信息
            getOneselfInFo(){
            getOneselfInFo() {
                var that = this;
                //保安信息查询
                uni.request({
                    url:'http://s16s652780.51mypc.cn/api/blade-user/details?id='+this.$store.state.puserID,
                    method:'POST',
                    success(resdata) {
                        that.name = resdata.data.data.realName;
                        that.id = resdata.data.data.id;
                        that.tenantName = resdata.data.data.tenantName;
                    }
                })
                console.log(this.$store.state.UserData)
                if (this.$store.state.UserData) {
                    that.name = this.$store.state.UserData.nick_name
                    that.id = this.$store.state.UserData.user_id
                    // that.tenantName = this.$store.state.UserData.tenantName
                }
                // uni.request({
                //     url:'http://192.168.0.108:81/blade-user/details?id='+this.$store.state.puserID,
                //     method:'POST',
                //     success(resdata) {
                //         that.name = resdata.data.data.realName;
                //         that.id = resdata.data.data.id;
                //         that.tenantName = resdata.data.data.tenantName;
                //     }
                // })
            },
        },onLoad() {
            if(this.$store.state.puserID){
        },
        mounted() {
            console.log(this.$store.state)
            if (this.$store.state.puserID) {
                //获取个人信息
                this.getOneselfInFo();
            }
            if(this.$store.state.avatar!=null && this.$store.state.avatar!=''){
                this.useimg = this.$store.state.avatar;
            if (this.$store.state.UserData.avatar != null && this.$store.state.UserData.avatar != '') {
                this.useimg = this.$store.state.UserData.avatar;
                console.log(this.useimg)
            }
        },
        onLoad() {
        },
    };
</script>
@@ -174,7 +190,7 @@
        .left {
            display: flex;
            flex-direction: column;
            align-items: center;
            align-items: end;
            .avatar {
                width: 128rpx;
pages/user/profile.vue
@@ -7,49 +7,22 @@
        <view class="content">
            <view class="avatar">
                <image :src="userInfo.avatar" class="avatar-image" mode=""></image>
                <image :src="detail.avatar" class="avatar-image" mode=""></image>
                <view class="a" @click="handleChooseImg">更换头像</view>
            </view>
            <view class="form">
                <view class="cell">
                    <view class="name">昵称</view>
                    <input type="text" placeholder="请输入昵称" v-model="userInfo.nick_name" class="ipt"
                    <view class="name">姓名</view>
                    <input type="text" placeholder="请输入姓名" v-model="detail.nick_name" class="ipt"
                        placeholder-class="hold" />
                </view>
                <view class="cell">
                    <view class="name">生日</view>
                    <picker mode="date" class="ipt" :class="{ hold: !detail.birthday }"
                        @change="changeDefaultPicker('birthday', $event)">
                        <view>{{ detail.birthday || '请选择生日' }}</view>
                    </picker>
                </view>
                <view class="cell">
                    <view class="name">性别</view>
                    <picker mode="selector" :range="sexPicker" range-key="name" class="ipt"
                        :class="{ hold: !detail.sex }" @change="changePicker('sex', $event)">
                        <view>{{ detail.sex === 1?'男':'女' || '请选择性别' }}</view>
                    </picker>
                </view>
                <view class="cell">
                    <view class="name">手机号</view>
                    <input type="number" placeholder="请填写手机号" v-model="detail.phone" class="ipt"
                        placeholder-class="hold" />
                </view>
                <view class="cell">
                    <view class="name">邮箱</view>
                    <input v-model="detail.email" class="ipt" placeholder-class="hold" />
                </view>
                <!--<view class="cell">
                    <view class="name">国家/地区</view>
                    <pickRegions :defaultRegion="detail.region" v-model="detail.region"
                        :class="{ hold: !detail.region, ipt: true }">
                        <view>{{ detail.region || '请选择国家/地区' }}</view>
                    </pickRegions>
                </view>-->
            </view>
        </view>
        <!--  -->
        <view class="back" @click="logout">退出登录</view>
        <view>
                <u-toast ref="uToast" />
            </view>
    </view>
</template>
@@ -72,32 +45,50 @@
            };
        },
        onLoad() {
            this.$u.api.userInfo().then(data => {
                console.log(data);
                if (data.success) {
                    this.detail = data.data;
                }
            }).catch(err => {
                console.log(err)
                this.$u.func.showToast({
                    title: err,
                })
            })
            if (this.$store.state
                .UserData) {
                this.detail = this.$store.state
                    .UserData
            }
        },
        methods: {
            logout() {
                this.$u.func.logout();
            },
            submit() {
                let detail = this.detail
                if (!detail.phone && !/^1\d{10}$/.test(detail.phone)) {
                    return uni.showToast({
                        title: '请输入正确的手机号',
                        duration: 2000,
                        icon: 'none'
                    });
                }
                console.log(JSON.stringify(detail));
                // let detail = this.detail
                // if (!detail.phone && !/^1\d{10}$/.test(detail.phone)) {
                //     return uni.showToast({
                //         title: '请输入正确的手机号',
                //         duration: 2000,
                //         icon: 'none'
                //     });
                // }
                var that = this;
                uni.request({
                    url: this.$store.state.piAPI + "/blade-user/update-info",
                    method: "post",
                    data: {
                        realName: this.detail.nick_name,
                        avatar: this.detail.avatar,
                        id: this.detail.user_id
                    },
                    success: (res) => {
                        console.log(res, 885858884488)
                        if (res.data.msg == "操作成功") {
                            that.$refs.uToast.show({
                                title: '修改成功',
                                type: 'success',
                                callback: () => {
                                    uni.navigateBack();
                                }
                            })
                        }
                    }
                });
            },
            changeDefaultPicker(name, e) {
                this.detail[name] = e.detail.value;
static/images/dispatch/ZHBA.png
static/images/dispatch/imgissue.png
static/images/dispatch/issue.png

static/images/report/initiate.png
static/images/wz.png
store/actions.js
@@ -16,6 +16,7 @@
                },
            ],
            pasw = md5(data.pass),
            // url = 'http://223.82.109.183:2080/api/blade-auth/oauth/token?tenantId=000000&username=' + data.name +
            url = 'http://192.168.0.108:81/blade-auth/oauth/token?tenantId=000000&username=' + data.name +
            ' &password=' + pasw + '&grant_type=password&scope=all&type=account';
        // url ='http://192.168.0.109:82/blade-auth/oauth/token';
@@ -44,15 +45,16 @@
            //     // dataType: 'JSON',
            success: (res) => {
                if (res.statusCode == 200) {
                    if(res.data.error_code == "400"){
                    if (res.data.error_code == "400") {
                        uni.showToast({
                            title: '密码错误,请重试',
                            icon:'none',
                            icon: 'none',
                            duration: 2000
                        });
                        return;
                    }
                    store.commit('getUserData',res.data)
                    console.log(res.data, 897998)
                    store.commit('getUserData', res.data)
                    // console.log(res.data,123542);
                    data.isit = true;
                    data.userName = res.data.nick_name; //警袁姓名
@@ -62,7 +64,8 @@
                    data.pass = data.pass;
                    // data.userPhon = res.user_id;
                    store.commit('login', data);
                }
                    uni.$u.func.login(res.data)
                }
            },
            fail: (res) => {
                console.log('失去连接 请稍等');
store/index.js
@@ -13,23 +13,7 @@
}
// 需要永久存储,且下次APP启动需要取出的,在state中的变量名
let saveStateKeys = ['userInfo', 'accessToken', 'isLogin'];
// 保存变量到本地存储中
const saveLifeData = function(key, value) {
    // 判断变量名是否在需要存储的数组中
    if (saveStateKeys.indexOf(key) != -1) {
        // 获取本地存储的lifeData对象,将变量添加到对象中
        let tmp = uni.getStorageSync('lifeData');
        // 第一次打开APP,不存在lifeData变量,故放一个{}空对象
        tmp = tmp ? tmp : {};
        tmp[key] = value;
        // 执行这一步后,所有需要存储的变量,都挂载在本地的lifeData对象中
        uni.setStorageSync(key, value);
        uni.setStorageSync('lifeData', tmp);
    }
}
const store = new Vuex.Store({
    // 下面这些值仅为示例,使用过程中请删除
    state: {
@@ -48,8 +32,9 @@
            useName: '过客 ',
        },
        logPath: '',
        piAPI: 'http://192.168.0.108:81',
        // piAPI: 'http://223.82.109.183:2080/api',
        // piAPI: 'http://localhost:82/',
        piAPI: 'http://192.168.0.108:81',
        puserName: '',
        puserID: '',
        puserIphone:'',
store/mutations.js
@@ -1,5 +1,21 @@
import WxStorage from "../static/lib/wxStorage.js" //微信Storage
// 需要永久存储,且下次APP启动需要取出的,在state中的变量名
let saveStateKeys = ['userInfo', 'accessToken', 'isLogin'];
// 保存变量到本地存储中
const saveLifeData = function(key, value) {
    // 判断变量名是否在需要存储的数组中
    if (saveStateKeys.indexOf(key) != -1) {
        // 获取本地存储的lifeData对象,将变量添加到对象中
        let tmp = uni.getStorageSync('lifeData');
        // 第一次打开APP,不存在lifeData变量,故放一个{}空对象
        tmp = tmp ? tmp : {};
        tmp[key] = value;
        // 执行这一步后,所有需要存储的变量,都挂载在本地的lifeData对象中
        uni.setStorageSync(key, value);
        uni.setStorageSync('lifeData', tmp);
    }
}
const mutations = {
    $uStore(state, payload) {
        // 判断是否多层级调用,state中为对象存在的情况,诸如user.info.score = 1
@@ -42,11 +58,11 @@
        state.message.useName = '过客 ';
        WxStorage.clear();
    },
    getUse(state,data){
    getUse(state, data) {
        state.puserName = data.userName;
        state.puserID = data.userID;
    },
    getUserData(state,data){
    getUserData(state, data) {
        state.UserData = data;
    }
}
utils/func.js
@@ -6,6 +6,7 @@
        vm.$u.vuex('userInfo', userInfo)
        vm.$u.vuex('accessToken', userInfo.access_token)
        vm.$u.vuex('isLogin', true)
        console.log(vm)
        uni.switchTab({
            url: '/pages/home/home'
        })
@@ -27,6 +28,7 @@
    // 检查登录状态
    const checkLogin = (e = {}) => {
        if (!vm.isLogin) {
            uni.navigateTo({
                url: '/pages/login/login-account'
@@ -38,6 +40,7 @@
    // 跳转路由前检查登录状态
    const route = (url) => {
        console.log(vm)
        if (!vm.isLogin) {
            uni.showToast({
                title: '请先登录',
xcxMapWz/img/wz.png
xcxMapWz/js/vueMain.js
@@ -31,18 +31,21 @@
            that.beginCome();
        },
        beginCome() {
            var data = [{
                    "id": '100000',
                    "place": '无数据',
                    "state": '0',
                    "dtype": '0',
                    "size": '300',
                    "jd": "115.822311",
                    "wd": "28.646341"
                }]
            var data = []
                //url解码
            this.getdata = this.getQueryVariable('data') || data;
            this.map = this.beginMap(this.map, this.getdata); //创建并接受map
            axios.get('http://192.168.0.108:81/blade-user/page?size=99999').then((res) => {
               console.log(res, 4848)
               res.data.data.records.forEach(item => {
                   if (item.longitude && item.latitude) {
                       data.push(item)
                   }
               })
            })
            // this.getdata = this.getQueryVariable('data') || data;
            this.map = this.beginMap(this.map, data); //创建并接受map
            this.move = new myDomMove('#seedata', '.title', '#map');
            this.map.invalidateSize(true); //应用地图高度
            this.move.followFinger(this.map, 'down');
@@ -59,29 +62,29 @@
        },
        beginMap(map, data) {
            var that = this,
                center = [data[0].wd, data[0].jd],
                url = `http://s16s652780.51mypc.cn/api/alarm/alarm/APP-getAlarm?id=${data[0].id}`;
                center = [Number(data[0].longitude), Number(data[0].latitude)];
                // url = `http://s16s652780.51mypc.cn/api/alarm/alarm/APP-getAlarm?id=${data[0].id}`;
            // url = `http://localhost:89/alarm/alarm/APP-getAlarm?id=${data[0].id}`;
            this.nowPosition = center;
            axios.post(url).then((res) => {
                if (res.data.data.length != 0) {
                    var dat = res.data.data[0];
                    for (var key in dat) {
                        if (dat[key] == null || dat[key] == '') {
                            dat[key] = '暂无'
                        }
                    }
                    this.seedata = dat;
            // axios.post(url).then((res) => {
            //     if (res.data.data.length != 0) {
            //         var dat = res.data.data[0];
            //         for (var key in dat) {
            //             if (dat[key] == null || dat[key] == '') {
            //                 dat[key] = '暂无'
            //             }
            //         }
            //         this.seedata = dat;
                } else {
                    this.seedata = data[0];
                }
            })
            //     } else {
            //         this.seedata = data[0];
            //     }
            // })
            var createMap = () => {
                map = L.map('map', { //初始化地图
                    center: center,
                    zoom: 20,
                    zoom: 10,
                    minZoom: 2,
                    maxZoom: 17,
                    attributionControl: false, //去掉右下角
@@ -110,9 +113,12 @@
                busIcon = new transportIcon({
                    iconUrl: './img/red.png'
                });
                wzIcon = new transportIcon({
                    iconUrl: './img/wz.png'
                });
            var setData = (a) => { //定义图标
                marker = L.marker([a.wd, a.jd], {
                    icon: planeIcon,
                marker = L.marker([Number(a.longitude), Number(a.latitude)], {
                    icon: wzIcon,
                    // icon: a.dtype == 0 ? carIcon : a.dtype == 1 ? planeIcon : a.dtype == 2 ? busIcon : '',
                    // title: title,
                    myData: { //自定义数据
@@ -126,25 +132,25 @@
                    console.log('没有坐标', i)
                } else {
                    setData(a);
                    that.getDHLine(a.jd, a.wd);
                    // that.getDHLine(a.jd, a.wd);
                }
                markers.addLayer(marker);
            }
            map.addLayer(markers);
            markers.on('click', function(a) {
                // that.drawer = true;
                that.seedata = a.layer.options.myData;
                that.nowPosition = [that.seedata.wd, that.seedata.jd]
                $('#seedata').css('top', '');
                $('#map').css("height", (index, value) => { //改变地图高度
                    return '50%';
                })
                map.invalidateSize(true); //应用地图高度
                that.move.destruction();
                that.move.followFinger(map, 'down');
            // markers.on('click', function(a) {
            //     // that.drawer = true;
            //     that.seedata = a.layer.options.myData;
            //     that.nowPosition = [that.seedata.wd, that.seedata.jd]
            //     $('#seedata').css('top', '');
            //     $('#map').css("height", (index, value) => { //改变地图高度
            //         return '50%';
            //     })
            //     map.invalidateSize(true); //应用地图高度
            //     that.move.destruction();
            //     that.move.followFinger(map, 'down');
            });
            // });
            this.nowPosition = center;
            return map; //抛出map
        },
xcxMapWz/xcxmap.html
@@ -60,6 +60,73 @@
            <img style="width: 80%;height: 80%;" src="./img/dingwei.png" alt="">
        </div>
        <div id="map">
        </div>
        <div id="seedata" style='display: none'>
            <div class="main">
                <div class="div-alarm-people">
                    <div class="f-m-once">
                        <img class="f-m-o-t-img" src="./img/people1.png" alt="">
                        <div class="f-m-o-title">接警人</div>
                        <div class="f-m-o-center">{{seedata.alarmPeople}}</div>
                    </div>
                    <div class="f-m-once-phone-number">
                        <img class="f-m-o-t-img" src="./img/phone.png" alt="">
                        <div class="f-m-o-title">联系电话</div>
                        <div class="f-m-o-center">{{seedata.phoneNumber}}</div>
                    </div>
                </div>
                <div class="interval"></div>
                <div class="div-alarm-people">
                    <div class="f-m-once">
                        <img class="f-m-o-t-img" src="./img/alarm.png" alt="">
                        <div class="f-m-o-title">报警时间</div>
                        <div class="f-m-o-center">{{seedata.alarmTime}}</div>
                    </div>
                    <div class="f-m-once-alarm-type">
                        <img class="f-m-o-t-img" src="./img/type1.png" alt="">
                        <div class="f-m-o-title">报警类型</div>
                        <div class="f-m-o-center">{{seedata.alarmType}}</div>
                    </div>
                </div>
                <div class="interval"></div>
                <div class="div-alarm-people">
                    <div class="f-m-once-desc">
                        <img class="f-m-o-t-img-desc" src="./img/desc2.png" alt="">
                        <div class="f-m-o-title-desc">备注</div>
                        <div class="f-m-o-center-desc">{{seedata.bz}}</div>
                    </div>
                </div>
                <div class="interval"></div>
                <div class="but">
                    <div class="buta" @click="shipingClick(true)">
                        <img class="b-b-img" src="./img/shiping.png" alt="">
                    </div>
                    <!-- 加上display: none不会闪烁 -->
                    <div class="shipingPopup" v-show="shipingPopupShow" style="display: none;">
                        <div class="s-p-main">
                            <div @click="shipingClick(false)">
                                <img src="./img/gaunbi.png" alt="" class="s-p-gaunbi">
                            </div>
                            <!-- <video style="height: 550px; width: 100%" controls="controls"
                                id="real_video_shipingPopup" src=""></video> -->
                            <video style="height: 550px; width: 100%" controls="controls" :src="shipingM3u8Url"></video>
                        </div>
                    </div>
                    <div class="butb" @click="resultFeedbackClick">结果反馈</div>
                    <div class="butc">
                        <img class="b-b-img" src="./img/huifang.png" alt="">
                        <!-- <div class="huifangPopup">
                            回放
                        </div> -->
                    </div>
                </div>
            </div>
        </div>
    </div>
    <!-- vue渲染 -->