陈婷婷
2026-03-31 c9bd26c6cdac80e94e79da47c5113d95ba6e726f
src/views/logistics/transportGPS/WL_YayBill.vue
@@ -17,8 +17,14 @@
                </el-select>
            </el-form-item>
            <el-form-item label="单据号" prop="HBillNo">
                <el-input v-model="queryParams.HBillNo" placeholder="请输入单据号" @keyup.enter.native="handleQuery" />
                <el-input v-model="queryParams.HBillNo" placeholder="请输入单据号" @keyup.enter.native="handleQuery"
                    style="width: 150px;" />
            </el-form-item>
            <el-form-item label="车牌号" prop="HPlateNumber">
                <el-input v-model="queryParams.HPlateNumber" placeholder="请输入车牌号" @keyup.enter.native="handleQuery"
                    style="width: 120px;" />
            </el-form-item>
            <el-form-item label="组织" prop="HOrgID">
                <el-select v-model="queryParams.HOrgID" placeholder="请选择组织">
                    <el-option v-for="(item, index) in organizationList" :key="index" :label="item.Name"
@@ -160,7 +166,15 @@
            </el-col>
            <el-col :span="1.5">
                <el-button type="primary" icon="el-icon-edit-outline" size="mini" :disabled="single"
                    @click="openDataDialog(14, form = rowForm)">分配司机</el-button>
                    @click="hanleCarOrDriver(form = rowForm)">分配车辆和司机</el-button>
            </el-col>
            <el-col :span="1.5">
                <el-button type="primary" icon="el-icon-edit-outline" size="mini" :disabled="single"
                    @click="openDataDialog(14, form = rowForm)">分配车辆</el-button>
            </el-col>
            <el-col :span="1.5">
                <el-button type="primary" icon="el-icon-edit-outline" size="mini" :disabled="single"
                    @click="openDataDialog(15, form = rowForm)">分配司机</el-button>
            </el-col>
            <el-col :span="1.5">
                <el-button type="primary" icon="el-icon-circle-check" size="mini" :disabled="single"
@@ -197,6 +211,9 @@
            <el-col :span="1.5">
                <el-button type="primary" icon="el-icon-edit-outline" size="mini" :disabled="single"
                    @click="set_DropBill(2, form = rowForm)">反作废</el-button>
            </el-col>
            <el-col :span="1.5">
                <el-button type="primary" icon="el-icon-printer" size="mini" @click="get_PrintReport">打印</el-button>
            </el-col>
            <el-col :span="1.5">
                <el-button type="primary" icon="el-icon-download" size="mini" @click="handleExport">导出</el-button>
@@ -246,8 +263,8 @@
            </el-dialog>
            <!-- 打印 -->
            <el-dialog title="打印模板选择" :visible.sync="openPrintList" width="800px" append-to-body>
                <PrintList :linterid=this.rowForm.HInterID :MyMsg=this.rowForm.HInterID :Type='HBillType'
                    :HModName="HModName" @rowEditClose="rowSetClose" v-if="printListShow" />
                <PrintList :linterid='printIds' :MyMsg='printIds' :Type='HBillType' :HModName="HBillType"
                    @rowEditClose="rowSetClose" v-if="printListShow" />
                <!-- <div>111</div> -->
            </el-dialog>
@@ -257,7 +274,8 @@
                        <el-input v-model="formVolume.单据号" placeholder="请输入单据号" disabled />
                    </el-form-item>
                    <el-form-item label="零单占用体积">
                        <el-input-number v-model="formVolume.currentVolume" placeholder="请输入零单占用体积" />
                        <el-input-number v-model="formVolume.currentVolume"
                            :placeholder="`零担体积: ${formVolume.零担体积 || 0}`" />
                    </el-form-item>
                </el-form>
                <div slot="footer" class="dialog-footer">
