陈婷婷
2026-01-21 c667fae1aaadb23c83e992a23aa3a081b327d76c
出运单修改
5个文件已修改
674 ■■■■■ 已修改文件
.env.development 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/basic/gyCar/gyCarList.vue 525 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/basic/gyCartypelist/gyCartypelist.vue 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/component/AreaDialog/index.vue 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/logistics/transportGPS/Add_Edit_WL_YayBill.vue 138 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.env.development
@@ -5,8 +5,8 @@
ENV = 'development'
# 智云迈思L-MOM管理系统/开发环境
VUE_APP_BASE_API = http://localhost:81/API/
# VUE_APP_BASE_API = 'http://47.96.97.237/API/'
# VUE_APP_BASE_API = http://localhost:81/API/
VUE_APP_BASE_API = 'http://47.96.97.237/API/'
# VUE_APP_BASE_API = 'http://220.189.218.155:9010/API/'
# VUE_APP_BASE_API = 'http://localhost:8082/LuBaoAPI/'
# VUE_APP_BASE_API = 'http://192.168.1.11/API/'
src/views/basic/gyCar/gyCarList.vue
@@ -1,77 +1,33 @@
<template>
  <div style="padding: 10px">
    <el-form
      :model="queryParams"
      ref="queryForm"
      size="small"
      :inline="true"
      label-width="78px"
      class="searchBox"
    >
  <div style="padding: 10px; position: relative;">
    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="78px" class="searchBox">
      <el-row>
        <el-form-item label="开始日期" style="margin-left: 100px">
          <el-date-picker
            v-model="sTime"
            type="date"
            placeholder="开始日期"
            style="width: 150px"
            :disabled="queryParams.HInitTimeCycle != -1"
            value-format="yyyy-MM-dd"
          >
          <el-date-picker v-model="sTime" type="date" placeholder="开始日期" style="width: 150px"
            :disabled="queryParams.HInitTimeCycle != -1" value-format="yyyy-MM-dd">
          </el-date-picker>
        </el-form-item>
        <el-form-item label="结束日期">
          <el-date-picker
            v-model="eTime"
            type="date"
            placeholder="结束日期"
            style="width: 150px"
            :disabled="queryParams.HInitTimeCycle != -1"
            value-format="yyyy-MM-dd"
          >
          <el-date-picker v-model="eTime" type="date" placeholder="结束日期" style="width: 150px"
            :disabled="queryParams.HInitTimeCycle != -1" value-format="yyyy-MM-dd">
          </el-date-picker>
        </el-form-item>
        <el-form-item label="日期间隔">
          <el-select
            v-model="queryParams.HInitTimeCycle"
            placeholder="请选择"
            @change="riqiChange"
          >
            <el-option
              v-for="(item, index) in rqsgList"
              :key="index"
              :label="item.label"
              :value="item.value"
            >
          <el-select v-model="queryParams.HInitTimeCycle" placeholder="请选择" @change="riqiChange">
            <el-option v-for="(item, index) in rqsgList" :key="index" :label="item.label" :value="item.value">
            </el-option>
          </el-select>
        </el-form-item>
        <el-form-item label="车辆名称" prop="HName">
          <el-input
            v-model="queryParams.HName"
            placeholder="请输入车辆名称"
            @keyup.enter.native="handleQuery"
          />
          <el-input v-model="queryParams.HName" placeholder="请输入车辆名称" @keyup.enter.native="handleQuery" />
        </el-form-item>
        <el-form-item label="车牌号" prop="HNumber">
          <el-input
            v-model="queryParams.HNumber"
            placeholder="请输入车牌号"
            @keyup.enter.native="handleQuery"
          />
          <el-input v-model="queryParams.HNumber" placeholder="请输入车牌号" @keyup.enter.native="handleQuery" />
        </el-form-item>
        <el-form-item label="组织">
          <el-select
            v-model="queryParams.HOrgID"
            placeholder="请选择"
            class="ForFilteringSchemes"
          >
            <el-option
              v-for="(item, index) in organizationList"
              :key="index"
              :label="item.Name"
              :value="item.ID.toString()"
            >
          <el-select v-model="queryParams.HOrgID" placeholder="请选择" class="ForFilteringSchemes">
            <el-option v-for="(item, index) in organizationList" :key="index" :label="item.Name"
              :value="item.ID.toString()">
            </el-option>
          </el-select>
        </el-form-item>
