From 5808f76456ca0d40de5074f132b73a5a488e3e13 Mon Sep 17 00:00:00 2001
From: 张含笑 <zhx18749296735@163.com>
Date: Tue, 09 Dec 2025 09:12:03 +0800
Subject: [PATCH] Merge branch 'refs/heads/feature/v9.0/9.0.1' into test
---
src/views/algorithmRepository/algorithmRepository.vue | 310 ++++++++++++++++++++++++---------------------------
1 files changed, 146 insertions(+), 164 deletions(-)
diff --git a/src/views/algorithmRepository/algorithmRepository.vue b/src/views/algorithmRepository/algorithmRepository.vue
index b3300bb..87e49be 100644
--- a/src/views/algorithmRepository/algorithmRepository.vue
+++ b/src/views/algorithmRepository/algorithmRepository.vue
@@ -2,19 +2,12 @@
<basic-container>
<div class="algorithContainer">
<div class="algorithItem" v-if="!showDetail">
- <div
- class="item"
- v-for="(item, index) in AlgorithmData"
- :key="index"
- :class="{ 'active-bg': activeItem === item.dictValue }"
- @click="jumpDatail(item)"
- >
- <img class="imgicon" :src="`${baseUrl}/后台-算法仓库/${item.dictValue}.png`" alt="" />
+ <div class="item" v-for="(item, index) in AlgorithmData" :key="index"
+ :class="{ 'active-bg': activeItem === item.dictValue }" @click="jumpDatail(item)">
+ <img class="imgicon" :src="`${baseUrl}/manage-sf-icon-source/${item.dictKey}.png`" alt="" />
<div class="item-title">{{ item.dictValue }}</div>
- <div
- :class="!statusSign && item.dictValue === nameSign ? 'stopStatus' : 'normalStatus'"
- @click.stop="changeStatus(item)"
- >
+ <div :class="!statusSign && item.dictValue === nameSign ? 'stopStatus' : 'normalStatus'"
+ @click.stop="changeStatus(item)">
{{ !statusSign && item.dictValue === nameSign ? '停用状态' : '正常状态' }}
</div>
</div>
@@ -25,104 +18,70 @@
<div class="searchBox">
<div class="item">
<div class="itemchild">模糊查询:</div>
- <el-input
- v-model="params.name"
- class="filter-item"
- placeholder="请输入事件名称"
- clearable
- ></el-input>
+ <el-input v-model="params.name" class="filter-item" placeholder="请输入事件名称" clearable></el-input>
</div>
<div class="item">
- <el-date-picker
- type="daterange"
- range-separator="至"
- start-placeholder="开始日期"
- end-placeholder="结束日期"
- value-format="YYYY-MM-DD"
- v-model="taskData"
- placeholder="请选择日期"
- @change="changeselect"
- clearable
-
- />
- <!-- @clear="handleDateClear" -->
+ <el-date-picker type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期"
+ value-format="YYYY-MM-DD" v-model="taskData" placeholder="请选择日期" @change="changeselect" clearable />
+ <!-- @clear="handleDateClear" -->
</div>
<div class="item">
<div class="itemchild">机巢查询:</div>
- <el-select v-model="params.device_name" placeholder="请选择" class="filter-item" @change="handleSearch">
+ <el-select v-model="params.device_name" placeholder="请选择" class="filter-item" @change="handleSearch" clearable>
<el-option v-for="item in jcoptions" :key="item" :label="item" :value="item" />
</el-select>
</div>
</div>
<div class="search-btn">
-
<el-button type="primary" icon="el-icon-search" @click="handleSearch">搜索</el-button>
<el-button icon="el-icon-delete" @click="handleReset">清空</el-button>
<el-button type="primary" icon="el-icon-back" @click="goback">返回</el-button>
</div>
</div>
- <div v-if="detailData.length > 0" class="pictureBox">
- <div
- class="pictureitem"
-
- v-loading="loading"
- element-loading-text="加载中"
- >
- <div class="imgitem" v-for="(item, index) in detailData" :key="index">
- <el-image
- ref="imageRef"
- :src="getSmallImg(item.url)"
- show-progress
- :preview-src-list="[getShowImg(item.url)]"
- fit="cover"
- />
+ <div v-if="detailData.length > 0" class="pictureBox">
+ <div class="pictureitem" v-loading="loading" element-loading-text="加载中">
+ <div class="imgitem" v-for="(item, index) in detailData" :key="index">
+ <el-image ref="imageRef" :src="getSmallImg(item.url)" show-progress
+ :preview-src-list="[getShowImg(item.url)]" fit="cover" />
- <div class="info">
- <div class="name">{{ item.name }}</div>
- <div class="time">{{ item.create_time.slice(5, 16).replace('-', '/', 1) }}</div>
+ <div class="info">
+ <div class="name">{{ item.name }}</div>
+ <div class="time">{{ item.create_time.slice(5, 16).replace('-', '/', 1) }}</div>
+ </div>
</div>
</div>
</div>
- </div>
<el-empty class="custom-empty" v-else>
<template #description>
<span class="custom-text">暂无数据</span>
</template>
</el-empty>
<!-- 分页 -->
- <el-pagination
- class="pageStyle"
- background
- :page-sizes="[15, 20, 30, 50]"
- v-model:current-page="params.current"
- v-model:page-size="params.size"
- layout="total, prev, pager, next,sizes, jumper"
- :total="total"
- @size-change="handleSizeChange"
- @current-change="handleCurrentChange"
- />
+ <el-pagination class="pageStyle" background :page-sizes="[15, 20, 30, 50]" v-model:current-page="params.current"
+ v-model:page-size="params.size" layout="total, prev, pager, next,sizes, jumper" :total="total"
+ @size-change="handleSizeChange" @current-change="handleCurrentChange" />
</div>
</div>
</basic-container>
</template>
<script setup>
-import { useStore } from 'vuex';
-import { getDictionaryByCode } from '@/api/system/dictbiz';
-import { getalgorithmList, selectDeviceList } from '@/api/algorithm';
-import { getSmallImg,getShowImg } from '@/utils/util';
-import { useRouter } from 'vue-router';
-const store = useStore();
-const router = useRouter();
-const baseUrl = import.meta.env.VITE_APP_PICTURE_URL;
-const showDetail = ref(false);
-const taskData = ref('');
-const jcvalue = ref('');
-const jcoptions = ref([]);
-const total = ref(0);
-const loading = ref(true);
-const userAreaCode = computed(() => store.getters.userInfo.detail.areaCode);
+import { useStore } from 'vuex'
+import { getDictionaryByCode } from '@/api/system/dictbiz'
+import { getalgorithmList, selectDeviceList } from '@/api/algorithm'
+import { getSmallImg, getShowImg } from '@/utils/util'
+import { useRouter } from 'vue-router'
+const store = useStore()
+const router = useRouter()
+const baseUrl = import.meta.env.VITE_APP_PICTURE_URL
+const showDetail = ref(false)
+const taskData = ref('')
+const jcvalue = ref('')
+const jcoptions = ref([])
+const total = ref(0)
+const loading = ref(true)
+const userAreaCode = computed(() => store.getters.userInfo.detail.areaCode)
const params = ref({
ai_type_key: '',
start_date: null,
@@ -131,129 +90,134 @@
name: '',
current: 1,
size: 15,
-});
+})
// 请求字典字段
-let AlgorithmData = ref([]);
-const detailData = ref([]);
+let AlgorithmData = ref([])
+const detailData = ref([])
const requestDictionary = () => {
getDictionaryByCode('SF').then(res => {
if (res.code !== 0) {
// 处理数据
- AlgorithmData.value = res.data.data['SF'];
+ AlgorithmData.value = res.data.data['SF']
}
- });
-};
-const activeItem = ref(null);
+ console.log('算法',AlgorithmData.value);
+
+ })
+}
+const activeItem = ref(null)
const jumpDatail = val => {
- showDetail.value = true;
- activeItem.value = val.dictValue;
- params.value.ai_type_key = val.dictKey;
- getList();
-};
-const statusSign = ref(true);
-const nameSign = ref('');
+ showDetail.value = true
+ activeItem.value = val.dictValue
+ params.value.ai_type_key = val.dictKey
+ getList()
+}
+const statusSign = ref(true)
+const nameSign = ref('')
const changeStatus = val => {
- nameSign.value = val.dictValue;
- statusSign.value = !statusSign.value;
-};
+ nameSign.value = val.dictValue
+ statusSign.value = !statusSign.value
+}
// 详情
const getList = () => {
-const detailParams={
- ai_type_key: params.value.ai_type_key,
- start_date:params.value.start_date,
- end_date: params.value.end_date,
- device_name: params.value.device_name,
- name:params.value.name,
-}
- getalgorithmList(detailParams,{ current: params.value.current,
- size: params.value.size,}).then(res => {
- loading.value = true;
- detailData.value = res.data.data.records;
- total.value = res.data.data.total;
+ const detailParams = {
+ ai_type_key: params.value.ai_type_key,
+ start_date: params.value.start_date,
+ end_date: params.value.end_date,
+ device_name: params.value.device_name,
+ name: params.value.name,
+ }
+ getalgorithmList(detailParams, {
+ current: params.value.current,
+ size: params.value.size,
+ }).then(res => {
+ loading.value = true
+ detailData.value = res.data.data.records
+ total.value = res.data.data.total
setTimeout(() => {
- loading.value = false;
- }, 1000);
- });
-};
+ loading.value = false
+ }, 1000)
+ })
+}
// 机巢查询
const getDeviceList = () => {
-console.log('userAreaCode',userAreaCode.value);
-// { areaCode: userAreaCode.value }
+ console.log('userAreaCode', userAreaCode.value)
+ // { areaCode: userAreaCode.value }
selectDeviceList().then(res => {
- jcoptions.value = res.data.data;
+ jcoptions.value = res.data.data
-
- });
-};
+
+ })
+}
// 日期选择
const changeselect = () => {
- params.value.start_date = taskData.value?.length ? `${taskData.value[0]} 00:00:00` : null;
- params.value.end_date = taskData.value?.length ? `${taskData.value[1]} 23:59:59` : null;
+ params.value.start_date = taskData.value?.length ? `${taskData.value[0]} 00:00:00` : null
+ params.value.end_date = taskData.value?.length ? `${taskData.value[1]} 23:59:59` : null
handleSearch()
-};
+}
// 处理日期清空
const handleDateClear = () => {
- taskData.value = ''; // 清空绑定的日期数据
- params.value.start_date = null; // 重置开始日期参数
- params.value.end_date = null; // 重置结束日期参数
- getList();
-};
+ taskData.value = '' // 清空绑定的日期数据
+ params.value.start_date = null // 重置开始日期参数
+ params.value.end_date = null // 重置结束日期参数
+ getList()
+}
const handleSearch = () => {
-if(taskData.value === null){
- params.value.start_date = null; // 重置开始日期参数
- params.value.end_date = null; // 重置结束日期参数
-}
+ if (taskData.value === null) {
+ params.value.start_date = null // 重置开始日期参数
+ params.value.end_date = null // 重置结束日期参数
+ }
- getList();
-
-};
+ getList()
+
+}
const handleReset = () => {
-taskData.value =''
- params.value.start_date = null;
- params.value.end_date = null;
- params.value.device_name = '';
- params.value.name = '';
- getList();
-
-};
+ taskData.value = ''
+ params.value.start_date = null
+ params.value.end_date = null
+ params.value.device_name = ''
+ params.value.name = ''
+ getList()
+
+}
const goback = () => {
- showDetail.value = false;
- activeItem.value = null;
- params.value.current =1
- params.value.size=15
- params.value.name=''
-};
+ showDetail.value = false
+ activeItem.value = null
+ params.value.current = 1
+ params.value.size = 15
+ params.value.name = ''
+}
// 分页大小改变
const handleSizeChange = val => {
- params.size = val;
- getList();
-};
+ params.size = val
+ getList()
+}
// 页码改变
const handleCurrentChange = val => {
- params.current = val;
- getList();
-};
+ params.current = val
+ getList()
+}
onMounted(() => {
- requestDictionary();
- getDeviceList();
-});
+ requestDictionary()
+ getDeviceList()
+})
</script>
<style scoped lang="scss">
.algorithContainer {
-height: calc(100vh - 130px);
+ height: calc(100vh - 130px);
}
+
.algorithItem {
height: 100%;
overflow-y: auto;
- overflow-x: hidden;
+ overflow-x: hidden;
display: grid;
grid-template-columns: repeat(5, 1fr);
text-align: center;
vertical-align: middle;
-
+
.item {
height: 267px;
display: flex;
@@ -262,21 +226,25 @@
align-items: center;
background: url('/src/assets/images/ht-sfbg.png') no-repeat center;
background-size: 100% 100%;
+
.item-title {
font-weight: bold;
font-size: 18px;
color: #656565;
}
+
.imgicon {
width: 100px;
height: 100px;
margin-bottom: 17px;
}
+
&:hover {
background: url('/src/assets/images/ht-sfbg-hover.png') no-repeat center;
background-size: 100% 100%;
cursor: pointer;
}
+
&.active-bg {
background: url('/src/assets/images/ht-sfbg-click.png') no-repeat center;
background-size: 100% 100%;
@@ -295,6 +263,7 @@
margin-top: 23px;
cursor: pointer;
}
+
.stopStatus {
width: 116px;
height: 43px;
@@ -308,19 +277,22 @@
margin-top: 23px;
cursor: pointer;
}
+
.normalStatus:hover {
background: rgba(6, 217, 87, 0.2);
}
}
}
+
.algorithItemDetail {
padding: 20px;
-
- .pictureBox {
+
+ .pictureBox {
// height: 625px;
- height: pxToVh(760);
+ height: pxToVh(760);
overflow: auto;
- }
+ }
+
.pictureitem {
display: grid;
@@ -330,6 +302,7 @@
.imgitem {
border-radius: 12px 12px 0 0;
overflow: hidden;
+
.el-image {
width: 100%;
height: 170px;
@@ -337,6 +310,7 @@
margin: 0;
padding: 0;
}
+
.info {
display: flex;
justify-content: space-between;
@@ -354,6 +328,7 @@
font-size: 16px;
color: #363636;
}
+
.time {
margin-right: 12px;
font-weight: 500;
@@ -363,14 +338,17 @@
}
}
}
+
.search {
display: flex;
- justify-content: space-between;
+ //justify-content: space-between;
}
+
.searchBox {
display: flex;
align-items: center;
margin-bottom: 27px;
+
.itemchild {
white-space: nowrap;
margin-right: 5px;
@@ -378,19 +356,23 @@
font-size: 14px;
color: #363636;
}
+
.item {
display: flex;
align-items: center;
- margin-right: 49px;
+ margin-right: 40px;
}
}
+
.search-btn {
display: flex;
}
+
.filter-item {
width: 218px;
}
}
+
.pageStyle {
margin-top: 32px;
display: flex;
--
Gitblit v1.9.3