|
@@ -1,21 +1,23 @@
|
|
|
<template>
|
|
|
<div class="hc-page-layout-box">
|
|
|
- <div :style="'width:' + leftWidth + 'px;'" class="hc-layout-left-box">
|
|
|
+ <div :style="`width:${leftWidth}px;`" class="hc-layout-left-box">
|
|
|
<div class="hc-project-box">
|
|
|
<div class="hc-project-icon-box">
|
|
|
- <HcIcon name="stack"/>
|
|
|
+ <HcIcon name="stack" />
|
|
|
</div>
|
|
|
<div class="ml-2 project-name-box">
|
|
|
- <span class="text-xl text-cut project-alias">{{ projectInfo['projectAlias'] }}</span>
|
|
|
- <div class="text-xs text-cut project-name">{{ projectInfo['name'] }}</div>
|
|
|
+ <span class="text-xl text-cut project-alias">{{ projectInfo.projectAlias }}</span>
|
|
|
+ <div class="text-xs text-cut project-name">{{ projectInfo.name }}</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="hc-tree-search-box">
|
|
|
<div class="hc-search-tree-val">
|
|
|
- <el-input v-model="searchTreeVal" block clearable placeholder="请输入名称关键词检索" size="large"
|
|
|
- @keyup="searchTreeKeyUp">
|
|
|
+ <el-input
|
|
|
+ v-model="searchTreeVal" block clearable placeholder="请输入名称关键词检索" size="large"
|
|
|
+ @keyup="searchTreeKeyUp"
|
|
|
+ >
|
|
|
<template #suffix>
|
|
|
- <HcIcon name="search-2" ui="text-xl"/>
|
|
|
+ <HcIcon name="search-2" ui="text-xl" />
|
|
|
</template>
|
|
|
</el-input>
|
|
|
</div>
|
|
@@ -23,34 +25,38 @@
|
|
|
<el-scrollbar>
|
|
|
<KeepAlive>
|
|
|
<template v-if="isSearchTree">
|
|
|
- <HcTreeData :datas="searchTreeData" @change="testTreeCheckChange"/>
|
|
|
+ <HcTreeData :datas="searchTreeData" @change="testTreeCheckChange" />
|
|
|
</template>
|
|
|
<template v-else>
|
|
|
- <TestTree :contractId="contractId" :projectId="projectId"
|
|
|
- @change="testTreeCheckChange"/>
|
|
|
+ <TestTree
|
|
|
+ :contract-id="contractId" :project-id="projectId"
|
|
|
+ @change="testTreeCheckChange"
|
|
|
+ />
|
|
|
</template>
|
|
|
</KeepAlive>
|
|
|
</el-scrollbar>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <!--左右拖动-->
|
|
|
- <div class="horizontal-drag-line" @mousedown="onmousedown"/>
|
|
|
+ <!-- 左右拖动 -->
|
|
|
+ <div class="horizontal-drag-line" @mousedown="onmousedown" />
|
|
|
</div>
|
|
|
<div class="hc-page-content-box">
|
|
|
<HcCard>
|
|
|
<template #header>
|
|
|
<div class="w-40">
|
|
|
<el-select v-model="searchForm.type" clearable placeholder="请选择材料类别" size="large">
|
|
|
- <el-option v-for="item in typeData" :key="item.value" :label="item['label']"
|
|
|
- :value="item['value']"/>
|
|
|
+ <el-option
|
|
|
+ v-for="item in typeData" :key="item.value" :label="item.label"
|
|
|
+ :value="item.value"
|
|
|
+ />
|
|
|
</el-select>
|
|
|
</div>
|
|
|
<div class="w-64 ml-2">
|
|
|
- <HcDatePicker :dates="betweenTime" clearable size="large" @change="betweenTimeUpdate"/>
|
|
|
+ <HcDatePicker :dates="betweenTime" clearable size="large" @change="betweenTimeUpdate" />
|
|
|
</div>
|
|
|
<div class="ml-2">
|
|
|
<el-button size="large" type="primary" @click="searchClick">
|
|
|
- <HcIcon name="search-2"/>
|
|
|
+ <HcIcon name="search-2" />
|
|
|
<span>搜索</span>
|
|
|
</el-button>
|
|
|
</div>
|
|
@@ -58,41 +64,46 @@
|
|
|
<template #extra>
|
|
|
<HcTooltip keys="tentative_collect_monthly_report">
|
|
|
<el-button hc-btn type="primary">
|
|
|
- <HcIcon name="send-plane-2"/>
|
|
|
+ <HcIcon name="send-plane-2" />
|
|
|
<span>上报</span>
|
|
|
</el-button>
|
|
|
</HcTooltip>
|
|
|
<HcTooltip keys="tentative_collect_monthly_print">
|
|
|
<el-button hc-btn>
|
|
|
- <HcIcon name="printer"/>
|
|
|
+ <HcIcon name="printer" />
|
|
|
<span>打印</span>
|
|
|
</el-button>
|
|
|
</HcTooltip>
|
|
|
<HcTooltip keys="tentative_collect_monthly_download">
|
|
|
<el-button hc-btn>
|
|
|
- <HcIcon name="download"/>
|
|
|
+ <HcIcon name="download" />
|
|
|
<span>下载</span>
|
|
|
</el-button>
|
|
|
</HcTooltip>
|
|
|
</template>
|
|
|
<div class="hc-table-ref-box">
|
|
|
- <el-table :data="tableData" :span-method="tableSpanMethod" class="hc-table-diy-box" height="100%"
|
|
|
- style="width: 100%">
|
|
|
+ <el-table
|
|
|
+ :data="tableData" :span-method="tableSpanMethod" class="hc-table-diy-box" height="100%"
|
|
|
+ style="width: 100%" border
|
|
|
+ >
|
|
|
<el-table-column align="right" label="试验组数" width="300">
|
|
|
- <el-table-column align="left" label="试验项目" prop="title" width="220"></el-table-column>
|
|
|
- <el-table-column align="center" label="月" prop="month" width="80"></el-table-column>
|
|
|
+ <el-table-column align="left" label="试验项目" prop="title" width="220" />
|
|
|
+ <el-table-column align="center" label="月" prop="month" width="80" />
|
|
|
</el-table-column>
|
|
|
<el-table-column align="center" label="承包人">
|
|
|
- <el-table-column align="center" label="合格数" prop="name"></el-table-column>
|
|
|
- <el-table-column align="center" label="不合格数" prop="state"></el-table-column>
|
|
|
- <el-table-column align="center" label="备注" prop="zip"></el-table-column>
|
|
|
+ <el-table-column align="center" label="合格数" prop="name" />
|
|
|
+ <el-table-column align="center" label="不合格数" prop="state" />
|
|
|
+ <el-table-column align="center" label="备注" prop="zip" />
|
|
|
</el-table-column>
|
|
|
<el-table-column align="center" label="操作" width="140">
|
|
|
<template #default="scope">
|
|
|
- <!--scope.row scope.$index-->
|
|
|
+ <!-- scope.row scope.$index -->
|
|
|
<HcTooltip keys="tentative_material_approach_annex">
|
|
|
- <el-button plain size="small" type="primary"
|
|
|
- @click="editorsNoteModalClick(scope.row)">编辑备注
|
|
|
+ <el-button
|
|
|
+ plain size="small" type="primary"
|
|
|
+ @click="editorsNoteModalClick(scope.row)"
|
|
|
+ >
|
|
|
+ 编辑备注
|
|
|
</el-button>
|
|
|
</HcTooltip>
|
|
|
</template>
|
|
@@ -100,28 +111,29 @@
|
|
|
</el-table>
|
|
|
</div>
|
|
|
<template #action>
|
|
|
- <HcPages :pages="searchForm" @change="pageChange"/>
|
|
|
+ <HcPages :pages="searchForm" @change="pageChange" />
|
|
|
</template>
|
|
|
</HcCard>
|
|
|
</div>
|
|
|
|
|
|
- <!--编辑备注-->
|
|
|
- <HcDialog :loading="editorsNoteLoading" :show="editorsNoteModal" title="编辑备注信息" widths="45rem"
|
|
|
- @close="editorsNoteModalClose" @save="editorsNoteModalSave">
|
|
|
- <el-input v-model="editorsNoteVal" :autosize="{ minRows: 5}" placeholder="编辑备注信息" type="textarea"/>
|
|
|
+ <!-- 编辑备注 -->
|
|
|
+ <HcDialog
|
|
|
+ :loading="editorsNoteLoading" :show="editorsNoteModal" title="编辑备注信息" widths="45rem"
|
|
|
+ @close="editorsNoteModalClose" @save="editorsNoteModalSave"
|
|
|
+ >
|
|
|
+ <el-input v-model="editorsNoteVal" :autosize="{ minRows: 5 }" placeholder="编辑备注信息" type="textarea" />
|
|
|
</HcDialog>
|
|
|
-
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
<script setup>
|
|
|
-import {ref, onMounted, watch} from "vue";
|
|
|
-import {useAppStore} from "~src/store";
|
|
|
-import {useRouter, useRoute} from 'vue-router'
|
|
|
-import TestTree from "./components/TestTree.vue"
|
|
|
-import HcTreeData from "./components/HcTreeData.vue"
|
|
|
-import queryApi from "~api/data-fill/query";
|
|
|
-import {getArrValue} from "js-fast-way"
|
|
|
+import { onMounted, ref, watch } from 'vue'
|
|
|
+import { useAppStore } from '~src/store'
|
|
|
+import { useRoute, useRouter } from 'vue-router'
|
|
|
+import TestTree from './components/TestTree.vue'
|
|
|
+import HcTreeData from './components/HcTreeData.vue'
|
|
|
+import queryApi from '~api/data-fill/query'
|
|
|
+import { getArrValue } from 'js-fast-way'
|
|
|
|
|
|
//初始变量
|
|
|
const router = useRouter()
|
|
@@ -129,14 +141,14 @@ const useRoutes = useRoute()
|
|
|
const useAppState = useAppStore()
|
|
|
|
|
|
//全局变量
|
|
|
-const projectId = ref(useAppState.getProjectId);
|
|
|
-const contractId = ref(useAppState.getContractId);
|
|
|
-const projectInfo = ref(useAppState.getProjectInfo);
|
|
|
+const projectId = ref(useAppState.getProjectId)
|
|
|
+const contractId = ref(useAppState.getContractId)
|
|
|
+const projectInfo = ref(useAppState.getProjectInfo)
|
|
|
const isCollapse = ref(useAppState.getCollapse)
|
|
|
|
|
|
//监听
|
|
|
watch(() => [
|
|
|
- useAppState.getCollapse
|
|
|
+ useAppState.getCollapse,
|
|
|
], ([Collapse]) => {
|
|
|
isCollapse.value = Collapse
|
|
|
})
|
|
@@ -154,7 +166,7 @@ const searchTreeData = ref([])
|
|
|
//回车
|
|
|
const treeLoading = ref(false)
|
|
|
const searchTreeKeyUp = (e) => {
|
|
|
- if (e.key === "Enter") {
|
|
|
+ if (e.key === 'Enter') {
|
|
|
searchTreeClick()
|
|
|
}
|
|
|
}
|
|
@@ -163,9 +175,9 @@ const searchTreeClick = async () => {
|
|
|
if (searchTreeVal.value) {
|
|
|
isSearchTree.value = true
|
|
|
treeLoading.value = true
|
|
|
- const {data} = await queryApi.searchContractTree({
|
|
|
+ const { data } = await queryApi.searchContractTree({
|
|
|
contractId: contractId.value,
|
|
|
- queryValue: searchTreeVal.value
|
|
|
+ queryValue: searchTreeVal.value,
|
|
|
})
|
|
|
//判断状态
|
|
|
treeLoading.value = false
|
|
@@ -178,7 +190,7 @@ const searchTreeClick = async () => {
|
|
|
|
|
|
//树被勾选
|
|
|
const nodeItemInfo = ref({})
|
|
|
-const testTreeCheckChange = ({data, checkeds}) => {
|
|
|
+const testTreeCheckChange = ({ data, checkeds }) => {
|
|
|
console.log(data, checkeds)
|
|
|
//nodeItemInfo.value = data
|
|
|
//searchForm.value.current = 1;
|
|
@@ -188,40 +200,40 @@ const testTreeCheckChange = ({data, checkeds}) => {
|
|
|
//搜索表单
|
|
|
const searchForm = ref({
|
|
|
type: null, approval: null, betweenTime: null,
|
|
|
- current: 1, size: 20, total: 0
|
|
|
+ current: 1, size: 20, total: 0,
|
|
|
})
|
|
|
|
|
|
//检测类别
|
|
|
const typeData = ref([
|
|
|
- {label: '自检', value: '1'},
|
|
|
- {label: '抽检', value: '2'},
|
|
|
- {label: '平行试验', value: '3'},
|
|
|
- {label: '验证试验', value: '4'},
|
|
|
- {label: '中心试验', value: '5'}
|
|
|
+ { label: '自检', value: '1' },
|
|
|
+ { label: '抽检', value: '2' },
|
|
|
+ { label: '平行试验', value: '3' },
|
|
|
+ { label: '验证试验', value: '4' },
|
|
|
+ { label: '中心试验', value: '5' },
|
|
|
])
|
|
|
|
|
|
//日期时间被选择
|
|
|
const betweenTime = ref(null)
|
|
|
-const betweenTimeUpdate = ({arr, query}) => {
|
|
|
+const betweenTimeUpdate = ({ arr, query }) => {
|
|
|
betweenTime.value = arr
|
|
|
searchForm.value.betweenTime = query
|
|
|
}
|
|
|
|
|
|
//搜索
|
|
|
const searchClick = () => {
|
|
|
- searchForm.value.current = 1;
|
|
|
+ searchForm.value.current = 1
|
|
|
getTableData()
|
|
|
}
|
|
|
|
|
|
//分页被点击
|
|
|
-const pageChange = ({current, size}) => {
|
|
|
+const pageChange = ({ current, size }) => {
|
|
|
searchForm.value.current = current
|
|
|
searchForm.value.size = size
|
|
|
getTableData()
|
|
|
}
|
|
|
|
|
|
//表格合并
|
|
|
-const tableSpanMethod = ({rowIndex, columnIndex}) => {
|
|
|
+const tableSpanMethod = ({ rowIndex, columnIndex }) => {
|
|
|
if (columnIndex === 0) {
|
|
|
if (rowIndex % 2 === 0) {
|
|
|
return {
|
|
@@ -306,18 +318,18 @@ const editorsNoteModalClose = () => {
|
|
|
|
|
|
|
|
|
//左右拖动,改变树形结构宽度
|
|
|
-const leftWidth = ref(382);
|
|
|
+const leftWidth = ref(382)
|
|
|
const onmousedown = () => {
|
|
|
const leftNum = isCollapse.value ? 142 : 272
|
|
|
document.onmousemove = (ve) => {
|
|
|
- let diffVal = ve.clientX - leftNum;
|
|
|
+ let diffVal = ve.clientX - leftNum
|
|
|
if (diffVal >= 310 && diffVal <= 900) {
|
|
|
- leftWidth.value = diffVal;
|
|
|
+ leftWidth.value = diffVal
|
|
|
}
|
|
|
}
|
|
|
document.onmouseup = () => {
|
|
|
- document.onmousemove = null;
|
|
|
- document.onmouseup = null;
|
|
|
+ document.onmousemove = null
|
|
|
+ document.onmouseup = null
|
|
|
}
|
|
|
}
|
|
|
</script>
|