@@ -283,6 +301,27 @@
                    <el-button @click="deptClose">取 消</el-button>
                </div>
            </el-dialog>
            <!-- 分配车辆和司机 -->
            <el-dialog title="分配车辆和司机" :visible.sync="openCarDriver" width="500px" append-to-body>
                <el-form ref="carDriverForm" :model="carDriverForm" :rules="carDriverRules" label-width="100px">
                    <el-form-item label="车牌号" prop="CarHNumber">
                        <el-input v-model="carDriverForm.CarHNumber" placeholder="请输入车牌号" />
                    </el-form-item>
                    <el-form-item label="车辆名称" prop="CarHName">
                        <el-input v-model="carDriverForm.CarHName" placeholder="请输入车辆名称" />
                    </el-form-item>
                    <el-form-item label="驾驶员" prop="DriverHName">
                        <el-input v-model="carDriverForm.DriverHName" placeholder="请输入驾驶员" />
                    </el-form-item>
                    <el-form-item label="身份证号" prop="DriverHIDCard">
                        <el-input v-model="carDriverForm.DriverHIDCard" placeholder="请输入身份证号" />
                    </el-form-item>
                </el-form>
                <div slot="footer" class="dialog-footer">
                    <el-button type="primary" @click="submitCarDriver">确 定</el-button>
                    <el-button @click="openCarDriver = false">取 消</el-button>
                </div>
            </el-dialog>
        </div>
    </div>
</template>
@@ -306,7 +345,7 @@
            baseURL: process.env.VUE_APP_BASE_API,                //后端接口前缀(后端服务器ip地址)
            HModName: "Cg_ContractTransportBillMainList",
            HBillType: "Cg_ContractTransportBillMainList",
            HBillType: "WL_YayBill",
            OperationType: null,                                  //保存类型(新增1修改3)
            copyType: 0,                                          //复制标记。打开编辑组件时,用于区分编辑还是复制
            HInterID: null,
@@ -361,6 +400,19 @@
            packStockDetailShow: false,                            //包装容器出入库明细容器显示标记
            openVolume: false,                                    //维护零单占用体积弹窗标记
            openData: false,                                                           //数据弹窗
            openCarDriver: false,                                                      //分配车辆和司机弹窗标记
            carDriverForm: {                                                           //分配车辆和司机表单
                CarHNumber: '',
                CarHName: '',
                DriverHName: '',
                DriverHIDCard: ''
            },
            carDriverRules: {                                                          //分配车辆和司机表单验证
                CarHNumber: [{ required: true, message: '请输入车牌号', trigger: 'blur' }],
                CarHName: [{ required: true, message: '请输入车辆名称', trigger: 'blur' }],
                DriverHName: [{ required: true, message: '请输入驾驶员', trigger: 'blur' }],
                DriverHIDCard: [{ required: true, message: '请输入身份证号', trigger: 'blur' }],
            },
            dialogTypeNum: null,                                                       //部门弹窗1,仓库弹窗2
            gyCarShow: false,                                                          //车辆数据组件显示标记
            gyDriverShow: false,                                                       //司机数据组件显示标记
@@ -369,6 +421,7 @@
            sWhere: '',                                                   // 拼接过滤条件
            queryParams: {                                                // form数据
                HBillNo: '',
                HPlateNumber: '',
                HInitTimeCycle: 29,
                sTime: '',
                eTime: '',
@@ -386,7 +439,6 @@
                ColContent2: '',
                ColContent: '',
            },
            page: 1,                                                      //page页索引
            pageSize: 0,                                                  //page页面记录数
            total: 0,                                                     //记录合计数
@@ -394,6 +446,7 @@
            totalNameList: [],                                            // 需要设置合计行的列数组
            tableData: [],                                                // 列表数据。用于table监听事件
            ids: [],                                                      // 选中行的hmainid数组
            printIds: '',                                                   //打印选择Id字段
            single: true,                                                 // 当选中的行数不为1时为true。用于禁用相关操作
            multiple: true,                                               // 当选中的行数为0时为true。用于禁用相关操作
            lastSelectedRowIndex: null,                                   // 用于记录上次点击的行索引
