|
@@ -0,0 +1,1259 @@
|
|
|
+<template>
|
|
|
+ <div id="demandSummary">
|
|
|
+ <div v-if="isList">
|
|
|
+ <el-card style="position: relative">
|
|
|
+ <el-super-search
|
|
|
+ v-model="params"
|
|
|
+ :size="size"
|
|
|
+ :dict="dict"
|
|
|
+ :columns="SearchColumns"
|
|
|
+ @reset="useReset"
|
|
|
+ @submit="getList"
|
|
|
+ ></el-super-search>
|
|
|
+
|
|
|
+ <div class="btn_grooup">
|
|
|
+ <el-button type="primary" size="mini" @click="editList"
|
|
|
+ >编辑</el-button
|
|
|
+ >
|
|
|
+ <el-button
|
|
|
+ type="danger"
|
|
|
+ size="mini"
|
|
|
+ v-if="!lineDisable"
|
|
|
+ @click="cancelEdit"
|
|
|
+ >取消编辑</el-button
|
|
|
+ >
|
|
|
+ <el-button
|
|
|
+ type="success"
|
|
|
+ size="mini"
|
|
|
+ v-if="!lineDisable"
|
|
|
+ @click="saveList"
|
|
|
+ >保存</el-button
|
|
|
+ >
|
|
|
+ <el-button
|
|
|
+ type="primary"
|
|
|
+ size="mini"
|
|
|
+ v-if="lineDisable"
|
|
|
+ @click="confirms"
|
|
|
+ >确认</el-button
|
|
|
+ >
|
|
|
+ <el-button
|
|
|
+ type="primary"
|
|
|
+ size="mini"
|
|
|
+ v-if="lineDisable"
|
|
|
+ @click="cancels"
|
|
|
+ >取消</el-button
|
|
|
+ >
|
|
|
+ <!-- <el-button type="primary" size="mini" v-if="lineDisable" @click="cancelAudit">取消审批</el-button> -->
|
|
|
+ <el-button
|
|
|
+ type="primary"
|
|
|
+ size="mini"
|
|
|
+ v-if="lineDisable"
|
|
|
+ @click="audits"
|
|
|
+ >审核</el-button
|
|
|
+ >
|
|
|
+ <el-button
|
|
|
+ type="primary"
|
|
|
+ size="mini"
|
|
|
+ v-if="lineDisable"
|
|
|
+ @click="closeLine"
|
|
|
+ >行关闭</el-button
|
|
|
+ >
|
|
|
+
|
|
|
+ <el-button
|
|
|
+ size="mini"
|
|
|
+ type="primary"
|
|
|
+ style="margin: 0 10px"
|
|
|
+ v-if="lineDisable"
|
|
|
+ @click="handleCommand"
|
|
|
+ >
|
|
|
+ 导出
|
|
|
+ </el-button>
|
|
|
+
|
|
|
+ <!-- <el-button type="primary" size="mini">转请购</el-button> -->
|
|
|
+ </div>
|
|
|
+ <vxe-toolbar ref="xToolbar1" custom> </vxe-toolbar>
|
|
|
+
|
|
|
+ <vxe-table
|
|
|
+ id="toolbar_demo5"
|
|
|
+ :custom-config="{ storage: true, checkMethod: checkColumnMethod }"
|
|
|
+ @resizable-change="resizableChangeEvent"
|
|
|
+ v-loading="loading"
|
|
|
+ :data="tableList"
|
|
|
+ :cell-style="{ borderColor: '#c0c0c0' }"
|
|
|
+ :header-cell-style="{ borderColor: '#c0c0c0' }"
|
|
|
+ class="exporttable"
|
|
|
+ border
|
|
|
+ show-summary
|
|
|
+ show-footer
|
|
|
+ :footer-method="getSummaries"
|
|
|
+ highlight-current-row
|
|
|
+ max-height="620"
|
|
|
+ style="font-size: 12px"
|
|
|
+ :cell-class-name="cellClassName"
|
|
|
+ @checkbox-all="selectAllEvent"
|
|
|
+ @checkbox-change="handleSelectionChange"
|
|
|
+ @cell-dblclick="doubleClick"
|
|
|
+ ref="table"
|
|
|
+ :checkbox-config="{ trigger: 'row', highlight: true, range: true }"
|
|
|
+ :column-config="{ resizable: true }"
|
|
|
+ :sort-config="{ multiple: true, trigger: 'cell' }"
|
|
|
+ >
|
|
|
+ <vxe-column type="checkbox" width="50" />
|
|
|
+ <vxe-column
|
|
|
+ show-header-overflow
|
|
|
+ show-overflow
|
|
|
+ sortable
|
|
|
+ title="序号"
|
|
|
+ type="seq"
|
|
|
+ align="center"
|
|
|
+ width="50px"
|
|
|
+ />
|
|
|
+ <vxe-column
|
|
|
+ show-header-overflow
|
|
|
+ show-overflow
|
|
|
+ sortable
|
|
|
+ title="行状态"
|
|
|
+ align="center"
|
|
|
+ field="status"
|
|
|
+ width="50px"
|
|
|
+ :formatter="hangStatus"
|
|
|
+ />
|
|
|
+ <vxe-column
|
|
|
+ show-header-overflow
|
|
|
+ show-overflow
|
|
|
+ sortable
|
|
|
+ title="最终采购量"
|
|
|
+ align="center"
|
|
|
+ field="finalBuyQty"
|
|
|
+ width="80px"
|
|
|
+ >
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-input
|
|
|
+ size="mini"
|
|
|
+ :disabled="scope.row.status !== '1' || lineDisable"
|
|
|
+ v-model="scope.row.finalBuyQty"
|
|
|
+ @change="jilu(scope.$rowIndex)"
|
|
|
+ />
|
|
|
+ </template>
|
|
|
+ </vxe-column>
|
|
|
+ <vxe-column
|
|
|
+ show-header-overflow
|
|
|
+ show-overflow
|
|
|
+ sortable
|
|
|
+ title="关闭数量"
|
|
|
+ align="center"
|
|
|
+ field="closeQty"
|
|
|
+ width="50px"
|
|
|
+ />
|
|
|
+ <vxe-column
|
|
|
+ show-header-overflow
|
|
|
+ show-overflow
|
|
|
+ sortable
|
|
|
+ title="人工调整数"
|
|
|
+ align="center"
|
|
|
+ field="artificialAdjust"
|
|
|
+ width="50px"
|
|
|
+ >
|
|
|
+ <template slot-scope="scope">
|
|
|
+ {{
|
|
|
+ (scope.row.artificialAdjust =
|
|
|
+ scope.row.finalBuyQty - scope.row.suggestionPurchase)
|
|
|
+ }}
|
|
|
+ </template>
|
|
|
+ </vxe-column>
|
|
|
+ <vxe-column
|
|
|
+ show-header-overflow
|
|
|
+ show-overflow
|
|
|
+ sortable
|
|
|
+ title="一级品类"
|
|
|
+ align="center"
|
|
|
+ field="materialClassifyOneName"
|
|
|
+ width="80"
|
|
|
+ />
|
|
|
+ <vxe-column
|
|
|
+ show-header-overflow
|
|
|
+ show-overflow
|
|
|
+ sortable
|
|
|
+ title="物料编码"
|
|
|
+ align="center"
|
|
|
+ field="materialCode"
|
|
|
+ width="100px"
|
|
|
+ />
|
|
|
+ <vxe-column
|
|
|
+ show-header-overflow
|
|
|
+ show-overflow
|
|
|
+ sortable
|
|
|
+ title="品名"
|
|
|
+ align="center"
|
|
|
+ field="materialName"
|
|
|
+ width="100px"
|
|
|
+ />
|
|
|
+ <vxe-column
|
|
|
+ show-header-overflow
|
|
|
+ show-overflow
|
|
|
+ sortable
|
|
|
+ title="规格"
|
|
|
+ align="center"
|
|
|
+ field="specification"
|
|
|
+ width="100px"
|
|
|
+ />
|
|
|
+ <vxe-column
|
|
|
+ show-header-overflow
|
|
|
+ show-overflow
|
|
|
+ sortable
|
|
|
+ title="单位"
|
|
|
+ align="center"
|
|
|
+ field="unit"
|
|
|
+ width="50"
|
|
|
+ />
|
|
|
+ <vxe-column
|
|
|
+ show-header-overflow
|
|
|
+ show-overflow
|
|
|
+ sortable
|
|
|
+ title="生产厂家/代理人"
|
|
|
+ align="center"
|
|
|
+ field="manufacturer"
|
|
|
+ width="100px"
|
|
|
+ />
|
|
|
+ <vxe-column
|
|
|
+ show-header-overflow
|
|
|
+ show-overflow
|
|
|
+ sortable
|
|
|
+ title="需求单位数"
|
|
|
+ align="center"
|
|
|
+ field="demandNum"
|
|
|
+ width="50px"
|
|
|
+ />
|
|
|
+ <vxe-column
|
|
|
+ show-header-overflow
|
|
|
+ show-overflow
|
|
|
+ sortable
|
|
|
+ title="总最终净需求量"
|
|
|
+ align="center"
|
|
|
+ field="netDemandNum"
|
|
|
+ width="80px"
|
|
|
+ >
|
|
|
+ <template slot-scope="scope">
|
|
|
+ {{
|
|
|
+ scope.row.netDemandNum
|
|
|
+ ? parseFloat(scope.row.netDemandNum).toFixed(2)
|
|
|
+ : "0.00"
|
|
|
+ }}
|
|
|
+ </template>
|
|
|
+ </vxe-column>
|
|
|
+ <vxe-column
|
|
|
+ show-header-overflow
|
|
|
+ show-overflow
|
|
|
+ sortable
|
|
|
+ title="近1月月均需求"
|
|
|
+ align="center"
|
|
|
+ field="evensalesforyear"
|
|
|
+ width="50"
|
|
|
+ >
|
|
|
+ <template slot-scope="scope">
|
|
|
+ {{
|
|
|
+ scope.row.evensalesforyear
|
|
|
+ ? parseFloat(scope.row.evensalesforyear).toFixed(2)
|
|
|
+ : "0.00"
|
|
|
+ }}
|
|
|
+ </template>
|
|
|
+ </vxe-column>
|
|
|
+ <vxe-column
|
|
|
+ show-header-overflow
|
|
|
+ show-overflow
|
|
|
+ sortable
|
|
|
+ title="近3月月均需求"
|
|
|
+ align="center"
|
|
|
+ field="evensalesforthrmonth"
|
|
|
+ width="50"
|
|
|
+ >
|
|
|
+ <template slot-scope="scope">
|
|
|
+ {{
|
|
|
+ scope.row.evensalesforthrmonth
|
|
|
+ ? parseFloat(scope.row.evensalesforthrmonth).toFixed(2)
|
|
|
+ : "0.00"
|
|
|
+ }}
|
|
|
+ </template>
|
|
|
+ </vxe-column>
|
|
|
+ <vxe-column
|
|
|
+ show-header-overflow
|
|
|
+ show-overflow
|
|
|
+ sortable
|
|
|
+ title="总月销量"
|
|
|
+ align="center"
|
|
|
+ field="totalMonthlySales"
|
|
|
+ width="50"
|
|
|
+ >
|
|
|
+ <template slot-scope="scope">
|
|
|
+ {{
|
|
|
+ scope.row.totalMonthlySales
|
|
|
+ ? parseFloat(scope.row.totalMonthlySales).toFixed(2)
|
|
|
+ : "0.00"
|
|
|
+ }}
|
|
|
+ </template>
|
|
|
+ </vxe-column>
|
|
|
+ <vxe-column
|
|
|
+ show-header-overflow
|
|
|
+ show-overflow
|
|
|
+ sortable
|
|
|
+ title="需求可用周期"
|
|
|
+ align="center"
|
|
|
+ field="demandCycle"
|
|
|
+ width="50px"
|
|
|
+ >
|
|
|
+ <template slot-scope="scope">
|
|
|
+ {{
|
|
|
+ scope.row.demandCycle
|
|
|
+ ? parseFloat(scope.row.demandCycle).toFixed(1)
|
|
|
+ : "-"
|
|
|
+ }}
|
|
|
+ </template>
|
|
|
+ </vxe-column>
|
|
|
+ <vxe-column
|
|
|
+ show-header-overflow
|
|
|
+ show-overflow
|
|
|
+ sortable
|
|
|
+ title="呆滞量"
|
|
|
+ align="center"
|
|
|
+ field="dullQut"
|
|
|
+ width="50px"
|
|
|
+ >
|
|
|
+ <template slot-scope="scope">
|
|
|
+ {{ parseFloat(scope.row.dullQut).toFixed(2) }}
|
|
|
+ </template>
|
|
|
+ </vxe-column>
|
|
|
+ <vxe-column
|
|
|
+ show-header-overflow
|
|
|
+ show-overflow
|
|
|
+ sortable
|
|
|
+ title="采购周期"
|
|
|
+ align="center"
|
|
|
+ field="buyPeriod"
|
|
|
+ width="50px"
|
|
|
+ />
|
|
|
+ <vxe-column
|
|
|
+ show-header-overflow
|
|
|
+ show-overflow
|
|
|
+ sortable
|
|
|
+ title="中心公共库存"
|
|
|
+ align="center"
|
|
|
+ field="centralPublicStock"
|
|
|
+ width="50"
|
|
|
+ />
|
|
|
+ <vxe-column
|
|
|
+ show-header-overflow
|
|
|
+ show-overflow
|
|
|
+ sortable
|
|
|
+ title="中心仓专属货位"
|
|
|
+ align="center"
|
|
|
+ field="centralWarehouse"
|
|
|
+ width="50"
|
|
|
+ />
|
|
|
+ <vxe-column
|
|
|
+ show-header-overflow
|
|
|
+ show-overflow
|
|
|
+ sortable
|
|
|
+ title="各项目仓库存"
|
|
|
+ align="center"
|
|
|
+ field="eachWarehouseStock"
|
|
|
+ width="50"
|
|
|
+ />
|
|
|
+ <vxe-column
|
|
|
+ show-header-overflow
|
|
|
+ show-overflow
|
|
|
+ sortable
|
|
|
+ title="电商仓库"
|
|
|
+ align="center"
|
|
|
+ field="commerceWarehouse"
|
|
|
+ width="50"
|
|
|
+ />
|
|
|
+ <vxe-column
|
|
|
+ show-header-overflow
|
|
|
+ show-overflow
|
|
|
+ sortable
|
|
|
+ title="区域分仓公共库存"
|
|
|
+ align="center"
|
|
|
+ field="regionPublicStock"
|
|
|
+ width="50"
|
|
|
+ />
|
|
|
+ <vxe-column
|
|
|
+ show-header-overflow
|
|
|
+ show-overflow
|
|
|
+ sortable
|
|
|
+ title="采购在途"
|
|
|
+ align="center"
|
|
|
+ field="buyTransit"
|
|
|
+ width="80px"
|
|
|
+ />
|
|
|
+ <vxe-column
|
|
|
+ show-header-overflow
|
|
|
+ show-overflow
|
|
|
+ sortable
|
|
|
+ title="借出在途"
|
|
|
+ align="center"
|
|
|
+ field="lendTransit"
|
|
|
+ width="80px"
|
|
|
+ />
|
|
|
+ <vxe-column
|
|
|
+ show-header-overflow
|
|
|
+ show-overflow
|
|
|
+ sortable
|
|
|
+ title="调拨在途"
|
|
|
+ align="center"
|
|
|
+ field="transferTransit"
|
|
|
+ width="80px"
|
|
|
+ />
|
|
|
+ <vxe-column
|
|
|
+ show-header-overflow
|
|
|
+ show-overflow
|
|
|
+ sortable
|
|
|
+ title="库存总计"
|
|
|
+ align="center"
|
|
|
+ field="stockTotal"
|
|
|
+ width="80px"
|
|
|
+ />
|
|
|
+ <vxe-column
|
|
|
+ show-header-overflow
|
|
|
+ show-overflow
|
|
|
+ sortable
|
|
|
+ title="最小包装量"
|
|
|
+ align="center"
|
|
|
+ field="minPackage"
|
|
|
+ width="80px"
|
|
|
+ />
|
|
|
+ <vxe-column
|
|
|
+ show-header-overflow
|
|
|
+ show-overflow
|
|
|
+ sortable
|
|
|
+ title="最小订货量"
|
|
|
+ align="center"
|
|
|
+ field="minOrder"
|
|
|
+ width="80px"
|
|
|
+ />
|
|
|
+ <vxe-column
|
|
|
+ show-header-overflow
|
|
|
+ show-overflow
|
|
|
+ sortable
|
|
|
+ title="最小批量"
|
|
|
+ align="center"
|
|
|
+ field="minBatch"
|
|
|
+ width="80px"
|
|
|
+ />
|
|
|
+ <vxe-column
|
|
|
+ show-header-overflow
|
|
|
+ show-overflow
|
|
|
+ sortable
|
|
|
+ title="修改原因"
|
|
|
+ align="center"
|
|
|
+ field="modifyReason"
|
|
|
+ width="150px"
|
|
|
+ >
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-input
|
|
|
+ size="mini"
|
|
|
+ :disabled="
|
|
|
+ scope.row.status !== '1' ||
|
|
|
+ lineDisable ||
|
|
|
+ scope.row.artificialAdjust == '0'
|
|
|
+ "
|
|
|
+ v-model="scope.row.modifyReason"
|
|
|
+ @change="jilu(scope.$rowIndex)"
|
|
|
+ />
|
|
|
+ </template>
|
|
|
+ </vxe-column>
|
|
|
+ <vxe-column
|
|
|
+ show-header-overflow
|
|
|
+ show-overflow
|
|
|
+ sortable
|
|
|
+ title="建议采购量"
|
|
|
+ align="center"
|
|
|
+ field="suggestionPurchase"
|
|
|
+ width="80px"
|
|
|
+ />
|
|
|
+ <vxe-column
|
|
|
+ show-header-overflow
|
|
|
+ show-overflow
|
|
|
+ sortable
|
|
|
+ title="二级品类"
|
|
|
+ align="center"
|
|
|
+ field="materialClassifyTwoName"
|
|
|
+ width="120px"
|
|
|
+ />
|
|
|
+ <vxe-column
|
|
|
+ show-header-overflow
|
|
|
+ show-overflow
|
|
|
+ sortable
|
|
|
+ title="三级品类"
|
|
|
+ align="center"
|
|
|
+ field="materialClassifyThreeName"
|
|
|
+ width="120px"
|
|
|
+ />
|
|
|
+ <vxe-column
|
|
|
+ show-header-overflow
|
|
|
+ show-overflow
|
|
|
+ sortable
|
|
|
+ title="四级品类"
|
|
|
+ align="center"
|
|
|
+ field="materialClassifyFourName"
|
|
|
+ width="120px"
|
|
|
+ />
|
|
|
+ <vxe-column
|
|
|
+ show-header-overflow
|
|
|
+ show-overflow
|
|
|
+ sortable
|
|
|
+ title="采购员"
|
|
|
+ align="center"
|
|
|
+ field="buyerName"
|
|
|
+ width="150px"
|
|
|
+ >
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-input
|
|
|
+ readonly
|
|
|
+ :disabled="scope.row.status !== '1' || lineDisable"
|
|
|
+ size="mini"
|
|
|
+ v-model="scope.row.buyerName"
|
|
|
+ >
|
|
|
+ <el-button
|
|
|
+ size="mini"
|
|
|
+ :disabled="scope.row.status !== '1' || lineDisable"
|
|
|
+ slot="append"
|
|
|
+ icon="el-icon-more"
|
|
|
+ @click="
|
|
|
+ chooseSon(
|
|
|
+ scope.$rowIndex,
|
|
|
+ 'CONTACTS_PARAM',
|
|
|
+ true,
|
|
|
+ '明细采购员'
|
|
|
+ )
|
|
|
+ "
|
|
|
+ ></el-button>
|
|
|
+ </el-input>
|
|
|
+ </template>
|
|
|
+ </vxe-column>
|
|
|
+ <vxe-column
|
|
|
+ show-header-overflow
|
|
|
+ show-overflow
|
|
|
+ sortable
|
|
|
+ title="默认采购组织"
|
|
|
+ align="center"
|
|
|
+ field="purchaseOrgName"
|
|
|
+ width="150px"
|
|
|
+ >
|
|
|
+ </vxe-column>
|
|
|
+ <vxe-column
|
|
|
+ show-header-overflow
|
|
|
+ show-overflow
|
|
|
+ sortable
|
|
|
+ title="有效期"
|
|
|
+ align="center"
|
|
|
+ field="validityPeriod"
|
|
|
+ />
|
|
|
+ <vxe-column
|
|
|
+ show-header-overflow
|
|
|
+ show-overflow
|
|
|
+ sortable
|
|
|
+ title="有效期单位"
|
|
|
+ align="center"
|
|
|
+ field="validityPeriodUnit"
|
|
|
+ width="80px"
|
|
|
+ />
|
|
|
+ <vxe-column
|
|
|
+ show-header-overflow
|
|
|
+ show-overflow
|
|
|
+ sortable
|
|
|
+ title="业务类型"
|
|
|
+ align="center"
|
|
|
+ field="businessType"
|
|
|
+ :formatter="formatterBusinessType"
|
|
|
+ />
|
|
|
+ <vxe-column
|
|
|
+ show-header-overflow
|
|
|
+ show-overflow
|
|
|
+ sortable
|
|
|
+ title="安全库存量"
|
|
|
+ align="center"
|
|
|
+ field="safetyStock"
|
|
|
+ width="80px"
|
|
|
+ >
|
|
|
+ <template slot-scope="scope">
|
|
|
+ {{
|
|
|
+ scope.row.safetyStock
|
|
|
+ ? parseFloat(scope.row.safetyStock).toFixed(2)
|
|
|
+ : "0.00"
|
|
|
+ }}
|
|
|
+ </template>
|
|
|
+ </vxe-column>
|
|
|
+ <vxe-column
|
|
|
+ show-header-overflow
|
|
|
+ show-overflow
|
|
|
+ sortable
|
|
|
+ title="单据来源"
|
|
|
+ align="center"
|
|
|
+ field="billSource"
|
|
|
+ :formatter="formatterSource"
|
|
|
+ />
|
|
|
+ <vxe-column
|
|
|
+ show-header-overflow
|
|
|
+ show-overflow
|
|
|
+ sortable
|
|
|
+ title="注册人"
|
|
|
+ align="center"
|
|
|
+ field="registrant"
|
|
|
+ width="120px"
|
|
|
+ />
|
|
|
+ <vxe-column
|
|
|
+ show-header-overflow
|
|
|
+ show-overflow
|
|
|
+ sortable
|
|
|
+ title="总需与终采差异"
|
|
|
+ align="center"
|
|
|
+ field="buyDiscrepancy"
|
|
|
+ width="80px"
|
|
|
+ />
|
|
|
+ <vxe-column
|
|
|
+ show-header-overflow
|
|
|
+ show-overflow
|
|
|
+ sortable
|
|
|
+ title="集团预测分类"
|
|
|
+ align="center"
|
|
|
+ field="forecastClassification"
|
|
|
+ width="80px"
|
|
|
+ />
|
|
|
+ <vxe-column
|
|
|
+ show-header-overflow
|
|
|
+ show-overflow
|
|
|
+ sortable
|
|
|
+ title="中心仓占有量"
|
|
|
+ align="center"
|
|
|
+ field="centerBinPossession"
|
|
|
+ width="80px"
|
|
|
+ />
|
|
|
+ <vxe-column
|
|
|
+ show-header-overflow
|
|
|
+ show-overflow
|
|
|
+ sortable
|
|
|
+ title="中心仓可用量"
|
|
|
+ align="center"
|
|
|
+ field="centralWarehouseAvailable"
|
|
|
+ width="80px"
|
|
|
+ />
|
|
|
+ <vxe-column
|
|
|
+ show-header-overflow
|
|
|
+ show-overflow
|
|
|
+ sortable
|
|
|
+ title="采购经理审核人"
|
|
|
+ align="center"
|
|
|
+ field="puManagerAuditor"
|
|
|
+ width="120px"
|
|
|
+ />
|
|
|
+ <vxe-column title="操作" align="center" width="50">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-button type="text" size="mini" @click="check(scope.row)"
|
|
|
+ >查看</el-button
|
|
|
+ >
|
|
|
+ </template>
|
|
|
+ </vxe-column>
|
|
|
+ </vxe-table>
|
|
|
+
|
|
|
+ <pagination
|
|
|
+ :total="page.total"
|
|
|
+ :page.sync="page.pageNum"
|
|
|
+ :limit.sync="page.pageSize"
|
|
|
+ @pagination="getList"
|
|
|
+ style="height: 32px; padding: 0 !important; flex: 1; overflow-x: auto"
|
|
|
+ />
|
|
|
+ </el-card>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <Add
|
|
|
+ v-model="isList"
|
|
|
+ v-if="!isList"
|
|
|
+ :pageStu="pageStatus"
|
|
|
+ :disable="disable"
|
|
|
+ :row="rowDetail"
|
|
|
+ :query="{ ...params, ...page }"
|
|
|
+ @refresh="search"
|
|
|
+ />
|
|
|
+
|
|
|
+ <Refers ref="refer" @doSubmit="selectionsToInput" :single="true" />
|
|
|
+
|
|
|
+ <TreeRefers ref="tree" @doSubmit="selectionsToInput2" :single="true" />
|
|
|
+
|
|
|
+ <popDialog ref="materialRefer" @doSubmit="selectMaterial" :single="false" />
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script>
|
|
|
+import Add from "./add";
|
|
|
+import Refers from "@/components/Refers/refers.vue";
|
|
|
+import TreeRefers from "@/components/Refers/treeRefer.vue";
|
|
|
+import popDialog from "@/components/PopDialog/index.vue";
|
|
|
+import CollapseTransition from "@/components/MyCollapse/collapse.vue";
|
|
|
+// 用于物料参照框数据
|
|
|
+import { getRefer } from "@/api/purchase/basic.js";
|
|
|
+import {
|
|
|
+ getSummaryList,
|
|
|
+ auditSummary,
|
|
|
+ cancelAudits,
|
|
|
+ confirmSummary,
|
|
|
+ cancelSummary,
|
|
|
+ shutDownSummary,
|
|
|
+ editSummaryList,
|
|
|
+ exportList,
|
|
|
+ exportItems,
|
|
|
+} from "@/api/purchase/DemandSummary.js";
|
|
|
+import useColumns from "./columns";
|
|
|
+import { dicts } from "./dicts";
|
|
|
+
|
|
|
+export default {
|
|
|
+ name: "demandSummary",
|
|
|
+ dicts: dicts,
|
|
|
+ components: {
|
|
|
+ Add,
|
|
|
+ CollapseTransition,
|
|
|
+ Refers,
|
|
|
+ TreeRefers,
|
|
|
+ popDialog,
|
|
|
+ ElSuperSearch: () => import("@/components/super-search/index.vue"),
|
|
|
+ },
|
|
|
+ data() {
|
|
|
+ const { SearchColumns } = useColumns();
|
|
|
+ const page = this.$init.page();
|
|
|
+ const params = this.$init.params(SearchColumns);
|
|
|
+ return {
|
|
|
+ params: { ...params, rowStatus: ["1"] },
|
|
|
+ page: page,
|
|
|
+ SearchColumns: SearchColumns,
|
|
|
+ size: "mini",
|
|
|
+ loading: true,
|
|
|
+ hangStatus(row) {
|
|
|
+ switch (row.row.status) {
|
|
|
+ case "0":
|
|
|
+ return "需补货";
|
|
|
+ case "1":
|
|
|
+ return "待计划确认";
|
|
|
+ case "2":
|
|
|
+ return "计划已确认";
|
|
|
+ case "3":
|
|
|
+ return "计划已审核";
|
|
|
+ case "4":
|
|
|
+ return "行关闭";
|
|
|
+ case "5":
|
|
|
+ return "总供应可满足";
|
|
|
+ }
|
|
|
+ },
|
|
|
+ formatterBusinessType(row) {
|
|
|
+ switch (row.row.businessType) {
|
|
|
+ case "ZQBH":
|
|
|
+ return "周期备货";
|
|
|
+ case "FXXQ":
|
|
|
+ return "分销需求";
|
|
|
+ case "TSXQ":
|
|
|
+ return "特殊采购需求";
|
|
|
+ case "BDXQ":
|
|
|
+ return "补单需求";
|
|
|
+ case "JJXQ":
|
|
|
+ return "紧急需求单";
|
|
|
+ case "XPXQ":
|
|
|
+ return "新品需求";
|
|
|
+ case "HZBM":
|
|
|
+ return "合作部门需求";
|
|
|
+ }
|
|
|
+ },
|
|
|
+ formatterSource(row) {
|
|
|
+ switch (row.row.billSource) {
|
|
|
+ case "1":
|
|
|
+ return "手工导入";
|
|
|
+ case "2":
|
|
|
+ return "按客户计算";
|
|
|
+ case "3":
|
|
|
+ return "按仓库计算";
|
|
|
+ case "4":
|
|
|
+ return "手工新增";
|
|
|
+ }
|
|
|
+ },
|
|
|
+ expanded: false,
|
|
|
+ // 页面配置
|
|
|
+ isList: true,
|
|
|
+ // 页面状态
|
|
|
+ pageStatus: "",
|
|
|
+
|
|
|
+ personOptions: [],
|
|
|
+ classOptions: [],
|
|
|
+ deptOptions: [],
|
|
|
+ auditOptions: [],
|
|
|
+ customerOptions: [],
|
|
|
+ lastWarehouseOptions: [],
|
|
|
+ lastAllocationOptions: [],
|
|
|
+ orgOptions: [],
|
|
|
+ supplierOptions: [],
|
|
|
+
|
|
|
+ referCondition: {
|
|
|
+ type: "",
|
|
|
+ isPage: true,
|
|
|
+ title: "",
|
|
|
+ },
|
|
|
+ tableList: [],
|
|
|
+ total: 0,
|
|
|
+ rowDetail: {},
|
|
|
+ disable: false,
|
|
|
+ lineDisable: true,
|
|
|
+ ids: [],
|
|
|
+ allSelection: [],
|
|
|
+ // 子表index
|
|
|
+ tableIndex: null,
|
|
|
+ // referConditionMx: {
|
|
|
+ // type: '',
|
|
|
+ // isPage: true,
|
|
|
+ // title: ''
|
|
|
+ // }
|
|
|
+ // 用于保存临时记录修改行的数组
|
|
|
+ record: [],
|
|
|
+ };
|
|
|
+ },
|
|
|
+ created() {
|
|
|
+ this.$nextTick(() => {
|
|
|
+ // 手动将表格和工具栏进行关联
|
|
|
+ this.$refs.table.connect(this.$refs.xToolbar1);
|
|
|
+ this.getList();
|
|
|
+ });
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ checkColumnMethod({ column }) {
|
|
|
+ if (column.property === "role") {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ return true;
|
|
|
+ },
|
|
|
+ resizableChangeEvent() {
|
|
|
+ const columns = this.$refs.table.getColumns();
|
|
|
+ const customData = columns.map((column) => {
|
|
|
+ return {
|
|
|
+ width: column.renderWidth,
|
|
|
+ };
|
|
|
+ });
|
|
|
+ // console.log(customData)
|
|
|
+ },
|
|
|
+ // 单元格标红
|
|
|
+ cellClassName({ row, column, rowIndex, columnIndex }) {
|
|
|
+ if (column.title == "需求可用周期" && Number(row.demandCycle) > 1.5) {
|
|
|
+ return "success-row";
|
|
|
+ }
|
|
|
+ },
|
|
|
+ // 指定列合计
|
|
|
+ getSummaries(param) {
|
|
|
+ const { columns, data } = param;
|
|
|
+ const sums = [];
|
|
|
+ columns.forEach((column, index) => {
|
|
|
+ if (index === 0) {
|
|
|
+ sums.push("合计");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ const values = data.map((item) => Number(item[column.property]));
|
|
|
+ if (
|
|
|
+ column.property === "demandNum" ||
|
|
|
+ column.property === "netDemandNum" ||
|
|
|
+ column.property === "artificialAdjust" ||
|
|
|
+ column.property === "suggestBuyQty" ||
|
|
|
+ column.property === "finalBuyQty"
|
|
|
+ ) {
|
|
|
+ sums[index] = values.reduce((prev, curr) => {
|
|
|
+ const value = Number(curr);
|
|
|
+ if (!isNaN(value)) {
|
|
|
+ return prev + curr;
|
|
|
+ } else {
|
|
|
+ return prev;
|
|
|
+ }
|
|
|
+ }, 0);
|
|
|
+ sums[index];
|
|
|
+ }
|
|
|
+ });
|
|
|
+ return [sums];
|
|
|
+ },
|
|
|
+ // 搜索
|
|
|
+ search() {
|
|
|
+ this.getList();
|
|
|
+ },
|
|
|
+ useReset() {
|
|
|
+ this.page = this.$init.page();
|
|
|
+ this.params = this.$init.params(SearchColumns);
|
|
|
+ this.getList();
|
|
|
+ },
|
|
|
+ getList() {
|
|
|
+ let { params, page } = this;
|
|
|
+ let param = {
|
|
|
+ ...params,
|
|
|
+ ...page,
|
|
|
+ materialClassifyFour: params.materialClassifyFour
|
|
|
+ ? params.materialClassifyFour.map((item) => item.id)
|
|
|
+ : undefined,
|
|
|
+ };
|
|
|
+ console.log(param, "param");
|
|
|
+ getSummaryList(param)
|
|
|
+ .then((res) => {
|
|
|
+ if (res.code === 200) {
|
|
|
+ this.tableList = res.rows;
|
|
|
+ this.page.total = res.total;
|
|
|
+ }
|
|
|
+ })
|
|
|
+ .then(() => {
|
|
|
+ // 合计不显示重绘
|
|
|
+ this.$refs.table.doLayout();
|
|
|
+ this.loading = false;
|
|
|
+ })
|
|
|
+ .catch((err) => {
|
|
|
+ this.loading = false;
|
|
|
+ });
|
|
|
+ },
|
|
|
+ selectAllEvent({ checked }) {
|
|
|
+ const selection = this.$refs.table.getCheckboxRecords();
|
|
|
+ console.log("选中", selection);
|
|
|
+ this.allSelection = selection;
|
|
|
+ this.ids = selection.map((item) => item.demandItemId);
|
|
|
+ console.log("选中数组", this.ids.join());
|
|
|
+ },
|
|
|
+ handleSelectionChange({ checked }) {
|
|
|
+ const selection = this.$refs.table.getCheckboxRecords();
|
|
|
+ console.log("选中", selection);
|
|
|
+ this.allSelection = selection;
|
|
|
+ this.ids = selection.map((item) => item.demandItemId);
|
|
|
+ console.log("选中数组", this.ids.join());
|
|
|
+ },
|
|
|
+ handleCommand() {
|
|
|
+ this.$modal.loading("正在导出数据,请稍后...");
|
|
|
+ let param = this.queryParams;
|
|
|
+ param.pageSize = this.total;
|
|
|
+ exportItems(param).then((res) => {
|
|
|
+ this.$modal.closeLoading();
|
|
|
+ const blob = new Blob([res], {
|
|
|
+ type: "application/vnd.ms-excel;charset=UTF-8",
|
|
|
+ }); // 创建一个类文件对象:Blob对象表示一个不可变的、原始数据的类文件对象
|
|
|
+ const downloadElement = document.createElement("a"); //创建a标签
|
|
|
+ const href = window.URL.createObjectURL(blob); // 创建下载的链接
|
|
|
+ // var temp = res.headers["content-disposition"];
|
|
|
+ // var fileName = decodeURIComponent(temp.split("filename=")[1]); // 中文需要转码 (前端乱码)
|
|
|
+ // var name = fileName.split(";")[0]; //切割成文件名
|
|
|
+ downloadElement.href = href; //下载地址
|
|
|
+ downloadElement.download =
|
|
|
+ "采购需求处理导出" + this.parseTime(new Date().getTime()) + ".xlsx"; // 下载后文件名
|
|
|
+ document.body.appendChild(downloadElement);
|
|
|
+ downloadElement.click(); // 点击下载
|
|
|
+ document.body.removeChild(downloadElement); // 下载完成移除元素
|
|
|
+ window.URL.revokeObjectURL(href); // 释放blob对象
|
|
|
+ });
|
|
|
+ },
|
|
|
+ check(row) {
|
|
|
+ this.isList = false;
|
|
|
+ this.pageStatus = "check";
|
|
|
+ this.rowDetail = row;
|
|
|
+ this.disable = true;
|
|
|
+ },
|
|
|
+ doubleClick({ row }) {
|
|
|
+ this.isList = false;
|
|
|
+ this.pageStatus = "check";
|
|
|
+ this.rowDetail = row;
|
|
|
+ this.disable = true;
|
|
|
+ },
|
|
|
+ // 表格选中数据
|
|
|
+ rowSelect(row) {
|
|
|
+ // console.log(row)
|
|
|
+ this.$refs.table.toggleCheckboxRow(row.row);
|
|
|
+ },
|
|
|
+ drop() {
|
|
|
+ this.expanded = !this.expanded;
|
|
|
+ },
|
|
|
+ editList() {
|
|
|
+ console.log("Lists`````", this.tableList);
|
|
|
+ this.lineDisable = false;
|
|
|
+ },
|
|
|
+ cancelEdit() {
|
|
|
+ this.lineDisable = true;
|
|
|
+ this.getList();
|
|
|
+ },
|
|
|
+ saveList() {
|
|
|
+ // console.log('记录',this.record)
|
|
|
+ // 对记录的数据进行去重
|
|
|
+ let newRecord = Array.from(new Set(this.record));
|
|
|
+ // console.log('去重后的', newRecord)
|
|
|
+ let changeList = newRecord.map((i) => {
|
|
|
+ return this.tableList[i];
|
|
|
+ });
|
|
|
+ // console.log('shuzu', changeList)
|
|
|
+ editSummaryList(changeList).then((res) => {
|
|
|
+ if (res.code === 200) {
|
|
|
+ this.$modal.notifySuccess("保存成功");
|
|
|
+ this.lineDisable = true;
|
|
|
+ this.getList();
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ confirms() {
|
|
|
+ if (this.ids.length == 0) {
|
|
|
+ this.$modal.notifyWarning("请选中至少一条数据");
|
|
|
+ } else {
|
|
|
+ confirmSummary(this.allSelection).then((res) => {
|
|
|
+ if (res.code === 200) {
|
|
|
+ this.$modal.notifySuccess("确认成功");
|
|
|
+ this.getList();
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ },
|
|
|
+ cancels() {
|
|
|
+ if (this.ids.length == 0) {
|
|
|
+ this.$modal.notifyWarning("请选中至少一条数据");
|
|
|
+ } else {
|
|
|
+ let param = this.ids.join();
|
|
|
+ cancelSummary(param).then((res) => {
|
|
|
+ if (res.code === 200) {
|
|
|
+ this.$modal.notifySuccess("取消成功");
|
|
|
+ this.getList();
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ },
|
|
|
+ cancelAudit() {
|
|
|
+ if (this.ids.length == 0) {
|
|
|
+ this.$modal.notifyWarning("请选中至少一条数据");
|
|
|
+ } else {
|
|
|
+ let param = this.ids.join();
|
|
|
+ cancelAudits(param).then((res) => {
|
|
|
+ if (res.code === 200) {
|
|
|
+ this.$modal.notifySuccess("审核成功");
|
|
|
+ this.getList();
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ },
|
|
|
+ audits() {
|
|
|
+ if (this.ids.length == 0) {
|
|
|
+ this.$modal.notifyWarning("请选中至少一条数据");
|
|
|
+ } else {
|
|
|
+ let param = this.ids.join();
|
|
|
+ auditSummary(param)
|
|
|
+ .then((res) => {
|
|
|
+ if (res.code === 200) {
|
|
|
+ this.$modal.notifySuccess("审核成功");
|
|
|
+ this.getList();
|
|
|
+ }
|
|
|
+ })
|
|
|
+ .catch((err) => {
|
|
|
+ this.getList();
|
|
|
+ });
|
|
|
+ }
|
|
|
+ },
|
|
|
+ // 行关闭
|
|
|
+ closeitem() {
|
|
|
+ let param = this.ids.join();
|
|
|
+ shutDownSummary(param).then((res) => {
|
|
|
+ if (res.code === 200) {
|
|
|
+ this.$modal.notifySuccess("操作成功");
|
|
|
+ this.getList();
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ closeLine() {
|
|
|
+ if (this.ids.length == 0) {
|
|
|
+ this.$modal.notifyWarning("请选中至少一条数据");
|
|
|
+ } else {
|
|
|
+ console.log("选中数组", this.allSelection);
|
|
|
+ let item = this.allSelection.some((item) => {
|
|
|
+ return item.demandNum >= 2;
|
|
|
+ });
|
|
|
+ if (item) {
|
|
|
+ this.$modal
|
|
|
+ .confirm("选中项有多个需求单位,是否确定关闭?")
|
|
|
+ .then(function () {})
|
|
|
+ .then(() => {
|
|
|
+ this.closeitem();
|
|
|
+ })
|
|
|
+ .catch(() => {});
|
|
|
+ } else {
|
|
|
+ this.closeitem();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ // 搜索区参照选择
|
|
|
+ chooseRefer(type, isPage, title, stordocId) {
|
|
|
+ this.referCondition.type = type;
|
|
|
+ this.referCondition.isPage = isPage;
|
|
|
+ this.referCondition.title = title;
|
|
|
+ this.referCondition.stordocId = stordocId;
|
|
|
+ this.$refs.refer.init(this.referCondition);
|
|
|
+ },
|
|
|
+ selectionsToInput(selection) {
|
|
|
+ if (this.referCondition.title == "采购员") {
|
|
|
+ this.personOptions = selection;
|
|
|
+ this.queryParams.buyer = selection[0].code;
|
|
|
+ this.queryParams.buyerName = selection[0].name;
|
|
|
+ }
|
|
|
+ if (this.referCondition.title == "业务部门") {
|
|
|
+ this.deptOptions = selection;
|
|
|
+ this.queryParams.departmentName = selection[0].id;
|
|
|
+ }
|
|
|
+ if (this.referCondition.title == "审核人") {
|
|
|
+ this.auditOptions = selection;
|
|
|
+ this.queryParams.puManagerAuditor = selection[0].code;
|
|
|
+ }
|
|
|
+ if (this.referCondition.title == "需求客户") {
|
|
|
+ this.customerOptions = selection;
|
|
|
+ this.queryParams.customer = selection[0].id;
|
|
|
+ }
|
|
|
+ if (this.referCondition.title == "供应仓库") {
|
|
|
+ this.lastWarehouseOptions = selection;
|
|
|
+ this.queryParams.lastWarehouse = selection[0].id;
|
|
|
+ }
|
|
|
+ if (this.referCondition.title == "供应库位") {
|
|
|
+ this.lastAllocationOptions = selection;
|
|
|
+ this.queryParams.lastAllocation = selection[0].id;
|
|
|
+ }
|
|
|
+ if (this.referCondition.title == "默认采购组织") {
|
|
|
+ this.orgOptions = selection;
|
|
|
+ this.queryParams.purchaseOrg = selection[0].id;
|
|
|
+ }
|
|
|
+ if (this.referCondition.title == "明细采购员") {
|
|
|
+ console.log("选择进了吗", this.tableList);
|
|
|
+ this.record.push(this.tableIndex);
|
|
|
+ this.tableList[this.tableIndex].buyer = selection[0].code;
|
|
|
+ this.tableList[this.tableIndex].buyerName = selection[0].name;
|
|
|
+ }
|
|
|
+ if (this.referCondition.type == "SUPPLIER_PARAM") {
|
|
|
+ this.supplierOptions = selection;
|
|
|
+ this.queryParams.additionalSupplier = selection[0].id;
|
|
|
+ }
|
|
|
+ // if (this.referCondition.title == '明细默认采购组织') {
|
|
|
+ // console.log('选择进了吗',this.tableList)
|
|
|
+ // this.tableList[this.tableIndex].purchaseOrg = selection[0].id
|
|
|
+ // this.tableList[this.tableIndex].purchaseOrgName = selection[0].name
|
|
|
+ // }
|
|
|
+ },
|
|
|
+ // 搜索区树形选择
|
|
|
+ chooseTreeRefer(type, isPage, title) {
|
|
|
+ this.referCondition.type = type;
|
|
|
+ this.referCondition.isPage = isPage;
|
|
|
+ this.referCondition.title = title;
|
|
|
+ this.$refs.tree.init(this.referCondition);
|
|
|
+ },
|
|
|
+ selectionsToInput2(selection) {
|
|
|
+ this.classOptions = selection;
|
|
|
+ this.queryParams.materialClassifyFour = selection.map((item) => {
|
|
|
+ return item.id;
|
|
|
+ });
|
|
|
+ },
|
|
|
+ // 搜索区物料编码
|
|
|
+ chooseMaterial() {
|
|
|
+ this.$refs.materialRefer.init();
|
|
|
+ },
|
|
|
+ selectMaterial(selection) {
|
|
|
+ console.log("选择的物料", selection);
|
|
|
+ this.queryParams.materialCodeList = selection.map((item) => {
|
|
|
+ return item.code;
|
|
|
+ });
|
|
|
+ console.log(this.queryParams.materialCodeList);
|
|
|
+ this.queryParams.names = selection
|
|
|
+ .map((item) => {
|
|
|
+ return item.name;
|
|
|
+ })
|
|
|
+ .join(",");
|
|
|
+ },
|
|
|
+ // 粘贴来的数据
|
|
|
+ async pasteMe(e) {
|
|
|
+ this.$modal.loading("正在粘贴数据...");
|
|
|
+ e.preventDefault(); //阻止默认粘贴事件
|
|
|
+ let source = e.clipboardData.getData("Text");
|
|
|
+ console.log("source", source);
|
|
|
+ // 这里区分普通复制和在表格内复制,判断是否包含','
|
|
|
+ // 没找到,就通过表格复制
|
|
|
+ if (source.indexOf(",") === -1) {
|
|
|
+ // 首先对源头进行解析
|
|
|
+ let rows = source.split("\r\n"); // 拆成一个数组
|
|
|
+ // 数组去除空字符串
|
|
|
+ rows = rows.filter((item) => {
|
|
|
+ return item && item.trim();
|
|
|
+ });
|
|
|
+ await getRefer({ type: "MATERIAL_PARAM", materialCodeList: rows })
|
|
|
+ .then((res) => {
|
|
|
+ this.$modal.closeLoading();
|
|
|
+ if (res.code === 200) {
|
|
|
+ let rowList = res.rows;
|
|
|
+ console.log("粘贴的", rowList);
|
|
|
+ this.queryParams.materialCodeList = rowList.map((item) => {
|
|
|
+ return item.code;
|
|
|
+ });
|
|
|
+ this.queryParams.names = rowList
|
|
|
+ .map((item) => {
|
|
|
+ return item.code;
|
|
|
+ })
|
|
|
+ .join(",");
|
|
|
+ }
|
|
|
+ })
|
|
|
+ .catch((err) => {
|
|
|
+ this.$modal.closeLoading();
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ // 找到了,按,分割
|
|
|
+ let codelist = source.split(",");
|
|
|
+ console.log("按照逗号分隔", codelist);
|
|
|
+ // 数组去除空字符串
|
|
|
+ codelist = codelist.filter((item) => {
|
|
|
+ return item && item.trim();
|
|
|
+ });
|
|
|
+ this.queryParams.materialCodeList = codelist;
|
|
|
+ this.queryParams.names = codelist.join(",");
|
|
|
+ this.$modal.closeLoading();
|
|
|
+ }
|
|
|
+ },
|
|
|
+ // 明细行选择业务部门参照带出业务部门数据
|
|
|
+ chooseSon(index, type, isPage, title) {
|
|
|
+ this.tableIndex = index;
|
|
|
+ this.referCondition.type = type;
|
|
|
+ this.referCondition.isPage = isPage;
|
|
|
+ this.referCondition.title = title;
|
|
|
+ this.$refs.refer.init(this.referCondition);
|
|
|
+ },
|
|
|
+ jilu(index) {
|
|
|
+ this.record.push(index);
|
|
|
+ },
|
|
|
+ },
|
|
|
+};
|
|
|
+</script>
|
|
|
+
|
|
|
+<style lang="scss" scoped>
|
|
|
+#demandSummary {
|
|
|
+ padding: 12px;
|
|
|
+ box-sizing: border-box;
|
|
|
+ overflow-y: scroll;
|
|
|
+}
|
|
|
+.btn_grooup {
|
|
|
+ margin: 10px 0;
|
|
|
+ display: flex;
|
|
|
+ justify-content: flex-end;
|
|
|
+}
|
|
|
+.lines {
|
|
|
+ margin-top: 0;
|
|
|
+}
|
|
|
+.hang {
|
|
|
+ margin: auto;
|
|
|
+}
|
|
|
+.hang ::v-deep .el-form-item__content {
|
|
|
+ margin-left: 0px !important;
|
|
|
+}
|
|
|
+.el-pagination {
|
|
|
+ margin-top: 10px;
|
|
|
+ text-align: right;
|
|
|
+}
|
|
|
+::v-deep .vxe-body--row > td {
|
|
|
+ border-right: none;
|
|
|
+}
|
|
|
+::v-deep .el-card .el-form-item {
|
|
|
+ margin-bottom: 3px;
|
|
|
+}
|
|
|
+::v-deep .vxe-body--row .success-row {
|
|
|
+ background-color: #ff8a8a !important;
|
|
|
+}
|
|
|
+</style>
|
|
|
+<style>
|
|
|
+.exporttable {
|
|
|
+ border: solid 1px #c0c0c0;
|
|
|
+}
|
|
|
+</style>
|