<template>
    <el-row>
        <el-card  style="background-color: #F5F7FA">
            <!--            搜索区域-->
            <el-row :gutter="10" class="toolbar">
                <el-col :span="7">
                    <el-input v-model="queryInfo.waybill" prefix-icon="el-icon-search" size="small" style="width: 280px"
                              placeholder="货物单号" clearable>
                        <template slot="prepend">货物单号</template>
                    </el-input>
                </el-col>
                <el-col :span="6">
                    <el-button type="primary" icon="el-icon-search" size="small" @click="getList()">
                        查询
                    </el-button>
                    <el-button type="success" icon="el-icon-edit" size="small" @click="applyAdd()">新增</el-button>
                </el-col>
            </el-row>
            <!--            列表区域-->
            <el-row>
                <template>
                    <el-table
                            :data="tableData"
                            border
                            :cell-style="{textAlign:'center'}"
                            style="border-radius: 10px 10px 0px 0px;line-height: 25px"
                            :header-cell-style="{background:'#6F8294',color:'#FFFFFF'}" size="small"
                    >
                        <el-table-column
                                fixed
                                prop="goodno"
                                label="货物单号"
                                width="120">
                        </el-table-column>
                        <el-table-column
                                prop="vol"
                                label="体积"
                                width="60">
                        </el-table-column>
                        <el-table-column
                                prop="weight"
                                label="重量"
                                width="60">
                        </el-table-column>
                        <el-table-column
                                prop="pcs"
                                label="件数"
                                width="60">
                        </el-table-column>
                        <el-table-column
                                prop="billweight"
                                label="计费重量"
                                width="70">
                        </el-table-column>
                        <el-table-column
                                prop="area"
                                label="库区"
                                width="60">
                        </el-table-column>
                        <el-table-column
                                prop="location"
                                label="库位"
                                width="60">
                        </el-table-column>
                        <el-table-column
                                prop="serialnumber"
                                label="流水号"
                                width="120">
                        </el-table-column>
                        <el-table-column
                                prop="station"
                                label="出入库场站"
                                width="100">
                        </el-table-column>
                        <el-table-column
                                prop="status"
                                label="状态"
                                width="80">
                            <template slot-scope="scope">
                                <span v-if="scope.row.status ==='0'">失败</span>
                                <span v-if="scope.row.status ==='1'">成功</span>
                            </template>
                        </el-table-column>
                        <el-table-column
                                prop="transcar"
                                label="运输车辆信息"
                                width="100">
                        </el-table-column>
                        <el-table-column
                                prop="transtype"
                                label="交易类型"
                                width="100">
                        </el-table-column>
                        <el-table-column
                                prop="custel"
                                label="客户联系电话"
                                width="140">
                        </el-table-column>
                        <el-table-column
                                prop="customer"
                                label="联系人姓名"
                                width="80">
                        </el-table-column>
                        <el-table-column
                                prop="customername"
                                label="客户名称"
                                width="80">
                        </el-table-column>
                        <el-table-column
                                prop="goodstype"
                                label="货物类型"
                                width="80">
                        </el-table-column>
                        <el-table-column
                                prop="house"
                                label="出入库仓库"
                                width="100">
                        </el-table-column>
                        <el-table-column
                                prop="ietype"
                                label="出入库类型"
                                width="60">
                            <template slot-scope="scope">
                                <span v-if="scope.row.ietype ==='I'">进</span>
                                <span v-if="scope.row.ietype ==='E'">出</span>
                            </template>
                        </el-table-column>
                        <el-table-column
                                prop="opter"
                                label="出入库经办人"
                                width="100">
                        </el-table-column>
                        <el-table-column
                                prop="opttime"
                                label="出入库时间"
                                width="140">
                        </el-table-column>
                        <el-table-column
                                fixed="right"
                                label="操作"
                                width="200">
                            <template slot-scope="scope">
                                <el-button type="success" size="mini" @click="applyEdit(scope.row)">编辑</el-button>
                                <el-button type="danger" size="mini" @click="applyDel(scope.$index,scope.row)">删除</el-button>
                            </template>
                        </el-table-column>
                    </el-table>
                </template>
            </el-row>
            <el-row style="margin-top: 10px" class="toolbar">
                <el-pagination
                        @size-change="handleSizeChange"
                        @current-change="handleCurrentChange"
                        :current-page="queryInfo.pageNum"
                        :page-size="queryInfo.pageSize"
                        :page-sizes="[10, 50, 100, 500]"
                        layout="total, sizes, prev, pager, next, jumper"
                        :total="total">
                </el-pagination>
            </el-row>
            <el-row>
                <el-dialog :title="dialogMap[dialogApply]" :visible.sync="apply_dialog.addDialog" width="80%" >
                    <el-form  :model="addForm"  :rules="rules" ref="addForm" style="margin-top: 40px">
                        <el-row>
                            <el-col :span="7">
                                <el-form-item label="" :label-width="formLabelWidth"  prop="goodno">
                                    <el-input v-model="addForm.goodno" autocomplete="off" size="small" style="width: 300px">
                                        <template slot="prepend">货物单号</template>
                                    </el-input>
                                </el-form-item>
                            </el-col>
                            <el-col :span="8">
                                <el-form-item label="" :label-width="formLabelWidth"  prop="weight">
                                    <el-input v-model="addForm.weight" autocomplete="off" size="small" style="width: 300px">
                                        <template slot="prepend">重&emsp;&emsp;量</template>
                                    </el-input>
                                </el-form-item>
                            </el-col>
                            <el-col :span="8">
                                <el-form-item label="" :label-width="formLabelWidth"  prop="vol">
                                    <el-input v-model="addForm.vol" autocomplete="off" size="small" style="width: 300px">
                                        <template slot="prepend">体&emsp;&emsp;积</template>
                                    </el-input>
                                </el-form-item>
                            </el-col>
                        </el-row>
                        <el-row>
                            <el-col :span="7">
                                <el-form-item label="" :label-width="formLabelWidth"  prop="pcs">
                                    <el-input v-model="addForm.pcs" autocomplete="off" size="small" style="width: 300px">
                                        <template slot="prepend">件&emsp;&emsp;数</template>
                                    </el-input>
                                </el-form-item>
                            </el-col>
                            <el-col :span="8">
                                <el-form-item label="" :label-width="formLabelWidth"  prop="billweight">
                                    <el-input v-model="addForm.billweight" autocomplete="off" size="small" style="width: 300px">
                                        <template slot="prepend">计费重量</template>
                                    </el-input>
                                </el-form-item>
                            </el-col>
                            <el-col :span="8">
                                <el-form-item label="" :label-width="formLabelWidth"  prop="area">
                                    <el-input v-model="addForm.area" autocomplete="off" size="small" style="width: 300px">
                                        <template slot="prepend">库&emsp;&emsp;区</template>
                                    </el-input>
                                </el-form-item>
                            </el-col>
                        </el-row>
                        <el-row>
                            <el-col :span="7">
                                <el-form-item label="" :label-width="formLabelWidth"  prop="location">
                                    <el-input v-model="addForm.location" autocomplete="off" size="small" style="width: 300px">
                                        <template slot="prepend">库&emsp;&emsp;位</template>
                                    </el-input>
                                </el-form-item>
                            </el-col>
                            <el-col :span="8">
                                <el-form-item label="" :label-width="formLabelWidth"  prop="serialnumber">
                                    <el-input v-model="addForm.serialnumber" autocomplete="off" size="small" style="width: 300px">
                                        <template slot="prepend">流水&emsp;号</template>
                                    </el-input>
                                </el-form-item>
                            </el-col>
                            <el-col :span="8">
                                <el-form-item label="" :label-width="formLabelWidth"  prop="transtype">
                                    <el-input v-model="addForm.transtype" autocomplete="off" size="small" style="width: 300px">
                                        <template slot="prepend">交易类型</template>
                                    </el-input>
                                </el-form-item>
                            </el-col>
                        </el-row>
                        <el-row>
                            <el-col :span="7">
                                <el-form-item label="" :label-width="formLabelWidth"  prop="house">
                                    <el-input v-model="addForm.house" autocomplete="off" size="small" style="width: 300px">
                                        <template slot="prepend">出入库仓库</template>
                                    </el-input>
                                </el-form-item>
                            </el-col>
                            <el-col :span="8">
                                <el-form-item label="" :label-width="formLabelWidth"  prop="opttime">
                                    <el-input v-model="addForm.opttime" autocomplete="off" size="small" style="width: 300px">
                                        <template slot="prepend">出入库时间</template>
                                    </el-input>
                                </el-form-item>
                            </el-col>

                            <el-col :span="8">
                                <el-form-item label="" :label-width="formLabelWidth"  prop="station">
                                    <el-input v-model="addForm.station" autocomplete="off" size="small" style="width: 300px">
                                        <template slot="prepend">出入库场站</template>
                                    </el-input>
                                </el-form-item>
                            </el-col>
                        </el-row>
                        <el-row>
                            <el-col :span="7">
                                <el-form-item label="" :label-width="formLabelWidth"  prop="goodstype">
                                    <el-input v-model="addForm.goodstype" autocomplete="off" size="small" style="width: 300px">
                                        <template slot="prepend">出入库货物类型</template>
                                    </el-input>
                                </el-form-item>
                            </el-col>
                            <el-col :span="8">
                                <el-form-item label="" :label-width="formLabelWidth"  prop="opter">
                                    <el-input v-model="addForm.opter" autocomplete="off" size="small" style="width: 300px">
                                        <template slot="prepend">出入库经办人</template>
                                    </el-input>
                                </el-form-item>
                            </el-col>
                            <el-col :span="8">
                                <el-form-item label="" :label-width="formLabelWidth"  prop="customername">
                                    <el-input v-model="addForm.customername" autocomplete="off" size="small" style="width: 300px">
                                        <template slot="prepend">出入库客户名称</template>
                                    </el-input>
                                </el-form-item>
                            </el-col>
                        </el-row>
                        <el-row>
                            <el-col :span="7">
                                <el-form-item label="" :label-width="formLabelWidth"  prop="transcar">
                                    <el-input v-model="addForm.transcar" autocomplete="off" size="small" style="width: 300px">
                                        <template slot="prepend">运输车辆信息</template>
                                    </el-input>
                                </el-form-item>
                            </el-col>
                            <el-col :span="8">
                                <el-form-item label="" :label-width="formLabelWidth"  prop="ietype">
                                    <div class="my-text-area">
                                        <div class="el-input-group__prepend prepand">出入库类型</div>
                                        <el-select v-model="addForm.ietype" placeholder="出入库类型" size="mini" style="width: 210px">
                                            <el-option label="出入库类型-进" value="I"></el-option>
                                            <el-option label="出入库类型-出" value="E"></el-option>
                                        </el-select>
                                    </div>
                                </el-form-item>
                            </el-col>
                            <el-col :span="8">
                                <el-form-item label="" :label-width="formLabelWidth"  prop="status">
                                    <div class="my-text-area">
                                        <div class="el-input-group__prepend prepand">请选择状态</div>
                                        <el-select v-model="addForm.status" placeholder="请选择状态" size="mini" style="width: 210px">
                                            <el-option label="状态-失败" value="0"></el-option>
                                            <el-option label="状态-成功" value="1"></el-option>
                                        </el-select>
                                    </div>
                                </el-form-item>
                            </el-col>
                        </el-row>
                        <el-row>
                            <el-col :span="7">
                                <el-form-item label="" :label-width="formLabelWidth"  prop="custel">
                                    <el-input v-model="addForm.custel" autocomplete="off" size="small" style="width: 300px">
                                        <template slot="prepend">出入库客户联系电话</template>
                                    </el-input>
                                </el-form-item>
                            </el-col>
                            <el-col :span="10">
                                <el-form-item label="" :label-width="formLabelWidth"  prop="customer">
                                    <el-input v-model="addForm.customer" autocomplete="off" size="small" style="width: 300px">
                                        <template slot="prepend">出入库客户联系人姓名</template>
                                    </el-input>
                                </el-form-item>
                            </el-col>
                        </el-row>
                    </el-form>
                    <div slot="footer" class="dialog-footer">
                        <el-button @click="apply_dialog.addDialog = false" size="small">取 消</el-button>
                        <el-button type="primary" @click="dialogApply==='create'?add():edit()" size="small">提 交</el-button>
                    </div>
                </el-dialog>
            </el-row>
        </el-card>
    </el-row>
