duy 1 týždeň pred
rodič
commit
49cd5046fc

+ 29 - 0
src/api/modules/cross/cross.js

@@ -0,0 +1,29 @@
+import { HcApi } from '../../request/index'
+
+export default {
+
+    //获取分页
+    async queryListData(form) {
+        return HcApi({
+            url: '/api/blade-manager/profiler/page',
+            method: 'post',
+            params: form,
+        })
+    },
+    //查看详情
+    async getOne(form) {
+        return HcApi({
+            url: '/api/blade-manager/profiler/getOne',
+            method: 'get',
+            params: form,
+        })
+    },
+    //修改
+        async edit(form) {
+        return HcApi({
+            url: '/api/blade-manager/profiler/edit',
+            method: 'post',
+            data: form,
+        })
+    },
+}

+ 88 - 55
src/views/cross/cross-add.vue

@@ -22,14 +22,14 @@
             </div>
             <el-row :gutter="20">
                 <el-col :span="8">
-                    <el-form-item label="隧道名称" prop="tunnelName">
-                        <el-input v-model="formData.tunnelName" placeholder="请输入" />
+                    <el-form-item label="隧道名称" prop="channelName">
+                        <el-input v-model="formData.channelName" placeholder="请输入" />
                     </el-form-item>
                 </el-col>
                 <el-col :span="8">
-                    <el-form-item label="隧道时间" prop="tunnelTime">
+                    <el-form-item label="隧道时间" prop="date">
                         <el-date-picker
-                            v-model="formData.tunnelTime"
+                            v-model="formData.date"
                             style="width: 100%;"
                             type="date"
                             placeholder="请选择"
@@ -37,8 +37,8 @@
                     </el-form-item>
                 </el-col>
                 <el-col :span="8">
-                    <el-form-item label="测量者" prop="surveyor">
-                        <el-input v-model="formData.surveyor" placeholder="请输入" />
+                    <el-form-item label="测量者" prop="userName">
+                        <el-input v-model="formData.userName" placeholder="请输入" />
                     </el-form-item>
                 </el-col>
             </el-row>
@@ -52,18 +52,18 @@
             </div>
             <el-row :gutter="20">
                 <el-col :span="8">
-                    <el-form-item label="仪器高度" prop="instrumentHeight">
-                        <ElInput v-model="formData.instrumentHeight" placeholder="请输入" />
+                    <el-form-item label="仪器高度" prop="deviceHeight">
+                        <ElInput v-model="formData.deviceHeight" placeholder="请输入" />
                     </el-form-item>
                 </el-col>
                 <el-col :span="8">
-                    <el-form-item label="方向偏移量(X)" prop="offsetX">
-                        <ElInput v-model="formData.offsetX" placeholder="请输入" />
+                    <el-form-item label="方向偏移量(X)" prop="x0">
+                        <ElInput v-model="formData.x0" placeholder="请输入" />
                     </el-form-item>
                 </el-col>
                 <el-col :span="8">
-                    <el-form-item label="方向偏移量(Y)" prop="offsetY">
-                        <ElInput v-model="formData.offsetY" placeholder="请输入" />
+                    <el-form-item label="方向偏移量(Y)" prop="z0">
+                        <ElInput v-model="formData.z0" placeholder="请输入" />
                     </el-form-item>
                 </el-col>
             </el-row>
@@ -75,35 +75,35 @@
                 <!-- 标题文本 -->
                 <div class="title-text">标准断面</div>
             </div>
-            <el-row :gutter="20">
+            <el-row v-for="(eleItem, eleIndex) in formData.sectionBeans" :key="eleIndex" :gutter="20">
                 <el-col :span="4">
                     <el-form-item label="方向" prop="direction">
-                        <ElInput v-model="formData.direction" placeholder="请输入" />
+                        <ElInput v-model="eleItem.direction" placeholder="请输入" />
                     </el-form-item>
                 </el-col>
                 <el-col :span="4">
                     <el-form-item label="起角" prop="startAngle">
-                        <ElInput v-model="formData.startAngle" placeholder="请输入" />
+                        <ElInput v-model="eleItem.startAngle" placeholder="请输入" />
                     </el-form-item>
                 </el-col>
                 <el-col :span="4">
                     <el-form-item label="终角" prop="endAngle">
-                        <ElInput v-model="formData.endAngle" placeholder="请输入" />
+                        <ElInput v-model="eleItem.endAngle" placeholder="请输入" />
                     </el-form-item>
                 </el-col>
                 <el-col :span="4">
                     <el-form-item label="半径" prop="radius">
-                        <ElInput v-model="formData.radius" placeholder="请输入" />
+                        <ElInput v-model="eleItem.radius" placeholder="请输入" />
                     </el-form-item>
                 </el-col>
                 <el-col :span="4">
-                    <el-form-item label="圆心(X)" prop="centerX">
-                        <ElInput v-model="formData.centerX" placeholder="请输入" />
+                    <el-form-item label="圆心(X)" prop="x">
+                        <ElInput v-model="eleItem.x" placeholder="请输入" />
                     </el-form-item>
                 </el-col>
                 <el-col :span="4">
