llj
2026-01-28 1df7afac983f8e63a3839795f9f1e0858f995f81
Merge branch 'master' of http://101.37.171.70:10101/r/MES-WEB-VUEUI
3个文件已修改
961 ■■■■■ 已修改文件
src/views/logistics/transportGPS/Add_Edit_WL_YayBill.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/logistics/transportGPS/WL_YayBill.vue 203 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/system/user/GyDriver.vue 756 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/logistics/transportGPS/Add_Edit_WL_YayBill.vue
@@ -976,7 +976,7 @@
                this.gyCarShow = true
                this.openData = true
            } else if (num == 15) {
                this.dialogTitle = '车辆列表'
                this.dialogTitle = '司机列表'
                this.gyDriverShow = true
                this.openData = true
            } else if (num == 16) {
src/views/logistics/transportGPS/WL_YayBill.vue
@@ -172,7 +172,11 @@
            </el-col>
            <el-col :span="1.5">
                <el-button type="primary" icon="el-icon-edit-outline" size="mini"
                     @click="handlePush(row = rowForm, OperationType = 4)">下推(费用结算单)</el-button>
                    @click="handlePush(row = rowForm, OperationType = 4)">下推(费用结算单)</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"
@@ -281,11 +285,19 @@
            <!-- 包装容器出入库明细 -->
            <PackStockDetail :visible.sync="packStockDetailShow" ref="packStockDetail" />
            <!-- 下推 -->
            <el-dialog title="下推运单结算单" :visible.sync="openPush" width="1480px" append-to-body class="xsckdBox" @close="close">
                <PayMentOtherBillTranEdit :OperationType='4' :propsData='pushData' :HSouceBillType=this.rowForm.HSourceBillType
                 @editClose="pushClose" v-if="pushShow" />
            <el-dialog title="下推运单结算单" :visible.sync="openPush" width="1480px" append-to-body class="xsckdBox"
                @close="close">
                <PayMentOtherBillTranEdit :OperationType='4' :propsData='pushData'
                    :HSouceBillType=this.rowForm.HSourceBillType @editClose="pushClose" v-if="pushShow" />
            </el-dialog>
            <el-dialog :title="dialogTitle" :visible.sync="openData" width="1280px" append-to-body>
                <GyCar @deptEmitDb="dbEmitData" @deptEmit="emitData" :openPage="HModName" v-if="gyCarShow" />
                <GyDriver @deptEmitDb="dbEmitData" @deptEmit="emitData" :openPage="HModName" v-if="gyDriverShow" />
                <div slot="footer" class="dialog-footer">
                    <el-button type="primary" @click="deptClickSub">确 定</el-button>
                    <el-button @click="deptClose">取 消</el-button>
                </div>
            </el-dialog>
        </div>
    </div>
</template>
@@ -299,9 +311,11 @@
import PackStockDetail from '@/views/component/PackStockDetail'           //条码明细组件
import Edit from '@/views/logistics/transportGPS/Add_Edit_WL_YayBill'   //编辑页面组件
import PayMentOtherBillTranEdit from "@/views/logistics/WayBillPaymentBill/Pay_WayBillPaymentBillEdit.vue";  //编辑页面组件
import GyCar from "@/views/basic/gyCar/gyCarList.vue"
import GyDriver from "@/views/system/user/GyDriver.vue"
export default {
    name: 'WL_YayBill',
    components: { BarCodeDetail,PackStockDetail,Edit,RowSettings,PrintList,PayMentOtherBillTranEdit},
    components: { BarCodeDetail, PackStockDetail, Edit, RowSettings, PrintList, PayMentOtherBillTranEdit, GyCar, GyDriver },
    data() {
        return {
            baseURL: process.env.VUE_APP_BASE_API,                //后端接口前缀(后端服务器ip地址)
@@ -351,7 +365,7 @@
            openEdit: false,                                      //编辑组件显示标记
            pushShow: false,
            openPush: false,
            pushData:'',
            pushData: '',
            openPrintList: false,                                 //打印组件容器显示标记
            printListShow: false,                                 //打印组件显示标记
            openBtnHide: false,                                   //按钮组件容器显示标记
@@ -361,6 +375,11 @@
            barCodeDetailShow: false,                             //条码明细组件容器显示标记
            packStockDetailShow: false,                            //包装容器出入库明细容器显示标记
            openVolume: false,                                    //维护零单占用体积弹窗标记
            openData: false,                                                           //数据弹窗
            dialogTypeNum: null,                                                       //部门弹窗1,仓库弹窗2
            gyCarShow: false,                                                          //车辆数据组件显示标记
            gyDriverShow: false,                                                       //司机数据组件显示标记
            deptform: {},                                                              //弹窗选中数据
            // 查询参数
            sWhere: '',                                                   // 拼接过滤条件
            queryParams: {                                                // form数据
@@ -448,7 +467,7 @@
        //#region 多选框选中数据
        handleSelectionChange(selection) {
            // this.rowForm = {}
            this.rowList=selection
            this.rowList = selection
            this.ids = selection.map(item => item.HInterID)
            this.single = selection.length != 1
            this.multiple = !selection.length
@@ -804,13 +823,13 @@
            this.OperationType = 4
        },
        //关闭下推页面
    pushClose(val) {
      this.open = val
      this.pushShow = false
      this.openPush = val
      this.clearData()
      this.getList()
    },
        pushClose(val) {
            this.open = val
            this.pushShow = false
            this.openPush = val
            this.clearData()
            this.getList()
        },
        //#endregion
        cancelVolume() {
            this.openVolume = false
@@ -862,37 +881,37 @@
        },
        //#endregion
        //#region 打开下推组件弹窗
    handlePush() {
        handlePush() {
      if (this.rowList && this.rowList.length > 0) {
        var dataArray = [];
        for (var i = 0; i < this.rowList.length; i++) {
            if (this.rowList[i].单据状态 != "已审核") {
                this.$modal.msgError("下推失败!所选单据【" + this.rowList[i].单据号 + "】不为已审核状态,不允许下推!")
                return;
            if (this.rowList && this.rowList.length > 0) {
                var dataArray = [];
                for (var i = 0; i < this.rowList.length; i++) {
                    if (this.rowList[i].单据状态 != "已审核") {
                        this.$modal.msgError("下推失败!所选单据【" + this.rowList[i].单据号 + "】不为已审核状态,不允许下推!")
                        return;
                    }
                    if (this.rowList[i].HQtyMust <= 0) {
                        this.$modal.msgError("下推失败!所选单据【" + this.rowList[i].单据号 + "】对应可下推数量必须大于 0 !")
                        return;
                    }
                    var temp = {
                        "HInterID": this.rowList[i].HInterID
                        , "HEntryID": this.rowList[i].HEntryID
                        , "HBillStatus": this.rowList[i].单据状态
                    }
                    dataArray.push(temp);
                }
                var datajson = {
                    "data": dataArray
                };
                this.pushData = JSON.stringify(datajson)
                this.pushShow = true
                this.openPush = true
            } else {
                this.$modal.msgError("请选择数据下推!")
            }
            if (this.rowList[i].HQtyMust <= 0) {
                this.$modal.msgError("下推失败!所选单据【" + this.rowList[i].单据号 + "】对应可下推数量必须大于 0 !")
                return;
            }
            var temp = {
                "HInterID": this.rowList[i].HInterID
                , "HEntryID": this.rowList[i].HEntryID
                , "HBillStatus": this.rowList[i].单据状态
            }
            dataArray.push(temp);
        }
        var datajson = {
            "data": dataArray
        };
        this.pushData = JSON.stringify(datajson)
        this.pushShow = true
        this.openPush = true
      } else {
          this.$modal.msgError("请选择数据下推!")
      }
    },
    //#endregion
        },
        //#endregion
        //#region 关闭/反关闭
        set_CloseBills(num) {
            var InterID = form.hmainid || form.HInterID
@@ -1173,6 +1192,102 @@
            return result;
        },
        //#endregion
        //#region 数据弹窗
        //#region 打开数据列表弹窗
        openDataDialog(num, row) {
            this.showReset()
            if (num == 14) {
                this.dialogTitle = '车辆列表'
                this.gyCarShow = true
                this.openData = true
            } else if (num == 15) {
                this.dialogTitle = '司机列表'
                this.gyDriverShow = true
                this.openData = true
            }
        },
        //#region 将数据弹窗全部取消加载
        showReset() {
            this.gyCarShow = false
            this.gyDriverShow = false
        },
        //#endregion
        //#endregion
        //#region 弹窗数据双击返回表单赋值事件
        async dbEmitData(deptRow, num) {
            let IsAudit = null
            if (num == 14) {
                IsAudit = 1
            } else if (num == 15) {
                IsAudit = 2
            }
            try {
                const response = await axios.get(this.baseURL + '/WLYayBillController/selectDriver', {
                    params: {
                        "HInterID": this.rowForm.HInterID.toString(),
                        "HcheckID": deptRow.HItemID,
                        "IsAudit": IsAudit,
                        "CurUserName": sessionStorage["HUserName"]
                    },
                });
                if (response.data.code == 1) {
                    // return response.data.data[0];
                    if (num == 14) {
                        this.gyCarShow = false
                        this.openData = false
                        this.$modal.msgSuccess(response.data.msg || "车辆添加成功");
                        num = 15
                        this.$nextTick(() => {
                            this.gyDriverShow = true
                            this.openData = true
                        })
                    } else if (num == 15) {
                        this.gyDriverShow = false
                        this.openData = false
                        this.$modal.msgSuccess(response.data.msg || "司机添加成功");
                    }
                } else {
                    this.$modal.msgError(response.data.msg || "获取源单数据失败");
                }
            } catch (error) {
                this.$modal.msgError("获取源单数据时发生错误,请稍后重试!");
            }
        },
        // dbEmitData(deptRow, num) {
        //     if (num == 14) {
        //         this.gyCarShow = false
        //         this.openData = false
        //     } else if (num == 15) {
        //         this.gyDriverShow = false
        //         this.openData = false
        //     }
        //     this.openData = false
        // },
        //#endregion
        //#region 弹窗数据单击事件
        emitData(deptRow, num) {
            this.dialogTypeNum = num
            this.deptform = deptRow
        },
        //#endregion
        //#region 弹窗确定事件
        deptClickSub() {
            this.dbEmitData(this.deptform, this.dialogTypeNum)
            this.deptform = {}
        },
        //#endregion
        //#region 弹窗取消事件
        deptClose() {
            this.deptform = {}
            this.openData = false
        },
        //#endregion
        //#endregion
    }
};
</script>
src/views/system/user/GyDriver.vue
@@ -1,301 +1,143 @@
<template>
  <div style="padding: 10px">
    <el-card class="search-card" style="margin-bottom: 15px">
            <el-button
              type="text"
              @click="toggleAdvancedSearch"
              style="font-size: 12px; color: #409eff"
            >
              {{ showAdvancedSearch ? "收起" : "更多" }}
              <i
                :class="
                  showAdvancedSearch
                    ? 'el-icon-arrow-up'
                    : 'el-icon-arrow-down'
                "
              ></i>
            </el-button>
      <el-button type="text" @click="toggleAdvancedSearch" style="font-size: 12px; color: #409eff">
        {{ showAdvancedSearch ? "收起" : "更多" }}
        <i :class="showAdvancedSearch
            ? 'el-icon-arrow-up'
            : 'el-icon-arrow-down'
          "></i>
      </el-button>
      <div style="margin-top: 15px">
        <el-row :gutter="15">
          <el-col :span="6">
            <div style="display: flex; align-items: center">
              <span style="width: 200px; text-align: right; margin-right: 10px"
                >驾驶员代码:</span
              >
              <el-input
                v-model="queryParams.HNumber"
                placeholder="请输入驾驶员代码"
                size="small"
                @keyup.enter.native="handleQuery"
                clearable
              />
              <span style="width: 200px; text-align: right; margin-right: 10px">驾驶员代码:</span>
              <el-input v-model="queryParams.HNumber" placeholder="请输入驾驶员代码" size="small"
                @keyup.enter.native="handleQuery" clearable />
            </div>
          </el-col>
          <el-col :span="6">
            <div style="display: flex; align-items: center">
              <span style="width: 200px; text-align: right; margin-right: 10px"
                >驾驶员名称:</span
              >
              <el-input
                v-model="queryParams.HName"
                placeholder="请输入驾驶员名称"
                size="small"
                @keyup.enter.native="handleQuery"
                clearable
              />
              <span style="width: 200px; text-align: right; margin-right: 10px">驾驶员名称:</span>
              <el-input v-model="queryParams.HName" placeholder="请输入驾驶员名称" size="small"
                @keyup.enter.native="handleQuery" clearable />
            </div>
          </el-col>
          <el-col :span="6">
            <div style="display: flex; align-items: center">
              <span style="width: 100px; text-align: right; margin-right: 10px"
                >组织:</span
              >
              <el-select
                v-model="queryParams.HUSEORGID"
                placeholder="请选择组织"
                size="small"
                style="width: 100%"
              >
                <el-option
                  v-for="(item, index) in organizationList"
                  :key="index"
                  :label="item.Name"
                  :value="item.ID"
                >
              <span style="width: 100px; text-align: right; margin-right: 10px">组织:</span>
              <el-select v-model="queryParams.HUSEORGID" placeholder="请选择组织" size="small" style="width: 100%">
                <el-option v-for="(item, index) in organizationList" :key="index" :label="item.Name" :value="item.ID">
                </el-option>
              </el-select>
            </div>
          </el-col>
          <el-col :span="6">
            <div style="display: flex; align-items: center">
              <span style="width: 80px; text-align: right; margin-right: 10px"
                >重新同步:</span
              >
              <el-input
                v-model="queryParams.HSyncNumber"
                placeholder="请输入驾驶员代码"
                size="small"
                @keyup.enter.native="handleSync"
                clearable
                style="flex: 1"
              />
              <el-button
                @click="handleSync"
                size="small"
                style="margin-left: 5px"
                >同步</el-button
              >
              <span style="width: 80px; text-align: right; margin-right: 10px">重新同步:</span>
              <el-input v-model="queryParams.HSyncNumber" placeholder="请输入驾驶员代码" size="small"
                @keyup.enter.native="handleSync" clearable style="flex: 1" />
              <el-button @click="handleSync" size="small" style="margin-left: 5px">同步</el-button>
            </div>
          </el-col>
        </el-row>
      <div class="search-header">
        <div style="display: flex; justify-content: space-between; align-items: center">
          <div>
            <el-button
              type="primary"
              icon="el-icon-search"
              size="mini"
              @click="handleQuery"
              style="margin-right: 10px"
              >搜索</el-button
            >
            <el-button
              icon="el-icon-refresh"
              size="mini"
              @click="resetQuery"
              style="margin-right: 10px"
              >重置</el-button
            >
            <el-button
              icon="el-icon-refresh"
              size="mini"
              @click="getList"
              style="margin-right: 10px"
              >刷新</el-button
            >
        <div class="search-header">
          <div style="display: flex; justify-content: space-between; align-items: center">
            <div>
              <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"
                style="margin-right: 10px">搜索</el-button>
              <el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
                style="margin-right: 10px">重置</el-button>
              <el-button icon="el-icon-refresh" size="mini" @click="getList" style="margin-right: 10px">刷新</el-button>
            </div>
          </div>
        </div>
      </div>
        <el-collapse-transition>
          <div v-show="showAdvancedSearch">
            <div style="margin-top: 15px">
              <el-row :gutter="15">
                <div style="margin-bottom: 50px">
                <!-- 第一组过滤条件 -->
                <el-col :span="24">
                  <div style="display: flex; align-items: center">
                    <el-select
                      v-model="queryParams.ColName"
                      placeholder="请选择"
                      size="small"
                      style="flex: 1"
                    >
                      <el-option label="" value="0"></el-option>
                      <el-option
                        v-for="(item, index) in filterColumnList"
                        :key="index"
                        :label="item.field"
                        :value="item.field"
                        v-if="!item.hide"
                      ></el-option>
                    </el-select>
                    <el-select
                      v-model="queryParams.Comparator"
                      placeholder="请选择"
                      size="small"
                      style="width: 100px; margin: 0 10px"
                    >
                      <el-option label="" value="0"></el-option>
                      <el-option
                        v-for="(item, index) in comparatorList"
                        :key="index"
                        :label="item.label"
                        :value="item.value"
                      ></el-option>
                    </el-select>
                    <el-input
                      v-model="queryParams.ColContent"
                      placeholder="请输入"
                      size="small"
                      @keyup.enter.native="handleQuery"
                      clearable
                      style="flex: 1"
                    />
                  </div>
                </el-col>
                  <!-- 第一组过滤条件 -->
                  <el-col :span="24">
                    <div style="display: flex; align-items: center">
                      <el-select v-model="queryParams.ColName" placeholder="请选择" size="small" style="flex: 1">
                        <el-option label="" value="0"></el-option>
                        <el-option v-for="(item, index) in filterColumnList" :key="index" :label="item.field"
                          :value="item.field" v-if="!item.hide"></el-option>
                      </el-select>
                      <el-select v-model="queryParams.Comparator" placeholder="请选择" size="small"
                        style="width: 100px; margin: 0 10px">
                        <el-option label="" value="0"></el-option>
                        <el-option v-for="(item, index) in comparatorList" :key="index" :label="item.label"
                          :value="item.value"></el-option>
                      </el-select>
                      <el-input v-model="queryParams.ColContent" placeholder="请输入" size="small"
                        @keyup.enter.native="handleQuery" clearable style="flex: 1" />
                    </div>
                  </el-col>
                </div>
                <div style="margin-bottom: 100px">
                <!-- 第二组过滤条件 -->
                <el-col :span="24">
                  <div style="display: flex; align-items: center">
                    <el-select
                      v-model="queryParams.ColName1"
                      placeholder="请选择"
                      size="small"
                      style="flex: 1"
                    >
                      <!-- <el-option label="" value="0"></el-option> -->
                      <el-option
                        v-for="(item, index) in filterColumnList"
                        :key="index"
                        :label="item.field"
                        :value="item.field"
                        v-if="!item.hide"
                      ></el-option>
                    </el-select>
                    <el-select
                      v-model="queryParams.Comparator1"
                      placeholder="请选择"
                      size="small"
                      style="width: 100px; margin: 0 10px"
                    >
                      <!-- <el-option label="" value="0"></el-option> -->
                      <el-option
                        v-for="(item, index) in comparatorList"
                        :key="index"
                        :label="item.label"
                        :value="item.value"
                      ></el-option>
                    </el-select>
                    <el-input
                      v-model="queryParams.ColContent1"
                      placeholder="请输入"
                      size="small"
                      @keyup.enter.native="handleQuery"
                      clearable
                      style="flex: 1"
                    />
                  </div>
                </el-col>
                  <!-- 第二组过滤条件 -->
                  <el-col :span="24">
                    <div style="display: flex; align-items: center">
                      <el-select v-model="queryParams.ColName1" placeholder="请选择" size="small" style="flex: 1">
                        <!-- <el-option label="" value="0"></el-option> -->
                        <el-option v-for="(item, index) in filterColumnList" :key="index" :label="item.field"
                          :value="item.field" v-if="!item.hide"></el-option>
                      </el-select>
                      <el-select v-model="queryParams.Comparator1" placeholder="请选择" size="small"
                        style="width: 100px; margin: 0 10px">
                        <!-- <el-option label="" value="0"></el-option> -->
                        <el-option v-for="(item, index) in comparatorList" :key="index" :label="item.label"
                          :value="item.value"></el-option>
                      </el-select>
                      <el-input v-model="queryParams.ColContent1" placeholder="请输入" size="small"
                        @keyup.enter.native="handleQuery" clearable style="flex: 1" />
                    </div>
                  </el-col>
                </div>
                <div style="margin-bottom: 50px">
                <!-- 第三组过滤条件 -->
                <el-col :span="24">
                  <div style="display: flex; align-items: center">
                    <el-select
                      v-model="queryParams.ColName2"
                      placeholder="请选择"
                      size="small"
                      style="flex: 1"
                    >
                      <!-- <el-option label="" value="0"></el-option> -->
                      <el-option
                        v-for="(item, index) in filterColumnList"
                        :key="index"
                        :label="item.field"
                        :value="item.field"
                        v-if="!item.hide"
                      ></el-option>
                    </el-select>
                    <el-select
                      v-model="queryParams.Comparator2"
                      placeholder="请选择"
                      size="big"
                      style="width: 100px; margin: 0 10px"
                    >
                      <el-option label="" value="0"></el-option>
                      <el-option
                        v-for="(item, index) in comparatorList"
                        :key="index"
                        :label="item.label"
                        :value="item.value"
                      ></el-option>
                    </el-select>
                    <el-input
                      v-model="queryParams.ColContent2"
                      placeholder="请输入"
                      size="big"
                      @keyup.enter.native="handleQuery"
                      clearable
                      style="flex: 1"
                    />
                  </div>
                </el-col>
                  <!-- 第三组过滤条件 -->
                  <el-col :span="24">
                    <div style="display: flex; align-items: center">
                      <el-select v-model="queryParams.ColName2" placeholder="请选择" size="small" style="flex: 1">
                        <!-- <el-option label="" value="0"></el-option> -->
                        <el-option v-for="(item, index) in filterColumnList" :key="index" :label="item.field"
                          :value="item.field" v-if="!item.hide"></el-option>
                      </el-select>
                      <el-select v-model="queryParams.Comparator2" placeholder="请选择" size="big"
                        style="width: 100px; margin: 0 10px">
                        <el-option label="" value="0"></el-option>
                        <el-option v-for="(item, index) in comparatorList" :key="index" :label="item.label"
                          :value="item.value"></el-option>
                      </el-select>
                      <el-input v-model="queryParams.ColContent2" placeholder="请输入" size="big"
                        @keyup.enter.native="handleQuery" clearable style="flex: 1" />
                    </div>
                  </el-col>
                </div>
              </el-row>
            </div>
            <div
              v-if="currentFilterScheme"
              style="
            <div v-if="currentFilterScheme" style="
                margin-top: 15px;
                padding: 10px;
                background-color: #f0f9ff;
                border-radius: 4px;
                border-left: 4px solid #409eff;
              "
            >
              ">
              <span style="font-size: 14px; font-weight: bold; color: #fc9393">
                当前过滤方案:{{ currentFilterScheme }}
              </span>
              <span
                v-if="currentFilterRemark"
                style="font-size: 13px; color: #7b90fb; margin-left: 10px"
              >
              <span v-if="currentFilterRemark" style="font-size: 13px; color: #7b90fb; margin-left: 10px">
                ({{ currentFilterRemark }})
              </span>
              <el-button
                type="text"
                @click="handleSaveScheme"
                size="mini"
                style="margin-left: 20px"
                >保存方案</el-button
              >
              <el-button
                type="text"
                @click="handleReadScheme"
                size="mini"
                >读取方案</el-button
              >
              <el-button
                type="text"
                @click="clearFilterScheme"
                size="mini"
                style="color: #f56c6c"
                >清除方案</el-button
              >
              <el-button type="text" @click="handleSaveScheme" size="mini" style="margin-left: 20px">保存方案</el-button>
              <el-button type="text" @click="handleReadScheme" size="mini">读取方案</el-button>
              <el-button type="text" @click="clearFilterScheme" size="mini" style="color: #f56c6c">清除方案</el-button>
            </div>
          </div>
        </el-collapse-transition>
@@ -304,15 +146,8 @@
    <el-row :gutter="10" class="mb8">
      <el-col :span="1.5">
        <el-button
          type="primary"
          plain
          icon="el-icon-upload2"
          size="mini"
          @click="handleImport"
          id="set_SouceExcel"
          >导入</el-button
        >
        <el-button type="primary" plain icon="el-icon-upload2" size="mini" @click="handleImport"
          id="set_SouceExcel">导入</el-button>
      </el-col>
      <!-- <el-col :span="1.5">
        <el-button
@@ -326,190 +161,77 @@
        >
      </el-col> -->
      <el-col :span="1.5">
        <el-button
          type="primary"
          plain
          icon="el-icon-plus"
          size="mini"
          @click="handleAddEdit((OperationType = 1))"
          id="set_add"
          >新增</el-button
        >
        <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAddEdit((OperationType = 1))"
          id="set_add">新增</el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="primary"
          plain
          icon="el-icon-document-copy"
          size="mini"
          :disabled="single"
          @click="handleCopy"
          id="set_Copy"
          >复制</el-button
        >
        <el-button type="primary" plain icon="el-icon-document-copy" size="mini" :disabled="single" @click="handleCopy"
          id="set_Copy">复制</el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="primary"
          plain
          icon="el-icon-edit"
          size="mini"
          :disabled="single"
          @click="handleEdit((row = rowForm), (OperationType = 3))"
          id="set_show"
          >编辑</el-button
        >
        <el-button type="primary" plain icon="el-icon-edit" size="mini" :disabled="single"
          @click="handleEdit((row = rowForm), (OperationType = 3))" id="set_show">编辑</el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="primary"
          plain
          icon="el-icon-delete"
          size="mini"
          :disabled="single"
          @click="handleDelete"
          id="set_delete"
          >删除</el-button
        >
        <el-button type="primary" plain icon="el-icon-delete" size="mini" :disabled="single" @click="handleDelete"
          id="set_delete">删除</el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="primary"
          plain
          icon="el-icon-check"
          size="mini"
          :disabled="single"
          @click="handleAudit(0)"
          id="btn_audit"
          >审核</el-button
        >
        <el-button type="primary" plain icon="el-icon-check" size="mini" :disabled="single" @click="handleAudit(0)"
          id="btn_audit">审核</el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="primary"
          plain
          icon="el-icon-close"
          size="mini"
          :disabled="single"
          @click="handleAudit(1)"
          id="btn_deaudit"
          >反审核</el-button
        >
        <el-button type="primary" plain icon="el-icon-close" size="mini" :disabled="single" @click="handleAudit(1)"
          id="btn_deaudit">反审核</el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="primary"
          plain
          icon="el-icon-turn-off"
          size="mini"
          :disabled="single"
          @click="handleStop(0)"
          id="btn_stop"
          >禁用</el-button
        >
        <el-button type="primary" plain icon="el-icon-turn-off" size="mini" :disabled="single" @click="handleStop(0)"
          id="btn_stop">禁用</el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="primary"
          plain
          icon="el-icon-open"
          size="mini"
          :disabled="single"
          @click="handleStop(1)"
          id="btn_destop"
          >反禁用</el-button
        >
        <el-button type="primary" plain icon="el-icon-open" size="mini" :disabled="single" @click="handleStop(1)"
          id="btn_destop">反禁用</el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="primary"
          plain
          icon="el-icon-setting"
          size="mini"
          @click="handleRowHide"
          id="set_hidecolumn"
          >列设置</el-button
        >
        <el-button type="primary" plain icon="el-icon-setting" size="mini" @click="handleRowHide"
          id="set_hidecolumn">列设置</el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="primary"
          plain
          icon="el-icon-s-operation"
          size="mini"
          @click="handleBtnHide"
          id="HideButton"
          >按钮设置</el-button
        >
        <el-button type="primary" plain icon="el-icon-s-operation" size="mini" @click="handleBtnHide"
          id="HideButton">按钮设置</el-button>
      </el-col>
    </el-row>
    <div class="tableBox" v-loading="loading">
      <el-table
        :data="tableData"
        ref="tableData"
        max-height="650"
        @selection-change="handleSelectionChange"
        border
        @row-click="handleRowClick"
        :row-style="rowStyle"
        @cell-dblclick="handleDblclick"
        v-if="tableShow"
        stripe
      >
        <el-table-column
          type="selection"
          width="55"
          align="center"
          fixed="left"
        />
      <el-table :data="tableData" ref="tableData" max-height="650" @selection-change="handleSelectionChange" border
        @row-click="handleRowClick" :row-style="rowStyle" @cell-dblclick="handleDblclick" v-if="tableShow" stripe>
        <el-table-column type="selection" width="55" align="center" fixed="left" />
        <template v-for="(item, index) in btList">
          <el-table-column
            :align="item.align"
            :prop="item.field"
            :label="item.title"
            :width="item.width"
            :key="item.field"
            v-if="!item.hide && item.field !== 'checkbox'"
            :sortable="item.sort"
            show-overflow-tooltip
            :fixed="item.fixed"
          >
          <el-table-column :align="item.align" :prop="item.field" :label="item.title" :width="item.width"
            :key="item.field" v-if="!item.hide && item.field !== 'checkbox'" :sortable="item.sort" show-overflow-tooltip
            :fixed="item.fixed">
            <template slot-scope="{ row, column }">
              <div :style="item.style">
                <!-- 日期格式化 -->
                <span
                  v-if="
                    column.property.includes('日期') ||
                    column.property.includes('Date')
                  "
                >
                <span v-if="
                  column.property.includes('日期') ||
                  column.property.includes('Date')
                ">
                  {{ parseTime(row[column.property], "{y}-{m}-{d}") }}
                </span>
                <el-button
                  type="text"
                  @click="handleDriverCodeClick(row)"
                  v-else-if="column.property === '驾驶员代码'"
                  style="color: #409eff"
                  >{{ row[column.property] }}</el-button
                >
                <span
                  v-else-if="column.property === '禁用标记'"
                  :style="{
                    color: row[column.property] === 'Y' ? '#f56c6c' : '#67c23a',
                    fontWeight:
                      row[column.property] === 'Y' ? 'bold' : 'normal',
                  }"
                >
                <el-button type="text" @click="handleDriverCodeClick(row)" v-else-if="column.property === '驾驶员代码'"
                  style="color: #409eff">{{ row[column.property] }}</el-button>
                <span v-else-if="column.property === '禁用标记'" :style="{
                  color: row[column.property] === 'Y' ? '#f56c6c' : '#67c23a',
                  fontWeight:
                    row[column.property] === 'Y' ? 'bold' : 'normal',
                }">
                  {{ row[column.property] === "Y" ? "已禁用" : "正常" }}
                </span>
                <!-- 审核状态特殊样式 -->
                <span
                  v-else-if="column.property === '审核人'"
                  :style="{
                    color: row[column.property] ? '#67c23a' : '#909399',
                  }"
                >
                <span v-else-if="column.property === '审核人'" :style="{
                  color: row[column.property] ? '#67c23a' : '#909399',
                }">
                  {{ row[column.property] || "未审核" }}
                </span>
                <span v-else>{{ row[column.property] }}</span>