@@ -85,132 +41,69 @@
              <el-row>
                <el-form-item label-width="0">
                  <el-col :span="7">
                    <el-select
                      v-model="queryParams.ColName1"
                      placeholder="请选择"
                      @change="riqiChange"
                      class="ForFilteringSchemes"
                    >
                    <el-select v-model="queryParams.ColName1" placeholder="请选择" @change="riqiChange"
                      class="ForFilteringSchemes">
                      <span v-for="(item, index) in btList" :key="index">
                        <el-option
                          :label="item.field"
                          :value="item.field"
                          v-if="!item.hide"
                        ></el-option>
                        <el-option :label="item.field" :value="item.field" v-if="!item.hide"></el-option>
                      </span>
                    </el-select>
                  </el-col>
                  <el-col :span="6" style="padding: 0 10px">
                    <el-select
                      v-model="queryParams.Comparator1"
                      placeholder="请选择"
                      @change="riqiChange"
                      class="ForFilteringSchemes"
                    >
                      <el-option
                        v-for="(item, index) in comparatorList"
                        :key="index"
                        :label="item.label"
                        :value="item.value"
                      ></el-option>
                    <el-select v-model="queryParams.Comparator1" placeholder="请选择" @change="riqiChange"
                      class="ForFilteringSchemes">
                      <el-option v-for="(item, index) in comparatorList" :key="index" :label="item.label"
                        :value="item.value"></el-option>
                    </el-select>
                  </el-col>
                  <el-col :span="11">
                    <el-input
                      v-model="queryParams.ColContent1"
                      placeholder="请输入"
                      clearable
                      @keyup.enter.native="handleQuery"
                      class="ForFilteringSchemes"
                    />
                    <el-input v-model="queryParams.ColContent1" placeholder="请输入" clearable
                      @keyup.enter.native="handleQuery" class="ForFilteringSchemes" />
                  </el-col>
                </el-form-item>
              </el-row>
              <el-row>
                <el-form-item label-width="0">
                  <el-col :span="7">
                    <el-select
                      v-model="queryParams.ColName2"
                      placeholder="请选择"
                      @change="riqiChange"
                      class="ForFilteringSchemes"
                    >
                    <el-select v-model="queryParams.ColName2" placeholder="请选择" @change="riqiChange"
                      class="ForFilteringSchemes">
                      <span v-for="(item, index) in btList" :key="index">
                        <el-option
                          :label="item.field"
                          :value="item.field"
                          v-if="!item.hide"
                        ></el-option>
                        <el-option :label="item.field" :value="item.field" v-if="!item.hide"></el-option>
                      </span>
                    </el-select>
                  </el-col>
                  <el-col :span="6" style="padding: 0 10px">
                    <el-select
                      v-model="queryParams.Comparator2"
                      placeholder="请选择"
                      @change="riqiChange"
                      class="ForFilteringSchemes"
                    >
                    <el-select v-model="queryParams.Comparator2" placeholder="请选择" @change="riqiChange"
                      class="ForFilteringSchemes">
                      <span v-for="(item, index) in btList" :key="index">
                        <el-option
                          :label="item.field"
                          :value="item.field"
                          v-if="!item.hide"
                        ></el-option>
                        <el-option :label="item.field" :value="item.field" v-if="!item.hide"></el-option>
                      </span>
                    </el-select>
                  </el-col>
                  <el-col :span="11">
                    <el-input
                      v-model="queryParams.ColContent2"
                      placeholder="请输入"
                      clearable
                      @keyup.enter.native="handleQuery"
                      class="ForFilteringSchemes"
                    />
                    <el-input v-model="queryParams.ColContent2" placeholder="请输入" clearable
                      @keyup.enter.native="handleQuery" class="ForFilteringSchemes" />
                  </el-col>
                </el-form-item>
              </el-row>
              <el-row>
                <el-form-item label-width="0">
                  <el-col :span="7">
                    <el-select
                      v-model="queryParams.ColName"
                      placeholder="请选择"
                      @change="riqiChange"
                      class="ForFilteringSchemes"
                    >
                      <el-option
                        v-for="(item, index) in btList"
                        :key="index"
                        :label="item.field"
                        :value="item.field"
                      ></el-option>
                    <el-select v-model="queryParams.ColName" placeholder="请选择" @change="riqiChange"
                      class="ForFilteringSchemes">
                      <el-option v-for="(item, index) in btList" :key="index" :label="item.field"
                        :value="item.field"></el-option>
                    </el-select>
                  </el-col>
                  <el-col :span="6" style="padding: 0 10px">
                    <el-select
                      v-model="queryParams.Comparator"
                      placeholder="请选择"
                      @change="riqiChange"
                      class="ForFilteringSchemes"
                    >
                      <el-option
                        v-for="(item, index) in comparatorList"
                        :key="index"
                        :label="item.label"
                        :value="item.value"
                      ></el-option>
                    <el-select v-model="queryParams.Comparator" placeholder="请选择" @change="riqiChange"
                      class="ForFilteringSchemes">
                      <el-option v-for="(item, index) in comparatorList" :key="index" :label="item.label"
                        :value="item.value"></el-option>
                    </el-select>
                  </el-col>
                  <el-col :span="11">
                    <el-input
                      v-model="queryParams.ColContent"
                      placeholder="请输入"
                      clearable
                      @keyup.enter.native="handleQuery"
                      class="ForFilteringSchemes"
                    />
                    <el-input v-model="queryParams.ColContent" placeholder="请输入" clearable
                      @keyup.enter.native="handleQuery" class="ForFilteringSchemes" />
                  </el-col>
                </el-form-item>
              </el-row>
