Bladeren bron

feat(data-fill): 添加批量插入编号功能

duy 1 maand geleden
bovenliggende
commit
7f0fa7c5d2

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

@@ -562,4 +562,13 @@ export default {
             params: form,
         })
     },
+    //批量插入编号
+    
+    async batchAddNumbers(form) {
+        return HcApi({
+            url: '/api//blade-manager/exceltab/batchAddNumbers',
+            method: 'post',
+            data: form,
+        })
+    },
 }

+ 16 - 22
src/views/data-fill/collapse-form/index.vue

@@ -660,7 +660,7 @@
     <hc-new-dialog
         v-model="pushCodeShow"
         :loading="pushCodeLoading"
-        widths="45%"
+        widths="55%"
         save-text="保存"
         title="插入编号"
        
@@ -670,10 +670,12 @@
         <HcPushCode
             v-if="pushCodeShow"
             ref="pushCodeRef"
+            :key="tableFormItemNode.KeyName"
             :contract-id="contract_id"
             :project-id="projectId"
-            :table-id="itinsertTableId"
-            :tree-id="itinsertTreeId"
+            :table-id="tableFormItemNode.pkeyId"
+            :tree-id="treeId"
+            :classify="classifys"
         />
     </hc-new-dialog>
 </template>
@@ -2076,24 +2078,6 @@ const getdownloadExcel = async (pKeyId) => {
 //下载模板
 const downModal = (item) => {
     const { pkeyId } = item
-    // if (isStatus.value === 3) {
-    //     window?.$messageBox?.alert('是否选择把数据一起导出?', '下载模板', {
-    //         showCancelButton: true,
-    //         confirmButtonText: '是',
-    //         cancelButtonText: '否',
-    //         callback: (action) => {
-    //             if (action === 'confirm') {
-    //                 console.log('数据')
-    //             } else if ( action === 'cancel') {
-    //                 console.log('清表')
-    //                 getdownloadExcel(pkeyId)
-    //             }
-    //         },
-    //     })
-    // } else {
-    //     console.log('清表')
-    //     getdownloadExcel(pkeyId)
-    // }
     getdownloadExcel(pkeyId)
 }
 
@@ -2267,7 +2251,17 @@ const cancelPushCode = () => {
     pushCodeShow.value = false
     pushCodeLoading.value = false
 }
-const submitPushCode = ()=>{
+const submitPushCode = async ()=>{
+    pushCodeLoading.value = true
+    let resdata = await pushCodeRef.value?.saveBatchCode()
+     pushCodeLoading.value = false
+    console.log(resdata, 'resdata')
+    
+    cancelPushCode()
+    // const { pkeyId } = tableFormItemNode.value
+    // const refs = await getFormRef(pkeyId)
+    // refs?.setFormData(resdata)
+    // waterModal.value = false
     
 }
 const pushCodeRef = ref(null)

+ 61 - 49
src/views/data-fill/collapse-form/push-code.vue

@@ -1,41 +1,41 @@
 <template>
     <div>
         <div class="flex items-center justify-center">
-            <el-radio-group v-model="codeType">
+            <el-radio-group v-model="formCode.type">
                 <el-radio :value="1" size="large">独立编号</el-radio>
                 <el-radio :value="2" size="large">组合编号</el-radio>
             </el-radio-group>
         </div>
-        <div v-if="codeType === 1" class="mt-2 bg-[#EFF5FF] px-[55px] py-[20px]">
+        <div v-if="formCode.type === 1" class="mt-2 bg-[#EFF5FF] px-[55px] py-[20px]">
             <el-form :model="formCode" :inline="true" class="flex items-center">
                 <div class="w-120px">
                     <el-form-item label="">
-                        <el-input v-model="formCode.key1" placeholder="数值(起)" clearable />
+                        <el-input v-model="formCode.startNumber1" placeholder="数值(起)" clearable />
                     </el-form-item>
                 </div>
                 <div class="w-120px">
                     <el-form-item label="">
-                        <el-input v-model="formCode.key2" placeholder="数值(始)" clearable />
+                        <el-input v-model="formCode.endNumber1" placeholder="数值(始)" clearable />
                     </el-form-item>
                 </div>
                 <div class="ml-1">
                     <el-form-item label="">
                         <el-select
-                            v-model="formCode.key3"
+                            v-model="formCode.increType1"
                             placeholder="递增分类"
                             clearable
                             style="width: 120px;"
                         >
-                            <el-option label="常规递增" value="1" />
-                            <el-option label="奇数递增" value="2" />
-                            <el-option label="偶数递增" value="2" />
+                            <el-option label="常规递增" :value="1" />
+                            <el-option label="奇数递增" :value="2" />
+                            <el-option label="偶数递增" :value="2" />
                         </el-select>
                     </el-form-item>
                 </div>
                 <div class="ml-1">
                     <el-form-item label="">
                         <el-select
-                            v-model="formCode.key4"
+                            v-model="formCode.cycleType1"
                             placeholder="循环分类"
                             clearable
                             style="width: 120px;"
@@ -48,7 +48,7 @@
           
                 <div class="ml-1 w-120px">
                     <el-form-item label="">
-                        <el-input v-model="formCode.key5" placeholder="循环组数" clearable />
+                        <el-input v-model="formCode.cycleTypeGroup1" placeholder="循环组数" clearable />
                     </el-form-item>
                 </div>
             </el-form>
@@ -58,50 +58,50 @@
                 <p>递增循环:起止以内的编号递增n次,如1-3:1、2、3/1、2、3/....n次循环1、2、3</p>
             </div>
         </div>
-        <div v-if="codeType === 2" class="mt-2 bg-[#EFF5FF] px-[40px] py-[20px]">
+        <div v-if="formCode.type === 2" class="mt-2 bg-[#EFF5FF] px-[40px] py-[20px]">
             <el-form :model="formCode" :inline="true">
                 <div class="flex items-center">
                     <div class="w-125px">
                         <el-form-item label="">
-                            <el-input v-model="formCode.key1" placeholder="数值1(起)" clearable />
+                            <el-input v-model="formCode.startNumber1" placeholder="数值1(起)" clearable />
                         </el-form-item>
                     </div>
                     <div class="w-125px">
                         <el-form-item label="">
-                            <el-input v-model="formCode.key2" placeholder="数值1(始)" clearable />
+                            <el-input v-model="formCode.endNumber1" placeholder="数值1(始)" clearable />
                         </el-form-item>
                     </div>
                     <div class="ml-1">
                         <el-form-item label="">
                             <el-select
-                                v-model="formCode.key3"
+                                v-model="formCode.increType1"
                                 placeholder="递增分类"
                                 clearable
                                 style="width: 120px;"
                             >
-                                <el-option label="常规递增" value="1" />
-                                <el-option label="奇数递增" value="2" />
-                                <el-option label="偶数递增" value="2" />
+                                <el-option label="常规递增" :value="1" />
+                                <el-option label="奇数递增" :value="2" />
+                                <el-option label="偶数递增" :value="2" />
                             </el-select>
                         </el-form-item>
                     </div>
                     <div class="ml-1">
                         <el-form-item label="">
                             <el-select
-                                v-model="formCode.key4"
+                                v-model="formCode.cycleType1"
                                 placeholder="循环分类"
                                 clearable
                                 style="width: 120px;"
                             >
-                                <el-option label="固定循环" value="1" />
-                                <el-option label="递增循环" value="2" />
+                                <el-option label="固定循环" :value="1" />
+                                <el-option label="递增循环" :value="2" />
                             </el-select>
                         </el-form-item>
                     </div>
       
                     <div class="ml-1 w-120px">
                         <el-form-item label="">
-                            <el-input v-model="formCode.key5" placeholder="循环组数" clearable />
+                            <el-input v-model="formCode.cycleTypeGroup1" placeholder="循环组数" clearable />
                         </el-form-item>
                     </div>
                 </div>
@@ -109,15 +109,12 @@
                     <div class="mr-4 w-125px">
                         <el-form-item label="">
                             <el-select
-                                v-model="formCode.key6"
+                                v-model="formCode.separator"
                                 placeholder="选择符号"
                                 clearable
                                 style="width: 100px;"
                             >
-                                <el-option label="+" value="+" />
-                                <el-option label="-" value="-" />
-                                <el-option label="*" value="*" />
-                                <el-option label="/" value="/" />
+                                <el-option v-for="(item, index) in separatorOptions" :key="index" :label="item.label" :value="item.value" />
                             </el-select>
                         </el-form-item>
                     </div>
@@ -129,18 +126,18 @@
                 <div class="mt-4 flex items-center">
                     <div class="w-125px">
                         <el-form-item label="">
-                            <el-input v-model="formCode.key1" placeholder="数值2(起)" clearable />
+                            <el-input v-model="formCode.startNumber2" placeholder="数值2(起)" clearable />
                         </el-form-item>
                     </div>
                     <div class="w-125px">
                         <el-form-item label="">
-                            <el-input v-model="formCode.key2" placeholder="数值2(始)" clearable />
+                            <el-input v-model="formCode.endNumber2" placeholder="数值2(始)" clearable />
                         </el-form-item>
                     </div>
                     <div class="ml-1">
                         <el-form-item label="">
                             <el-select
-                                v-model="formCode.key3"
+                                v-model="formCode.increType2"
                                 placeholder="递增分类"
                                 clearable
                                 style="width: 120px;"
@@ -154,7 +151,7 @@
                     <div class="ml-1">
                         <el-form-item label="">
                             <el-select
-                                v-model="formCode.key4"
+                                v-model="formCode.cycleType2"
                                 placeholder="循环分类"
                                 clearable
                                 style="width: 120px;"
@@ -167,7 +164,7 @@
       
                     <div class="ml-1 w-120px">
                         <el-form-item label="">
-                            <el-input v-model="formCode.key5" placeholder="循环组数" clearable />
+                            <el-input v-model="formCode.cycleTypeGroup2" placeholder="循环组数" clearable />
                         </el-form-item>
                     </div>
                 </div>
@@ -181,23 +178,27 @@
 
 <script setup>
 import { onMounted, ref, watch } from 'vue'
-import { getArrValue, getObjValue, setPosInsert } from 'js-fast-way'
-import dataApi from '~api/tentative/detect/test'
+import wbsApi from '~api/data-fill/wbs'
+
+import { getDictionaryData } from '~uti/tools'
 
 const props = defineProps({
     projectId: [String, Number],
     contractId: [String, Number],
     tableId: [String, Number],
     treeId: [String, Number],
+    classify:[String, Number],
 })
 
 //事件
-const emit = defineEmits(['change'])
+
 //参数变量
 const projectId = ref(props.projectId)
 const contractId = ref(props.contractId)
 const table_id = ref(props.tableId)
 const tree_id = ref(props.treeId)
+const classify = ref(props.classify)
+const key = ref(props.key)
 
 //监听
 watch(() => [
@@ -205,35 +206,46 @@ watch(() => [
     props.contractId,
     props.tableId,
     props.treeId,
-], ([pid, cid, tableId, treeId]) => {
+    props.classify,
+    props.key,
+], ([pid, cid, tableId, treeId, cfy, Key]) => {
     projectId.value = pid
     contractId.value = cid
     table_id.value = tableId
     tree_id.value = treeId
+    classify.value = cfy
+     key.value = Key
 })
 const codeType = ref(1)
 const formCode = ref({
-    key1: '',
-    key2: '',
-    key3: '',
-    key4: '',
-    key5: '',
-    key6: '',
-    key7: '',
-    key8: '',
-    key9: '',
-    key10: '',
+type:1,
+  
 })
-
+const separatorOptions = ref([])
+const getSeparatorOptions = async () => {
+  separatorOptions.value = await getDictionaryData('separator', true )
+}
 //渲染完成
 onMounted(() => {
-  
+  getSeparatorOptions()
 })
 
 
 
 
-
+const saveBatchCode = async ()=>{
+    const { error, code, data, msg } = await wbsApi.batchAddNumbers({
+        ...formCode.value,
+        classify: classify.value,
+        nodeId: tree_id.value,
+        pkeyId: table_id.value,
+        key:key.value,
+    })
+    if (!error && code === 200) {
+        window?.$message?.success('操作成功')
+        return data
+    } 
+}
 
 
 
@@ -245,6 +257,6 @@ onMounted(() => {
 
 // 暴露出去
 defineExpose({
-  
+  saveBatchCode,
 })
 </script>