@@ -519,48 +241,19 @@
        </template>
      </el-table>
      <pagination
        v-show="total > 0"
        :total="total"
        :page.sync="page"
        :limit.sync="pageSize"
        :pageSizes="pageSizes"
        @pagination="getList"
      />
      <pagination v-show="total > 0" :total="total" :page.sync="page" :limit.sync="pageSize" :pageSizes="pageSizes"
        @pagination="getList" />
      <!-- 隐藏列设置弹窗 -->
      <el-dialog
        title="隐藏列设置"
        :visible.sync="openRowHide"
        width="816px"
        append-to-body
      >
        <RowSettings
          :colName="btResList"
          :HModName="HModName"
          @rowEditClose="rowSetClose"
          v-if="rowHideShow"
        />
      <el-dialog title="隐藏列设置" :visible.sync="openRowHide" width="816px" append-to-body>
        <RowSettings :colName="btResList" :HModName="HModName" @rowEditClose="rowSetClose" v-if="rowHideShow" />
      </el-dialog>
      <!-- 编辑弹窗 -->
      <el-dialog
        :title="editDialogTitle"
        :visible.sync="openEdit"
        width="1480px"
        append-to-body
        class="driver-edit-dialog"
        :before-close="closeEditDialog"
        :close-on-click-modal="false"
      >
        <GyDriverEdit
          :OperationType="OperationType"
          :linterid="rowForm.HItemID"
          :HSouceBillType="''"
          @editCloseGy="editGyClose"
          v-if="editShow"
          ref="editComponent"
        />
      <el-dialog :title="editDialogTitle" :visible.sync="openEdit" width="1480px" append-to-body
        class="driver-edit-dialog" :before-close="closeEditDialog" :close-on-click-modal="false">
        <GyDriverEdit :OperationType="OperationType" :linterid="rowForm.HItemID" :HSouceBillType="''"
          @editCloseGy="editGyClose" v-if="editShow" ref="editComponent" />
        <span slot="footer" class="dialog-footer" v-if="OperationType !== 4">
          <!-- <el-button @click="closeEditDialog">取 消</el-button>
          <el-button type="primary" @click="saveDriverData">保 存</el-button> -->
