|
@@ -35,12 +35,15 @@
|
|
|
<div
|
|
<div
|
|
|
class="checkItemContent"
|
|
class="checkItemContent"
|
|
|
v-for="checkItem in checkItemList"
|
|
v-for="checkItem in checkItemList"
|
|
|
- :key="checkItem.inspectionNature"
|
|
|
|
|
|
|
+ :key="checkItem.inspectionNature + '-' + checkItem.type"
|
|
|
>
|
|
>
|
|
|
- <div class="content-title">
|
|
|
|
|
|
|
+ <div class="content-title" @click="toggleCheckItemCollapse(checkItem)">
|
|
|
|
|
+ <el-icon class="collapse-icon" :class="{ 'is-collapsed': !checkItem.isExpanded }">
|
|
|
|
|
+ <ArrowDown />
|
|
|
|
|
+ </el-icon>
|
|
|
{{ checkItem.inspectionNatureName }}
|
|
{{ checkItem.inspectionNatureName }}
|
|
|
</div>
|
|
</div>
|
|
|
- <div class="inspection-grid">
|
|
|
|
|
|
|
+ <div class="inspection-grid" v-show="checkItem.isExpanded">
|
|
|
<!-- 标题行 -->
|
|
<!-- 标题行 -->
|
|
|
<div class="grid-header">检验项目</div>
|
|
<div class="grid-header">检验项目</div>
|
|
|
<template v-if="checkItem.itemList.length > 0">
|
|
<template v-if="checkItem.itemList.length > 0">
|
|
@@ -241,6 +244,7 @@
|
|
|
</template>
|
|
</template>
|
|
|
<script setup lang="ts">
|
|
<script setup lang="ts">
|
|
|
import CustomDialog from '@/components/CustomDialog/index.vue'
|
|
import CustomDialog from '@/components/CustomDialog/index.vue'
|
|
|
|
|
+import { ArrowDown } from '@element-plus/icons-vue'
|
|
|
import calcCheckItemFee from './calcCheckItemFee.vue'
|
|
import calcCheckItemFee from './calcCheckItemFee.vue'
|
|
|
import CheckerSelect from '@/views/pressure2/equipboilerscheduling/components/CheckerSelect.vue'
|
|
import CheckerSelect from '@/views/pressure2/equipboilerscheduling/components/CheckerSelect.vue'
|
|
|
import { PressureBoilerCheckTypeMap, PressureReportType } from '@/utils/constants'
|
|
import { PressureBoilerCheckTypeMap, PressureReportType } from '@/utils/constants'
|
|
@@ -388,6 +392,7 @@ const handleQueryCheckItemList = async (checkType) => {
|
|
|
inspectionNatureName: filterPressureBoilerCheckTypeMap.value[checkType] + " 法定收费项目",
|
|
inspectionNatureName: filterPressureBoilerCheckTypeMap.value[checkType] + " 法定收费项目",
|
|
|
inspectionNature: checkType,
|
|
inspectionNature: checkType,
|
|
|
type: '1',
|
|
type: '1',
|
|
|
|
|
+ isExpanded: true, // 默认展开
|
|
|
itemList: (queryResult || []).map((item) => ({
|
|
itemList: (queryResult || []).map((item) => ({
|
|
|
...item,
|
|
...item,
|
|
|
isAutoAmount: props.isBatch ? '0' : item.isAutoAmount,
|
|
isAutoAmount: props.isBatch ? '0' : item.isAutoAmount,
|
|
@@ -402,6 +407,7 @@ const handleQueryCheckItemList = async (checkType) => {
|
|
|
inspectionNatureName: filterPressureBoilerCheckTypeMap.value[checkType] + " 服务收费项目",
|
|
inspectionNatureName: filterPressureBoilerCheckTypeMap.value[checkType] + " 服务收费项目",
|
|
|
inspectionNature: checkType,
|
|
inspectionNature: checkType,
|
|
|
type: '2',
|
|
type: '2',
|
|
|
|
|
+ isExpanded: false, // 默认收起
|
|
|
itemList: (queryResult || []).map((item) => ({
|
|
itemList: (queryResult || []).map((item) => ({
|
|
|
...item,
|
|
...item,
|
|
|
isAutoAmount: props.isBatch ? '0' : item.isAutoAmount,
|
|
isAutoAmount: props.isBatch ? '0' : item.isAutoAmount,
|
|
@@ -561,6 +567,11 @@ const calculateAmounts = () => {
|
|
|
formData.value.serviceAmount = totalServiceAmount
|
|
formData.value.serviceAmount = totalServiceAmount
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+/** 切换检验项目展开/收缩状态 */
|
|
|
|
|
+const toggleCheckItemCollapse = (checkItem: any) => {
|
|
|
|
|
+ checkItem.isExpanded = !checkItem.isExpanded
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
// 选择检验员
|
|
// 选择检验员
|
|
|
const checkerSelectVisible = ref(false)
|
|
const checkerSelectVisible = ref(false)
|
|
|
const currentSelectedChecker = ref<any>(null)
|
|
const currentSelectedChecker = ref<any>(null)
|
|
@@ -804,6 +815,24 @@ const handleConfirm = async () => {
|
|
|
height: 36px;
|
|
height: 36px;
|
|
|
line-height: 36px;
|
|
line-height: 36px;
|
|
|
background-color: var(--el-color-primary-light-9);
|
|
background-color: var(--el-color-primary-light-9);
|
|
|
|
|
+ cursor: pointer;
|
|
|
|
|
+ user-select: none;
|
|
|
|
|
+ transition: background-color 0.3s;
|
|
|
|
|
+
|
|
|
|
|
+ &:hover {
|
|
|
|
|
+ background-color: var(--el-color-primary-light-8);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .collapse-icon {
|
|
|
|
|
+ margin-right: 8px;
|
|
|
|
|
+ transition: transform 0.3s;
|
|
|
|
|
+ font-size: 14px;
|
|
|
|
|
+
|
|
|
|
|
+ &.is-collapsed {
|
|
|
|
|
+ transform: rotate(-90deg);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
&::before {
|
|
&::before {
|
|
|
content: '';
|
|
content: '';
|
|
|
height: 70%;
|
|
height: 70%;
|