Эх сурвалжийг харах

bugfix:
内容管理-轮播组管理-编辑历史-无编辑历史信息记录

lihao16 5 сар өмнө
parent
commit
3a708510c3

+ 38 - 0
smsb-modules/smsb-source/src/main/java/com/inspur/source/controller/SmsbItemEditHisController.java

@@ -0,0 +1,38 @@
+package com.inspur.source.controller;
+
+import com.inspur.source.domain.bo.SmsbItemEditHisBo;
+import com.inspur.source.domain.vo.SmsbItemEditHisVo;
+import com.inspur.source.service.ISmsbItemEditHisService;
+import lombok.RequiredArgsConstructor;
+import org.dromara.common.core.domain.R;
+import org.dromara.common.web.core.BaseController;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * 轮播组编辑历史
+ *
+ * @author Hao Li
+ * @date 2025-06-05
+ */
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/source/item/editHis")
+public class SmsbItemEditHisController extends BaseController {
+
+    private final ISmsbItemEditHisService smsbItemEditHisService;
+
+    /**
+     * 查询轮播组编辑历史列表
+     */
+    @GetMapping("/list")
+    public R<List<SmsbItemEditHisVo>> list(SmsbItemEditHisBo bo) {
+        return R.ok(smsbItemEditHisService.queryList(bo));
+    }
+
+}

+ 68 - 0
smsb-modules/smsb-source/src/main/java/com/inspur/source/domain/SmsbItemEditHis.java

