ZaiZai 1 year ago
parent
commit
10493aa6ba
2 changed files with 85 additions and 0 deletions
  1. 8 0
      src/api/modules/data-fill/wbs.js
  2. 77 0
      src/views/data-fill/wbs.vue

+ 8 - 0
src/api/modules/data-fill/wbs.js

@@ -437,4 +437,12 @@ export default {
             params: form,
         })
     },
+    //排序
+    async formTableSort(form) {
+        return HcApi({
+            url: '/api/blade-manager/wbsTreeContract/table-sort',
+            method: 'post',
+            data: form,
+        })
+    },
 }

+ 77 - 0
src/views/data-fill/wbs.vue

@@ -83,6 +83,7 @@
                 </div>
                 <hc-tab-card :tabs="authBtnTabdata" :tab-key="authBtnTabKey" @change="authBtnTabClick">
                     <template #extra>
+                        <el-button :disabled="ListItemDatas.length <= 0" hc-btn type="primary" @click="sortFormClick">排序</el-button>
                         <el-button :loading="nodeSaveLoading" hc-btn type="primary" @click="NodeSaveClick">辅助保存</el-button>
                         <HcTooltip keys="wbs_views_drawings">
                             <el-button :disabled="nodeDataInfo?.drawingsId === -1 || nodeDataInfo?.drawingsId === null" hc-btn color="#e03997" @click="viewsDrawings">图纸</el-button>
@@ -521,6 +522,20 @@
                 @close="uploadModalClose"
             />
         </hc-new-dialog>
+
+        <!-- 表单排序 -->
+        <hc-new-dialog v-model="sortFormShow" is-table title="排序" widths="800px" is-footer-center @close="sortFormClose">
+            <hc-table
+                ref="tableSortFormRef"
+                :column="tableSortFormColumn" :datas="tableSortFormData"
+                is-row-drop is-sort quick-sort
+                @row-drop="sortFormDropTap" @row-sort="rowSortFormTap"
+            />
+            <template #footer>
+                <el-button hc-btn @click="sortFormClose">取消</el-button>
+                <el-button hc-btn type="primary" :loading="sortFormLoading" @click="sortFormSubmit">提交</el-button>
+            </template>
+        </hc-new-dialog>
     </div>
 </template>
 
@@ -2147,6 +2162,68 @@ const NodeSaveClick = async () => {
         window?.$message?.error(msg)
     }
 }
+
+//排序
+const tableSortFormRef = ref(null)
+const sortFormShow = ref(false)
+const tableSortFormColumn = [
+    { key: 'nodeName', name: '名称' },
+]
+const tableSortFormData = ref([])
+const sortFormClick = () => {
+    sortFormShow.value = true
+    tableSortFormData.value = deepClone(ListItemDatas.value)
+}
+
+// 行拖拽
+const sortFormDropTap = (rows) => {
+    tableSortFormData.value = [] // 先清空,否则排序会异常
+    nextTick(() => {
+        tableSortFormRef.value?.setData(rows)
+    })
+}
+
+// 点击排序
+const rowSortFormTap = (rows) => {
+    tableSortFormData.value = [] // 先清空,否则排序会异常
+    nextTick(() => {
+        tableSortFormData.value = rows
+    })
+}
+
+//关闭排序
+const sortFormClose = () => {
+    sortFormShow.value = false
+    sortFormLoading.value = false
+    tableSortFormData.value = []
+}
+
+//提交排序
+const sortFormLoading = ref(false)
+const sortFormSubmit = async () => {
+    const treeId = primaryKeyId.value
+    if (isNullES(treeId)) {
+        window?.$message?.warning('请先在左侧项目树选择一个节点')
+        return
+    }
+    const rows = tableSortFormData.value
+    //发起请求
+    nodeSaveLoading.value = true
+    const { error, code, msg } = await wbsApi.formTableSort({
+        projectId: projectId.value,
+        contractId: contractId.value,
+        classify: authBtnTabKey.value,
+        nodeIds: treeId,
+        ids: rows.join(),
+    }, false)
+    nodeSaveLoading.value = false
+    if (!error && code === 200) {
+        window?.$message?.success('操作成功')
+        window?.location?.reload() //刷新页面
+    } else {
+        window?.$message?.error(msg)
+    }
+}
 </script>
 
 <style lang="scss" scoped>