浏览代码

优化入库

qukaidi 4 年之前
父节点
当前提交
2f831fb7d2

+ 20 - 0
src/App.vue

@@ -16,4 +16,24 @@ export default {
 .el-scrollbar__thumb {
   background-color: rgba(144, 147, 153, 0.8)!important;
 }
+.tabSetting {
+  display: flex;
+  justify-content: flex-end;
+}
+.listStyle {
+  display: flex;
+  border-top: 1px solid #dcdfe6;
+  border-left: 1px solid #dcdfe6;
+  border-right: 1px solid #dcdfe6;
+}
+.listStyle:last-child {
+  border-bottom: 1px solid #dcdfe6;
+}
+.progress {
+  display: flex;
+  align-items: center;
+  padding: 2px;
+  background-color: rgba(0, 0, 0, 0.05);
+  height: 100%;
+}
 </style>

+ 1878 - 0
src/views/Warehousing/inStock/AddOrUpdate.vue

@@ -0,0 +1,1878 @@
+<template>
+  <el-dialog
+    :title="title"
+    :visible.sync="showDialog"
+    width="80%"
+    @close="handleClose"
+    :close-on-click-modal="false"
+  >
+    <span>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-row>
+          <el-col :span="6">
+            <el-form-item label="客户名称" prop="corpId">
+              <el-select
+                v-model="form.corpId"
+                placeholder="请输入客户名称"
+                :clearable="true"
+                filterable
+                :disabled="disabled"
+                size="mini"
+                style="width: 180px"
+              >
+                <el-option
+                  v-for="(dict, index) in fMblnoOptions"
+                  :key="index.fId"
+                  :label="dict.fName"
+                  :value="dict.fId"
+                />
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <el-form-item label="业务类型" prop="billType">
+              <el-select
+                v-model="form.billType"
+                placeholder="请选择业务类型"
+                :disabled="disabled"
+                size="mini"
+                style="width: 180px"
+              >
+                <el-option
+                  v-for="(dict, index) in billTypeList"
+                  :key="index.dictValue"
+                  :label="dict.dictLabel"
+                  :value="dict.dictValue"
+                />
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <el-form-item label="运输方式" prop="transType">
+              <el-select
+                v-model="form.transType"
+                placeholder="请选择运输方式"
+                :disabled="disabled"
+                size="mini"
+                style="width: 180px"
+              >
+                <el-option
+                  v-for="(dict, index) in transTypeList"
+                  :key="index.dictValue"
+                  :label="dict.dictLabel"
+                  :value="dict.dictValue"
+                />
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <el-form-item label="运输性质" prop="transProp">
+              <el-select
+                v-model="form.transProp"
+                placeholder="请选择运输方式"
+                :disabled="disabled"
+                size="mini"
+                style="width: 180px"
+              >
+                <el-option
+                  v-for="(dict, index) in transPropList"
+                  :key="index.dictValue"
+                  :label="dict.dictLabel"
+                  :value="dict.dictValue"
+                />
+              </el-select>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="6">
+            <el-form-item label="提单号" prop="mblno">
+              <el-input
+                v-model="form.mblno"
+                placeholder="请输入提单号"
+                :disabled="disabled"
+                size="mini"
+                style="width: 180px"
+                @input="mbinput(form.mblno)"
+              />
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <el-form-item label="货品名称" prop="goodsId">
+              <el-select
+                v-model="form.goodsId"
+                placeholder="请输入货品名称"
+                :disabled="disabled"
+                clearable
+                filterable
+                size="mini"
+                style="width: 180px"
+              >
+                <el-option
+                  v-for="(dict, index) in goodsOptions"
+                  :key="index.fId"
+                  :label="dict.fName"
+                  :value="dict.fId"
+                />
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <el-form-item label="计划件数" prop="qtyPlan">
+              <el-input
+                v-model="form.qtyPlan"
+                placeholder="请输入计划件数"
+                :disabled="disabled"
+                v-input-limit="0"
+                size="mini"
+                style="width: 180px"
+              />
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <el-form-item label="重量(吨)" prop="weightPlan">
+              <el-input
+                v-model="form.weightPlan"
+                placeholder="请输入计划重量"
+                :disabled="disabled"
+                v-input-limit="2"
+                size="mini"
+                style="width: 180px"
+              />
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="6">
+            <el-form-item label="船名" prop="ysl">
+              <el-input
+                v-model="form.ysl"
+                placeholder="请输入船名"
+                :disabled="disabled"
+                size="mini"
+                style="width: 180px"
+              />
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <el-form-item label="航次" prop="voy">
+              <el-input
+                v-model="form.voy"
+                placeholder="请输入航次"
+                :disabled="disabled"
+                size="mini"
+                style="width: 180px"
+              />
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <el-form-item label="起运港" prop="polId">
+              <el-select
+                v-model="form.polId"
+                placeholder="请输入起运港"
+                :clearable="true"
+                filterable
+                :disabled="disabled"
+                size="mini"
+                style="width: 180px"
+              >
+                <el-option
+                  v-for="(dict, index) in polList"
+                  :key="index.fId"
+                  :label="dict.fName"
+                  :value="dict.fId"
+                />
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <el-form-item label="目的港" prop="podId">
+              <el-select
+                v-model="form.podId"
+                placeholder="请输入目的港"
+                :clearable="true"
+                filterable
+                :disabled="disabled"
+                size="mini"
+                style="width: 180px"
+              >
+                <el-option
+                  v-for="(dict, index) in podList"
+                  :key="index.fId"
+                  :label="dict.fName"
+                  :value="dict.fId"
+                />
+              </el-select>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="6">
+            <el-form-item
+              v-if="form.transType != 3"
+              label="提箱地点"
+              prop="loadAddr"
+            >
+              <el-input
+                v-model="form.loadAddr"
+                placeholder="请输入提箱地点"
+                :disabled="disabled"
+                size="mini"
+                style="width: 180px"
+              />
+            </el-form-item>
+            <el-form-item v-else label="装货地点" prop="loadAddr">
+              <el-input
+                v-model="form.loadAddr"
+                placeholder="请输入装货地点"
+                :disabled="disabled"
+                size="mini"
+                style="width: 180px"
+              />
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <el-form-item label="计划时间" prop="loadDate">
+              <el-date-picker
+                clearable
+                size="mini"
+                style="width: 180px"
+                v-model="form.loadDate"
+                type="datetime"
+                placeholder="选择计划装车时间"
+                :disabled="disabled"
+              >
+              </el-date-picker>
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <el-form-item label="联系人" prop="loadAttn">
+              <el-input
+                v-model="form.loadAttn"
+                placeholder="请输入装车联系人"
+                :disabled="disabled"
+                size="mini"
+                style="width: 180px"
+              />
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <el-form-item label="联系电话" prop="loadAttntel">
+              <el-input
+                v-model="form.loadAttntel"
+                placeholder="请输入装车联系电话"
+                :disabled="disabled"
+                v-input-limit="0"
+                size="mini"
+                style="width: 180px"
+              />
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row v-if="form.transType != 3">
+          <el-col :span="6">
+            <el-form-item
+              v-if="form.billType == 1"
+              label="卸货地点"
+              prop="mdLoadAddr"
+            >
+              <el-input
+                v-model="form.mdLoadAddr"
+                placeholder="请输入装卸货地点"
+                :disabled="disabled"
+                size="mini"
+                style="width: 180px"
+              />
+            </el-form-item>
+            <el-form-item
+              v-if="form.billType == 2"
+              label="装货地点"
+              prop="mdLoadAddr"
+            >
+              <el-input
+                v-model="form.mdLoadAddr"
+                placeholder="请输入装货地点"
+                :disabled="disabled"
+                size="mini"
+                style="width: 180px"
+              />
+            </el-form-item>
+          </el-col>
+          <el-col :span="6" v-if="form.billType == 1 || form.billType == 2">
+            <el-form-item label="计划时间" prop="mdLoadDate">
+              <el-date-picker
+                clearable
+                size="mini"
+                style="width: 180px"
+                v-model="form.mdLoadDate"
+                type="datetime"
+                placeholder="选择计划装卸货时间"
+                :disabled="disabled"
+              >
+              </el-date-picker>
+            </el-form-item>
+          </el-col>
+          <el-col :span="6" v-if="form.billType == 1 || form.billType == 2">
+            <el-form-item label="联系人" prop="mdLoadAttn">
+              <el-input
+                v-model="form.mdLoadAttn"
+                placeholder="请输入装卸货联系人"
+                :disabled="disabled"
+                size="mini"
+                style="width: 180px"
+              />
+            </el-form-item>
+          </el-col>
+          <el-col :span="6" v-if="form.billType == 1 || form.billType == 2">
+            <el-form-item label="联系电话" prop="mdLoadAttnTel">
+              <el-input
+                v-model="form.mdLoadAttnTel"
+                placeholder="请输入装卸货联系电话"
+                :disabled="disabled"
+                v-input-limit="0"
+                size="mini"
+                style="width: 180px"
+              />
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col v-if="form.transType != 3" :span="6">
+            <el-form-item label="卸箱地点" prop="unLoadAddr">
+              <el-input
+                v-model="form.unLoadAddr"
+                placeholder="请输入卸箱地点"
+                :disabled="disabled"
+                size="mini"
+                style="width: 180px"
+              />
+            </el-form-item>
+          </el-col>
+          <el-col v-else :span="6">
+            <el-form-item label="卸货地点" prop="unLoadAddr">
+              <el-input
+                v-model="form.unLoadAddr"
+                placeholder="请输入卸箱地点"
+                :disabled="disabled"
+                size="mini"
+                style="width: 180px"
+              />
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <el-form-item label="计划时间" prop="unLoadDate">
+              <el-date-picker
+                clearable
+                size="mini"
+                style="width: 180px"
+                v-model="form.unLoadDate"
+                type="datetime"
+                placeholder="选择计划卸车时间"
+                :disabled="disabled"
+              >
+              </el-date-picker>
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <el-form-item label="联系人" prop="unLoadAttn">
+              <el-input
+                v-model="form.unLoadAttn"
+                placeholder="请输入卸车联系人"
+                :disabled="disabled"
+                size="mini"
+                style="width: 180px"
+              />
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <el-form-item label="联系电话" prop="unLoadAttnTel">
+              <el-input
+                v-model="form.unLoadAttnTel"
+                placeholder="请输入卸车联系电话"
+                :disabled="disabled"
+                v-input-limit="0"
+                size="mini"
+                style="width: 180px"
+              />
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col>
+            <el-form-item label="线路描述" prop="routeDesc">
+              <el-input
+                type="textarea"
+                :rows="2"
+                v-model="form.routeDesc"
+                placeholder="请输入线路描述"
+                :disabled="disabled"
+                size="mini"
+              />
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col>
+            <el-form-item label="备注" prop="remarks">
+              <el-input
+                type="textarea"
+                :rows="2"
+                v-model="form.remarks"
+                placeholder="请输入备注"
+                :disabled="disabled"
+                size="mini"
+              />
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <!-- <div style="display: flex; justify-content: flex-end; margin: 10px 0">
+          <el-button type="danger" @click="submitAllowChanges"
+            >申请修改</el-button
+          >
+        </div> -->
+        <el-collapse v-model="collapses2">
+          <el-collapse-item name="1">
+            <template slot="title">
+              <i class="header-icon el-icon-circle-plus" style="font-size: 16px"
+                ><span
+                  style="font-size: 16px; font-weight: bolder; margin-left: 5px"
+                  >计划货量</span
+                >
+              </i>
+            </template>
+            <div>
+              <div
+                style="
+                  display: flex;
+                  justify-content: space-between;
+                  margin: 10px 0;
+                "
+              >
+                <div>
+                  <el-button
+                    type="primary"
+                    icon="el-icon-plus"
+                    size="mini"
+                    @click="addRow(planList)"
+                    :disabled="disabled"
+                    v-hasPermi="['fleet:ftmsorderbills:edit']"
+                    >添加</el-button
+                  >
+                </div>
+                <div v-if="form.transType == 3">
+                  <el-form-item label="损耗单位" prop="goodsLossType">
+                    <el-select
+                      v-model="form.goodsLossType"
+                      placeholder="请选择损耗单位"
+                      :disabled="disabled"
+                    >
+                      <el-option
+                        v-for="(dict, index) in goodsLossTypeList"
+                        :key="index.dictValue"
+                        :label="dict.dictLabel"
+                        :value="dict.dictValue"
+                      />
+                    </el-select>
+                  </el-form-item>
+                </div>
+                <div v-if="form.transType == 3">
+                  <el-form-item label="耗损标准" prop="goodsLossStd">
+                    <el-input
+                      v-model="form.goodsLossStd"
+                      placeholder="请输入耗损标准"
+                      v-input-limit="2"
+                      :disabled="disabled"
+                    />
+                  </el-form-item>
+                </div>
+              </div>
+              <el-table :data="planList">
+                <el-table-column label="箱型" align="center" prop="cntrId">
+                  <template slot-scope="scope">
+                    <el-select
+                      v-model="scope.row.cntrId"
+                      placeholder="请选择箱型"
+                      :disabled="disabled"
+                      @visible-change="noMorecntrId(planList)"
+                    >
+                      <el-option
+                        v-for="(dict, index) in cntrIdList"
+                        :key="index.dictValue"
+                        :label="dict.dictLabel"
+                        :value="dict.dictValue"
+                        :disabled="dict.noOption"
+                      />
+                    </el-select>
+                  </template>
+                </el-table-column>
+
+                <el-table-column
+                  label="计价方式"
+                  align="center"
+                  prop="priceType"
+                >
+                  <template slot-scope="scope">
+                    <el-select
+                      v-model="scope.row.priceType"
+                      placeholder="请输入计价方式"
+                      :disabled="disabled"
+                    >
+                      <el-option
+                        v-for="(dict, index) in priceTypeList"
+                        :key="index.dictValue"
+                        :label="dict.dictLabel"
+                        :value="dict.dictValue"
+                      />
+                    </el-select>
+                  </template>
+                </el-table-column>
+
+                <el-table-column label="应收运价" align="center" prop="priceDr">
+                  <template slot-scope="scope">
+                    <el-input
+                      v-model="scope.row.priceDr"
+                      placeholder="应收运价"
+                      :disabled="disabled"
+                      v-input-limit="2"
+                    />
+                  </template>
+                </el-table-column>
+                <el-table-column label="应付运价" align="center" prop="priceCr">
+                  <template slot-scope="scope">
+                    <el-input
+                      v-model="scope.row.priceCr"
+                      placeholder="应付运价"
+                      :disabled="disabled"
+                      v-input-limit="2"
+                    />
+                  </template>
+                </el-table-column>
+                <el-table-column label="计划货量" align="center" prop="cntrQty">
+                  <template slot-scope="scope">
+                    <el-input
+                      v-model="scope.row.cntrQty"
+                      placeholder="计划货量"
+                      :disabled="disabled"
+                      v-input-limit="2"
+                    />
+                  </template>
+                </el-table-column>
+                <el-table-column
+                  label="已调度货量"
+                  align="center"
+                  prop="cntrPlanQty"
+                >
+                  <template slot-scope="scope">
+                    <el-input
+                      v-model="scope.row.cntrPlanQty"
+                      placeholder="已调度货量"
+                      :disabled="true"
+                    />
+                  </template>
+                </el-table-column>
+                <el-table-column
+                  label="已派车货量"
+                  align="center"
+                  prop="planQty"
+                >
+                  <template slot-scope="scope">
+                    <el-input
+                      v-model="scope.row.planQty"
+                      placeholder="已派车货量"
+                      :disabled="true"
+                    />
+                  </template>
+                </el-table-column>
+                <el-table-column label="备注" align="center" prop="remarks">
+                  <template slot-scope="scope">
+                    <el-input
+                      v-model="scope.row.remarks"
+                      placeholder="备注"
+                      :disabled="disabled"
+                    />
+                  </template>
+                </el-table-column>
+
+                <el-table-column
+                  label="操作"
+                  align="center"
+                  class-name="small-padding fixed-width"
+                  width="100"
+                >
+                  <template slot-scope="scope">
+                    <el-button
+                      size="mini"
+                      type="text"
+                      icon="el-icon-delete"
+                      @click.native.prevent="
+                        deleteplansRow(scope.$index, planList, scope.row)
+                      "
+                      :disabled="disabled"
+                      v-hasPermi="['fleet:ftmsorderbills:edit']"
+                      >删除</el-button
+                    >
+                  </template>
+                </el-table-column>
+              </el-table>
+            </div>
+          </el-collapse-item>
+          <el-collapse-item name="2" v-if="userType == '00'">
+            <template slot="title">
+              <i class="header-icon el-icon-circle-plus" style="font-size: 16px"
+                ><span
+                  style="font-size: 16px; font-weight: bolder; margin-left: 5px"
+                  >调度安排</span
+                >
+              </i>
+            </template>
+            <div>
+              <div
+                style="
+                  display: flex;
+                  justify-content: space-between;
+                  margin: 10px 0;
+                "
+              >
+                <div>
+                  <el-button
+                    type="primary"
+                    icon="el-icon-plus"
+                    size="mini"
+                    @click="addschedulingRow(schedulingList)"
+                    :disabled="disabled"
+                    v-hasPermi="['fleet:ftmsorderbills:edit']"
+                    >添加</el-button
+                  >
+                </div>
+              </div>
+              <el-table :data="schedulingList">
+                <el-table-column label="箱型" align="center" prop="cntrId">
+                  <template slot-scope="scope">
+                    <el-select
+                      v-model="scope.row.cntrId"
+                      placeholder="请选择箱型"
+                      :disabled="scope.row.billStatus >= 6"
+                      @change="checkPid(scope.row)"
+                    >
+                      <el-option
+                        v-for="(dict, index) in cntrId2List"
+                        :key="index.dictValue"
+                        :label="dict.dictLabel"
+                        :value="dict.dictValue"
+                      />
+                    </el-select>
+                  </template>
+                </el-table-column>
+
+                <el-table-column
+                  label="车队名称"
+                  align="center"
+                  prop="carcorPid"
+                >
+                  <template slot-scope="scope">
+                    <el-select
+                      v-model="scope.row.carcorPid"
+                      placeholder="请输入车队名称"
+                      :clearable="true"
+                      filterable
+                      :disabled="scope.row.billStatus >= 6"
+                    >
+                      <el-option
+                        v-for="(dict, index) in companyList"
+                        :key="index.fId"
+                        :label="dict.fName"
+                        :value="dict.fId"
+                      />
+                    </el-select>
+                  </template>
+                </el-table-column>
+
+                <el-table-column
+                  label="调度安排货量"
+                  align="center"
+                  prop="cntrQty"
+                  :disabled="disabled"
+                >
+                  <template slot-scope="scope">
+                    <el-input
+                      v-model="scope.row.cntrQty"
+                      placeholder="调度安排货量"
+                      v-input-limit="2"
+                      :disabled="scope.row.billStatus >= 6"
+                    />
+                  </template>
+                </el-table-column>
+                <el-table-column
+                  label="已派车货量"
+                  align="center"
+                  prop="carQty"
+                >
+                  <template slot-scope="scope">
+                    <el-input
+                      v-model="scope.row.carQty"
+                      placeholder="已派车货量"
+                      :disabled="true"
+                    />
+                  </template>
+                </el-table-column>
+                <el-table-column label="备注" align="center" prop="remarks">
+                  <template slot-scope="scope">
+                    <el-input
+                      v-model="scope.row.remarks"
+                      placeholder="备注"
+                      :disabled="scope.row.billStatus >= 6"
+                    />
+                  </template>
+                </el-table-column>
+
+                <el-table-column
+                  label="操作"
+                  align="center"
+                  class-name="small-padding fixed-width"
+                  width="200"
+                >
+                  <template slot-scope="scope">
+                    <el-button
+                      size="mini"
+                      type="text"
+                      icon="el-icon-delete"
+                      @click.native.prevent="
+                        delplansRow(scope.$index, schedulingList, scope.row)
+                      "
+                      :disabled="scope.row.billStatus >= 6"
+                      v-hasPermi="['fleet:ftmsorderbills:edit']"
+                      >删除</el-button
+                    >
+                    <el-button
+                      size="mini"
+                      type="text"
+                      icon="el-icon-document-checked"
+                      @click.native.prevent="addplansRow(scope.row)"
+                      :disabled="scope.row.billStatus >= 6"
+                      >提交</el-button
+                    >
+                    <el-button
+                      size="mini"
+                      type="text"
+                      icon="el-icon-document-delete"
+                      @click.native.prevent="
+                        revokeplansRow(scope.$index, schedulingList, scope.row)
+                      "
+                      :disabled="
+                        scope.row.billStatus < 6 || !scope.row.billStatus
+                      "
+                      >撤销</el-button
+                    >
+                    <el-button
+                      size="mini"
+                      type="text"
+                      icon="el-icon-refresh"
+                      @click.native.prevent="changeplansRow(scope.row)"
+                      :disabled="
+                        scope.row.billStatus < 6 || !scope.row.billStatus
+                      "
+                      >变更</el-button
+                    >
+                  </template>
+                </el-table-column>
+              </el-table>
+            </div>
+          </el-collapse-item>
+
+          <el-collapse-item name="3" v-if="userType == '00'">
+            <template slot="title">
+              <i class="header-icon el-icon-circle-plus" style="font-size: 16px"
+                ><span
+                  style="font-size: 16px; font-weight: bolder; margin-left: 5px"
+                  >收款信息</span
+                >
+              </i>
+            </template>
+            <div>
+              <div
+                style="
+                  display: flex;
+                  justify-content: space-between;
+                  margin: 10px 0;
+                "
+              >
+                <div>
+                  <el-button
+                    type="primary"
+                    icon="el-icon-plus"
+                    size="mini"
+                    @click="addDListRow(DList)"
+                    :disabled="disabled"
+                    v-hasPermi="['fleet:ftmsorderbills:edit']"
+                    >添加</el-button
+                  >
+                </div>
+              </div>
+              <el-table :data="DList">
+                <el-table-column label="结算单位" align="center" prop="fCorpid">
+                  <template slot-scope="scope">
+                    <el-select
+                      v-model="scope.row.fCorpid"
+                      placeholder="结算单位"
+                      :clearable="true"
+                      filterable
+                      :disabled="disabled"
+                    >
+                      <el-option
+                        v-for="(dict, index) in fMblnoOptions"
+                        :key="index.fId"
+                        :label="dict.fName"
+                        :value="dict.fId"
+                      />
+                    </el-select>
+                  </template>
+                </el-table-column>
+
+                <el-table-column label="费用名称" align="center" prop="fFeeid">
+                  <template slot-scope="scope">
+                    <el-select
+                      v-model="scope.row.fFeeid"
+                      placeholder="费用名称"
+                      clearable
+                      filterable
+                      :disabled="disabled"
+                    >
+                      <el-option
+                        v-for="(dict, index) in fWbuOptions"
+                        :key="index.fId"
+                        :label="dict.fName"
+                        :value="dict.fId"
+                      />
+                    </el-select>
+                  </template>
+                </el-table-column>
+                <el-table-column
+                  label="计费单位"
+                  align="center"
+                  prop="fFeeunitid"
+                >
+                  <template slot-scope="scope">
+                    <el-select
+                      v-model="scope.row.fFeeunitid"
+                      placeholder="计费单位"
+                      :disabled="disabled"
+                    >
+                      <el-option
+                        v-for="(dict, index) in ffeeunitidList"
+                        :key="index.dictValue"
+                        :label="dict.dictLabel"
+                        :value="dict.dictValue"
+                      />
+                    </el-select>
+                  </template>
+                </el-table-column>
+                <el-table-column label="计费数量" align="center" prop="fQty">
+                  <template slot-scope="scope">
+                    <el-input
+                      v-model="scope.row.fQty"
+                      placeholder="计费数量"
+                      v-input-limit="0"
+                      :disabled="disabled"
+                      @input="total(scope.row)"
+                    />
+                  </template>
+                </el-table-column>
+                <el-table-column label="单价" align="center" prop="fUnitprice">
+                  <template slot-scope="scope">
+                    <el-input
+                      v-model="scope.row.fUnitprice"
+                      placeholder="单价"
+                      v-input-limit="2"
+                      :disabled="disabled"
+                      @input="total(scope.row)"
+                    />
+                  </template>
+                </el-table-column>
+                <el-table-column label="币种" align="center" prop="fCurrency">
+                  <template slot-scope="scope">
+                    <el-input
+                      v-model="scope.row.fCurrency"
+                      placeholder="RMB"
+                      :disabled="true"
+                    />
+                  </template>
+                </el-table-column>
+                <el-table-column label="汇率" align="center" prop="fExrate">
+                  <template slot-scope="scope">
+                    <el-input
+                      v-model="scope.row.fExrate"
+                      placeholder="汇率"
+                      v-input-limit="2"
+                      :disabled="disabled"
+                    />
+                  </template>
+                </el-table-column>
+                <el-table-column label="金额" align="center" prop="fAmount">
+                  <template slot-scope="scope">
+                    <el-input
+                      v-model="scope.row.fAmount"
+                      placeholder="金额"
+                      v-input-limit="2"
+                      :disabled="true"
+                    />
+                  </template>
+                </el-table-column>
+                <el-table-column label="税率" align="center" prop="fTaxrate">
+                  <template slot-scope="scope">
+                    <el-input
+                      v-model="scope.row.fTaxrate"
+                      placeholder="税率"
+                      v-input-limit="2"
+                      :disabled="disabled"
+                    />
+                  </template>
+                </el-table-column>
+
+                <el-table-column label="备注" align="center" prop="remarks">
+                  <template slot-scope="scope">
+                    <el-input
+                      v-model="scope.row.remarks"
+                      placeholder="备注"
+                      :disabled="disabled"
+                    />
+                  </template>
+                </el-table-column>
+
+                <el-table-column
+                  label="操作"
+                  align="center"
+                  class-name="small-padding fixed-width"
+                  width="100"
+                >
+                  <template slot-scope="scope">
+                    <el-button
+                      size="mini"
+                      type="text"
+                      icon="el-icon-delete"
+                      @click.native.prevent="deleteRow(scope.$index, DList)"
+                      :disabled="disabled"
+                      v-hasPermi="['fleet:ftmsorderbills:edit']"
+                      >删除</el-button
+                    >
+                  </template>
+                </el-table-column>
+              </el-table>
+            </div>
+          </el-collapse-item>
+          <el-collapse-item name="4" v-if="userType == '00'">
+            <template slot="title">
+              <i class="header-icon el-icon-circle-plus" style="font-size: 16px"
+                ><span
+                  style="font-size: 16px; font-weight: bolder; margin-left: 5px"
+                  >付款信息</span
+                >
+              </i>
+            </template>
+            <div>
+              <div
+                style="
+                  display: flex;
+                  justify-content: space-between;
+                  margin: 10px 0;
+                "
+              >
+                <div>
+                  <el-button
+                    type="primary"
+                    icon="el-icon-plus"
+                    size="mini"
+                    @click="addDListRow(CList)"
+                    :disabled="disabled"
+                    v-hasPermi="['fleet:ftmsorderbills:edit']"
+                    >添加</el-button
+                  >
+                </div>
+              </div>
+              <el-table :data="CList">
+                <el-table-column label="结算单位" align="center" prop="fCorpid">
+                  <template slot-scope="scope">
+                    <el-select
+                      v-model="scope.row.fCorpid"
+                      placeholder="结算单位"
+                      :clearable="true"
+                      filterable
+                      :disabled="disabled"
+                    >
+                      <el-option
+                        v-for="(dict, index) in fMblnoOptions"
+                        :key="index.fId"
+                        :label="dict.fName"
+                        :value="dict.fId"
+                      />
+                    </el-select>
+                  </template>
+                </el-table-column>
+
+                <el-table-column label="费用名称" align="center" prop="fFeeid">
+                  <template slot-scope="scope">
+                    <el-select
+                      v-model="scope.row.fFeeid"
+                      placeholder="费用名称"
+                      clearable
+                      filterable
+                      :disabled="disabled"
+                    >
+                      <el-option
+                        v-for="(dict, index) in fWbuOptions"
+                        :key="index.fId"
+                        :label="dict.fName"
+                        :value="dict.fId"
+                      />
+                    </el-select>
+                  </template>
+                </el-table-column>
+                <el-table-column
+                  label="计费单位"
+                  align="center"
+                  prop="fFeeunitid"
+                >
+                  <template slot-scope="scope">
+                    <el-select
+                      v-model="scope.row.fFeeunitid"
+                      placeholder="计费单位"
+                      :disabled="disabled"
+                    >
+                      <el-option
+                        v-for="(dict, index) in ffeeunitidList"
+                        :key="index.dictValue"
+                        :label="dict.dictLabel"
+                        :value="dict.dictValue"
+                      />
+                    </el-select>
+                  </template>
+                </el-table-column>
+                <el-table-column label="计费数量" align="center" prop="fQty">
+                  <template slot-scope="scope">
+                    <el-input
+                      v-model="scope.row.fQty"
+                      placeholder="计费数量"
+                      v-input-limit="0"
+                      :disabled="disabled"
+                      @input="total(scope.row)"
+                    />
+                  </template>
+                </el-table-column>
+                <el-table-column label="单价" align="center" prop="fUnitprice">
+                  <template slot-scope="scope">
+                    <el-input
+                      v-model="scope.row.fUnitprice"
+                      placeholder="单价"
+                      v-input-limit="2"
+                      :disabled="disabled"
+                      @input="total(scope.row)"
+                    />
+                  </template>
+                </el-table-column>
+                <el-table-column label="币种" align="center" prop="fCurrency">
+                  <template slot-scope="scope">
+                    <el-input
+                      v-model="scope.row.fCurrency"
+                      placeholder="RMB"
+                      :disabled="true"
+                    />
+                  </template>
+                </el-table-column>
+                <el-table-column label="汇率" align="center" prop="fExrate">
+                  <template slot-scope="scope">
+                    <el-input
+                      v-model="scope.row.fExrate"
+                      placeholder="汇率"
+                      v-input-limit="2"
+                      :disabled="disabled"
+                    />
+                  </template>
+                </el-table-column>
+                <el-table-column label="金额" align="center" prop="fAmount">
+                  <template slot-scope="scope">
+                    <el-input
+                      v-model="scope.row.fAmount"
+                      placeholder="金额"
+                      v-input-limit="2"
+                      :disabled="true"
+                    />
+                  </template>
+                </el-table-column>
+                <el-table-column label="税率" align="center" prop="fTaxrate">
+                  <template slot-scope="scope">
+                    <el-input
+                      v-model="scope.row.fTaxrate"
+                      placeholder="税率"
+                      v-input-limit="2"
+                      :disabled="disabled"
+                    />
+                  </template>
+                </el-table-column>
+
+                <el-table-column label="备注" align="center" prop="remarks">
+                  <template slot-scope="scope">
+                    <el-input
+                      v-model="scope.row.remarks"
+                      placeholder="备注"
+                      :disabled="disabled"
+                    />
+                  </template>
+                </el-table-column>
+
+                <el-table-column
+                  label="操作"
+                  align="center"
+                  class-name="small-padding fixed-width"
+                  width="100"
+                >
+                  <template slot-scope="scope">
+                    <el-button
+                      size="mini"
+                      type="text"
+                      icon="el-icon-delete"
+                      @click.native.prevent="deleteRow(scope.$index, DList)"
+                      :disabled="disabled"
+                      v-hasPermi="['fleet:ftmsorderbills:edit']"
+                      >删除</el-button
+                    >
+                  </template>
+                </el-table-column>
+              </el-table>
+            </div>
+          </el-collapse-item>
+          <el-collapse-item name="5">
+            <template slot="title">
+              <i class="header-icon el-icon-circle-plus" style="font-size: 16px"
+                ><span
+                  style="font-size: 16px; font-weight: bolder; margin-left: 5px"
+                  >附件上传</span
+                >
+              </i>
+            </template>
+            <div>
+              <div
+                style="
+                  display: flex;
+                  justify-content: space-between;
+                  margin: 10px 0;
+                "
+              >
+                <div>
+                  <el-button
+                    type="primary"
+                    icon="el-icon-plus"
+                    size="mini"
+                    @click="addRelevt"
+                    :disabled="disabled"
+                    v-hasPermi="['fleet:ftmsorderbills:edit']"
+                    >添加</el-button
+                  >
+                </div>
+              </div>
+              <el-table
+                :data="relevantAttachments"
+                tooltip-effect="dark"
+                border
+                stripe
+                style="width: 100%"
+                height="150"
+              >
+                <el-table-column label="序号" type="index" width="80">
+                </el-table-column>
+                <el-table-column
+                  prop="attachName"
+                  header-align="center"
+                  align="center"
+                  label="附件名称"
+                >
+                  <template slot-scope="scope">
+                    <el-input
+                      v-model="scope.row.attachName"
+                      placeholder="附件名称"
+                      show-word-limit
+                      :disabled="disabled"
+                    />
+                  </template>
+                </el-table-column>
+                <el-table-column
+                  prop="createBy "
+                  header-align="center"
+                  align="center"
+                  label="上传人"
+                >
+                  <template slot-scope="scope">
+                    <el-input
+                      v-model="scope.row.createBy"
+                      placeholder="上传人"
+                      show-word-limit
+                      :disabled="disabled"
+                    />
+                  </template>
+                </el-table-column>
+                <el-table-column
+                  prop="createTime"
+                  header-align="center"
+                  align="center"
+                  label="上传时间"
+                >
+                  <template slot-scope="scope">
+                    <el-date-picker
+                      v-model="scope.row.createTime"
+                      type="datetime"
+                      disabled
+                      placeholder="上传时间"
+                    ></el-date-picker>
+                  </template>
+                </el-table-column>
+                <el-table-column
+                  prop="attachUrl"
+                  header-align="center"
+                  align="center"
+                  label="上传附件"
+                >
+                  <template slot-scope="scope">
+                    <div style="display: flex; justify-content: center">
+                      <el-upload
+                        class="upload-demo"
+                        :action="uploadImgUrl"
+                        :on-success="
+                          (res, file) => {
+                            handleSucces(scope, res, file);
+                          }
+                        "
+                        :headers="headers"
+                        :disabled="disabled"
+                        :show-file-list="false"
+                        :limit="1"
+                      >
+                        <el-button size="small" type="text" :disabled="disabled"
+                          >点击上传</el-button
+                        >
+                      </el-upload>
+                      <el-button
+                        size="small"
+                        type="text"
+                        @click="checkFile(scope)"
+                        :disabled="disabled"
+                        style="margin-left: 10px"
+                        >查看</el-button
+                      >
+                      <el-button
+                        size="small"
+                        type="text"
+                        :disabled="disabled"
+                        @click="deleteFile(scope)"
+                        v-hasPermi="['fleet:ftmsorderbills:edit']"
+                        >删除</el-button
+                      >
+                    </div>
+                  </template>
+                </el-table-column>
+                <el-table-column
+                  header-align="center"
+                  align="center"
+                  label="操作"
+                  width="130PX"
+                >
+                  <template slot-scope="scope">
+                    <el-button
+                      size="mini"
+                      type="text"
+                      icon="el-icon-delete"
+                      @click.native.prevent="
+                        deleteRow(scope.$index, relevantAttachments)
+                      "
+                      :disabled="disabled"
+                      v-hasPermi="['fleet:ftmsorderbills:edit']"
+                      >删除</el-button
+                    >
+                  </template>
+                </el-table-column>
+              </el-table>
+            </div>
+          </el-collapse-item>
+        </el-collapse>
+      </el-form>
+    </span>
+    <span slot="footer" class="dialog-footer">
+      <el-button type="primary" @click="submitForm" :disabled="disabled"
+        >提 交</el-button
+      >
+      <!-- <el-button type="success" @click="submitFix">修改</el-button> -->
+      <el-button
+        type="success"
+        @click="submitAllowChanges"
+        :disabled="!this.form.billStatus"
+        v-hasPermi="['fleet:ftmsorderbills:edit']"
+        >修 改</el-button
+      >
+      <el-button type="info" @click="submitSave" :disabled="disabled" v-hasPermi="['fleet:ftmsorderbills:edit']"
+        >保 存</el-button
+      >
+      <el-button
+        type="warning"
+        @click="submitRetreat"
+        :disabled="!this.form.billStatus"
+        v-hasPermi="['fleet:ftmsorderbills:edit']"
+        >撤 回</el-button
+      >
+      <el-button @click="showDialog = false">取 消</el-button>
+    </span>
+  </el-dialog>
+</template>
+
+<script>
+import {
+  addFtmsorderbills,
+  RetreatFtmsorderbills,
+  allowChangesFtmsorderbills,
+  updateFtmsorderbills,
+  planChangeFtmsorderbills,
+} from "@/api/fleet/ftmsorderbills";
+import {
+  singleaddFtmsorderbillsplans,
+  revokeFtmsorderbillsplans,
+  removeFtmsorderbillsplans,
+  changeFtmsorderbillsplans,
+  planChangeFtmsorderbillsplans,
+} from "@/api/fleet/ftmsorderbillsplans";
+import { getBasicInformation } from "@/api/kaihe/basicdata/container";
+import { company } from "@/api/fleet/carManage";
+import { listGoods } from "@/api/basicdata/goods";
+import { listCorps } from "@/api/basicdata/corps";
+import { listFees } from "@/api/basicdata/fees";
+import UploadFile from "@/components/Uploadfile";
+import Cookies from "js-cookie";
+import { getToken } from "@/utils/auth";
+export default {
+  name: "plans",
+  props: {
+    addOrUpdateVisible: {
+      type: Boolean,
+      default: false,
+    },
+    title: {
+      type: String,
+      required: "",
+    },
+    form: Object,
+    disabled: {
+      type: Boolean,
+      default: false,
+    },
+    disabled2: {
+      type: Boolean,
+      default: false,
+    },
+    planList: {
+      type: Array,
+      default: [],
+    },
+    DList: {
+      type: Array,
+      default: [],
+    },
+    CList: {
+      type: Array,
+      default: [],
+    },
+    schedulingList: {
+      type: Array,
+      default: [],
+    },
+    collapses: {
+      type: Array,
+      default: [],
+    },
+    relevantAttachments: {
+      type: Array,
+      default: [],
+    },
+  },
+  components: {
+    UploadFile,
+  },
+  data() {
+    return {
+      dcList: [
+        {
+          value: "D",
+          label: "收款",
+        },
+        {
+          value: "C",
+          label: "付款",
+        },
+      ],
+      currencyList: [
+        {
+          value: "RMB",
+          label: "RMB",
+        },
+      ],
+      // 控制弹出框显示隐藏
+      showDialog: false,
+      // 表单校验
+      rules: {
+        corpId: [
+          { required: true, message: "请输入客户名称", trigger: "blur" },
+        ],
+        billType: [
+          { required: true, message: "请选择业务类型", trigger: "blur" },
+        ],
+        transType: [
+          { required: true, message: "请选择运输方式", trigger: "blur" },
+        ],
+        loadAddr: [
+          { required: true, message: "请输入提箱地点", trigger: "blur" },
+        ],
+        loadAttntel: [
+          {
+            pattern: /^((0\d{2,3}-\d{7,8})|(1[0123456789]\d{9}))$/,
+            message: "请正确输入手机号",
+            trigger: "blur",
+          },
+        ],
+        mdLoadAttnTel: [
+          {
+            pattern: /^((0\d{2,3}-\d{7,8})|(1[0123456789]\d{9}))$/,
+            message: "请正确输入手机号",
+            trigger: "blur",
+          },
+        ],
+        unLoadAttnTel: [
+          {
+            pattern: /^((0\d{2,3}-\d{7,8})|(1[0123456789]\d{9}))$/,
+            message: "请正确输入手机号",
+            trigger: "blur",
+          },
+        ],
+      },
+      billTypeList: [],
+      transTypeList: [],
+      transPropList: [],
+      goodsLossTypeList: [],
+      cntrIdList: [],
+      priceTypeList: [],
+      userType: null,
+      username: null,
+      fMblnoOptions: [],
+      cntrId2List: [],
+      goodsOptions: [],
+      fWbuOptions: [],
+      ffeeunitidList: [],
+      collapses2: [],
+      polList: [],
+      podList: [],
+      companyList: [],
+      uploadImgUrl: process.env.VUE_APP_BASE_API + "/common/upload", // 上传的图片服务器地址
+      headers: {
+        Authorization: "Bearer " + getToken(),
+      },
+    };
+  },
+  created() {
+    this.getDicts("data_billType").then((response) => {
+      this.billTypeList = response.data;
+    });
+    this.getDicts("data_transType").then((response) => {
+      this.transTypeList = response.data;
+    });
+    this.getDicts("data_transProp").then((response) => {
+      this.transPropList = response.data;
+    });
+    this.getDicts("data_goodsLossType").then((response) => {
+      this.goodsLossTypeList = response.data;
+    });
+    this.getDicts("data_cntrId").then((response) => {
+      response.data.map((e) => (e.noOption = false));
+      this.cntrIdList = response.data;
+    });
+    this.getDicts("data_priceType").then((response) => {
+      this.priceTypeList = response.data;
+    });
+    this.getDicts("data_ffeeunitid").then((response) => {
+      this.ffeeunitidList = response.data;
+    });
+    // this.getDicts("port_start").then((response) => {
+    //   this.polList = response.data;
+    // });
+    // this.getDicts("port_end").then((response) => {
+    //   this.podList = response.data;
+    // });
+    listCorps().then((response) => {
+      this.fMblnoOptions = response.rows;
+    });
+    listGoods().then((response) => {
+      this.goodsOptions = response.rows;
+    });
+    listFees().then((response) => {
+      this.fWbuOptions = response.rows;
+    });
+    company({
+      fStatus: 0,
+    }).then((response) => {
+      this.companyList = response.rows;
+    });
+    getBasicInformation({
+      fTypes: 1,
+      fStatus: "T",
+    }).then((response) => {
+      this.polList = response;
+      this.podList = response;
+    });
+    this.userType = Cookies.get("userType");
+    this.username = Cookies.get("userName");
+  },
+  methods: {
+    //选中时赋值pid
+    checkPid(row) {
+      let arr = this.planList;
+      let arr2 = arr.filter((e) => e.cntrId == row.cntrId);
+      row["pid"] = arr2[0].id;
+    },
+    noMorecntrId(e) {
+      this.cntrIdList.forEach((item) => (item.noOption = false));
+      let arrIds = e.map((item) => item.cntrId);
+      this.cntrIdList
+        .filter((item) => arrIds.indexOf(item.dictValue) > -1)
+        .forEach((item) => (item.noOption = true));
+    },
+    showSure(val) {
+      let pidList = val.filter((e) => e.pid != null);
+      let arr1 = pidList;
+      let arr1Ids = arr1.map((item) => item.cntrId);
+      arr1Ids = [...new Set(arr1Ids)];
+      let arr2 = this.cntrIdList;
+      this.cntrId2List = arr2.filter(
+        (item) => arr1Ids.indexOf(item.dictValue) > -1
+      );
+    },
+    // 新增附件上传
+    addRelevt() {
+      this.relevantAttachments.push({
+        attachUrl: null,
+        attachName: null,
+        createBy: this.username,
+        createTime: Date.parse(new Date()),
+      });
+    },
+    //附件删除
+    deleteFile(scope) {
+      this.relevantAttachments[scope.$index].attachName = "";
+      this.relevantAttachments[scope.$index].attachUrl = "";
+      if (this.relevantAttachments[scope.$index].attachUrl === "") {
+        this.$message.success("删除成功");
+      } else {
+        this.$message.error("未知错误,删除失败");
+      }
+    },
+    //附件查看
+    checkFile(scope) {
+      if (this.relevantAttachments[scope.$index].attachUrl) {
+        window.open(this.relevantAttachments[scope.$index].attachUrl);
+      } else {
+        this.$message.error("请上传附件");
+      }
+    },
+    //附件上传
+    handleSucces(scope, res, file) {
+      this.relevantAttachments[scope.$index].attachName = res.fileName;
+      this.relevantAttachments[scope.$index].attachUrl = res.url;
+      if (this.relevantAttachments[scope.$index].attachUrl === "") {
+        this.$message.error("上传失败");
+      } else {
+        this.$message.success("上传成功");
+      }
+    },
+    // 添加行
+    addRow(tableData, event) {
+      var obj = {};
+      tableData.push(obj);
+    },
+    addDListRow(tableData, event) {
+      var obj = { fcorpid: this.form.corpId, fcurrency: "RMB", fExrate: "1" };
+      tableData.push(obj);
+    },
+    //删除行
+    deleteRow(index, rows) {
+      rows.splice(index, 1);
+    },
+    deleteplansRow(index, rows, row) {
+      let arr = this.schedulingList;
+      let arr2 = arr.filter((e) => e.cntrId == row.cntrId && e.cntrId != null);
+      if (arr2.length != 0) {
+        this.$message.error("调度安排已插入此箱型数据,不能删除");
+      } else {
+        this.cntrIdList
+          .filter((item) => item.dictValue == row.cntrId)
+          .forEach((item) => (item.noOption = false));
+        rows.splice(index, 1);
+      }
+    },
+    // 上传成功返回数据
+    showFile(row) {
+      for (let list in this.relevantAttachments) {
+        this.$set(this.relevantAttachments[list], "attachUrl", row.url);
+        this.$set(this.relevantAttachments[list], "attachName", row.fileName);
+      }
+    },
+    // 弹出框关闭后触发
+    handleClose() {
+      // 子组件调用父组件方法,并传递参数
+      this.$emit("changeShow", "false");
+      this.cntrIdList.forEach((item) => (item.noOption = false));
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate((valid) => {
+        if (valid) {
+          let arr = this.schedulingList.filter((e) => e.billStatus >= 6);
+          if (this.schedulingList.length == arr.length) {
+            if (this.form.billStatus != 5) {
+              this.form["billStatus"] = "6";
+            }
+            this.DList.map((e) => {
+              return (e.fDc = "D");
+            });
+            this.CList.map((e) => {
+              return (e.fDc = "C");
+            });
+            if (this.planList) {
+              let arr2 = [];
+              this.planList.map((e) => {
+                let arr = this.cntrIdList.filter(
+                  (item) => item.dictValue == e.cntrId
+                );
+                arr.map((a) => {
+                  arr2.push(a.dictLabel + "*" + e.cntrQty);
+                });
+              });
+              this.cntrDesc = [...new Set(arr2)].join(",");
+            }
+            this.form["cntrDesc"] = this.cntrDesc;
+            let formData = new window.FormData();
+            console.log(this.form);
+            formData.append("tmsorder", JSON.stringify(this.form));
+            formData.append(
+              "attachs",
+              JSON.stringify(this.relevantAttachments)
+            );
+            formData.append("scntrs", JSON.stringify(this.planList));
+            formData.append(
+              "fees",
+              JSON.stringify(this.DList.concat(this.CList))
+            );
+            formData.append("plans", JSON.stringify(this.schedulingList));
+            if (this.form.billStatus != 5) {
+              addFtmsorderbills(formData).then((response) => {
+                this.msgSuccess("提交成功");
+                this.$parent.getList();
+                this.showDialog = false;
+              });
+            } else {
+              planChangeFtmsorderbills(formData).then((response) => {
+                this.msgSuccess("修改成功");
+                this.$parent.getList();
+                this.showDialog = false;
+              });
+            }
+          } else {
+            // this.msgSuccess("调度安排中有未提交的数据");
+            this.$message.error("请先提交调度安排的派车信息");
+          }
+        }
+      });
+    },
+    //保存
+    submitSave() {
+      this.form["billStatus"] = "2";
+      this.DList.map((e) => {
+        return (e.fDc = "D");
+      });
+      this.CList.map((e) => {
+        return (e.fDc = "C");
+      });
+      let formData = new window.FormData();
+      formData.append("tmsorder", JSON.stringify(this.form));
+      formData.append("attachs", JSON.stringify(this.relevantAttachments));
+      formData.append("scntrs", JSON.stringify(this.planList));
+      formData.append("fees", JSON.stringify(this.DList.concat(this.CList)));
+      formData.append("plans", JSON.stringify(this.schedulingList));
+      addFtmsorderbills(formData).then((response) => {
+        if (response.code == 200) {
+          this.msgSuccess("保存成功");
+          this.$parent.getList();
+          this.$parent.getSave(response);
+        } else {
+          this.$message.error("保存失败");
+        }
+      });
+    },
+    //撤回
+    submitRetreat() {
+      if (this.form.billStatus >= 6) {
+        const data = { id: this.form.id, actId: 1000 };
+        RetreatFtmsorderbills(data).then((response) => {
+          if (response.code == 200) {
+            this.msgSuccess("撤回成功");
+            this.$parent.getList();
+            this.$set(this.form, "billStatus", 3);
+            this.$emit("fixDisabled", "false");
+          }
+        });
+      } else {
+        this.$message.error("单据未提交,不能进行撤销");
+      }
+    },
+    //修改
+    submitAllowChanges() {
+      if (this.form.billStatus < 6) {
+        this.$emit("fixDisabled", "false");
+        this.msgSuccess("允许修改");
+      } else {
+        this.$confirm("该单据已经提交,是否进行变更操作?", "提示", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning",
+        })
+          .then(() => {
+            const data = { id: this.form.id, actId: 1000 };
+            allowChangesFtmsorderbills(data).then((response) => {
+              if (response.code == 200) {
+                this.$emit("fixDisabled", "false");
+                this.msgSuccess("允许修改");
+                this.$set(this.form, "billStatus", 5);
+              } else {
+                this.$message.error("不允许修改");
+              }
+            });
+          })
+          .catch(() => {
+            this.$message({
+              type: "info",
+              message: "已取消",
+            });
+          });
+      }
+    },
+    //调度安排新增
+    addschedulingRow(tableData, event) {
+      const pidList = this.planList.filter((e) => e.pid != null);
+      if (
+        this.planList.length == 0 ||
+        Object.keys(this.planList[0]).length == 0
+      ) {
+        this.$message.error("至少添加一条计划货量");
+      } else if (pidList.length != this.planList.length) {
+        this.$confirm("计划货量存在未保存数据,是否保存?", "提示", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning",
+        })
+          .then(() => {
+            this.submitSave();
+          })
+          .catch(() => {
+            this.$message({
+              type: "info",
+              message: "已取消保存",
+            });
+          });
+      } else {
+        var obj = {};
+        tableData.push(obj);
+        this.showSure(this.planList);
+      }
+    },
+    //单条订单调度提交
+    addplansRow(row) {
+      let formData = new window.FormData();
+      formData.append("tmsorder", JSON.stringify(this.form));
+      formData.append("plans", JSON.stringify(row));
+      if (row.billStatus == 5) {
+        planChangeFtmsorderbillsplans(formData).then((response) => {
+          this.msgSuccess("成功提交");
+          if (response.code == 200) {
+            this.$set(row, "billStatus", 6);
+            // this.$set(row, "disabled", true);
+            this.$set(row, "id", response.data.plan.id);
+            this.$set(row, "orgId", response.data.plan.orgId);
+            this.$parent.getSave2(response.data.cntrs);
+          }
+        });
+      } else if (row.billStatus != 6) {
+        singleaddFtmsorderbillsplans(formData).then((response) => {
+          this.msgSuccess("成功提交");
+          if (response.code == 200) {
+            this.$set(row, "billStatus", 6);
+            this.$set(row, "id", response.data.plan.id);
+            this.$set(row, "orgId", response.data.plan.orgId);
+            this.$parent.getSave2(response.data.cntrs);
+          }
+        });
+      } else {
+        this.$message.error("请勿重复提交");
+      }
+    },
+    delplansRow(index, rows, row) {
+      if (row.billStatus != 6 && row.id != null) {
+        removeFtmsorderbillsplans(row).then((response) => {
+          if (response.code == 200) {
+            rows.splice(index, 1);
+            this.msgSuccess("成功删除");
+          }
+        });
+      } else {
+        rows.splice(index, 1);
+      }
+    },
+    revokeplansRow(index, rows, row) {
+      if (row.billStatus == 6) {
+        revokeFtmsorderbillsplans(row).then((response) => {
+          if (response.code == 200) {
+            this.msgSuccess("成功撤回");
+            this.$set(row, "billStatus", 3);
+            this.$parent.getSave2(responsed.data.cntrs);
+          }
+        });
+      } else {
+        this.$message.error("此条数据没有提交,不能申请撤回");
+      }
+    },
+    changeplansRow(row) {
+      if (row.billStatus != 5) {
+        changeFtmsorderbillsplans(row).then((response) => {
+          if (response.code == 200) {
+            this.msgSuccess("允许变更");
+            this.$set(row, "billStatus", 5);
+          }
+        });
+      } else {
+        this.$message.error("请勿重复变更");
+      }
+    },
+    mbinput(val) {
+      this.form.mblno = val.toUpperCase();
+    },
+    total(row) {
+      if (row.fQty && row.fUnitprice) {
+        this.$set(row, "fAmount", (row.fQty * row.fUnitprice).toFixed(2));
+      } else {
+        this.$set(row, "fAmount", 0);
+      }
+    },
+  },
+  watch: {
+    // 监听 addOrUpdateVisible 改变
+    addOrUpdateVisible(oldVal, newVal) {
+      this.showDialog = this.addOrUpdateVisible;
+    },
+    planList(val) {
+      this.showSure(val);
+    },
+    collapses() {
+      this.collapses2 = this.collapses;
+    },
+  },
+};
+</script>