-                    <el-form-item label="圆心(Z)" prop="centerZ">
-                        <ElInput v-model="formData.centerZ" placeholder="请输入" />
+                    <el-form-item label="圆心(Z)" prop="y">
+                        <ElInput v-model="eleItem.y" placeholder="请输入" />
                     </el-form-item>
                 </el-col>
             </el-row>
@@ -116,22 +116,22 @@
                 <div class="title-text">测量点数组</div>
             </div>
         
-            <HcTable is-new :column="tableColumn" :datas="formData.measurePoints">
+            <HcTable is-new :column="tableColumn" :datas="formData.data">
                 <template #angle="{ row }">
                     <el-input v-model="row.angle" size="small" />
                 </template>
-                <template #distance="{ row }">
-                    <el-input v-model="row.distance" size="small" />
+                <template #dist="{ row }">
+                    <el-input v-model="row.dist" size="small" />
                 </template>
                 <template #x="{ row }">
                     <el-input v-model="row.x" size="small" />
                 </template>
-                <template #y="{ row }">
-                    <el-input v-model="row.y" size="small" />
+                <template #z="{ row }">
+                    <el-input v-model="row.z" size="small" />
                 </template>
-                <template #status="{ row }">
+                <template #backBreak="{ row }">
                     <el-select 
-                        v-model="row.status" 
+                        v-model="row.backBreak" 
                         size="small" 
                         style="width: 100%"
                     >
@@ -147,19 +147,25 @@
 
 <script setup>
 import { defineModel, onMounted, ref, watch } from 'vue'
+import { getObjValue } from 'js-fast-way'
 
-
+import crossApi from '~api/cross/cross'
 
 const props = defineProps({
     formDisabled: {
         type: Boolean,
         default: false,
     },
+    rowId: {
+        type: String,
+        default: '',
+    },
 
  
 })
+const emit = defineEmits(['save'])
 const formDisabled = ref(props.formDisabled)
