Skip to content
child-assets.component.ts 6.59 KiB
Newer Older
wangqinghua's avatar
wangqinghua committed
import {Component, OnInit, ViewChild} from '@angular/core';
wangqinghua's avatar
wangqinghua committed
import {WorkService} from '../../work.service';
import {ActivatedRoute, Router} from '@angular/router';
wangqinghua's avatar
wangqinghua committed
import {CommonService} from '../../../shared/common/common.service';
wangqinghua's avatar
wangqinghua committed
import {NzMessageService} from 'ng-zorro-antd';
import {AssetsComponent} from '../../modal/assets/assets.component';
wangqinghua's avatar
wangqinghua committed
import {UploadComponent} from '../../modal/upload/upload.component';
wangqinghua's avatar
wangqinghua committed
import {SERVER_API_URL} from '../../../app.constants';
import {SystemService} from '../../../system/system.service';
xch666's avatar
xch666 committed
import {Location} from '@angular/common';
wangqinghua's avatar
wangqinghua committed

@Component({
wangqinghua's avatar
wangqinghua committed
    selector: 'smart-child-assets',
    templateUrl: './child-assets.component.html',
    styles: []
wangqinghua's avatar
wangqinghua committed
})
export class ChildAssetsComponent implements OnInit {
wangqinghua's avatar
wangqinghua committed
    @ViewChild('smartAssets') smartAssets: AssetsComponent;
    @ViewChild('smartUpload') smartUpload: UploadComponent;
wangqinghua's avatar
wangqinghua committed

wangqinghua's avatar
wangqinghua committed
    childrenList;
wangqinghua's avatar
wangqinghua committed
    childName;
wangqinghua's avatar
wangqinghua committed
    isLoading = false;
wangqinghua's avatar
wangqinghua committed
    isDownload = false;
wangqinghua's avatar
wangqinghua committed

wangqinghua's avatar
wangqinghua committed
    allChecked = false;
    selectList = [];
    disabledButton = true;
    indeterminate = false;

wangqinghua's avatar
wangqinghua committed
    obj = {
wangqinghua's avatar
wangqinghua committed
        inventoryTypeid: null,
        name: null,
        inventorycount: null,
        mac: null,
        person: null,
wangqinghua's avatar
wangqinghua committed
    };
wangqinghua's avatar
wangqinghua committed
    parentId;
wangqinghua's avatar
wangqinghua committed

    page = {
        pageNum: 1,
wangqinghua's avatar
wangqinghua committed
        totalNum: null,
        pageCount: 10,
    };
wangqinghua's avatar
wangqinghua committed

wangqinghua's avatar
wangqinghua committed
    constructor(private workSer: WorkService, private routerInfo: ActivatedRoute, private router: Router,
                private message: NzMessageService, private systemSer: SystemService,
                private commonSer: CommonService, public location: Location) {
wangqinghua's avatar
wangqinghua committed
        this.routerInfo.queryParams.subscribe(
            (res) => {
wangqinghua's avatar
wangqinghua committed
                this.obj.inventoryTypeid = res.id;
wangqinghua's avatar
wangqinghua committed
                this.parentId = res.parentId;
                this.childName = res.name;
wangqinghua's avatar
wangqinghua committed
            }
        );
    }

wangqinghua's avatar
wangqinghua committed
    checkAll(value: boolean): void {
wangqinghua's avatar
wangqinghua committed
        this.childrenList.forEach(data => {
            data.checked = value;
            this.selectList.push(data);
wangqinghua's avatar
wangqinghua committed
        });
wangqinghua's avatar
wangqinghua committed
        this.refreshStatus();
    }

    currentPageDataChange($event: Array<{ checked: boolean }>): void {
        this.childrenList = $event;
    }

    selectItem(item, e) {
        if (e) {
            this.selectList.push(item);
        } else {
            this.selectList.forEach((value, index) => {
                if (value.id == item.id) {
                    this.selectList.splice(index, 1);
                }
            });
        }
        this.refreshStatus();
    }

