Преглед изворни кода

溧水app代码数据页面、新建页面

sunyadv пре 5 година
родитељ
комит
57687af425

BIN
lss_vue/src/assets/image/add.png


BIN
lss_vue/src/assets/image/camera.png


BIN
lss_vue/src/assets/image/loadMore.png


BIN
lss_vue/src/assets/image/my_assets.png


BIN
lss_vue/src/assets/image/my_com.png


BIN
lss_vue/src/assets/image/my_message.png


BIN
lss_vue/src/assets/image/my_score.png


BIN
lss_vue/src/assets/image/my_sug.png


BIN
lss_vue/src/assets/image/my_sys.png


BIN
lss_vue/src/assets/image/noList.png


BIN
lss_vue/src/assets/image/on_1.png


BIN
lss_vue/src/assets/image/on_2.png


BIN
lss_vue/src/assets/image/pull_down.png


BIN
lss_vue/src/assets/image/userHead.jpg


+ 549 - 0
lss_vue/src/views/assets/assets.vue

@@ -0,0 +1,549 @@
+<template>
+	<div>
+        <div class="head">
+            <div class="searchbox">
+                <img src="../../assets/image/search.png" class="searchbox_img">
+                <input type="text" v-model="keyWord" class="searchbox_text" />
+                <button v-on:click="searchKeyword()" class="searchbox_button">搜索</button>
+            </div>
+            <div class="btn_body">
+                <img v-on:click="showList()" class="btn_img" src="../../assets/image/add.png">
+                <div class="btn_list" v-show="popupVisible">
+                    <div v-on:click="register()"><img src="../../assets/image/register.png">登记资产</div>
+                    <div v-on:click="exportExcel()"><img src="../../assets/image/export.png">导出报表</div>
+                </div>
+            </div>
+            <div class="searchkey">
+                <div class="searchkey_word">
+                    <a v-for="(item,index) in labels" :id="item.id" v-bind:class="{'active':index==0}" v-on:click="chooseTag(item.id,1)">{{item.name}}</a>
+                </div>
+                <div class="searchkey_btn">
+                    <img v-on:click="showFilter()" src="../../assets/image/pull_down.png">
+                </div>
+            </div>
+        </div>
+        <section class="_sorting-address">
+            <ul class="address_first">
+                <li v-for="(item,index) in labels" :id="'btn'+item.id" v-bind:class="{'active':index==0}" v-on:click="chooseTag(item.id,0)">{{item.name}}</li>
+            </ul>
+        </section>
+        <div class="body">
+            <div class="noList" v-if="list.length==0">
+                <img src="../../assets/image/noList.png">
+            </div>
+            <ul v-else v-infinite-scroll="loadMore" infinite-scroll-disabled="loading" infinite-scroll-distance="10">
+                <li v-for="item in list" v-on:click="jumpTo(item.id)">
+                    <div class="item_img"><img src="../../assets/image/userHead.jpg"></div>
+                    <div class="text item_name">{{item.name}}</div>
+                    <div class="text item_int">{{item.modelNumber}}</div>
+                    <div class="text item_num">{{item.goodsNos.length}}台</div>
+                </li>
+                <div class="order" v-if="haveMore">
+                    <span class="line"></span>
+                    <span class="txt">没有更多了</span>
+                    <span class="line"></span>
+                </div>
+            </ul>
+        </div>
+    </div>
+</template>
+
+<script>
+    import util from '../../common/js/util'
+    
+	export default {
+		data() {
+			return {
+                keyWord: "",
+                list: [],
+                labels: [],
+                pageNum: 1,
+                total: 1,
+                tagId: 0,
+                popupVisible: false,
+                loading: false,
+                haveMore: false,
+			}
+		},
+		methods: {
+            // 资产列表
+            getList() {
+                this.$indicator.open();
+                this.http.post(this.port.assets.list, {
+                    'keyName': this.keyWord,
+                    'tagId': this.tagId,
+                    'pageNum': this.pageNum
+                } , 
+                res => {
+                    this.$indicator.close();
+                    if (res.code == "ok") {
+                        this.list = res.data.list;
+                        this.total = res.data.total==0?1:res.data.total;
+                    } else {
+                        this.$toast({
+                            message: res.msg,
+                            duration: 2000
+                        });
+                    }
+                }, error => {
+                    this.$indicator.close();
+                    this.$toast({
+                        message: error,
+                        duration: 2000
+                    });
+                })
+            },
+
+            loadMore() {
+                if(this.pageNum == this.total) {
+                    this.haveMore = true;
+                } else if(this.pageNum < this.total) {
+                    this.loading = true;
+                    this.http.post(this.port.assets.list, {
+                        'keyName': this.keyWord,
+                        'tagId': this.tagId,
+                        'pageNum': this.pageNum ++
+                    } , 
+                    res => {
+                        this.loading = false;
+                        if (res.code == "ok") {
+                            this.total = res.data.total==0?1:res.data.total;
+                            if(res.data.list.length != 0) {
+                                for(var i in res.data.list) {
+                                    this.list.push(res.data.list[i]);
+                                }
+                            }
+                        } else {
+                            this.$toast({
+                                message: res.msg,
+                                duration: 2000
+                            });
+                        }
+                    }, error => {
+                        this.loading = false;
+                        this.$toast({
+                            message: error,
+                            duration: 2000
+                        });
+                    })
+                }
+            },
+
+            // 标签列表
+			getLabels() {
+                this.http.post(this.port.label.list, {} , 
+                res => {
+                    if (res.code == "ok") {
+                        this.tagId = res.data[0].id;
+                        this.getList();
+                        this.labels = res.data;
+                    } else {
+                        this.$toast({
+                            message: res.msg,
+                            duration: 2000
+                        });
+                    }
+                }, error => {
+                    this.$toast({
+                        message: error,
+                        duration: 2000
+                    });
+                })
+            },
+
+            // 关键词搜索
+            searchKeyword() {
+                this.getList();
+            },
+
+            // 右上角按钮
+            showList() {
+                this.popupVisible = !this.popupVisible;
+            },
+
+            // 标签筛选
+            showFilter() {
+                $("._sorting-medical").removeClass("fixed-top");
+                if($("._sorting-address").hasClass("fixed-top")){
+                    $(".searchkey_btn img").removeClass("rotate")
+                    $(".searchkey_btn img").addClass("rotate1")
+                    $(this).removeClass("current");
+                    $("._sorting-address").removeClass("fixed-top");
+                    $('._navbar').attr('style','position: fixed;top:0;');
+                }else{
+                    $(".searchkey_btn img").removeClass("rotate1")
+                    $(".searchkey_btn img").addClass("rotate")
+                    $("._sorting-address").addClass("fixed-top");
+                    $(this).addClass("current");
+                    $("._current-medical").removeClass("current");
+                    $('._navbar').attr('style','position: fixed;top:0;');
+                }
+            },
+
+            // 标签选择
+            chooseTag(id,type) {
+                $("#"+id).addClass("active").siblings("a").removeClass("active");
+                $("#btn"+id).addClass("active").siblings().removeClass("active");
+                if(type == 0) {
+                    var width = $("#"+id).offset().left;
+                    $(".searchkey_word").animate({scrollLeft:(width - 0.05) + "rem"}, 200);
+                }   
+                $("._sorting-medical").removeClass("fixed-top");
+                $(".searchkey_btn img").removeClass("rotate")
+                $(".searchkey_btn img").addClass("rotate1")
+                $(this).removeClass("current");
+                $("._sorting-address").removeClass("fixed-top");
+                $('._navbar').attr('style','position: fixed;top:0;');
+                this.pageNum = 1;
+                this.total = 1;
+                this.tagId = id;
+                this.getList();
+            },
+
+            jumpTo(id) {
+                this.$router.push("/assets/" + id);
+            },
+            
+            register() {
+                this.$router.push("/assetsRegister");
+            },
+
+            exportExcel() {
+                console.log('导出')
+            },
+        },
+        created() {
+            this.getLabels();
+        },
+		mounted() {
+		}
+	}
+
+</script>
+
+<style scoped>
+    /* 头部搜索框、筛选栏 START */
+    .head {
+        position: fixed;
+        width: 100%;
+        box-sizing:border-box;
+        padding: 0.07rem 0.15rem 0 0.15rem;
+        background: #ffffff;
+        border-bottom: 1px solid #dfdfdf;
+        z-index: 105;
+    }
+
+    .searchbox {
+        display: inline-block;
+        /* width: 75%; */
+        width: 88%;
+        position: relative;
+        vertical-align: middle;
+    }
+
+    .searchbox img.searchbox_img {
+        width:0.3rem;
+        height: 0.3rem;
+        position: absolute;
+        left: 0.04rem;
+        /* top: 0.02rem; */
+    }
+
+    .searchbox input.searchbox_text {
+        font-size: 0.16rem;
+        height: 0.3rem;
+        border-style:none;
+        border: 1px solid #2680EB;
+        border-radius: 50px;
+        box-sizing:border-box;
+        width: 100%;
+        padding: 0 0.45rem 0 0.33rem;
+    }
+
+    input.searchbox_text:focus{
+        outline: none;
+    }
+
+    .searchbox button.searchbox_button {
+        border: 0;
+        background-color: transparent;
+        outline: none;
+        height: 0.3rem;
+        font-size: 0.15rem;
+        background: #2680EB;
+        color: #fff;
+        border-radius: 50px;
+        padding: 0 0.12rem;
+        position: absolute;
+        right: -0.01rem;
+        top: 0;
+    }
+    
+    .btn_body {
+        display: inline-block;
+        float: right;
+        position: relative;
+    }
+
+    .btn_img {
+        float: right;
+        width: 0.3rem;
+        vertical-align: middle;
+    }
+    
+    .btn_list {
+        position: absolute;
+        right: 0;
+        top: 0.37rem;
+        border:#aaa;
+        background: #fcfcfc;
+        box-shadow: 5px 5px 10px #ccc;
+        z-index: 105;
+    }
+
+    .btn_list:before {
+        display: inline-block;
+        width: 0;
+        height: 0;
+        border: solid transparent;
+        border-width: 10px;
+        border-bottom-color: #fcfcfc;
+        content: "";
+        position: absolute;
+        top: -20px;
+        right: 0.06rem;
+    }
+
+    .btn_list > div {
+        width: 0.8rem;
+        font-size: 0.15rem;
+        padding: 0.1rem 0.15rem;
+        border-bottom: 1px solid #efefef;
+        text-align: center;
+    }
+
+    .btn_list > div img {
+        width: 0.14rem;
+        height: 0.14rem;
+        vertical-align: middle;
+        margin-right: 0.05rem;
+    }
+
+    .btn_list > div span {
+        height: 0.15rem;
+        line-height: 0.15rem;
+        vertical-align: middle;
+    }
+
+    .searchkey {
+        height: 0.35rem;
+        line-height: 0.35rem;
+        margin-top: 0.08rem;
+    }
+
+    .searchkey .searchkey_word {
+        width: 90%;
+        display: inline-block;
+        overflow-x: auto;
+        white-space: nowrap;
+        vertical-align: middle;
+    }
+
+    .searchkey .searchkey_word::-webkit-scrollbar {
+        display:none
+    }
+
+    .searchkey .searchkey_word a {
+        font-size: 0.15rem;
+        padding: 0 0.05rem;
+        color: #333;
+        text-decoration:none;
+    }
+
+    .searchkey .searchkey_word a.active {
+        color: #2680EB;
+    }
+
+    .searchkey .searchkey_btn {
+        display: inline-block;
+        width: 10%;
+        height: 100%;
+        float: right;
+    }
+
+    .searchkey .searchkey_btn img {
+        width: 0.36rem;
+        height: 0.3rem;
+        vertical-align: middle;
+    }
+
+    .address_first .current{
+        background:#eee;
+        color: #6f83ff;
+        border-left: 2px solid #6f83ff;
+    }
+    
+    ._sorting-address {
+        position:fixed;
+        top: -50%;
+        width: 100%;
+        height: 50%;
+        z-index: 1;
+        -webkit-transition-duration: 0.4s;
+        background: #fff;
+    }
+
+    ._sorting-address>ul {
+        margin: 0;
+        padding: 0;
+        overflow: auto;
+        height: 100%;
+        width: 100%;
+        -webkit-transition-duration: 0.4s;
+        box-sizing:border-box;
+        padding: 0.08rem 0.1rem;
+    }
+
+    ._sorting-address>ul>li {
+        display: inline-block;
+        height: 0.2rem;
+        line-height: 0.2rem;
+        font-size: 0.14rem;
+        color: #ccc;
+        padding: 0 0.12rem;
+        margin: 0.03rem 0.03rem;
+        border: 1px solid #ccc;
+        border-radius: 50px;
+    }
+    
+    ._sorting-address>ul>li.active {
+        border: 1px solid #2680EB;
+        color: #2680EB;
+    }
+
+    ._sorting-address>ul.address_first {
+        background: #fff;
+        position: absolute;
+        z-index: 1;
+    }
+
+    .fixed-top{
+        top: 0.81rem;
+    }
+
+    .fixed-top::after{
+        content: "";
+        width: 100%;
+        height: 100%;
+        display: block;
+        background:rgba(0,0,0,0.2);
+    }
+
+    .rotate {
+        transform-origin: center center;
+        transform: rotate(180deg);
+        -webkit-transform: rotate(180deg);
+        -moz-transform: rotate(180deg);
+        -ms-transform: rotate(180deg);
+        -o-transform: rotate(180deg);
+        transition: transform 0.2s;
+        -moz-transition: -moz-transform 0.2s;
+        -moz-transition: -moz-transform 0.2s;
+        -o-transition: -o-transform 0.2s;
+        -ms-transition: -ms-transform 0.2s;
+    }
+
+    .rotate1 {
+        transform-origin: center center;
+        transform: rotate(0deg);
+        -webkit-transform: rotate(0deg);
+        -moz-transform: rotate(0deg);
+        -ms-transform: rotate(0deg);
+        -o-transform: rotate(0deg);
+        transition: transform 0.2s;
+        -moz-transition: -moz-transform 0.2s;
+        -moz-transition: -moz-transform 0.2s;
+        -o-transition: -o-transform 0.2s;
+        -ms-transition: -ms-transform 0.2s;
+    }
+    /* 头部搜索框、筛选栏 END */
+
+    /* 列表页 START */
+    .body {
+        -webkit-box-flex: 1;
+        -webkit-flex: 1;
+        -ms-flex: 1;
+        flex: 1;
+        width: 100%;
+        padding: 0.81rem 0 0 0;
+        /* height: calc(100% - 0.4rem); */
+        height: calc(100% - 0.6rem);
+        overflow-y: auto;
+        background: #EFEFEF;
+    }
+
+    .body > ul {
+        padding: 0 0.12rem;
+        margin-top: 0;
+    }
+    
+    .body > ul li {
+        display: inline-block;
+        width: 1.5rem;
+        padding: 0.08rem 0.05rem;
+        background: #fff;
+        margin: 0.06rem 0.04rem;
+        border-radius: 10px; 
+    }
+
+    .body > ul li .item_img img {
+        width: 1.5rem;
+        height: 1.5rem;
+    }
+
+    .body > ul li .text {
+        height: 0.23rem;
+        line-height: 0.23rem;
+        margin: 0.02rem  0 0 0;
+    }
+
+    .body > ul li .item_int {
+        color: #B5B5B5;
+        font-size: 0.12rem;
+    }
+
+    .body > ul li .item_num {
+        color: #448DE4;
+        font-weight: 600;
+    }
+
+    .noList {
+        text-align: center;
+        padding: 1.5rem 0;
+    }
+
+    .noList img {
+        width: 1.2rem;
+        height: 1.2rem;
+    }
+
+    .order {
+        height: 0.6rem;
+        line-height: 0.6rem;
+        text-align: center;
+    }
+
+    .order .line {
+        display: inline-block;
+        width: 1.2rem;
+        border-top: 1px solid #ccc ;
+        vertical-align: middle;
+    }
+
+    .order .txt {
+        color: #ccc;
+        font-size: 0.13rem;
+        vertical-align: middle;
+    }
+    /* 列表页 END */
+</style>

