Browse Source

待测样品

ZaiZai 1 năm trước cách đây
mục cha
commit
31e0788024

+ 1 - 1
src/views/tentative/acquisition/data.vue

@@ -106,10 +106,10 @@
 </template>
 
 <script setup>
-import { HcDelMsg } from 'hc-vue3-ui'
 import { onActivated, ref } from 'vue'
 import { useAppStore } from '~src/store'
 import { getErtractInfo } from '~api/other'
+import { HcDelMsg } from 'hc-vue3-ui'
 import { formValidate, getArrValue } from 'js-fast-way'
 import mainApi from '~api/tentative/acquisition/data'
 

+ 6 - 3
src/views/tentative/detect/components/ListItem.vue

@@ -14,7 +14,7 @@
                             </div -->
                             <div class="item-title truncate text-lg">{{ item.nodeName }}</div>
                             <div class="hc-extra-text-box">
-                                <el-link type="primary" @click.stop="linkAcquisitionClick">关联设备数据</el-link>
+                                <el-link type="primary" @click.stop="linkAcquisitionClick(item)">关联设备数据</el-link>
                                 <HcTooltip v-if="item.isCopyTab === 1" keys="wbs_del_table">
                                     <el-link type="danger" :disabled="item.isBussShow === 2 || delClickLoading" @click.stop="delClick(item, index)">删除本表</el-link>
                                 </HcTooltip>
@@ -220,7 +220,7 @@
 
     <!-- 关联设备数据 -->
     <hc-new-dialog v-model="isLinkAcquisition" is-footer-center is-table title="关联设备数据" widths="80%" @close="linksAcquisitionClose">
-        <LinkAcquisition />
+        <LinkAcquisition v-model="linkAcquisitionItem.loadDataId" />
         <template #footer>
             <el-button @click="linksAcquisitionClose">取消</el-button>
             <el-button hc-btn type="primary" @click="linksAcquisitionClick">确定</el-button>