@@ -568,132 +261,47 @@
      </el-dialog>
      <!-- 导入弹窗 -->
      <el-dialog
        :title="upload.title"
        :visible.sync="upload.open"
        width="1500px"
        append-to-body
      >
      <el-dialog :title="upload.title" :visible.sync="upload.open" width="1500px" append-to-body>
        <div style="margin-top: -20px">
          <el-button type="primary" @click="set_AddNew">导入数据</el-button>
          <el-button type="primary" @click="upload.open = false">退 出</el-button>
          <el-upload
            ref="upload"
            :limit="1"
            accept=".xlsx, .xls"
            style="display: inline-block; margin-left: 10px"
            :action="upload.url + '?updateSupport=' + upload.updateSupport"
            :disabled="upload.isUploading"
            :on-progress="handleFileUploadProgress"
            :on-success="handleFileSuccess"
          >
          <el-upload ref="upload" :limit="1" accept=".xlsx, .xls" style="display: inline-block; margin-left: 10px"
            :action="upload.url + '?updateSupport=' + upload.updateSupport" :disabled="upload.isUploading"
            :on-progress="handleFileUploadProgress" :on-success="handleFileSuccess">
            <el-button type="primary">文件上传</el-button>
          </el-upload>
        </div>
        <el-table
          :data="uploadData"
          v-loading="uploadTableLoading"
          :row-class-name="uploadDataIndex"
          border
          height="550"
        >
          <el-table-column
            type="index"
            label="序号"
            width="55"
            align="center"
          />
          <el-table-column
            label="驾驶员代码"
            prop="驾驶员代码"
            align="center"
            width="120"
          />
          <el-table-column
            label="驾驶员名称"
            prop="驾驶员名称"
            align="center"
            width="120"
          />
          <el-table-column
            label="联系电话"
            prop="联系电话"
            align="center"
            width="120"
          />
          <el-table-column
            label="驾驶证号"
            prop="驾驶证号"
            align="center"
            width="120"
          />
        <el-table :data="uploadData" v-loading="uploadTableLoading" :row-class-name="uploadDataIndex" border
          height="550">
          <el-table-column type="index" label="序号" width="55" align="center" />
          <el-table-column label="驾驶员代码" prop="驾驶员代码" align="center" width="120" />
          <el-table-column label="驾驶员名称" prop="驾驶员名称" align="center" width="120" />
          <el-table-column label="联系电话" prop="联系电话" align="center" width="120" />
          <el-table-column label="驾驶证号" prop="驾驶证号" align="center" width="120" />
          <el-table-column label="操作" align="center">
            <template slot-scope="scope">
              <el-button
                size="mini"
                type="text"
                icon="el-icon-delete"
                @click="uploadDataDelete(scope.row)"
                >删除</el-button
              >
              <el-button size="mini" type="text" icon="el-icon-delete"
                @click="uploadDataDelete(scope.row)">删除</el-button>
            </template>
          </el-table-column>
        </el-table>
        <pagination
          v-show="uploadTotal > 0"
          :total="uploadTotal"
          :page.sync="uploadPage"
          :limit.sync="uploadPageSize"
          :pageSizes="uploadPageSizes"
          @pagination="currentPage"
        />
        <pagination v-show="uploadTotal > 0" :total="uploadTotal" :page.sync="uploadPage" :limit.sync="uploadPageSize"
          :pageSizes="uploadPageSizes" @pagination="currentPage" />
      </el-dialog>
      <!-- 过滤方案弹窗 -->
      <el-dialog
        title="过滤方案列表"
        :visible.sync="openFilterScheme"
        width="80%"
        append-to-body
      >
      <el-dialog title="过滤方案列表" :visible.sync="openFilterScheme" width="80%" append-to-body>
        <div style="height: 500px; overflow: auto">
          <el-table
            :data="filterSchemeList"
            border
            style="width: 100%"
            @row-click="selectFilterScheme"
          >
            <el-table-column
              prop="方案名称"
              label="方案名称"
              width="200"
            ></el-table-column>
            <el-table-column
              prop="备注"
              label="备注"
              width="300"
            ></el-table-column>
          <el-table :data="filterSchemeList" border style="width: 100%" @row-click="selectFilterScheme">
            <el-table-column prop="方案名称" label="方案名称" width="200"></el-table-column>
            <el-table-column prop="备注" label="备注" width="300"></el-table-column>
            <el-table-column prop="创建人" label="创建人" width="120"></el-table-column>
            <el-table-column
              prop="创建日期"
              label="创建日期"
              width="150"
            ></el-table-column>
            <el-table-column prop="创建日期" label="创建日期" width="150"></el-table-column>
            <el-table-column label="操作" width="150" align="center">
              <template slot-scope="scope">
                <el-button
                  type="text"
                  size="mini"
                  @click="applyFilterScheme(scope.row)"
                  >应用</el-button
                >
                <el-button
                  type="text"
                  size="mini"
                  @click="deleteFilterScheme(scope.row)"
                  style="color: #f56c6c"
                  >删除</el-button
                >
                <el-button type="text" size="mini" @click="applyFilterScheme(scope.row)">应用</el-button>
                <el-button type="text" size="mini" @click="deleteFilterScheme(scope.row)"
                  style="color: #f56c6c">删除</el-button>
              </template>
            </el-table-column>
          </el-table>