+ 282 - 0
lss_vue/src/views/assets/assetsDetail.vue

@@ -0,0 +1,282 @@
+<template>
+	<div class="detail">
+        <mt-header class="detail_head" fixed title="资产详情">
+            <router-link to="" slot="left">
+                <mt-button icon="back" v-on:click="jumpBack()"></mt-button>
+            </router-link>
+            <mt-button slot="right">操作记录</mt-button>
+        </mt-header>
+        <div class="detail_body">
+            <div class="detailBox userInfo" v-on:click="jumpTo(0)">
+                <div class="left">
+                    <img src="../../assets/image/userHead.jpg">
+                </div>
+                <div class="right">
+                    <div>
+                        <span class="name">{{detail.name}}</span>
+                    </div>
+                    <div class="department">
+                        {{detail.modelNumber}}
+                    </div>
+                    <div>
+                        <span class="num">{{detail.goodsNos!=null?detail.goodsNos.length:0}}{{detail.unit}}</span>
+                        <span class="arrow"><img src="../../assets/image/on_1.png"></span>
+                    </div>
+                </div>
+            </div>
+            <div class="detailBox">
+                <mt-cell title="维护资产" is-link v-on:click.native="jumpTo(1)"></mt-cell>
+                <mt-cell title="资产编号" is-link v-on:click.native="jumpTo(2)"></mt-cell>
+            </div>
+            <div class="detailBox">
+                <div class="assDel assDel_Head">
+                    资产详情列表
+                </div>
+                <div class="assDel assDel_Status">
+                    <span class="active" v-on:click="changeState(-1)">全部 {{delList.length}}</span>
+                    <span v-on:click="changeState(0)">在用 {{useList.length}}</span>
+                    <span v-on:click="changeState(1)">维护 {{serList.length}}</span>
+                    <span v-on:click="changeState(2)">报废 {{scrList.length}}</span>
+                    <span v-on:click="changeState(3)">未用 {{unuList.length}}</span>
+                </div>
+                <div class="assDel assDel_List">
+                    <div class="one_assDel" v-for="item in delList" v-if="state == -1 || item.state == state">
+                        <div class="one_assDel_head">
+                            <span class="canJump">{{item.modelNo}}</span>
+                            <span v-if="item.state == 0">在用</span>
+                            <span v-if="item.state == 1">维护</span>
+                            <span v-if="item.state == 2">报废</span>
+                            <span v-if="item.state == 3">未用</span>
+                        </div>
+                        <div class="one_assDel_body">
+                            <span>张旭也 18255585207</span>
+                            <img src="../../assets/image/loadMore.png">
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+                id: this.$route.params.id,
+                detail: "",
+                delList: [],
+                useList: [],
+                serList: [],
+                scrList: [],
+                unuList: [],
+                state: -1,
+			}
+		},
+		methods: {
+            getDetail() {
+                this.$indicator.open();
+                this.http.post(this.port.assets.detail, {
+                    'id': this.id
+                } , 
+                res => {
+                    this.$indicator.close();
+                    if (res.code == "ok") {
+                        this.detail = res.data;
+                        this.delList = res.data.goodsNos;
+                        var list = res.data.goodsNos,
+                            useList = [],
+                            serList = [],
+                            scrList = [],
+                            unuList = [];
+                        for(var i in list) {
+                            if(list[i].state == 0) {
+                                useList.push(list[i])
+                            } else if(list[i].state == 1) {
+                                serList.push(list[i])
+                            } else if(list[i].state == 2) {
+                                scrList.push(list[i])
+                            } else if(list[i].state == 3) {
+                                unuList.push(list[i])
+                            }
+                        }
+                        this.useList = useList;
+                        this.serList = serList;
+                        this.scrList = scrList;
+                        this.unuList = unuList;
+                    } else {
+                        this.$toast({
+                            message: res.msg,
+                            duration: 2000
+                        });
+                    }
+                }, error => {
+                    this.$indicator.close();
+                    this.$toast({
+                        message: error,
+                        duration: 2000
+                    });
+                })
+            },
+
+            changeState(type) {
+                $(".assDel_Status span:eq("+ (type + 1) +")").addClass("active").siblings().removeClass("active");
+                this.state = type;
+            },
+
+            jumpBack() {
+                this.$router.go(-1);
+            }
+        },
+        created() {
+            this.getDetail();
+        },
+		mounted() {
+            
+		}
+	}
+
+</script>
+
+<style scoped>
+    .detail_head {
+        background: #fff;
+        color: #333;
+        height: 0.4rem;
+    }
+
+    .detail_body {
+        margin-top: 0.4rem;
+    }
+
+    .detail {
+        background: #EFEFEF;
+    }
+
+    .detailBox {
+        background: #fff;
+        margin-bottom: 0.15rem;
+    }
+
+    .userInfo {
+        padding: 0.22rem 0.1rem;
+    }
+
+    .left{
+        float:left;
+        margin-right: 0.15rem;
+    }
+
+    .left img {
+        width: 0.6rem;
+        height: 0.6rem;
+    }
+
+    .right div{
+        line-height: 0.21rem;
+        white-space: nowrap;
+        overflow: hidden;
+        text-overflow: ellipsis;
+    }
+
+    span.name {
+        font-size: 0.16rem;
+        font-weight: 600;
+        margin: 0 0.15rem 0 0;
+        width: 100%;
+        overflow: hidden;
+        white-space: nowrap;
+    }
+    
+    span.num {
+        font-size: 0.14rem;
+        color: #26a2ff;
+    }
+
+    div.department {
+        font-size: 0.13rem;
+        color: #9E9E9E;
+    }
+
+    span.arrow {
+        float: right;
+    }
+
+    span.arrow img {
+        transform: rotate(-90deg);
+        -ms-transform: rotate(-90deg); /* IE 9 */
+        -moz-transform: rotate(-90deg); /* Firefox */
+        -webkit-transform: rotate(-90deg); /* Safari and Chrome */
+        -o-transform: rotate(-90deg); /* Opera */
+    }
+
+    .assDel {
+        padding: 0.12rem 0.1rem;
+    }
+
+    .assDel_Status span {
+        display: inline-block;
+        text-align: center;
+        width: 18%;
+        color: #aaa;
+        font-size: 0.15rem;
+    }
+
+    .assDel_Status span.active {
+        color: #26a2ff;
+    }   
+
+    .one_assDel {
+        padding: 0 0.1rem;
+    }
+
+    .one_assDel_head span {
+        display:inline-block;
+        vertical-align: middle;
+        color: #666;
+        line-height: 0.4rem;
+    }
+
+    .one_assDel_head span:nth-child(1){
+        width: 85%;
+        font-size: 0.15rem;
+        overflow: hidden;
+        white-space: nowrap;
+        text-overflow: ellipsis;
+    }
+
+    .one_assDel_head span:nth-child(1).canJump {
+        color: #26a2ff;
+    }
+
+    .one_assDel_head span:nth-child(2){
+        float: right;
+    }
+
+    .one_assDel_body span {
+        display:inline-block;
+        color: #aaa;
+        vertical-align: middle;
+    }
+
+    .one_assDel_body img {
+        float: right;
+        width: 0.25rem;
+        height: 0.25rem;
+        vertical-align: middle;
+    }
+</style>
+<style>
+    .detail_head .mint-header-title {
+        font-weight: 600;
+        font-size: 0.15rem;
+    }
+
+    .detail_head .mint-button-text {
+        color: #26a2ff;
+    }
+
+    .detailBox .mint-cell {
+        padding: 0 0 0 0.02rem;
+    }
+</style>

