<template>
    <div>
        <div class="customer-head">
            <div class="customer-back">
                <el-button type="danger" style="border: none;background: none;color: red" icon="el-icon-arrow-left"
                    @click="backToList(0)">返回列表
                </el-button>
            </div>
            <div class="add-customer-btn">
                <el-button class="el-button&#45;&#45;small-yh" :disabled="isEditButton" style="margin-left: 6px;"
                    type="primary" size="small" v-if="editButton" @click="confirmEditing">编 辑
                </el-button>
                <el-button class="el-button--small-yh" style="margin-left: 6px;" type="primary" size="small"
                    :disabled="isSaveBtn" @click="editCustomer">保 存
                </el-button>
                <el-button class="el-button--small-yh" style="margin-left: 6px;" :type="buttonColor" size="small"
                    :disabled="isDisabledTask || form.status !== '待确认' && form.status !== '待发货'" @click="generateOutbound">
                    {{ buttonText }}
                </el-button>
                <el-dropdown style="padding: 0 6px;line-height: 0">
                    <el-button type="danger" :loading="buttonLoading" :disabled="!form.id || viewDisabled" size="small">
                        请 核<i class="el-icon-arrow-down el-icon--right"></i>
                    </el-button>
                    <el-dropdown-menu slot="dropdown">
                        <el-dropdown-item @click.native="applySettlement('申请')"
                            :disabled="isApplySettlement || form.status !== '录入'">请核数据
                        </el-dropdown-item>
                        <!-- <el-dropdown-item @click.native="confirmRefundBtn('确认')" :disabled="isConfirmRefundBtn">确认退款
                        </el-dropdown-item> -->
                        <el-dropdown-item @click.native="revocationRequest('撤销')" :disabled="isRevocationRequest">撤销请核
                        </el-dropdown-item>
                    </el-dropdown-menu>
                </el-dropdown>
                <el-dropdown style="line-height: 0">
                    <el-button type="warning" :loading="buttonLoading" :disabled="!form.id || viewDisabled" size="small">
                        审 批<i class="el-icon-arrow-down el-icon--right"></i>
                    </el-button>
                    <el-dropdown-menu slot="dropdown">
                        <el-dropdown-item @click.native="examineBtn('审批')" :disabled="isExamineBtn && !detailData.check">审批
                        </el-dropdown-item>
                        <el-dropdown-item @click.native="checkScheduleDialog = true, checkId = form.id">审核进度
                        </el-dropdown-item>

                    </el-dropdown-menu>
                </el-dropdown>
            </div>
        </div>
        <div style="margin-top: 50px">
            <trade-card title="基础信息">
                <avue-form :option="optionForm" v-model="form" ref="form">
                    <template slot-scope="{row,index}" slot="contacts">
                        <!-- 联系人 -->
                        <el-select v-model="form.contacts" placeholder="请选择" size="small" style="width:60%" filterable
                            @change="contactsChange($event)" :disabled=isContacts>
                            <el-option v-for="item in contactsOption" :key="item.cname" :label="item.cname"
                                :value="item.contacts" />
                        </el-select>
                    </template>
                    <template slot-scope="{row,index}" slot="recAddress">
                        <!-- 地址 -->
                        <el-select v-model="form.recAddress" placeholder="请选择" size="small" style="width:60%" filterable
                            :disabled=isContacts>
                            <el-option v-for="item in recAddressOption" :key="item.id"
                                :label="item.belongtoarea + item.detailedAddress"
                                :value="item.belongtoarea + item.detailedAddress" />
                        </el-select>
                    </template>
                </avue-form>
            </trade-card>
            <trade-card title="明细信息">
                <el-tabs v-model="activeName" type="card">
                    <el-tab-pane label="采购明细" name="sale_detail">
                        <avue-crud :option="optionContacts" v-model="formContacts" ref="formContacts"
                            :data="form.orderItemsList" :key="key" @row-save="rowSave" @row-update="rowUpdate"
                            @row-close="rowClose" :before-close="beforeClose"
                            @resetColumn="resetColumnTwo('formContacts', 'optionContacts', 'optionContactsBack', 269.1)"
                            @saveColumn="saveColumnTwo('formContacts', 'optionContacts', 'optionContactsBack', 269.1)">
                            <template slot-scope="{scope,row}" slot="menuLeft">
                                <el-button type="primary" icon="el-icon-plus" size="small" :disabled="isAddBtn"
                                    @click="rowAdd(row)">添加轮胎</el-button>
                                    <el-button type="success" size="small" :disabled="isAddBtn" icon="el-icon-bottom" @click="excelBox = true">导入
                                </el-button>
                                <el-button type="primary" icon="el-icon-printer" size="small"
                                           @click="handlePrint">打印</el-button>
                            </template>
                            <template slot="goodsId" slot-scope="{ row }">
                                <!--<el-select v-if="row.$cellEdit" v-model="row.goodsId" allow-create filterable default-first-option >-->
                                <!--    <el-option v-for="(item, index) in goodsIdoptions" :key="index" :label="item.cname"-->
                                <!--        :value="item.id"></el-option>-->
                                <!--</el-select>-->
                                <span>{{ row.goodsName }}</span>
                            </template>
                            <template slot="goodsNum" slot-scope="{ row }">
                                <el-input v-if="!mingxibaocun" size="small" v-model="row.goodsNum" style="width: 100%"></el-input>
                                <span v-else>{{ row.goodsNum }}</span>
                            </template>
                            <template slot="price" slot-scope="{ row }">
                                <el-input v-if="!mingxibaocun" size="small" v-model="row.price" style="width: 100%"></el-input>
                                <span v-else>{{ row.price }}</span>
                            </template>
                            <template slot="dot" slot-scope="{ row }">
                                <el-select v-if="!mingxibaocun && row.whether=='1'" v-model="row.dot" allow-create filterable default-first-option >
                                    <el-option v-for="(item, index) in picihaolist" :key="index" :label="item.dot"
                                        :value="item.dot"></el-option>
                                </el-select>
                                <span v-else>{{ row.dot }}</span>
                            </template>

                            <template slot="remarks" slot-scope="{ row }">
                                <el-input v-if="!mingxibaocun" size="small" v-model="row.remarks" style="width: 100%"></el-input>
                                <span v-else>{{ row.remarks }}</span>
                            </template>

                            <!-- <template slot-scope="{scope,row}" slot="goodsNum">
                                <el-input size="small" v-model="formContacts.goodsNum" style="width: 100%">
                                    <template slot="inventory">{{ inventory }}吨</template>
                                </el-input>
                            </template> -->
                            <!-- <template slot="goodsId" slot-scope="{ row, index }">
                                <span  style="display:flex">
                                    <el-select v-model="row.goodsId" placeholder="请选择" size="small" filterable
                                        style="width:60%" >
                                        <el-option v-for="item in goodsIdoptions" :key="item.id" :label="item.cname"
                                            :value="item.id">
                                        </el-option>
                                    </el-select>
                                    <el-button icon="el-icon-search" size="small" @click="rePick(row, index)"></el-button>
                                </span>
                            </template> -->
                            <template slot-scope="{type,size,row,index,disabled}" slot="menu">
                                <el-button v-if="mingxibaocun" :size="size" :disabled="disabled || isAdd" :type="type"
                                    :icon="row.$cellEdit ? 'el-icon-plus' : 'el-icon-edit'" @click="hangeditBtn(row, index)">编辑
                                </el-button>
                                <el-button v-else :size="size" :disabled="disabled || isAdd" :type="type"
                                           :icon="row.$cellEdit ? 'el-icon-plus' : 'el-icon-edit'" @click="hangbaocun(row, index)">保存
                                </el-button>
                                <el-button icon="el-icon-delete" :size="size" :disabled="disabled || isDisabled"
                                    :type="type" @click="rowDelBox(row, index, 'orderItemsList')">删除
                                </el-button>
                            </template>
                        </avue-crud>
                    </el-tab-pane>
                    <el-tab-pane label="付款明细" name="payment_details">
                        <avue-crud :option="optionPaymentDetails" v-model="formContacts" ref="payment_details"
                            :data="dataList" @row-save="rowSave" @row-update="rowUpdate"
                            @resetColumn="resetColumnTwo('payment_details', 'optionPaymentDetails', 'optionPaymentDetailsBack', 269.2)"
                            @saveColumn="saveColumnTwo('payment_details', 'optionPaymentDetails', 'optionPaymentDetailsBack', 269.2)">
                            <!-- <template slot-scope="{type,size,row,index,disabled}" slot="menu">
                                <el-button :size="size" :disabled="disabled" :type="type"
                                    :icon="row.$cellEdit ? 'el-icon-plus' : 'el-icon-edit'"
                                    @click="$refs.formContacts.rowCell(row, index)">{{ row.$cellEdit ? '确认' : '修改' }}
                                </el-button>
                                <el-button icon="el-icon-delete" :size="size" :disabled="disabled" :type="type"
                                    @click="rowDelBox(row, index, 'paymentRecordsList')">删除
                                </el-button>
                            </template> -->
                        </avue-crud>
                    </el-tab-pane>
                    <el-tab-pane label="入库记录" name="outbound_records">
                        <avue-crud :option="optionOutboundRecords" v-model="formContacts" ref="outbound_records"
                            :data="form.outboundRecordsList" @row-save="rowSave" @row-update="rowUpdate"
                            @resetColumn="resetColumnTwo('outbound_records', 'optionOutboundRecords', 'optionOutboundRecordsBack', 269.3)"
                            @saveColumn="saveColumnTwo('outbound_records', 'optionOutboundRecords', 'optionOutboundRecordsBack', 269.3)">
                            <!-- <template slot-scope="{type,size,row,index,disabled}" slot="menu">
                                <el-button :size="size" :disabled="disabled" :type="type"
                                    :icon="row.$cellEdit ? 'el-icon-plus' : 'el-icon-edit'"
                                    @click="$refs.formContacts.rowCell(row, index)">{{ row.$cellEdit ? '确认' : '修改' }}
                                </el-button>
                                <el-button icon="el-icon-delete" :size="size" :disabled="disabled" :type="type"
                                    @click="rowDelBox(row, index)">删除
                                </el-button>
                            </template> -->
                        </avue-crud>
                    </el-tab-pane>
                </el-tabs>
            </trade-card>
            <report-dialog :switchDialog="switchDialog" reportName="轮胎商城-采购订单" :reportId="form.id"
                @onClose="onClose()"></report-dialog>
            <el-dialog append-to-body title="审批" class="el-dialogDeep" :visible.sync="checkDialog" width="50%"
                :close-on-click-modal="false" :destroy-on-close="true" :close-on-press-escape="false" v-dialog-drag>
                <check :checkData="checkData" :checkDetail="true" :idList="[]" @operationType="operationType"
                    @choceCheckFun="choceCheckFun">
                </check>
            </el-dialog>
            <el-dialog append-to-body title="审批进度" class="el-dialogDeep" :visible.sync="checkScheduleDialog" width="40%"
                :close-on-click-modal="false" :destroy-on-close="true" :close-on-press-escape="false" v-dialog-drag>
                <check-schedule :checkId="checkId" :batchNo="batchNo" @choceScheduleFun="choceScheduleFun"></check-schedule>
            </el-dialog>
            <el-dialog title="导入明细" append-to-body :visible.sync="excelBox" v-if="excelBox" width="555px"
            :close-on-click-modal="false" v-dialog-drag>
            <avue-form :option="excelOption" v-model="excelForm" table-loading="excelLoading" :upload-before="uploadBefore"
                :upload-after="uploadAfter">
                <template slot="excelTemplate">
                    <el-button type="primary" @click="derivation">
                        点击下载<i class="el-icon-download el-icon--right"></i>
                    </el-button>
                </template>
            </avue-form>
            <p style="text-align: center;color: #DC0505">
                温馨提示 第一次导入时请先下载模板
            </p>
        </el-dialog>
        </div>

        <el-dialog title="选择轮胎" append-to-body class="el-dialogDeep" :visible.sync="dialogVisible" width="80%"
                   :close-on-click-modal="false" :destroy-on-close="true" :close-on-press-escape="false" @close="closeGoods">
            <el-row :style="{ height: rowHeight }">
                <el-col :span="5" style="height: 100%;overflow-y: auto">
                    <div>
                        <el-scrollbar>
                            <basic-container>
                                <avue-tree :option="treeOption" :data="treeDataGoods" @node-click="nodeClick" />
                            </basic-container>
                        </el-scrollbar>
                    </div>
                </el-col>
                <el-col :span="19">
                    <basic-container>
                        <avue-crud :option="optionTwo" :table-loading="loading" :data="goodsListShow" ref="crud"
                                   @refresh-change="refreshChange" @selection-change="selectionChange" @search-change="goodsSearch"
                                   :page.sync="page" @on-load="onLoadfun"
                                   @resetColumn="resetCrud" @saveColumn="saveCrud" >
                            <template slot="menuLeft">
                                <el-tabs v-model="activeNameTabs" @tab-click="tabHandle">
                                    <el-tab-pane label="查询结果" name="searchList" />
                                    <el-tab-pane label="已选定数据" name="importStaging" />
                                </el-tabs>
                            </template>
                            <template slot="goodsNum" slot-scope="{row}">
                                <el-input-number v-model="row.goodsNum" size="small" :controls="false" :precision="0"
                                                 @input="amountChange(row)" style="width: 100%" />
                            </template>

                            <template slot="dot" slot-scope="{row}">
                                <el-select v-if="row.whether=='1'" v-model="row.dot" allow-create filterable default-first-option @focus="picihaolistfun(row.id)">
                                    <el-option v-for="(item, index) in picihaolist" :key="index" :label="item.dot"
                                               :value="item.dot"></el-option>
                                </el-select>
                                <span v-else>{{ row.dot }}</span>
                            </template>

                            <template slot="price" slot-scope="{row}">
                                <el-input-number v-model="row.price" size="small" :controls="false"
                                                 style="width: 100%" />
                                <!--<span v-else>{{ row.price }}</span>-->
                            </template>

                            <template slot-scope="scope" slot="menu">
                                <el-button type="text" icon="el-icon-edit" size="small"
                                           @click.stop="importStagList(scope.row, scope.index)" v-if="activeNameTabs == 'searchList'"
                                           :disabled="goodsListSave.findIndex(item => item.id == scope.row.id) !== -1">选择
                                </el-button>
                                <el-button type="text" icon="el-icon-delete" size="small"
                                           @click.stop="removeStagList(scope.row, scope.index)" v-else>移除
                                </el-button>
                            </template>
                        </avue-crud>
                    </basic-container>
                </el-col>
            </el-row>
            <span slot="footer" class="dialog-footer">
        <el-button @click="dialogVisible = false" :loading="saveLoading">取 消</el-button>
        <el-button type="primary" @click="importGoods" v-if="commodityData !== true" :loading="saveLoading">导入</el-button>
        <!--<el-button type="primary" @click="importChoice" v-if="commodityData === true" :loading="saveLoading"-->
        <!--           :disabled="tableData.length !== 1">导入</el-button>-->
      </span>
        </el-dialog>
    </div>
