diff --git a/package.json b/package.json index de4f3eb8..0633c850 100644 --- a/package.json +++ b/package.json @@ -49,6 +49,7 @@ "dayjs": "^1.11.10", "default-passive-events": "^2.0.0", "echarts": "4.9.0", + "el-bigdata-table": "^1.0.32", "el-table-virtual-scroll": "^1.4.4", "element-china-area-data": "^6.1.0", "element-ui": "2.15.6", diff --git a/src/components/XdTable/index.vue b/src/components/XdTable/index.vue index 4d9f1124..111702e6 100644 --- a/src/components/XdTable/index.vue +++ b/src/components/XdTable/index.vue @@ -204,7 +204,11 @@ import clip from '@/utils/clipboard' import Sortable from 'sortablejs' import draggable from 'vuedraggable' import origTable from './table.jsx' -const components = { origTable, draggable } + +import VirtualScroll from "el-table-virtual-scroll"; +import { VirtualColumn } from "el-table-virtual-scroll"; + +const components = { origTable, draggable,VirtualScroll } export default { name: 'XdTable', @@ -262,42 +266,35 @@ export default { inserted: function (el, binding, vnode) { var oDiv = el; var tbBodyDiv=oDiv.getElementsByClassName("el-table__body-wrapper")[0]; - //监听用户鼠标事件 + + // 鼠标按下事件 tbBodyDiv.onmousedown = function (ev) { var evt = window.event || arguments[0]; var flag = true; // 鼠标右键菜单,并且记录当前位置 if(evt.button == 2){ flag=false; - if(vnode.context.multipleSelection&&vnode.context.multipleSelection.length>0){ - vnode.context.currentOdiv=oDiv; - // vnode.context.currentOdiv=tbBodyDiv; - vnode.context.currentCell=evt.target; - showContextMenu(evt); + if(vnode.context.multipleSelection&&vnode.context.multipleSelection.length>0) + { - const currentCellInfo=getCellPosition(evt.target); - vnode.context.currentCellInfo=currentCellInfo; + // 记住当前单元格位置 + vnode.context.currentOdiv=oDiv; + vnode.context.currentCell=evt.target; + + const currentCellInfo=getCellPosition(evt.target); + vnode.context.currentCellInfo=currentCellInfo; + + // 显示右键菜单 + showContextMenu(evt); } return; } - // 只有鼠标左键按下时有效 - if(evt.button != 0){ - return; - } - // addCtrlCKeyDown(oDiv,evt) - - vnode.context.multipleSelection=[]; - //初始化不显示 vnode.context.contextVisible=false; - - const refTableObj=vnode.context.getInstance(); - // 增加图层 var xdTableObj = document.getElementById(vnode.context.tableId); - var tbBody1=xdTableObj.getElementsByClassName("el-table__body-wrapper")[0]; var selDiv = document.createElement("div"); selDiv.style.cssText = "position:absolute;width:0px;height:0px;font-size:0px;margin:0px;padding:0px;border:2px solid #409eff;background-color:#d9ecff;z-index:1000;filter:alpha(opacity:60);opacity:0.6;display:none;"; @@ -305,41 +302,22 @@ export default { tbBody1.appendChild(selDiv); // 表格对象 - const tableDom=vnode.context.$refs.table.$refs.elTable.$el; + const refTableObj=vnode.context.getInstance(); + const tableDom=vnode.context.$refs.table.$refs.elTable.$el; //用来存储列表 单元格和行 var selList = []; var selRowList = []; //获得指令下的dom对应的表格 var fileNodes = oDiv.getElementsByTagName("td"); - var countI = 0; + var fileRowNodes = oDiv.getElementsByTagName("tr"); + // 获得鼠标 X,Y var startX = (evt.x || evt.clientX); var startY = (evt.y || evt.clientY); - //重置选中单元格css - console.log("===fileNodes.length==>",fileNodes.length); - for (var i = 0; i < fileNodes.length; i++) { - console.log("===fileNodes==>",i); - if (fileNodes[i].className.indexOf("el-table__cell") != -1) { - fileNodes[i].classList.remove("seled"); - selList.push(fileNodes[i]); - } - } - - var fileRowNodes = oDiv.getElementsByTagName("tr"); - // refTableObj.clearSelection() - for (var i = 0; i < fileRowNodes.length; i++) { - - if (fileRowNodes[i].className.indexOf("el-table__row") != -1) { - fileRowNodes[i].classList.remove("rowSeled"); - selRowList.push(fileRowNodes[i]); - } - } - - setMouseCellSelect(evt.target,selRowList); - - // setMouseRowSelect(evt.target); + // 优先选中当前单元格 + setMouseCellSelect(evt.target); var _x = null; var _y = null; @@ -352,10 +330,32 @@ export default { _x = (evt.x || evt.clientX); _y = (evt.y || evt.clientY); //为了确定是点击事件还是移动事件 - // if(Math.abs(_x - startX)<5 && Math.abs(_y - startY)<5){ - // return; - // } + + if(Math.abs(_x - startX)<5 && Math.abs(_y - startY)<5){ + // setMouseCellSelect(evt.target); + // setMouseRowSelect(evt.target); + return; + } if(flag){ + + // console.log("===fileNodes.length==>",fileNodes.length); + // 只选取范围内的数据 + for (var i = 0; i < fileNodes.length; i++) { + // console.log("===fileNodes==>",i); + if (fileNodes[i].className.indexOf("el-table__cell") != -1) { + fileNodes[i].classList.remove("seled"); + selList.push(fileNodes[i]); + } + } + + + for (var i = 0; i < fileRowNodes.length; i++) { + if (fileRowNodes[i].className.indexOf("el-table__row") != -1) { + fileRowNodes[i].classList.remove("rowSeled"); + selRowList.push(fileRowNodes[i]); + } + } + flag = false; } @@ -381,7 +381,6 @@ export default { var _l = selDiv.offsetLeft, _t = selDiv.offsetTop; var _w = selDiv.offsetWidth, _h = selDiv.offsetHeight; - if(_y>(tbPosRect2.y+tbPosRect2.height)){ tbBody2.scrollBy(0, 60); } @@ -667,7 +666,6 @@ export default { this.initDefaultTplList(); this.initStorage() this.updateTable() - this.initSort(); // this.initKeyDown(); this.tableDom=this.getTableDom(); @@ -687,8 +685,6 @@ export default { }, methods: { getInstance() { - // const ref = this.$children.find(i => i.$options._componentTag === 'el-table') - // return ref return this.$refs.table.$refs?.elTable }, getUUID() { @@ -1054,7 +1050,6 @@ export default { this.storeTplToLocal(that.storageList) this.initStorage() this.updateTable() - this.initSort(); // that.updateTable(); // this.refreshKeyId=Math.random().toString(36).substring(3,10); @@ -1101,15 +1096,11 @@ export default { this.storeTplToLocal(list) this.initStorage() this.updateTable() - this.initSort(); }, download(){ this.$emit("download"); }, - initSort() { - - }, // 查询 queryTable(){ this.$emit("queryTable"); @@ -1163,6 +1154,7 @@ export default { }) return } + this.updateTable() }, setFixed(value, clo) { @@ -1277,6 +1269,11 @@ export default { // 清除本地缓存 // window.localStorage.removeItem('tableStorage') } + + // const storage = window.localStorage.getItem('tableStorage') ? JSON.parse(window.localStorage.getItem('tableStorage')) : {} + // storage[this.saveStorageName] = this.storageList + // window.localStorage.setItem('tableStorage', JSON.stringify(storage)) + }, storeTplToLocal(tplColList){ const storage = window.localStorage.getItem('tableStorage') ? JSON.parse(window.localStorage.getItem('tableStorage')) : {} diff --git a/src/views/emis/emisCustomerUser/monthUserList.vue b/src/views/emis/emisCustomerUser/monthUserList.vue index 28c9d8f2..2412a9ef 100644 --- a/src/views/emis/emisCustomerUser/monthUserList.vue +++ b/src/views/emis/emisCustomerUser/monthUserList.vue @@ -91,9 +91,12 @@ :height="(slotProps.contentHeight)+'px'" v-loading="loading" border - size="small" + size="mini" + :data="emisCustomerUserList" + ref="refTable" + storageName="emisCustomerUserList_month" :showSearch.sync="showSearch" @@ -599,53 +602,53 @@ export default { /** 导出按钮操作 */ handleExport() { - // this.download('emis/emisCustomerUser/export', { - // ...this.queryParams - // }, `emisCustomerUser_${new Date().getTime()}.xlsx`) - const loadingInstance = this.$loading({ + const loadingInstance = this.$loading({ text: '正在导出...' + }) + + + if(this.selectionList&&this.selectionList.length>0){ + this.exportData(this.selectionList,loadingInstance); + } + else{ + let qExportParam={...this.queryParams}; + qExportParam.pageNum=1; + qExportParam.pageSize=20000; + + listEmisWaybill(qExportParam).then(response => { + if (response.code === 200) { + this.exportData(response.rows,loadingInstance); + } + }); + } + }, + exportData(selData,loadingInstance){ + const curList =selData + import('@/vendor/Export2Excel').then(excel => { + const exportParam=this.$refs.refTable.getExportParam(); + const tHeader = exportParam.header; + const filterVal = exportParam.filter; + const data = this.formatJson(filterVal, curList, selData) + excel.export_json_to_excel({ + header: tHeader, + data, + filename: '月结客户列表', + autoWidth: true }) - var qParam = {...this.queryParams}; - qParam.pageNum=1; - qParam.pageSize=5000; - - listMonthUser(this.addDateRange(this.queryParams, this.dateTimeRange)).then(response => { - this.downloadLoading = false - if (response.code === 200) { - const curList = response.rows - import('@/vendor/Export2Excel').then(excel => { - // 客户名称 英文简称 月结编号 联系人 手机号码 主归属网点 回款联系人 销售联系人 结算类型 国家 省份 城市 区县 联系地址 E-Mail 是否启用 是否开启OMS账号 首次签约时间 备注 - - const tHeader = ['客户名称','英文简称','月结编号','联系人','手机号码','主归属网点','回款联系人','销售联系人','结算类型','国家','省份','城市','区县','联系地址','E-Mail','是否启用','是否开启OMS账号','首次签约时间','备注']; - const filterVal = ['customerName','customerNameEn','monthlyPayCode','contact','phone','ownerSite','payee','salesmen','settedType','country','province','city','county','address','email','status','blOpenOms','firstSigningDay','remark']; - const data = this.formatJson(filterVal, curList, response.rows) - excel.export_json_to_excel({ - header: tHeader, - data, - filename: '月结客户', - autoWidth: true - }) - loadingInstance.close() - }) - } - }); + loadingInstance.close() + }) }, formatJson(filterVal, jsonData, resData) { let index = 0 return jsonData.map(v => filterVal.map(j => { + if (j === 'index') { return ++index } - if (j === 'status') { - var statusStr='停用' - if(v[j] == 1){ - statusStr='启用' - } - return statusStr; - } return v[j] })) }, + /** 列索引函数 */ getIndex($index) { return (this.queryParams.pageNum - 1) * this.queryParams.pageSize + $index + 1 diff --git a/src/views/emis/emisSettleInvoiceRecord/panel/InvoiceRecordApplyListPanel.vue b/src/views/emis/emisSettleInvoiceRecord/panel/InvoiceRecordApplyListPanel.vue index 4d023211..56a15efa 100644 --- a/src/views/emis/emisSettleInvoiceRecord/panel/InvoiceRecordApplyListPanel.vue +++ b/src/views/emis/emisSettleInvoiceRecord/panel/InvoiceRecordApplyListPanel.vue @@ -47,8 +47,8 @@ - - + + @@ -178,8 +178,8 @@ @@ -610,10 +610,10 @@ export default { return '增值税电子普通发票'; } else if(v['invoiceType'] == 2){ - return '增值税普通发票'; + return '增值税普通发票(纸质发票)'; } else if(v['invoiceType'] == 3){ - return '增值税专用发票'; + return '增值税专用发票(纸质发票)'; } else if(v['invoiceType'] == 9){ return '其它手工发票'; diff --git a/src/views/emis/emisWaybill/centerWaybillList.vue b/src/views/emis/emisWaybill/centerWaybillList.vue index 8cee225e..65bd055c 100644 --- a/src/views/emis/emisWaybill/centerWaybillList.vue +++ b/src/views/emis/emisWaybill/centerWaybillList.vue @@ -19,7 +19,7 @@ clearable :rows="4" /> - + @@ -35,7 +35,7 @@ - + @@ -51,10 +51,10 @@ - + - + @@ -89,7 +89,7 @@ v-model="queryParams.sendName" :placeholder="$t('寄件人')" clearable - @keyup.enter.native="handleQuery" + /> @@ -97,7 +97,7 @@ v-model="queryParams.sendMobile" :placeholder="$t('寄件人电话')" clearable - @keyup.enter.native="handleQuery" + /> @@ -105,18 +105,18 @@ v-model="queryParams.sendCompany" :placeholder="$t('寄件公司')" clearable - @keyup.enter.native="handleQuery" + /> - + @@ -124,7 +124,7 @@ v-model="queryParams.feeRemark" :placeholder="$t('费用备注')" clearable - @keyup.enter.native="handleQuery" + /> @@ -138,7 +138,7 @@ v-model="queryParams.receiveName" :placeholder="$t('收件人')" clearable - @keyup.enter.native="handleQuery" + /> @@ -146,7 +146,7 @@ v-model="queryParams.receiveMobile" :placeholder="$t('收件电话')" clearable - @keyup.enter.native="handleQuery" + /> @@ -156,12 +156,12 @@ v-model="queryParams.receiveCompany" :placeholder="$t('收件公司')" clearable - @keyup.enter.native="handleQuery" + /> - + @@ -289,7 +289,7 @@ v-model="queryParams.problemCause" :placeholder="$t('问题件原因')" clearable - @keyup.enter.native="handleQuery" + /> --> diff --git a/src/views/emis/emisWaybill/dispatchWaybillList.vue b/src/views/emis/emisWaybill/dispatchWaybillList.vue index 16d95262..e918f1b3 100644 --- a/src/views/emis/emisWaybill/dispatchWaybillList.vue +++ b/src/views/emis/emisWaybill/dispatchWaybillList.vue @@ -40,7 +40,7 @@ - + @@ -48,7 +48,7 @@ - + @@ -64,10 +64,10 @@ - + - + @@ -82,7 +82,7 @@ v-model="queryParams.sendName" :placeholder="$t('寄件人')" clearable - @keyup.enter.native="handleQuery" + /> @@ -90,7 +90,7 @@ v-model="queryParams.sendMobile" :placeholder="$t('寄件人电话')" clearable - @keyup.enter.native="handleQuery" + /> @@ -98,18 +98,18 @@ v-model="queryParams.sendCompany" :placeholder="$t('寄件公司')" clearable - @keyup.enter.native="handleQuery" + /> - + @@ -117,7 +117,7 @@ v-model="queryParams.feeRemark" :placeholder="$t('费用备注')" clearable - @keyup.enter.native="handleQuery" + /> @@ -131,7 +131,7 @@ v-model="queryParams.receiveName" :placeholder="$t('收件人')" clearable - @keyup.enter.native="handleQuery" + /> @@ -139,7 +139,7 @@ v-model="queryParams.receiveMobile" :placeholder="$t('收件电话')" clearable - @keyup.enter.native="handleQuery" + /> @@ -149,12 +149,12 @@ v-model="queryParams.receiveCompany" :placeholder="$t('收件公司')" clearable - @keyup.enter.native="handleQuery" + /> - + @@ -281,7 +281,7 @@ v-model="queryParams.problemCause" :placeholder="$t('问题件原因')" clearable - @keyup.enter.native="handleQuery" + /> --> diff --git a/src/views/emis/emisWaybill/sendWaybillList.vue b/src/views/emis/emisWaybill/sendWaybillList.vue index c27b1370..0c000bd8 100644 --- a/src/views/emis/emisWaybill/sendWaybillList.vue +++ b/src/views/emis/emisWaybill/sendWaybillList.vue @@ -21,7 +21,7 @@ clearable :rows="4" /> - + @@ -43,7 +43,7 @@ - + @@ -67,10 +67,10 @@ - + - + @@ -82,7 +82,7 @@ v-model="queryParams.sendName" :placeholder="$t('寄件人')" clearable - @keyup.enter.native="handleQuery" + /> @@ -90,7 +90,7 @@ v-model="queryParams.sendMobile" :placeholder="$t('寄件人电话')" clearable - @keyup.enter.native="handleQuery" + /> @@ -98,18 +98,18 @@ v-model="queryParams.sendCompany" :placeholder="$t('寄件公司')" clearable - @keyup.enter.native="handleQuery" + /> - + @@ -117,7 +117,7 @@ v-model="queryParams.feeRemark" :placeholder="$t('费用备注')" clearable - @keyup.enter.native="handleQuery" + /> @@ -129,7 +129,7 @@ v-model="queryParams.receiveName" :placeholder="$t('收件人')" clearable - @keyup.enter.native="handleQuery" + /> @@ -137,7 +137,7 @@ v-model="queryParams.receiveMobile" :placeholder="$t('收件电话')" clearable - @keyup.enter.native="handleQuery" + /> @@ -147,12 +147,12 @@ v-model="queryParams.receiveCompany" :placeholder="$t('收件公司')" clearable - @keyup.enter.native="handleQuery" + /> - + @@ -262,7 +262,7 @@ - - + - + @@ -572,6 +572,8 @@ import WaybillDetailReadOnly from '@/views/emis/emisWaybill/waybillDetailReadOnl import TraceWaybillDetailView from '@/views/emis/customerService/traceWaybillDetailView.vue'; +import XdTable2 from '@/components/XdTable/index2.vue'; + import { queryLastRecord } from "@/api/emis/emisTmsScanRecord"; import {timeDiffTime,timeFormat} from '@/utils/dateUtils' @@ -583,6 +585,7 @@ export default { // name: "DispatchWaybillList", components: { + XdTable2, VirtualScroll, VirtualColumn, TraceWaybillDetailView, @@ -889,7 +892,7 @@ export default { } }else{ - if(this.$store.getters.ownerSiteCode!='88888'&&(this.queryParams.salesmen==null||this.queryParams.salesmen=='') ){ + if(this.$store.getters.ownerSiteCode!='88888'&&(this.queryParams.salesmen==null||this.queryParams.salesmen=='')&&(this.queryParams.custNo==null||this.queryParams.salesmen=='') ){ this.queryParams.sendSiteCode=this.$store.getters.ownerSiteCode; } diff --git a/src/views/emis/emisWaybill/sendWaybillListNew.vue b/src/views/emis/emisWaybill/sendWaybillListNew.vue index 8b26f13a..1898d2e1 100644 --- a/src/views/emis/emisWaybill/sendWaybillListNew.vue +++ b/src/views/emis/emisWaybill/sendWaybillListNew.vue @@ -22,7 +22,7 @@ clearable :rows="4" /> - + @@ -43,7 +43,7 @@ - + @@ -53,7 +53,7 @@ - + @@ -69,10 +69,10 @@ - + - + @@ -84,7 +84,7 @@ v-model="queryParams.sendName" :placeholder="$t('寄件人')" clearable - @keyup.enter.native="handleQuery" + /> @@ -92,7 +92,7 @@ v-model="queryParams.sendMobile" :placeholder="$t('寄件人电话')" clearable - @keyup.enter.native="handleQuery" + /> @@ -100,18 +100,18 @@ v-model="queryParams.sendCompany" :placeholder="$t('寄件公司')" clearable - @keyup.enter.native="handleQuery" + /> - + @@ -119,7 +119,7 @@ v-model="queryParams.feeRemark" :placeholder="$t('费用备注')" clearable - @keyup.enter.native="handleQuery" + /> @@ -133,7 +133,7 @@ v-model="queryParams.receiveName" :placeholder="$t('收件人')" clearable - @keyup.enter.native="handleQuery" + /> @@ -141,7 +141,7 @@ v-model="queryParams.receiveMobile" :placeholder="$t('收件电话')" clearable - @keyup.enter.native="handleQuery" + /> @@ -151,12 +151,12 @@ v-model="queryParams.receiveCompany" :placeholder="$t('收件公司')" clearable - @keyup.enter.native="handleQuery" + /> - + @@ -878,6 +878,9 @@ export default { this.openView=true; }, + onCustNoChange(){ + this.queryParams.sendSiteCode=null; + }, initQueryParams(){ this.queryParams=this.addDateRange(this.queryParams, this.dateRange,"sendDate"); @@ -890,7 +893,7 @@ export default { } }else{ - if(this.$store.getters.ownerSiteCode!='88888'&&(this.queryParams.salesmen==null||this.queryParams.salesmen=='') ){ + if(this.$store.getters.ownerSiteCode!='88888'&&(this.queryParams.salesmen==null||this.queryParams.salesmen=='')&&(this.queryParams.custNo==null||this.queryParams.custNo=='') ){ this.queryParams.sendSiteCode=this.$store.getters.ownerSiteCode; }