+ 425 - 0
lss_vue/src/views/assets/assetsRegister.vue

@@ -0,0 +1,425 @@
+<template>
+	<div class="detail">
+        <mt-header class="detail_head" fixed title="资产登记">
+            <router-link to="" slot="left">
+                <mt-button icon="back" v-on:click="jumpBack()"></mt-button>
+            </router-link>
+        </mt-header>
+        <div class="detail_body">
+            <div class="detailBox">
+                <mt-field label="物品名称" placeholder="请输入物品名称" v-model="assetsForm.name"></mt-field>
+                <mt-field label="型号" placeholder="请输入物品型号" v-model="assetsForm.modelNumber"></mt-field>
+                <mt-field label="数量" placeholder="请输入数量" type="number" v-model="assetsForm.number"></mt-field>
+                <mt-field label="单位" placeholder="请输入单位" v-model="assetsForm.unit"></mt-field>
+                <div class="upload">
+                    <div class="left">物品图片</div>
+                    <div class="right upload_add" v-on:click="choosePic()">
+                        <div class="upload_add_image" align="center">
+                            <img src="../../assets/image/camera.png" class="camera">
+                            <p class="font13">添加图片</p>
+                        </div>
+                    </div>
+                    <input @change="fileChange($event)" type="file" accept="image/*" id="upload_file" style="display: none"/>
+                </div>
+                <mt-field label="地址" placeholder="请输入地址" v-model="assetsForm.address"></mt-field>
+            </div>
+            <div class="detailBox">
+                <mt-field label="生产厂家" placeholder="请输入生产厂家" v-model="assetsForm.factory"></mt-field>
+                <mt-field label="服务期限" placeholder="请输入服务期限" v-model="assetsForm.serviceLife"></mt-field>
+                <mt-field label="下次维护日期" placeholder="请选择下次维护日期" type="date" v-model="assetsForm.nextIndate"></mt-field>
+            </div>
+            <div class="detailBox">
+                <div class="left">所属分类</div>
+                <div class="right">
+                    <ul class="address_first">
+                        <li v-for="(item,index) in labels" :id="'btn'+item.id" v-bind:class="{'active':index==0}" v-on:click="chooseTag(item.id)">{{item.name}}</li>
+                        <li v-on:click="addNewTag()" class="add">+</li>
+                    </ul>
+                </div>
+            </div>
+            <div class="btn">
+                <mt-button size="large" type="primary" v-on:click.native="toNext()">下一步</mt-button>
+            </div>
+        </div>
+        <mt-popup v-model="popupVisible" position="right" class="allocation">
+            <mt-header class="detail_head" fixed title="分配资产">
+                <router-link to="" slot="left">
+                    <mt-button icon="back" v-on:click="toPrev()"></mt-button>
+                </router-link>
+            </mt-header>
+            <div class="detailBox textColor">
+                资产编号构成:字母前缀 + 四位数字,请填写字母编号(最多四位)数字编号由系统排序生成
+            </div>
+            <div class="detailBox">
+                <mt-field label="部门编号" placeholder="请输入部门编号" v-model="assetsForm.deptStr"></mt-field>
+                <mt-field label="字母前缀" placeholder="请输入字母前缀" v-model="assetsForm.goodStr"></mt-field>
+            </div>
+            <div class="example">示例:Lishui-LXDN0001、Lishui-LXDN0002</div>
+            <mt-button class="allBtn" size="large" type="primary" v-on:click.native="submit()">确定</mt-button>
+            <mt-button class="allBtn" size="large" v-on:click.native="jumpBack()">取消</mt-button>
+        </mt-popup>
+    </div>
+</template>
+
+<script>
+    import { MessageBox } from 'mint-ui';
+	export default {
+		data() {
+			return {
+                user: JSON.parse(sessionStorage.getItem("user")),
+                assetsForm: {
+                    userId: JSON.parse(sessionStorage.getItem("user")).id,
+                    name: '',
+                    modelNumber: '',
+                    number: '',
+                    unit: '',
+                    address: '',
+                    factory: '',
+                    serviceLife: '',
+                    nextIndate: '',
+                    file: '',
+                    deptStr: '',
+                    goodStr: '',
+                },
+                popupVisible: false,
+                labels: [],
+                tagId: 0,
+                img: '',
+                size: 0,
+                limit: 1,
+                imgList: [],
+			}
+		},
+		methods: {
+            // 标签列表
+			getLabels() {
+                this.http.post(this.port.label.list, {} , 
+                res => {
+                    if (res.code == "ok") {
+                        this.tagId = res.data[0].id;
+                        this.labels = res.data;
+                    } else {
+                        this.$toast({
+                            message: res.msg,
+                            duration: 2000
+                        });
+                    }
+                }, error => {
+                    this.$toast({
+                        message: error,
+                        duration: 2000
+                    });
+                })
+            },
+
+            addNewTag() {
+                MessageBox({
+                    $type:'prompt',
+                    title:'',
+                    message:'请输入资产类型名称',
+                    closeOnClickModal:false,
+                    showCancelButton:true,
+                    inputValidator:function(v){
+                        if (v === null) {
+                           return true;
+                        }
+                        if (v != ""){
+                            return true
+                        } else {
+                            return false
+                        }
+                    },
+                    inputErrorMessage:'请输入资产类型名称',
+                    showInput:true
+                }).then(({ value, action }) => {
+                    if(value == null) {
+                        this.$toast({
+                            message: '创建失败',
+                            duration: 2000
+                        });
+                        return false;
+                    } else {
+                        this.$indicator.open();
+                        this.http.post(this.port.label.add, {
+                            'name': value,
+                        } , 
+                        res => {
+                            this.$indicator.close();
+                            if (res.code == "ok") {
+                                this.getLabels();
+                            } else {
+                                this.$toast({
+                                    message: res.msg,
+                                    duration: 2000
+                                });
+                            }
+                        }, error => {
+                            this.$indicator.close();
+                            this.$toast({
+                                message: error,
+                                duration: 2000
+                            });
+                        })
+                    }
+                }).catch(() => {
+                });
+            },
+
+            chooseTag(id) {
+                $("#btn"+id).addClass("active").siblings().removeClass("active");
+                this.tagId = id;
+            },
+
+            // 图片上传
+            choosePic() {
+                document.getElementById('upload_file').click();
+            },
+
+            fileChange(el) {
+                if (!el.target.files[0].size) return;
+                this.fileAdd(el.target.files[0]);
+                el.target.value = ''
+            },
+
+            fileAdd(file) {
+                if (this.limit !== undefined) this.limit--;
+                if (this.limit !== undefined && this.limit < 0) return;
+
+                //总大小
+                this.size = this.size + file.size;
+                //判断是否为图片文件
+                if (file.type.indexOf('image') == -1) {
+                    this.$toast({
+                        message: '请选择图片文件',
+                        duration: 2000
+                    });
+                } else {
+                    let reader = new FileReader();
+                    let image = new Image();
+                    let _this = this;
+                    reader.readAsDataURL(file);
+                    reader.onload = function () {
+                        file.src = this.result;
+                        image.onload = function(){
+                            let width = image.width;
+                            let height = image.height;
+                            file.width = width;
+                            file.height = height;
+                            _this.imgList.push({
+                                file
+                            });
+                        };
+                        image.src= file.src;
+                    }
+                    _this.assetsForm.file = reader;
+                }
+            },
+
+            // 创建
+            submit() {
+                // var fileObj = params.file;
+                var form = new FormData();
+                // form.append("file", fileObj);
+                form.append("userId", JSON.parse(sessionStorage.getItem("user")).id);
+                form.append("name", this.assetsForm.name);
+                form.append("modelNumber", this.assetsForm.modelNumber);
+                form.append("number", this.assetsForm.number);
+                form.append("unit", this.assetsForm.unit);
+                form.append("address", this.assetsForm.address);
+                form.append("factory", this.assetsForm.factory);
+                form.append("serviceLife", this.assetsForm.serviceLife);
+                form.append("nextIndate", this.assetsForm.nextIndate);
+                form.append("deptStr", this.assetsForm.deptStr);
+                form.append("goodStr", this.assetsForm.goodStr);
+                this.$indicator.open();
+                this.http.uploadFile( this.port.assets.add, form,
+                res => {
+                    this.$indicator.close();
+                    if (res.code == "ok") {
+                        this.$toast({
+                            message: '创建成功',
+                            duration: 2000
+                        });
+                        this.$router.push({ path: '/assets' });
+                    } else {
+                        this.$toast({
+                            message: res.msg,
+                            duration: 2000
+                        });
+                    }
+                },
+                error => {
+                    this.$indicator.close();
+                    this.$toast({
+                        message: error,
+                        duration: 2000
+                    });
+                });
+            },
+
+            toNext() {
+                this.popupVisible = true;
+            },
+
+            toPrev() {
+                this.popupVisible = false;
+            },
+
+            jumpBack() {
+                this.$router.go(-1);
+            }
+        },
+        created() {
+            this.getLabels();
+        },
+		mounted() {
+            
+		}
+	}
+
+</script>
+
+<style scoped>
+    .detail_head {
+        background: #fff;
+        color: #333;
+        height: 0.4rem;
+    }
+
+    .detail_body {
+        margin-top: 0.4rem;
+    }
+
+    .detail {
+        background: #EFEFEF;
+    }
+
+    .detailBox {
+        background: #fff;
+        margin-bottom: 0.15rem;
+    }
+
+    .left{
+        float:left;
+        margin: 0.15rem;
+    }
+
+    .upload .left {
+        margin: 0.1rem 0.14rem;
+    }
+
+    .right div{
+        line-height: 0.21rem;
+        white-space: nowrap;
+        overflow: hidden;
+        text-overflow: ellipsis;
+    }
+
+    .btn {
+        width: 80%;
+        margin: 0.2rem auto 80px;
+    }
+
+    .allocation {
+        width: 100%;
+        height: 100%;
+    }
+
+    .address_first .current{
+        background:#eee;
+        color: #6f83ff;
+        border-left: 2px solid #6f83ff;
+    }
+
+    .right > ul {
+        margin: 0;
+        padding: 0;
+        overflow: auto;
+        -webkit-transition-duration: 0.4s;
+        box-sizing:border-box;
+        padding: 0.08rem 0.1rem;
+    }
+
+    .right > ul > li {
+        display: inline-block;
+        height: 0.2rem;
+        line-height: 0.2rem;
+        font-size: 0.14rem;
+        color: #ccc;
+        padding: 0 0.12rem;
+        margin: 0.06rem 0.03rem;
+        border: 1px solid #ccc;
+        border-radius: 50px;
+        min-width: 0.3rem;
+        text-align: center;
+    }
+
+    .right > ul > li.add {
+        border: 1px solid #777;
+        color: #777;
+    }
+    
+    .right > ul > li.active {
+        border: 1px solid #2680EB;
+        color: #2680EB;
+    }
+
+    .upload_add {
+        display: inline-block;
+        margin-bottom: 0.2rem;
+    }
+
+    .upload_add_image {
+        padding-top: 0.08rem;
+        margin-left: 0.1rem;
+        width: 1rem;
+        height: 0.9rem;
+        border: 1px dashed rgba(0, 0, 0, .2);
+    }
+
+    .upload_add-image .camera {
+        font-size: 24px;
+    }
+
+    .upload_add_image p {
+        padding: 0;
+        margin: 0;
+        color: #8e8e8e;
+    }
+
+    .textColor {
+        margin-top: 0.4rem;
+        color: #8e8e8e;
+        padding: 0.12rem;
+        font-size: 0.12rem;
+    }
+
+    .example {
+        color: #8e8e8e;
+        padding: 0.02rem 0.12rem;
+        font-size: 0.12rem;
+    }
+
+    .allBtn {
+        width: 80%;
+        margin: 0.18rem auto;
+    }
+</style>
+<style>
+    .detail_head .mint-header-title {
+        font-weight: 600;
+        font-size: 0.15rem;
+    }
+
+    .detail_head .mint-button-text {
+        color: #26a2ff;
+    }
+
+    .detailBox .mint-cell {
+        padding: 0 0 0 0.02rem;
+    }
+    
+    .mint-popup.allocation  {
+        background: #efefef;
+    }
+</style>