@@ -221,11 +114,8 @@
      <el-form-item label-width="78px">
        <el-button type="primary" size="small" icon="el-icon-search" @click="handleQuery">
          搜 索</el-button
        >
        <el-button icon="el-icon-circle-close" size="small" @click="searchOpen = false"
          >取 消</el-button
        >
          搜 索</el-button>
        <el-button icon="el-icon-circle-close" size="small" @click="searchOpen = false">取 消</el-button>
      </el-form-item>
    </el-form>
@@ -241,64 +131,28 @@
        >
      </el-col> -->
      <el-col :span="1.5">
        <el-button
          type="primary"
          icon="el-icon-plus"
          size="mini"
          @click="handleAddEdit((OperationType = 1))"
          id="btn-Add"
          >新增</el-button
        >
        <el-button type="primary" icon="el-icon-plus" size="mini" @click="handleAddEdit((OperationType = 1))"
          id="btn-Add">新增</el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="primary"
          icon="el-icon-edit"
          size="mini"
          :disabled="single"
          @click="handleEdit((row = rowForm), (OperationType = 3))"
          >编辑</el-button
        >
        <el-button type="primary" icon="el-icon-edit" size="mini" :disabled="single"
          @click="handleEdit((row = rowForm), (OperationType = 3))">编辑</el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="primary"
          icon="el-icon-edit"
          size="mini"
          :disabled="single"
          @click="handleEdit((row = rowForm), (OperationType = 2))"
          >复制</el-button
        >
        <el-button type="primary" icon="el-icon-edit" size="mini" :disabled="single"
          @click="handleEdit((row = rowForm), (OperationType = 2))">复制</el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="primary"
          icon="el-icon-delete"
          size="mini"
          :disabled="single"
          @click="handleDelete"
          >删除
        <el-button type="primary" icon="el-icon-delete" size="mini" :disabled="single" @click="handleDelete">删除
        </el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="primary"
          icon="el-icon-edit"
          size="mini"
          :disabled="single"
          @click="set_CheckBill(0, (form = rowForm))"
          >审核</el-button
        >
        <el-button type="primary" icon="el-icon-edit" size="mini" :disabled="single"
          @click="set_CheckBill(0, (form = rowForm))">审核</el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="primary"
          icon="el-icon-edit"
          size="mini"
          :disabled="single"
          @click="set_CheckBill(1, (form = rowForm))"
          >反审核</el-button
        >
        <el-button type="primary" icon="el-icon-edit" size="mini" :disabled="single"
          @click="set_CheckBill(1, (form = rowForm))">反审核</el-button>
      </el-col>
      <!-- <el-col :span="1.5">
        <el-button
