app.vue 4.21 KB
<template>
    <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>——4月19日库存报表——</h2>
            </div>

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

    </div>
</template>


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

    export default {
        components: {
            comGrid: grid,
            ucCard: card,
            ucFilter: filer
        },
        data() {
            return {
                selects: ViewModel.data,
                cards: [
                    {name: "库存总数量", value: "0"},
                    {name: "库存总金额(元)", value: "0"},
                    {name: "已上架商品数", value: "0"},
                    {name: "待上架商品数", value: "0"},
                    {name: "已下架商品数", value: "0"}
                ],
                params: {
                    productSkn: "",
                    factory_code: "",
                    productSku: "",
                    maxSortId: "",
                    middleSortId: "",
                    smallSortId: ""
                },
                grid: {
                    url: '/bigdata/getStorageStatisticsList',
                    columns: [
                        {
                            display: '图片', render(item){
                            return item.imageUrl ? '<img src="' + item.imageUrl + '">' : "";
                        }
                        },
                        {
                            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() {
                this.$broadcast('grid-reload', this.params);
            }
        },
        events: {
            complete(data){
                let result = data.additionInfo;
                if (result) {
                    this.cards[0].value = result.storageTotalNum ? result.storageTotalNum : 0;
                    this.cards[1].value = result.storageTotalMoney ? result.storageTotalMoney : 0;
                    this.cards[2].value = result.onSaleTotalNum ? result.onSaleTotalNum : 0;
                    this.cards[3].value = result.preSaleTotalNum ? result.preSaleTotalNum : 0;
                    this.cards[4].value = result.outSaleTotalNum ? result.outSaleTotalNum : 0;
                }

            }
        }
    }
</script>