+ 524 - 0
lss_vue/src/views/data/data.vue

@@ -0,0 +1,524 @@
+<template>
+	<div class="data">
+        <mt-navbar v-model="selected" class="tab_head" v-on:click.native="changeTab">
+            <mt-tab-item id="tab1">数据存储监控</mt-tab-item>
+            <mt-tab-item id="tab2">云平台监控</mt-tab-item>
+            <mt-tab-item id="tab3">数据交换</mt-tab-item>
+        </mt-navbar>
+        <mt-tab-container v-model="selected">
+            <mt-tab-container-item id="tab1">
+                <div class="headMsg">
+                    <div>中心数据库总量:{{tab1_head1}}</div>
+                    <div>五大数据库总量:{{tab1_head2}}</div>
+                </div>
+                <div id="tab1_chart1" class="echarts"></div>
+                <div class="echartsBox">
+                    <table class="tab1_table">
+                        <thead><tr><td>库名</td><td>数据量(GB)</td><td>占比(%)</td></tr></thead>
+                        <tbody>
+                            <tr><td>入口库</td><td>335</td><td>13.08%</td></tr>
+                            <tr><td>信用库</td><td>310</td><td>20.1%</td></tr>
+                            <tr><td>地理库</td><td>234</td><td>9.13%</td></tr>
+                            <tr><td>法人库</td><td>135</td><td>5.27%</td></tr>
+                            <tr><td>电子证据</td><td>1548</td><td>60.42%</td></tr>
+                        </tbody>
+                    </table>
+                </div>
+                <div id="tab1_chart2" class="echarts echartsBox"></div>
+                <div id="tab1_chart3" class="echarts echartsBox bottom"></div>
+            </mt-tab-container-item>
+            <mt-tab-container-item id="tab2">
+                <div class="headMsg">
+                    <div>总用户数:{{tab2_head1}}</div>
+                    <div>在线用户数:{{tab2_head1}}</div>
+                    <div>上云系统总数量:{{tab2_head1}}</div>
+                </div>
+                <div id="tab2_chart1" class="echarts echartsBox"></div>
+                <div id="tab2_chart2" class="echarts echartsBox"></div>
+                <div id="tab2_chart3" class="echarts echartsBox"></div>
+                <div class="echartsBox bottom">
+                    <table class="tab1_table">
+                        <thead><tr><td>各委办局</td><td>接入效率</td><td>交换效率</td></tr></thead>
+                        <tbody>
+                            <tr><td>交通</td><td>335</td><td>13.08%</td></tr>
+                            <tr><td>公安</td><td>310</td><td>20.1%</td></tr>
+                            <tr><td>卫计</td><td>234</td><td>9.13%</td></tr>
+                            <tr><td>国土</td><td>135</td><td>5.27%</td></tr>
+                            <tr><td>城管</td><td>1548</td><td>60.42%</td></tr>
+                            <tr><td>安监</td><td>1548</td><td>60.42%</td></tr>
+                            <tr><td>房产局</td><td>1548</td><td>60.42%</td></tr>
+                            <tr><td>旅游</td><td>1548</td><td>60.42%</td></tr>
+                            <tr><td>水务</td><td>1548</td><td>60.42%</td></tr>
+                            <tr><td>法院</td><td>1548</td><td>60.42%</td></tr>
+                            <tr><td>环保</td><td>1548</td><td>60.42%</td></tr>
+                            <tr><td>财政</td><td>1548</td><td>60.42%</td></tr>
+                        </tbody>
+                    </table>
+                </div>
+            </mt-tab-container-item>
+            <mt-tab-container-item id="tab3">
+                <div class="headMsg">
+                    <div>当日数据交换量:{{tab3_head1}}</div>
+                    <div>数据交换次数:{{tab3_head2}}</div>
+                </div>
+            </mt-tab-container-item>
+        </mt-tab-container>
+    </div>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+                selected: "tab1",
+                tab1_head1: "423GB",
+                tab1_head2: "1168GB",
+                tab2_head1: "1523638",
+                tab2_head2: "35216",
+                tab2_head3: "102",
+                tab3_head1: "114388",
+                tab3_head2: "35216",
+                list: [],
+                labels: [],
+                pageNum: 1,
+                tagId: 0,
+                popupVisible: false,
+                department: ['交通', '公安', '卫计', '国土', '城管', '安监', '房产局', '教育', '旅游', '水务', '法院', '环保', '财政'],
+			}
+		},
+		methods: {
+            // 数据存储监控
+            set_tab1_chart1(){
+                var myChart = this.echarts.init(document.getElementById('tab1_chart1'));
+                var option = {
+                    backgroundColor: '#fff',
+                    title : {
+                        text: '五大库数据储存量',
+                        x:'left'
+                    },
+                    tooltip: {
+                        trigger: 'item',
+                        formatter: "{a} <br/>{b}: {c} ({d}%)",
+                        color:'#000',
+                        textStyle:{
+                            color:"#fff",
+                        }
+                    },
+                    legend: {
+                        orient: 'vertical',
+                        x: 'right',
+                        data:['入口库','信用库','地理库','法人库','电子证据'],
+                        textStyle:{
+                            color:'#888',
+                            fontSize:12
+                        }
+                    },
+                    series: [
+                        {
+                            name:'数据储存量',
+                            type:'pie',
+                            radius: ['35%', '55%'],
+                            avoidLabelOverlap: false,
+                            color:['#F68077','#66B1FD','#0BC3FF','#FCF255','#90FB4C'],
+                            label: {
+                                normal: {  //正常的样式
+                                    show: true,
+                                    position: 'left'
+                                },
+                                emphasis: { //选中时候的样式
+                                    show: true,
+                                    textStyle: {
+                                        fontSize: '20',
+                                        fontWeight: 'bold'
+                                    }
+                                }
+                            },  //提示文字
+                            labelLine: {
+                                normal: {
+                                    show: false
+                                }
+                            },
+                            data:[
+                                {value:335, name:'入口库'},
+                                {value:310, name:'信用库'},
+                                {value:234, name:'地理库'},
+                                {value:135, name:'法人库'},
+                                {value:1548, name:'电子证据'}
+                            ]
+                        }
+                    ]
+                };
+                myChart.setOption(option);
+            },
+
+            set_tab1_chart2(){
+                var myChart = this.echarts.init(document.getElementById('tab1_chart2'));
+                var option = {
+                    backgroundColor: '#fff',
+                    title : {
+                        text: '五大库使用情况',
+                        x:'left',
+                    },
+                    tooltip: {
+                        trigger: 'axis',
+                        axisPointer: {
+                            type: 'cross',
+                            crossStyle: {
+                                color: '#999'
+                            }
+                        }
+                    },
+                    xAxis: {
+                        axisTick:{
+                            show:false
+                        },
+                        axisLine: {
+                            show: false,
+                        },
+                        axisLabel: {  
+                            interval:0,  
+                            rotate:40  
+                        },
+                        type: 'category',
+                        data: ['交通', '公安', '卫计', '国土', '城管', '安监', '房产局', '教育', '旅游', '水务', '法院', '环保', '财政']
+                    },
+                    yAxis: {
+                        axisTick:{
+                            show:false
+                        },
+                        axisLine: {
+                            show: false,
+                        },
+                        type: 'value',
+                        name: '单位:%',
+                    },
+                    series: [{
+                        data: [12, 20, 15, 80, 70, 11, 30, 80, 30, 80, 20, 50, 60],
+                        type: 'bar',
+                        barWidth : 10,
+                        itemStyle:{
+                            normal:{
+                                color: '#FF5B29',
+                            }
+                        },
+                    }]
+                };
+                myChart.setOption(option);
+            },
+
+            set_tab1_chart3(){
+                var myChart = this.echarts.init(document.getElementById('tab1_chart3'));
+                var option = {
+                    backgroundColor: '#fff',
+                    title : {
+                        text: '中心库数据存储情况',
+                        x:'left',
+                    },
+                    tooltip: {
+                        trigger: 'axis',
+                        axisPointer: {
+                            type: 'cross',
+                            crossStyle: {
+                                color: '#999'
+                            }
+                        }
+                    },
+                    xAxis: {
+                        axisTick:{
+                            show:false
+                        },
+                        axisLine: {
+                            show: false,
+                        },
+                        axisLabel: {  
+                            interval:0,  
+                            rotate:40  
+                        },
+                        type: 'category',
+                        data: ['交通', '公安', '卫计', '国土', '城管', '安监', '房产局', '教育', '旅游', '水务', '法院', '环保', '财政']
+                    },
+                    yAxis: {
+                        axisTick:{
+                            show:false
+                        },
+                        axisLine: {
+                            show: false,
+                        },
+                        type: 'value',
+                        name: '单位:%',
+                    },
+                    series: [{
+                        data: [12, 20, 15, 80, 70, 11, 30, 80, 30, 80, 20, 50, 60],
+                        type: 'bar',
+                        barWidth : 10,
+                        itemStyle:{
+                            normal:{
+                                color: '#FF5B29',
+                            }
+                        },
+                    }]
+                };
+                myChart.setOption(option);
+            },
+
+            // 云平台监控
+            set_tab2_chart1(){
+                var myChart = this.echarts.init(document.getElementById('tab2_chart1'));
+                var option = {
+                    backgroundColor: '#fff',
+                    title : {
+                        text: '上云系统数量分析',
+                        x:'left',
+                    },
+                    tooltip: {
+                        trigger: 'axis',
+                        axisPointer: {
+                            type: 'cross',
+                            crossStyle: {
+                                color: '#999'
+                            }
+                        }
+                    },
+                    xAxis: {
+                        axisTick:{
+                            show:false
+                        },
+                        axisLine: {
+                            show: false,
+                        },
+                        axisLabel: {  
+                            interval:0,  
+                            rotate:40  
+                        },
+                        type: 'category',
+                        data: ['交通', '公安', '卫计', '国土', '城管', '安监', '房产局', '教育', '旅游', '水务', '法院', '环保', '财政']
+                    },
+                    yAxis: {
+                        axisTick:{
+                            show:false
+                        },
+                        axisLine: {
+                            show: false,
+                        },
+                        type: 'value',
+                        name: '单位:%',
+                    },
+                    series: [{
+                        data: [12, 20, 15, 80, 70, 11, 30, 80, 30, 80, 20, 50, 60],
+                        type: 'bar',
+                        barWidth : 10,
+                        itemStyle:{
+                            normal:{
+                                color: '#FF5B29',
+                            }
+                        },
+                    }]
+                };
+                myChart.setOption(option);
+            },
+
+            set_tab2_chart2(){
+                var myChart = this.echarts.init(document.getElementById('tab2_chart2')) , 
+                    _this = this;
+                var option = {
+                    backgroundColor: '#fff',
+                    title : {
+                        text: '数据接入效率',
+                        x:'left',
+                    },
+                    tooltip: {
+                        trigger: 'axis',
+                        axisPointer: {
+                            type: 'cross',
+                            crossStyle: {
+                                color: '#999'
+                            }
+                        }
+                    },
+                    radar: [{
+                        indicator: (function (){
+                            var res = [];
+                            for(var i in _this.department) {
+                                res.push({text: _this.department[i] , max:100});
+                            }
+                            console.log(res)
+                            return res;
+                        })(),
+                        radius: 80
+                    }],
+                    series: [{
+                        type: 'radar',
+                        itemStyle: {normal: {areaStyle: {type: 'default'}}},
+                        data: [
+                            {
+                                name: '接入效率',
+                                value: [2.6, 5.9, 9.0, 26.4, 28.7, 70.7, 75.6, 82.2, 48.7, 18.8, 6.0, 2.3],
+                                itemStyle: {
+                                    normal: {
+                                        color: 'rgba(84,196,168,0.7)',
+                                        lineStyle: {
+                                            color: '#fff',
+                                        },
+                                    },
+                                },
+                            }
+                        ]
+                    }]
+                };
+                myChart.setOption(option);
+            },
+
+            set_tab2_chart3(){
+                var myChart = this.echarts.init(document.getElementById('tab2_chart3')) , 
+                    _this = this;
+                var option = {
+                    backgroundColor: '#fff',
+                    title : {
+                        text: '数据交换效率',
+                        x:'left',
+                    },
+                    tooltip: {
+                        trigger: 'axis',
+                        axisPointer: {
+                            type: 'cross',
+                            crossStyle: {
+                                color: '#999'
+                            }
+                        }
+                    },
+                    radar: [{
+                        indicator: (function (){
+                            var res = [];
+                            for(var i in _this.department) {
+                                res.push({text: _this.department[i] , max:100});
+                            }
+                            console.log(res)
+                            return res;
+                        })(),
+                        radius: 80
+                    }],
+                    series: [{
+                        type: 'radar',
+                        itemStyle: {normal: {areaStyle: {type: 'default'}}},
+                        data: [
+                            {
+                                name:'交换效率',
+                                value:[2.0, 4.9, 7.0, 23.2, 25.6, 76.7, 35.6, 62.2, 32.6, 20.0, 6.4, 3.3],
+                                itemStyle: {
+                                    normal: {
+                                        color: 'rgba(252,202,94,0.7)',
+                                        lineStyle: {
+                                            color: '#fff',
+                                        },
+                                    },
+                                },
+                            }
+                        ]
+                    }]
+                };
+                myChart.setOption(option);
+            },
+
+            changeTab() {
+                if(this.selected == 'tab1') {
+                    this.set_tab1_chart1();
+                    this.set_tab1_chart2();
+                    this.set_tab1_chart3();
+                } else if(this.selected == 'tab2') {
+                    this.set_tab2_chart1();
+                    this.set_tab2_chart2();
+                    this.set_tab2_chart3();
+                } else if(this.selected == 'tab3') {
+                    
+                }
+            }
+        },
+        created() {
+        },
+		mounted() {
+            // 数据存储监控
+            this.set_tab1_chart1();
+            this.set_tab1_chart2();
+            this.set_tab1_chart3();
+		}
+	}
+
+</script>
+
+<style scoped>
+    .tab_head {
+        position: fixed;
+        z-index: 105;
+        width: 100%;
+        top: 0;
+        
+    }
+
+    .mint-tab-container {
+        /* height: calc(100% - 46px); */
+        margin-top: 46px!important;
+        margin-bottom: 0.45rem;
+        overflow-y: auto;
+        background: #efefef;
+    }
+
+    .data {
+        background: #EFEFEF;
+    }
+
+    .headMsg {
+        background: #fff;
+        margin: 0.02rem 0 0.05rem 0;
+        padding: 0.1rem 0.2rem;
+        font-size: 0.15rem;
+    }
+
+    .headMsg {
+        line-height: 0.25rem;
+    }
+
+    .echarts {
+        width: 100%;
+        height: 3rem;
+        background: #fff;
+        padding: 0.05rem;
+        box-sizing:border-box;
+    }
+
+    .echartsBox {
+        margin-bottom: 0.15rem;
+    }
+
+    .tab1_table {
+        width: 100%;
+        border-collapse:collapse;
+        border-spacing:1;
+        border-spacing:0;
+    }
+
+    .tab1_table thead {
+        background: #F8F8F8;
+    }
+
+    .tab1_table tbody {
+        background: #fff;
+    }
+
+    .tab1_table tr td {
+        line-height: 0.4rem;
+        padding: 0 0.15rem;
+    }
+
+    .tab1_table tr td:nth-child(1) {
+        width: 30%;
+    }
+
+    .bottom {
+        margin-bottom: 0.5rem;
+    }
+</style>
+<style>
+    .tab_head .mint-tab-item-label {
+        font-size: 0.14rem;
+    }
+</style>