@@ -0,0 +1,68 @@
+package com.inspur.source.domain;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serial;
+import java.util.Date;
+
+/**
+ * 轮播组编辑历史对象 smsb_item_edit_his
+ *
+ * @author Hao Li
+ * @date 2025-06-05
+ */
+@Data
+@TableName("smsb_item_edit_his")
+public class SmsbItemEditHis {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键ID
+     */
+    @TableId(value = "id")
+    private Long id;
+
+    /**
+     * 轮播组ID
+     */
+    private Long itemId;
+
+    /**
+     * 编辑类型 0-删除 1-新增
+     */
+    private Long editType;
+
+    /**
+     * 文件ID
+     */
+    private Long fileId;
+
+    /**
+     * 创建人姓名
+     */
+    private String createUser;
+
+    /**
+     * 租户编号
+     */
+    private String tenantId;
+
+    /**
+     * 创建者
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Long createBy;
+
+    /**
+     * 创建时间
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createTime;
+
+}

+ 40 - 0
smsb-modules/smsb-source/src/main/java/com/inspur/source/domain/bo/SmsbItemEditHisBo.java

@@ -0,0 +1,40 @@
+package com.inspur.source.domain.bo;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.inspur.source.domain.SmsbItemEditHis;
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * 轮播组编辑历史业务对象 smsb_item_edit_his
+ *
+ * @author Hao Li
+ * @date 2025-06-05
+ */
+@Data
+@AutoMapper(target = SmsbItemEditHis.class, reverseConvertGenerate = false)
+public class SmsbItemEditHisBo {
+
+    private Long id;
+
+    /**
+     * 轮播组ID
+     */
+    private Long itemId;
+
+
+    /**
+     * 创建者
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Long createBy;
+
+    /**
+     * 创建时间
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createTime;
+}

+ 71 - 0
smsb-modules/smsb-source/src/main/java/com/inspur/source/domain/vo/SmsbItemEditHisVo.java

@@ -0,0 +1,71 @@
+package com.inspur.source.domain.vo;
+
+import com.inspur.source.domain.SmsbItemEditHis;
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import org.dromara.common.excel.annotation.ExcelDictFormat;
+import org.dromara.common.excel.convert.ExcelDictConvert;
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.Date;
+
+
+
+/**
+ * 轮播组编辑历史视图对象 smsb_item_edit_his
+ *
+ * @author Hao Li
+ * @date 2025-06-05
+ */
+@Data
+@ExcelIgnoreUnannotated
+@AutoMapper(target = SmsbItemEditHis.class)
+public class SmsbItemEditHisVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键ID
+     */
+    @ExcelProperty(value = "主键ID")
+    private Long id;
+
+    /**
+     * 轮播组ID
+     */
+    @ExcelProperty(value = "轮播组ID")
+    private Long itemId;
+
+    /**
+     * 编辑类型 0-删除 1-新增
+     */
+    @ExcelProperty(value = "编辑类型 0-删除 1-新增", converter = ExcelDictConvert.class)
+    @ExcelDictFormat(dictType = "smsb_item_edit_type")
+    private Long editType;
+
+    /**
+     * 文件ID
+     */
+    @ExcelProperty(value = "文件ID")
+    private Long fileId;
+
+    /**
+     * 创建时间
+     */
+    @ExcelProperty(value = "创建时间")
+    private Date createTime;
+
+    /**
+     * 创建人姓名
+     */
+    @ExcelProperty(value = "创建人姓名")
+    private String createUser;
+
+    private String sourceName;
+
+
+}

+ 19 - 0
smsb-modules/smsb-source/src/main/java/com/inspur/source/mapper/SmsbItemEditHisMapper.java

@@ -0,0 +1,19 @@
+package com.inspur.source.mapper;
+
+import com.inspur.source.domain.SmsbItemEditHis;
+import com.inspur.source.domain.vo.SmsbItemEditHisVo;
+import org.apache.ibatis.annotations.Param;
+import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
+
+import java.util.List;
+
+/**
+ * 轮播组编辑历史Mapper接口
+ *
+ * @author Hao Li
+ * @date 2025-06-05
+ */
+public interface SmsbItemEditHisMapper extends BaseMapperPlus<SmsbItemEditHis, SmsbItemEditHisVo> {
+
+    List<SmsbItemEditHisVo> selectVoListByItemId(@Param("itemId") Long itemId);
+}

+ 68 - 0
smsb-modules/smsb-source/src/main/java/com/inspur/source/service/ISmsbItemEditHisService.java

@@ -0,0 +1,68 @@
+package com.inspur.source.service;
+
+import com.inspur.source.domain.bo.SmsbItemEditHisBo;
+import com.inspur.source.domain.vo.SmsbItemEditHisVo;
+import org.dromara.common.mybatis.core.page.PageQuery;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * 轮播组编辑历史Service接口
+ *
+ * @author Hao Li
+ * @date 2025-06-05
+ */
+public interface ISmsbItemEditHisService {
+
+    /**
+     * 查询轮播组编辑历史
+     *
+     * @param id 主键
+     * @return 轮播组编辑历史
+     */
+    SmsbItemEditHisVo queryById(Long id);
+
+    /**
+     * 分页查询轮播组编辑历史列表
+     *
+     * @param bo        查询条件
+     * @param pageQuery 分页参数
+     * @return 轮播组编辑历史分页列表
+     */
+    TableDataInfo<SmsbItemEditHisVo> queryPageList(SmsbItemEditHisBo bo, PageQuery pageQuery);
+
+    /**
+     * 查询符合条件的轮播组编辑历史列表
+     *
+     * @param bo 查询条件
+     * @return 轮播组编辑历史列表
+     */
+    List<SmsbItemEditHisVo> queryList(SmsbItemEditHisBo bo);
+
+    /**
+     * 新增轮播组编辑历史
+     *
+     * @param bo 轮播组编辑历史
+     * @return 是否新增成功
+     */
+    Boolean insertByBo(SmsbItemEditHisBo bo);
+
+    /**
+     * 修改轮播组编辑历史
+     *
+     * @param bo 轮播组编辑历史
+     * @return 是否修改成功
+     */
+    Boolean updateByBo(SmsbItemEditHisBo bo);
+
+    /**
+     * 校验并批量删除轮播组编辑历史信息
+     *
+     * @param ids     待删除的主键集合
+     * @param isValid 是否进行有效性校验
+     * @return 是否删除成功
+     */
+    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
+}

+ 125 - 0
smsb-modules/smsb-source/src/main/java/com/inspur/source/service/impl/SmsbItemEditHisServiceImpl.java

@@ -0,0 +1,125 @@
+package com.inspur.source.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.inspur.source.domain.SmsbItemEditHis;
+import com.inspur.source.domain.bo.SmsbItemEditHisBo;
+import com.inspur.source.domain.vo.SmsbItemEditHisVo;
+import com.inspur.source.mapper.SmsbItemEditHisMapper;
+import com.inspur.source.service.ISmsbItemEditHisService;
+import lombok.RequiredArgsConstructor;
+import org.dromara.common.core.utils.MapstructUtils;
+import org.dromara.common.mybatis.core.page.PageQuery;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.springframework.stereotype.Service;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * 轮播组编辑历史Service业务层处理
+ *
+ * @author Hao Li
+ * @date 2025-06-05
+ */
+@RequiredArgsConstructor
+@Service
+public class SmsbItemEditHisServiceImpl implements ISmsbItemEditHisService {
+
+    private final SmsbItemEditHisMapper baseMapper;
+
+    /**
+     * 查询轮播组编辑历史
+     *
+     * @param id 主键
+     * @return 轮播组编辑历史
+     */
+    @Override
+    public SmsbItemEditHisVo queryById(Long id) {
+        return baseMapper.selectVoById(id);
+    }
+
+    /**
+     * 分页查询轮播组编辑历史列表
+     *
+     * @param bo        查询条件
+     * @param pageQuery 分页参数
+     * @return 轮播组编辑历史分页列表
+     */
+    @Override
+    public TableDataInfo<SmsbItemEditHisVo> queryPageList(SmsbItemEditHisBo bo, PageQuery pageQuery) {
+        LambdaQueryWrapper<SmsbItemEditHis> lqw = buildQueryWrapper(bo);
+        Page<SmsbItemEditHisVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
+        return TableDataInfo.build(result);
+    }
+
+    /**
+     * 查询符合条件的轮播组编辑历史列表
+     *
+     * @param bo 查询条件
+     * @return 轮播组编辑历史列表
+     */
+    @Override
+    public List<SmsbItemEditHisVo> queryList(SmsbItemEditHisBo bo) {
+        return baseMapper.selectVoListByItemId(bo.getItemId());
+    }
+
+    private LambdaQueryWrapper<SmsbItemEditHis> buildQueryWrapper(SmsbItemEditHisBo bo) {
+        LambdaQueryWrapper<SmsbItemEditHis> lqw = Wrappers.lambdaQuery();
+        lqw.eq(bo.getItemId() != null, SmsbItemEditHis::getItemId, bo.getItemId());
+        return lqw;
+    }
+
+    /**
+     * 新增轮播组编辑历史
+     *
+     * @param bo 轮播组编辑历史
+     * @return 是否新增成功
+     */
+    @Override
+    public Boolean insertByBo(SmsbItemEditHisBo bo) {
+        SmsbItemEditHis add = MapstructUtils.convert(bo, SmsbItemEditHis.class);
+        validEntityBeforeSave(add);
+        boolean flag = baseMapper.insert(add) > 0;
+        if (flag) {
+            bo.setId(add.getId());
+        }
+        return flag;
+    }
+
+    /**
+     * 修改轮播组编辑历史
+     *
+     * @param bo 轮播组编辑历史
+     * @return 是否修改成功
+     */
+    @Override
+    public Boolean updateByBo(SmsbItemEditHisBo bo) {
+        SmsbItemEditHis update = MapstructUtils.convert(bo, SmsbItemEditHis.class);
+        validEntityBeforeSave(update);
+        return baseMapper.updateById(update) > 0;
+    }
+
+    /**
+     * 保存前的数据校验
+     */
+    private void validEntityBeforeSave(SmsbItemEditHis entity) {
+        //TODO 做一些数据校验,如唯一约束
+    }
+
+    /**
+     * 校验并批量删除轮播组编辑历史信息
+     *
+     * @param ids     待删除的主键集合
+     * @param isValid 是否进行有效性校验
+     * @return 是否删除成功
+     */
+    @Override
+    public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
+        if (isValid) {
+            //TODO 做一些业务上的校验,判断是否需要校验
+        }
+        return baseMapper.deleteByIds(ids) > 0;
+    }
+}

