| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291 | <template>  <div class="app-container">    <basic-container v-show="pageShow">      <avue-crud          ref="crud"          :option="option"          :search.sync="queryParams"          :data="warehousebillsList"          @resetColumn="resetColumn('crud','option','optionList',169)"          @saveColumn="saveColumn('crud','option','optionList',169)">        <template slot="menuLeft">          <el-button              type="primary"              icon="el-icon-plus"              size="mini"              @click="handleAdd"              v-hasPermi="['warehouseBusiness:stockTransfer:add']"          >新增          </el-button>          <el-button              type="success"              icon="el-icon-edit"              size="mini"              :disabled="single"              @click="handleUpdate"              v-hasPermi="['warehouseBusiness:stockTransfer:edit']"          >修改          </el-button>          <el-button              type="warning"              icon="el-icon-download"              size="mini"              @click="handleExport"              v-hasPermi="['warehouseBusiness:stockTransfer:export']"          >导出          </el-button>          <el-button              type="info"              icon="el-icon-download"              size="mini"              :disabled="single"              @click="copyUpdate"              v-hasPermi="['agreement:agreementStorage:export']"          >复制新增          </el-button>        </template>      </avue-crud>    </basic-container>    <div v-show="pageShow" v-if="false">      <el-form        :model="queryParams"        ref="queryForm"        v-show="showSearch"        label-width="70px"        size="small"      >        <el-row>          <el-col :span="6">            <el-form-item label="客户" prop="fCorpid">              <el-select                v-model="queryParams.fCorpid"                clearable                filterable                placeholder="请输入关键词"                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="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="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-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"                :picker-options="pickerOptions"                unlink-panels              >              </el-date-picker>            </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="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="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="fItemsStatus">                  <el-select                    style="width: 200px"                    v-model="queryParams.fItemsStatus"                    placeholder="请选择通关状态"                  >                    <el-option label="计划" value="1" />                    <el-option label="待通关" value="2" />                    <el-option label="通关中" value="3" />                    <el-option label="已通关" value="4" />                  </el-select>                </el-form-item>              </el-col>              <el-col :span="6">                <el-form-item label="费用状态" prop="fFeeStatus">                  <el-select                    style="width: 200px"                    v-model="queryParams.fFeeStatus"                    placeholder="请选择费用状态"                  >                    <el-option label="暂存" :value="1"></el-option>                    <el-option label="部分" :value="2"></el-option>                    <el-option label="全部入账" :value="3"></el-option>                  </el-select>                </el-form-item>              </el-col>            </el-row>            <el-row>              <el-col :span="6">                <el-form-item 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                    clearable                    placeholder="请输入关键词"                    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="fSbu">                  <el-select                    v-model="queryParams.fSbu"                    clearable                    filterable                    placeholder="请输入关键词"                    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="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-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"            v-hasPermi="['warehouseBusiness:stockTransfer: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:stockTransfer: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:stockTransfer:export']"            >导出          </el-button>        </el-col>        <el-col :span="1.5">          <el-button            type="info"            icon="el-icon-download"            size="mini"            :disabled="single"            @click="copyUpdate"            v-hasPermi="['agreement:agreementStorage:export']"            >复制新增          </el-button>        </el-col>        <div class="tabSetting">          <div style="margin-right: 20px">            <el-button              type="cyan"              icon="el-icon-search"              size="mini"              @click="handleQuery"              >搜索</el-button            >            <el-button icon="el-icon-refresh" size="mini" @click="resetQuery"              >重置</el-button            >            <el-button              v-show="show"              @click="show = !show"              icon="el-icon-arrow-up"              size="mini"              >展开</el-button            >            <el-button              v-show="!show"              @click="show = !show"              icon="el-icon-arrow-down"              size="mini"              >展开</el-button            >          </div>          <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"        v-dialogDrag        :close-on-click-modal="false"      >        <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"        ref="table"        :height="tableHeight">        <el-table-column type="selection" width="60" fixed align="center" />        <el-table-column          type="index"          label="行号"          width="50"          align="center"          fixed/>        <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>          <template slot-scope="scope">            <span v-if="item.label == 'fMblno'">              <el-link :underline="false" type="primary">                <div @click="handleUpdate(scope.row)">                  {{ scope.row.fMblno }}                </div>              </el-link>            </span>            <span v-else>{{ scope.row[item.label] }}</span>          </template>        </el-table-column>        <el-table-column          label="操作"          align="center"          class-name="small-padding fixed-width"          min-width="200"          fixed="right">          <template slot-scope="scope">            <el-button              size="mini"              type="text"              icon="el-icon-edit"              @click="handleUpdate(scope.row, true)"              v-hasPermi="['warehouseBusiness:stockTransfer: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:stockTransfer:edit']">              修改            </el-button>            <el-button              size="mini"              type="text"              icon="el-icon-delete"              v-if="(scope.row.fItemsStatus == '待通关' || scope.row.fItemsStatus == '计划') && scope.row.isCreate == 1 || (scope.row.fItemsStatus == '待通关' || scope.row.fItemsStatus == '计划') && scope.row.isCreate == 0"              @click="handleDelete(scope.row)"              v-hasPermi="['warehouseBusiness:stockTransfer: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>    <add-or-update      v-show="pageShow2"      @changeShow="showAddOrUpdate"      ref="addOrUpdateRef"      :chiId="formId"      :copyStatus="copyStatus"      :key="timer"    ></add-or-update>  </div></template><script>import AddOrUpdate from "./AddOrUpdate.vue";// import {//   backFee,//   RevocationApproval,//   addWhgenleg,//   getStockTransferList,//   getStockTransfer,//   delStockTransfer,//   updateCredit,//   addJoblist,//   disChargelist,//   addStockTransfer,//   warehouseSubmission,//   updateStockTransfer,//   exportStockTransfer,//   delstockTransfer_s,//   serialNumber,// } from "@/api/warehouseBusiness/stockTransfer";// import { listCorps } from "@/api/basicdata/corps";// import { listWarehousesss } from "@/api/basicdata/warehouse";// import { listGoods } from "@/api/basicdata/goods";// import { listUser, queryUserVal } from "@/api/system/user";// import "@riophae/vue-treeselect/dist/vue-treeselect.css";import Cookies from "js-cookie";// import { addSet, select, resetModule } from "@/api/system/set";import draggable from "vuedraggable";export default {  name: "plans",  data() {    return {      option:{},      optionList:{        border: true,        align: 'center',        stripe: true,        index: true,        menu: false,        addBtn: false,        editBtn: false,        delBtn: false,        height: "auto",        searchSpan: 8,        searchIcon: true,        searchIndex: 2,        highlightCurrentRow: true,        column:[          {            index: "0",            prop: "fMblno",            label: "提单号",            width: 200,            search: true,          },          {            index: "1",            prop: "createBy",            label: "制单人",            width: 100,            search: true,            type:'select',          },          {            index: "2",            prop: "fStorekeeper",            label: "仓管员",            width: 100,          },          {            index: "3",            prop: "fItemsStatus",            label: "通关状态",            width: 100,            search: true,            type:'select',          },          {            index: "4",            prop: "fCorpid",            label: "客户",            width: 100,            search: true,            type:'select',          },          {            index: "6",            prop: "fProductName",            label: "品名",            width: 100,            search: true,            type:'select',          },          {            index: "7",            prop: "fMarks",            label: "品牌",            width: 100,            search: true,            type:'select',          },          {            index: "8",            prop: "fBsdate",            searchProp:"timeInterval",            label: "通关日期",            width: 100,            type:'datetime',            searchRange:true,            search:true,            unlinkPanels:true,            defaultTime: ['00:00:00', '23:59:59'],            format:'yyyy-MM-dd HH:mm:ss',            valueFormat:'yyyy-MM-dd HH:mm:ss',          },          {            index: "9",            prop: "fWarehouseid",            label: "调入仓库",            width: 100,            search: true,            type:'select',          },          {            index: "10",            prop: "fInwarehouseid",            label: "调出仓库",            width: 100,          },          {            index: "11",            prop: "fPlanqty",            label: "计划通关件数",            width: 180,          },          {            index: "12",            prop: "fQty",            label: "通关件数",            width: 100,          },          {            index: "13",            prop: "fGrossweight",            label: "通关毛重(KG)",            width: 180,          },          {            index: "14",            prop: "fNetweight",            label: "通关净重(kg)",            width: 180,          },          {            index: "15",            prop: "fBusinessType",            label: "业务类别",            width: 100,          },          {            index: "16",            prop: "fFeeStatus",            label: "费用状态",            width: 100,            search: true,            type:'select',          },          {            index: "17",            prop: "fBillno",            label: "系统编号",            width: 100,            search: true,          },          {            index: "18",            prop: "fSbu",            label: "经营单位",            width: 100,            search: true,            type:'select',            showColumn: false,            hide:true          },          {            index: "19",            prop: "fTrademodeid",            label: "贸易方式",            width: 100,            search: true,            type:'select',            showColumn: false,            hide:true          }        ]      },      tableHeight:'600',      timer: "",      pageShow: true,      pageShow2: false,      queryParams: {        pageNum: 1,        pageSize: 10,        type: 2,        fBillno: null,        createBy: null,        fTrademodeid: null,        fCorpid: null,        fMblno: null,        fSbu: null,        fGoodsid: null,        fWarehouseid: null,        fMarks: null,        fBillstatus: null,        fItemsStatus: null,        timeInterval: null,        fFeeStatus: null,      },      // 显示搜索条件      showSearch: true,      userOptions: [],      fTrademodeidOptions: [],      warehouseOptions: [],      goodsOptions: [],      fMblnoOptions: [],      show: false,      drag: false,      tableDate: [        {          surface: "0",          label: "fMblno",          name: "提单号",          checked: 0,          width: 200,          fixed: "left",        },        {          surface: "1",          label: "createBy",          name: "制单人",          checked: 0,          width: 100,        },        {          surface: "2",          label: "fStorekeeper",          name: "仓管员",          checked: 0,          width: 100,        },        {          surface: "3",          label: "fItemsStatus",          name: "通关状态",          checked: 0,          width: 100,        },        {          surface: "4",          label: "fCorpid",          name: "客户",          checked: 0,          width: 100,        },        {          surface: "6",          label: "fProductName",          name: "品名",          checked: 0,          width: 100,        },        {          surface: "7",          label: "fMarks",          name: "品牌",          checked: 0,          width: 100,        },        {          surface: "8",          label: "fBsdate",          name: "通关日期",          checked: 0,          width: 100,        },        {          surface: "9",          label: "fWarehouseid",          name: "调入仓库",          checked: 0,          width: 100,        },        {          surface: "10",          label: "fInwarehouseid",          name: "调出仓库",          checked: 0,          width: 100,        },        {          surface: "11",          label: "fPlanqty",          name: "计划通关件数",          checked: 0,          width: 180,        },        {          surface: "12",          label: "fQty",          name: "通关件数",          checked: 0,          width: 100,        },        {          surface: "13",          label: "fGrossweight",          name: "通关毛重(KG)",          checked: 0,          width: 180,        },        {          surface: "14",          label: "fNetweight",          name: "通关净重(kg)",          checked: 0,          width: 180,        },        {          surface: "15",          label: "fBusinessType",          name: "业务类别",          checked: 0,          width: 100,        },        {          surface: "16",          label: "fFeeStatus",          name: "费用状态",          checked: 0,          width: 100,        },        {          surface: "17",          label: "fBillno",          name: "系统编号",          checked: 0,          width: 100,        },      ],      setRowList: [],      getRowList: [],      allCheck: false,      showSetting: false,      total: 0,      warehousebillsList: [],      loading: true,      single: true,      multiple: true,      formId: null,      ids: [],      copyStatus: null,      pickerOptions: {        shortcuts: [{          text: '最近一周',          onClick(picker) {            const end = new Date();            const start = new Date();            start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);            picker.$emit('pick', [start, end]);          }        }, {          text: '最近一个月',          onClick(picker) {            const end = new Date();            const start = new Date();            start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);            picker.$emit('pick', [start, end]);          }        }, {          text: '最近三个月',          onClick(picker) {            const end = new Date();            const start = new Date();            start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);            picker.$emit('pick', [start, end]);          }        }]      },    };  },  // 使用子组件  components: { draggable, AddOrUpdate },  async created() {    this.option = await this.getColumnData(this.getColumnName(169), this.optionList);    let date = new Date();    let lYear = parseInt(date.getFullYear())    let lMonth = parseInt(date.getMonth())    if (lMonth == 0) {      lMonth = 12      lYear = lYear - 1    }    let nYear = parseInt(date.getFullYear())    let nMonth = parseInt(date.getMonth() + 2)    if (nMonth > 12) {      nMonth = nMonth - 12      nYear = nYear + 1    }    let day30 = [4, 6, 9, 11]    let day31 = [1, 3, 5, 7, 8, 10, 12]    let nDay = null    if (day31.indexOf(nMonth) > -1) {      nDay = 31    } else if (day30.indexOf(nMonth) > -1) {      nDay = 30    } else if ((nYear % 4 == 0) && (nYear % 100 != 0 || nYear % 400 == 0)) {      nDay = 29    } else {      nDay = 28    }    this.queryParams.timeInterval = [lYear + '-' + lMonth + '-' + '01 00:00:00', nYear + '-' + nMonth + '-' + nDay + ' 23:59:59']    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;    });    listWarehousesss({ fStatus: 0, delFlag: 0 }).then((response) => {      this.warehouseOptions = response.rows;    });    listUser().then((response) => {      this.userOptions = response.rows;    });    listCorps({ type: 1 }).then((response) => {      this.fMblnoOptions = response.rows;    });    this.getRow();    this.getList();  },  activated() {    if (this.$route.query.id) {      this.handleUpdate(this.$route.query.id);    }  },  mounted() {    this.$nextTick(() => {      // 监听浏览器高度变化,改变表格高度      window.onresize = () => {        this.tableHeight = window.innerHeight - this.$refs.table.$el.offsetTop - 70      }    })  },  methods: {    //自定义列保存    async saveColumn(ref,option,optionBack,code) {      /**       * 已定义全局方法,直接使用,saveColumnData保存列数据方法,参数传值(表格名称,当前表格的option数据)       * 已定义全局方法,直接使用,getColumnName方法用来获取枚举值,参数根据自己定义的code值获取中文名       * 一定要执行异步操作,要等接口成功返回,才能执行下一行代码       */      const inSave = await this.saveColumnData(this.getColumnName(code), this[option]);      if (inSave) {        this.$message.success("保存成功");        //关闭窗口        this.$refs[ref].$refs.dialogColumn.columnBox = false;      }    },    //自定义列重置    async resetColumn(ref,option,optionBack,code) {      this[option] = this[optionBack];      const inSave = await this.delColumnData(this.getColumnName(code), this[optionBack]);      if (inSave) {        this.$message.success("重置成功");        this.$refs[ref].$refs.dialogColumn.columnBox = false;      }    },    // 获取当前月的第一天和最后一天    // getMonth() {    //   let date = new Date();    //   let year = parseInt(date.getFullYear())    //   let month = parseInt(date.getMonth() + 1)    //   let currentMonth = date.getMonth()    //   let nextMonth = ++currentMonth    //   let nextMonthFirstDay = new Date(date.getFullYear(), nextMonth, 1)  // 下个月的第一天    //   let oneDay = 1000*60*60*24    //   let lastTime = new Date(nextMonthFirstDay - oneDay) // 下个月的第一天减去一天,就是上个月的最后一天    //   let day = lastTime.getDate()    //   if (day < 10) {    //     day = '0' + day    //   }    //   this.queryParams.timeInterval = [year + '-' + month + '-' + '01 00:00:00', year + '-' + month + '-' + day + ' 23:59:59']    // },    //列设置全选    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.$options.data().tableDate;          this.getRowList = this.$options.data().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);          console.log(this.tableDate);        }      });    },    //开始拖拽事件    onStart() {      this.drag = true;    },    //拖拽结束事件    onEnd() {      this.drag = false;    },    getList() {      //获取仓库      getStockTransferList(this.queryParams).then((response) => {        this.warehousebillsList = response.rows;        this.total = response.total;        this.loading = false;        // 根据浏览器高度设置初始高度        setTimeout(() => {          this.tableHeight = window.innerHeight - this.$refs.table.$el.offsetTop - 70        }, 300)      });    },    //合计    getSum(param) {      const { columns, data } = param;      const sums = [];      var values = [];      columns.forEach((column, index) => {        if (index === 0) {          sums[index] = "合计";          return;        }        if (column.property === "fGrossweight") {          values = data.map((item) => Number(item["fGrossweight"]));        }        if (column.property === "fNetweight") {          values = data.map((item) => Number(item["fNetweight"]));        }        if (column.property === "fQty") {          values = data.map((item) => Number(item["fQty"]));        }        if (column.property === "fPlanqty") {          values = data.map((item) => Number(item.fPlanqty));        }        if (          column.property === "fGrossweight" ||          column.property === "fNetweight" ||          column.property === "fQty" ||          column.property === "fPlanqty"        ) {          sums[index] = values.reduce((prev, curr) => {            const value = Number(curr);            if (!isNaN(value)) {              return prev + curr;            } else {              return prev;            }          }, 0);          if (column.property === "fGrossweight") {            sums[index] = (sums[index] / 1000).toFixed(2) + "吨";          }          if (column.property === "fNetweight") {            sums[index] = (sums[index] / 1000).toFixed(2) + "吨";          }          if (column.property === "fQty") {            sums[index] = sums[index].toFixed(2);          }          if (column.property === "fPlanqty") {            if (sums[index]) {              sums[index] = sums[index];            }          }        }      });      return sums;    },    handleAdd() {      this.timer = new Date().getTime();      this.pageShow = false;      this.pageShow2 = true;    },    // 多选框选中数据    handleSelectionChange(selection) {      this.ids = selection.map((item) => item.fId);      this.single =        selection.length !== 1 ||        selection.map((item) => item.fBillstatus) == 6 ||        selection.map((item) => item.fBillstatus) == 4;      this.multiple = !selection.length;    },    /** 修改按钮操作 */    handleUpdate(row) {      const fId = row.fId || this.ids[0] || row;      this.copyStatus = null;      this.formId = fId;      this.$nextTick(() => {        this.$refs.addOrUpdateRef.init();      });      setTimeout(() => {        this.pageShow = false;        this.pageShow2 = true;      }, 200);    },    copyUpdate() {      this.formId = this.ids[0];      this.copyStatus = 2;      this.$nextTick(() => {        this.$refs.addOrUpdateRef.init();      });      setTimeout(() => {        this.pageShow = false;        this.pageShow2 = true;      }, 200);    },    handleDelete(row) {      const ids = row.fId || this.ids;      delstockTransfer_s(ids).then((data) => {        switch (data.msg) {          case "0": {            this.$message.error("当前数据已被其他操作员操作请刷新页面");            break;          }          case "1": {            this.delete(ids, "当前主表有数据从表无数据是否删除");            break;          }          case "2": {            this.delete(ids, "当前主表有数据从表有数据是否删除");            break;          }          default: {            return this.$message.error("未知错误,无状态");          }        }      });    },    delete(ids, tips) {      this.$confirm(tips, "警告", {        confirmButtonText: "确定",        cancelButtonText: "取消",        type: "warning",      }).then(() => {        delStockTransfer(ids).then(res => {          this.msgSuccess("删除成功");          this.getList();        });      });    },    /** 导出按钮操作 */    handleExport() {      this.$confirm('是否确认导出所有货物通关数据项?', '警告', {        confirmButtonText: "确定",        cancelButtonText: "取消",        type: "warning",      }).then(() => {        exportStockTransfer(this.queryParams).then(res => {          this.download(res.msg);        })      })      //this.$message.warning('功能开发中')      // 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.queryParams = {        pageNum: 1,        pageSize: 10,        type: 2,        fBillno: null,        createBy: null,        fTrademodeid: null,        fCorpid: null,        fMblno: null,        fSbu: null,        fGoodsid: null,        fWarehouseid: null,        fMarks: null,        fBillstatus: null,        fItemsStatus: null,        timeInterval: null,        fFeeStatus: null,      };      this.handleQuery();    },    showAddOrUpdate(data) {      if (data) {        //正式后要调用查询接口        // this.getList();        this.pageShow = true;        this.pageShow2 = false;      }    },  },};</script>
 |