+ 138 - 0
lss_vue/src/views/my/my.vue

@@ -0,0 +1,138 @@
+<template>
+	<div class="my">
+        <div class="mybox userInfo" v-on:click="jumpTo(0)">
+            <div class="left">
+                <img src="../../assets/image/userHead.jpg">
+            </div>
+            <div class="right">
+                <div>
+                    <span class="name">张学</span>
+                    <span class="phone">18255585207</span>
+                </div>
+                <div class="department">
+                    ****公司****部门****组
+                    <span class="arrow"><img src="../../assets/image/on_1.png"></span>
+                </div>
+            </div>
+        </div>
+        <div class="mybox">
+            <mt-cell title="我的消息" is-link v-on:click.native="jumpTo(1)"><img slot="icon" src="../../assets/image/my_message.png" width="24" height="24"></mt-cell>
+            <mt-cell title="我的资产" is-link v-on:click.native="jumpTo(2)"><img slot="icon" src="../../assets/image/my_assets.png" width="24" height="24"></mt-cell>
+            <mt-cell title="我的评分" is-link v-on:click.native="jumpTo(3)"><img slot="icon" src="../../assets/image/my_score.png" width="24" height="24"></mt-cell>
+            <mt-cell title="我的建议" is-link v-on:click.native="jumpTo(4)"><img slot="icon" src="../../assets/image/my_sug.png" width="24" height="24"></mt-cell>
+        </div>
+        <div class="mybox">
+            <mt-cell title="通讯录" is-link v-on:click.native="jumpTo(5)"><img slot="icon" src="../../assets/image/my_com.png" width="24" height="24"></mt-cell>
+            <mt-cell title="管理制度" is-link v-on:click.native="jumpTo(6)"><img slot="icon" src="../../assets/image/my_sys.png" width="24" height="24"></mt-cell>
+        </div>
+    </div>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+                keyWord: "",
+                list: [],
+                labels: [],
+                pageNum: 1,
+                tagId: 0,
+                popupVisible: false,
+			}
+		},
+		methods: {
+            jumpTo(type) {
+                switch(type){
+                    case 0:
+                        console.log(1111)
+                        break;
+                    case 1:
+                        console.log(1111)
+                        break;
+                    case 2:
+                        console.log(1111)
+                        break;
+                    case 3:
+                        console.log(1111)
+                        break;
+                    case 4:
+                        console.log(1111)
+                        break;
+                    case 5:
+                        console.log(1111)
+                        break;
+                    case 6:
+                        console.log(1111)
+                        break;
+                    default:
+                        return false
+                        break;
+                }
+            }
+        },
+        created() {
+        },
+		mounted() {
+            
+		}
+	}
+
+</script>
+
+<style scoped>
+    .my {
+        background: #EFEFEF;
+    }
+
+    .mybox {
+        background: #fff;
+        margin-bottom: 0.15rem;
+    }
+
+    .userInfo {
+        padding: 0.22rem 0.2rem;
+    }
+
+    .left{
+        float:left;
+        margin-right: 0.15rem;
+    }
+
+    .left img {
+        width: 0.6rem;
+        height: 0.6rem;
+        border-radius: 50%;
+    }
+
+    .right div{
+        line-height: 0.3rem;
+    }
+
+    span.name {
+        font-size: 0.16rem;
+        font-weight: 600;
+        margin: 0 0.15rem 0 0;
+    }
+    
+    span.phone {
+        font-size: 0.13rem;
+        color: #9E9E9E;
+    }
+
+    div.department {
+        font-size: 0.13rem;
+        color: #9E9E9E;
+    }
+
+    span.arrow {
+        float: right;
+    }
+
+    span.arrow img {
+        transform: rotate(-90deg);
+        -ms-transform: rotate(-90deg); /* IE 9 */
+        -moz-transform: rotate(-90deg); /* Firefox */
+        -webkit-transform: rotate(-90deg); /* Safari and Chrome */
+        -o-transform: rotate(-90deg); /* Opera */
+    }
+</style>

+ 2 - 0
pcbms/src/main/java/com/hssx/pcbms/controller/UserController.java

@@ -8,6 +8,8 @@ import com.hssx.pcbms.service.UserService;
 import com.hssx.pcbms.util.HttpRespMsg;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.axis.client.Call;
+import org.apache.axis.client.Service;
 import org.dom4j.Document;
 import org.dom4j.DocumentException;
 import org.dom4j.DocumentHelper;