Parcourir la source

断面仪---是否超欠挖改成围岩等级

duy il y a 1 semaine
Parent
commit
73ead9920e
2 fichiers modifiés avec 143 ajouts et 136 suppressions
  1. 105 95
      src/views/cross/cross-add.vue
  2. 38 41
      src/views/cross/section.vue

+ 105 - 95
src/views/cross/cross-add.vue

@@ -1,19 +1,9 @@
 <template>
-    <hc-new-dialog 
-        v-model="editModal" 
-        is-table 
-        :title="editModalTitle" 
-        widths="85rem" 
-        :loading="confirmLoad" 
-        :footer="!formDisabled" 
-        @close="closeModal"
-        @save="confirmLink"
+    <hc-new-dialog
+        v-model="editModal" is-table :title="editModalTitle" widths="85rem" :loading="confirmLoad"
+        :footer="!formDisabled" @close="closeModal" @save="confirmLink"
     >
-        <el-form 
-            ref="formRef" 
-            :model="formData"
-            :disabled="formDisabled"
-        >
+        <el-form ref="formRef" :model="formData" :disabled="formDisabled">
             <!-- 测量者信息 -->
             <div class="section-title">
                 <!-- 左侧蓝色圆点标识 -->
@@ -30,10 +20,7 @@
                 <el-col :span="8">
                     <el-form-item label="测量时间" prop="date">
                         <el-date-picker
-                            v-model="formData.date"
-                            style="width: 100%;"
-                            type="date"
-                            placeholder="请选择"
+                            v-model="formData.date" style="width: 100%;" type="date" placeholder="请选择"
                             value-format="YYYY-MM-DD"
                         />
                     </el-form-item>
@@ -81,11 +68,7 @@
                 <el-col :span="4">
                     <el-form-item label="方向" prop="direction">
                         <!-- <ElInput v-model="eleItem.direction" placeholder="请输入" /> -->
-                        <el-select 
-                            v-model="eleItem.direction" 
-                            size="small" 
-                            style="width: 100%"
-                        >
+                        <el-select v-model="eleItem.direction" size="small" style="width: 100%">
                             <el-option label="顺时针" value="true" />
                             <el-option label="逆时针" value="false" />
                         </el-select>
@@ -125,7 +108,7 @@
                 <!-- 标题文本 -->
                 <div class="title-text">测量点数组</div>
             </div>
-        
+
             <HcTable is-new :column="tableColumn" :datas="formData.data">
                 <template #angle="{ row }">
                     <el-input v-model="row.angle" size="small" />
@@ -143,6 +126,26 @@
                     <el-input v-model="row.backBreak" size="small" />
                 </template>
             </HcTable>
+
+            <!-- 测量点数组 -->
+            <div class="section-title">
+                <!-- 左侧蓝色圆点标识 -->
+                <div class="title-dot" />
+                <!-- 标题文本 -->
+                <div class="title-text">围岩信息</div>
+            </div>
+            <el-row :gutter="20">
+                <el-col :span="8">
+                    <el-form-item label="围岩等级" prop="backBreak">
+                        <el-select v-model="formData.backBreak" style="width: 100%">
+                            <el-option
+                                v-for="item in taskStatus" :key="item.id" :label="item.dictValue"
+                                :value="item.dictKey"
+                            />
+                        </el-select>
+                    </el-form-item>
+                </el-col>
+            </el-row>
         </el-form>
     </hc-new-dialog>
 </template>
@@ -162,29 +165,35 @@ const props = defineProps({
         type: String,
         default: '',
     },
-
- 
+    taskStatus: {
+        type: Array,
+        default: () => ([]),
+    },
 })
 const emit = defineEmits(['save'])
 const formDisabled = ref(props.formDisabled)
 const rowId = ref(props.rowId)