</template>

<script>
    import {selectInventorys,delInventroy,addInventory,ediInventroy} from '../../api/consigner/station';

    export default {
        name: "inventroy",
        data() {
            return {
                queryInfo: {
                    goodno:'',
                    // 当前页数
                    pageNum: 1,
                    // 每页大小
                    pageSize: 10,
                },
                total: 0,
                tableData:[],
                dialogMap: {
                    update: '编辑',
                    create: '新增'
                },
                dialogApply: 'create',
                apply_dialog: {
                    // 添加对话框
                    addDialog: false,
                    // 编辑对话框
                    editDialog: false
                },
                addForm: {
                    area: '',
                    billweight: '',
                    custel: '',
                    customer: '',
                    customername: '',
                    goodstype: '',
                    house:'',
                    ietype:'',
                    location:'',
                    opter:'',
                    opttime: '',
                    pcs: '',
                    serialnumber: '',
                    station: '',
                    status: '',
                    transcar: '',
                    transtype:'',
                    vol:'',
                    goodno:'',
                    weight:'',
                    remark:'',
                    remark1:'',
                    remark2:'',
                    remark3:'',
                    remark4:'',
                    remark5:'',
                },
                formLabelWidth: '80px',
                rules: {
                    userName: [
                        //     { required: true, message: '请输入申请人', trigger: 'blur' },
                        //     // { min: 3, max: 5, message: '长度在 3 到 5 个字符', trigger: 'blur' }
                        // ],
                        // applyTime: [
                        //     {  required: true, message: '请选择时间', trigger: 'change' }
                        // ],
                        // needCount: [
                        //     { required: true, message: '请输入需要车辆数量', trigger: 'blur' },
                        // ],
                        // orginStation: [
                        //     { required: true, message: '请输入起始场站', trigger: 'blur' },
                        // ],
                        // endStation: [
                        //     { required: true, message: '请输入目的场站', trigger: 'blur' },
                        // ],
                    ],
                },
            }
        },
        methods: {
            handleSizeChange(val) {
                this.queryInfo.pageSize = val
                this.getList()
            },
            handleCurrentChange(val) {
                this.queryInfo.pageNum = val
                this.getList()
            },
            getList() {
                const _this = this
                selectInventorys(this.queryInfo).then((response) => {
                    const res = response.data
                    console.log(response.data)
                    if (res.code !== '200') {
                        return _this.$message.error('获取消息收发记录,失败!')
                    }
                    // 获取列表数据
                    _this.tableData = res.data.list
                    // 获取列表的总记录数
                    _this.total = res.data.total
                    _this.$message.success('获取消息收发记录,成功!')
                }).catch(error => {
                    // 关闭加载
                    _this.$message.error(error.toString())
                })
            },
            // 添加对话框,打开事件
            applyAdd() {
                this.addForm = {
                    area: '',
                    billweight: '',
                    custel: '',
                    customer: '',
                    customername: '',
                    goodstype: '',
                    house:'',
                    ietype:'',
                    location:'',
                    opter:'',
                    opttime: '',
                    pcs: '',
                    serialnumber: '',
                    station: '',
                    status: '',
                    transcar: '',
                    transtype:'',
                    vol:'',
                    waybill:'',
                    weight:'',
                    remark:'',
                    remark1:'',
                    remark2:'',
                    remark3:'',
                    remark4:'',
                    remark5:'',
                    uuid:''
                };
                this.dialogApply= 'create';
                this.apply_dialog.addDialog = true;
            },
            // 添加功能
            add() {
                this.$refs.addForm.validate(valid => {
                    // 未通过,表单预校验
                    if (!valid) return;
                    addInventory(this.addForm).then((response) => {
                        let res = response.data;
                        // 添加失败
                        if (res.code !== '200') {
                            return this.$message.error(res.msg);
                        }
                        // 添加,成功
                        this.$message.success(res.msg);
                        // 隐藏对话框
                        this.apply_dialog.addDialog = false;
                        // 刷新列表
                        this.getList();
                    }).catch(error => {
                        this.$message.error(error.toString());
                    });
                })
            },
// 打开编辑
            applyEdit(row) {
                this.apply_dialog.addDialog = true;
                this.dialogApply = 'update';
                this.addForm=row;
            },
            // 编辑功能
            edit() {
                // 进行表单的预验证
                this.$refs.addForm.validate(valid => {
                    // 未通过,表单预校验
                    if (!valid) return
                    ediInventroy(this.addForm).then((response) => {
                        // console.log(row)
                        const res = response.data
                        if (res.code != '200') {
                            return this.$message.error(res.msg)
                        }
                        this.$message.success(res.msg)
                        // 隐藏对话框
                        this.apply_dialog.addDialog = false
                        // 刷新列表
                        this.getList()
                    }).catch(error => {
                        this.$message.error(error.toString())
                    })
                })
            },
            // 删除
            applyDel(index, row) {
                // 弹框询问是否删除?
                this.$confirm('此操作永久删除该消息收发记录, 是否继续?', '警告', {
                        confirmButtonText: '确定删除',
                        cancelButtonText: '取消',
                        type: 'warning'
                    }
                ).then(() => {
                    // console.log(row);
                    delInventroy({uuid:row.uuid}).then((response) => {
                        // console.log(row)
                        const res = response.data
                        this.$message.success(res.msg)
                        this.getList()
                    }).catch(error => {
                        this.$message.error(res.msg)
                    })
                }).catch(() => {
                })
            },
        },
        mounted() {
            this.getList();
            // this.getYardList();

        }

    }
</script>

<style scoped>
    .toolbar{
        height: 60px;
        background-color: white;
        /*line-height: 60px;*/
        vertical-align: middle;
        border-radius: 5px 5px 5px 5px;
        padding: 15px 0 0 20px;
        box-shadow: 0px 5px 5px #e5e8eb;
    }
    .my-text-area .prepand{
        float: left;
        width:89px;
        height: 28px;
        font-size: 12px;
        line-height: 28px;
    }
</style>
<style>
    .my-text-area .el-textarea__inner{
        min-height: 28px;
        height: 28px;
        border-bottom-left-radius: 0;
        border-top-left-radius: 0;
    }
</style>