app.vue 5.09 KB
<template>
    <com-pageheader :title="'报表管理'" :sub-title="'库存管理'"></com-pageheader>
    <div class="contentpanel shopsReport">
        <div class="panel">
            <div class="panel-heading">
                <h1>库存统计</h1>
            </div>
            <div class="panel-body">
                <div class="row">
                    <uc-filter :params.sync="params"></uc-filter>
                    <div class="panel-col">
                        <a href="javascript:;" class="btn btn-info" @click="reload">搜索</a>
                    </div>
                </div>

                <uc-card :rows="cards"></uc-card>
            </div>
        </div>

        <div class="panel">
            <div class="panel-heading">
                <h2>——{{dateId}}库存报表——</h2>
            </div>

            <div class="panel-body nopadding">
                <com-grid :columns="grid.columns" :url="grid.url"></com-grid>
            </div>
        </div>

    </div>
</template>


<script>
    import pageheader from '../../../../components/pageheader/index';
    import grid from '../../../../components/grid/index';
    import calendar from '../../../../components/calendar/index';
    import card from './card';
    import filer from './filter';

    export default {
        components: {
            comPageheader: pageheader,
            comGrid: grid,
            ucCard: card,
            ucFilter: filer
        },
        data() {
            return {
                dateId: "",
                cards: [
                    {name: "库存总数量", value: "0"},
                    {name: "库存总金额(元)", value: "0"},
                    {name: "已上架商品数", value: "0"},
                    {name: "待上架商品数", value: "0"},
                    {name: "已下架商品数", value: "0"}
                ],
                params: {
                    productSkn: "",
                    factory_code: "",
                    productSku: "",
                    maxSortId: "",
                    middleSortId: "",
                    smallSortId: "",
                    sortList: []
                },
                grid: {
                    url: '/bigdata/getStorageStatisticsList',
                    columns: [
                        {
                            display: '图片', render(item){
                            return item.imageUrl ? '<img src="' + item.imageUrl + '?imageView/0/w/78/h/78">' : "";
                        }
                        },
                        {
                            display: 'SKN/SKU', render(item){
                            return '<p>SKN:' + item.productSkn + '</p><p>SKU:' + item.productSku + '</p>';
                        }
                        },
                        {display: '厂家编号', name: 'factoryCode'},
                        {display: '商品名称', name: 'goodsName'},
                        {display: '进货价', name: 'purchasePrice'},
                        {
                            display: '颜色/尺码', render(item){
                            return [item.colorName, item.sizeName].join('/');
                        }
                        },
                        {
                            display: '商品分类', render(item){
                            return [item.maxSortName, item.middleSortName, item.smallSortName].join('-');
                        }
                        },
                        {display: '库存数量', name: 'storeNums'},
                        {display: '库存金额(元)', name: 'storageAmount'}
                    ]
                }
            }
        },
        ready() {
            this.reload();
        },
        methods: {
            reload()
            {
                if (this.params.sortList.length > 0) {
                    this.params.maxSortId = this.params.sortList[0] ? this.params.sortList[0].id : "";
                    this.params.middleSortId = this.params.sortList[1] ? this.params.sortList[1].id : "";
                    this.params.smallSortId = this.params.sortList[2] ? this.params.sortList[2].id : "";
                }
                this.$broadcast('grid-reload', this.params);
            }
        },
        events: {
            complete(data)
            {
                let result = data.additionInfo;
                if (result) {
                    this.cards[0].value = result.storageTotalNum ? result.storageTotalNum : '--';
                    this.cards[1].value = result.storageTotalMoney ? result.storageTotalMoney : '--';
                    this.cards[2].value = result.onSaleTotalNum ? result.onSaleTotalNum : '--';
                    this.cards[3].value = result.preSaleTotalNum ? result.preSaleTotalNum : '--';
                    this.cards[4].value = result.outSaleTotalNum ? result.outSaleTotalNum : '--';
                    result.dateId = result.dateId + "";
                    let month = result.dateId.substr(4, 2);
                    let date = result.dateId.substr(6, 2);
                    this.dateId = month + "月" + date + "日";
                }

            }
        }
    }
</script>