|
@@ -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>
|
|
|
|