| | |
| | | <template> |
| | | <div class="flag-search-div"> |
| | | <div class="top"> |
| | | <span>能效标识查询</span> |
| | | </div> |
| | | <div class="flag-search-content"> |
| | | <el-card class="w100 h100" shadow="never"> |
| | | <el-form size="medium" style="height: 56px; flex-shrink: 0;" :model="state.m_formData" ref="ruleFormRef" |
| | | inline="true" label-width="100px" class="demo-ruleForm"> |
| | | <el-form-item label="产品型号" prop="ProductModel"> |
| | | <el-input class="w-180-px" v-model="state.m_formData.ProductModel"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="产品类型" prop="ProductType"> |
| | | <el-input class="w-180-px" v-model="state.m_formData.ProductType" |
| | | placeholder="请输入产品类型"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="备案号" prop="RecordNumber"> |
| | | <el-input class="w-180-px" v-model="state.m_formData.RecordNumber" |
| | | placeholder="请输入备案号"></el-input> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button type="primary" @click="onSubmit">查询</el-button> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button type="info" @click="onSubmit">重置</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | <div class="w100" style="flex: 1; display: flex; height: calc(100% - 56px); flex-direction: column;"> |
| | | <el-table class="w100" :data="state.m_tableData" style="width: 100%" border |
| | | header-cell-class-name="table-header-cell-style"> |
| | | <el-table-column prop="ProductType" label="产品类型" align="center" show-overflow-tooltip> |
| | | </el-table-column> |
| | | <el-table-column prop="ProductModel" label="产品型号" align="center" show-overflow-tooltip> |
| | | </el-table-column> |
| | | <el-table-column prop="RecordNumber" label="备案号" align="center"> |
| | | </el-table-column> |
| | | <el-table-column prop="EecGrade" label="能效等级" align="center"> |
| | | </el-table-column> |
| | | <el-table-column prop="RecordType" label="备案类型" align="center"> |
| | | </el-table-column> |
| | | <el-table-column prop="NoticeDate" label="公告时间" align="center"> |
| | | </el-table-column> |
| | | <el-table-column label="操作" align="center" width="80px"> |
| | | <template #default="scope"> |
| | | <span class="table-detail-span">详细</span> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <div class="w100" style="display: flex; justify-content: flex-end; height: 40px; flex-shrink: 0;"> |
| | | <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" |
| | | :current-page="state.m_paginationConfig.currentPage" :page-sizes="[10, 20, 30, 40]" |
| | | :page-size="state.m_paginationConfig.pageSize" |
| | | layout="total, sizes, prev, pager, next, jumper" :total="state.m_tableData.length" /> |
| | | </div> |
| | | </div> |
| | | </el-card> |
| | | </div> |
| | | <el-dialog v-model="dialogVisible" title="Tips" width="500"> |
| | | <el-form size="medium" :model="state.m_detailDialogInfo"> |
| | | <el-form-item label="备案号" prop="RecordNumber"> |
| | | <el-input class="w-180-px" v-model="state.m_formData.RecordNumber" placeholder="请输入备案号"></el-input> |
| | | </el-form-item> |
| | | </el-form> |
| | | <template #footer> |
| | | <div class="dialog-footer"> |
| | | <el-button @click="dialogVisible = false">Cancel</el-button> |
| | | <el-button type="primary" @click="dialogVisible = false"> |
| | | 确定 |
| | | </el-button> |
| | | </div> |
| | | </template> |
| | | </el-dialog> |
| | | </div> |
| | | <div class="flag-search-div"> |
| | | <div class="top"> |
| | | <span>能效标识查询</span> |
| | | </div> |
| | | <div class="flag-search-content"> |
| | | <el-card class="w100 h100" shadow="never"> |
| | | <el-form |
| | | style="height: 56px; flex-shrink: 0" |
| | | :model="state.m_formData" |
| | | ref="ruleFormRef" |
| | | :inline="true" |
| | | label-width="100px" |
| | | class="demo-ruleForm" |
| | | > |
| | | <el-form-item label="产品类型" prop="ProductType"> |
| | | <el-select |
| | | class="w-180-px" |
| | | v-model="state.m_formData.ProductType" |
| | | placeholder="请选择产品类型" |
| | | @change="changeProductType" |
| | | > |
| | | <el-option v-for="item in state.type" :key="item.tag" :value="item.tag" :label="item.name"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="产品型号" prop="ProductModel"> |
| | | <el-input class="w-180-px" v-model="state.m_formData.ProductModel" placeholder="请输入产品型号"></el-input> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="备案号" prop="RecordNumber"> |
| | | <el-input class="w-180-px" v-model="state.m_formData.RecordNumber" placeholder="请输入备案号"></el-input> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button type="primary" @click="initData">查询</el-button> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button type="info" @click="resertForm">重置</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | <div |
| | | class="w100" |
| | | style="flex: 1; display: flex; height: calc(100% - 56px); flex-direction: column" |
| | | v-loading="state.m_PageLoading" |
| | | > |
| | | <el-table |
| | | class="w100" |
| | | :data="state.m_dispTableData" |
| | | style="width: 100%" |
| | | border |
| | | header-cell-class-name="table-header-cell-style" |
| | | > |
| | | <el-table-column prop="TableIndex" label="序号" align="center" width="60"> </el-table-column> |
| | | <el-table-column prop="ModelType" label="产品类型" align="center" show-overflow-tooltip> </el-table-column> |
| | | <el-table-column prop="Model" label="产品型号" align="center" show-overflow-tooltip> </el-table-column> |
| | | <el-table-column prop="RecordNumber" label="备案号" align="center" show-overflow-tooltip> </el-table-column> |
| | | <el-table-column prop="EnergyEfficiencyClass" label="能效等级" align="center" width="80"> </el-table-column> |
| | | <el-table-column prop="RecordTime" label="备案时间" align="center"> </el-table-column> |
| | | <el-table-column prop="CompanyName" label="厂商" align="center" show-overflow-tooltip> </el-table-column> |
| | | <el-table-column label="操作" align="center" width="80px"> |
| | | <template #default="scope"> |
| | | <span class="table-detail-span" @click="clickDetail(scope.row)">详细</span> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <div class="w100" style="display: flex; justify-content: flex-end; height: 40px; flex-shrink: 0"> |
| | | <el-pagination |
| | | @size-change="handleSizeChange" |
| | | @current-change="handleCurrentChange" |
| | | :background="true" |
| | | :current-page="state.m_paginationConfig.currentPage" |
| | | :page-sizes="[10, 20, 30, 40]" |
| | | :page-size="state.m_paginationConfig.pageSize" |
| | | layout="total, sizes, prev, pager, next, jumper" |
| | | :total="state.filterProductData.length" |
| | | /> |
| | | </div> |
| | | </div> |
| | | </el-card> |
| | | </div> |
| | | <el-dialog v-model="dialogVisible" title="详细" width="500"> |
| | | <el-form :model="state.m_detailDialogInfo" label-width="120px"> |
| | | <el-form-item label="产品类型" prop="ModelType"> |
| | | <span>{{ state.m_detailDialogInfo.ModelType }}</span> |
| | | </el-form-item> |
| | | <el-form-item label="产品型号" prop="Model"> |
| | | <span>{{ state.m_detailDialogInfo.Model }}</span> |
| | | </el-form-item> |
| | | <el-form-item label="生产厂商" prop="CompanyName"> |
| | | <span>{{ state.m_detailDialogInfo.CompanyName }}</span> |
| | | </el-form-item> |
| | | <el-form-item label="能效等级" prop="EnergyEfficiencyClass"> |
| | | <span>{{ state.m_detailDialogInfo.EnergyEfficiencyClass }}</span> |
| | | </el-form-item> |
| | | <el-form-item label="备案号" prop="RecordNumber"> |
| | | <span class="detail-text">{{ state.m_detailDialogInfo.CompanyName }}</span> |
| | | </el-form-item> |
| | | <el-form-item label="备案时间" prop="RecordTime"> |
| | | <span>{{ state.m_detailDialogInfo.RecordTime }}</span> |
| | | </el-form-item> |
| | | <el-form-item label="依据国家标准" prop="RecordNumber"> |
| | | <span></span> |
| | | </el-form-item> |
| | | </el-form> |
| | | <template #footer> |
| | | <div class="dialog-footer"> |
| | | <el-button type="primary" @click="dialogVisible = false"> 确定 </el-button> |
| | | </div> |
| | | </template> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <script setup name=""> |
| | | <script setup lang="ts" name="EecLabel"> |
| | | import { ref, reactive, onMounted } from 'vue'; |
| | | import { ElMessage, ElTable, ElTableColumn, ElPagination, ElForm, ElFormItem, ElDialog } from 'element-plus'; |
| | | import { useRoute, useRouter } from 'vue-router'; |
| | | import axios from 'axios'; |
| | | import { el } from 'element-plus/es/locale'; |
| | | const route = useRoute(); |
| | | const router = useRouter(); |
| | | const dialogVisible = ref(false); |
| | | let state = reactive({ |
| | | m_formData: { |
| | | ProductModel: '', |
| | | ProductType: '', |
| | | RecordNumber: '' |
| | | }, |
| | | m_tableData: [], |
| | | m_dispTableData: [], |
| | | m_formData: { |
| | | ProductModel: '', |
| | | ProductType: 1, |
| | | RecordNumber: '', |
| | | }, |
| | | allEecProduct: [], |
| | | filterProductData: [], |
| | | m_dispTableData: [], |
| | | |
| | | m_paginationConfig: { |
| | | currentPage: 1, |
| | | pageSize: 10, |
| | | }, |
| | | m_detailDialogInfo: { |
| | | id: 633881725577, |
| | | ProductType: "电力变压器 2024版", |
| | | ProductModel: "SFP22-1170000/500-NX1", |
| | | registrationNumber: "20250212-CEL0202024-485225", |
| | | EecGrade: "1", |
| | | NoticeDate: "2025-02-12", |
| | | registrationType: "0", |
| | | ProductTypeCode: "80" |
| | | } |
| | | }) |
| | | m_paginationConfig: { |
| | | currentPage: 1, |
| | | pageSize: 10, |
| | | }, |
| | | m_detailDialogInfo: { |
| | | ModelType: '', |
| | | Model: '', |
| | | CompanyName: '', |
| | | EnergyEfficiencyClass: '', |
| | | RecordTime: '', |
| | | RecordNumber: '', |
| | | }, |
| | | typeSelect: 1, |
| | | // 分类选项 |
| | | type: [ |
| | | { name: '泵', tag: 1 }, |
| | | { name: '容积式空压机', tag: 2 }, |
| | | { name: '通风机', tag: 3 }, |
| | | { name: '冷水机组', tag: 4 }, |
| | | { name: '电力变压器', tag: 5 }, |
| | | { name: '工业锅炉', tag: 6 }, |
| | | { name: '电机', tag: 7 }, |
| | | ], |
| | | m_PageLoading: false, |
| | | }); |
| | | |
| | | const m_RequestDataObj = { |
| | | 1: { requestPath: 'static/EecProductData/Pump.json' }, |
| | | 2: { requestPath: 'static/EecProductData/AirCompressor.json' }, |
| | | 3: { requestPath: 'static/EecProductData/Fan.json' }, |
| | | 4: { requestPath: 'static/EecProductData/WaterChiller.json' }, |
| | | 5: { requestPath: 'static/EecProductData/PowerTransformer.json' }, |
| | | 6: { requestPath: 'static/EecProductData/IndustrialBoiler.json' }, |
| | | 7: { requestPath: 'static/EecProductData/ElectricMachinery.json' }, |
| | | }; |
| | | |
| | | onMounted(() => { |
| | | initData(); |
| | | }) |
| | | initData(); |
| | | }); |
| | | const initData = () => { |
| | | let tableData = [ |
| | | { |
| | | "id": 633881725577, |
| | | "ProductType": "电力变压器 2024版", |
| | | "ProductModel": "SFP22-1170000/500-NX1", |
| | | "registrationNumber": "20250212-CEL0202024-485225", |
| | | "EecGrade": "1", |
| | | "NoticeDate": "2025-02-12", |
| | | "registrationType": "0", |
| | | "ProductTypeCode": "80" |
| | | }, |
| | | { |
| | | "id": 633881725570, |
| | | "ProductType": "家用电冰箱 2015版", |
| | | "ProductModel": "BCD-539WSP9BH", |
| | | "registrationNumber": "20250212-CEL0012016-691472", |
| | | "EecGrade": "1", |
| | | "NoticeDate": "2025-02-12", |
| | | "registrationType": "0", |
| | | "ProductTypeCode": "81" |
| | | }, |
| | | { |
| | | "id": 633881725575, |
| | | "ProductType": "家用燃气灶具 2014版", |
| | | "ProductModel": "JZY-TXD49-B", |
| | | "registrationNumber": "20250212-CEL0302016-508659", |
| | | "EecGrade": "2", |
| | | "NoticeDate": "2025-02-12", |
| | | "registrationType": "1", |
| | | "ProductTypeCode": "25" |
| | | }, |
| | | { |
| | | "id": 633881725574, |
| | | "ProductType": "交流电风扇 2021版", |
| | | "ProductModel": "FB-45ZA1 55W 410mm 220V~ 50Hz", |
| | | "registrationNumber": "20250212-CEL0172016-600455", |
| | | "EecGrade": "3", |
| | | "NoticeDate": "2025-02-12", |
| | | "registrationType": "0", |
| | | "ProductTypeCode": "28" |
| | | }, |
| | | { |
| | | "id": 633881725569, |
| | | "ProductType": "家用燃气灶具 2014版", |
| | | "ProductModel": "JZY-TXD49-XP", |
| | | "registrationNumber": "20250212-CEL0302016-007799", |
| | | "EecGrade": "2", |
| | | "NoticeDate": "2025-02-12", |
| | | "registrationType": "1", |
| | | "ProductTypeCode": "25" |
| | | }, |
| | | { |
| | | "id": 633881725562, |
| | | "ProductType": "冷水(热泵)机组 2024版", |
| | | "ProductModel": "TCA201XHE", |
| | | "registrationNumber": "20250212-CEL0082024-798829", |
| | | "EecGrade": "1", |
| | | "NoticeDate": "2025-02-12", |
| | | "registrationType": "0", |
| | | "ProductTypeCode": "72" |
| | | }, |
| | | { |
| | | "id": 633881725568, |
| | | "ProductType": "电动洗衣机 2013版", |
| | | "ProductModel": "RB30H-228RT", |
| | | "registrationNumber": "20250212-CEL0032016-679576", |
| | | "EecGrade": "3", |
| | | "NoticeDate": "2025-02-12", |
| | | "registrationType": "0", |
| | | "ProductTypeCode": "19" |
| | | }, |
| | | { |
| | | "id": 633881725565, |
| | | "ProductType": "电动洗衣机 2013版", |
| | | "ProductModel": "RB30-228T", |
| | | "registrationNumber": "20250212-CEL0032016-918442", |
| | | "EecGrade": "3", |
| | | "NoticeDate": "2025-02-12", |
| | | "registrationType": "0", |
| | | "ProductTypeCode": "19" |
| | | }, |
| | | { |
| | | "id": 633881725564, |
| | | "ProductType": "家用燃气灶具 2014版", |
| | | "ProductModel": "JZY-TXD49-X", |
| | | "registrationNumber": "20250212-CEL0302016-884820", |
| | | "EecGrade": "2", |
| | | "NoticeDate": "2025-02-12", |
| | | "registrationType": "1", |
| | | "ProductTypeCode": "25" |
| | | }, |
| | | { |
| | | "id": 633881725351, |
| | | "ProductType": "室内照明用LED产品-非定向自镇流LED灯", |
| | | "ProductModel": "ZGL-HYT05-E27-40-01", |
| | | "registrationNumber": "20250212-CEL0342020-503178", |
| | | "EecGrade": "2", |
| | | "NoticeDate": "2025-02-12", |
| | | "registrationType": "0", |
| | | "ProductTypeCode": "78" |
| | | } |
| | | ] |
| | | state.m_tableData = tableData |
| | | } |
| | | const handleSizeChange = () => { |
| | | state.m_PageLoading = true; |
| | | axios({ |
| | | method: 'get', |
| | | url: m_RequestDataObj[state.m_formData.ProductType].requestPath, |
| | | }) |
| | | .then((res) => { |
| | | state.m_PageLoading = false; |
| | | let result = res.data; |
| | | let arr = []; |
| | | result.forEach((item: any, index: number) => { |
| | | let node = { |
| | | TableIndex: index + 1, |
| | | Id: item.Id, |
| | | Type: item.Type, |
| | | ModelType: item.ModelType, |
| | | Model: item.Model, |
| | | CompanyName: item.CompanyName, |
| | | RecordNumber: item.RecordNumber, |
| | | EnergyEfficiencyClass: item.EnergyEfficiencyClass, |
| | | RecordTime: item.RecordTime, |
| | | Price: item.Price, |
| | | PhysicalPicturePath: '/static/EecProductData/' + item.PhysicalPicturePath, |
| | | CertificatePath: `/static/EecProductData/${item.CertificatePath}`, |
| | | Tip: `备案时间:${item.RecordTime} \n 备案号:${item.RecordNumber}`, |
| | | }; |
| | | arr.push(node); |
| | | }); |
| | | state.allEecProduct = arr; |
| | | filterProduct(); |
| | | }) |
| | | .catch((err) => { |
| | | state.m_PageLoading = false; |
| | | }); |
| | | }; |
| | | const filterProduct = () => { |
| | | state.filterProductData = state.allEecProduct.filter((item) => { |
| | | return item.Type === state.m_formData.ProductType; |
| | | }); |
| | | |
| | | } |
| | | const handleCurrentChange = () => { |
| | | |
| | | } |
| | | if (state.m_formData.RecordNumber !== '') { |
| | | state.filterProductData = state.filterProductData.filter((item) => { |
| | | return item.RecordNumber.indexOf(state.m_formData.RecordNumber) > -1; |
| | | }); |
| | | } |
| | | if (state.m_formData.ProductModel !== '') { |
| | | state.filterProductData = state.filterProductData.filter((item) => { |
| | | return item.Model.indexOf(state.m_formData.ProductModel) > -1; |
| | | }); |
| | | } |
| | | state.m_dispTableData = getSelectPageData(state.filterProductData); |
| | | }; |
| | | const handleCurrentChange = (val: number) => { |
| | | state.m_paginationConfig.currentPage = val; |
| | | let allTableData = state.filterProductData; |
| | | let pagingData = getSelectPageData(allTableData); |
| | | state.m_dispTableData = pagingData; |
| | | }; |
| | | const handleSizeChange = (val: number) => { |
| | | state.m_paginationConfig.currentPage = val; |
| | | let allTableData = state.filterProductData; |
| | | let pagingData = getSelectPageData(allTableData); |
| | | state.m_dispTableData = pagingData; |
| | | }; |
| | | const changeProductType = () => { |
| | | initData(); |
| | | }; |
| | | const clickDetail = (row: any) => { |
| | | dialogVisible.value = true; |
| | | state.m_detailDialogInfo = row; |
| | | }; |
| | | const resertForm = () => { |
| | | state.m_formData.ProductModel = ''; |
| | | state.m_formData.ProductType = 1; |
| | | state.m_formData.RecordNumber = ''; |
| | | filterProduct(); |
| | | }; |
| | | //获取分页数据 |
| | | const getSelectPageData = (list: any) => { |
| | | let filterList = list.slice( |
| | | (state.m_paginationConfig.currentPage - 1) * state.m_paginationConfig.pageSize, |
| | | state.m_paginationConfig.currentPage * state.m_paginationConfig.pageSize |
| | | ); |
| | | //当前页 |
| | | return filterList; |
| | | }; |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | .flag-search-div { |
| | | box-sizing: border-box; |
| | | padding: 10px; |
| | | width: 100%; |
| | | height: 100%; |
| | | display: flex; |
| | | flex-direction: column; |
| | | justify-content: center; |
| | | align-items: center; |
| | | box-sizing: border-box; |
| | | padding: 10px; |
| | | width: 100%; |
| | | height: 100%; |
| | | display: flex; |
| | | flex-direction: column; |
| | | justify-content: center; |
| | | align-items: center; |
| | | |
| | | .flag-search-content { |
| | | width: 100%; |
| | | // height: calc(100% - 86px); |
| | | display: flex; |
| | | flex-direction: column; |
| | | justify-content: center; |
| | | align-items: center; |
| | | } |
| | | .flag-search-content { |
| | | width: 100%; |
| | | // height: calc(100% - 86px); |
| | | display: flex; |
| | | flex-direction: column; |
| | | justify-content: center; |
| | | align-items: center; |
| | | } |
| | | } |
| | | |
| | | .detail-text { |
| | | font-family: Microsoft YaHei; |
| | | font-size: 14px; |
| | | font-weight: 400; |
| | | color: #4a4a4a; |
| | | } |
| | | .top { |
| | | width: 100%; |
| | | height: 150px; |
| | | background: url(https://www.energylabel.com.cn/static/img/topbackgroundpicture.5b933b83.jpg) no-repeat; |
| | | background-size: 100% 150px; |
| | | position: relative; |
| | | overflow: hidden; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | width: 100%; |
| | | height: 150px; |
| | | background: url(https://www.energylabel.com.cn/static/img/topbackgroundpicture.5b933b83.jpg) no-repeat; |
| | | background-size: 100% 150px; |
| | | position: relative; |
| | | overflow: hidden; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | |
| | | span { |
| | | color: #fff; |
| | | font-size: 36px; |
| | | } |
| | | span { |
| | | color: #fff; |
| | | font-size: 36px; |
| | | } |
| | | } |
| | | |
| | | .w-180-px { |
| | | width: 180px; |
| | | width: 180px; |
| | | } |
| | | |
| | | .table-detail-span { |
| | | color: #1592fc; |
| | | cursor: pointer; |
| | | color: #1592fc; |
| | | cursor: pointer; |
| | | } |
| | | |
| | | .huoquliebiao {} |
| | | .huoquliebiao { |
| | | } |
| | | |
| | | :deep(.el-card) { |
| | | width: 100%; |
| | | width: 100%; |
| | | } |
| | | |
| | | :deep(.el-card__body) { |
| | | height: 100%; |
| | | box-sizing: border-box; |
| | | display: flex; |
| | | flex-direction: column; |
| | | height: 100%; |
| | | box-sizing: border-box; |
| | | display: flex; |
| | | flex-direction: column; |
| | | } |
| | | |
| | | :deep(.el-table) { |
| | | font-size: 12px; |
| | | font-size: 12px; |
| | | } |
| | | |
| | | :deep(.el-table th.el-table__cell.is-leaf, .el-table td.el-table__cell) { |
| | | border-bottom: 1px solid #dfe6ec; |
| | | border-bottom: 1px solid #dfe6ec; |
| | | } |
| | | |
| | | :deep(.el-table--border .el-table__cell) { |
| | | border-right: 1px solid #dfe6ec; |
| | | border-right: 1px solid #dfe6ec; |
| | | } |
| | | |
| | | :deep(.table-header-cell-style) { |
| | | color: #000; |
| | | font-weight: bold; |
| | | font-size: 13px; |
| | | background-color: #f3f1f1 !important; |
| | | color: #000; |
| | | font-weight: bold; |
| | | font-size: 13px; |
| | | background-color: #f3f1f1 !important; |
| | | } |
| | | </style> |
| | | |
| | | :deep(.el-form-item__label) { |
| | | font-family: Microsoft YaHei; |
| | | font-size: 14px; |
| | | font-weight: 700; |
| | | color: #474747; |
| | | } |
| | | </style> |