    refreshStatus(): void {
        const allChecked = this.childrenList.every(value => value.checked === true);
        const allUnChecked = this.childrenList.every(value => !value.checked);
        this.allChecked = allChecked;
        this.indeterminate = (!allChecked) && (!allUnChecked);
    }

wangqinghua's avatar
wangqinghua committed
    ngOnInit() {
        this.getList();
    }
wangqinghua's avatar
wangqinghua committed

wangqinghua's avatar
wangqinghua committed
    getList() {
wangqinghua's avatar
wangqinghua committed
        this.isLoading = true;
wangqinghua's avatar
wangqinghua committed
        const data = {
wangqinghua's avatar
wangqinghua committed
            pageCount: '10',
            pageNum: this.page.pageNum,
            obj: this.obj
        };
wangqinghua's avatar
wangqinghua committed
        this.workSer.findInventoryPage(data).subscribe(
wangqinghua's avatar
wangqinghua committed
            (res) => {
wangqinghua's avatar
wangqinghua committed
                this.childrenList = res.data.data;
wangqinghua's avatar
wangqinghua committed
                this.isLoading = false;
wangqinghua's avatar
wangqinghua committed
                this.page.totalNum = res.data.totalNum;
wangqinghua's avatar
wangqinghua committed
            }
        );
    }
wangqinghua's avatar
wangqinghua committed

wangqinghua's avatar
wangqinghua committed
    search() {
wangqinghua's avatar
wangqinghua committed
        this.page.pageNum = 1;
        this.getList();
    }

wangqinghua's avatar
wangqinghua committed
    change(e) {
        if (e > 0) {
wangqinghua's avatar
wangqinghua committed
            this.page.pageNum = e;
            this.getList();
        }
    }

wangqinghua's avatar
wangqinghua committed
    //删除资产--单个
wangqinghua's avatar
wangqinghua committed
    deleteInVentory(item) {
wangqinghua's avatar
wangqinghua committed
        const data = {
wangqinghua's avatar
wangqinghua committed
            inventoryIds: []
wangqinghua's avatar
wangqinghua committed
        };
        data.inventoryIds.push(item.id);
wangqinghua's avatar
wangqinghua committed
        this.commonSer.confirmThing('删除', '确定删除该资产?', () => {
wangqinghua's avatar
wangqinghua committed
            this.isLoading = true;
wangqinghua's avatar
wangqinghua committed
            this.workSer.deleteInventory(data).subscribe(
wangqinghua's avatar
wangqinghua committed
                (res) => {
                    if (res.errCode == 10000) {
wangqinghua's avatar
wangqinghua committed
                        this.getList();
wangqinghua's avatar
wangqinghua committed
                        this.message.success('删除资产成功');
wangqinghua's avatar
wangqinghua committed
                    }
wangqinghua's avatar
wangqinghua committed
                    this.isLoading = false;
wangqinghua's avatar
wangqinghua committed
                }
wangqinghua's avatar
wangqinghua committed
            );
        });
wangqinghua's avatar
wangqinghua committed
    }

wangqinghua's avatar
wangqinghua committed
    //批量删除
wangqinghua's avatar
wangqinghua committed
    batchDeleteInventory() {
        if (this.selectList.length == 0) {
            this.message.warning('请选择需要删除的资产');
wangqinghua's avatar
wangqinghua committed
            return false;
        }
wangqinghua's avatar
wangqinghua committed
        this.isLoading = true;
wangqinghua's avatar
wangqinghua committed
        const data = {
wangqinghua's avatar
wangqinghua committed
            inventoryIds: this.selectList.map(e => {
wangqinghua's avatar
wangqinghua committed
                return e.id;
            })
        };
wangqinghua's avatar
wangqinghua committed
        this.commonSer.confirmThing('批量删除', '确定删除选择的资产?', () => {
wangqinghua's avatar
wangqinghua committed
            this.workSer.deleteInventory(data).subscribe(
wangqinghua's avatar
wangqinghua committed
                (res) => {
                    if (res.errCode == 10000) {
wangqinghua's avatar
wangqinghua committed
                        this.getList();
wangqinghua's avatar
wangqinghua committed
                        this.message.success('删除资产成功');
wangqinghua's avatar
wangqinghua committed
                    }
wangqinghua's avatar
wangqinghua committed
                    this.isLoading = false;
wangqinghua's avatar
wangqinghua committed
                }
wangqinghua's avatar
wangqinghua committed
            );
        });
wangqinghua's avatar
wangqinghua committed
    }

wangqinghua's avatar
wangqinghua committed
    //添加资产
    showAddModal() {
wangqinghua's avatar
wangqinghua committed
        this.smartAssets.showAddModal('添加资产', {parentId: this.parentId, inventoryTypeid: this.obj.inventoryTypeid});
wangqinghua's avatar
wangqinghua committed
    }

wangqinghua's avatar
wangqinghua committed
    //编辑资产
wangqinghua's avatar
wangqinghua committed
    showEditModal(id) {
        this.smartAssets.showEditModal('编辑资产', id);
wangqinghua's avatar
wangqinghua committed
    }

wangqinghua's avatar
wangqinghua committed
    //查看详情
wangqinghua's avatar
wangqinghua committed
    goToDetail(data) {
        this.router.navigate(['app/main/assetsDetail'], {
            queryParams: {
                invertoryId: data.id
wangqinghua's avatar
wangqinghua committed
            }
wangqinghua's avatar
wangqinghua committed
        });
wangqinghua's avatar
wangqinghua committed
    }

wangqinghua's avatar
wangqinghua committed
    //导入资产
wangqinghua's avatar
wangqinghua committed
    showUploadModal() {
        this.smartUpload.showModal('上传资产文件');
wangqinghua's avatar
wangqinghua committed
    }

wangqinghua's avatar
wangqinghua committed
    //下载模版
wangqinghua's avatar
wangqinghua committed
    downLoad() {
        this.systemSer.downloadTemplate('inventory', SERVER_API_URL + '/api/template/download/').subscribe(
            (data) => {
                this.commonSer.downloadFile('资产模版.xlsx', data);
wangqinghua's avatar
wangqinghua committed
            }
wangqinghua's avatar
wangqinghua committed
        );
wangqinghua's avatar
wangqinghua committed
    }