-
+const rowId = ref(props.rowId)
 // 双向绑定弹窗显示状态
 const editModal = defineModel('modelValue', {
   default: false,
@@ -170,6 +176,34 @@ watch(() => props.formDisabled, (val) => {
   formDisabled.value = val
   editModalTitle.value = val ? '查看详情' : '编辑'
 })
+watch(() => props.rowId, (val) => {
+  rowId.value = val
+  if (val) {
+    getOneDetail(val)
+  }
+})
+const getOneDetail = async (id)=>{
+    confirmLoad.value = true
+        const { error, code, data } = await crossApi.getOne({
+       id,
+
+    })
+    //判断状态
+    confirmLoad.value = false
+    if (!error && code === 200) {
+        console.log(data, '详情')
+        formData.value = getObjValue(data)
+        const { sectionBeans } = data
+        if (sectionBeans.length === 0) {
+            formData.value.sectionBeans = [{}]
+        }
+        
+    } else {
+      formData.value = {}
+       
+    }
+
+}
 // 表单引用
 const formRef = ref(null)
 // 加载状态
@@ -177,31 +211,29 @@ const confirmLoad = ref(false)
 
 // 表单数据结构
 const formData = ref({
-  tunnelName: '',
-  tunnelTime: '',
-  surveyor: '',
-  instrumentHeight: '',
-  offsetX: '',
-  offsetY: '',
+  channelName: '',
+  date: '',
+  userName: '',
+  deviceHeight: '',
+  x0: '',
+  z0: '',
   direction: '',
   startAngle: '',
   endAngle: '',
   radius: '',
-  centerX: '',
-  centerZ: '',
-  measurePoints: [
-    { angle: '测点角度1', distance: '10', x: '10', y: '10', status: '超挖' },
-    { angle: '测点角度2', distance: '20', x: '20', y: '20', status: '正常' },
-    { angle: '测点角度3', distance: '30', x: '30', y: '30', status: '欠挖' },
+  x: '',
+  z: '',
+  data: [
+
 
   ],
 })
 const tableColumn = [
     { key: 'angle', name: '测点角度' },
-    { key: 'distance', name: '距离' },
+    { key: 'dist', name: '距离' },
     { key: 'x', name: 'X坐标' },
-    { key: 'y', name: 'Y坐标' },
-    { key: 'status', name: '超/欠挖值' },
+    { key: 'z', name: 'Y坐标' },
+    { key: 'backBreak', name: '超/欠挖值' },
    
 ]
 // 添加新的测量点
@@ -221,17 +253,18 @@ const confirmLink = async () => {
   }
 
   confirmLoad.value = true
-  try {
-    // 模拟提交逻辑
-    console.log('提交表单数据:', formData.value)
-    // 实际项目中这里会调用API
-    await new Promise(resolve => setTimeout(resolve, 1000))
-    editModal.value = false
-  } catch (error) {
-    console.error('提交失败:', error)
-  } finally {
+
+        const { error, code, msg } = await crossApi.edit(formData.value)
+    //判断状态
     confirmLoad.value = false
-  }
+    if (!error && code === 200) {
+    
+     window.$message.success('保存成功')
+     closeModal()
+     emit('save')
+        
+    } 
+
 }
 </script>
 

+ 23 - 18
src/views/cross/section.vue

@@ -4,12 +4,12 @@
         <HcNewCard>
             <template #header>
                 <div class="w-32">
-                    <el-select v-model="searchForm.key1" clearable block placeholder="测量人" @change="getTableData">
+                    <el-select v-model="searchForm.userName" clearable block placeholder="测量人">
                         <el-option v-for="item in peopleType" :key="item.dictKey" :label="item.dictValue" :value="item.dictKey" />
                     </el-select>
                 </div>
                 <div class="ml-3 w-42">
-                    <el-select v-model="searchForm.status" clearable block placeholder="是否超欠挖 " @change="getTableData">
+                    <el-select v-model="searchForm.backBreak" clearable block placeholder="是否超欠挖 ">
                         <el-option v-for="item in tasksStatus" :key="item.dictKey" :label="item.dictValue" :value="item.dictKey" />
                     </el-select>
                 </div>
@@ -28,14 +28,14 @@
             </template>
         </HcNewCard>
         <!-- 编辑 -->
-        <cross-add v-model="editModal" :form-disabled="formDisabled" />
+        <cross-add v-model="editModal" :form-disabled="formDisabled" :row-id="rowId" @save="getTableData" />
     </div>
 </template>
 
 <script setup>
 import { onMounted, ref, watch } from 'vue'
 
-import patrolApi from '~api/patrol/patrol'
+import crossApi from '~api/cross/cross'
 import { useAppStore } from '~src/store'
 import { getArrValue } from 'js-fast-way'
 import crossAdd from './cross-add.vue'
@@ -44,24 +44,26 @@ const projectId = ref(useAppState.getProjectId)
 const contractId = ref(useAppState.contractId)
 
 const tableColumn = [
-    { key: 'key1', name: '设备型号' },
-    { key: 'planTime', name: '上传时间' },
-    { key: 'statusValue', name: '工程名称' },
-    { key: 'writeUserName', name: '测量时间' },
-    { key: 'createTime', name: '测量人' },
-    { key: 'createTime', name: '里程号' },
-    { key: 'sendUserName', name: '是否超欠挖' },
+    { key: 'deviceCode', name: '设备型号' },
+    { key: 'createTime', name: '上传时间' },
+    { key: 'nameOfProject', name: '工程名称' },
+    { key: 'date', name: '测量时间' },
+    { key: 'userName', name: '测量人' },
+    { key: 'mileageNumber', name: '里程号' },
+    { key: 'backBreak', name: '是否超欠挖' },
     { key: 'action', name: '操作', width:150 },
 ]
 const tableData = ref([
-    { key1: 'xx至xx高速公路-演示项(本地测试)', key2: '安全巡检', key3: '原地面检查', key4:'检查状态', key5:'需要整改', key6:'2023-09-27', key7:'2023-09-27', isType:true },
-    { key1: 'xx至xx高速公路-演示项(本地测试)', key2: '安全巡检', key3: '原地面检查', key4:'检查状态', key5:'需要整改', key6:'2023-09-27', key7:'2023-09-27', isType:false },
-    { key1: 'xx至xx高速公路-演示项(本地测试)', key2: '安全巡检', key3: '原地面检查', key4:'检查状态', key5:'需要整改', key6:'2023-09-27', key7:'2023-09-27', isType:true },
+  
 ])
 //搜索表单
 const searchForm = ref({
-    current: 1, size: 20, total: 0, key1:'', status:'', planStartTime1:'', planEndTime1:'',
+    current: 1, size: 20, total: 0, userName:'', backBreak:'', startTime:'', endTime:'',
 
+})
+onMounted(() => {
+    getTableData()
+   
 })
 const peopleType = ref([])
 const tasksStatus = ref([
@@ -73,8 +75,8 @@ const tasksStatus = ref([
 const betweenTime = ref(null)
 const betweenTimeUpdate = ({ val, arr }) => {
     betweenTime.value = arr
-    searchForm.value.planStartTime1 = val['start']
-    searchForm.value.planEndTime1 = val['end']
+    searchForm.value.startTime = val['start']
+    searchForm.value.endTime = val['end']
     getTableData()
 
 }
@@ -87,7 +89,7 @@ const pageChange = ({ current, size }) => {
 const tableLoading = ref(false)
 const getTableData = async () => {
     tableLoading.value = true
-    const { error, code, data } = await patrolApi.page2({
+    const { error, code, data } = await crossApi.queryListData({
         ...searchForm.value,
         projectId: projectId.value,
         contractId:contractId.value,
@@ -105,14 +107,17 @@ const getTableData = async () => {
 }
 
 const editModal = ref(false)//提交整改
+const rowId = ref(null)
 const formDisabled = ref(false)
 const changeRow = (row)=>{
+    rowId.value = row['id']
     editModal.value = true
     formDisabled.value = false
 
 }
 //查看详情
 const viewSubmit = async (row)=>{
+      rowId.value = row['id']
     formDisabled.value = true
       editModal.value = true