+ 913 - 0
src/views/Warehousing/inStock/index.vue

@@ -0,0 +1,913 @@
+<template>
+  <div class="app-container">
+    <el-form
+      :model="queryParams"
+      ref="queryForm"
+      v-show="showSearch"
+      label-width="100px"
+      size="small"
+    >
+      <el-row>
+        <el-col :span="6">
+          <el-form-item label-width="100px" label="业务编号" prop="fBillno">
+            <el-input
+              v-model="queryParams.fBillno"
+              placeholder="请输入业务编号"
+              clearable
+              @keyup.enter.native="handleQuery"
+              style="width: 200px"
+            />
+          </el-form-item>
+        </el-col>
+        <el-col :span="6">
+          <el-form-item label="制单人" prop="createBy">
+            <el-select
+              v-model="queryParams.createBy"
+              filterable
+              remote
+              clearable
+              reserve-keyword
+              placeholder="请输入关键词"
+              :remote-method="userremoteMethod"
+              :loading="selectloading"
+              style="width: 200px"
+            >
+              <el-option
+                v-for="(item, index) in userOptions"
+                :key="index.userName"
+                :label="item.nickName"
+                :value="item.userName"
+              >
+              </el-option>
+            </el-select>
+          </el-form-item>
+        </el-col>
+        <el-col :span="6">
+          <el-form-item label="贸易方式" prop="fTrademodeid">
+            <el-select
+              v-model="queryParams.fTrademodeid"
+              placeholder="请选择贸易方式"
+              clearable
+              @keyup.enter.native="handleQuery"
+              style="width: 200px"
+            >
+              <el-option
+                v-for="(item, index) in fTrademodeidOptions"
+                :key="index.dictValue"
+                :label="item.dictLabel"
+                :value="item.dictValue"
+              />
+            </el-select>
+          </el-form-item>
+        </el-col>
+        <el-col :span="6">
+          <el-form-item label="货权方" prop="fCorpid">
+            <el-select
+              v-model="queryParams.fCorpid"
+              clearable
+              filterable
+              remote
+              reserve-keyword
+              placeholder="请输入关键词"
+              :remote-method="corpremoteMethod"
+              :loading="selectloading"
+              style="width: 200px"
+            >
+              <el-option
+                v-for="(item, index) in fMblnoOptions"
+                :key="index.fId"
+                :label="item.fName"
+                :value="item.fId"
+              ></el-option>
+            </el-select>
+          </el-form-item>
+        </el-col>
+      </el-row>
+      <el-collapse-transition>
+        <div v-show="show">
+          <el-row>
+            <el-col :span="6">
+              <el-form-item label="提单号" prop="fMblno">
+                <el-input
+                  v-model="queryParams.fMblno"
+                  placeholder="请输入提单号"
+                  clearable
+                  style="width: 200px"
+                  @keyup.enter.native="handleQuery"
+                />
+              </el-form-item>
+            </el-col>
+            <el-col :span="6">
+              <el-form-item label="经营单位" prop="fSbu">
+                <el-select
+                  v-model="queryParams.fSbu"
+                  clearable
+                  filterable
+                  remote
+                  reserve-keyword
+                  placeholder="请输入关键词"
+                  :remote-method="corpremoteMethod"
+                  :loading="selectloading"
+                  style="width: 200px"
+                >
+                  <el-option
+                    v-for="(item, index) in fMblnoOptions"
+                    :key="index.fId"
+                    :label="item.fName"
+                    :value="item.fId"
+                  ></el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="6">
+              <el-form-item label="货物名称" prop="fGoodsid">
+                <el-select
+                  v-model="queryParams.fGoodsid"
+                  clearable
+                  filterable
+                  placeholder="请选择货物名称"
+                  style="width: 200px"
+                  @keyup.enter.native="handleQuery"
+                >
+                  <el-option
+                    v-for="(item, index) in goodsOptions"
+                    :key="index.fId"
+                    :label="item.fName"
+                    :value="item.fId"
+                  ></el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="6">
+              <el-form-item label="仓库" prop="fWarehouseid">
+                <el-select
+                  v-model="queryParams.fWarehouseid"
+                  clearable
+                  filterable
+                  placeholder="请选择仓库"
+                  style="width: 200px"
+                  @keyup.enter.native="handleQuery"
+                >
+                  <el-option
+                    v-for="(item, index) in warehouseOptions"
+                    :key="index.fId"
+                    :label="item.fName"
+                    :value="item.fId"
+                  ></el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="6">
+              <el-form-item label="品牌" prop="fMarks">
+                <el-input
+                  v-model="queryParams.fMarks"
+                  placeholder="请输入品牌"
+                  clearable
+                  style="width: 200px"
+                  @keyup.enter.native="handleQuery"
+                />
+              </el-form-item>
+            </el-col>
+            <el-col :span="6">
+              <el-form-item label="费用状态" prop="fBillstatus">
+                <el-select
+                  style="width: 200px"
+                  v-model="queryParams.fBillstatus"
+                  placeholder="请选择费用状态"
+                >
+                  <el-option label="录入" value="1"></el-option>
+                  <el-option label="暂存" value="2"></el-option>
+                  <el-option label="驳回" value="3"></el-option>
+                  <el-option label="请核" value="4"></el-option>
+                  <el-option label="审核中" value="5"></el-option>
+                  <el-option label="全部入账" value="6"></el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="6">
+              <el-form-item label="入库状态" prop="fItemsStatus">
+                <el-select
+                  style="width: 200px"
+                  v-model="queryParams.fItemsStatus"
+                  placeholder="请选择入库状态"
+                >
+                  <el-option label="计划" value="1"></el-option>
+                  <el-option label="待入库" value="2"></el-option>
+                  <el-option label="入库中" value="3"></el-option>
+                  <el-option label="已入库" value="4"></el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="6">
+              <el-form-item label="入库日期" prop="timeInterval">
+                <el-date-picker
+                  v-model="queryParams.timeInterval"
+                  type="daterange"
+                  value-format="yyyy-MM-dd"
+                  clearable
+                  style="width: 230px"
+                  range-separator="至"
+                  start-placeholder="开始日期"
+                  end-placeholder="结束日期"
+                  @keyup.enter.native="handleQuery"
+                >
+                </el-date-picker>
+              </el-form-item>
+            </el-col>
+          </el-row>
+        </div>
+      </el-collapse-transition>
+    </el-form>
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd(false)"
+          v-hasPermi="['warehouseBusiness:inStock:add']"
+          >新增
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['warehouseBusiness:inStock:edit']"
+          >修改
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-hasPermi="['warehouseBusiness:inStock:export']"
+          >导出
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          :disabled="multiple"
+          v-hasPermi="['warehouseBusiness:inStock:export']"
+          >导入
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="info"
+          icon="el-icon-download"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate(null, 2)"
+          v-hasPermi="['agreement:agreementStorage:export']"
+          >复制新增
+        </el-button>
+      </el-col>
+      <div class="tabSetting">
+        <right-toolbar
+          :showSearch.sync="showSearch"
+          @queryTable="getList"
+        ></right-toolbar>
+        <div style="margin: 0 12px">
+          <el-button
+            icon="el-icon-setting"
+            size="mini"
+            circle
+            @click="showSetting = !showSetting"
+          ></el-button>
+        </div>
+      </div>
+    </el-row>
+    <el-dialog
+      title="自定义列显示"
+      :visible.sync="showSetting"
+      width="700px"
+    >
+      <template slot="title">
+        <div class="avue-crud__dialog__header">
+          <span class="el-dialog__title">
+            <span
+              style="
+                display: inline-block;
+                width: 3px;
+                height: 20px;
+                margin-right: 5px;
+                float: left;
+                margin-top: 2px;
+              "
+            ></span>
+          </span>
+        </div>
+      </template>
+      <div>配置排序列数据(拖动调整顺序)</div>
+      <div style="margin-left: 17px">
+        <el-checkbox
+          v-model="allCheck"
+          label="全选"
+          @change="allChecked"
+        ></el-checkbox>
+      </div>
+      <div style="padding: 4px; display: flex; justify-content: center">
+        <draggable
+          v-model="setRowList"
+          group="site"
+          animation="300"
+          @start="onStart"
+          @end="onEnd"
+          handle=".indraggable"
+        >
+          <transition-group>
+            <div
+              v-for="item in setRowList"
+              :key="item.surface"
+              class="listStyle"
+            >
+              <div style="width: 500px" class="indraggable">
+                <div class="progress" :style="{ width: item.width + 'px' }">
+                  <el-checkbox
+                    :label="item.name"
+                    v-model="item.checked"
+                    :true-label="0"
+                    :false-label="1"
+                    >{{ item.name }}
+                  </el-checkbox>
+                </div>
+              </div>
+              <el-input-number
+                v-model.number="item.width"
+                controls-position="right"
+                :min="1"
+                :max="500"
+                size="mini"
+              ></el-input-number>
+            </div>
+          </transition-group>
+        </draggable>
+      </div>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="showSetting = false">取 消</el-button>
+        <el-button @click="delRow" type="danger">重 置</el-button>
+        <el-button type="primary" @click="save()">确 定</el-button>
+      </span>
+    </el-dialog>
+
+    <el-table
+      v-loading="loading"
+      :data="warehousebillsList"
+      @selection-change="handleSelectionChange"
+      show-summary
+      :summary-method="getSum"
+    >
+      <el-table-column type="selection" width="60" fixed align="center" />
+      <el-table-column type="index" label="行号" align="center" fixed />
+      <el-table-column
+        label="提单号"
+        width="220"
+        align="center"
+        :show-overflow-tooltip="true"
+        sortable
+        fixed="left"
+        prop="fMblno"
+      >
+        <template slot-scope="scope">
+          <el-link :underline="false" type="primary"
+            ><div @click="handleUpdate(scope.row)">
+              {{ scope.row.fMblno }}
+            </div></el-link
+          >
+        </template>
+      </el-table-column>
+      <el-table-column
+        v-for="(item, index) in getRowList"
+        :key="index"
+        :label="item.name"
+        :width="item.width"
+        :prop="item.label"
+        align="center"
+        :fixed="item.fixed"
+        :show-overflow-tooltip="true"
+        sortable
+      />
+      <el-table-column
+        label="操作"
+        align="center"
+        class-name="small-padding fixed-width"
+        min-width="180"
+      >
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row, true)"
+            v-hasPermi="['warehouseBusiness:inStock:edit']"
+            >查看
+          </el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            v-if="
+              scope.row.fBillstatus == '录入' ||
+              scope.row.fBillstatus == '暂存' ||
+              scope.row.fBillstatus == '驳回'
+            "
+            @click="handleUpdate(scope.row, false)"
+            v-hasPermi="['warehouseBusiness:inStock:edit']"
+            >修改
+          </el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            v-if="scope.row.fItemsStatus == '计划'"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['warehouseBusiness:inStock:remove']"
+            >删除
+          </el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            v-if="
+              scope.row.fBillstatus == '请核' ||
+              scope.row.fBillstatus == '审核中'
+            "
+            @click="handleUpdate(scope.row, true)"
+            >审核进度
+          </el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+    <pagination
+      v-show="total > 0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+  </div>
+</template>
+
+<script>
+import print from "print-js";
+import {
+  addWhgenleg,
+  addJoblist,
+  disChargelist,
+  updateCredit,
+  listWarehousebills,
+  getWarehousebills,
+  delWarehousebills,
+  addWarehousebills,
+  addWarehouse,
+  exportWarehousebills,
+  revoke,
+  revokeTwo,
+  delinStock_s,
+} from "@/api/warehouseBusiness/warehouseInStock";
+import { operationAgreement } from "@/api/agreement/agreement";
+import { listCorps } from "@/api/basicdata/corps";
+import { listFees, getFees } from "@/api/basicdata/fees";
+import {
+  listWarehouse,
+  treeselect,
+  listWarehousesss,
+} from "@/api/basicdata/warehouse";
+import { listGoods } from "@/api/basicdata/goods";
+import { listUser, queryUserVal } from "@/api/system/user";
+import ApprovalComments from "@/views/startApproval";
+import AddOrUpdate from "@/views/viewApproval";
+import Global from "@/layout/components/global";
+import Treeselect from "@riophae/vue-treeselect";
+import "@riophae/vue-treeselect/dist/vue-treeselect.css";
+import { getToken } from "@/utils/auth";
+import Cookies from "js-cookie";
+import { addSet, select, resetModule } from "@/api/system/set";
+import draggable from "vuedraggable";
+import Vue from "vue";
+export default {
+  name: "plans",
+  data() {
+    return {
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        fBillno: null,
+        createBy: null,
+        fTrademodeid: null,
+        fCorpid: null,
+        fMblno: null,
+        fSbu: null,
+        fGoodsid: null,
+        fWarehouseid: null,
+        fMarks: null,
+        fBillstatus: null,
+        fItemsStatus: null,
+        timeInterval: null,
+      },
+      selectloading: false,
+      // 显示搜索条件
+      showSearch: true,
+      userOptions: [],
+      fTrademodeidOptions: [],
+      warehouseOptions: [],
+      goodsOptions: [],
+      fMblnoOptions: [],
+      show: true,
+      drag: false,
+      tableDate: [
+        {
+          surface: "1",
+          label: "createBy",
+          name: "制单人",
+          checked: 0,
+          fixed: "left",
+          width: 100,
+        },
+        {
+          surface: "2",
+          label: "fItemsStatus",
+          name: "入库状态",
+          checked: 0,
+          fixed: "left",
+          width: 100,
+        },
+        {
+          surface: "3",
+          label: "fCorpid",
+          name: "货权方",
+          checked: 0,
+          fixed: "left",
+          width: 100,
+        },
+        {
+          surface: "5",
+          label: "fProductName",
+          name: "品名",
+          checked: 0,
+          fixed: "left",
+          width: 100,
+        },
+        {
+          surface: "6",
+          label: "fMarks",
+          name: "品牌",
+          checked: 0,
+          fixed: "left",
+          width: 100,
+        },
+        {
+          surface: "7",
+          label: "fBsdate",
+          name: "入库日期",
+          checked: 0,
+          fixed: "left",
+          width: 100,
+        },
+        {
+          surface: "8",
+          label: "fWarehouseid",
+          name: "仓库",
+          checked: 0,
+          width: 100,
+        },
+        {
+          surface: "9",
+          label: "fPlanqty",
+          name: "计划件数",
+          checked: 0,
+          width: 100,
+        },
+        {
+          surface: "10",
+          label: "fQty",
+          name: "入库件数",
+          checked: 0,
+          width: 100,
+        },
+        {
+          surface: "11",
+          label: "fGrossweight",
+          name: "入库毛重",
+          checked: 0,
+          width: 100,
+        },
+        {
+          surface: "12",
+          label: "fNetweight",
+          name: "入库净重",
+          checked: 0,
+          width: 100,
+        },
+        {
+          surface: "13",
+          label: "fTruckno",
+          name: "车号",
+          checked: 0,
+          width: 100,
+        },
+        {
+          surface: "14",
+          label: "fDriverName",
+          name: "司机名称",
+          checked: 0,
+          width: 100,
+        },
+        {
+          surface: "15",
+          label: "fDriverTel",
+          name: "司机电话",
+          checked: 0,
+          width: 100,
+        },
+        {
+          surface: "16",
+          label: "fDriverIdCar",
+          name: "司机身份证",
+          checked: 0,
+          width: 100,
+        },
+        {
+          surface: "17",
+          label: "fBusinessType",
+          name: "业务类别",
+          checked: 0,
+          width: 100,
+        },
+        {
+          surface: "18",
+          label: "fBillstatus",
+          name: "费用状态",
+          checked: 0,
+          width: 100,
+        },
+      ],
+      setRowList: [],
+      getRowList: [],
+      allCheck: false,
+      showSetting: false,
+      total: 0,
+      warehousebillsList: [],
+      loading: true,
+      single: true,
+      multiple: true,
+    };
+  },
+  // 使用子组件
+  components: { draggable },
+  created() {
+    this.setRowList = this.tableDate;
+    this.getRowList = this.tableDate;
+    this.getDicts("data_trademodes").then((response) => {
+      this.fTrademodeidOptions = response.data;
+    });
+    listGoods({ fStatus: 0, delFlag: 0 }).then((response) => {
+      this.goodsOptions = response.rows;
+    });
+    treeselect().then((response) => {
+      this.warehouseOptions = response.data;
+    });
+    this.getRow();
+    this.getList()
+  },
+  methods: {
+    //列设置全选
+    allChecked() {
+      if (this.allCheck == true) {
+        this.setRowList.map((e) => {
+          return (e.checked = 0);
+        });
+      } else {
+        this.setRowList.map((e) => {
+          return (e.checked = 1);
+        });
+      }
+    },
+    //查询列数据
+    getRow() {
+      let that = this;
+      this.data = {
+        tableName: "入库",
+        userId: Cookies.get("userName"),
+      };
+      select(this.data).then((res) => {
+        if (res.data.length != 0) {
+          this.getRowList = res.data.filter((e) => e.checked == 0);
+          this.setRowList = res.data;
+          this.setRowList = this.setRowList.reduce((res, item) => {
+            res.push({
+              surface: item.surface,
+              label: item.label,
+              name: item.name,
+              checked: item.checked,
+              width: item.width,
+              fixed: item.fixed,
+            });
+            return res;
+          }, []);
+        }
+      });
+    },
+    //重置列表
+    delRow() {
+      this.data = {
+        tableName: "入库",
+        userId: Cookies.get("userName"),
+      };
+      resetModule(this.data).then((res) => {
+        if (res.code == 200) {
+          this.showSetting = false;
+          this.setRowList = this.tableDate;
+          this.getRowList = this.tableDate;
+        }
+      });
+    },
+    //保存列设置
+    save() {
+      this.showSetting = false;
+      this.data = {
+        tableName: "入库",
+        userId: Cookies.get("userName"),
+        sysTableSetList: this.setRowList,
+      };
+      addSet(this.data).then((res) => {
+        if (res.code == 200) {
+          this.showSetting = false;
+          this.getRowList = this.setRowList.filter((e) => e.checked == 0);
+        }
+      });
+    },
+    //开始拖拽事件
+    onStart() {
+      this.drag = true;
+    },
+    //拖拽结束事件
+    onEnd() {
+      this.drag = false;
+    },
+    getList() {
+      //获取仓库
+      listWarehousebills(this.queryParams).then((response) => {
+        this.warehousebillsList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    //合计
+    getSum(param) {
+      const { columns, data } = param;
+      const sums = [];
+      columns.forEach((column, index) => {
+        if (index === 0) {
+          sums[index] = "总计";
+        } else if (
+          index === 13 ||
+          index === 10 ||
+          index === 11 ||
+          index === 12
+        ) {
+          const values = data.map((item) => Number(item[column.property]));
+          if (!values.every((value) => isNaN(value))) {
+            sums[index] = values.reduce((prev, curr) => {
+              const value = Number(curr);
+              if (!isNaN(value)) {
+                return prev + curr;
+              } else {
+                return prev;
+              }
+            }, 0);
+            if (index === 13 || index === 12) {
+              sums[index] = (sums[index] / 1000).toFixed(2) + "(吨)";
+            }
+            if (index === 11) {
+              sums[index] = sums[index];
+            }
+          }
+        }
+      });
+      return sums;
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.addOrUpdateVisible = !this.addOrUpdateVisible;
+      this.title = "添加订单主";
+    },
+    // 表单重置
+    reset() {
+      this.form = {};
+      this.resetForm("form");
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map((item) => item.fId);
+      this.idCopy = this.ids[0];
+      this.single =
+        selection.length !== 1 ||
+        selection.map((item) => item.fBillstatus) == 6 ||
+        selection.map((item) => item.fBillstatus) == 4;
+      this.multiple = !selection.length;
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$confirm('是否确认删除订单主编号为"' + ids + '"的数据项?', "警告", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      })
+        .then(function () {
+          return delFtmsorderbills(ids);
+        })
+        .then(() => {
+          this.getList();
+          this.msgSuccess("删除成功");
+        });
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      // require.ensure([], () => {
+      //   const { export_json_to_excel } = require("../../../excel/Export2Excel");
+      //   const tHeader = ["客户名称", "制单日期"];
+      //   // 上面设置Excel的表格第一行的标题
+      //   const filterVal = ["corpId", "createTime"];
+      //   // 上面的index、nickName、name是tableData里对象的属性
+      //   const list = this.ftmsorderbillsList; //把data里的tableData存到list
+      //   const data = this.formatJson(filterVal, list);
+      //   export_json_to_excel(
+      //     tHeader,
+      //     data,
+      //     "列表excel",
+      //     true,
+      //   );
+      // });
+    },
+    formatJson(filterVal, jsonData) {
+      return jsonData.map((v) => filterVal.map((j) => v[j]));
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 监听 子组件弹窗关闭后触发,有子组件调用
+    showAddOrUpdate(data) {
+      if (data === "false") {
+        this.addOrUpdateVisible = false;
+        this.disabled = false;
+      } else {
+        this.addOrUpdateVisible = true;
+      }
+    },
+    //制单人模糊搜索
+    userremoteMethod(query) {
+      if (query !== "") {
+        this.selectloading = true;
+        setTimeout(() => {
+          listUser({ userName: query }).then((response) => {
+            this.selectloading = false;
+            this.userOptions = response.rows;
+          });
+        }, 200);
+      } else {
+        this.userOptions = [];
+      }
+    },
+    //货权方模糊搜索
+    corpremoteMethod(query) {
+      if (query !== "") {
+        this.selectloading = true;
+        setTimeout(() => {
+          listCorps({ fName: query, type: 1 }).then((response) => {
+            this.selectloading = false;
+            this.fMblnoOptions = response.rows;
+          });
+        }, 200);
+      } else {
+        this.fMblnoOptions = [];
+      }
+    },
+  },
+};
+</script>

+ 0 - 0
src/views/Warehousing/outStock/index.vue