</template>

<script>
import { getDetails as getCustom } from "@/api/tirePartsMall/basicData/customerInformation"
import { dateFormat } from "@/util/date";
import { getToken } from "@/util/auth";
import { getDetails, submit, generateShipTask, tradingBox, delOrderItem, checkOrder, confirmRefund, goodsListXs, inboundTask, checkOrderCG, revokeCheckOrderCG, revokeInboundTask,goodsListAll} from "@/api/tirePartsMall/salesManagement/saleOrder";
import { dotList, goodsDetail } from "@/api/tirePartsMall/purchasingManagement/warehouseEntryOrder";
import reportDialog from "@/components/report-dialog/main";
import checkSchedule from "@/components/check/checkSchedule";
import check from "@/components/check/check";
import {getCorpType, getList} from "@/api/tirePartsMall/basicData/commodityInformation"
import TicketDistribution from "../../../oceanShipping/maritimeExport/components/ticketDistribution.vue";
import M from "minimatch";
import da from "element-ui/src/locale/lang/da";
import { number } from "echarts";
import {getDeptLazyTreeTwo} from "@/api/basicData/basicFeesDesc";
import commodity from "../../configuration/commodity.json";
export default {
    name: "detailsPage",

    data() {
        return {
            // 编辑还是保存
            mingxibaocun:true,
            // 批次号请求到的数据
            picihaolist:[],
            // 添加轮胎弹窗
            dialogVisible:false,
            // 弹窗高度
            rowHeight: '',
            // 左侧选择搜索
            treeDataGoods: [],
            treeDeptId: '',
            page: {
                pageSize: 10,
                currentPage: 1,
                total: 0,
                pageSizes: [10, 50, 100, 300, 500]
            },
            pageList: {
                pageSize: 10,
                currentPage: 1,
                total: 0
            },
            // 左侧选择
            treeOption:{
                addBtn: false,
                menu: false,
                size: "small",
                props: {
                labelText: "标题",
                    label: "title",
                    value: "value",
                }
            },
            // 表格需要的配置
            optionTwo: commodity,
            loading: false,
            // 商品列表数据合计
            goodsListShow: [],
            // 商品列表暂存
            goodsListSave: [],
            saveLoading: false,
            commodityData: false,
            surplusRouteQuantityOption: [],
            tableData: [],
            // tabs切换
            activeNameTabs:'searchList',
            data:[],

            inventory: 0,
            isStatus: 1,
            excelBox:false,
            // 轮胎名称
            goodsIdoptions: [],
            dataList: [],
            dicUrlWithCustomId: '',
            sharedCompanyId: 0,
            isAddBtn: true,
            isSaveBtn: false,
            viewDisabled: false,
            isAdd: false,
            editButton: true,
            isEditButton: false,
            goods: [],
            isDisabled: false,
            isDisabledTask: false,
            //地址
            recAddressOption: [],
            contactsOption: [],
            isContacts: false,
            checkData: {},
            buttonText: '生成任务',
            buttonColor: 'success', // 初始颜色为success
            checkScheduleDialog: false,
            isApplySettlement: false,
            isConfirmRefundBtn: true,
            isExamineBtn: true,
            isRevocationRequest: true,
            checkDialog: false,
            checkId: '',
            batchNo: '',
            switchDialog: false,
            activeName: "sale_detail",
            disabled: false,
            key: 0,
            excelOption: {
                submitBtn: false,
                emptyBtn: false,
                column: [
                    {
                        label: "模板下载",
                        prop: "excelTemplate",
                        formslot: true,
                        span: 24
                    },
                    {
                        label: "导入明细",
                        prop: "excelFile",
                        type: "upload",
                        drag: true,
                        loadText: "上传中，请稍等",
                        accept: '.xls,.xlsx',
                        span: 24,
                        propsHttp: {
                            res: "data"
                        },
                        tip: "请上传 .xls,.xlsx 标准格式文件",
                        action: "/api/blade-sales-part/ship/import-item"
                    }
                ]
            },
            form: {
                orderItemsList: [],
                paymentRecordsList: [],
                outboundRecordsList: []
            },
            optionForm: {
                menuBtn: false,
                span: 8,
                disabled: false,
                column: [{
                    label: '供应商',
                    prop: "customerId",
                    disabled: false,
                    remote: true,
                    type: 'select',
                    props: {
                        label: 'cname',
                        value: 'id'
                    },
                    cascader: ['recAddress'],
                    click: () => {
                        this.$refs.form.dicInit()
                    },
                    change: (data) => {
                        if (!this.onLoad.id) {
                            // this.$set(this.optionContactsBack, "addBtn", true)
                            // this['optionContacts'] = this['optionContactsBack'];
                            // this.delColumnData(this.getColumnName('269.1'), this['optionContactsBack']);
                        }
                        if (this.$refs.form.DIC.customerId || !this.onLoad.id) {
                            getCustom({ id: data.value }).then(res => {
                                this.dicUrlWithCustomId = res.data.data.id ? res.data.data.id : ''
                                // this.form.storageId ? this.form.storageId : res.data.data.deliveryWarehouseId
                                // this.form.storageId = res.data.data.deliveryWarehouseId
                                this.form.storageId = this.form.storageId ? this.form.storageId : res.data.data.deliveryWarehouseId
                                this.form.contacts = res.data.data.corpsAttnList[0].cname
                                this.form.phone = res.data.data.corpsAttnList[0].tel
                                //联系人
                                this.contactsOption = res.data.data.corpsAttnList
                                //地址
                                this.recAddressOption = res.data.data.corpsAddrList
                                console.log('contactsOption', this.contactsOption);
                                this.form.recAddress = res.data.data.corpsAddrList[0].belongtoarea + res.data.data.corpsAddrList[0].detailedAddress

                            })
                        }

                        // if (this.$refs.form.DIC.customerId || data.value) {
                        //     for (let item of this.$refs.form.DIC.customerId) {
                        //         if (item.id == data.value) {
                        //             console.log(data);
                        //             console.log(this.$refs.form);
                        //             console.log(item);
                        //             //   后端返回数据暂无联系人、地址等数据，无法下拉默认
                        //             this.form.phone = item.tel
                        //         }
                        //     }
                        // }
                    },
                    dicUrl: '/api/blade-sales-part/corpsDesc/listAll?cname={{key}}&corpType=GYS&enableOrNot=1',
                    rules: [{
                        required: true,
                        message: " ",
                        trigger: "blur"
                    }]
                }, {
                    label: '仓库',
                    prop: "storageId",
                    type: 'select',
                    disabled: false,
                    // placeholder: '仓库为空即为异地销售',
                    props: {
                        label: 'cname',
                        value: 'id'
                    },
                    dicUrl: '/api/blade-sales-part/storageDesc/listAll',
                    // rules: [{
                    //     required: true,
                    //     message: " ",
                    //     trigger: "blur"
                    // }]
                },
                // {
                //     label: '来源单号',
                //     prop: "srcOrdNo",
                //     disabled: true
                // }, {
                //     label: '业务来源',
                //     prop: "businessSource",
                //     disabled: true
                // },
                {
                    label: '业务日期',
                    prop: "businesDate",
                    searchProp:"businesDateList",
                    disabled: false,
                    type: "datetime",
                    value: dateFormat(new Date(), 'yyyy-MM-dd'),
                    format: "yyyy-MM-dd",
                    valueFormat: "yyyy-MM-dd",
                    rules: [
                        {
                            required: true,
                            message: "",
                            trigger: "blur"
                        }
                    ]
                },
               {
                    label: '联系人',
                    type: "select",
                    prop: "contacts",
                    disabled: false,
                    props: {
                        label: 'address',
                        value: 'id'
                    },
                    dicUrl: '/api/blade-sales-part/corpsAddr/corpIdByAddr?pid={{key}}'
                }, {
                    label: '电话',
                    disabled: false,

                    prop: "phone",
                }, {
                    label: '地址',
                    prop: "recAddress",
                    type: 'select',
                    disabled: false,
                    props: {
                        label: 'address',
                        value: 'address'
                    },
                    dicUrl: '/api/blade-sales-part/corpsAddr/corpIdByAddr?pid={{key}}'
                },
                //  {
                //     label: '配送方式',
                //     type: 'select',
                //     prop: "shipType",
                //     disabled: false,
                //     dicUrl: "/api/blade-system/dict-biz/dictionary?code=deliveryMethod",
                //     props: {
                //         label: "dictValue",
                //         value: "dictValue"
                //     },
                //     value: '物流'
                // }, {
                //     label: '物流公司',
                //     disabled: false,

                //     prop: "logisticsCorpName"
                // },
                // {
                //     label: '成本',
                //     prop: "cost",
                //     display: true,
                //     disabled: true
                // }, {
                //     label: '毛利',
                //     prop: "grossProfit",
                //     disabled: true
                // },
                // {
                //     label: '采购金额',
                //     prop: "salesAmount",
                //     disabled: true
                // },
                //  {
                //     label: '运费',
                //     prop: "freight",
                //     disabled: true
                // },
                {
                    label: '应付类别',
                    prop: "receivableType",
                    type: "select",
                    disabled: false,
                    dicUrl: "/api/blade-system/dict-biz/dictionary?code=receivableType",
                    props: {
                        label: "dictValue",
                        value: "dictValue"
                    },
                    value: '网络支付'
                },
                {
                    label: '总金额',
                    prop: "totalMoney",
                    disabled: true
                },

                {
                    label: '已付金额',
                    prop: "paymentAmountTl",
                    disabled: true
                },

                {
                    label: '单据编号',
                    prop: "ordNo",
                    disabled: true
                },
                {
                    label: '备注',
                    prop: "remarks",
                    type: 'textarea',
                    disabled: false,
                    span: 16,
                    minRows: 1
                }]
            },
            formContacts: {},
            optionContacts: {},
            optionContactsBack: {
                disabled: false,
                border: true,
                align: 'center',
                index: true,
                showSummary: true,

                addBtnText: "添加轮胎",
                updateBtnText: '保存',
                refreshBtn: false,
                dialogDrag: true,
                addBtn: false,
                span: 8,
                height: 500,
                // 添加
                addRowBtn: false,
                // 保存按钮
                editBtn: false,
                // 航编辑开启
                cellBtn:true,
                rowKey:'ids',
                delBtn: false,
                menuWidth: 140,
                dialogTop: 25,
                dialogWidth: "80%",
                summaryText: "合计",
                showSummary: true,
                sumColumnList: [{
                    name: "goodsNum",
                    type: "sum"
                }, {
                    name: "price",
                    type: "sum",
                    decimals: 2
                }, {
                    name: "sendNum",
                    type: "sum",
                    decimals: 2
                }, {
                    name: "subTotalMoney",
                    type: "sum",
                    decimals: 2
                }],
                column: [{
                    label: '轮胎名称',
                    prop: 'goodsId',
                    width: 200,
                    disabled: false,
                    remote: true,
                    overHidden: true,
                    type: 'select',
                    // dicData: [],
                    props: {
                        label: 'cname',
                        value: 'id'
                    },
                    // dicUrl: '/api/blade-sales-part/goodsDesc/goodsListAll?cname={{key}}'
                    dicUrl: "/api/blade-sales-part/goodsDesc/goodsListAll?cname={{key}}&enableOrNot=1"
                    // dicUrl: "/api/blade-sales-part/goodsDesc/goodsListXs?cname={{key}}"
                }, {
                    label: '数量',
                    prop: 'goodsNum',
                    overHidden: true,
                    disabled: false,
                    cell:true,
                    width: 100,
                    rules: [{
                        required: true,
                        message: " ",
                        trigger: "blur"
                    }, {
                        validator: (rule, value, callback) => {
                            console.log(this.formContacts.inventory);
                            if (value < 0) {
                                callback(new Error("数量不能小于0"));
                            } else {
                                callback();
                            }
                        },
                        trigger: "blur"
                    }]
                },
                {
                    label: '价格',
                    prop: 'price',
                    overHidden: true,
                    width: 100,
                    disabled: false,
                    cell:true,
                    rules: [{
                        required: true,
                        message: " ",
                        trigger: "blur"
                    }, {
                        validator: (rule, value, callback) => {
                            if (value < 0) {
                                callback(new Error("价格不能小于0"));
                            } else {
                                callback();
                            }
                        },
                        trigger: "blur"
                    }]
                },
                {
                    label: '库存',
                    prop: 'inventory',
                    overHidden: true,
                    hide: true,
                    width: 100
                }, {
                    label: '批次号',
                    prop: 'dot',
                        cell:true,
                        width:120,
                    type: "select",
                    disabled: true,
                    allowCreate: true,
                    filterable: true,
                    dicData: [],
                    props: {
                        label: "dot",
                        value: "dot"
                    },
                    dicUrl: "/api/blade-sales-part/stockDesc/dotList",
                    overHidden: true,
                }, {
                    label: '轮胎编码',
                    prop: 'goodsNo',
                    overHidden: true,
                    disabled: false,
                    width: 100
                },
                {
                    label: '品牌',
                    prop: 'brandName',
                    disabled: false,
                    width: 100,
                    overHidden: true,
                },
                {
                    label: '规格型号',
                    prop: 'propertyName',
                    overHidden: true,
                    disabled: false,
                    width: 100
                }, {
                    label: '花纹',
                    prop: 'pattern',
                    overHidden: true,
                    disabled: false,
                    width: 100
                }, {
                    label: '轮胎描述',
                    prop: 'goodsDescription',
                    disabled: false,
                    overHidden: true,
                    width: 100
                },
                {
                    label: '单位',
                    prop: 'units',
                    type: "select",
                    disabled: false,
                    props: {
                        label: "dictValue",
                        value: "dictValue"
                    },
                    dicUrl: "/api/blade-system/dict-biz/dictionary?code=unit",
                    overHidden: true,
                    width: 100
                },

                {
                    label: '收货数量',
                    prop: 'sendNum',
                    disabled: false,
                    overHidden: true,
                    width: 100,
                    disabled: true,
                    editDisplay: false,
                    addDisplay: false
                },
                // {
                //     label: '利润',
                //     prop: 'profit',
                //     overHidden: true,
                //     width: 100
                // },
                {
                    label: '小计',
                    prop: 'subTotalMoney',
                    overHidden: true,
                    width: 100,
                    disabled: true,
                    editDisplay: false,
                    addDisplay: false
                },
                // {
                //     label: '返利',
                //     prop: 'thisAmount',
                //     overHidden: true,
                //     width: 100
                // },
                // {
                //     label: '成本',
                //     prop: 'costprie',
                //     overHidden: true,
                //     width: 100,
                //     disabled: true,
                //     editDisplay: false,
                //     addDisplay: false

                // },
                // {
                //     label: '毛利',
                //     prop: 'grossProfit',
                //     overHidden: true,
                //     width: 100,
                //     disabled: true,
                //     editDisplay: false,
                //     addDisplay: false
                // },
                {
                    label: '备注',
                    prop: "remarks",
                    overHidden: true,
                    width: 100,
                    disabled: false,

                }
                ]
            },
            optionPaymentDetails: {},
            optionPaymentDetailsBack: {
                align: 'center',
                index: true,
                addBtnText: "录入明细",
                menu: false,
                refreshBtn: false,
                dialogDrag: true,
                addBtn: false,
                span: 8,
                height: 600,
                addRowBtn: false,
                editBtn: false,
                delBtn: false,
                menuWidth: 140,
                dialogTop: 25,
                dialogWidth: "80%",
                column: [{
                    label: '支付编号',
                    prop: 'serialNumber'
                }, {
                    label: '金额',
                    prop: 'amount'
                }, {
                    label: '类型',
                    prop: 'type'
                }, {
                    label: '支付时间',
                    prop: 'createTime'
                }]
            },
            optionOutboundRecords: {},
            optionOutboundRecordsBack: {
                align: 'center',
                index: true,
                menu: false,
                addBtnText: "录入明细",
                refreshBtn: false,
                dialogDrag: true,
                addBtn: false,
                span: 8,
                height: 600,
                addRowBtn: false,
                editBtn: false,
                delBtn: false,
                // menuWidth: 140,
                dialogTop: 25,
                dialogWidth: "80%",
                column: [{
                    label: '出库单号',
                    prop: 'billno'
                },
                {
                    label: '来源单号',
                    prop: 'ordNo'
                }, {
                    label: '数量',
                    prop: 'goodsTotalNum'
                }, {
                    label: '状态',
                    prop: 'statusName'
                }, {
                    label: '业务时间',
                    prop: 'createTime'
                }]
            }
        }
    },
    components: { reportDialog, check, checkSchedule },
    props: {
        onLoad: Object,
        detailData: Object
    },
    async created() {
        this.findObject(this.optionContactsBack.column, "goodsId").click = ({ value, column }) => {
            console.log('点击了');
            // this.findObject(this.optionContactsBack.column, "goodsId").dicUrl= "/api/blade-sales-part/goodsDesc/goodsListAll?cname=&enableOrNot=1"
            this.$refs.formContacts.dicInit()

         }
        // console.log(this.$route);
        //         if(this.$route.query.check.actId){

        //             this.isExamineBtn = false
        //         }
        this.findObject(this.optionContactsBack.column, "goodsId").change = ({ value, column }) => {
            if (this.formContacts.goodsId !== value) {
                goodsDetail({ id: value, customId: this.dicUrlWithCustomId, stock: this.form.storageId ? this.form.storageId : '' }).then(res => {
                    this.goods = res.data.data
                    this.formContacts.goodsNo = res.data.data.code
                    this.formContacts.brandId = res.data.data.brandId
                    this.formContacts.inventory = res.data.data.inventory
                    // this.formContacts.brandId = res.data.data.brandName
                    // this.formContacts.brandName = res.data.data.brandId

                    this.formContacts.propertyName = res.data.data.specificationAndModel
                    this.formContacts.pattern = res.data.data.brandItem
                    this.formContacts.goodsDescription = res.data.data.goodsDescription
                    this.formContacts.units = res.data.data.unit
                    this.formContacts.price = res.data.data.price
                    //
                    this.formContacts.sharedCompanyId = res.data.data.sharedCompanyId
                    console.log(res.data.data.sharedCompanyId);
                    console.log(res.data.data.sharedCompanyName);
                    this.form.sharedCompanyId = res.data.data.sharedCompanyId
                    this.form.sharedCompanyName = res.data.data.sharedCompanyName
                    this.sharedCompanyId = res.data.data.sharedCompanyId
                    console.log(res.data.data.sharedCompanyId);
                    console.log(this.form.orderItemsList);
                    for (let i = 0; i < this.form.orderItemsList.length; i++) {
                        console.log(Number(this.form.orderItemsList[i].sharedCompanyId));
                        if (Number(this.form.orderItemsList[i].sharedCompanyId) != Number(res.data.data.sharedCompanyId)) {
                            this.isStatus = 0
                        }
                    }
                    if (res.data.data.whether == 0) {
                        this.findObject(this.optionContactsBack.column, "dot").disabled = true
                    } else {
                        this.findObject(this.optionContactsBack.column, "dot").disabled = false
                        dotList({
                            storageId: this.form.storageId,
                            goodsId: this.formContacts.goodsId
                        }).then(res => {
                            this.findObject(this.optionContactsBack.column, "dot").dicData = res.data.data
                        })
                    }
                    // this.formContacts.goodsId = res.data.data.cname
                    // this.formContacts.goodsName = res.data.data.id
                })
            }
        }
        this.optionContacts = await this.getColumnData(this.getColumnName(269.1), this.optionContactsBack);

        this.findObject(this.optionContacts.column, "goodsId").change = ({ value, column }) => {
            if (this.formContacts.goodsId !== value) {
                goodsDetail({ id: value, customId: this.dicUrlWithCustomId, stock: this.form.storageId ? this.form.storageId : '' }).then(res => {
                    this.goods = res.data.data
                    this.formContacts.goodsNo = res.data.data.code
                    this.formContacts.brandId = res.data.data.brandId
                    this.formContacts.inventory = res.data.data.inventory
                    // this.formContacts.brandId = res.data.data.brandName
                    // this.formContacts.brandName = res.data.data.brandId
                    this.formContacts.propertyName = res.data.data.specificationAndModel
                    this.formContacts.pattern = res.data.data.brandItem
                    this.formContacts.goodsDescription = res.data.data.goodsDescription
                    this.formContacts.units = res.data.data.unit
                    this.sharedCompanyId = res.data.data.sharedCompanyId
                    this.formContacts.sharedCompanyId = res.data.data.sharedCompanyId
                    //
                    this.form.sharedCompanyId = res.data.data.sharedCompanyId
                    this.form.sharedCompanyName = res.data.data.sharedCompanyName
                    for (let i = 0; i < this.form.orderItemsList.length; i++) {
                        if (this.form.orderItemsList[i].sharedCompanyId != res.data.data.sharedCompanyId) {
                            this.isStatus = 0
                        }
                    }
                    if (res.data.data.whether == 0) {
                        this.findObject(this.optionContacts.column, "dot").disabled = true
                    } else {
                        this.findObject(this.optionContacts.column, "dot").disabled = false
                        dotList({
                            storageId: this.form.storageId,
                            goodsId: this.formContacts.goodsId
                        }).then(res => {
                            this.findObject(this.optionContacts.column, "dot").dicData = res.data.data
                        })
                    }
                    // this.formContacts.goodsId = res.data.data.cname
                    // this.formContacts.goodsName = res.data.data.id
                })
            }
        }
        this.optionPaymentDetails = await this.getColumnData(this.getColumnName(269.2), this.optionPaymentDetailsBack);
        this.optionOutboundRecords = await this.getColumnData(this.getColumnName(269.3), this.optionOutboundRecordsBack);
        this.key++
        if (this.onLoad.id && this.detailData.id) {
            this.$set(this.optionForm, 'disabled', true)
            this.$set(this.optionContactsBack, 'disabled', true)
            this.isContacts = true
            this.isDisabled = true
            //添加删除按钮禁用
            this.isAdd = true
            this.refresh(this.onLoad.id, true)
        } else if (this.onLoad.id) {
            this.refresh(this.onLoad.id, true)
        }
        if (!this.form.id) {
            console.log(3);
            this.optionContactsBack.column.forEach(its => {
                if (its.prop == 'goodsId' || its.prop == 'goodsNum' || its.prop == 'price' || its.prop == 'dot' || its.prop == 'remarks') {
                    its.disabled = false
                } else {
                    its.disabled = true
                }
            })
            this.isSaveBtn = true;
            this.isDisabledTask = true;
            this.viewDisabled = true;
            // this.$set(this.optionContactsBack, "addBtn", false)
            this['optionContacts'] = this['optionContactsBack'];
            this.delColumnData(this.getColumnName('269.1'), this['optionContactsBack']);
        }
        if (!this.detailData.id) {
            this.editButton = false
            this.isAddBtn = false
            this.isDisabledTask = false;
            this.isSaveBtn = false
            this.viewDisabled = false;
            this.form.businessSource = '内部销售'
        }
        console.log(this.detailData.check);
        if (this.detailData.check) {
            console.log('this.detailData.check', this.detailData.check);
            this.isExamineBtn = false
            // this.batchNo = this.detailData.check.batchNo
        }

        if (this.detailData.id) {
            this.getDetailsfun()
        }


    },

    watch: {
        // dicUrlWithCustomId() {
        //     console.log(this.form);
        //     // this.findObject(this.optionContactsBack.column, "goodsId").dicUrl = `/api/blade-sales-part/goodsDesc/goodsListXs?cname={{key}}&customId=${this.dicUrlWithCustomId}&enableOrNot=0`
        //     goodsListXs(this.dicUrlWithCustomId, this.form.storageId ? this.form.storageId : '').then(res => {
        //         this.findObject(this.optionContactsBack.column, "goodsId").dicData = res.data.data
        //     })

        // },
        // 'form.storageId'(newStorageId, oldStorageId) {
        //     goodsListXs(this.dicUrlWithCustomId, this.form.storageId ? this.form.storageId : '').then(res => {
        //         this.findObject(this.optionContactsBack.column, "goodsId").dicData = res.data.data
        //     })
        // },
        // 'form.orderItemsList.length'(newformContacts, oldformContacts) {
        //     console.log(this.formContacts);
        //     console.log(this.form.orderItemsList);
        //     // for (let i = 0; i < this.form.orderItemsList.length - 1; i++) {
        //     //     const currentItem = this.form.orderItemsList[i];
        //     //     const nextItem = this.form.orderItemsList[i + 1];

        //     //     if (currentItem.sharedCompanyId !== nextItem.sharedCompanyId) {
        //     //         console.log('不能添加');
        //     //     }
        //     // }
        //     if (this.form.orderItemsList.length) {
        //         this.findObject(this.optionForm.column, 'storageId').disabled = true
        //     } else {
        //         this.findObject(this.optionForm.column, 'storageId').disabled = false
        //     }
        // },
        'form.sharedCompanyId'(newSharedCompanyId, oldSharedCompanyId) {
            console.log(newSharedCompanyId, oldSharedCompanyId);
            if (newSharedCompanyId != oldSharedCompanyId) {
                console.log('不能添加');
            }
            console.log(this.sharedCompanyId);
        },
        $route(to, from) {
            if (this.onLoad.id && this.detailData.id) {
                this.$set(this.optionForm, 'disabled', true)
                this.$set(this.optionContactsBack, 'disabled', true)
                this.isContacts = true
                this.isDisabled = true
                this.isAdd = true
                this.refresh(this.onLoad.id, true)
            } else if (this.onLoad.id) {
                console.log(2);
                this.refresh(this.onLoad.id, true)
            }
            // if (!this.form.id) {
            //     console.log(3);
            //     // this.$set(this.optionContactsBack, "addBtn", false)
            //     this['optionContacts'] = this['optionContactsBack'];
            //     this.delColumnData(this.getColumnName('269.1'), this['optionContactsBack']);
            // }
            // if (!this.detailData.id) {
            //     this.form.businessSource = '内部销售'
            // }

            if (this.detailData.status == 1) {
                this.isExamineBtn = false;
            }
            // if (to.name == '销售订单') {
            //     console.log('销售订单');
            //     this.isExamineBtn = false;

            // }
        }
    },

    mounted() {
        this.$nextTick(() => {
            // 监听浏览器高度变化，改变表格高度
            window.onresize = () => {
                this.rowHeight = (window.innerHeight - 130) + 'px'
            }
        })
    },
    methods: {
        // 获取明细信息
        getDetailsfun(){
            console.log(this.detailData.id,1128)
            getDetails({
                id:this.detailData.id
            }).then(res=>{
                this.form = res.data.data
                this.form.orderItemsList = res.data.data.orderItemsList
            })
        },
        // 获取左侧筛选
        getAllWorkDicts(){
            getCorpType({ corpType: 'SP' }).then(res => {
                this.treeDataGoods = res.data.data;
            });
        },
        //导入页左商品类型查询
        nodeClick(data) {
            this.treeDeptId = data.id;
            this.page.currentPage = 1;
            this.onLoadfun(this.page, {goodsTypeId:this.treeDeptId});
        },
        closeGoods() {
            this.treeDataGoods = [];
            this.treeDeptId = "";
            this.activeNameTabs = "searchList";
        },
        //刷新触发
        refreshChange() {
            this.treeDeptId = ''
            this.page.currentPage = 1;
            this.onLoadfun(this.page);
        },
        // 这个方法是解决 this.onLoad is not a function 的问题
        onaloadfun(page, params = { artsVision: this.form.belongToCorpId }) {
            this.loading = true;
            getList({
                ...params,
                current: page.currentPage,
                size: page.pageSize
            }).then(res=>{
                console.log(res,1213)
                const data = res.data.data;
                this.page.total = data.total;
                this.pageList.total = data.total
                this.data = data.records;
                this.goodsListShow = data.records;

                // // 获取单价数据
                // for(let item of this.goodsListShow) {
                //     let page = {}
                //     if (this.form.storageId) {
                //         page.storageId = this.form.storageId
                //     }
                //     page.goodsId = item.goodsId
                //     if (this.form.storageId) {
                //         dotList(page).then(res=>{
                //             console.log(res.data.data,1206)
                //             item.price = res.data.data[0].inventoryCostPrice
                //             // console.log(item)
                //         })
                //     }
                //
                // }


                this.loading = false;
            })
            // getList(page.currentPage, page.pageSize, Object.assign(params, this.query), this.treeDeptId, null).then(res => {
            //     const data = res.data.data;
            //     this.page.total = data.total;
            //     this.pageList.total = data.total
            //     this.data = data.records;
            //     this.goodsListShow = data.records;
            //     this.loading = false;
            // });
        },
        //选中触发
        selectionChange(list) {
            this.tableData = list
        },
        // 点击搜索触发
        goodsSearch(params, done) {
            this.treeDeptId = ''
            params = {
                ...params,
                artsVision: this.form.belongToCorpId
            }
            this.onLoadfun(this.page, params);
            done()
        },
        // 标签页切换
        tabHandle(data) {
            if (data.name == 'searchList') {
                this.goodsListShow = this.data;
                this.page.total = this.pageList.total
            } else if (data.name == 'importStaging') {
                this.goodsListShow = this.goodsListSave;
                this.page.total = 0
            }
        },
        // 商品信息价格计算
        amountChange(row) {
            // 价格
            // if (!row.price) {
            //     row.price = 0;
            // }
        },
        importStagList(row, index, type) {
            this.goodsListSave.push(row);
        },
        removeStagList(row, index, type) {
            this.goodsListSave.splice(row.$index, 1)
        },
        //确认导入触发
        async importGoods() {
            this.surplusRouteQuantityOption.push({ storageQuantity: '0' });
            console.log(this.goodsListSave,'导入按钮')
            console.log(this.surplusRouteQuantityOption,'导入按钮2')
            console.log(this.tableData,'导入按钮3')
            if (this.goodsListSave.length > 0) {
                this.goodsListSaveHandle()
            } else {
                if (this.tableData.length > 0) {
                    this.tableDataHandle()
                }
            }
        },

        // 导入按钮事件
        tableDataHandle(){
            // 循环获取库存数量
            for(let item of this.tableData) {
                console.log(item,'循环导入')
                let page = {}
                if (this.form.storageId) {
                    page.storageId = this.form.storageId
                }
                page.goodsId = item.id
                dotList(page).then(res=>{
                    console.log(res.data,'获取到的数据')
                    let obj = {}
                    if(res.data.data.length>0){
                        // obj.price = res.data.data[0].inventoryCostPrice,
                        obj.inventory = res.data.data[0].balanceQuantity,
                        obj.pattern = res.data.data[0].brandItem,
                        obj.goodsDescription = res.data.data[0].productDescription,
                            // 规格型号
                            obj.propertyName = res.data.data[0].typeno
                        if (item.dot) {
                            obj.dot = item.dot
                        }else {
                            obj.dot = ''
                        }
                    }
                    this.form.orderItemsList.push({
                        ...obj,
                        price:item.price,
                        goodsId:item.id,
                        goodsName:item.cname,
                        dot:item.dot,
                        brandName:item.brandName,
                        brandId:item.brandId,
                        goodsNo:item.code,
                        // propertyName:item.typeno,

                        goodsNum:item.goodsNum,
                        units:item.unit,
                        // sendNum:res.data.data[0],
                        // 备注
                        remarks:item.remarks,
                        // 判断批次号是否可以编辑
                        whether:item.whether,
                        // 批次号的状态
                        dotedittype:false,
                        // 价格数量
                        goodsNumtype:false,
                        // 价格
                        pricetype:false,
                        // 是否是编辑状态
                        mingxibaocun:true
                    })
                })
            }
            this.dialogVisible = false
        },
        // 导入
        goodsListSaveHandle(){
            this.tableData = this.goodsListSave
            this.tableDataHandle()
        },

        //导入轮胎弹窗列表查询
        onLoadfun(page, params = { artsVision: this.form.belongToCorpId }) {
            this.loading = true;
            getList({
                ...params,
                current: page.currentPage,
                size: page.pageSize
            }).then(res=>{
                console.log(res,1213)
                const data = res.data.data;
                this.page.total = data.total;
                this.pageList.total = data.total
                this.data = data.records;
                this.goodsListShow = data.records;

                // 获取单价数据
                for(let item of this.goodsListShow) {
                    let page = {}
                    item.goodsNum = item.goodsNum?item.goodsNum:0
                    if (this.form.storageId) {
                        page.storageId = this.form.storageId
                    }
                    page.goodsId = item.id
                    if (this.form.storageId) {
                        dotList(page).then(res=>{
                            console.log(res.data.data,1206)
                            item.price = res.data.data[0].inventoryCostPrice
                            // console.log(item)
                        })
                    }
                }

                this.loading = false;
            })
            // getList(page.currentPage, page.pageSize, Object.assign(params, this.query), this.treeDeptId, null).then(res => {
            //     const data = res.data.data;
            //     this.page.total = data.total;
            //     this.pageList.total = data.total
            //     this.data = data.records;
            //     this.goodsListShow = data.records;
            //     this.loading = false;
            // });
        },
        // 采购明细行编辑
        hangeditBtn(row,index){
            console.log(row)
            this.picihaolistfun(row.id)
            row.dotedittype = true
            // 价格数量
            row.goodsNumtype = true
            row.pricetype = true
            // 编辑和保存状态切换
            this.mingxibaocun = false
        },
        // 保存按钮
        hangbaocun(row) {
            row.dotedittype = false
            row.goodsNumtype = false
            row.pricetype = false
            this.mingxibaocun = true
        },
        // 批次号获取数据
        picihaolistfun(goodsId){
            dotList({
                storageId:this.form.storageId,
                goodsId: goodsId
            }).then(res=>{
                this.picihaolist = res.data.data
                console.log(res.data.data,1282)
            })
        },

        // 编辑
        editBtn(row, index) {
            // this.findObject(this.optionContactsBack.column, "goodsId").dicUrl= `/api/blade-sales-part/goodsDesc/goodsListAll?cname={{key}}&enableOrNot=1`
            this.confirmEditing()
            console.log(row);
            this.$refs.formContacts.dicInit()
            // this.$refs.formContacts.rowEdit(row, index);
            dotList({
                storageId: this.form.storageId,
                goodsId: this.formContacts.goodsId
            }).then(res => {
                this.findObject(this.optionContactsBack.column, "dot").dicData = res.data.data
            })
        //     this.findObject(this.optionContactsBack.column, "goodsId").click = ({ value, column }) => {
        //     console.log('点击了');
        //     this.findObject(this.optionContactsBack.column, "goodsId").dicUrl= "/api/blade-sales-part/goodsDesc/goodsListAll?cname={{key}}&enableOrNot=1"
        //     this.$refs.formContacts.dicInit()
        //  }
            // goodsListXs(this.dicUrlWithCustomId, this.form.storageId ? this.form.storageId : '').then(res => {
            //     this.findObject(this.optionContactsBack.column, "goodsId").dicData = res.data.data
            // })
        },
        //表头编辑
        confirmEditing() {
            goodsListXs(this.dicUrlWithCustomId, this.form.storageId ? this.form.storageId : '').then(res => {
                this.findObject(this.optionContactsBack.column, "goodsId").dicData = res.data.data
            })
            if (this.form.status == '已发货') {
                this.viewDisabled = false
                return
            }
            if (this.form.status == '审核中') {
                this.isRevocationRequest = false
                this.viewDisabled = false
                return
            }
            if (this.form.status == '退款中') {
                this.viewDisabled = false
                this.isRevocationRequest = true
                return
            }
            this.isAddBtn = false
            if (this.form.status == '已取消' || this.form.status == '已退款' || this.form.status == '已发货') {
                return
                // this.$message.error('当前状态不允许编辑')
                // this.optionForm.column.forEach(item=>{
                //     if(item.prop= 'contacts'){
                //         item.disabled = true
                //     }
                // })
            }
            if (this.form.status == '已取消' || this.form.status == '退款请核') {
                this.isAddBtn = true
                // this.$message.error('当前状态不允许编辑')
                // this.optionForm.column.forEach(item=>{
                //     if(item.prop= 'contacts'){
                //         item.disabled = true
                //     }
                // })
            }
            if (this.form.status == '待发货') {
                this.isAddBtn = true
                this.isDisabledTask = false
            }
            this.optionContactsBack.column.forEach(its => {
                if (its.prop == 'goodsId' || its.prop == 'goodsNum' || its.prop == 'price' || its.prop == 'dot' || its.prop == 'remarks') {
                    its.disabled = false
                } else {
                    its.disabled = true
                }
            })
            this.$set(this.optionForm, 'disabled', false)
            this.$set(this.optionContactsBack, 'disabled', false)
            this.isDisabled = false
            this.isAdd = false
            if (this.form.businessSource == "外部销售") {
                this.optionForm.column.forEach(its => {
                    if (its.prop == 'contacts' || its.prop == 'phone' || its.prop == 'recAddress') {
                        this.$set(its, 'disabled', true)
                    }
                })
                if (this.form.status == '待发货') {
                    this.isSaveBtn = false;
                    this.isDisabledTask = false;
                    this.viewDisabled = false;
                }
                if (this.form.status == '待确认') {
                    const loadings = this.$loading({
                        lock: true,
                        text: '加载中',
                        spinner: 'el-icon-loading',
                        background: 'rgba(255,255,255,0.7)'
                    });
                    console.log('外部销售待确认');
                    this.isSaveBtn = false;
                    this.isDisabledTask = false;
                    this.viewDisabled = false;
                    this.optionForm.column.forEach(its => {
                        if (its.prop == 'customerId') {
                            this.$set(its, 'disabled', true)
                        }
                        if (its.prop == 'storageId') {
                            this.$set(its, 'disabled', false)
                        }
                    })
                    //外部销售都能申请退款
                    this.isApplySettlement = false
                    //不能录入不能删除
                    this.isDisabled = true
                    this.isAdd = false
                    this.isAddBtn = true
                    this.$set(this.form, 'shipType', '物流')
                    this.$set(this.form, 'receivableType', '网络支付')
                    this.optionContactsBack.column.forEach(item => {
                        this.$set(item, 'disabled', true)
                        if (item.label == '批次号' || item.label == '备注') {
                            item.disabled = false
                        }
                    })
                    loadings.close()
                } else {
                    const loadin = this.$loading({
                        lock: true,
                        text: '加载中',
                        spinner: 'el-icon-loading',
                        background: 'rgba(255,255,255,0.7)'
                    });
                    this.isAddBtn = true
                    this.isDisabled = true
                    this.isSaveBtn = false;
                    this.isDisabledTask = false;
                    this.viewDisabled = false;
                    this.optionForm.column.forEach(its => {
                        if (its.prop != 'remarks') {
                            its.disabled = true
                        } else {
                            its.disabled = false
                        }
                    })
                    this.optionContactsBack.column.forEach(its => {
                        if (its.prop != 'remarks') {
                            its.disabled = true
                        } else {
                            its.disabled = false
                        }
                    })
                    loadin.close()
                }

            } else {
                const loading = this.$loading({
                    lock: true,
                    text: '加载中',
                    spinner: 'el-icon-loading',
                    background: 'rgba(255,255,255,0.7)'
                });
                if (this.form.status == '待发货' || this.form.status == '已发货' || this.form.status == '已取消') {
                    const loading = this.$loading({
                        lock: true,
                        text: '加载中',
                        spinner: 'el-icon-loading',
                        background: 'rgba(255,255,255,0.7)'
                    });
                    this.optionForm.column.forEach(its => {
                        if (its.prop != 'remarks') {
                            its.disabled = true
                        } else {
                            its.disabled = false
                        }
                    })
                    this.optionContactsBack.column.forEach(its => {
                        if (its.prop != 'remarks') {
                            its.disabled = true
                        } else {
                            its.disabled = false
                        }
                    })
                    loading.close()
                } else if (this.form.status == '录入') {
                    this.isSaveBtn = false;
                    this.isDisabledTask = false;
                    this.viewDisabled = false;
                    // this.$set(this.optionForm, 'disabled', false)
                    // this.$set(this.optionContactsBack, 'disabled', false)
                    this.$set(this.optionForm, 'disabled', false)
                    this.$set(this.optionContactsBack, 'disabled', false)

                    this.isContacts = false
                    //删除按钮
                    this.isDisabled = false
                    // this.optionForm.column.forEach(item => {
                    //     item.disabled = false
                    // })
                    loading.close()

                } else if (this.form.status == '待确认') {
                    this.isSaveBtn = false;
                    this.isDisabledTask = false;
                    this.isAddBtn = false;
                    this.isAdd = false;
                    this.isDisabled = false
                    this.viewDisabled = false;
                    // this.isDisabled = true
                    console.log('待确认');
                    // this.optionForm.column.forEach(item => {
                    //     if (item.label === '仓库' || item.label === '备注' || item.label === '配送方式' || item.label === '物流公司') {
                    //         this.$set(item, 'disabled', false)
                    //     } else {
                    //         this.$set(item, 'disabled', true)
                    //     }
                    // })
                    // this.optionContactsBack.column.forEach(its => {
                    //     if (its.prop == 'remarks' || its.prop == 'dot') {
                    //         this.$set(its, 'disabled', false)
                    //     } else {
                    //         this.$set(its, 'disabled', true)

                    //     }
                    // })
                    loading.close()
                }
                console.log(this.form.status);
                if (this.form.status == '待发货') {
                    this.isSaveBtn = false;
                    this.isDisabledTask = false;
                    this.viewDisabled = false;
                }
                console.log(this.form.outboundRecordsList);
                this.form.outboundRecordsList.forEach(item => {
                    if (item.statusName == '待出库') {
                        this.isDisabledTask = true
                    }
                })
                if (this.form.checkStatus == '审核完成') {
                    console.log('审核完成');
                    this.$set(this.optionForm, 'disabled', true)
                    this.$set(this.optionContactsBack, 'disabled', true)
                    this.isContacts = true
                    this.isDisabled = true
                    //添加删除按钮禁用
                    this.isAdd = true
                    this.isAddBtn = true
                }
                loading.close()
            }
            // this.$set(this.form.orderItemsList,'goodsNum',66)

        },
        generateOutbound() {
            if (!this.form.id) {
                this.$message.error('请先保存')
            } else {
                if (this.buttonText === '生成任务') {
                    //生成任务逻辑
                    if (this.form.orderItemsList.length <= 0) {
                        this.$message.error('请录入明细');
                    } else {
                        this.$set(this.optionForm, 'disabled', true)
                        this.$set(this.optionContactsBack, 'disabled', true)
                        this.$refs["form"].validate((valid, done) => {
                            if (valid) {
                                // this.form.orderItemsList.forEach((items) => {
                                //     let brandName = items.brandId
                                //     items.brandId = items.brandName
                                //     items.brandName = brandName

                                //     let goodsName = items.goodsId
                                //     items.goodsId = items.goodsName
                                //     items.goodsName = goodsName

                                // })
                                this.$refs["form"].validate((valid, done) => {
                                    done();
                                    if (valid) {
                                        const loading = this.$loading({
                                            lock: true,
                                            text: '加载中',
                                            spinner: 'el-icon-loading',
                                            background: 'rgba(255,255,255,0.7)'
                                        });
                                        inboundTask({
                                            bsType: "CG",
                                            ...this.form
                                        }).then(res => {
                                            console.log(1);
                                            this.refresh(res.data.data.id)
                                            this.isDisabledTask = false
                                            generateShipTask(this.form).then(res => {
                                                console.log(res.data);
                                                // 将按钮文本更改为"撤销任务"
                                                this.buttonText = '撤销任务';
                                                // 将按钮颜色更改为对应的颜色
                                                this.buttonColor = 'warning'; // 比如改为warning
                                                this.refresh(res.data.data.id, true)
                                                this.isContacts = true
                                                this.isAdd = true
                                                this.isDisabled = true
                                                // this.findObject(this.optionForm,'disabled') = true
                                                // this.findObject(this.optionContactsBack,'disabled') = true
                                                this.$message.success("生成出库任务成功");
                                                this.isApplySettlement = false
                                                loading.close();

                                            }).finally(() => {
                                                loading.close();
                                            });
                                        }).finally(() => {
                                            loading.close();
                                        });
                                    } else {
                                        return false;
                                    }
                                });

                                done();
                            } else {
                                this.$message.error('请选择仓库')
                            }
                        })
                    }
                } else {
                    this.$refs["form"].validate((valid, done) => {
                        console.log(valid);
                        if (valid) {
                            const loading = this.$loading({
                                lock: true,
                                text: '加载中',
                                spinner: 'el-icon-loading',
                                background: 'rgba(255,255,255,0.7)'
                            });
                            // this.form.orderItemsList.forEach((items) => {
                            //     let brandName = items.brandId
                            //     items.brandId = items.brandName
                            //     items.brandName = brandName

                            //     let goodsName = items.goodsId
                            //     items.goodsId = items.goodsName
                            //     items.goodsName = goodsName

                            // })
                            revokeInboundTask(this.form).then(res => {
                                // 将按钮文本更改为"生成任务"
                                this.buttonText = '生成任务';
                                // 将按钮颜色还原为success
                                this.buttonColor = 'success';
                                this.$message.success("撤销出库成功");
                                this.refresh(res.data.data.id)
                                this.isApplySettlement = false
                                loading.close();
                            }).catch((err) => {
                                console.log(err);
                                if (err instanceof TooManyResultsException) {
                                    // 不显示错误消息
                                    return;
                                }
                                // 显示其他错误消息
                                this.$message.error('发生错误，请稍后重试');

                            }).finally(() => {
                                loading.close();
                            });
                            done();

                        }
                    })
                }

            }
        },
        //联系人change
        contactsChange(e) {
            console.log(e);
            console.log(this.contactsOption);
            // 假设this.contactsOption是你的数组对象
            let matchedContact = this.contactsOption.find(item => item.contacts == e);
            // 判断是否找到匹配的对象
            this.$set(this.form, 'phone', matchedContact.tel)
            // this.$set(this.form, 'recAddress', matchedContact.belongtoarea + matchedContact.detailedAddress)

        },
        //修改提交触发
        editCustomer() {
            this.$refs["form"].validate((valid, done) => {
                done();
                let picihao = false
                if (valid) {
                    for(let i in this.form.orderItemsList) {
                        console.log(this.form.orderItemsList[i],1800)
                        if (this.form.orderItemsList[i].pid) {
                        }else {
                            if(this.form.orderItemsList[i].whether == '1' && this.form.orderItemsList[i].dot){
                            }else {
                                this.$message.success(`采购明细序号${i+1}的批次号不能为空`);
                                picihao = true
                            }
                        }
                    }
                    if (picihao) {
                        return
                    }

                    const loading = this.$loading({
                        lock: true,
                        text: '加载中',
                        spinner: 'el-icon-loading',
                        background: 'rgba(255,255,255,0.7)'
                    });
                    // this.form.orderItemsList.forEach(its => {
                    //     console.log(its.goodsId);
                    //     console.log(its.goodsName);
                    //     its.brandId = its.brandName
                    //     let goodsName = its.goodsId
                    //     its.goodsId = its.goodsName
                    //     its.goodsName = goodsName

                    // })

                    submit({
                        bsType: "CG",
                        ...this.form
                    }).then(res => {
                        this.$message.success("保存成功");
                        this.refresh(res.data.data.id)
                        this.isDisabledTask = false
                        this.editButton = true
                        loading.close();
                    }).finally(() => {
                        loading.close();
                    });
                } else {
                    return false;
                }
            });
        },
        //保存
        save() {
            this.$refs["form"].validate((valid, done) => {
                done();
                if (valid) {
                    const loading = this.$loading({
                        lock: true,
                        text: '加载中',
                        spinner: 'el-icon-loading',
                        background: 'rgba(255,255,255,0.7)'
                    });
                    inboundTask({
                        bsType: "CG",
                        ...this.form
                    }).then(res => {
                        console.log(1);
                        this.refresh(res.data.data.id)
                        this.isDisabledTask = false
                        loading.close();
                    }).finally(() => {
                        loading.close();
                    });
                } else {
                    return false;
                }
            });
        },
        inBtn(){

        },
        //关闭弹窗表单
        beforeClose(done, type) {
            console.log(type);
            // if(row == "add"){
            //     this.form.sharedCompanyId = this.form.sharedCompanyId?this.form.sharedCompanyId:''
            //     this.form.sharedCompanyName = this.form.sharedCompanyName?this.form.sharedCompanyName:''
            // }
            console.log('this.form.sharedCompanyId', this.form.sharedCompanyId);
            console.log('this.form.sharedCompanyName', this.form.sharedCompanyName);
            done()
        },
        refresh(id, type) {
            const loading = this.$loading({
                lock: true,
                text: '加载中',
                spinner: 'el-icon-loading',
                background: 'rgba(255,255,255,0.7)'
            })
            goodsListAll().then(res=>{
                console.log();
            })
            console.log(id,1769)
            getDetails({ id: id }).then(res => {
                this.form = res.data.data
                let ordForm = { srcBillNo: this.form.ordNo }
                let _this = this
                this.dataList = res.data.data.paymentRecordsList ? res.data.data.paymentRecordsList : [];
                this.$nextTick(() => {
                    this.$refs.formContacts.doLayout()
                })
                // getList(1, 50, ordForm).then((res) => {
                //     this.dataList = res.data.data.records ? res.data.data.records : [];

                // })
                if (this.form.status !== '录入' && this.form.status !== '退款中' && this.form.status !== '已取消' && this.form.status !== '退款请核' && this.form.status !== '已退款' && this.form.status !== '待确认' && this.form.status !== '待发货') {
                    console.log(1);
                    this.isApplySettlement = false;
                }
                if (
                    this.form.status === '已退款' ||
                    this.form.status === '已收货' ||
                    this.form.status === '已发货' ||
                    this.form.status === '已取消'
                ) {
                    // 禁用编辑按钮
                    console.log('按钮全部禁用');
                    this.isEditButton = true;
                    this.isSaveBtn = true;
                    this.isDisabledTask = true;
                    this.viewDisabled = true;
                }
                if (this.form.status === '已发货') {
                    this.isDisabledTask = true;
                    this.viewDisabled = true;
                    this.isEditButton = false;
                }
                // else {
                //     this.isSaveBtn = true;
                //     this.isDisabledTask = true;
                //     this.viewDisabled = true;
                // }

                if (this.form.status == '退款中') {
                    this.isConfirmRefundBtn = false;
                }
                if (this.form.status == '已取消') {
                    this.isConfirmRefundBtn = true;
                }

                if (this.form.generateTask == '已生成') {
                    this.buttonText = '撤销任务';
                    // this.isDisabledTask = false;
                    this.buttonColor = 'warning'
                }
                if (this.form.status == '退款请核' || this.form.status == '退款中') {
                    this.isRevocationRequest = false;
                }
                //成本、毛利对销售角色隐藏
                this.optionForm.column.forEach(its => {
                    if (JSON.parse(localStorage.getItem('saber-userInfo')).content.role_name.split(',').includes('销售')) {
                        if (its.prop == 'cost' || its.prop == 'grossProfit') {
                            this.$set(its, 'display', false)
                        }
                    }
                })
                this.form.orderItemsList.forEach((items) => {
                    if (!items.subTotalMoney) {
                        items.subTotalMoney = items.goodsNum * items.price
                        items.grossProfit = items.subTotalMoney - items.costprie
                    }
                })
                if (res.data.data.checkStatus == '审核完成') {
                    console.log('审核完成');
                    this.$set(this.optionForm, 'disabled', true)
                    this.$set(this.optionContactsBack, 'disabled', true)
                    this.isContacts = true
                    this.isDisabled = true
                    //添加删除按钮禁用
                    this.isAdd = true
                }
                loading.close();
            }).catch(() => {
                loading.close();
            })
        },
        operationType() {
        },
        //请核关闭
        choceScheduleFun() {
            this.checkScheduleDialog = false
        },
        //关闭审核
        choceCheckFun() {
            this.refresh(this.onLoad.id)
            // this.isDisabledTask = false
            this.isExamineBtn = !this.isExamineBtn
            this.checkDialog = false;
        },
        //请核数据qing
        applySettlement(type) {
            this.$confirm("您确定请核吗?", {
                confirmButtonText: "确定",
                cancelButtonText: "取消",
                type: "warning"
            }).then(() => {
                this.$refs["form"].validate((valid, done) => {
                    done()
                    if (valid) {
                        const data = {
                            id: this.form.id,
                            url: '/tirePartsMall/salesManagement/purchaseOrder/index',
                            pageStatus: "this.$store.getters.purchaseStatus",
                            pageLabel: "采购订单",
                        }
                        const loading = this.$loading({
                            lock: true,
                            text: '加载中',
                            spinner: 'el-icon-loading',
                            background: 'rgba(255,255,255,0.7)'
                        });
                        checkOrderCG({ ...data }).then((res) => {
                            this.refresh(res.data.data.id)
                            this.$message.success('请核成功');
                            this.isApplySettlement = !this.isApplySettlement
                            loading.close();
                            console.log(res);
                        }).catch(() => { loading.close(); })
                    }
                })
            })
        },
        //确认退款
        confirmRefundBtn() {
            this.$confirm("您确定退款吗?", {
                confirmButtonText: "确定",
                cancelButtonText: "取消",
                type: "warning"
            }).then(() => {
                const loading = this.$loading({
                    lock: true,
                    text: '加载中',
                    spinner: 'el-icon-loading',
                    background: 'rgba(255,255,255,0.7)'
                });
                // this.form.orderItemsList.forEach((items) => {

                //     let brandName = items.brandId
                //     items.brandId = items.brandName
                //     items.brandName = brandName

                //     let goodsName = items.goodsId
                //     items.goodsId = items.goodsName
                //     items.goodsName = goodsName

                // })
                confirmRefund({ ...this.form }).then((res) => {
                    loading.close()
                    this.$message.success('确定退款成功');
                }).catch(() => { loading.close(); })
            })
        },
        //审批
        examineBtn() {
            this.checkData = this.$route.query.check
            this.checkDialog = true;
        },
        //撤销请核
        revocationRequest() {
            this.$confirm("您确定撤回此次申请吗？", {
                confirmButtonText: "确定",
                cancelButtonText: "取消",
                type: "warning"
            }).then(() => {
                const loading = this.$loading({
                    lock: true,
                    text: '加载中',
                    spinner: 'el-icon-loading',
                    background: 'rgba(255,255,255,0.7)'
                });
                // this.form.orderItemsList.forEach((items) => {
                //     if (!items.subTotalMoney) {
                //         items.subTotalMoney = items.goodsNum * items.price
                //         items.grossProfit = items.subTotalMoney - items.costprie
                //     }
                //     let brandName = items.brandId
                //     items.brandId = items.brandName
                //     items.brandName = brandName

                //     let goodsName = items.goodsId
                //     items.goodsId = items.goodsName
                //     items.goodsName = goodsName

                // })
                revokeCheckOrderCG({ ...this.form }).then(res => {
                    this.isRevocationRequest = !this.isRevocationRequest
                    this.refresh(res.data.data.id)
                    this.$message.success('撤回成功')
                    loading.close();
                })
            })
        },
        rowDelBox(row, index, type) {
            this.$confirm("确定将选择数据删除?", {
                confirmButtonText: "确定",
                cancelButtonText: "取消",
                type: "warning"
            }).then(() => {
                if (row.id) {

                    delOrderItem({ ids: row.id }).then(res => {
                        this.form.orderItemsList.splice(index, 1);
                        this.$message.success("操作成功!");
                    });
                } else {
                    this.form[type].splice(index, 1);
                    this.$message.success("操作成功!");
                }
            }
            );
        },
        rowSave(form, done, loading) {
            form.subTotalMoney = form.goodsNum * form.price
            form.goodsName = form.$goodsId
            if (this.isStatus) {
                console.log(form);
                done(form)
            } else {
                this.$message.error('请选择相同商户的轮胎')
            }
            console.log(form);
            // this.form.sharedCompanyId = res.data.data.sharedCompanyId
            // this.form.sharedCompanyName = res.data.data.sharedCompanyName
        },
        rowUpdate(form, index, done, loading) {
            this.$set(form,'goodsName',form.$goodsId)
            console.log(form);
            done(form)
        },
        // 新增轮胎
        rowAdd(row) {
            if (!this.form.customerId) {
                this.$message.error('请选择供应商')
                return
            }
            this.optionContactsBack.column.forEach(its => {
                if (its.prop == 'goodsId' || its.prop == 'goodsNum' || its.prop == 'price' || its.prop == 'dot' || its.prop == 'remarks') {
                    its.disabled = false
                } else {
                    its.disabled = true
                }
            })
            console.log('新增了', row);
            this.getAllWorkDicts()
            this.refreshChange()
            this.dialogVisible = true
            // this.$refs.formContacts.rowAdd()
        },
        uploadAfter(res, done, loading, column) {
            if (res instanceof Array) {
                this.form.orderItemsList = this.form.orderItemsList.concat(res)
            }
            this.excelBox = false;
            loading = false;
            done(res);
        },
        derivation() {
            window.open(
                `/api/blade-sales-part/ship/export-item?${this.website.tokenHeader
                }=${getToken()}`
            );
        },
        uploadBefore(file, done, loading) {
            done();
            loading = true;
        },
        //打印
        handlePrint() {
            this.switchDialog = !this.switchDialog;
        },
        onClose(val) {
            this.switchDialog = val;
        },
        //自定义列保存
        async saveColumnTwo(ref, option, optionBack, code) {
            /**
             * 已定义全局方法，直接使用，saveColumnData保存列数据方法,参数传值(表格名称，当前表格的option数据)
             * 已定义全局方法，直接使用，getColumnName方法用来获取枚举值，参数根据自己定义的code值获取中文名
             * 一定要执行异步操作，要等接口成功返回，才能执行下一行代码
             */
            const inSave = await this.saveColumnData(this.getColumnName(code), this[option]);
            if (inSave) {
                this.$message.success("保存成功");
                //关闭窗口
                this.$refs[ref].$refs.dialogColumn.columnBox = false;
            }
        },
        //自定义列重置
        async resetColumnTwo(ref, option, optionBack, code) {
            this[option] = this[optionBack];
            const inSave = await this.delColumnData(this.getColumnName(code), this[optionBack]);
            if (inSave) {
                this.$message.success("重置成功");
                this.$refs[ref].$refs.dialogColumn.columnBox = false;
            }
        },
        backToList(type) {
            this.$emit("backToList", type);
        },

        // 弹框的重置
        resetCrud(){
            this.$message.success("重置成功");
        },
        // 弹窗的保存
        saveCrud(){
            this.$message.success("保存成功");
        }
    }
}
</script>

<style lang="scss" scoped>
::v-deep .el-form-item {
    margin-bottom: 8px !important;
}
</style>
