From dd3a1555e588bc356464b70921be15e5f0664668 Mon Sep 17 00:00:00 2001 From: zouyu <2723363702@qq.com> Date: 星期五, 19 一月 2024 13:25:02 +0800 Subject: [PATCH] 修改车间订单拖拽排序&参数值校验 --- src/views/plan/manufacturingorder/productorder-form.vue | 134 ++++++++++++++++++++++++++++++++++++++------ 1 files changed, 114 insertions(+), 20 deletions(-) diff --git a/src/views/plan/manufacturingorder/productorder-form.vue b/src/views/plan/manufacturingorder/productorder-form.vue index 50a0c0c..ef8922c 100644 --- a/src/views/plan/manufacturingorder/productorder-form.vue +++ b/src/views/plan/manufacturingorder/productorder-form.vue @@ -268,7 +268,7 @@ <el-row> <el-col :span="24" class="productorder-operates-col"> <el-card class="productorder-operates" > - <el-row> + <!-- <el-row> <el-col :span="2" class="frame1">搴忓彿 </el-col> <el-col :span="4" class="frame1">宸ュ簭鍙� @@ -279,44 +279,57 @@ </el-col> <el-col :span="3" class="frame1">鎿嶄綔 </el-col> - </el-row> - <!-- <el-table + </el-row> --> + <el-table + id="operationTable" ref="operationTable" + class="basic-template-table" :data="operations" - style="width: 100%;" height="593px" + border highlight-current-row :default-sort="{ prop: 'operationOrder' }" @row-click="operationRowClick" > <el-table-column prop="operationOrder" + min-width="50" label="搴忓彿" - ></el-table-column> + > + <template slot-scope="scope"> + <div style="display:flex"> + <span style="width:20px;"> + <i class="icon aufontAll h-icon-all-drag"></i + ></span> + <span>{{ scope.row.operationOrder }}</span> + </div> + </template> + </el-table-column> <el-table-column prop="operationNo" header-align="center" align="center" + min-width="100" label="宸ュ簭鍙�" ></el-table-column> <el-table-column prop="operationName" header-align="center" align="center" + min-width="100" label="宸ュ簭鎻忚堪" ></el-table-column> - <el-table-column prop="partName" header-align="center" - align="center" + min-width="100px" label="闆朵欢" ></el-table-column> - <el-table-column prop="remark" header-align="center" align="center" + min-width="50" label="鎿嶄綔" > <template slot-scope="scope"> @@ -328,8 +341,8 @@ </el-button> </template> </el-table-column> - </el-table> --> - <zttdraggable + </el-table> + <!-- <zttdraggable :forceFallback="true" :list="operations" :animation="200" @@ -363,14 +376,10 @@ </el-col> </el-row> </div> - </zttdraggable> + </zttdraggable> --> </el-card> </el-col> </el-row> - - - - </el-col> <el-col :span="16"> <el-tabs type="card" ref="paramTabs"> @@ -1064,12 +1073,40 @@ .productorder-operates-col { margin-bottom: 0px; } +.basic-template-table .el-table__body .el-table__row td:first-child .cell { + padding-left: 0px; + padding-right: 0px; +} + +.basic-template-table .el-table__body .el-table__row:hover { + cursor: move; +} + +.basic-template-table .el-table__body .el-table__row:hover .icon { + display: inline-block; +} + +.basic-template-table .el-table__body .el-table__row .icon { + color: rgba(0, 0, 0, 0.45); + font-size: 12px; + line-height: 18px; + display: none; +} + +.aufontAll { + font-family: aufontAll !important; + font-size: 14px; + font-style: normal; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} </style> <style scoped> /deep/ .el-input-number.is-without-controls .el-input__inner { text-align: start; } + </style> <script> import { @@ -1246,6 +1283,7 @@ } }, mounted() { + this.rowDrop() window.addEventListener( 'hashchange', () => { @@ -1405,6 +1443,50 @@ } }, methods: { + rowDrop() { + const that = this + const tbody = document.querySelector( + '#operationTable .el-table__body-wrapper tbody' + ) + Sortable.create(tbody, { + // 缁撴潫鎷栨嫿 + onEnd({ newIndex, oldIndex }) { + if (newIndex > oldIndex) { + // 涓嬬Щ + that.operations + .filter((e) => e.operationOrder == oldIndex + 1) + .forEach((e) => (e.operationOrder = 'x')) + that.operations + .filter((e) => e.operationOrder > oldIndex + 1 && e.operationOrder <= newIndex + 1) + .forEach((e) => (e.operationOrder = e.operationOrder - 1)) + that.operations + .filter((e) => e.operationOrder == 'x') + .forEach((e) => (e.operationOrder = newIndex + 1)) + } else if (oldIndex > newIndex) { + // 涓婄Щ + that.operations + .filter((e) => e.operationOrder == oldIndex + 1) + .forEach((e) => (e.operationOrder = 'x')) + that.operations + .filter((e) => e.operationOrder < oldIndex + 1 && e.operationOrder >= newIndex + 1) + .forEach((e) => (e.operationOrder = e.operationOrder + 1)) + that.operations + .filter((e) => e.operationOrder == 'x') + .forEach((e) => (e.operationOrder = newIndex + 1)) + } + // 鎷栨嫿缁撴潫鍚庯紝淇濆瓨鏂扮殑鎺掑簭 + let data = that.operations.map(el =>{ + return { + id:el.id, + operationOrder:el.operationOrder, + } + }) + changeOrder(data).then().catch(error => { + console.error(error) + }); + } + }) + }, dragEnd(e){ this.operations.forEach((e, i) => { e.index = i + 1 @@ -1422,8 +1504,8 @@ }) changeOrder(data).then((res) =>{ }).catch(error => { - console.error(error) - }); + console.error(error) + }); }, getSysParam(paramKey) { getSysParam(paramKey).then((response) => { @@ -1689,7 +1771,7 @@ }, // 2.tabs-宸ヨ壓璺嚎 //宸ヨ壓鏂囦欢閫夋嫨 - + // 宸ヨ壓璺嚎閫夋嫨 routingSelectChanged(routingId) { this.currentRouting = this.dataForm.routingList.find( @@ -1762,8 +1844,9 @@ this.dataForm.bomId = null }, // 鐐瑰嚮宸ヨ壓宸ュ簭琛岃Е鍙戞牎楠屽伐鑹烘槸鍚︿慨鏀癸紝鑻ヤ慨鏀瑰垯涓嶅彲鎿嶄綔锛岄渶鍏堜繚瀛橈紝鑻ユ湭淇敼锛屽垯鍙煡璇㈠嚭瀵瑰簲鐨勫弬鏁伴泦 - operationRowClick(event) { - const row = this.operations[event.oldIndex] + operationRowClick(row) { + // const row = this.operations[event.oldIndex] + console.log(row); if (this.dataForm.id != null && this.dataForm.id !== 0) { this.routingOperationId = row.technologyRoutingOperationId this.moRoutingOperationId = row.id @@ -2018,6 +2101,17 @@ // 淇濆瓨鎵�鏈夊弬鏁扮殑淇敼 saveAllParamChange() { const paramJson = { routingOperationParam: this.templateParamList } + let num = 0 + this.templateParamList.forEach(e=>{ + var regex=/^[^\(\)|^,]+$/; + if(!regex.test(e.paramValue)){ + num+=1 + } + }) + if(num>0){ + this.$message.error("鍙傛暟鍊间笉鑳藉寘鍚嫳鏂囨嫭鍙锋垨閫楀彿,璇锋鏌�") + return + } putRoutingTemplateParamForOrder(paramJson).then((response) => { const data = response.data if (data.code === 0) { -- Gitblit v1.9.3