    //导出资产
wangqinghua's avatar
wangqinghua committed
    downloadInventory() {
wangqinghua's avatar
wangqinghua committed
        let title;
wangqinghua's avatar
wangqinghua committed
        title = this.selectList.length == 0 ? '确定导出所有的资产?' : '确定导出所选择的资产';
        this.commonSer.confirmThing('导出', title, () => {
wangqinghua's avatar
wangqinghua committed
            this.isDownload = true;
wangqinghua's avatar
wangqinghua committed
            const data = {
wangqinghua's avatar
wangqinghua committed
                type: this.obj.inventoryTypeid,
                ids: this.selectList.map(e => {
wangqinghua's avatar
wangqinghua committed
                    return e.id;
                }),
wangqinghua's avatar
wangqinghua committed
                query_name: null
wangqinghua's avatar
wangqinghua committed
            };
            this.workSer.getExportUrl(data).subscribe(
wangqinghua's avatar
wangqinghua committed
                (res) => {
wangqinghua's avatar
wangqinghua committed
                    this.isDownload = false;
wangqinghua's avatar
wangqinghua committed
                    this.workSer.downloadTemplate('inventory', res.data).subscribe(
                        (data) => {
                            this.commonSer.downloadFile('文件.xlsx', data);
wangqinghua's avatar
wangqinghua committed
                        }
wangqinghua's avatar
wangqinghua committed
                    );
wangqinghua's avatar
wangqinghua committed
                }
wangqinghua's avatar
wangqinghua committed
            );
wangqinghua's avatar
wangqinghua committed
        });
wangqinghua's avatar
wangqinghua committed
    }
wangqinghua's avatar
wangqinghua committed

xch666's avatar
xch666 committed
    //返回上一页
wangqinghua's avatar
wangqinghua committed
    returnBack() {
xch666's avatar
xch666 committed
        this.location.back();
    }
wangqinghua's avatar
wangqinghua committed
}