From bf23d66c841f7bc7de098a93b9a61fffe04d9cfb Mon Sep 17 00:00:00 2001 From: guoyuji <guoyujie@ng.com> Date: 星期三, 28 二月 2024 18:41:13 +0800 Subject: [PATCH] 提交右键菜单以及拖拉选中功能 --- north-glass-erp/northglass-erp/src/views/sd/order/CreateOrder.vue | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 50 insertions(+), 4 deletions(-) diff --git a/north-glass-erp/northglass-erp/src/views/sd/order/CreateOrder.vue b/north-glass-erp/northglass-erp/src/views/sd/order/CreateOrder.vue index 47d0e62..e104c19 100644 --- a/north-glass-erp/northglass-erp/src/views/sd/order/CreateOrder.vue +++ b/north-glass-erp/northglass-erp/src/views/sd/order/CreateOrder.vue @@ -8,6 +8,8 @@ import useUserInfoStore from '@/stores/userInfo' import SelectProduct from "@/views/sd/product/SelectProduct.vue" import {changeFilterEvent,filterChanged} from "@/hook" +import {addListener,toolbarButtonClickEvent} from "@/hook/mouseMove"; +import {CaretBottom} from "@element-plus/icons-vue"; let dialogTableVisible = ref(false) let productVisible = ref(false) @@ -15,6 +17,8 @@ const router = useRouter() const route = useRoute() const xGrid = ref() +let cellArea = ref() + // 瀹氫箟琛ㄥご涓婁紶鏁版嵁 const titleUploadData = ref({ project:'', @@ -76,7 +80,9 @@ options: [ [ { code: 'addRow', name: '娣诲姞', prefixIcon: 'vxe-icon-square-plus', visible: true, disabled: false }, - { code: 'deleteRow', name: '鍒犻櫎', prefixIcon: 'vxe-icon-delete', visible: true, disabled: true } + { code: 'deleteRow', name: '鍒犻櫎', prefixIcon: 'vxe-icon-delete', visible: true, disabled: true }, + { code: 'copyChecked', name: '閫変腑鐩稿悓', prefixIcon: 'vxe-icon-copy', visible: true, disabled: false }, + { code: 'copyAll', name: '涔嬪悗鐩稿悓', prefixIcon: 'vxe-icon-feedback', visible: true, disabled: false }, ] ] } @@ -298,6 +304,32 @@ gridOptions.menuConfig.body.options[0][1].disabled=true break } + case 'copyChecked' :{ + let result = toolbarButtonClickEvent() + if(result){ + const dataList = xGrid.value.getTableData().visibleData + const val = dataList[result.start][result.cell] + dataList.forEach((item,index) =>{ + if(index>=result.start && index<=result.end){ + item[result.cell] = val + } + }) + } + break + } + case 'copyAll' :{ + let result = toolbarButtonClickEvent() + if(result){ + const dataList = xGrid.value.getTableData().visibleData + const val = dataList[result.start][result.cell] + dataList.forEach((item,index) =>{ + if(index>=result.start ){ + item[result.cell] = val + } + }) + } + break + } } } }, @@ -321,6 +353,9 @@ //鍒濆鍖栧垽鏂槸鍚︽湁id浼犲叆 onMounted(()=>{ + //鍚敤琛ㄦ牸鎷栧姩閫変腑 + addListener(xGrid.value,gridOptions,cellArea.value) + const str = route.query.orderId if (typeof str === 'undefined' || str === null || str === '' || str === '\n' || str === '\r'){ return @@ -349,7 +384,7 @@ gridOptions.toolbarConfig.buttons[2].disabled = true } - + //鍔犺浇鍓〃鏁版嵁 xGrid.value.reloadData(res.data.orderDetails) }else{ ElMessage.error(res.msg) @@ -483,8 +518,6 @@ titleUploadData.value.money=countMoney(xGrid.value.getTableData().fullData).toString() } - - @@ -652,6 +685,12 @@ <el-dialog v-model="productVisible" style="width: 80%;height:75% "> <select-product :rowIndex="rowIndex" @getProductRow="getProductRow" style="width: 100%;height: 100%" /> </el-dialog> +<!--閫変腑琛ㄦ牸 --> + <div class="vxe-table--cell-area" ref="cellArea" > + <span class="vxe-table--cell-main-area" ></span> + + <span class="vxe-table--cell-active-area" ></span> + </div> </div> </template> @@ -678,5 +717,12 @@ width: 100%; height: 85%; } + .vxe-grid { + /* 绂佺敤娴忚鍣ㄩ粯璁ら�変腑 */ + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + } </style> \ No newline at end of file -- Gitblit v1.8.0