+const taskStatus = ref(props.taskStatus)
 // 双向绑定弹窗显示状态
 const editModal = defineModel('modelValue', {
-  default: false,
+    default: false,
 })
 const editModalTitle = ref('编辑')
 
 watch(() => props.formDisabled, (val) => {
-   
-  formDisabled.value = val
-  editModalTitle.value = val ? '查看详情' : '编辑'
+    formDisabled.value = val
+    editModalTitle.value = val ? '查看详情' : '编辑'
 })
 watch(() => props.rowId, (val) => {
-  rowId.value = val
-  if (val) {
-  
-    getOneDetail(val)
-  }
+    rowId.value = val
+    if (val) {
+        getOneDetail(val)
+    }
+})
+
+watch(() => props.taskStatus, (val) => {
+    console.log(val, '任务状态变化了')
+    taskStatus.value = val
 })
 // const tasksStatus = ref([])
 // const getTasksStatusOptions = async () => {
@@ -196,17 +205,14 @@ watch(() => props.rowId, (val) => {
 //     })
 // }
 // 监听弹窗显示状态,每次打开时加载选项
-watch(editModal, (newVal) => {
-  if (newVal) { // 当弹窗被打开时
-    // getTasksStatusOptions()
-  }
-})
-const getOneDetail = async (id)=>{
+// watch(editModal, (newVal) => {
+//     if (newVal) { // 当弹窗被打开时
+//         // getTasksStatusOptions()
+//     }
+// })
+const getOneDetail = async (id) => {
     confirmLoad.value = true
-        const { error, code, data } = await crossApi.getOne({
-       id,
-
-    })
+    const { error, code, data } = await crossApi.getOne({ id })
     //判断状态
     confirmLoad.value = false
     if (!error && code === 200) {
@@ -216,10 +222,10 @@ const getOneDetail = async (id)=>{
         if (sectionBeans.length === 0) {
             formData.value.sectionBeans = [{}]
         }
-        
+
     } else {
-      formData.value = {}
-       
+        formData.value = {}
+
     }
 
 }
@@ -230,19 +236,20 @@ const confirmLoad = ref(false)
 
 // 表单数据结构
 const formData = ref({
-  channelName: '',
-  date: '',
-  userName: '',
-  deviceHeight: '',
-  x0: '',
-  z0: '',
-  direction: '',
-  startAngle: '',
-  endAngle: '',
-  radius: '',
-  x: '',
-  z: '',
-  data: [],
+    backBreak: '',
+    channelName: '',
+    date: '',
+    userName: '',
+    deviceHeight: '',
+    x0: '',
+    z0: '',
+    direction: '',
+    startAngle: '',
+    endAngle: '',
+    radius: '',
+    x: '',
+    z: '',
+    data: [],
 })
 const tableColumn = [
     { key: 'angle', name: '测点角度' },
@@ -250,64 +257,67 @@ const tableColumn = [
     { key: 'x', name: 'X坐标' },
     { key: 'z', name: 'Y坐标' },
     { key: 'backBreak', name: '超/欠挖值' },
-   
+
 ]
 // 添加新的测量点
 
 
 // 关闭弹窗
 const closeModal = () => {
-  editModal.value = false
+    editModal.value = false
 }
 
 // 确认提交
 const confirmLink = async () => {
-  // 表单验证
-  if (formRef.value) {
-    const valid = await formRef.value.validate()
-    if (!valid) return
-  }
+    // 表单验证
+    if (formRef.value) {
+        const valid = await formRef.value.validate()
+        if (!valid) return
+    }
+
 
+    confirmLoad.value = true
 
-  confirmLoad.value = true
-  
-  // 检查sectionBeans是否为[{}]
-  if (formData.value.sectionBeans && formData.value.sectionBeans.length === 1 && Object.keys(formData.value.sectionBeans[0]).length === 0) {
-    formData.value.sectionBeans = []
-  }
+    // 检查sectionBeans是否为[{}]
+    if (formData.value.sectionBeans && formData.value.sectionBeans.length === 1 && Object.keys(formData.value.sectionBeans[0]).length === 0) {
+        formData.value.sectionBeans = []
+    }
 
-  const { error, code } = await crossApi.edit(formData.value)
-  //判断状态
-  confirmLoad.value = false
-  if (!error && code === 200) {
-    window.$message.success('保存成功')
-    closeModal()
-    emit('save')
-  }
+    const { error, code } = await crossApi.edit(formData.value)
+    //判断状态
+    confirmLoad.value = false
+    if (!error && code === 200) {
+        window.$message.success('保存成功')
+        closeModal()
+        emit('save')
+    }
 
 }
 </script>
 
 <style lang="scss" scoped>
 .section-title {
-  display: flex;
-  align-items: center;
-  /* 可根据需要调整整体边距 */
-  margin: 15px 0;
+    display: flex;
+    align-items: center;
+    /* 可根据需要调整整体边距 */
+    margin: 15px 0;
 }
 
 .title-dot {
-  width: 8px;
-  height: 20px;
-  border-radius: 20px;
-  background-color:var(--el-color-primary); /* Element UI主题蓝 */
-  margin-right: 8px; /* 圆点与文字间距 */
+    width: 8px;
+    height: 20px;
+    border-radius: 20px;
+    background-color: var(--el-color-primary);
+    /* Element UI主题蓝 */
+    margin-right: 8px;
+    /* 圆点与文字间距 */
 }
 
 .title-text {
-  font-size: 16px;
-  font-weight: 500;
-  color: #333; /* 标题文字颜色 */
-  /* 可根据实际设计调整字体样式 */
+    font-size: 16px;
+    font-weight: 500;
+    color: #333;
+    /* 标题文字颜色 */
+    /* 可根据实际设计调整字体样式 */
 }
 </style>

+ 38 - 41
src/views/cross/section.vue

@@ -4,22 +4,28 @@
         <HcNewCard>
             <template #header>
                 <div class="w-32">
-                    <el-select v-model="searchForm.userName" placeholder="测量人" clearable filterable block @change="getTableData">
+                    <el-select
+                        v-model="searchForm.userName" placeholder="测量人" clearable filterable block
+                        @change="getTableData"
+                    >
                         <el-option v-for="item in peopleType" :key="item" :label="item" :value="item" />
                     </el-select>
                 </div>
-                <div class="ml-3 w-42">
+                <!-- <div class="ml-3 w-42">
                     <el-select v-model="searchForm.backBreak" clearable block placeholder="是否超欠挖 " @change="getTableData">
                         <el-option v-for="item in tasksStatus" :key="item.value" :label="item.label" :value="item.value" />
                     </el-select>
-                </div>
+                </div> -->
                 <div class="ml-3 w-64">
                     <HcDatePicker :dates="betweenTime" clearable @change="betweenTimeUpdate" />
                 </div>
             </template>
             <HcTable is-new :column="tableColumn" :datas="tableData">
-                <template #backBreak="{ row }">
+                <!-- <template #backBreak="{ row }">
                     {{ tasksStatus.find(item => item.value == row.backBreak)?.label || row.backBreak }}
+                </template> -->
+                <template #backBreak="{ row }">
+                    {{ taskStatus.find(item => item.dictKey === row.backBreak)?.dictValue || row.backBreak }}
                 </template>
                 <template #action="{ row }">
                     <el-link type="primary" @click="viewSubmit(row)">查看详情</el-link>
@@ -31,18 +37,21 @@
             </template>
         </HcNewCard>
         <!-- 编辑 -->
-        <cross-add v-model="editModal" :form-disabled="formDisabled" :row-id="rowId" @save="getTableData" />
+        <cross-add
+            v-model="editModal" :form-disabled="formDisabled" :row-id="rowId" :task-status="taskStatus"
+            @save="getTableData"
+        />
     </div>
 </template>
 
 <script setup>
 import { onMounted, ref } from 'vue'
-
 import crossApi from '~api/cross/cross'
 import { useAppStore } from '~src/store'
 import { getArrValue } from 'js-fast-way'
 import crossAdd from './cross-add.vue'
-import { getDictionaryData } from '~uti/tools'
+import { getDictionaryBiz } from '~api/other'
+// import { getDictionaryData } from '~uti/tools'
 const useAppState = useAppStore()
 const projectId = ref(useAppState.getProjectId)
 const contractId = ref(useAppState.contractId)
@@ -54,49 +63,42 @@ const tableColumn = [
     { key: 'date', name: '测量时间' },
     { key: 'userName', name: '测量人' },
     { key: 'mileageNumber', name: '里程号' },
-    { key: 'backBreak', name: '是否超欠挖' },
-    { key: 'action', name: '操作', width:150 },
+    { key: 'backBreak', name: '围岩等级' },
+    // { key: 'backBreak', name: '是否超欠挖' },
+    { key: 'action', name: '操作', width: 150 },
 ]
-const tableData = ref([
-  
-])
+const tableData = ref([])
 //搜索表单
 const searchForm = ref({
-    current: 1, size: 20, total: 0, userName:'', backBreak:'', startTime:'', endTime:'',
-
+    current: 1, size: 20, total: 0, userName: '', backBreak: '', startTime: '', endTime: '',
 })
 onMounted(() => {
     getTableData()
     getPeopleType()
     getTasksStatusOptions()
-   
 })
 const peopleType = ref([])
 const getPeopleType = async () => {
-     const { error, code, data } = await crossApi.getListUserName()
+    const { error, code, data } = await crossApi.getListUserName()
     //判断状态
- 
+
     if (!error && code === 200) {
         peopleType.value = getArrValue(data)
-       
+
     } else {
         peopleType.value = []
- 
+
     }
 }
+const taskStatus = ref([])
 const getTasksStatusOptions = async () => {
-    tasksStatus.value = await getDictionaryData('q_profiler_back_break', true)
-    tasksStatus.value.forEach(item => {
-        item.value = String(item.value) 
-
-    })
-    
-
-    
+    // tasksStatus.value = await getDictionaryData('profile_level', true)
+    const { data } = await getDictionaryBiz({ code: 'profile_level' })
+    taskStatus.value = getArrValue(data)
+    // tasksStatus.value = await getDictionaryData('q_profiler_back_break', true)
+    console.log(taskStatus.value)
 }
-const tasksStatus = ref([
-   
-])
+
 //日期时间被选择
 const betweenTime = ref(null)
 const betweenTimeUpdate = ({ val, arr }) => {
@@ -104,7 +106,6 @@ const betweenTimeUpdate = ({ val, arr }) => {
     searchForm.value.startTime = val['start']
     searchForm.value.endTime = val['end']
     getTableData()
-
 }
 //分页被点击
 const pageChange = ({ current, size }) => {
@@ -118,8 +119,7 @@ const getTableData = async () => {
     const { error, code, data } = await crossApi.queryListData({
         ...searchForm.value,
         projectId: projectId.value,
-        contractId:contractId.value,
-
+        contractId: contractId.value,
     })
     //判断状态
     tableLoading.value = false
@@ -135,20 +135,17 @@ const getTableData = async () => {
 const editModal = ref(false)//提交整改
 const rowId = ref(null)
 const formDisabled = ref(false)
-const changeRow = (row)=>{
+const changeRow = (row) => {
     rowId.value = row['id']
     editModal.value = true
     formDisabled.value = false
-
 }
 //查看详情
-const viewSubmit = async (row)=>{
-      rowId.value = row['id']
+const viewSubmit = async (row) => {
+    rowId.value = row['id']
     formDisabled.value = true
-      editModal.value = true
-
+    editModal.value = true
 }
 </script>
 
-<style lang='scss' scoped>
-</style>
+<style lang='scss' scoped></style>