@@ -503,20 +556,19 @@
        },
        //#endregion
        //#region 权限判断
        async set_ModCheck(ModRightNameCheck)
        {
        async set_ModCheck(ModRightNameCheck) {
            var Permission = false;
            const res=await axios.get(this.$baseUrl + '/LMES/getReportByModRightNameCheck', {
            const res = await axios.get(this.$baseUrl + '/LMES/getReportByModRightNameCheck', {
                params: {
                    "ModRightNameCheck": ModRightNameCheck,
                    "user": sessionStorage["HUserName"],
                },
            }).then(result=>{
            }).then(result => {
                if (result.data.count != 1) {
                   Permission = true;
                   this.sWhere=this.sWhere+" and 承运商ID ="+sessionStorage["HSupID"]
                }
                    Permission = true;
                    this.sWhere = this.sWhere + " and 承运商ID =" + sessionStorage["HSupID"]
                }
            }).catch(error => {
                this.$modal.msgError("接口请求失败!");
            });
@@ -597,10 +649,14 @@
            if (this.queryParams.HBillNo) {
                this.sWhere += " and 单据号 like '%" + this.queryParams.HBillNo + "%'";
            }
            if (this.queryParams.HPlateNumber) {
                this.sWhere += " and 车牌号 like '%" + this.queryParams.HPlateNumber + "%'";
            }
            // if (this.queryParams.HOrgID) {
            //     this.sWhere += " and HOrgID = '" + this.queryParams.HOrgID + "'";
            // }
            console.log("swhere",this.sWhere)
            console.log("swhere", this.sWhere)
            this.clearData()
            this.getList()
        },
@@ -614,7 +670,7 @@
            }
            this.tableShow = false
            this.loading = true
           console.log("swhere",this.sWhere)
            console.log("swhere", this.sWhere)
            // 列表查询
            axios.get(this.$baseUrl + '/WLYayBillController/GetListPage', {
                params: {
@@ -806,6 +862,7 @@
                HInterID: 0,
                HEntryID0: 0,
                currentVolume: 0,
                单据号: ''
            }
        },
@@ -841,6 +898,7 @@
        cancelVolume() {
            this.openVolume = false
            this.resetVolume()
            this.handleQuery()
        },
        //#region 维护零单占用体积提交
        set_HScatteredVolumeList() {
@@ -1119,29 +1177,13 @@
        //#region 打印
        get_PrintReport() {
            if (this.ids.length != 1) {
                this.$modal.msgError("请选择一行数据")
            } else if (this.rowForm.单据状态 != "已审核" && !this.defaintOperationByCompanyName()) {
                this.$modal.msgError("打印失败!原因:单据状态不为'已审核'状态!!");
            if (this.ids.length == 0) {
                this.$modal.msgError("请至少选择一行数据")
            } else {
                axios.get(this.$baseUrl + "/Kf_SellOutBill/CheckSellOutBill_IsExist", {
                    params: { "HInterID": this.rowForm.HInterID }
                }).then(response => {
                    var result = response.data
                    if (result.count == 1) {
                        this.printListShow = true
                        this.openPrintList = true
                        // this.$router.push({ path:'/printList', query: { linterid: this.rowForm.hmainid,MyMsg:this.rowForm.hmainid,Type:'Kf_SellOutBillList' }})
                    } else {
                        this.$modal.msgError(result.code + result.Message)
                    }
                }).catch(error => {
                    this.$modal.msgError("接口请求失败!");
                });
                this.printIds = this.ids.join(',')
                this.printListShow = true
                this.openPrintList = true
            }
            //  var content= ['../../BaseSet/SRM_OpenTmpList.html?linterid=' + data[0].hmainid.toString() + '&MyMsg=' + data[0].hmainid.toString() + '&Type=Kf_SellOutBillList', 'yes']
        },
        //#endregion
@@ -1230,6 +1272,7 @@
                IsAudit = 2
            }
            try {
                console.log(deptRow)
                const response = await axios.get(this.baseURL + '/WLYayBillController/selectDriver', {
                    params: {
                        "HInterID": this.rowForm.HInterID.toString(),
@@ -1283,6 +1326,47 @@
        },
        //#endregion
        //#endregion
        //#region 分配车辆和司机
        hanleCarOrDriver(form) {
            this.carDriverForm = {
                CarHNumber: '',
                CarHName: '',
                DriverHName: '',
                DriverHIDCard: ''
            }
            this.openCarDriver = true
        },
        submitCarDriver() {
            this.$refs.carDriverForm.validate((valid) => {
                if (valid) {
                    axios({
                        method: 'GET',
                        url: this.baseURL + "WLYayBillController/selectDriver1",
                        params: {
                            "CarHNumber": this.carDriverForm.CarHNumber,
                            "CarHName": this.carDriverForm.CarHName,
                            "DriverHName": this.carDriverForm.DriverHName,
                            "DriverHIDCard": this.carDriverForm.DriverHIDCard,
                            "CurUserName": sessionStorage["HUserName"],
                            "HInterID": this.rowForm.HInterID
                        },
                    }).then(response => {
                        let result = response.data
                        if (result.code == 1) {
                            this.$modal.msgSuccess(result.Message || "分配成功");
                            this.openCarDriver = false
                            this.handleQuery()
                        } else {
                            this.$modal.msgError(result.code + result.Message);
                        }
                    }).catch(error => {
                        console.log(error)
                        this.$modal.msgError("接口请求失败!");
                    });
                }
            })
        },
        //#endregion
        //清除选中数据的缓存
        clearData() {
            this.ids = []