+ 20 - 0
smsb-modules/smsb-source/src/main/java/com/inspur/source/service/impl/SmsbItemServiceImpl.java

@@ -7,12 +7,14 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.inspur.source.domain.SmsbItem;
+import com.inspur.source.domain.SmsbItemEditHis;
 import com.inspur.source.domain.SmsbItemFileRel;
 import com.inspur.source.domain.SmsbItemSplitScreen;
 import com.inspur.source.domain.bo.ItemFileRelReqBo;
 import com.inspur.source.domain.bo.ItemSplitUploadReqBo;
 import com.inspur.source.domain.bo.SmsbItemBo;
 import com.inspur.source.domain.vo.*;
+import com.inspur.source.mapper.SmsbItemEditHisMapper;
 import com.inspur.source.mapper.SmsbItemFileRelMapper;
 import com.inspur.source.mapper.SmsbItemMapper;
 import com.inspur.source.mapper.SmsbItemSplitScreenMapper;
@@ -52,6 +54,8 @@ public class SmsbItemServiceImpl implements ISmsbItemService {
 
     private final SmsbItemSplitScreenMapper itemSplitScreenMapper;
 
+    private final SmsbItemEditHisMapper smsbItemEditHisMapper;
+
     /**
      * 查询节目管理
      *
@@ -250,6 +254,9 @@ public class SmsbItemServiceImpl implements ISmsbItemService {
         update.setSourceNum(selectedFiles.size());
         // 更新主表
         boolean result = baseMapper.updateById(update) > 0;
+        // 编辑记录 list
+        List<SmsbItemEditHis> smsbItemEditHisList = new ArrayList<>();
+        String loginUserName = LoginHelper.getLoginUser().getNickname();
         // 更新文件关联信息
         List<ItemFileRelReqBo> oldSelectedFiles = itemFileRelMapper.selectedFilesByItemId(bo.getId());
         List<Long> oldFileIds = oldSelectedFiles.stream().map(ItemFileRelReqBo::getId).collect(Collectors.toList());
@@ -261,6 +268,12 @@ public class SmsbItemServiceImpl implements ISmsbItemService {
             SmsbItemFileRel oneRel = buildItemFileRel(fileRelReqBo,bo);
             if (!oldFileIds.contains(fileRelReqBo.getId())) {
                 addList.add(oneRel);
+                SmsbItemEditHis addHis = new SmsbItemEditHis();
+                addHis.setFileId(fileRelReqBo.getId());
+                addHis.setEditType(1L);
+                addHis.setItemId(bo.getId());
+                addHis.setCreateUser(loginUserName);
+                smsbItemEditHisList.add(addHis);
             }else {
                 updateList.add(oneRel);
             }
@@ -285,8 +298,15 @@ public class SmsbItemServiceImpl implements ISmsbItemService {
                 itemFileRelMapper.delete(new LambdaQueryWrapper<SmsbItemFileRel>()
                     .eq(SmsbItemFileRel::getItemId,bo.getId())
                     .eq(SmsbItemFileRel::getFileId,oldFileId));
+                SmsbItemEditHis delHis = new SmsbItemEditHis();
+                delHis.setFileId(oldFileId);
+                delHis.setEditType(0L);
+                delHis.setItemId(bo.getId());
+                delHis.setCreateUser(loginUserName);
+                smsbItemEditHisList.add(delHis);
             }
         }
+        smsbItemEditHisMapper.insertBatch(smsbItemEditHisList);
         return result;
     }
 

+ 17 - 0
smsb-modules/smsb-source/src/main/resources/mapper/SmsbItemEditHisMapper.xml

@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+    PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+    "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.inspur.source.mapper.SmsbItemEditHisMapper">
+    <select id="selectVoListByItemId" parameterType="Long" resultType="com.inspur.source.domain.vo.SmsbItemEditHisVo">
+        SELECT
+            his.*,
+            smd.original_name AS source_name
+        FROM
+            smsb_item_edit_his his
+                LEFT JOIN smsb_minio_data smd ON his.file_id = smd.id
+        WHERE
+            his.item_id = #{itemId}
+        order by his.id desc
+    </select>
+</mapper>

+ 18 - 0
smsb-plus-ui/src/api/smsb/source/item_edit_his.ts

@@ -0,0 +1,18 @@
+import request from '@/utils/request';
+import { AxiosPromise } from 'axios';
+import { ItemEditHisVO } from '@/api/smsb/source/item_edit_his_type';
+
+/**
+ * 查询轮播组编辑历史列表
+ * @param query
+ * @returns {*}
+ */
+
+export const listItemEditHis = (query?: any): AxiosPromise<ItemEditHisVO[]> => {
+  return request({
+    url: '/source/item/editHis/list',
+    method: 'get',
+    params: query
+  });
+};
+

+ 46 - 0
smsb-plus-ui/src/api/smsb/source/item_edit_his_type.ts

@@ -0,0 +1,46 @@
+export interface ItemEditHisVO {
+  /**
+   * 主键ID
+   */
+  id: string | number;
+
+  /**
+   * 轮播组ID
+   */
+  itemId: string | number;
+
+  /**
+   * 编辑类型 0-删除 1-新增
+   */
+  editType: number;
+
+  /**
+   * 文件ID
+   */
+  fileId: string | number;
+
+  /**
+   * 创建时间
+   */
+  createTime: string;
+
+  /**
+   * 创建人姓名
+   */
+  createUser: string;
+
+  sourceName: string;
+
+}
+
+export interface ItemEditHisQuery extends PageQuery {
+
+  /**
+   * 轮播组ID
+   */
+  itemId?: string | number;
+
+}
+
+
+

+ 31 - 45
smsb-plus-ui/src/views/smsb/item/index.vue

@@ -105,17 +105,27 @@
               </el-tooltip>
             </template>
           </el-table-column>
-
-          <!-- 编辑历史弹窗 -->
-          <el-dialog title="编辑历史" v-model="editHistoryDialog.visible" width="800px" append-to-body>
-            <div class="edit-history-container" v-html="editHistoryDialog.tableHtml"></div>
-          </el-dialog>
         </el-table>
       </div>
 
       <pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum"
-        v-model:limit="queryParams.pageSize" @pagination="getList" />
+                  v-model:limit="queryParams.pageSize" @pagination="getList"/>
     </el-card>
+    <!-- 编辑历史弹窗 -->
+    <el-dialog title="编辑历史" v-model="editHistoryDialog.visible" width="800px" style="height: 720px" append-to-body>
+      <div class="table-content">
+        <el-table v-loading="editHistoryDialog.loading" :data="itemEditHisList" style="height: 600px">
+          <el-table-column label="文件名称" align="left" prop="sourceName" :show-overflow-tooltip="true"/>
+          <el-table-column label="编辑类型" align="center" prop="editType" width="100">
+            <template #default="scope">
+              <dict-tag :options="smsb_item_edit_type" :value="scope.row.editType"/>
+            </template>
+          </el-table-column>
+          <el-table-column label="编辑时间" align="left" prop="createTime" width="160"/>
+          <el-table-column label="操作人" align="center" prop="createUser" width="120" :show-overflow-tooltip="true"/>
+        </el-table>
+      </div>
+    </el-dialog>
     <!-- 添加或修改轮播组对话框 -->
     <el-dialog :title="dialog.title" v-model="dialog.visible" width="1400px" append-to-body @close="onDialogClose">
       <div class="dialog-container">
@@ -304,52 +314,27 @@
 <script setup name="Item" lang="ts">
 import draggable from 'vuedraggable';
 import { onActivated, reactive } from 'vue';
-import { getEditHistory } from '@/api/smsb/source/item';
 import type { EditHistoryVo, ItemVO, ItemForm } from '@/api/smsb/source/item_type';
 
 // 编辑历史弹窗数据
 const editHistoryDialog = reactive({
   visible: false,
-  list: [] as EditHistoryVo[],
-  type: 1 as 1 | 2,
-  tableHtml: ref('')
+  loading: false
 });
-
+const itemEditHisList = ref<ItemEditHisVO[]>([]);
 /**
  * 打开编辑历史弹窗
  * @param row 当前行数据
  */
-function onShowEditHistory(row: ItemVO) {
+async function onShowEditHistory(row: ItemVO) {
+  editHistoryDialog.loading = true;
   editHistoryDialog.visible = true;
-  editHistoryDialog.list = [];
-  // type: 1=轮播组, 2=分屏组
-  const type = row.itemType === 1 ? 1 : 2;
-  editHistoryDialog.type = type;
-  getEditHistory(row.id, type).then((res) => {
-    console.log('编辑历史数据:', res.data);
-    let list = res.data || [];
-    if (type === 1) {
-      // 轮播组过滤掉无selectedFiles的异常数据(第一条保留)
-      list = list.filter((item: any, idx: number, arr: any[]) => {
-        if (idx === 0) return true;
-        try {
-          const curr = JSON.parse(item.operParam || '{}');
-          const prev = idx > 0 ? JSON.parse(arr[idx - 1].operParam || '{}') : {};
-          // 没有selectedFiles字段直接过滤
-          if (!Array.isArray(curr.selectedFiles)) return false;
-          // diff结果为无变化也过滤
-          const diff = diffSelectedFiles({ selectedFiles: prev.selectedFiles || [] }, { selectedFiles: curr.selectedFiles || [] }, 'selectedFiles');
-          return diff && diff !== '无变化';
-        } catch {
-          return false;
-        }
-      });
-    }
-    editHistoryDialog.list = list;
-    // 使用新的渲染函数生成表格HTML
-    editHistoryDialog.tableHtml = renderOperHistoryTable(list, type);
-    console.log('编辑历史数据处理后:', list);
-  });
+  const param = {
+    itemId: row.id
+  }
+  const res = await listItemEditHis(param);
+  itemEditHisList.value = res.data;
+  editHistoryDialog.loading = false;
 }
 
 function getFileNameSet(selectedFiles?: any[]): Set<string> {
@@ -436,15 +421,16 @@ function renderOperParam(row: EditHistoryVo, index: number, list: EditHistoryVo[
 }
 
 import { listItem, getItem, delItem, addItem, updateItem, itemStatistics } from '@/api/smsb/source/item';
-import { MinioDataQuery, MinioDataVO } from '@/api/smsb/source/minioData_type';
+import { MinioDataVO } from '@/api/smsb/source/minioData_type';
 import { listMinioData } from '@/api/smsb/source/minioData';
-import { renderOperHistoryTable } from './renderOperHistoryTable';
 import { nextTick } from 'vue';
 import type { ElTable } from 'element-plus';
+import {ItemEditHisVO} from "@/api/smsb/source/item_edit_his_type";
+import {listItemEditHis} from "@/api/smsb/source/item_edit_his";
 
 const { proxy } = getCurrentInstance() as ComponentInternalInstance;
-const { smsb_item_type, smsb_split_screen, smsb_source_type, smsb_yes_no } = toRefs<any>(
-  proxy?.useDict('smsb_item_type', 'smsb_split_screen', 'smsb_source_type', 'smsb_yes_no')
+const { smsb_item_type, smsb_split_screen,smsb_item_edit_type, smsb_source_type, smsb_yes_no } = toRefs<any>(
+  proxy?.useDict('smsb_item_type', 'smsb_split_screen','smsb_item_edit_type', 'smsb_source_type', 'smsb_yes_no')
 );
 
 const itemList = ref<ItemVO[]>([]);