@@ -323,178 +177,76 @@
        >
      </el-col> -->
      <el-col :span="1.5">
        <el-button
          type="primary"
          icon="el-icon-edit"
          size="mini"
          :disabled="single"
          @click="set_CloseBill(1, (form = rowForm))"
          >关闭</el-button
        >
        <el-button type="primary" icon="el-icon-edit" size="mini" :disabled="single"
          @click="set_CloseBill(1, (form = rowForm))">关闭</el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="primary"
          icon="el-icon-edit"
          size="mini"
          :disabled="single"
          @click="set_CloseBill(2, (form = rowForm))"
          >反关闭</el-button
        >
        <el-button type="primary" icon="el-icon-edit" size="mini" :disabled="single"
          @click="set_CloseBill(2, (form = rowForm))">反关闭</el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="primary"
          icon="el-icon-edit"
          size="mini"
          :disabled="single"
          @click="set_CloseRow(0, (form = rowForm))"
          >行关闭</el-button
        >
        <el-button type="primary" icon="el-icon-edit" size="mini" :disabled="single"
          @click="set_CloseRow(0, (form = rowForm))">行关闭</el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="primary"
          icon="el-icon-edit"
          size="mini"
          :disabled="single"
          @click="set_CloseRow(1, (form = rowForm))"
          >行反关闭</el-button
        >
        <el-button type="primary" icon="el-icon-edit" size="mini" :disabled="single"
          @click="set_CloseRow(1, (form = rowForm))">行反关闭</el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="primary"
          icon="el-icon-edit"
          size="mini"
          :disabled="single"
          @click="set_DropBill(1, (form = rowForm))"
          >作废</el-button
        >
        <el-button type="primary" icon="el-icon-edit" size="mini" :disabled="single"
          @click="set_DropBill(1, (form = rowForm))">作废</el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="primary"
          icon="el-icon-edit"
          size="mini"
          :disabled="single"
          @click="set_DropBill(2, (form = rowForm))"
          >反作废</el-button
        >
        <el-button type="primary" icon="el-icon-edit" 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-download"
          size="mini"
          @click="handleExport"
          >导出</el-button
        >
        <el-button type="primary" icon="el-icon-download" size="mini" @click="handleExport">导出</el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="primary"
          icon="el-icon-download"
          size="mini"
          @click="handleRowHide"
          >隐藏列设置</el-button
        >
        <el-button type="primary" icon="el-icon-download" size="mini" @click="handleRowHide">隐藏列设置</el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button type="primary" icon="el-icon-help" size="mini" @click="handleSearch"
          >搜 索</el-button
        >
        <el-button type="primary" icon="el-icon-help" size="mini" @click="handleSearch">搜 索</el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button type="primary" icon="el-icon-refresh" size="mini" @click="resetQuery"
          >重 置</el-button
        >
        <el-button type="primary" icon="el-icon-refresh" size="mini" @click="resetQuery">重 置</el-button>
      </el-col>
      <!-- <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> -->
    </el-row>
    <div class="tableBox" v-loading="loading">
      <el-table
        :data="tableData"
        ref="tableData"
        max-height="750"
        :summary-method="getSummaries"
        @selection-change="handleSelectionChange"
        show-summary
        border
        @row-click="handleRowClick"
        :row-style="rowStyle"
        @cell-dblclick="handleDblclick"
        v-if="tableShow"
      >
      <el-table :data="tableData" ref="tableData" max-height="750" :summary-method="getSummaries"
        @selection-change="handleSelectionChange" show-summary border @row-click="handleRowClick" :row-style="rowStyle"
        @cell-dblclick="handleDblclick" v-if="tableShow">
        <template v-for="(item, index) in btList">
          <el-table-column
            type="selection"
            width="55"
            align="center"
            :fixed="item.fixed"
            v-if="item.type == 'checkbox'"
            :key="index"
          />
          <el-table-column
            :align="item.align"
            :prop="item.field"
            :label="item.title"
            :width="item.width"
            :key="item.sorderid"
            v-else-if="!item.hide && item.type != 'checkbox'"
            :sortable="item.sort"
            show-overflow-tooltip
            :fixed="item.fixed"
          >
          <el-table-column type="selection" width="55" align="center" :fixed="item.fixed" v-if="item.type == 'checkbox'"
            :key="index" />
          <el-table-column :align="item.align" :prop="item.field" :label="item.title" :width="item.width"
            :key="item.sorderid" v-else-if="!item.hide && item.type != 'checkbox'" :sortable="item.sort"
            show-overflow-tooltip :fixed="item.fixed">
            <template slot-scope="{ row, column }">
              <el-checkbox v-model="checked" v-if="item.type == 'checkbox'"></el-checkbox>
              <div :style="item.style">
                <span v-if="column.property.includes('日期')">{{
                  parseTime(row[column.property], "{y}-{m}-{d}")
                }}</span>
                <el-button
                  type="text"
                  @click.stop="handleEdit(row, (OperationType = 3))"
                  v-else-if="column.property == '车牌号'"
                  >{{ row.车牌号 }}</el-button
                >
                <el-button type="text" @click.stop="handleEdit(row, (OperationType = 3))"
                  v-else-if="column.property == '车牌号'">{{ row.车牌号 }}</el-button>
                <span v-else>{{ row[column.label] }}</span>
              </div>
            </template>
          </el-table-column>
        </template>
      </el-table>
      <pagination
        v-show="total > 0"
        :total="total"
        :page.sync="page"
        :limit.sync="pageSize"
        :pageSizes="pageSizes"
        @pagination="handleQuery"
      />
      <el-dialog
        title="隐藏列设置"
        :visible.sync="openRowHide"
        width="816px"
        append-to-body
      >
        <RowSettings
          :colName="btResList"
          :HModName="HModName"
          @rowEditClose="rowSetClose"
          v-if="rowHideShow"
        />
      <pagination v-show="total > 0" :total="total" :page.sync="page" :limit.sync="pageSize" :pageSizes="pageSizes"
        @pagination="handleQuery" />
      <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="编辑车辆"
        :visible.sync="openEdit"
        width="1480px"
        append-to-body
        class="xsckdBox"
        :before-close="close"
      >
      <el-dialog title="编辑车辆" :visible.sync="openEdit" width="1480px" append-to-body class="xsckdBox"
        :before-close="close">
        <!-- <edit
          :OperationType="OperationType"
          :linterid="this.rowForm.hmainid"
