| src/router/index.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/store/modules/permission.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/views/CaiGouGuanLi/CaiGouRuKu/Kf_POStockInBillList.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/views/ProductInBill/Kf_ProductInBillList.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/views/gyMaterial/GyMaterial.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/views/sell/sellOut/sellOutBill.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/views/warehouse/barcodeMaster/Gy_BarCodeBill.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/views/warehouse/barcodeMaster/Gy_BarCodeBillList.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/router/index.js
@@ -138,6 +138,31 @@ ], }, //#endregion //#region 条码主挡 { path: "/warehouse/barcodeMaster/Gy_BarCodeBillList", component: Layout, hidden: true, redirect: "noredirect", meta: { breadcrumb: false, // 如果设置为false,则不会在breadcrumb面包屑中显示 activeMenu: "/warehouse/barcodeMaster/Gy_BarCodeBillList", // 当路由设置了该属性,则会高亮相对应的侧边栏。 }, children: [ { path: "/warehouse/barcodeMaster/Gy_BarCodeBillList", component: () => import("@/views/warehouse/barcodeMaster/Gy_BarCodeBillList.vue"), name: "Gy_BarCodeBillList", meta: { title: "条码主档", activeMenu: "warehouse/barcodeMaster", }, }, ], }, //#endregion //#endregion //#region 仓存管理 src/store/modules/permission.js
@@ -423,6 +423,21 @@ name: "Gy_BarCodeBill", path: "Gy_BarCodeBill", }, { meta: { icon: "build", link: null, noCache: false, title: "条码主档", }, component: () => import( "@/views/warehouse/barcodeMaster/Gy_BarCodeBillList.vue" ), hidden: false, name: "Gy_BarCodeBillList", path: "Gy_BarCodeBillList", }, ], }, ], src/views/CaiGouGuanLi/CaiGouRuKu/Kf_POStockInBillList.vue
@@ -150,6 +150,9 @@ <el-col :span="1.5"> <el-button type="primary" icon="el-icon-printer" size="mini" :disabled="single" @click="get_BarCodeDetail">条码明细</el-button> </el-col> <el-col :span="1.5"> <el-button type="primary" icon="el-icon-printer" size="mini" :disabled="single" @click="get_PackStockDetail">包装容器出入库明细</el-button> </el-col> </el-row> <div class="tableBox" v-loading="loading"> <el-table :data="tableData" ref="tableData" max-height="710" :summary-method="getSummaries" @@ -195,6 +198,8 @@ </el-dialog> <!-- 条码明细 --> <BarCodeDetail :visible.sync="barCodeDetailShow" ref="barcodeDetail"/> <!-- 包装容器出入库明细 --> <PackStockDetail :visible.sync="packStockDetailShow" ref="packStockDetail"/> </div> </div> </template> @@ -205,11 +210,12 @@ import RowSettings from '@/views/component/rowSettings' //列设置组件 import PrintList from '@/views/component/printList' //打印组件 import BarCodeDetail from '@/views/component/BarCodeDetail' //条码明细组件 import PackStockDetail from '@/views/component/PackStockDetail' //条码明细组件 import Edit from '@/views/CaiGouGuanLi/CaiGouRuKu/Kf_POStockInBillEdit' //编辑页面组件 export default { name: 'Kf_POStockInBillList', components: { RowSettings, Edit, PrintList,BarCodeDetail }, components: { RowSettings, Edit, PrintList,BarCodeDetail,PackStockDetail }, data() { return { baseURL: process.env.VUE_APP_BASE_API, //后端接口前缀(后端服务器ip地址) @@ -265,6 +271,7 @@ openRowHide: false, //列设置组件显示标记 rowHideShow: false, //列设置组件容器显示标记 barCodeDetailShow: false, //条码明细组件容器显示标记 packStockDetailShow:false, //包装容器出入库明细容器显示标记 @@ -863,6 +870,19 @@ }, //#endregion //#region 包装容器出入库明细 get_PackStockDetail() { // if (this.selectedRow.length !== 1) { // this.$message.warning('请选择一行数据查看条码明细!') // return // } this.packStockDetailShow = true this.$nextTick(() => { this.$refs.packStockDetail.open(this.rowForm) }) }, //#endregion //#region 退出 close() { // this.reset() src/views/ProductInBill/Kf_ProductInBillList.vue
@@ -141,6 +141,9 @@ <el-col :span="1.5"> <el-button type="primary" icon="el-icon-printer" size="mini" :disabled="single" @click="get_BarCodeDetail">条码明细</el-button> </el-col> <el-col :span="1.5"> <el-button type="primary" icon="el-icon-printer" size="mini" :disabled="single" @click="get_PackStockDetail">包装容器出入库明细</el-button> </el-col> </el-row> <div class="tableBox" v-loading="loading"> <el-table :data="tableData" ref="tableData" max-height="710" :summary-method="getSummaries" @@ -186,6 +189,8 @@ </el-dialog> <!-- 条码明细 --> <BarCodeDetail :visible.sync="barCodeDetailShow" ref="barcodeDetail"/> <!-- 包装容器出入库明细 --> <PackStockDetail :visible.sync="packStockDetailShow" ref="packStockDetail"/> </div> </div> </template> @@ -196,11 +201,12 @@ import RowSettings from '@/views/component/rowSettings' //列设置组件 import PrintList from '@/views/component/printList' //打印组件 import BarCodeDetail from '@/views/component/BarCodeDetail' //条码明细组件 import PackStockDetail from '@/views/component/PackStockDetail' //条码明细组件 import Edit from '@/views/ProductInBill/Kf_ProductInBillEdit' //编辑页面组件 export default { name: 'Kf_ProductInBillList', components: { RowSettings, Edit, PrintList,BarCodeDetail }, components: { RowSettings, Edit, PrintList,BarCodeDetail,PackStockDetail }, data() { return { baseURL: process.env.VUE_APP_BASE_API, //后端接口前缀(后端服务器ip地址) @@ -253,6 +259,7 @@ openRowHide: false, //列设置组件显示标记 rowHideShow: false, //列设置组件容器显示标记 barCodeDetailShow: false, //条码明细组件容器显示标记 packStockDetailShow:false, //包装容器出入库明细容器显示标记 @@ -837,6 +844,19 @@ }) }, //#endregion //#region 包装容器出入库明细 get_PackStockDetail() { // if (this.selectedRow.length !== 1) { // this.$message.warning('请选择一行数据查看条码明细!') // return // } this.packStockDetailShow = true this.$nextTick(() => { this.$refs.packStockDetail.open(this.rowForm) }) }, //#endregion //#region 退出 close() { src/views/gyMaterial/GyMaterial.vue
@@ -3,65 +3,28 @@ <el-card style="margin-bottom: 10px"> <el-form :inline="true" :model="queryParams" ref="queryForm" class="mb8"> <el-form-item label="物料代码" prop="HNumber"> <el-input v-model="queryParams.HNumber" placeholder="请输入物料代码" style="width: 160px" /> <el-input v-model="queryParams.HNumber" placeholder="请输入物料代码" style="width: 160px" /> </el-form-item> <el-form-item label="物料名称" prop="HName"> <el-input v-model="queryParams.HName" placeholder="请输入物料名称" style="width: 160px" /> <el-input v-model="queryParams.HName" placeholder="请输入物料名称" style="width: 160px" /> </el-form-item> <el-form-item label="组织名称" prop="HOrgID"> <el-select v-model="queryParams.HOrgID" placeholder="请选择组织" style="width: 160px" > <el-option v-for="(item, index) in organizationOptions" :key="index" :label="item.Name" :value="item.ID.toString()" /> <el-select v-model="queryParams.HOrgID" placeholder="请选择组织" style="width: 160px"> <el-option v-for="(item, index) in organizationOptions" :key="index" :label="item.Name" :value="item.ID.toString()" /> </el-select> </el-form-item> <el-form-item label="项目号" prop="HProject"> <el-select v-model="queryParams.HProject" placeholder="请选择项目号" style="width: 160px" > <el-option v-for="item in projectOptions" :key="item.HName" :label="item.HName" :value="item.HName" /> <el-select v-model="queryParams.HProject" placeholder="请选择项目号" style="width: 160px"> <el-option v-for="item in projectOptions" :key="item.HName" :label="item.HName" :value="item.HName" /> </el-select> </el-form-item> <el-form-item label="重新同步"> <el-input v-model="queryParams.HNumber2" placeholder="请输入物料代码" style="width: 160px" /> <el-button type="primary" size="mini" @click="handleResCnz" style="margin-left: 10px" >重新同步</el-button > <el-input v-model="queryParams.HNumber2" placeholder="请输入物料代码" style="width: 160px" /> <el-button type="primary" size="mini" @click="handleResCnz" style="margin-left: 10px">重新同步</el-button> </el-form-item> <el-form-item> <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery" >搜索</el-button > <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button> <el-button size="mini" @click="resetQuery">重置</el-button> </el-form-item> </el-form> @@ -69,11 +32,7 @@ <el-collapse v-model="activeCollapse" class="filter-collapse"> <el-collapse-item title="更多" name="more"> <el-form-item label="规格型号" prop="HModel"> <el-input v-model="queryParams.HModel" placeholder="请输入规格型号" style="width: 160px" /> <el-input v-model="queryParams.HModel" placeholder="请输入规格型号" style="width: 160px" /> </el-form-item> <el-card class="box-card" style="margin-top: 20px"> <div slot="header" class="clearfix"><span>过滤</span></div> @@ -81,126 +40,66 @@ <el-form-item label-width="0"> <el-row> <el-col :span="7"> <el-select v-model="queryParams.ColName" placeholder="请选择" style="width: 100%" > <el-select v-model="queryParams.ColName" placeholder="请选择" style="width: 100%"> <!-- <el-option value="" label=""></el-option> --> <el-option v-for="(item, index) in visibleColumns" :key="index" :label="item.title" :value="item.field" ></el-option> <el-option v-for="(item, index) in visibleColumns" :key="index" :label="item.title" :value="item.field"></el-option> </el-select> </el-col> <el-col :span="6" style="padding: 0 10px"> <el-select v-model="queryParams.Comparator" placeholder="请选择" style="width: 100%" > <el-select v-model="queryParams.Comparator" placeholder="请选择" style="width: 100%"> <!-- <el-option value="0" label=""></el-option> --> <el-option v-for="(item, index) in comparatorList" :key="index" :label="item.label" :value="item.value" ></el-option> <el-option v-for="(item, index) in comparatorList" :key="index" :label="item.label" :value="item.value"></el-option> </el-select> </el-col> <el-col :span="11"> <el-input v-model="queryParams.ColContent" placeholder="请输入" clearable @keyup.enter.native="handleQuery" /> <el-input v-model="queryParams.ColContent" placeholder="请输入" clearable @keyup.enter.native="handleQuery" /> </el-col> </el-row> </el-form-item> <el-form-item label-width="0"> <el-row> <el-col :span="7"> <el-select v-model="queryParams.ColName1" placeholder="请选择" style="width: 100%" > <el-select v-model="queryParams.ColName1" placeholder="请选择" style="width: 100%"> <!-- <el-option value="0" label=""></el-option> --> <el-option v-for="(item, index) in visibleColumns" :key="index" :label="item.title" :value="item.field" ></el-option> <el-option v-for="(item, index) in visibleColumns" :key="index" :label="item.title" :value="item.field"></el-option> </el-select> </el-col> <el-col :span="6" style="padding: 0 10px"> <el-select v-model="queryParams.Comparator1" placeholder="请选择" style="width: 100%" > <el-select v-model="queryParams.Comparator1" placeholder="请选择" style="width: 100%"> <!-- <el-option value="0" label=""></el-option> --> <el-option v-for="(item, index) in comparatorList" :key="index" :label="item.label" :value="item.value" ></el-option> <el-option v-for="(item, index) in comparatorList" :key="index" :label="item.label" :value="item.value"></el-option> </el-select> </el-col> <el-col :span="11"> <el-input v-model="queryParams.ColContent1" placeholder="请输入" clearable @keyup.enter.native="handleQuery" /> <el-input v-model="queryParams.ColContent1" placeholder="请输入" clearable @keyup.enter.native="handleQuery" /> </el-col> </el-row> </el-form-item> <el-form-item label-width="0"> <el-row> <el-col :span="7"> <el-select v-model="queryParams.ColName2" placeholder="请选择" style="width: 100%" > <el-select v-model="queryParams.ColName2" placeholder="请选择" style="width: 100%"> <!-- <el-option value="0" label=""></el-option> --> <el-option v-for="(item, index) in visibleColumns" :key="index" :label="item.title" :value="item.field" ></el-option> <el-option v-for="(item, index) in visibleColumns" :key="index" :label="item.title" :value="item.field"></el-option> </el-select> </el-col> <el-col :span="6" style="padding: 0 10px"> <el-select v-model="queryParams.Comparator2" placeholder="请选择" style="width: 100%" > <el-select v-model="queryParams.Comparator2" placeholder="请选择" style="width: 100%"> <!-- <el-option value="0" label=""></el-option> --> <el-option v-for="(item, index) in comparatorList" :key="index" :label="item.label" :value="item.value" ></el-option> <el-option v-for="(item, index) in comparatorList" :key="index" :label="item.label" :value="item.value"></el-option> </el-select> </el-col> <el-col :span="11"> <el-input v-model="queryParams.ColContent2" placeholder="请输入" clearable @keyup.enter.native="handleQuery" /> <el-input v-model="queryParams.ColContent2" placeholder="请输入" clearable @keyup.enter.native="handleQuery" /> </el-col> </el-row> </el-form-item> @@ -209,15 +108,13 @@ </el-collapse-item> </el-collapse> </el-form> <div style=" <div style=" text-align: center; font-size: 15px; font-weight: bold; color: #fc9393; margin: 20px 0; " > "> {{ currentFilterScheme }} </div> </el-card> @@ -241,25 +138,19 @@ <el-button size="mini" :disabled="single" @click="handleEdit">编辑</el-button> </el-col> <el-col :span="1.5"> <el-button type="danger" size="mini" :disabled="single" @click="handleDelete" >删除</el-button > <el-button type="danger" size="mini" :disabled="single" @click="handleDelete">删除</el-button> </el-col> <el-col :span="1.5"> <el-button size="mini" :disabled="single" @click="handleAudit(0)">审核</el-button> </el-col> <el-col :span="1.5"> <el-button size="mini" :disabled="single" @click="handleAudit(1)" >反审核</el-button > <el-button size="mini" :disabled="single" @click="handleAudit(1)">反审核</el-button> </el-col> <el-col :span="1.5"> <el-button size="mini" :disabled="single" @click="handleStop(0)">禁用</el-button> </el-col> <el-col :span="1.5"> <el-button size="mini" :disabled="single" @click="handleStop(1)" >反禁用</el-button > <el-button size="mini" :disabled="single" @click="handleStop(1)">反禁用</el-button> </el-col> <el-col :span="1.5"> <el-button size="mini" @click="handleColumnSetting">列设置</el-button> @@ -268,14 +159,10 @@ <el-button size="mini" @click="handleButtonSetting">按钮设置</el-button> </el-col> <el-col :span="1.5"> <el-button type="primary" size="mini" @click="handleSaveScheme" >保存方案</el-button > <el-button type="primary" size="mini" @click="handleSaveScheme">保存方案</el-button> </el-col> <el-col :span="1.5"> <el-button type="primary" size="mini" @click="handleReadScheme" >读取方案</el-button > <el-button type="primary" size="mini" @click="handleReadScheme">读取方案</el-button> </el-col> <el-col :span="1.5"> <el-button size="mini" @click="handleRefresh">刷新</el-button> @@ -287,68 +174,41 @@ <el-button type="primary" size="mini" @click="handleCorrect">批改</el-button> </el-col> <el-col :span="1.5"> <el-button type="primary" size="mini" @click="handleCorrect2" >批改(方案2)</el-button > <el-button type="primary" size="mini" @click="handleCorrect2">批改(方案2)</el-button> </el-col> </el-row> <el-row :gutter="10" style="margin-top: 10px"> <el-col :span="6"> <el-card style="height: 600px; overflow: hidden; display: flex; flex-direction: column" > <el-card style="height: 600px; overflow: hidden; display: flex; flex-direction: column"> <div slot="header"> <span>物料分类</span> </div> <div style="flex: 1; overflow: auto; margin-bottom: 10px"> <el-tree :data="treeData" :props="treeProps" node-key="id" default-expand-all :expand-on-click-node="false" @node-click="handleTreeNodeClick" :highlight-current="true" class="custom-tree" > <el-tree :data="treeData" :props="treeProps" node-key="id" default-expand-all :expand-on-click-node="false" @node-click="handleTreeNodeClick" :highlight-current="true" class="custom-tree"> <span class="custom-tree-node" slot-scope="{ node, data }"> <span>{{ node.label }}</span> </span> </el-tree> </div> <div style="height: 200px; border: 1px solid #ebeef5; border-radius: 4px"> <el-carousel :autoplay="false" indicator-position="none" height="200px" ref="carousel" > <el-carousel :autoplay="false" indicator-position="none" height="200px" ref="carousel"> <el-carousel-item v-for="(item, index) in fileList" :key="index"> <div v-if="item.type === 'image'" class="carousel-item"> <img :src="item.url" :alt="item.name" style="width: 100%; height: 100%; object-fit: contain" @click="previewImg(item.url)" /> <img :src="item.url" :alt="item.name" style="width: 100%; height: 100%; object-fit: contain" @click="previewImg(item.url)" /> </div> <div v-else-if="item.type === 'pdf'" class="carousel-item"> <embed :src="item.url" type="application/pdf" style="width: 100%; height: 100%" /> <embed :src="item.url" type="application/pdf" style="width: 100%; height: 100%" /> </div> <div v-else class="carousel-item"> <h1 style=" <h1 style=" text-align: center; line-height: 180px; color: red; font-weight: bolder; " > "> 暂未上传文件 </h1> </div> @@ -360,45 +220,21 @@ <el-col :span="18"> <div class="tableBox" v-loading="loading"> <el-table :data="tableData" ref="tableData" height="600" @selection-change="handleSelectionChange" border @row-click="handleRowClick" @row-dblclick="handleDblclick" :row-style="rowStyle" v-if="tableShow" > <el-table :data="tableData" ref="tableData" height="600" @selection-change="handleSelectionChange" border @row-click="handleRowClick" @row-dblclick="handleDblclick" :row-style="rowStyle" v-if="tableShow"> <el-table-column type="selection" width="55" align="center" fixed="left" /> <el-table-column prop="hmainid" label="单据ID" v-if="false" /> <el-table-column v-for="(item, index) in btList" :key="index" :align="item.align" :prop="item.field" :label="item.title" :width="item.width" v-if="!item.hide" :sortable="item.sort" show-overflow-tooltip :fixed="item.fixed" > <el-table-column v-for="(item, index) in btList" :key="index" :align="item.align" :prop="item.field" :label="item.title" :width="item.width" v-if="!item.hide" :sortable="item.sort" show-overflow-tooltip :fixed="item.fixed"> <template slot-scope="{ row, column }"> <div :style="item.style"> <el-button type="text" @click="handleMaterialCodeClick(row)" v-if="column.property === '物料代码'" >{{ row[column.property] }}</el-button > <span v-else-if=" (column.property || '').includes('时间') || (column.property || '').includes('日期') " > <el-button type="text" @click="handleMaterialCodeClick(row)" v-if="column.property === '物料代码'">{{ row[column.property] }}</el-button> <span v-else-if=" (column.property || '').includes('时间') || (column.property || '').includes('日期') "> {{ formatDate(row[column.property]) }} </span> <span v-else>{{ row[column.property] }}</span> @@ -406,68 +242,30 @@ </template> </el-table-column> </el-table> <pagination v-show="total > 0" :total="total" :page.sync="page" :limit.sync="pageSize" :pageSizes="pageSizes" @pagination="handleQuery" /> <pagination v-show="total > 0" :total="total" :page.sync="page" :limit.sync="pageSize" :pageSizes="pageSizes" @pagination="handleQuery" /> </div> </el-col> </el-row> <el-dialog :visible.sync="previewVisible" width="80%" top="5vh" :before-close="handlePreviewClose" > <el-dialog :visible.sync="previewVisible" width="80%" top="5vh" :before-close="handlePreviewClose"> <img :src="previewImage" style="width: 100%" /> </el-dialog> <el-dialog title="隐藏列设置" :visible.sync="openColumnSetting" width="816px" append-to-body > <RowSettings :colName="btResList" :HModName="HModName" @rowEditClose="columnSettingClose" v-if="columnSettingShow" /> <el-dialog title="隐藏列设置" :visible.sync="openColumnSetting" width="816px" append-to-body> <RowSettings :colName="btResList" :HModName="HModName" @rowEditClose="columnSettingClose" v-if="columnSettingShow" /> </el-dialog> <el-dialog :title="editTitle" :visible.sync="openEdit" width="95%" top="2vh" append-to-body class="material-edit-dialog" :before-close="closeEdit" > <MaterialEdit v-if="editShow" :hID="currentEditId" :OperationType="OperationType" :HMaterTypeID="currentMaterTypeID" @close="handleEditClose" /> <el-dialog :title="editTitle" :visible.sync="openEdit" width="95%" top="2vh" append-to-body class="material-edit-dialog" :before-close="closeEdit"> <MaterialEdit v-if="editShow" :hID="currentEditId" :OperationType="OperationType" :HMaterTypeID="currentMaterTypeID" @close="handleEditClose" /> </el-dialog> <MaterialCorrection :visible.sync="openCorrect" @close="closeCorrect" /> <el-dialog title="批改(方案2)" :visible.sync="openCorrect2" width="1480px" append-to-body :before-close="closeCorrect2" > <el-dialog title="批改(方案2)" :visible.sync="openCorrect2" width="1480px" append-to-body :before-close="closeCorrect2"> <div style="text-align: center; padding: 50px"> <h2>物料批改功能(方案2)</h2> <p>物料批改功能(方案2)待后续开发</p> @@ -475,29 +273,13 @@ </div> </el-dialog> <el-dialog :title="upload.title" :visible.sync="upload.open" width="1500px" append-to-body > <el-dialog :title="upload.title" :visible.sync="upload.open" width="1500px" append-to-body> <div style="margin-top: -20px"> <el-button type="primary" size="mini" @click="handleImportSubmit" >导入数据</el-button > <el-button type="primary" size="mini" @click="upload.open = false" >退 出</el-button > <el-upload ref="upload" :limit="1" accept=".xlsx, .xls" style="display: inline-block; margin-left: 10px" :action="upload.url + '?updateSupport=' + upload.updateSupport" :disabled="upload.isUploading" :on-progress="handleFileUploadProgress" :on-success="handleFileSuccess" > <el-button type="primary" size="mini" @click="handleImportSubmit">导入数据</el-button> <el-button type="primary" size="mini" @click="upload.open = false">退 出</el-button> <el-upload ref="upload" :limit="1" accept=".xlsx, .xls" style="display: inline-block; margin-left: 10px" :action="upload.url + '?updateSupport=' + upload.updateSupport" :disabled="upload.isUploading" :on-progress="handleFileUploadProgress" :on-success="handleFileSuccess"> <el-button type="primary" size="mini">文件上传</el-button> </el-upload> </div> @@ -508,13 +290,8 @@ <el-table-column label="物料分类" prop="物料分类" align="center" width="120" /> <el-table-column label="操作" align="center"> <template slot-scope="scope"> <el-button size="mini" type="text" icon="el-icon-delete" @click="uploadDataDelete(scope.$index)" >删除</el-button > <el-button size="mini" type="text" icon="el-icon-delete" @click="uploadDataDelete(scope.$index)">删除</el-button> </template> </el-table-column> </el-table> @@ -615,6 +392,7 @@ sWhere: "", selectedRow: null, selRowList: [], ids: [], single: true, multiple: true, @@ -1005,7 +783,7 @@ this.$modal.msgError("接口请求失败!"); }); }) .catch(() => {}); .catch(() => { }); }, handleAudit(isAudit) { @@ -1114,7 +892,11 @@ handleRowClick(row, column, event) { if (this.openPage) { if (this.openPage == 'Gy_BarCodeBill') { this.$emit('deptEmit', this.selRowList, 3) }else{ this.$emit("deptEmit", row, 3); } } if (this.checkIsIframe()) { // 将当前选中的数据暴露到window中 @@ -1189,7 +971,13 @@ // 双击行 handleDblclick(row, column, cell, event) { if (this.openPage) { this.$emit("deptEmitDb", row, 3); if (this.openPage == 'Gy_BarCodeBill') { let list = [] list.push(row) this.$emit("deptEmitDb", list, 3) } else { this.$emit("deptEmitDb", row, 3); } } if (this.checkIsIframe()) { // IFrame 双击 返回当前双击的数据 @@ -1201,14 +989,15 @@ handleSelectionChange(selection) { this.ids = selection.map((item) => item.hmainid); this.selRowList = selection this.single = selection.length != 1; this.multiple = !selection.length; if (!this.single) { this.selectedRow = selection[0]; } // if(this.openPage){ // this.$emit('deptEmit', this.selectedRow, 3) // } if (this.openPage == 'Gy_BarCodeBill') { this.$emit('deptEmit', this.selRowList, 3) } }, // 编辑关闭回调 handleEditClose() { @@ -1254,8 +1043,8 @@ } else { this.$alert( "<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" + response.Message + "</div>", response.Message + "</div>", "导入结果", { dangerouslyUseHTMLString: true } ); @@ -1279,8 +1068,8 @@ .then((res) => { this.$alert( "<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" + res.data.Message + "</div>", res.data.Message + "</div>", "导入结果", { dangerouslyUseHTMLString: true } ); @@ -1336,8 +1125,7 @@ .searchImg { height: 60px; background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="60" height="60" viewBox="0 0 24 24"><path fill="%23a0a0a0" d="M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"/></svg>') no-repeat center; background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="60" height="60" viewBox="0 0 24 24"><path fill="%23a0a0a0" d="M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"/></svg>') no-repeat center; margin-top: 10px; } @@ -1367,7 +1155,7 @@ width: 100%; } .el-tree-node.is-current > .el-tree-node__content { .el-tree-node.is-current>.el-tree-node__content { background-color: #aef0f7; } src/views/sell/sellOut/sellOutBill.vue
@@ -314,6 +314,9 @@ >条码明细</el-button > </el-col> <el-col :span="1.5"> <el-button type="primary" icon="el-icon-printer" size="mini" :disabled="single" @click="get_PackStockDetail">包装容器出入库明细</el-button> </el-col> </el-row> <div class="tableBox" v-loading="loading"> <el-table @@ -424,6 +427,8 @@ </el-dialog> <!-- 条码明细 --> <BarCodeDetail :visible.sync="barCodeDetailShow" ref="barcodeDetail" /> <!-- 包装容器出入库明细 --> <PackStockDetail :visible.sync="packStockDetailShow" ref="packStockDetail"/> </div> </div> </template> @@ -434,11 +439,12 @@ import Edit from "@/views/sell/sellOut/sellOutBillEdit"; import PrintList from "@/views/component/printList"; import BarCodeDetail from "@/views/component/BarCodeDetail"; //条码明细组件 import PackStockDetail from '@/views/component/PackStockDetail' //条码明细组件 import moment from "moment"; export default { name: "SellOutBill", components: { RowSettings, Edit, PrintList, BarCodeDetail }, components: { RowSettings, Edit, PrintList, BarCodeDetail,PackStockDetail }, data() { return { activeSeach: "", @@ -449,6 +455,7 @@ openPrintList: false, printListShow: false, barCodeDetailShow: false, //条码明细组件容器显示标记 packStockDetailShow:false, //包装容器出入库明细容器显示标记 openBtnHide: false, btnHideShow: false, rowHideShow: false, @@ -1162,6 +1169,19 @@ }); }, //#endregion //#region 包装容器出入库明细 get_PackStockDetail() { // if (this.selectedRow.length !== 1) { // this.$message.warning('请选择一行数据查看条码明细!') // return // } this.packStockDetailShow = true this.$nextTick(() => { this.$refs.packStockDetail.open(this.rowForm) }) }, //#endregion //#region 获取公司名,根据公司进行定制化开发 defaintOperationByCompanyName() { src/views/warehouse/barcodeMaster/Gy_BarCodeBill.vue
@@ -786,6 +786,7 @@ }, //弹窗赋值 dbEmitData(deptRow, num) { console.log(deptRow) if (num) { if (num == 'gyProperty') { this.editWlxxData[this.zbIndex].HAuxPropID = deptRow.HItemID; @@ -793,27 +794,34 @@ this.editWlxxData[this.zbIndex]["HAuxPropNumber"] = deptRow["辅助属性代码"]; this.propertyShow = false; this.openData = false; } else if (num == 3) { this.editWlxxData[this.zbIndex].HMaterID = deptRow.HItemID; this.editWlxxData[this.zbIndex].HMaterNumber = deptRow.物料代码; this.editWlxxData[this.zbIndex].HMaterName = deptRow.物料名称; this.editWlxxData[this.zbIndex].HMaterModel = deptRow.规格型号 this.editWlxxData[this.zbIndex].HUnitID = deptRow.HUnitID; this.editWlxxData[this.zbIndex].HUnitName = deptRow.计量单位名称 this.editWlxxData[this.zbIndex].HUnitNumber = deptRow.计量单位代码 this.editWlxxData = [] for (var i = 0; i < deptRow.length; i++) { this.editWlxxData.push({ "HMaterID": deptRow[i].HItemID, "HMaterNumber": deptRow[i].物料代码, "HMaterName": deptRow[i].物料名称, "HMaterModel": deptRow[i].规格型号, "HUnitID": deptRow[i].HUnitID, "HUnitNumber": deptRow[i].计量单位代码, "HUnitName": deptRow[i].计量单位, "HAuxQty": 0, }) } this.materialShow = false this.openData = false } return } console.log(deptRow) if (deptRow.length > 0) { this.zbDataShow = false this.editWlxxData = [] var list = [] var BillSelect = [] for (var i = 0; i < deptRow.length; i++) { if (deptRow[i].部门 != "" && deptRow[i].部门 != null) { if (!deptRow[i].部门) { list.push(deptRow[i].部门) } BillSelect.push({ src/views/warehouse/barcodeMaster/Gy_BarCodeBillList.vue
New file @@ -0,0 +1,755 @@ <template> <div style="padding: 10px;"> <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="78px" class="searchBox"> <el-form-item label="开始日期" style="margin-left: 100px;"> <el-date-picker v-model="queryParams.sTime" type="date" placeholder="开始日期" style="width: 150px;"> </el-date-picker> </el-form-item> <el-form-item label="结束日期"> <el-date-picker v-model="queryParams.eTime" type="date" placeholder="结束日期" style="width: 150px;"> </el-date-picker> </el-form-item> <el-form-item label="日期间隔"> <el-select v-model="queryParams.HInitTimeCycle" placeholder="请选择" @change="riqiChange" style="width: 150px;"> <el-option v-for="(item, index) in rqsgList" :key="index" :label="item.label" :value="item.value"> </el-option> </el-select> </el-form-item> <el-form-item label="条码编号" prop="HBarCode"> <el-input v-model="queryParams.HBarCode" placeholder="请输入条码编号" @keyup.enter.native="handleQuery" /> </el-form-item> <el-form-item label="组织" prop="HOrgID"> <el-select v-model="queryParams.HOrgID" placeholder="请选择组织"> <el-option v-for="(item, index) in organizationList" :key="index" :label="item.Name" :value="item.ID"> </el-option> </el-select> </el-form-item> <el-form-item label="源单单号" prop="HSourceBillNo"> <el-input v-model="queryParams.HSourceBillNo" placeholder="请输入源单单号" @keyup.enter.native="handleQuery" /> </el-form-item> <el-form-item label="物料代码" prop="HMaterNumber"> <el-input v-model="queryParams.HMaterNumber" placeholder="请输入物料代码" @keyup.enter.native="handleQuery" /> </el-form-item> <el-form-item label="物料名称" prop="HMaterName"> <el-input v-model="queryParams.HMaterName" placeholder="请输入物料名称" @keyup.enter.native="handleQuery" /> </el-form-item> <el-form-item label-width="78px"> <el-button type="primary" icon="el-icon-search" @click="handleQuery"> 搜 索</el-button> <el-button icon="el-icon-circle-close" @click="resetQuery">重 置</el-button> </el-form-item> <el-collapse v-model="activeSeach"> <el-collapse-item title="更多" name="1"> <el-card class="box-card"> <div slot="header" class="clearfix"><span>过滤</span></div> <div> <el-row> <el-form-item label-width="0"> <el-row> <el-col :span="7"> <el-select v-model="queryParams.ColName1" placeholder="请选择" @change="riqiChange"> <span v-for="(item, index) in btList" :key="index"> <el-option :label="item.field" :value="item.field" v-if="!item.hide"></el-option> </span> </el-select> </el-col> <el-col :span="6" style="padding: 0 10px;"> <el-select v-model="queryParams.Comparator1" placeholder="请选择" @change="riqiChange"> <el-option v-for="(item, index) in comparatorList" :key="index" :label="item.label" :value="item.value"></el-option> </el-select> </el-col> <el-col :span="11"> <el-input v-model="queryParams.ColContent1" placeholder="请输入" clearable @keyup.enter.native="handleQuery" /> </el-col> </el-row> </el-form-item> </el-row> <el-row> <el-form-item label-width="0"> <el-row> <el-col :span="7"> <el-select v-model="queryParams.ColName2" placeholder="请选择" @change="riqiChange"> <span v-for="(item, index) in btList" :key="index"> <el-option :label="item.field" :value="item.field" v-if="!item.hide"></el-option> </span> </el-select> </el-col> <el-col :span="6" style="padding: 0 10px;"> <el-select v-model="queryParams.Comparator2" placeholder="请选择" @change="riqiChange"> <el-option v-for="(item, index) in comparatorList" :key="index" :label="item.label" :value="item.value"></el-option> </el-select> </el-col> <el-col :span="11"> <el-input v-model="queryParams.ColContent2" placeholder="请输入" clearable @keyup.enter.native="handleQuery" /> </el-col> </el-row> </el-form-item> </el-row> <el-form-item label-width="0"> <el-row> <el-col :span="7"> <el-select v-model="queryParams.ColName" placeholder="请选择" @change="riqiChange"> <el-option v-for="(item, index) in btList" :key="index" :label="item.field" :value="item.field"></el-option> </el-select> </el-col> <el-col :span="6" style="padding: 0 10px;"> <el-select v-model="queryParams.Comparator" placeholder="请选择" @change="riqiChange"> <el-option v-for="(item, index) in comparatorList" :key="index" :label="item.label" :value="item.value"></el-option> </el-select> </el-col> <el-col :span="11"> <el-input v-model="queryParams.ColContent" placeholder="请输入" clearable @keyup.enter.native="handleQuery" /> </el-col> </el-row> </el-form-item> </div> </el-card> </el-collapse-item> </el-collapse> </el-form> <el-row :gutter="10" class="mb8" style="margin-top: 10px;"> <el-col :span="1.5"> <el-button type="primary" icon="el-icon-delete" size="mini" :disabled="single" @click="handleDelete">删除 </el-button> </el-col> <el-col :span="1.5"> <el-button type="primary" icon="el-icon-download" size="mini" @click="handleExport">导出</el-button> </el-col> <el-col :span="1.5"> <el-button type="primary" icon="el-icon-date" size="mini" @click="handleRowHide">隐藏列设置</el-button> </el-col> <el-col :span="1.5"> <el-button type="primary" icon="el-icon-printer" size="mini" @click="get_PrintReport">打印</el-button> </el-col> </el-row> <div class="tableBox" v-loading="loading"> <el-table :data="tableData" ref="tableData" max-height="710" :summary-method="getSummaries" @selection-change="handleSelectionChange" show-summary border @row-click="handleRowClick" :row-style="rowStyle" @cell-dblclick="handleDblclick" v-if="tableShow"> <template v-for="(item, index) in btList"> <el-table-column type="selection" width="55" align="center" :fixed="item.fixed" v-if="item.type == 'checkbox'" :key="index" /> <el-table-column :align="item.align" :prop="item.field" :label="item.title" :width="item.width" :key="item.id" v-else-if="!item.hide && item.type != 'checkbox'" :sortable="item.sort" show-overflow-tooltip :fixed="item.fixed"> <template slot-scope="{row, column }"> <el-checkbox v-model="checked" v-if="item.type == 'checkbox'"></el-checkbox> <div :style="item.style"> <span v-if="column.property.includes('日期')">{{ parseTime(row[column.property], '{y}-{m}-{d}') }}</span> <el-button type="text" @click="handleEdit(row, OperationType = 3)" v-else-if="column.property == '单据号'">{{ row.单据号 }}</el-button> <span v-else>{{ row[column.label] }}</span> </div> </template> </el-table-column> </template> </el-table> <!-- 记录数、页数、当前页 --> <pagination v-show="total > 0" :total="total" :page.sync="page" :limit.sync="pageSize" @pagination="handleQuery" /> <!-- 列设置 --> <el-dialog title="隐藏列设置" :visible.sync="openRowHide" width="816px" append-to-body> <RowSettings :colName="btResList" HModName="Kf_POStockInBillList" @rowEditClose="rowSetClose" v-if="rowHideShow" /> </el-dialog> <!-- 打印 --> <el-dialog title="打印模板选择" :visible.sync="openPrintList" width="800px" append-to-body> <PrintList :linterid="rowSel.toString()" :MyMsg="rowSel.toString()" Type="HGy_BarCodeBillList" HModName="HGy_BarCodeBillList" @rowEditClose="rowSetClose" v-if="printListShow" /> </el-dialog> </div> </div> </template> <script> import axios from 'axios' import moment from 'moment'; //导出组件 import RowSettings from '@/views/component/rowSettings' //列设置组件 import PrintList from "@/views/component/printList"; //打印组件 export default { name: 'Gy_BarCodeBillList', components: { RowSettings, PrintList}, data() { return { baseURL: process.env.VUE_APP_BASE_API, //后端接口前缀(后端服务器ip地址) HInterID: null, checkDataList: [], //表格选中数据集合 rowSel: [], //用于打印的数据集合 rqsgList: [ //日期间隔下拉列表数据 { label: '今天', value: 0 }, { label: '近两天', value: 1 }, { label: '近三天', value: 2 }, { label: '近四天', value: 3 }, { label: '近五天', value: 4 }, { label: '近六天', value: 5 }, { label: '近七天', value: 6 }, { label: '近30天', value: 29 }, { label: '近半年', value: 180 }, { label: '近一年', value: 365 }, ], organizationList: [], //组织列表 btList: [], //列表表头字段列表 comparatorList: [ //运算标识下拉列表 { label: '=', value: '=' }, { label: '>=', value: '>=' }, { label: '>', value: '>' }, { label: '<=', value: '<=' }, { label: '<', value: '<' }, { label: '<>', value: '<>' }, { label: '包含', value: '7' }, { label: '左包含', value: '8' }, { label: '右包含', value: '9' }, { label: '不包含', value: '10' }, ], dialogTitle: '', // 弹窗标题 title: "", // 弹出层标题 open: false, // 是否显示弹出层 loading: true, // 遮罩层 activeSeach: '', openPrintList: false, //打印组件容器显示标记 printListShow: false, //打印组件显示标记 openBtnHide: false, //按钮组件容器显示标记 btnHideShow: false, //按钮组件显示标记 openRowHide: false, //列设置组件显示标记 rowHideShow: false, //列设置组件容器显示标记 // 查询参数 sWhere: '', // 拼接过滤条件 queryParams: { // form数据 HBarCode: '', HInitTimeCycle: 29, sTime: '', eTime: '', HOrgID: 0, HSourceBillNo: '', HMaterNumumber: '', HMaterName: '', ColName: '', Comparator: '', ColContent: '', ColName1: '', Comparator1: '', ColContent1: '', ColName2: '', Comparator2: '', ColContent2: '', }, page: 1, //page页索引 pageSize: 0, //page页面记录数 total: 0, //记录合计数 tableShow: true, // table显示标记 totalNameList: [], // 需要设置合计行的列数组 tableData: [], // 列表数据。用于table监听事件 ids: [], // 选中行的hmainid数组 single: true, // 当选中的行数不为1时为true。用于禁用相关操作 multiple: true, // 当选中的行数为0时为true。用于禁用相关操作 lastSelectedRowIndex: null, // 用于记录上次点击的行索引 lastSelectedRow: null, // 上一次选中的行 selectedRow: null, // 当前选中的行 rowForm: {}, // 当选中的只有一行时,更新数据为该选中的行。 tyResList: [], // 列表数据,用于导出 titleData: [], // 不需要显示的字段 可扩展 btResList: [], // 列表表头数据。用于列设置 dataList: [], // option记录。用于当option数据无效时,用于列设置 }; }, created() { this.fetchData() //加载组织下拉列表数据 this.riqiChange() this.handleQuery(); }, methods: { //#region 设置表头 renderHeader(h, { column, $index }) {// 新建一个 span let span = document.createElement(span)// 设置表头名称 span.innerText = column.label //临时插入 document document.body.appendChild(span)// 重点:获取 span 最小宽度,设置当前列,注意这里加了 20,字段较多时column.minWidth=span.getBoundingClientRect().width + 50.//移除 document 中临时的 span document.body.removeChild(span) return h(span, column.label) }, //#endregion //#region 点击行 handleRowClick(row, column, event) { this.lastSelectedRow = this.selectedRow; // 记录上一次选中的行 this.selectedRow = row; // 记录当前选中的行 this.lastSelectedRowIndex = this.tableData.indexOf(row); this.$refs.tableData.toggleRowSelection(row); }, //#endregion //#region 选中行高亮样式 rowStyle({ row, rowIndex }) { if (this.ids.includes(row.hmainid)) { return { "background": "#ecf5ff" } } }, //#endregion //#region 双击行 handleDblclick(row, column, cell, event) { }, //#endregion //#region 多选框选中数据 handleSelectionChange(selection) { // this.rowForm = {} checkDataList = selection; this.ids = selection.map(item => item.hmainid) this.single = selection.length != 1 this.multiple = !selection.length if (!this.single) { this.rowForm = selection[0] } }, //#endregion //#region 根据日期间隔,设置开始日期、结束日期 riqiChange() { const end = new Date(); const start = new Date(); start.setTime(start.getTime() - 3600 * 1000 * 24 * this.queryParams.HInitTimeCycle); const yyyyS = start.getFullYear(); const mmS = String(start.getMonth() + 1).padStart(2, '0'); // 月份是从0开始的 const ddS = String(start.getDate()).padStart(2, '0'); const yyyyE = end.getFullYear(); const mmE = String(end.getMonth() + 1).padStart(2, '0'); // 月份是从0开始的 const ddE = String(end.getDate()).padStart(2, '0'); this.queryParams.sTime = yyyyS + '-' + mmS + '-' + ddS this.queryParams.eTime = yyyyE + '-' + mmE + '-' + ddE }, //#endregion //#region 加载组织下拉列表数据 fetchData() { axios.get(this.baseURL + "/Web/GetOrganizations", { }).then(response => { if (response.data.count == 1) { this.organizationList = response.data.data;//组织列表 } }).catch(error => { this.$modal.msgError("接口请求失败!"); }); this.queryParams.HOrgID = sessionStorage["OrganizationID"]; }, //#endregion //#region 重置 resetQuery() { this.sWhere = '' this.queryParams = { HBarCode: '', HInitTimeCycle: 29, HSourceBillNo: '', HMaterNumber: '', HMaterName: '', ColName: '', Comparator: '', ColContent: '', ColName1: '', Comparator1: '', ColContent1: '', ColName2: '', Comparator2: '', ColContent2: '', } this.riqiChange() this.resetForm("queryForm") this.handleQuery() }, //#endregion //#region 快速过滤 handleQuery() { this.sWhere = '' if (this.queryParams.ColName && this.queryParams.Comparator) { var com = ""; switch (this.queryParams.Comparator) { case "7": com = "like''%" + this.queryParams.ColContent + "%''"; break; case "8": com = "like''%" + this.queryParams.ColContent + "''"; break; case "9": com = "like''" + this.queryParams.ColContent + "%''"; break; case "10": com = "not like''%" + this.queryParams.ColContent + "%''"; break; default: com = "" + this.queryParams.Comparator + "''" + this.queryParams.ColContent + "''"; break; } this.sWhere += " and " + this.queryParams.ColName + " " + com; } if (this.queryParams.ColName1 && this.queryParams.Comparator1) { var com1 = ""; switch (this.queryParams.Comparator1) { case "7": com1 = "like''%" + this.queryParams.ColContent1 + "%''"; break; case "8": com1 = "like''%" + this.queryParams.ColContent1 + "''"; break; case "9": com1 = "like''" + this.queryParams.ColContent1 + "%''"; break; case "10": com1 = "not like''%" + this.queryParams.ColContent1 + "%''"; break; default: com1 = "" + this.queryParams.Comparator1 + "''" + this.queryParams.ColContent1 + "''"; break; } this.sWhere += " and " + this.queryParams.ColName1 + " " + com1; } if (this.queryParams.ColName2 && this.queryParams.Comparator2) { var com2 = ""; switch (this.queryParams.Comparator2) { case "7": com2 = "like''%" + this.queryParams.ColContent2 + "%''"; break; case "8": com2 = "like''%" + this.queryParams.ColContent2 + "''"; break; case "9": com2 = "like''" + this.queryParams.ColContent2 + "%''"; break; case "10": com2 = "not like''%" + this.queryParams.ColContent2 + "%''"; break; default: com2 = "" + this.queryParams.Comparator + "''" + this.queryParams.ColContent + "''"; break; } this.sWhere += " and " + this.queryParams.ColName2 + " " + com2; } if (this.queryParams.sTime) { this.queryParams.sTime = moment(this.queryParams.sTime).format('YYYY-MM-DD') this.queryParams.eTime = moment(this.queryParams.eTime).format('YYYY-MM-DD') console.log(this.queryParams.sTime, this.queryParams.eTime) this.sWhere += " and CONVERT(varchar(100),日期, 23) >= ''" + this.queryParams.sTime + "''" + " and CONVERT(varchar(100),日期, 23) <= ''" + this.queryParams.eTime + "''"; } if (this.queryParams.HBarCode) { this.sWhere += " and 条码编号 like ''%" + this.queryParams.HBarCode + "%''"; } if (this.queryParams.HSupName) { this.sWhere += " and 源单单号 like ''%" + this.queryParams.HSourceBillNo + "%''"; } if (this.queryParams.HMaterNumber) { this.sWhere += " and 物料代码 like ''%" + this.queryParams.HMaterNumber + "%''"; } if (this.queryParams.HMaterName) { this.sWhere += " and 物料名称 like ''%" + this.queryParams.HMaterName + "%''"; } if (this.queryParams.HOrgID) { this.sWhere += " and HStockOrgID = ''" + this.queryParams.HOrgID + "''"; } this.getList() }, //#endregion //#region 查询 getList() { this.pageSize = 50 if (this.pageSize == 0) { this.pageSize = 50 } this.tableShow = false this.loading = true // 列表查询 axios.get(this.baseURL + '/Gy_BarCodeBillList/page', { params: { "sWhere": this.sWhere, "user": sessionStorage["HUserName"], "page": this.page, "size": this.pageSize }, }).then(response => { this.tyResList = response.data.data//总数据 let data1 = response.data let option = [] if (data1.code == 1) { this.btResList = data1.list //列表表头数据 this.total = data1.count; var data = [];//列字段数据 var col = []; var totalArray = []; //给空的数组赋值 for (var key in data1.list) {//循序遍历数组 data.push({ "id": data1.list[key].ColmCols, "name": data1.list[key].ColmCols, "Type": data1.list[key].ColmType });//从每个对象中提取数据 } //在列表左边添加勾选框 col.push({ type: 'checkbox', fixed: 'left', totalRowText: '合计' }); for (var i = 0; i < data.length; i++) {//遍历data数组重的数据 if (this.titleData.indexOf(data[i].name) > -1) {//检查data【i】.name是否在数组中 //计算列 col.push({ field: data[i].id, title: data[i].name, align: 'center', hide: true }); //隐藏id列 } else if (totalArray.indexOf(data[i].name) > -1 || (data[i].Type == "Decimal" || data[i].Type == "Int32")) { //计算列 col.push({ field: data[i].id, title: data[i].name, align: 'center', sort: true, totalRow: true, width: 120 }); } else { col.push({ field: data[i].id, title: data[i].name, align: 'center', sort: true, width: 200 }); } } option.cols = [col] this.dataList = option option.data = data1.data; var result = data1.data; option.data = result; let HModName = "Gy_BarCodeBillList" this.DisPlay_HideColumn(HModName, sessionStorage["HUserName"], option, this.dataList); } }).catch(error => { this.$modal.msgError("接口请求失败!"); }); }, //#region 合计行数据处理 getSummaries(param) { const { columns, data } = param; const sums = []; columns.forEach((column, index) => { if (index === 0) { sums[index] = '合计'; return; } const values = data.map(item => Number(item[column.property])); if (this.totalNameList[index].totalRow) { 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) } else { sums[index] = ''; } } }, 1000); return sums; }, //#endregion //#endregion //#region 删除 handleDelete() { }, //#endregion //#region 列设置 handleRowHide() { this.rowHideShow = true this.openRowHide = true }, rowSetClose(val) { this.rowHideShow = false this.tableShow = true this.openRowHide = val this.handleQuery() }, DisPlay_HideColumn(HModName, user, option, dataOption) { this.totalNameList = [] axios.get(this.baseURL + '/Xt_grdAlignment_WMES/grdAlignmentWMESList', { params: { "HModName": HModName, "user": user, }, }).then(res => { let data1 = res.data if (data1.data.length != 0) { var dataCol = [];//数据库查询出的列数据 var newCols = [[]];//对应数据库列顺序col newCols[0].push(option.cols[0][0]);//放入第一个checkbox dataCol = data1.data[0].HGridString.split(','); //列设置列数与页面列数是否一致 if (dataCol.length == option.cols[0].length - 1) { //遍历寻找列设置对应列按顺序插入 for (var j = 0; j < option.cols[0].length - 1; j++) { for (var i = 0; i < option.cols[0].length - 1; i++) { var dataCols = dataCol[j].split('|'); //选择与datacols相应列进行修改 if (option.cols[0][i + 1]["field"] == dataCols[5]) { //隐藏列 if (dataCols[1] == 1) { option.cols[0][i + 1]["hide"] = true; } //设置列宽 if (dataCols[3] > 0) { option.cols[0][i + 1]["width"] = dataCols[3]; } //设置内容字体大小 if (data1.data[0].HFontSize != 0) { option.cols[0][i + 1]["style"] = "font-size:" + data1.data[0].HFontSize + "px;"; } else { option.cols[0][i + 1]["style"] = "font-size:100%"; } //显示列 if (dataCols[1] == 0 && this.titleData.indexOf(option.cols[0][i + 1]["title"]) == -1) { option.cols[0][i + 1]["hide"] = false; } //统计列 if (dataCols[6] == 1) { option.cols[0][i + 1]["totalRow"] = true; } else { option.cols[0][i + 1]["totalRow"] = false; } //字体所在位置(左 居中 右) switch (dataCols[2]) { case "L": option.cols[0][i + 1]["align"] = "left"; break; case "M": option.cols[0][i + 1]["align"] = "center"; break; case "R": option.cols[0][i + 1]["align"] = "right"; break; } //设置表格title属性显示别名 if (dataCols[4] != null && dataCols[4] != "") { option.cols[0][i + 1]["title"] = dataCols[4]; } newCols[0].push(option.cols[0][i + 1]); break; } } } //遍历循环后判断对应列数是否一致 if (dataCol.length == newCols[0].length - 1) { option.cols = newCols; //取消冻结列 for (var i = 1; i < option.cols[0].length - 1; i++) { if (option.cols[0][i + 1]["fixed"] != null) { option.cols[0][i + 1]["fixed"] = null; } else { break; } } //冻结列 if (data1.data[0].HFixCols != 0) { for (var i = 0; i < data1.data[0].HFixCols; i++) { if (dataOption.cols[0].indexOf(option.cols[0][i + 1]["title"]) != -1) { data1.data[0].HFixCols += 1; } option.cols[0][i + 1]["fixed"] = "left"; } } //设置列排序 for (var i = 1; i < option.cols[0].length; i++) { if (data1.data[0].HSortFlag == "是") { option.cols[0][i]["sort"] = true; } else { option.cols[0][i]["sort"] = false; } } } } this.btList = option.cols[0] this.btList.map(item => { if (!item.hide) { this.totalNameList.push(item) } }) if (data1.data[0].HPageSize == 0) { this.pageSize = 50 } else { this.pageSize = data1.data[0].HPageSize } this.tableData = option.data this.tableShow = true this.loading = false } else { this.btList = dataOption.cols[0] this.btList.map(item => { if (!item.hide) { this.totalNameList.push(item) } }) this.tableData = dataOption.data this.tableShow = true this.loading = false } }).catch(error => { this.$modal.msgError("接口请求失败!"); }); }, //#endregion //#region 按钮设置 handleBtnHide() { this.btnHideShow = true this.openBtnHide = true }, //#endregion //#region 导出 handleExport() { const ws = this.$XLSX.utils.json_to_sheet(this.tyResList); // 将数据转换为工作表 const wb = this.$XLSX.utils.book_new(); // 创建一个新的工作簿 this.$XLSX.utils.book_append_sheet(wb, ws, "Sheet1"); // 将工作表添加到工作簿中,并命名为"Sheet1" this.$XLSX.writeFile(wb, `Gy_BarCodeBillList_${new Date().getTime()}.xlsx`); // 导出文件 }, //#endregion //#region 打印 get_PrintReport() { if (this.checkDataList.length == 0) { this.$modal.msgError("请选择数据"); } else { this.rowSel = []; for (var i = 0; i < this.selection.length; i++) { this.rowSel.push(this.selection[i].HItemID.toString()); } this.printListShow = true; this.openPrintList = true; } }, //#endregion //#region 退出 close() { // this.reset() this.tableShow = true this.openEdit = false this.editShow = false this.handleQuery() }, //#endregion } }; </script> <style> .xsckdBox .el-date-editor.el-input { width: 100%; } </style>