@@ -1691,8 +1691,11 @@ const actionTipModalClose = () => {
 
 //关联设备数据
 const isLinkAcquisition = ref(false)
-const linkAcquisitionClick = () => {
+const linkAcquisitionItem = ref({})
+const linkAcquisitionClick = (item) => {
+    linkAcquisitionItem.value = item
   isLinkAcquisition.value = true
+
 }
 
 //确定

+ 255 - 60
src/views/tentative/detect/components/linkAcquisition.vue

@@ -7,12 +7,14 @@
                 </template>
                 <el-menu unique-opened>
                     <template v-for="(item, index) in menuData" :key="index">
-                        <el-sub-menu :index="item.key">
+                        <el-sub-menu :index="item.dictKey">
                             <template #title>
-                                <span>{{ item.name }}</span>
+                                <span>{{ item.dictValue }}</span>
                             </template>
                             <template v-for="(items, indexs) in item.children" :key="indexs">
-                                <el-menu-item :index="items.key">{{ items.name }}</el-menu-item>
+                                <el-menu-item :index="items.dictKey" @click="menuSelect(item, items)">
+                                    {{ items.dictValue }}
+                                </el-menu-item>
                             </template>
                         </el-sub-menu>
                     </template>
@@ -20,15 +22,32 @@
             </hc-card>
         </template>
         <hc-card>
+            <template #header>
+                <div class="w-200px">
+                    <el-select v-model="searchForm.contractId" placeholder="选择合同段" filterable block>
+                        <el-option v-for="item in contractData" :key="item.id" :label="item.contractName" :value="item.id" />
+                    </el-select>
+                </div>
+                <div class="ml-2">
+                    <el-button type="primary" @click="searchClick">
+                        <hc-icon name="search-2" />
+                        <span>搜索</span>
+                    </el-button>
+                </div>
+            </template>
             <hc-table :column="tableColumn" :datas="tableData" :loading="tableLoading" :index-style="{ width: 60 }">
-                <template #key23="{ row }">
+                <!-- template #key23="{ row }">
                     <span v-if="row.key23 === 1" class="text-green">合格</span>
                     <span v-else class="text-red">不合格</span>
+                </template -->
+                <template #dataStatus="{ row }">
+                    <el-tag v-if="row.dataStatus === 2" type="success" effect="dark">已引用</el-tag>
+                    <el-tag v-else type="info" effect="dark">未引用</el-tag>
                 </template>
                 <template #key24="{ row }">
-                    <el-link v-if="row.key24 === 3" type="primary">选择</el-link>
-                    <el-link v-if="row.key24 === 2" type="info">选择</el-link>
-                    <el-link v-if="row.key24 === 1" type="warning">取消选择</el-link>
+                    <el-link v-if="row.id == dataId" type="warning" @click="rowCancel(row)">取消选择</el-link>
+                    <el-link v-else type="primary" @click="rowSelect(row)">选择</el-link>
+                    <!-- el-link v-if="row.key24 === 2" type="info">选择</el-link -->
                 </template>
             </hc-table>
             <template #action>
@@ -39,11 +58,34 @@
 </template>
 
 <script setup>
-import { onActivated, onDeactivated, ref } from 'vue'
+import { onActivated, ref, watch } from 'vue'
+import { useAppStore } from '~src/store'
+import { getErtractInfo } from '~api/other'
+import { getArrValue } from 'js-fast-way'
+import mainApi from '~api/tentative/acquisition/data'
+
+//事件
+const emit = defineEmits(['change'])
+//变量
+const store = useAppStore()
+const projectId = ref(store.getProjectId)
+const contractId = ref(store.getContractId)
 
 //渲染完成
 onActivated(() => {
+    getTestDataType()
+    getContractData()
+})
+
+const curId = defineModel('modelValue', {
+    type: [String, Number],
+    default: '',
+})
 
+//监听
+const dataId = ref(curId.value)
+watch(() => curId.value, (id) => {
+    dataId.value = id
 })
 
 //分割配置
@@ -55,27 +97,155 @@ const bodySplitOptions = {
 //搜索表单
 const searchForm = ref({ current: 1, size: 20, total: 0 })
 
+//获取合同段信息
+const contractData = ref([])
+const getContractData = async () => {
+    const { data } = await getErtractInfo({
+        projectId: projectId.value,
+        contractId: contractId.value,
+    })
+    const res = getArrValue(data)
+    contractData.value = res
+    if (res.length > 0) {
+        searchForm.value.contractId = res[0].id
+    }
+}
+
 //分类数据
-const menuData = ref([
-  {
-    key: '1',
-    name: '压力机',
-    children: [
-      { key: '1-1', name: '水泥xxx1' },
-      { key: '1-2', name: '水泥xxx2' },
-      { key: '1-3', name: '水泥xxx3' },
-    ],
-  },
-  {
-    key: '2',
-    name: '万能机',
-    children: [
-      { key: '2-1', name: '钢筋xxx1' },
-      { key: '2-2', name: '钢筋xxx2' },
-      { key: '2-3', name: '钢筋xxx3' },
-    ],
-  },
-])
+const menuData = ref([])
+const getTestDataType = async () => {
+    const { data } = await mainApi.dictionary('test_data_type')
+    menuData.value = getArrValue(data)
+}
+
+//分类被点击
+const menuParentInfo = ref({})
+const menuItemInfo = ref({})
+const menuSelect = (parent, item) => {
+    menuParentInfo.value = parent
+    menuItemInfo.value = item
+    //压力机
+    if (parent.dictKey === '1') {
+        tableColumn.value = [
+            { key: 'engineInfo', name: '工程部位' },
+            { key: 'deviceName', name: '设备名称' },
+            { key: 'equipmentAcquisitionNumber', name: '设备采集编号' },
+            { key: 'testDate', name: '试验日期' },
+            { key: 'specificationNumber', name: '样品编号' },
+            { key: 'testTypeName', name: '试验类型' },
+            { key: 'beArea', name: '承压面积(mm2)' },
+            { key: 'specimenSize', name: '试件尺寸(mm)' },
+            { key: 'desStrength', name: '设计强度(MPa)' },
+            { key: 'key10', name: '龄期(d)' },
+            { key: 'load1', name: '荷载1(KN)' },
+            { key: 'load2', name: '荷载2(KN)' },
+            { key: 'load3', name: '荷载3(KN)' },
+            { key: 'key15', name: '荷载4(KN)' },
+            { key: 'key16', name: '荷载5(KN)' },
+            { key: 'key17', name: '荷载6(KN)' },
+            { key: 'key18', name: '其余荷载(KN)' },
+            { key: 'key19', name: '强度代表值(MPa)' },
+            {
+                name: '最大力总延伸(%)',
+                children: [
+                    { key: 'maxConceal1', name: '1' },
+                    { key: 'maxConceal2', name: '2' },
+                    { key: 'maxConceal3', name: '3' },
+                ],
+            },
+            { key: 'dataQualified', name: '试验结果是否合格', width: 100, align: 'center' },
+            { key: 'dataStatus', name: '数据状态', width: 100, align: 'center' },
+        ]
+    } else if (parent.dictKey === '2') {
+        //万能机
+        tableColumn.value = [
+            { key: 'engineInfo', name: '工程部位' },
+            { key: 'deviceName', name: '设备名称' },
+            { key: 'equipmentAcquisitionNumber', name: '设备采集编号' },
+            { key: 'testDate', name: '试验日期' },
+            { key: 'specificationNumber', name: '样品编号' },
+            { key: 'testTypeName', name: '试验类型' },
+            { key: 'key1', name: '牌号' },
+            { key: 'key2', name: '公称直径(mm)' },
+            { key: 'key3', name: '规格' },
+            {
+                name: '最大力/荷载(KN)',
+                children: [
+                    { key: 'key4', name: '1' },
+                    { key: 'key5', name: '2' },
+                    { key: 'key6', name: '3' },
+                    { key: 'key7', name: '4' },
+                    { key: 'key8', name: '5' },
+                    { key: 'key9', name: '6' },
+                ],
+            },
+            {
+                name: '抗拉强度/强度代表值(MPa)',
+                children: [
+                    { key: 'key10', name: '1' },
+                    { key: 'key11', name: '2' },
+                    { key: 'key12', name: '3' },
+                    { key: 'key13', name: '4' },
+                    { key: 'key14', name: '5' },
+                    { key: 'key15', name: '6' },
+                ],
+            },
+            {
+                name: '上屈服力(KN)',
+                children: [
+                    { key: 'key16', name: '1' },
+                    { key: 'key17', name: '2' },
+                    { key: 'key18', name: '3' },
+                    { key: 'key19', name: '4' },
+                    { key: 'key20', name: '5' },
+                    { key: 'key21', name: '6' },
+                ],
+            },
+            {
+                name: '下屈服力(KN)',
+                children: [
+                    { key: 'key22', name: '1' },
+                    { key: 'key23', name: '2' },
+                    { key: 'key24', name: '3' },
+                    { key: 'key25', name: '4' },
+                    { key: 'key26', name: '5' },
+                    { key: 'key27', name: '6' },
+                ],
+            },
+            {
+                name: '上屈服强度(MPa)',
+                children: [
+                    { key: 'key28', name: '1' },
+                    { key: 'key29', name: '2' },
+                    { key: 'key30', name: '3' },
+                    { key: 'key31', name: '4' },
+                    { key: 'key32', name: '5' },
+                    { key: 'key33', name: '6' },
+                ],
+            },
+            {
+                name: '下屈服强度(MPa)',
+                children: [
+                    { key: 'key34', name: '1' },
+                    { key: 'key35', name: '2' },
+                    { key: 'key36', name: '3' },
+                    { key: 'key37', name: '4' },
+                    { key: 'key38', name: '5' },
+                    { key: 'key39', name: '6' },
+                ],
+            },
+            { key: 'dataStatus', name: '数据状态', width: 100, align: 'center' },
+        ]
+    }
+    //获取表格数据
+    searchClick()
+}
+
+//搜索
+const searchClick = () => {
+    searchForm.value.current = 1
+    getTableData()
+}
 
 //分页被点击
 const pageChange = ({ current, size }) => {
@@ -86,44 +256,69 @@ const pageChange = ({ current, size }) => {
 
 //表格数据
 const tableColumn = ref([
-  { key: 'key1', name: '工程部位' },
-  { key: 'key2', name: '设备名称' },
-  { key: 'key3', name: '设备采集编号' },
-  { key: 'key4', name: '试验日期' },
-  { key: 'key5', name: '样品编号' },
-  { key: 'key6', name: '试验类型' },
-  { key: 'key7', name: '承压面积(mm2)' },
-  { key: 'key8', name: '试件尺寸(mm)' },
-  { key: 'key9', name: '设计强度(MPa)' },
-  { key: 'key10', name: '龄期(d)' },
-  { key: 'key11', name: '荷载1(KN)' },
-  { key: 'key12', name: '荷载1(KN)' },
-  { key: 'key13', name: '荷载2(KN)' },
-  { key: 'key14', name: '荷载3(KN)' },
-  { key: 'key15', name: '荷载4(KN)' },
-  { key: 'key16', name: '荷载5(KN)' },
-  { key: 'key17', name: '荷载6(KN)' },
-  { key: 'key18', name: '其余荷载(KN)' },
-  { key: 'key19', name: '强度代表值(MPa)' },
-  {
-    name: '最大力总延伸(%)',
-    children: [
-      { key: 'key20', name: '1' },
-      { key: 'key21', name: '2' },
-      { key: 'key22', name: '3' },
-    ],
-  },
-  { key: 'key23', name: '试验结果是否合格', width: 100, align: 'center' },
-  { key: 'key24', name: '操作', width: 100, align: 'center' },
-])
-const tableData = ref([
-  { key23: 1, key24:1 }, { key23: 2, key24:2 }, { key23: 3, key24:3 },
+    { key: 'engineInfo', name: '工程部位' },
+    { key: 'deviceName', name: '设备名称' },
+    { key: 'equipmentAcquisitionNumber', name: '设备采集编号' },
+    { key: 'testDate', name: '试验日期' },
+    { key: 'specificationNumber', name: '样品编号' },
+    { key: 'testTypeName', name: '试验类型' },
+    { key: 'beArea', name: '承压面积(mm2)' },
+    { key: 'specimenSize', name: '试件尺寸(mm)' },
+    { key: 'desStrength', name: '设计强度(MPa)' },
+    { key: 'key10', name: '龄期(d)' },
+    { key: 'load1', name: '荷载1(KN)' },
+    { key: 'load2', name: '荷载2(KN)' },
+    { key: 'load3', name: '荷载3(KN)' },
+    { key: 'key15', name: '荷载4(KN)' },
+    { key: 'key16', name: '荷载5(KN)' },
+    { key: 'key17', name: '荷载6(KN)' },
+    { key: 'key18', name: '其余荷载(KN)' },
+    { key: 'key19', name: '强度代表值(MPa)' },
+    {
+        name: '最大力总延伸(%)',
+        children: [
+            { key: 'maxConceal1', name: '1' },
+            { key: 'maxConceal2', name: '2' },
+            { key: 'maxConceal3', name: '3' },
+        ],
+    },
+    { key: 'dataQualified', name: '试验结果是否合格', width: 100, align: 'center' },
+    { key: 'dataStatus', name: '数据状态', width: 100, align: 'center' },
+    { key: 'key24', name: '操作', width: 100, align: 'center' },
 ])
+const tableData = ref([])
 
 //获取表格数据
 const tableLoading = ref(false)
 const getTableData = async () => {
+    tableLoading.value = true
+    const { error, code, data } = await mainApi.page({
+        ...searchForm.value,
+        projectId: projectId.value,
+    })
+    //处理数据
+    tableLoading.value = false
+    if (!error && code === 200) {
+        tableData.value = getArrValue(data?.records)
+        searchForm.value.total = data.total || 0
+    } else {
+        tableData.value = []
+        searchForm.value.total = 0
+    }
+}
+
+//选择
+const rowSelect = (row) => {
+    dataId.value = row.id
+    curId.value = row.id
+    emit('change', row.id)
+}
 
+//取消选择
+const rowCancel = () => {
+    dataId.value = null
+    curId.value = null
+    emit('change', '')
 }
 </script>