@@ -508,93 +260,39 @@
          <iframe :src="iframeUrl" frameborder="0" width="100%" height="100%"></iframe>
        </div>
      </el-dialog>
      <el-dialog
        :title="upload.title"
        :visible.sync="upload.open"
        width="1500px"
        append-to-body
        v-if="false"
      >
      <el-dialog :title="upload.title" :visible.sync="upload.open" width="1500px" append-to-body v-if="false">
        <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 :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="生产资源名称" 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="负责人代码"
            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="工作中心名称"
            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>
    </div>
  </div>
@@ -1177,6 +875,9 @@
      }
      this.lastSelectedRowIndex = this.tableData.indexOf(row);
      this.$refs.tableData.toggleRowSelection(row);
      if (this.openPage) {
        this.$emit('deptEmit', row, 14)
      }
    },
    //选中行高亮样式
    rowStyle({ row, rowIndex }) {
@@ -1197,7 +898,11 @@
        return;
      }
      this.OperationType = 3;
      this.handleEdit(row, this.OperationType);
      if (this.openPage) {
        this.$emit('deptEmitDb', row, 14)
      } else {
        this.handleEdit(row, this.OperationType);
      }
    },
    // 多选框选中数据
    handleSelectionChange(selection) {
@@ -1427,7 +1132,7 @@
            this.$modal.msgError("此条数据不是创建状态,无法删除!");
          }
        })
        .catch(() => {});
        .catch(() => { });
    },
    // 反审核/审核数据
    set_CheckBill(num, form) {
@@ -1591,8 +1296,8 @@
      } else {
        this.$alert(
          "<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" +
            res.Message +
            "</div>",
          res.Message +
          "</div>",
          "导入结果",
          { dangerouslyUseHTMLString: true }
        );
@@ -1621,8 +1326,8 @@
        .then((res) => {
          this.$alert(
            "<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" +
              res.data.Message +
              "</div>",
            res.data.Message +
            "</div>",
            "导入结果",
            { dangerouslyUseHTMLString: true }
          );
@@ -1646,7 +1351,7 @@
            return deleteList.indexOf(item.index) == -1;
          });
        })
        .catch(() => {});
        .catch(() => { });
    },
    getPage(page, list) {
      let sindex = (parseInt(page) - 1) * this.uploadPageSize;
@@ -1669,7 +1374,7 @@
  width: 100%;
}
.form-item-inline > .el-form-item__content {
.form-item-inline>.el-form-item__content {
  display: flex;
  flex-direction: row;
  width: 60%;
src/views/basic/gyCartypelist/gyCartypelist.vue
@@ -175,6 +175,7 @@
  components: { RowSettings, Edit },
  props: {
    openPage: { type: String, },
    volume:{},
  },
  data() {
    return {
@@ -434,7 +435,7 @@
      this.$refs.tableData.toggleRowSelection(row);
      if (this.openPage) {
        //this.$emit('carTypeEmit', row, 1)
        this.$emit('deptEmitDb', row, 7)
        this.$emit('deptEmit', row, 13)
      }
    },
    
@@ -457,7 +458,7 @@
      this.OperationType = 3
      if (this.openPage) {
        //this.$emit('carTypeEmitDb', row, 1)
        this.$emit('deptEmitDb', row, 7)
        this.$emit('deptEmitDb', row, 13)
      } else {
        this.handleEdit();
      }
src/views/component/AreaDialog/index.vue
@@ -216,6 +216,8 @@
  components: { RowSettings, Edit },
  props: {
    openPage: { type: String, },
    HBeginAddrName: { type: String, },
    HEndAddrName: { type: String, },
  },
  data() {
    return {
src/views/logistics/transportGPS/Add_Edit_WL_YayBill.vue
@@ -54,7 +54,7 @@
                                <el-form-item label="始发地" prop="HBeginAddrName">
                                    <el-input v-model="form.HBeginAddrName" placeholder="请输入始发地">
                                        <el-button slot="append" icon="el-icon-search"
                                            @click="openDataDialog('暂无')"></el-button>
                                            @click="openDataDialog(3, areaType = 'b')"></el-button>
                                    </el-input>
                                </el-form-item>
                            </el-col>
@@ -62,7 +62,7 @@
                                <el-form-item label="目的地" prop="HEndAddrName">
                                    <el-input v-model="form.HEndAddrName" placeholder="请输入目的地">
                                        <el-button slot="append" icon="el-icon-search"
                                            @click="openDataDialog('暂无')"></el-button>
                                            @click="openDataDialog(3, areaType = 'e')"></el-button>
                                    </el-input>
                                </el-form-item>
                            </el-col>
@@ -434,7 +434,9 @@
                            </el-table-column>
                            <el-table-column align="center" label="器具代码" width="120">
                                <template slot-scope="scope">
                                    <el-input v-model="scope.row.HMouldNumber" placeholder="请输入器具代码" />
                                    <el-input v-model="scope.row.HMouldNumber" placeholder="请输入器具代码"
                                        @keyup.native.f7="openDataDialog(8, scope.row)"
                                        @dblclick.native="openDataDialog(8, scope.row)" />
                                </template>
                            </el-table-column>
                            <el-table-column align="center" label="器具名称" width="120">
@@ -476,7 +478,8 @@
                            <el-table-column align="center" label="物料数量" width="120">
                                <template slot-scope="scope">
                                    <el-input-number v-model="scope.row.HQty" :min="0" style="width: 90px;"
                                        controls-position="right"></el-input-number>
                                        controls-position="right"
                                        @change="checkTotalQtyExceed(scope.row)"></el-input-number>
                                </template>
                            </el-table-column>
                            <el-table-column align="center" label="体积" width="120">
@@ -513,11 +516,13 @@
                    :propsHOrgID="form.HOrgID" v-if="xsSeOutStockBillShow" />
                <GyCustomer @deptEmitDb="dbEmitData" @deptEmit="emitData" :openPage="HModName" v-if="gyCustomerShow" />
                <GySupplier @deptEmitDb="dbEmitData" @deptEmit="emitData" :openPage="HModName" v-if="gySupplierShow" />
                <GyCartype @deptEmitDb="dbEmitData" @deptEmit="emitData" :openPage="HModName" v-if="gyCartypeShow" />
                <GyCartype @deptEmitDb="dbEmitData" @deptEmit="emitData" :openPage="HModName" :volume="form.HCarTypeMaxVolume" v-if="gyCartypeShow" />
                <GyCar @deptEmitDb="dbEmitData" @deptEmit="emitData" :openPage="HModName" v-if="gyCarShow" />
                <GyDriver @deptEmitDb="dbEmitData" @deptEmit="emitData" :openPage="HModName" v-if="gyDriverShow" />
                <ContractTransport @deptEmitDb="dbEmitData" @deptEmit="emitData" :openPage="HModName"
                    v-if="ContractTransportShow" />
                <GyMould @deptEmitDb="dbEmitData" @deptEmit="emitData" :openPage="HModName" v-if="gyMouldShow" />
                <AreaDialog @deptEmitDb="dbEmitData" @deptEmit="emitData" :openPage="HModName" :HBeginAddrName="form.HBeginAddrName" :HEndAddrName="form.HEndAddrName"  v-if="AreaDialogShow" />
                <div slot="footer" class="dialog-footer">
                    <el-button type="primary" @click="deptClickSub">确 定</el-button>
                    <el-button @click="deptClose">取 消</el-button>
@@ -545,9 +550,11 @@
import GyCar from "@/views/basic/gyCar/gyCarList.vue"
import GyDriver from "@/views/system/user/GyDriver.vue"
import ContractTransport from "@/views/basic/gytransport/cgContractTransportBillList/Cg_ContractTransportBillList.vue"
import GyMould from '@/views/scMould/basicModeling/Gy_MouldFileList.vue'
import AreaDialog from "@/views/component/AreaDialog"
export default {
    name: 'SellOutBill',
    components: { Dept, Warehouse, Material, RowSettings, XsSeOutStockBill, GyCustomer, GySupplier, GyCartype, GyCar, GyDriver, ContractTransport },
    components: { Dept, Warehouse, Material, RowSettings, XsSeOutStockBill, GyCustomer, GySupplier, GyCartype, GyCar, GyDriver, ContractTransport, GyMould, AreaDialog },
    props: {
        OperationType: { type: Number, },
        linterid: { type: Number, },
@@ -588,7 +595,10 @@
            gyCarShow: false,                                                          //车辆数据组件显示标记
            gyDriverShow: false,                                                       //司机数据组件显示标记
            ContractTransportShow: false,                                              //承运合同数据组件显示标记
            gyMouldShow: false,                                                       //容器数据组件显示标记
            AreaDialogShow: false,                                                    //目的地数据组件显示标记
            deptform: {},                                                              //弹窗选中数据
            areaType: '',//地区选择类型
            temp: undefined,                                                           //临时变量
            btResList: [],                                                             // 列设置
@@ -939,8 +949,8 @@
                this.warehouseShow = true
                this.openData = true
            } else if (num == 3) {
                this.dialogTitle = '物料列表'
                this.materialShow = true
                this.dialogTitle = '地区列表'
                this.AreaDialogShow = true;
                this.openData = true
            } else if (num == 4) {
                this.dialogTitle = '仓位列表'
@@ -953,6 +963,10 @@
            } else if (num == 7) {
                this.dialogTitle = '客户列表'
                this.gyCustomerShow = true
                this.openData = true
            } else if (num == 8) {
                this.dialogTitle = '容器列表'
                this.gyMouldShow = true
                this.openData = true
            } else if (num == 12) {
                this.dialogTitle = '源单列表'
@@ -988,6 +1002,7 @@
            this.gyCarShow = false
            this.gyDriverShow = false
            this.ContractTransportShow = false
            this.gyMouldShow = false
        },
        //#endregion
        //#endregion
@@ -1008,15 +1023,15 @@
                this.editData[this.zbIndex].HSPID = deptRow.HItemID;
                this.editData[this.zbIndex].仓位名称 = deptRow.仓位名称;
                this.openData = false
            } else if (num == 3) {                                                      //物料
                this.editData[this.zbIndex].HMaterID = deptRow.HItemID;
                this.editData[this.zbIndex].物料代码 = deptRow.物料代码;
                this.editData[this.zbIndex].物料名称 = deptRow.物料名称;
                this.editData[this.zbIndex].HUnitID = deptRow.HUnitID;
                this.editData[this.zbIndex].规格型号 = deptRow.规格型号
                this.editData[this.zbIndex].计量单位 = deptRow.计量单位名称
                this.editData[this.zbIndex].HTaxPrice = deptRow.含税成本价
                this.editData[this.zbIndex].HTaxRate = deptRow.默认税率
            } else if (num == 3) {                                                      //地区
                if (this.areaType == 'b') {
                    this.form.HBeginAddrName = deptRow.地区名称
                    this.form.HBeginAddr = deptRow.HItemID
                } else if (this.areaType == 'e') {
                    this.form.HEndAddrName = deptRow.地区名称
                    this.form.HEndAddr = deptRow.HItemID
                }
                this.AreaDialogShow = false;
                this.openData = false
            } else if (num == 6) {
                this.form.HCarrierName = deptRow.供应商名称
@@ -1028,6 +1043,16 @@
                this.form.HCusID = deptRow.HItemID
                this.gyCustomerShow = false
                this.openData = false
            } else if (num == 8) {
                console.log(deptRow)
                this.editData[this.zbIndex].HMouldID = deptRow.hmainid
                this.editData[this.zbIndex].HMouldNumber = deptRow.模具编号
                this.editData[this.zbIndex].HMouldName = deptRow.模具名称
                this.editData[this.zbIndex].HMouldLength = deptRow.长
                this.editData[this.zbIndex].HMouldWidth = deptRow.宽
                this.editData[this.zbIndex].HMouldFoldHeight = deptRow.折叠高度
                this.gyMouldShow = false
                this.openData = false
            } else if (num == 12) {
                // 使用异步方式处理源单数据
                this.processSourceDataAsync(deptRow);
@@ -1035,7 +1060,7 @@
                this.form.HCarTypeName = deptRow.车型名称
                this.form.HCarTypeID = deptRow.HItemID
                this.form.HCarTypeMaxVolume = deptRow["最大体积(立方米)"]
                this.calculateLoadingRate(parseFloat($('#HTotalVolume').val()) || 0);
                this.calculateLoadingRate(parseFloat(this.form.HTotalVolume || 0));
                this.gyCartypeShow = false
                this.openData = false
            } else if (num == 14) {
@@ -1125,10 +1150,10 @@
                    this.form.HCusName = deptRow[0]["客户"];
                }
                console.log(deptRow)
                this.form.HMainSourceInterID=deptRow[0]["hmainid"]
                this.form.HMainSourceEntryID=deptRow[0]["hsubid"]
                this.form.HMainSourceBillType=deptRow[0]["HBillType"]
                this.form.HMainSourceBillNo=deptRow[0]["单据号"]
                this.form.HMainSourceInterID = deptRow[0]["hmainid"]
                this.form.HMainSourceEntryID = deptRow[0]["hsubid"]
                this.form.HMainSourceBillType = deptRow[0]["HBillType"]
                this.form.HMainSourceBillNo = deptRow[0]["单据号"]
                // 检查是否所有记录属于同一客户
                for (var i = 0; i < deptRow.length; i++) {
                    if (deptRow[i]["HCusID"] != this.form.HCusID) {
@@ -1271,7 +1296,6 @@
                                var qty = materialInfo.HSNP || 0;
                                var snp = materialInfo.HSNP || 1;
                                var mouldQty = snp > 0 ? Math.ceil(qty / snp) : 0;
                                var length = parseFloat(materialInfo.长度) || 0;
                                var width = parseFloat(materialInfo.宽度) || 0;
                                var height = parseFloat(materialInfo.高度) || 0;
@@ -1637,7 +1661,7 @@
        // 计算装载率函数
        calculateLoadingRate(totalVolume) {
            var maxVolume = parseFloat((this.form.HCarTypeMaxVolume).val()) || 0;
            var maxVolume = parseFloat(this.form.HCarTypeMaxVolume) || 0;
            if (maxVolume > 0) {
                var loadingRate = (totalVolume / maxVolume * 100).toFixed(2);
                this.form.HLoadingRate = loadingRate + "%"
@@ -1646,7 +1670,73 @@
            }
        },
        //#endregion
        checkTotalQtyExceed(selRow) {
            var tableData = this.editData
            console.log(tableData)
            if (!tableData || tableData.length === 0) return;
            var sourceQtyMap = {};
            var currentQtyMap = {};
            tableData.forEach(function (row) {
                if (row.HSourceInterID && row.HSourceEntryID) {
                    var key = row.HSourceInterID + '_' + row.HSourceEntryID;
                    if (row.HQty_origin) {
                        sourceQtyMap[key] = parseFloat(row.HQty_origin) || 0;
                    }
                }
            });
            tableData.forEach(function (row) {
                if (row.HSourceInterID && row.HSourceEntryID) {
                    var key = row.HSourceInterID + '_' + row.HSourceEntryID;
                    var currentQty = parseFloat(row.HQty) || 0;
                    if (!currentQtyMap[key]) {
                        currentQtyMap[key] = 0;
                    }
                    currentQtyMap[key] += currentQty;
                }
            });
            // 检查是否超出
            var exceedSources = [];
            for (var key in sourceQtyMap) {
                var sourceQty = sourceQtyMap[key];
                var currentTotal = currentQtyMap[key] || 0;
                if (currentTotal > sourceQty) {
                    var sourceBillNo = '';
                    tableData.some(function (row) {
                        if (row.HSourceInterID + '_' + row.HSourceEntryID === key) {
                            sourceBillNo = row.HSourceBillNo || '未知源单';
                            return true;
                        }
                        return false;
                    });
                    exceedSources.push({
                        sourceBillNo: sourceBillNo,
                        sourceQty: sourceQty,
                        currentTotal: currentTotal
                    });
                }
            }
            console.log(exceedSources)
            if (exceedSources.length > 0) {
                var message = '物料数量之和超过源单数量:';
                exceedSources.forEach(function (item, index) {
                    message += (index + 1) + '. 源单号:' + item.sourceBillNo +
                        ',源单数量:' + item.sourceQty +
                        ',当前数量:' + item.currentTotal;
                });
                this.$modal.msgError(message);
                return true; // 表示有超出
            }
            return false; // 表示没有超出
        },
        //#region 附件上传相关方法
        // 文件选择变化时的处理
        handleFileChange(file, fileList) {