@@ -701,7 +309,7 @@
        <span slot="footer" class="dialog-footer">
          <el-button type="primary" @click="confirmFilterScheme">确 定</el-button>
          <el-button @click="openFilterScheme = false">取 消</el-button>
        </span>
      </el-dialog>
    </div>
@@ -743,7 +351,7 @@
        { label: "不包含", value: "10" },
      ],
      sWhere: "",
      organizationList: [],
      filterColumnList: [],
@@ -824,8 +432,7 @@
    async initData() {
      try {
        const userRes = await axios.get(
          `${this.$baseUrl}/Web/GetUser?UserName=${
            sessionStorage.getItem("UserName") || "001"
          `${this.$baseUrl}/Web/GetUser?UserName=${sessionStorage.getItem("UserName") || "001"
          }&PassWord=123456&HOrgName=100038`
        );
        if (userRes.data.data && userRes.data.data[0]) {
@@ -853,7 +460,7 @@
    async getList() {
      this.tableShow = false;
      this.loading = true;
      console.log("获取列表数据...",this.sWhere );
      console.log("获取列表数据...", this.sWhere);
      try {
        const params = {
          sWhere: this.sWhere || "",
@@ -1025,7 +632,7 @@
      //   conditions.push(`HUSEORGID = '${this.queryParams.HUSEORGID}'`);
      // }
      if (this.queryParams.ColName !== "0" && this.queryParams.Comparator !== "0") {
        const condition = this.buildCondition(
          this.queryParams.ColName,
@@ -1035,7 +642,7 @@
        if (condition) conditions.push(condition);
      }
      if (
        this.queryParams.ColName1 !== "0" &&
        this.queryParams.Comparator1 !== "0"
@@ -1060,14 +667,14 @@
        if (condition) conditions.push(condition);
      }
      if (conditions.length > 0) {
        this.sWhere ="and "+conditions;
        this.sWhere = "and " + conditions;
      }
      console.log("查询条件:", this.sWhere);
      //this.sWhere += this.addSWhereByOpenType();
      this.page = 1;
      this.page = 1;
      this.getList();
    },
@@ -1075,15 +682,15 @@
      if (!content) return null;
      switch (comparator) {
        case "7":
        case "7":
          return `${colName} like '%${content}%'`;
        case "8":
        case "8":
          return `${colName} like '%${content}'`;
        case "9":
        case "9":
          return `${colName} like '${content}%'`;
        case "10":
        case "10":
          return `${colName} not like '%${content}%'`;
        default:
        default:
          return `${colName} ${comparator} '${content}'`;
      }
    },
@@ -1148,6 +755,9 @@
    // 点击行
    handleRowClick(row) {
      this.$refs.tableData.toggleRowSelection(row);
      if (this.openPage) {
        this.$emit('deptEmit', row, 15)
      }
    },
    // 行样式
@@ -1398,7 +1008,7 @@
      );
    },
    parseTime(time, cFormat) {
      if (arguments.length === 0) {
        return null;
@@ -1584,7 +1194,7 @@
    applyFilterScheme(row) {
      this.currentFilterScheme = row.方案名称;
      this.currentFilterRemark = row.备注;
      // 这里应该根据方案内容设置查询条件
      // 由于方案数据结构复杂,这里只做简单演示
      this.$modal.msgSuccess(`已应用方案:${row.方案名称}`);
@@ -1595,7 +1205,7 @@
    async deleteFilterScheme(row) {
      try {
        await this.$modal.confirm(`确认要删除方案"${row.方案名称}"吗?`);
        const res = await axios.post(`${this.$baseUrl}/Xt_FastICScheme/delete`, {
          HInterID: row.hmainid,
        });