XiaXxxxxx 1 year ago
parent
commit
b1a17970b6

+ 34 - 1
src/api/sys/version.ts

@@ -4,6 +4,7 @@ enum Api {
     GetVersionList = '/base-center/resourcesversion/getDVersion',
     SaveVersion = '/base-center/resourcesversion/saveVersion',
     DelVersion = '/base-center/resourcesversion/deleteVersion',
+    GetDVersionNextRes = '/base-center/resourcesversion/getDVersionNextRes',
 
     GetResVersion = '/base-center/resourcesversion/getResVersion',
     SaveResVersion = '/base-center/resourcesversion/saveResVersion',
@@ -61,6 +62,7 @@ export const delVersion = (params: any) => {
  * @param page string 页码
  * @param rows string 每页大小
  * @param fid string 资源版本管理信息id
+ * @param keyStr string 关键字
  * @param serviceType string 资源类型(MR、DR、ER、SR、interface)
  */
 export const getResByVersion = (params: any) => {
@@ -70,7 +72,7 @@ export const getResByVersion = (params: any) => {
         ...params
     }
     return new Promise<void>((resolve) => {
-        defHttp.post({ url: Api.GetOneVersion, params: param }).then((res) => {
+        defHttp.post({ url: Api.GetDVersionNextRes, params: param }).then((res) => {
             resolve(res)
         })
     })
@@ -107,4 +109,35 @@ export const saveResVersion = (params: any) => {
             resolve(res)
         })
     })
+};
+
+/**
+ * @description: 移除版本
+ * @param version Array []
+ */
+export const removeResVersion = (params: any) => {
+    return new Promise<void>((resolve) => {
+        defHttp.post({ url: Api.RemoveResVersion, params: params }).then((res) => {
+            resolve(res)
+        })
+    })
+};
+
+/**
+ * @description: 获取资源的历史版本
+ * @param page string 页码
+ * @param rows string 每页大小
+ * @param serviceid string 资源id
+ */
+export const getHistoryByResId = (params: any) => {
+    let param = {
+        page:1,
+        rows:1000000,
+        ...params
+    }
+    return new Promise<void>((resolve) => {
+        defHttp.post({ url: Api.GetOneVersion, params: param }).then((res) => {
+            resolve(res)
+        })
+    })
 };

+ 40 - 40
src/views/dataAdmin/dataAdmin/resVersion/ResHistoryVersionModal.vue

@@ -1,7 +1,7 @@
 <!-- 资源的历史版本查询弹窗 -->
 <template>
     <BasicModal :maskClosable="false" :width="1430" @register="registerModal" v-bind="$attrs" :title="title" centered
-        :showOkBtn="false" :showCancelBtn="false" wrapClassName="basic-modal-custom" :footer="null">
+        :showOkBtn="false" :showCancelBtn="false" wrapClassName="res-history-version-modal" :footer="null">
         <div class="custom-content">
             <div class="right-header">
                 <div class="search">
@@ -125,7 +125,7 @@ export default defineComponent({
             registerTable,
             { reload, collapseAll, getRowSelection, getSelectRowKeys, setSelectedRowKeys },
         ] = useTable({
-            title: '版本列表', //'菜单列表'
+            title: '资源列表', //'菜单列表'
             api: getResData, //加载数据
             columns: columns,
             useSearchForm: false,     //开启搜索区域
@@ -147,10 +147,7 @@ export default defineComponent({
                 title: '操作',
                 dataIndex: 'action',
                 slots: { customRender: 'action' },
-            },
-            rowSelection: {
-                type: 'checkbox',
-            },
+            }
         });
         //表格查询功能
         const searchTable = () => {
@@ -185,7 +182,9 @@ export default defineComponent({
                     value: record.MODIFY_DATE
                 }
             ]
-            emit('select', detail);
+            const historyResId = record.SERVICEID;
+            const historyVersionId = record.VERSION_ID;
+            emit('select', { info: detail, resId: historyResId, versionId: historyVersionId });
             closeModal();
         }
         return {
@@ -203,7 +202,7 @@ export default defineComponent({
 });
 </script>
 <style lang="less">
-.basic-modal-custom {
+.res-history-version-modal {
 
     .ant-modal-content {
         background-color: #eff0f5;
@@ -211,45 +210,46 @@ export default defineComponent({
         .scroll-container .scrollbar__wrap {
             margin-bottom: 0 !important;
         }
+    }
+}
+</style>
+<style lang="less" scoped>
+.custom-content {
 
-        .custom-content {
-
-            .right-header {
-                margin-bottom: 10px;
-                height: 74px;
-                padding: 0 20px;
-                display: flex;
-                align-items: center;
-                background-color: #ffffff;
-                border-radius: 6px;
-                justify-content: space-between;
-
-                .search {
-                    display: flex;
-                    align-items: center;
-
-                    .label {
-                        width: 120px;
-                    }
-                }
+    .right-header {
+        margin-bottom: 10px;
+        height: 74px;
+        padding: 0 20px;
+        display: flex;
+        align-items: center;
+        background-color: #ffffff;
+        border-radius: 6px;
+        justify-content: space-between;
 
-                .handle-btns {
-                    display: flex;
-                    align-items: center;
+        .search {
+            display: flex;
+            align-items: center;
 
-                    .btn {
-                        margin-left: 10px;
-                    }
-                }
+            .label {
+                width: 120px;
             }
+        }
+
+        .handle-btns {
+            display: flex;
+            align-items: center;
 
-            .right-body {
-                padding: 0 20px;
-                height: calc(100% - 84px);
-                background-color: #ffffff;
-                border-radius: 6px;
+            .btn {
+                margin-left: 10px;
             }
         }
     }
+
+    .right-body {
+        padding: 0 20px;
+        height: calc(100% - 84px);
+        background-color: #ffffff;
+        border-radius: 6px;
+    }
 }
 </style>

+ 119 - 0
src/views/dataAdmin/dataAdmin/resVersion/ResVersionManageAllModal.vue

@@ -0,0 +1,119 @@
+<template>
+    <BasicModal :maskClosable="false" :width="750" @register="registerModal" v-bind="$attrs" title="资源版本管理" centered
+        @ok="handleSubmit">
+        <div class="content">
+            <div class="form-item">
+                <div class="label">版本名称:</div>
+                <div class="select">
+                    <a-select v-model:value="versionName" style="width: 100%" :options="versionSelect"
+                        @change="handleSelectVersion"></a-select>
+                </div>
+            </div>
+            <div class="form-item">
+                <div class="label">版本号:</div>
+                <div class="input">
+                    <a-input v-model:value="versionNo" placeholder="自动填写" style="width: 100%" disabled></a-input>
+                </div>
+            </div>
+        </div>
+    </BasicModal>
+</template>
+<script>
+import { defineComponent, reactive, ref, onMounted, watch, computed, toRefs } from 'vue';
+import { BasicModal, useModalInner } from '/@/components/Modal';
+import { message } from 'ant-design-vue';
+import { getVersionList, saveResVersion } from '/@/api/sys/version';
+export default defineComponent({
+    components: { BasicModal },
+    setup(_, { emit }) {
+        const resInfo = reactive({
+            ids: [],
+            type: ""
+        })
+        const versionInfo = reactive({
+            id: "",
+            no: ""
+        })
+        const versionName = ref("");
+        const versionNo = ref("");
+        //获取大版本选项列表
+        const getVersionSelect = () => {
+            return new Promise((resolve) => {
+                let params = {
+                    keyStr: ""
+                }
+                getVersionList(params).then(res => {
+                    if (res.resp_code === 0 && res.datas) {
+                        let resData = []
+                        res.datas.pageData.forEach(element => {
+                            resData.push(
+                                {
+                                    label: element.VERSION_NAME,
+                                    value: element.FID + '_' + element.VERSION_NO
+                                }
+                            )
+                        });
+                        resolve(resData)
+                    }
+                    else {
+                        resolve([])
+                    }
+                })
+
+            })
+        }
+        const versionSelect = ref([]);
+        const [registerModal, { closeModal }] = useModalInner(async (data) => {
+            resetForm()
+            versionSelect.value = await getVersionSelect();
+            console.log(data)
+            resInfo.ids = data.ids
+            resInfo.type = data.type
+        });
+        // 重置表格
+        const resetForm = () => {
+            versionName.value = ''
+            versionNo.value = ''
+        }
+        //选择版本
+        const handleSelectVersion = (e) => {
+            let str = e.split('_')
+            versionInfo.id = str[0]
+            versionInfo.no = str[1]
+            versionNo.value = `V${str[1]}`
+        }
+        // 提交信息
+        const handleSubmit = async () => {
+            if(!versionInfo.id || !versionInfo.no){
+                message.info('请选择版本')
+                return
+            }
+            let params = {
+                version: []
+            }
+            resInfo.ids.forEach(resId=>{
+                params.version.push({
+                    resource_ID: resId,
+                    resource_TYPE: resInfo.type,
+                    version_ID: versionInfo.id,
+                    version_NO: versionInfo.no
+                })
+            })
+            // 循环配置参数
+            await saveResVersion(params).then(saveRes => {
+                console.log(saveRes)
+            })
+            closeModal();
+            emit('success')
+        };
+        return {
+            versionName,
+            versionNo,
+            versionSelect,
+            registerModal,
+            handleSelectVersion,
+            handleSubmit
+        }
+    }
+})
+</script>

+ 32 - 11
src/views/dataAdmin/dataAdmin/resVersion/ResVersionManageModal.vue

@@ -95,6 +95,8 @@ export default defineComponent({
                 value: ""
             }
         ]);
+        const historyResId = ref('')
+        const historyVersionId = ref('')
         //获取大版本选项列表
         const getVersionSelect = () => {
             return new Promise((resolve) => {
@@ -152,21 +154,36 @@ export default defineComponent({
         }
         // 提交信息
         const handleSubmit = async () => {
-            if (versionInfo.value === '') {
-                message.info('请选择版本')
-                return
-            }
-            const version = versionInfo.value.split('_')
-            console.log(baseInfo)
-            console.log(version)
-            let params = {
-                version: [{
+            let paramsVersion = []
+            if (isHistory.value === 0) {
+                if (versionInfo.value === '') {
+                    message.info('请选择版本')
+                    return
+                }
+                const version = versionInfo.value.split('_')
+                paramsVersion = [{
                     resource_ID: baseInfo.SERVICEID,
                     resource_TYPE: baseInfo.RESOURCE_TYPE,
                     version_ID: version[0],
                     version_NO: version[1]
                 }]
             }
+            else{
+                if(!historyResId.value || !historyVersionId.value){
+                    message.info('请选择历史资源')
+                    return
+                }
+                paramsVersion = [{
+                    pre_RESOUCE_ID: historyResId.value,
+                    resource_ID: baseInfo.SERVICEID,
+                    resource_TYPE: baseInfo.RESOURCE_TYPE,
+                    version_ID: historyVersionId.value,
+                    version_NO: historyResDetail.value[3].value[1]
+                }]
+            }
+            const params = {
+                version: paramsVersion
+            }
             await saveResVersion(params).then(saveRes => {
                 console.log(saveRes)
             })
@@ -174,8 +191,10 @@ export default defineComponent({
             emit('success')
         };
         // 选择历史版本资源
-        const selectHistoryRes = (info) => {
-            historyResDetail.value = info
+        const selectHistoryRes = (data) => {
+            historyResDetail.value = data.info
+            historyResId.value = data.resId
+            historyVersionId.value = data.versionId
         }
         const handleChangeHistoryMode = (e) => {
             historyResDetail.value = [
@@ -201,6 +220,8 @@ export default defineComponent({
                 }
             ];
             versionInfo.value = ''
+            historyResId.value = ''
+            historyVersionId.value = ''
         }
         return {
             ...toRefs(baseInfo),

+ 57 - 26
src/views/dataAdmin/dataAdmin/resVersion/index.vue

@@ -48,8 +48,15 @@
                                 {
                                     label: '版本管理',
                                     tooltip: '版本管理',
+                                    ifShow: !isgl,
                                     onClick: handleManage.bind(null, record),
                                 },
+                                {
+                                    label: '取消版本',
+                                    tooltip: '取消版本',
+                                    ifShow: isgl,
+                                    onClick: handleDel.bind(null, record),
+                                },
                             ]" />
                         </template>
                     </BasicTable>
@@ -57,6 +64,7 @@
             </div>
         </div>
         <ResVersionManageModal @register="registerModal" @success="onSubmit"></ResVersionManageModal>
+        <ResVersionManageAllModalVue @register="registerModalAll" @success="onSubmit"></ResVersionManageAllModalVue>
     </div>
 </template>
 
@@ -67,9 +75,8 @@ import { BasicTable, useTable, TableAction } from '/@/components/Table';
 import { Button, notification } from 'ant-design-vue';
 import { useModal } from '/@/components/Modal';
 import ResVersionManageModal from './ResVersionManageModal.vue';
-// import VersionModal from './VersionModal.vue';
-// import VersionResModal from './VersionResModal.vue';
-import { getResVersionList } from '/@/api/sys/version';
+import ResVersionManageAllModalVue from './ResVersionManageAllModal.vue';
+import { getResVersionList, removeResVersion } from '/@/api/sys/version';
 import { message } from 'ant-design-vue';
 import moment from 'moment'
 import { session } from '/@/utils/Memory';
@@ -77,10 +84,10 @@ import uiTool from '/@/utils/uiTool';
 
 export default defineComponent({
     name: 'resVersion',
-    components: { ResVersionManageModal, BasicTable, TableAction, Button },
+    components: { ResVersionManageModal, ResVersionManageAllModalVue, BasicTable, TableAction, Button },
     setup() {
         const [registerModal, { openModal }] = useModal();
-        // const [registerResModal, { openModal: openResModal }] = useModal();
+        const [registerModalAll, { openModal: openModalAll }] = useModal();
         const data = reactive({
             searchValue: "",//关键字
             searchType: 0,//是否已关联
@@ -115,6 +122,7 @@ export default defineComponent({
             interface: "接口服务"
         }
         const currentResType = ref("MR");
+        const isgl = ref(false);
         //获取所有标签
         const getResData = () => {
             return new Promise((resolve, reject) => {
@@ -179,7 +187,9 @@ export default defineComponent({
         ];
         //表格查询功能
         const searchTable = () => {
+            setSelectedRowKeys([])
             reload()
+            isgl.value = Boolean(data.searchType)
         }
         //重置
         const resetTable = () => {
@@ -193,33 +203,51 @@ export default defineComponent({
         });
         const handleChangeRes = (item) => {
             currentResType.value = item.value;
+            setSelectedRowKeys([])
             reload()
         }
-
-        //批量管理资源的版本
+        // 批量管理资源的版本
         const handleManageAll = () => {
-            // openModal(true, {
-            //     status: 'add',
-            //     form: {}
-            // });
+            let ids = getSelectRowKeys();
+            openModalAll(true, {
+                ids: ids,
+                type: currentResType.value
+            });
         }
-        //批量取消选中资源的版本
+        // 批量取消选中资源的版本
         const handleDelAll = () => {
-            uiTool.delModal('确定取消所有资源的版本?', (() => {
-                // const rowKeys = getSelectRowKeys();
-                // let ids = rowKeys.toString()
-                // let param = {
-                //     fid: ids
-                // }
-                // delVersion(param).then(res => {
-                //     if (res.resp_code === 0) {
-                //         message.success('操作成功');
-                //         reload();
-                //         setSelectedRowKeys([])
-                //     }
-                // })
+            uiTool.delModal('确定取消选中资源的版本?', (() => {
+                const rowKeys = getSelectRowKeys();
+                let params = {
+                    version: []
+                }
+                rowKeys.forEach(resId => {
+                    params.version.push({
+                        resource_ID: resId
+                    })
+                })
+                // 循环配置参数
+                removeResVersion(params).then(saveRes => {
+                    console.log(saveRes)
+                    reload()
+                })
             }))
         };
+        // 取消资源的版本
+        const handleDel = (record) => {
+            uiTool.delModal('确定取消该资源的版本?', (() => {
+                let params = {
+                    version: [{
+                        resource_ID: record.SERVICEID
+                    }]
+                }
+                // 循环配置参数
+                removeResVersion(params).then(saveRes => {
+                    console.log(saveRes)
+                    reload()
+                })
+            }))
+        }
         // 浏览资源
         const handleFetchRes = (record) => {
 
@@ -251,7 +279,7 @@ export default defineComponent({
             registerTable,
             { reload, getRowSelection, getSelectRowKeys, setSelectedRowKeys },
         ] = useTable({
-            title: '版本列表', //'菜单列表'
+            title: '资源列表', //'菜单列表'
             api: getResData, //加载数据
             columns: columns,
             useSearchForm: false,     //开启搜索区域
@@ -284,10 +312,12 @@ export default defineComponent({
             currentResType,
             columns,
             hasSelected,
+            isgl,
             ...toRefs(data),
             // func
             // registerResModal,
             registerModal,
+            registerModalAll,
             registerTable,
             getResData,
             searchTable,
@@ -296,6 +326,7 @@ export default defineComponent({
 
             handleManageAll,
             handleDelAll,
+            handleDel,
             handleFetchRes,
             handleLookRes,
             handleManage,

+ 121 - 0
src/views/dataAdmin/dataAdmin/version/HistoryResListModal.vue

@@ -0,0 +1,121 @@
+<!-- 资源的历史版本查询弹窗 -->
+<template>
+    <BasicModal :maskClosable="false" :width="1430" @register="registerModal" v-bind="$attrs" :title="title" centered
+        wrapClassName="history-res-modal" :footer="null">
+        <BasicTable @register="registerTable"></BasicTable>
+    </BasicModal>
+</template>
+<script>
+import { defineComponent, reactive, ref, onMounted, watch, computed } from 'vue';
+import { BasicModal, useModalInner, useModal } from '/@/components/Modal';
+// 导入表格组件,表格事件
+import { BasicTable, useTable } from '/@/components/Table';
+import { message } from 'ant-design-vue';
+import { getHistoryByResId } from '/@/api/sys/version';
+
+export default defineComponent({
+    components: { BasicModal, BasicTable },
+    setup(_, { emit }) {
+        const title = ref('');
+        const typeObj = {
+            MR: "地图资源",
+            DR: "场景资源",
+            ER: "文件资源",
+            SR: "组件服务",
+            interface: "接口服务"
+        }
+        const currentId = ref('');
+        const [registerModal, { setModalProps, closeModal }] = useModalInner(async (data) => {
+            console.log(data)
+            title.value = `【${data.type}:${data.serviceName}】历史版本`
+            currentId.value = data.serviceId
+            reload();
+        });
+
+        const getResData = () => {
+            return new Promise((resolve, reject) => {
+                let params = {
+                    serviceid: currentId.value
+                }
+                getHistoryByResId(params).then(res => {
+                    if (res.resp_code === 0 && res.datas) {
+                        let resData = res.datas.pageData;
+                        resData.forEach(item => {
+                            item.type = typeObj[item.RESOURCE_TYPE]
+                        })
+                        resolve(resData)
+                    }
+                    else {
+                        resolve([])
+                        message.error(res.resp_msg)
+                    }
+                })
+            })
+        }
+        //表格列
+        const columns = [
+            {
+                title: '资源类型',
+                align: 'center',
+                dataIndex: 'type',
+                key: 'type'
+            },
+            {
+                title: '资源名称',
+                align: 'center',
+                dataIndex: 'SERVICENAME',
+                key: 'SERVICENAME'
+            },
+            {
+                title: '版本',
+                align: 'center',
+                dataIndex: 'VERSION_NAME',
+                key: 'VERSION_NAME'
+            },
+            {
+                title: '版本号',
+                align: 'center',
+                dataIndex: 'VERSION',
+                key: 'VERSION'
+            },
+            {
+                title: '操作时间',
+                align: 'center',
+                dataIndex: 'MODIFY_DATE',
+                key: 'MODIFY_DATE'
+            },
+            {
+                title: '操作人',
+                align: 'center',
+                dataIndex: 'USER_NAME',
+                key: 'USER_NAME'
+            }
+        ];
+        const [registerTable, { reload }] = useTable({
+            title: '资源列表', //'菜单列表'
+            api: getResData, //加载数据
+            columns: columns,
+            useSearchForm: false,     //开启搜索区域
+            bordered: false,
+            showTableSetting: true,  // 显示表格设置
+            tableSetting: {
+                redo: true,
+                size: true,
+                setting: false,
+                fullScreen: false
+            },
+            showIndexColumn: true,
+            pagination: {
+                hideOnSinglePage: false
+            },
+            rowKey: (record) => record.SERVICEID
+        });
+        return {
+            title,
+            currentId,
+            registerModal,
+            registerTable
+        };
+    },
+});
+</script>

+ 86 - 80
src/views/dataAdmin/dataAdmin/version/VersionResModal.vue

@@ -1,6 +1,6 @@
 <template>
-    <BasicModal :maskClosable="false" :width="1600" @register="registerModal" v-bind="$attrs" :title="title" centered
-        :showOkBtn="false" :showCancelBtn="false" wrapClassName="basic-modal-custom" :footer="null">
+    <BasicModal :maskClosable="false" :width="1430" @register="registerModal" v-bind="$attrs" :title="title" centered
+        :showOkBtn="false" :showCancelBtn="false" wrapClassName="version-res-modal" :footer="null">
         <div class="custom-content">
             <div class="left-box">
                 <div class="res-list-btn" v-for="(item, index) in resBtns" :key="index"
@@ -45,20 +45,22 @@
             </div>
         </div>
     </BasicModal>
+    <HistoryResListModal @register="registerHistoryModal"></HistoryResListModal>
 </template>
 <script>
 import { defineComponent, reactive, ref, onMounted, watch, computed } from 'vue';
-import { BasicModal, useModalInner } from '/@/components/Modal';
+import { BasicModal, useModalInner, useModal } from '/@/components/Modal';
 // 导入表格组件,表格事件
 import { BasicTable, useTable, TableAction } from '/@/components/Table';
 import { Button, message } from 'ant-design-vue';
 import { getResByVersion } from '/@/api/sys/version';
 import { session } from '/@/utils/Memory';
 import moment from 'moment';
+import HistoryResListModal from './HistoryResListModal.vue';
 
 export default defineComponent({
     name: 'VersionResModal',
-    components: { BasicModal, BasicTable, TableAction, Button },
+    components: { BasicModal, BasicTable, TableAction, Button, HistoryResListModal },
     setup(_, { emit }) {
         const title = ref('');
         const resBtns = ref([
@@ -96,6 +98,7 @@ export default defineComponent({
             currentFid.value = FID;
             title.value = `【${VERSION_NAME} V${VERSION_NO}】资源绑定查看`;
         });
+        const [registerHistoryModal,{openModal}] = useModal();
         const typeObj = {
             MR: "地图资源",
             DR: "场景资源",
@@ -106,16 +109,17 @@ export default defineComponent({
         const getVersionResData = () => {
             return new Promise(resolve => {
                 let params = {
+                    keyStr: searchValue.value,
                     fid: currentFid.value,
                     serviceType: currentType.value
                 }
                 getResByVersion(params).then(res => {
                     if (res.resp_code === 0 && res.datas) {
-                        let resData = res.datas.pageData;
-                        resData.forEach(item => {
+                        let resData = res.datas[currentType.value];
+                        resData.pageData.forEach(item => {
                             item.type = typeObj[item.RESOURCE_TYPE]
                         })
-                        resolve(resData)
+                        resolve(resData.pageData)
                     }
                     else {
                         resolve([])
@@ -167,7 +171,7 @@ export default defineComponent({
             registerTable,
             { reload, collapseAll, getRowSelection, getSelectRowKeys, setSelectedRowKeys },
         ] = useTable({
-            title: '版本列表', //'菜单列表'
+            title: '资源列表', //'菜单列表'
             api: getVersionResData, //加载数据
             columns: columns,
             useSearchForm: false,     //开启搜索区域
@@ -183,16 +187,16 @@ export default defineComponent({
             pagination: {
                 hideOnSinglePage: false
             },
-            rowKey: (record) => record.fid,
+            rowKey: (record) => record.SERVICEID,
             actionColumn: {
                 width: 200,
                 title: '操作',
                 dataIndex: 'action',
                 slots: { customRender: 'action' },
             },
-            rowSelection: {
-                type: 'checkbox',
-            },
+            // rowSelection: {
+            //     type: 'checkbox',
+            // },
         });
         //表格查询功能
         const searchTable = () => {
@@ -209,16 +213,20 @@ export default defineComponent({
             reload();
         }
         // 浏览
-        const handleFetchRes = ()=>{
+        const handleFetchRes = () => {
 
         }
         // 查看
-        const handleLookRes = ()=>{
-            
+        const handleLookRes = () => {
+
         }
         // 历史版本
-        const handleSearchHistory = ()=>{
-            
+        const handleSearchHistory = (record) => {
+            openModal(true,{
+                serviceId: record.SERVICEID,
+                serviceName: record.SERVICENAME,
+                type:record.type
+            })
         }
         return {
             title,
@@ -227,6 +235,7 @@ export default defineComponent({
             searchValue,
             registerModal,
             registerTable,
+            registerHistoryModal,
             handleChangeRes,
             resetTable,
             searchTable,
@@ -239,86 +248,83 @@ export default defineComponent({
 });
 </script>
 <style lang="less">
-.basic-modal-custom {
-
+.version-res-modal {
     .ant-modal-content {
-        background-color: #eff0f5;
+        background-color: #eff0f5 !important;
 
         .scroll-container .scrollbar__wrap {
             margin-bottom: 0 !important;
         }
+    }
+}
+</style>
+<style lang="less" scoped>
+.custom-content {
+    display: flex;
+    justify-content: space-between;
 
-        .custom-content {
-            display: flex;
-            justify-content: space-between;
-            // height: 100%;
-
-            .left-box {
-                padding: 20px;
-                width: 240px;
-                height: 80vh;
-                background-color: #ffffff;
-                border-radius: 6px;
-
-                .res-list-btn {
-                    height: 35px;
-                    margin-bottom: 16px;
-                    background-color: #eff0f5;
-                    line-height: 35px;
-                    text-align: center;
-                    color: #333333;
-                    cursor: pointer;
-                    user-select: none;
-                }
+    .left-box {
+        padding: 20px;
+        width: 240px;
+        background-color: #ffffff;
+        border-radius: 6px;
 
-                .clicked {
-                    background-color: #0671dd;
-                    color: #FFFFFF;
-                }
-            }
-
-            .right-box {
-                margin-left: 10px;
-                width: calc(100% - 250px);
-                height: 80vh;
+        .res-list-btn {
+            height: 35px;
+            margin-bottom: 16px;
+            background-color: #eff0f5;
+            line-height: 35px;
+            text-align: center;
+            color: #333333;
+            cursor: pointer;
+            user-select: none;
+        }
 
-                .right-header {
-                    margin-bottom: 10px;
-                    height: 74px;
-                    padding: 0 20px;
-                    display: flex;
-                    align-items: center;
-                    background-color: #ffffff;
-                    border-radius: 6px;
-                    justify-content: space-between;
+        .clicked {
+            background-color: #0671dd;
+            color: #FFFFFF;
+        }
+    }
 
-                    .search {
-                        display: flex;
-                        align-items: center;
+    .right-box {
+        margin-left: 10px;
+        width: calc(100% - 250px);
 
-                        .label {
-                            width: 120px;
-                        }
-                    }
+        .right-header {
+            margin-bottom: 10px;
+            height: 74px;
+            padding: 0 20px;
+            display: flex;
+            align-items: center;
+            background-color: #ffffff;
+            border-radius: 6px;
+            justify-content: space-between;
 
-                    .handle-btns {
-                        display: flex;
-                        align-items: center;
+            .search {
+                display: flex;
+                align-items: center;
 
-                        .btn {
-                            margin-left: 10px;
-                        }
-                    }
+                .label {
+                    width: 120px;
                 }
+            }
 
-                .right-body {
-                    padding: 0 20px;
-                    height: calc(100% - 84px);
-                    background-color: #ffffff;
-                    border-radius: 6px;
+            .handle-btns {
+                display: flex;
+                align-items: center;
+
+                .btn {
+                    margin-left: 10px;
                 }
             }
         }
+
+        .right-body {
+            padding: 0 20px;
+            height: calc(100% - 84px);
+            background-color: #ffffff;
+            border-radius: 6px;
+        }
     }
 }
 </style>