ronaldo9Zhang 2 年 前
コミット
83f0e86746

+ 149 - 143
src/router/systemManagement.js

@@ -1,14 +1,13 @@
 export default [{
-        path: "/accountManagement",
-        name: "accountManagement",
-        meta: {
-            tabname: "账户管理",
-            menuKind: "systemManagement",
-            login: true
-        },
-        component: () => import("@/views/systemManagement/accountManagement")
-    },
-    {
+    path: "/accountManagement",
+    name: "accountManagement",
+    meta: {
+        tabname: "账户管理",
+        menuKind: "systemManagement",
+        login: true
+    },
+    component: () => import("@/views/systemManagement/accountManagement"),
+    children: [{
         path: "/addAccount",
         name: "addAccount",
         meta: {
@@ -28,17 +27,18 @@ export default [{
         },
         component: () => import("@/views/systemManagement/editAccount")
     },
-    {
-        path: "/parameterManagement",
-        name: "paramenterManagement",
-        meta: {
-            tabname: "参数管理",
-            menuKind: "systemManagement",
-            login: true
-        },
-        component: () => import("@/views/systemManagement/parameterManagement")
-    },
-    {
+    ]
+},
+{
+    path: "/parameterManagement",
+    name: "parameterManagement",
+    meta: {
+        tabname: "参数管理",
+        menuKind: "systemManagement",
+        login: true
+    },
+    component: () => import("@/views/systemManagement/parameterManagement"),
+    children: [{
         path: "/parameterDetail",
         name: "parameterDetail",
         meta: {
@@ -48,17 +48,18 @@ export default [{
         },
         component: () => import("@/views/systemManagement/parameterDetail")
     },
-    {
-        path: "/clusteringManagement",
-        name: "clusteringManagement",
-        meta: {
-            tabname: "集群管理",
-            menuKind: "sysyemManagement",
-            login: true
-        },
-        component: () => import("@/views/systemManagement/clusteringManagement")
-    },
-    {
+    ]
+},
+{
+    path: "/clusteringManagement",
+    name: "clusteringManagement",
+    meta: {
+        tabname: "集群管理",
+        menuKind: "sysyemManagement",
+        login: true
+    },
+    component: () => import("@/views/systemManagement/clusteringManagement"),
+    children: [{
         path: "/clusteringDetail",
         name: "clusteringDetail",
         meta: {
@@ -68,27 +69,28 @@ export default [{
         },
         component: () => import("@/views/systemManagement/clusteringDetail")
     },
-    {
-        path: "/sceneLibraryManagement",
-        name: "sceneLibraryManagement",
-        meta: {
-            tabname: "场景库管理",
-            menuKind: "systemManagement",
-            login: true
-        },
-        component: () => import("@/views/systemManagement/sceneLibraryManagement/sceneLibraryManagement")
-    },
-    {
-        path: "/scenePacketListManagement",
-        name: "scenePacketListManagement",
-        meta: {
-            tabname: "场景包管理",
-            menuKind: "systemManagement",
-            login: true
-        },
-        component: () => import("@/views/systemManagement/scenePacketListManagement/index")
-    },
-    {
+    ]
+},
+{
+    path: "/sceneLibraryManagement",
+    name: "sceneLibraryManagement",
+    meta: {
+        tabname: "场景库管理",
+        menuKind: "systemManagement",
+        login: true
+    },
+    component: () => import("@/views/systemManagement/sceneLibraryManagement/sceneLibraryManagement")
+},
+{
+    path: "/scenePacketListManagement",
+    name: "scenePacketListManagement",
+    meta: {
+        tabname: "场景包管理",
+        menuKind: "systemManagement",
+        login: true
+    },
+    component: () => import("@/views/systemManagement/scenePacketListManagement/index"),
+    children: [{
         path: "/scenePacketDetail",
         name: "scenePacketDetail",
         meta: {
@@ -98,17 +100,18 @@ export default [{
         },
         component: () => import("@/views/systemManagement/scenePacketListManagement/detail")
     },
-    {
-        path: "/scenePacketDistributionList",
-        name: "scenePacketDistributionList",
-        meta: {
-            tabname: "场景包分配",
-            menuKind: "systemManagement",
-            login: true
-        },
-        component: () => import("@/views/systemManagement/scenePacketDistributionList")
-    },
-    {
+    ]
+},
+{
+    path: "/scenePacketDistributionList",
+    name: "scenePacketDistributionList",
+    meta: {
+        tabname: "场景包分配",
+        menuKind: "systemManagement",
+        login: true
+    },
+    component: () => import("@/views/systemManagement/scenePacketDistributionList"),
+    children: [{
         path: "/scenePacketDistributionDetail",
         name: "scenePacketDistributionDetail",
         meta: {
@@ -118,27 +121,28 @@ export default [{
         },
         component: () => import("@/views/systemManagement/scenePacketDistributionDetail")
     },
-    {
-        path: "/sceneUploadList",
-        name: "sceneUploadList",
-        meta: {
-            tabname: "场景上传",
-            menuKind: "systemManagement",
-            login: true
-        },
-        component: () => import("@/views/systemManagement/sceneUploadList")
-    },
-    {
-        path: "/vehicleModelManagement",
-        name: "vehicleModelManagement",
-        meta: {
-            tabname: "车辆设置",
-            menuKind: "vehicleModelManagement",
-            login: true
-        },
-        component: () => import("@/views/systemManagement/vehicleModelManagement")
-    },
-    {
+    ]
+},
+{
+    path: "/sceneUploadList",
+    name: "sceneUploadList",
+    meta: {
+        tabname: "场景上传",
+        menuKind: "systemManagement",
+        login: true
+    },
+    component: () => import("@/views/systemManagement/sceneUploadList")
+},
+{
+    path: "/vehicleModelManagement",
+    name: "vehicleModelManagement",
+    meta: {
+        tabname: "车辆设置",
+        menuKind: "vehicleModelManagement",
+        login: true
+    },
+    component: () => import("@/views/systemManagement/vehicleModelManagement"),
+    children: [{
         path: "/vehicleModelDetail",
         name: "vehicleModelDetail",
         meta: {
@@ -148,63 +152,65 @@ export default [{
         },
         component: () => import("@/views/systemManagement/vehicleModelDetail")
     },
-    {
-        path: "/reportTemplateManagement",
-        name: "reportTemplateManagement",
-        meta: {
-            tabname: "报告模板管理",
-            menuKind: "systemManagement",
-            login: true
-        },
-        component: () => import("@/views/systemManagement/reportTemplateManagement")
-    },
-    {
-        path: "/reportTemplateDetail",
-        name: "reportTemplateDetail",
-        meta: {
-            login: true
-        },
-        component: () => import("@/views/systemManagement/reportTemplateDetail")
-    },
-    {
-        path: "/loginLogManagement",
-        name: "loginLogManagement",
-        meta: {
-            tabname: "登录日志",
-            menuKind: "systemManagement",
-            login: true
-        },
-        component: () => import("@/views/systemManagement/loginLogManagement")
-    },
-    {
-        path: "/handleLogManagement",
-        name: "handleLogManagement",
-        meta: {
-            tabname: "操作日志",
-            menuKind: "systemManagement",
-            login: true
-        },
-        component: () => import("@/views/systemManagement/handleLogManagement")
-    },
-    {
-        path: "/systemLogManagement",
-        name: "systemLogManagement",
-        meta: {
-            tabname: "系统日志",
-            menuKind: "systemManagement",
-            login: true
-        },
-        component: () => import("@/views/systemManagement/systemLogManagement")
-    }
+    ]
+},
+{
+    path: "/reportTemplateManagement",
+    name: "reportTemplateManagement",
+    meta: {
+        tabname: "报告模板管理",
+        menuKind: "systemManagement",
+        login: true
+    },
+    component: () => import("@/views/systemManagement/reportTemplateManagement")
+},
+{
+    path: "/reportTemplateDetail",
+    name: "reportTemplateDetail",
+    meta: {
+        login: true
+    },
+    component: () => import("@/views/systemManagement/reportTemplateDetail")
+},
+{
+    path: "/loginLogManagement",
+    name: "loginLogManagement",
+    meta: {
+        tabname: "登录日志",
+        menuKind: "systemManagement",
+        login: true
+    },
+    component: () => import("@/views/systemManagement/loginLogManagement")
+},
+{
+    path: "/handleLogManagement",
+    name: "handleLogManagement",
+    meta: {
+        tabname: "操作日志",
+        menuKind: "systemManagement",
+        login: true
+    },
+    component: () => import("@/views/systemManagement/handleLogManagement")
+},
+{
+    path: "/systemLogManagement",
+    name: "systemLogManagement",
+    meta: {
+        tabname: "系统日志",
+        menuKind: "systemManagement",
+        login: true
+    },
+    component: () => import("@/views/systemManagement/systemLogManagement")
+}
     ,
-    {
-        path: "/dictManagement",
-        name: "dictManagement",
-        meta: {
-            tabname: "日志管理",
-            menuKind: "dictManagement",
-            login: true
-        },
-        component: () => import("@/views/systemManagement/dictManagement")
-    }
+{
+    path: "/dictManagement",
+    name: "dictManagement",
+    meta: {
+        tabname: "日志管理",
+        menuKind: "dictManagement",
+        login: true
+    },
+    component: () => import("@/views/systemManagement/dictManagement")
+}
 ]

+ 8 - 4
src/views/modelLibrary/components/modelList.vue

@@ -109,12 +109,16 @@ export default {
                     this.listPub = res.info.filter((i) => i.share === "1");
                     this.listPri = res.info.filter((i) => i.share === "0");
 
-                    if (!this.isShowed) {
-                        this.isShowed = true;
-                        if (this.listPub[0].id) {
+                    if (this.listPub[0].id) {
                             this.showInfo(this.listPub[0].id);
                         }
-                    }
+
+                    // if (!this.isShowed) {
+                    //     this.isShowed = true;
+                    //     if (this.listPub[0].id) {
+                    //         this.showInfo(this.listPub[0].id);
+                    //     }
+                    // }
                 } else {
                     this.$message.error(res.message || "获取失败");
                 }

+ 33 - 1
src/views/page/breadCrumb.vue

@@ -69,7 +69,9 @@ export default {
         ...mapState([
             "projectInfoTabname", "taskInfoTabname", "vehicleConfigurationDetailTabName",
             "exportAlgorithmsTabName", "gitAlgorithmsTabName", "gradingRuleDetailTabName",
-            "scenePacketListTabName",
+            "scenePacketListTabName", "parameterDetailTabName", "clusteringDetailTabName",
+            "scenePacketDetailTabName", "scenePacketDistributionDetailTabName","editAccountTabName",
+            "vehicleModelDetailTabName",
         ]),
         list() {
             // console.log(this.$route);
@@ -115,6 +117,36 @@ export default {
                         this.scenePacketListTabName ||
                         localStorage.getItem("scenePacketListTabName") ||
                         "场景测试包";
+                } else if (item.name === "parameterDetail") {
+                    item.meta.tabname =
+                        this.parameterDetailTabName ||
+                        localStorage.getItem("parameterDetailTabName") ||
+                        "编辑参数配置";
+                } else if (item.name === "clusteringDetail") {
+                    item.meta.tabname =
+                        this.clusteringDetailTabName ||
+                        localStorage.getItem("clusteringDetailTabName") ||
+                        "编辑集群配置";
+                } else if (item.name === "scenePacketDetail") {
+                    item.meta.tabname =
+                        this.scenePacketDetailTabName ||
+                        localStorage.getItem("scenePacketDetailTabName") ||
+                        "场景包详情";
+                } else if (item.name === "scenePacketDistributionDetail") {
+                    item.meta.tabname =
+                        this.scenePacketDistributionDetailTabName ||
+                        localStorage.getItem("scenePacketDistributionDetailTabName") ||
+                        "场景包分配详情";
+                } else if (item.name === "editAccountTab") {
+                    item.meta.tabname =
+                        this.editAccountTabName ||
+                        localStorage.getItem("editAccountTabName") ||
+                        "编辑账户";
+                } else if (item.name === "vehicleModelDetail") {
+                    item.meta.tabname =
+                        this.vehicleModelDetailTabName ||
+                        localStorage.getItem("vehicleModelDetailTabName") ||
+                        "车辆设置详情";
                 }
 
                 if (item.name === this.$route.name) {

+ 3 - 50
src/views/sceneLibrary/components/generalizationList.vue

@@ -2,7 +2,7 @@
     <div class="generalizationListPanel">
         <search-layout>
             <template slot="searchItem1">
-                <span class="label">场景类型编号</span>
+                <span class="label">场景编号</span>
                 <el-input
                     v-model="searchParams.sceneId"
                     size="small"
@@ -41,26 +41,6 @@
                     ></el-option>
                 </el-select>
             </template>
-            <!-- <template slot="searchItem3">
-                <span class="label">天气</span>
-                <el-select v-model="searchParams.scenarioWeather" multiple>
-                    <el-option
-                        v-for="item in scenarioWeatherList"
-                        :label="item.caption"
-                        :value="item.code"
-                        :key="item.code"
-                    ></el-option>
-                </el-select>
-            </template> -->
-            <!-- <template slot="searchItem4">
-                <span class="label">场景发生时刻</span>
-                <el-time-picker
-                    v-model="searchParams.scenarioTime"
-                    value-format="HH:mm:ss"
-                    placeholder="请选择"
-                >
-                </el-time-picker>
-            </template> -->
             <template slot="searchBtn1">
                 <el-button type="primary" @click="doSearch">查询</el-button>
             </template>
@@ -87,21 +67,6 @@
             index
             selection
         >
-            <el-table-column
-                label="操作"
-                slot="cgInfos"
-                align="center"
-                width="180"
-            >
-                <!-- <template v-slot="scope">
-                    <i
-                        @click="viewRow(scope.row)"
-                        class="el-icon-view elIcon cursor"
-                        title="查看"
-                    >
-                    </i>
-                </template> -->
-            </el-table-column>
         </tableList>
 
         <el-dialog
@@ -132,12 +97,10 @@ export default {
             activeName: "2",
             searchParams: {
                 //搜索参数
-                sceneId: "", // 场景类型编号
+                sceneId: "", // 场景编号
                 fileName: [], // 功能模块
                 scenarioRoadType: [], // 道路类型
                 share: "0",
-                // scenarioWeather: [], // 天气
-                // scenarioTime: "", // 场景发生时刻
             },
             fileNameList: [],
             scenarioRoadTypeList: [],
@@ -150,7 +113,7 @@ export default {
             columns: [
                 //表格列
                 {
-                    label: "编号",
+                    label: "场景编号",
                     prop: "sceneId",
                 },
                 {
@@ -165,14 +128,6 @@ export default {
                     label: "道路类型",
                     prop: "scenarioRoadType",
                 },
-                // {
-                //     label: "场景发生时刻",
-                //     prop: "scenarioTime",
-                // },
-                // {
-                //     label: "天气",
-                //     prop: "scenarioWeather",
-                // },
             ],
             pagination: {
                 //分页使用
@@ -221,8 +176,6 @@ export default {
                 fileName: [],
                 scenarioRoadType: [],
                 share: this.activeName === "1" ? "1" : "0",
-                // scenarioWeather: [],
-                // scenarioTime: "",
             };
             this.doSearch();
         },

+ 28 - 65
src/views/sceneLibrary/generalizationScenarioList.vue

@@ -2,49 +2,31 @@
     <div class="generalizationScenarioListPanel">
         <search-layout :needBox="true">
             <template slot="searchItem1">
-                <span class="label">场景类型编号</span>
-                <el-input
-                    v-model="searchParams.sceneId"
-                    size="small"
-                    clearable
-                    placeholder="请输入"
-                    maxlength="60"
-                    @keyup.enter.native="doSearch"
-                >
+                <span class="label">场景编号</span>
+                <el-input v-model="searchParams.sceneId" size="small" clearable placeholder="请输入" maxlength="60"
+                    @keyup.enter.native="doSearch">
                 </el-input>
             </template>
             <template slot="searchItem2">
                 <span class="label">功能模块</span>
-                <el-select
-                    v-model="searchParams.fileName"
-                    multiple
-                    size="small"
-                    clearable
-                >
-                    <el-option
-                        v-for="item in fileNameList"
-                        :label="item.caption"
-                        :value="item.code"
-                        :key="item.code"
-                    ></el-option>
+                <el-select v-model="searchParams.fileName" multiple size="small" clearable>
+                    <el-option v-for="item in fileNameList" :label="item.caption" :value="item.code"
+                        :key="item.code"></el-option>
                 </el-select>
             </template>
             <template slot="searchItem3">
                 <span class="label">道路类型</span>
-                <el-select
-                    v-model="searchParams.scenarioRoadType"
-                    multiple
-                    size="small"
-                    clearable
-                >
-                    <el-option
-                        v-for="item in scenarioRoadTypeList"
-                        :label="item.caption"
-                        :value="item.code"
-                        :key="item.code"
-                    ></el-option>
+                <el-select v-model="searchParams.scenarioRoadType" multiple size="small" clearable>
+                    <el-option v-for="item in scenarioRoadTypeList" :label="item.caption" :value="item.code"
+                        :key="item.code"></el-option>
                 </el-select>
             </template>
+            <template slot="searchItem4">
+                <span class="label">场景简述</span>
+                <el-input v-model="searchParams.scenarioResume" size="small" clearable placeholder="请输入" maxlength="300"
+                    @keyup.enter.native="doSearch">
+                </el-input>
+            </template>
             <!-- <template slot="searchItem3">
                 <span class="label">天气</span>
                 <el-select
@@ -85,20 +67,9 @@
             </el-tabs>
         </div>
 
-        <tableList
-            ref="table"
-            style="margin: 0 30px 30px"
-            :columns="columns"
-            :getDataWay="getDataWay"
-            :pagination="pagination"
-            index
-        >
-            <el-table-column
-                label="操作"
-                slot="cgInfos"
-                align="center"
-                width="180"
-            >
+        <tableList ref="table" style="margin: 0 30px 30px" :columns="columns" :getDataWay="getDataWay"
+            :pagination="pagination" index>
+            <el-table-column label="操作" slot="cgInfos" align="center" width="180">
                 <template v-slot="scope">
                     <span @click="viewRow(scope.row)" class="elIcon">
                         查看模板
@@ -107,23 +78,12 @@
             </el-table-column>
         </tableList>
 
-        <el-dialog
-            v-if="generalizationVisible"
-            :visible.sync="generalizationVisible"
-            :title="generalizationDiaTitle"
-            width="90%"
-            class="generalizationDia"
-            :close-on-click-modal="false"
-            :close-on-press-escape="false"
-            :before-close="generalizationCancel"
-        >
+        <el-dialog v-if="generalizationVisible" :visible.sync="generalizationVisible" :title="generalizationDiaTitle"
+            width="90%" class="generalizationDia" :close-on-click-modal="false" :close-on-press-escape="false"
+            :before-close="generalizationCancel">
             <div>
-                <generalization-detail
-                    ref="generalizationDetail"
-                    :disabled="true"
-                    :id="generalizationId"
-                    :genUrlType="1"
-                ></generalization-detail>
+                <generalization-detail ref="generalizationDetail" :disabled="true" :id="generalizationId"
+                    :genUrlType="1"></generalization-detail>
             </div>
         </el-dialog>
     </div>
@@ -143,9 +103,10 @@ export default {
             activeName: "2",
             searchParams: {
                 //搜索参数
-                sceneId: "", // 场景类型编号
+                sceneId: "", // 场景编号
                 fileName: [], // 功能模块
                 scenarioRoadType: [], // 道路类型
+                scenarioResume: "", // 场景简述
                 share: "0",
                 // scenarioWeather: [], // 天气
                 // scenarioTime: "", // 场景发生时刻
@@ -161,7 +122,7 @@ export default {
             columns: [
                 //表格列
                 {
-                    label: "编号",
+                    label: "场景编号",
                     prop: "sceneId",
                 },
                 {
@@ -238,6 +199,7 @@ export default {
                 sceneId: "",
                 fileName: [],
                 scenarioRoadType: [],
+                scenarioResume: "",
                 share: this.activeName === "1" ? "1" : "0",
                 // scenarioWeather: [],
                 // scenarioTime: "",
@@ -292,6 +254,7 @@ export default {
 
 <style lang='less' scoped>
 @import "./common/util.less";
+
 .generalizationScenarioListPanel {
     .inputBox {
         .label {

+ 124 - 132
src/views/systemManagement/accountManagement.vue

@@ -1,101 +1,71 @@
 <template>
     <div>
-        <search-layout :needBox="true">
-            <template slot="searchItem1">
-                <span class="label">账户名称</span>
-                <el-input
-                    v-model="searchParams.username"
-                    size="small"
-                    clearable
-                    placeholder="请输入"
-                >
-                </el-input>
-            </template>
-            <template slot="searchItem3">
-                <span class="label">账户类型</span>
-                <el-select v-model="searchParams.roleCode">
-                    <el-option
-                        v-for="item in limitRoleCodeList"
-                        :label="item.caption"
-                        :value="item.code"
-                        :key="item.code"
-                    ></el-option>
-                </el-select>
-            </template>
-            <template slot="searchItem2">
-                <span class="label">所属公司</span>
-                <el-input
-                    v-model="searchParams.company"
-                    size="small"
-                    clearable
-                    placeholder="请输入"
+        <div v-show="
+            !$route.path.includes('addAccount') &&
+            !$route.path.includes('editAccount')
+        ">
+            <search-layout :needBox="true">
+                <template slot="searchItem1">
+                    <span class="label">账户名称</span>
+                    <el-input v-model="searchParams.username" size="small" clearable placeholder="请输入"
+                        @keyup.enter.native="search(false)">
+                    </el-input>
+                </template>
+                <template slot="searchItem3">
+                    <span class="label">账户类型</span>
+                    <el-select v-model="searchParams.roleCode">
+                        <el-option v-for="item in limitRoleCodeList" :label="item.caption" :value="item.code"
+                            :key="item.code"></el-option>
+                    </el-select>
+                </template>
+                <template slot="searchItem2">
+                    <span class="label">所属公司</span>
+                    <el-input v-model="searchParams.company" size="small" clearable placeholder="请输入"
+                        @keyup.enter.native="search(false)">
+                    </el-input>
+                </template>
+                <template slot="searchItem4">
+                    <span class="label">状态</span>
+                    <el-select v-model="searchParams.visible">
+                        <el-option v-for="item in list" :label="item.caption" :value="item.code"
+                            :key="item.code"></el-option>
+                    </el-select>
+                </template>
+                <template slot="searchBtn1">
+                    <el-button type="primary" @click="search(false)">查询</el-button>
+                </template>
+                <template slot="searchBtn2">
+                    <el-button type="primary" @click="reset">重置</el-button>
+                </template>
+            </search-layout>
+
+            <div class="btnsPanel">
+                <!--<el-button type="primary" plain icon="el-icon-video-pause"
+                    >批量停用</el-button
                 >
-                </el-input>
-            </template>
-            <template slot="searchItem4">
-                <span class="label">状态</span>
-                <el-select v-model="searchParams.visible">
-                    <el-option
-                        v-for="item in list"
-                        :label="item.caption"
-                        :value="item.code"
-                        :key="item.code"
-                    ></el-option>
-                </el-select>
-            </template>
-            <template slot="searchBtn1">
-                <el-button type="primary" @click="search">查询</el-button>
-            </template>
-            <template slot="searchBtn2">
-                <el-button type="primary" @click="reset">重置</el-button>
-            </template>
-        </search-layout>
+                <el-button type="primary" plain icon="el-icon-video-play"
+                    >批量启用</el-button
+                >-->
+                <el-button type="primary" icon="el-icon-circle-plus-outline" @click="addAccount">新增账户</el-button>
+            </div>
 
-        <div class="btnsPanel">
-            <!--<el-button type="primary" plain icon="el-icon-video-pause"
-                >批量停用</el-button
-            >
-            <el-button type="primary" plain icon="el-icon-video-play"
-                >批量启用</el-button
-            >-->
-            <el-button
-                type="primary"
-                icon="el-icon-circle-plus-outline"
-                @click="addAccount"
-                >新增账户</el-button
-            >
+            <tableList ref="table" style="border-top: none; margin: 0 30px" :columns="columns" :getDataWay="getDataWay"
+                :pagination="pagination" index>
+                <el-table-column label="停/启用" slot="visible" align="center">
+                    <template v-slot="scope">
+                        <el-switch v-model="scope.row.visible" active-value="1" inactive-value="0" active-color="#3397ff"
+                            inactive-color="#ff4949" @change="$event => { switchVisible($event, scope.row) }"></el-switch>
+                    </template>
+                </el-table-column>
+                <el-table-column label="操作" slot="cgInfos" align="center">
+                    <template v-slot="scope">
+                        <i @click="editAccount(scope.row)" class="el-icon-edit-outline elIcon" title="编辑"></i>
+                    </template>
+                </el-table-column>
+            </tableList>
         </div>
 
-        <tableList
-            ref="table"
-            style="border-top: none; margin: 0 30px"
-            :columns="columns"
-            :getDataWay="getDataWay"
-            :pagination="pagination"
-            index
-        >
-            <el-table-column label="停/启用" slot="visible" align="center">
-                <template v-slot="scope">
-                    <el-switch
-                        v-model="scope.row.visible"
-                        active-value="1"
-                        inactive-value="0"
-                        active-color="#3397ff"
-                        inactive-color="#ff4949"
-                        @change="$event=>{switchVisible($event, scope.row)}"
-                    ></el-switch>
-                </template>
-            </el-table-column>
-            <el-table-column label="操作" slot="cgInfos" align="center">
-                <template v-slot="scope">
-                    <i
-                        @click="editAccount(scope.row)"
-                        class="el-icon-edit-outline elIcon"
-                        title="编辑"
-                    ></i>
-                </template>
-            </el-table-column>
-        </tableList>
+        <router-view v-show="$route.path.includes('addAccount') || $route.path.includes('editAccount')"></router-view>
     </div>
 </template>
 
@@ -111,19 +81,19 @@ export default {
             searchParams: {
                 //搜索参数
                 username: "", //账户名
-                company:"",  //所属公司
-                roleCode:"",  //账户类型
-                visible:""  //启用状态
+                company: "",  //所属公司
+                roleCode: "",  //账户类型
+                visible: ""  //启用状态
             },
-            roleCodeList:[],
+            roleCodeList: [],
             list: [
                 {
-                    code:'1',
-                    caption:'启用'
+                    code: '1',
+                    caption: '启用'
                 },
                 {
-                    code:'0',
-                    caption:'停用'
+                    code: '0',
+                    caption: '停用'
                 }
             ],
             columns: [
@@ -188,50 +158,71 @@ export default {
             },
         };
     },
+
     async mounted() {
         await this.$dicsListsInit({
             roleCodeList: "roleCode",
         });
     },
-    computed:{
-        roleCode(){
+
+    computed: {
+        roleCode() {
             return this.$store.state.roleCode
         },
-        limitRoleCodeList(){
+        limitRoleCodeList() {
             let list = []
-            this.roleCodeList.map(item=>{
-                if(Number(item.code)>this.roleCode){
+            this.roleCodeList.map(item => {
+                if (Number(item.code) > this.roleCode) {
                     list.push(item)
                 }
             })
-            if(this.roleCode == '0'|| this.roleCode == '1'){
+            if (this.roleCode == '0' || this.roleCode == '1') {
                 list.pop()
             }
             return list
         }
     },
+
+    watch: {
+        $route(to, from) {
+            if (to.name === "accountManagement") {
+                this.$nextTick(() => {
+                    this.search(true);
+                });
+            }
+        },
+    },
+
     methods: {
         addAccount() {
             this.$router.push({ path: "/addAccount" });
         },
         editAccount(row) {
-            let query = {...row}
+            this.$store.commit("getTabname", "editAccountTabName", row.username);
+            localStorage.setItem("editAccountTabName", row.username);
+
+            let query = { ...row }
             this.$router.push({
                 path: "/editAccount",
                 query
             })
         },
-        search(){
+        // isBack为解决从详情回退时列表在当前页刷新
+        search(isBack = false) {
             let searchParam = {
-                    username: this.searchParams.username,
-                    company: this.searchParams.company,
-                    roleCode: this.searchParams.roleCode,
-                    visible: this.searchParams.visible
+                username: this.searchParams.username,
+                company: this.searchParams.company,
+                roleCode: this.searchParams.roleCode,
+                visible: this.searchParams.visible,
+                resetPageNum: !isBack ? false : (this.pagination.currentPage || 1),
             }
+
+            if (!isBack) this.pagination.currentPage = 1;
+
             this.refreshList(searchParam)
         },
-        reset(){
-            this.searchParams={
+        reset() {
+            this.searchParams = {
                 username: '',
                 company: '',
                 roleCode: '',
@@ -244,52 +235,53 @@ export default {
                 ? this.$refs["table"].loadData(param)
                 : this.$refs["table"].loadData();
         },
-        switchVisible(value, row){  //停用启用账户
-            if(value == '0'){
+        switchVisible(value, row) {  //停用启用账户
+            if (value == '0') {
                 row.visible = '1'
                 this.$confirm("确认停用该账户?", "提示", {
                     confirmButtonText: "确定",
                     cancelButtonText: "取消",
                     type: "warning",
-                }).then(()=>{
+                }).then(() => {
                     this.$axios({
-                        method:'POST',
+                        method: 'POST',
                         url: this.$api.systemManagement.saveVisible,
-                        data:{
+                        data: {
                             id: row.id,
                             visible: '0'
                         }
-                    }).then(res=>{
-                        if(res.code == '200'){
+                    }).then(res => {
+                        if (res.code == '200') {
                             row.visible = '0'
-                        }else{
+                        } else {
                             this.$message.error(res.message || "停用失败");
                         }
                     })
-                }).catch(()=>{})
-            }else{
+                }).catch(() => { })
+            } else {
                 row.visible = '0'
                 this.$confirm("确认启用该账户?", "提示", {
                     confirmButtonText: "确定",
                     cancelButtonText: "取消",
                     type: "warning",
-                }).then(()=>{this.$axios({
-                        method:'POST',
+                }).then(() => {
+                    this.$axios({
+                        method: 'POST',
                         url: this.$api.systemManagement.saveVisible,
-                        data:{
+                        data: {
                             id: row.id,
                             visible: '1'
                         }
-                    }).then(res=>{
-                        if(res.code == '200'){
+                    }).then(res => {
+                        if (res.code == '200') {
                             row.visible = '1'
-                        }else{
+                        } else {
                             this.$message.error(res.message || "启用失败");
                         }
                     })
-                }).catch(()=>{})
+                }).catch(() => { })
             }
-            
+
         }
     },
 };

+ 1 - 1
src/views/systemManagement/clusteringDetail.vue

@@ -91,7 +91,7 @@
 import tableList from "@/components/grid/TableList";
 
 export default {
-    name: "clusteringDetail",
+    name: "clusteringDetail", // 编辑集群配置
     components: {tableList},
     data() {
         return {

+ 113 - 126
src/views/systemManagement/clusteringManagement.vue

@@ -1,136 +1,99 @@
 <!--集群管理-->
 <template>
     <div>
-        <search-layout :needBox="true">
-            <template slot="searchItem1">
-                <span class="label">账户名称</span>
-                <el-input
-                    v-model="searchParams.userName"
-                    size="small"
-                    clearable
-                    placeholder="请输入"
-                >
-                </el-input>
-            </template>
-            <template slot="searchItem2">
-                <span class="label">操作时间</span>
+        <div v-show="!$route.path.includes('clusteringDetail')">
+            <search-layout :needBox="true">
+                <template slot="searchItem1">
+                    <span class="label">账户名称</span>
+                    <el-input v-model="searchParams.userName" size="small" clearable placeholder="请输入"
+                        @keyup.enter.native="doSearch(false)">
+                    </el-input>
+                </template>
+                <template slot="searchItem2">
+                    <span class="label">操作时间</span>
                 <!-- <el-date-picker
-                    v-model="modifyTimeRange"
-                    type="datetimerange"
-                    format="yyyy-MM-dd HH:mm:ss"
-                    value-format="yyyy-MM-dd HH:mm:ss"
-                    range-separator="至"
-                    start-placeholder="开始日期"
-                    end-placeholder="结束日期"
-                >
-                </el-date-picker> -->
-                <el-date-picker
-                    v-model="searchParams.modifyTimeStart"
-                    type="date"
-                    format="yyyy-MM-dd"
-                    value-format="yyyy-MM-dd"
-                    placeholder="开始日期"
-                    class="dateRangeInput"
-                >
-                </el-date-picker>
-                <span class="dateSeparator">至</span>
-                <el-date-picker
-                    v-model="searchParams.modifyTimeEnd"
-                    type="date"
-                    format="yyyy-MM-dd"
-                    value-format="yyyy-MM-dd"
-                    placeholder="结束日期"
-                    class="dateRangeInput"
-                >
-                </el-date-picker>
-            </template>
-            <template slot="searchItem3">
-                <span class="label">到期时间</span>
+                        v-model="modifyTimeRange"
+                        type="datetimerange"
+                        format="yyyy-MM-dd HH:mm:ss"
+                        value-format="yyyy-MM-dd HH:mm:ss"
+                        range-separator="至"
+                        start-placeholder="开始日期"
+                        end-placeholder="结束日期"
+                    >
+                            </el-date-picker> -->
+                    <el-date-picker v-model="searchParams.modifyTimeStart" type="date" format="yyyy-MM-dd"
+                        value-format="yyyy-MM-dd" placeholder="开始日期" class="dateRangeInput">
+                    </el-date-picker>
+                    <span class="dateSeparator">至</span>
+                    <el-date-picker v-model="searchParams.modifyTimeEnd" type="date" format="yyyy-MM-dd"
+                        value-format="yyyy-MM-dd" placeholder="结束日期" class="dateRangeInput">
+                    </el-date-picker>
+                </template>
+                <template slot="searchItem3">
+                    <span class="label">到期时间</span>
                 <!-- <el-date-picker
-                    v-model="dueTimeRange"
-                    type="daterange"
-                    format="yyyy-MM-dd"
-                    value-format="yyyy-MM-dd"
-                    range-separator="至"
-                    start-placeholder="开始日期"
-                    end-placeholder="结束日期"
-                >
-                </el-date-picker> -->
-                <el-date-picker
-                    v-model="searchParams.dueTimeStart"
-                    type="date"
-                    format="yyyy-MM-dd"
-                    value-format="yyyy-MM-dd"
-                    placeholder="开始日期"
-                    class="dateRangeInput"
-                >
-                </el-date-picker>
-                <span class="dateSeparator">至</span>
-                <el-date-picker
-                    v-model="searchParams.dueTimeEnd"
-                    type="date"
-                    format="yyyy-MM-dd"
-                    value-format="yyyy-MM-dd"
-                    placeholder="结束日期"
-                    class="dateRangeInput"
-                >
-                </el-date-picker>
-            </template>
-            <template slot="searchBtn1">
-                <el-button type="primary" @click="doSearch">查询</el-button>
-            </template>
-            <template slot="searchBtn2">
-                <el-button type="primary" @click="reset">重置</el-button>
-            </template>
-        </search-layout>
+                        v-model="dueTimeRange"
+                        type="daterange"
+                        format="yyyy-MM-dd"
+                        value-format="yyyy-MM-dd"
+                        range-separator="至"
+                        start-placeholder="开始日期"
+                        end-placeholder="结束日期"
+                    >
+                            </el-date-picker> -->
+                    <el-date-picker v-model="searchParams.dueTimeStart" type="date" format="yyyy-MM-dd"
+                        value-format="yyyy-MM-dd" placeholder="开始日期" class="dateRangeInput">
+                    </el-date-picker>
+                    <span class="dateSeparator">至</span>
+                    <el-date-picker v-model="searchParams.dueTimeEnd" type="date" format="yyyy-MM-dd"
+                        value-format="yyyy-MM-dd" placeholder="结束日期" class="dateRangeInput">
+                    </el-date-picker>
+                </template>
+                <template slot="searchBtn1">
+                    <el-button type="primary" @click="doSearch(false)">查询</el-button>
+                </template>
+                <template slot="searchBtn2">
+                    <el-button type="primary" @click="reset">重置</el-button>
+                </template>
+            </search-layout>
 
         <!--<div class="btnsPanel">
-            <el-button
-                type="primary"
-                icon="el-icon-circle-plus-outline"
-                @click="addConfig"
-                >新建配置</el-button
-            >
-        </div>-->
-
-        <div style="border-top: none; margin: 30px 40px 10px 40px">
-            <span
-                >仿真软件已分配未到期节点数量:{{ totalSimulation }}
-                <span v-if="totalSimulationAll && totalSimulationAll >= 0">
-                    / {{ totalSimulationAll }}</span
-                >
-            </span>
-            <span style="margin-left: 20%"
-                >动力学软件已分配未到期节点数量:{{ totalDynamic }}
-                <span v-if="totalDynamicAll && totalDynamicAll >= 0">
-                    / {{ totalDynamicAll }}</span
+                <el-button
+                    type="primary"
+                    icon="el-icon-circle-plus-outline"
+                    @click="addConfig"
+                    >新建配置</el-button
                 >
-            </span>
-        </div>
-        <tableList
-            ref="table"
-            style="border-top: none; margin: 0 30px"
-            :columns="columns"
-            :getDataWay="getDataWay"
-            :pagination="pagination"
-            index
-        >
+                    </div>-->
+
+            <div style="border-top: none; margin: 30px 40px 10px 40px">
+                <span>仿真软件已分配未到期节点数量:{{ totalSimulation }}
+                    <span v-if="totalSimulationAll && totalSimulationAll >= 0">
+                        / {{ totalSimulationAll }}</span>
+                </span>
+                <span style="margin-left: 20%">动力学软件已分配未到期节点数量:{{ totalDynamic }}
+                    <span v-if="totalDynamicAll && totalDynamicAll >= 0">
+                        / {{ totalDynamicAll }}</span>
+                </span>
+            </div>
+            <tableList ref="table" style="border-top: none; margin: 0 30px" :columns="columns" :getDataWay="getDataWay"
+                :pagination="pagination" index>
             <!--<el-table-column label="独占类型" slot="useType" align="center">
-                <template v-slot="scope">
-                    <span>
-                        {{(useTypeList.find(item=>item.code==scope.row.useType)||{}).caption||''}}
-                    </span>
-                </template>
-            </el-table-column>-->
-            <el-table-column label="操作" slot="cgInfos" align="center">
-                <template v-slot="scope">
-                    <i
-                        @click="addMarkDia(scope.row)"
-                        class="el-icon-edit-outline elIcon"
-                    ></i>
-                </template>
-            </el-table-column>
-        </tableList>
+                    <template v-slot="scope">
+                        <span>
+                            {{(useTypeList.find(item=>item.code==scope.row.useType)||{}).caption||''}}
+                        </span>
+                    </template>
+                        </el-table-column>-->
+                <el-table-column label="操作" slot="cgInfos" align="center">
+                    <template v-slot="scope">
+                        <i @click="addMarkDia(scope.row)" class="el-icon-edit-outline elIcon"></i>
+                    </template>
+                </el-table-column>
+            </tableList>
+        </div>
+
+        <router-view v-show="$route.path.includes('clusteringDetail')"></router-view>
     </div>
 </template>
 
@@ -222,6 +185,17 @@ export default {
             },
         };
     },
+
+    watch: {
+        $route(to, from) {
+            if (to.name === "clusteringManagement") {
+                this.$nextTick(() => {
+                    this.doSearch(true);
+                });
+            }
+        },
+    },
+
     created() {
         //获取未到期已分配节点数量
         this.$axios({
@@ -237,13 +211,16 @@ export default {
             }
         });
     },
+
     async mounted() {
         await this.$dicsListsInit({
             useTypeList: "useType",
         });
     },
+
     methods: {
-        doSearch() {
+        // isBack为解决从详情回退时列表在当前页刷新
+        doSearch(isBack = false) {
             // this.searchParams.modifyTimeStart = this.modifyTimeRange[0] || "";
             // this.searchParams.modifyTimeEnd = this.modifyTimeRange[1] || "";
             // this.searchParams.dueTimeStart = this.dueTimeRange[0] || "";
@@ -290,7 +267,11 @@ export default {
                 modifyTimeEnd,
                 dueTimeStart,
                 dueTimeEnd,
+                resetPageNum: !isBack ? false : (this.pagination.currentPage || 1),
             };
+
+            if (!isBack) this.pagination.currentPage = 1;
+
             this.refreshList(pageMap);
         },
         reset() {
@@ -301,9 +282,12 @@ export default {
                 modifyTimeStart: "",
                 modifyTimeEnd: "",
             };
+            
             this.modifyTimeRange = [];
             this.dueTimeRange = [];
-            this.refreshList(this.searchParams);
+
+            this.doSearch();
+            // this.refreshList(this.searchParams);
         },
         refreshList(param) {
             param
@@ -316,6 +300,9 @@ export default {
             });
         },
         addMarkDia(row) {
+            this.$store.commit("getTabname", "clusteringDetailTabName", row.userName);
+            localStorage.setItem("clusteringDetailTabName", row.userName);
+
             let query = { ...row };
             this.$router.push({
                 path: "/clusteringDetail",

+ 1 - 1
src/views/systemManagement/parameterDetail.vue

@@ -69,7 +69,7 @@ import tableList from "@/components/grid/TableList";
 
 let maxCount = 0; // 用于校验
 export default {
-    name: "parameterDetail",
+    name: "parameterDetail", // 参数管理详情
     components: {tableList},
     data() {
         return {

+ 72 - 62
src/views/systemManagement/parameterManagement.vue

@@ -1,60 +1,49 @@
 <!--参数管理-->
 <template>
     <div>
-        <search-layout :needBox="true">
-            <template slot="searchItem1">
-                <span class="label">账户名称</span>
-                <el-input
-                    v-model="searchParams.userName"
-                    size="small"
-                    clearable
-                    placeholder="请输入"
-                    maxlength="60"
-                >
-                </el-input>
-            </template>
+        <div v-show="!$route.path.includes('parameterDetail')">
+            <search-layout :needBox="true">
+                <template slot="searchItem1">
+                    <span class="label">账户名称</span>
+                    <el-input v-model="searchParams.userName" size="small" clearable placeholder="请输入" maxlength="60"
+                        @keyup.enter.native="doSearch(false)">
+                    </el-input>
+                </template>
 
-            <template slot="searchBtn1">
-                <el-button type="primary" @click="doSearch">查询</el-button>
-            </template>
-            <template slot="searchBtn2">
-                <el-button type="primary" @click="doReset">重置</el-button>
-            </template>
-        </search-layout>
+                <template slot="searchBtn1">
+                    <el-button type="primary" @click="doSearch(false)">查询</el-button>
+                </template>
+                <template slot="searchBtn2">
+                    <el-button type="primary" @click="doReset">重置</el-button>
+                </template>
+            </search-layout>
 
-        <div class="myTabsBox myTabsBoxThreeTabs">
+            <div class="myTabsBox myTabsBoxThreeTabs">
             <!--<el-button
-                v-bind:class="{ addBtn: true}"
-                icon="el-icon-circle-plus-outline"
-                @click="addOne"
-                type="primary"
-                >新增参数配置</el-button
-            >-->
-        </div>
+                    v-bind:class="{ addBtn: true}"
+                    icon="el-icon-circle-plus-outline"
+                    @click="addOne"
+                    type="primary"
+                    >新增参数配置</el-button
+                            >-->
+            </div>
 
-        <tableList
-            ref="table"
-            style="margin: 0 30px"
-            :columns="columns"
-            :getDataWay="getDataWay"
-            :pagination="pagination"
-            index
-        >
-            <el-table-column label="操作" slot="cgInfos" align="center">
-                <template v-slot="scope">
-                    <i
-                        @click="editRow(scope.row)"
-                        class="el-icon-edit-outline elIcon"
-                        title="编辑"
-                    ></i>
+            <tableList ref="table" style="margin: 0 30px" :columns="columns" :getDataWay="getDataWay"
+                :pagination="pagination" index>
+                <el-table-column label="操作" slot="cgInfos" align="center">
+                    <template v-slot="scope">
+                        <i @click="editRow(scope.row)" class="el-icon-edit-outline elIcon" title="编辑"></i>
                     <!--<i
-                        @click="delOne(scope.row)"
-                        class="el-icon-delete elIcon"
-                        title="删除"
-                    ></i>-->
-                </template>
-            </el-table-column>
-        </tableList>
+                            @click="delOne(scope.row)"
+                            class="el-icon-delete elIcon"
+                            title="删除"
+                                    ></i>-->
+                    </template>
+                </el-table-column>
+            </tableList>
+        </div>
+
+        <router-view v-show="$route.path.includes('parameterDetail')"></router-view>
     </div>
 </template>
 
@@ -62,16 +51,16 @@
 import searchLayout from "@/components/grid/searchLayout";
 import tableList from "@/components/grid/TableList";
 
-export default{
-    name: "parameterManagement",
+export default {
+    name: "parameterManagement", // 参数管理
     components: { searchLayout, tableList },
     data() {
         return {
             searchParams: {
                 //搜索参数
-                userName:''
+                userName: ''
             },
-            getDataWay:{
+            getDataWay: {
                 dataType: "url",
                 type: "post",
                 data: this.$api.systemManagement.getParameterList,
@@ -118,11 +107,28 @@ export default{
             },
         };
     },
+
+    watch: {
+        $route(to, from) {
+            if (to.name === "parameterManagement") {
+                this.$nextTick(() => {
+                    this.doSearch(true);
+                });
+            }
+        },
+    },
+
     methods: {
-        doSearch() {
-            this.$nextTick(() => {
-                this.refreshList(this.searchParams);
-            });
+        // isBack为解决从详情回退时列表在当前页刷新
+        doSearch(isBack = false) {
+            let pageMap = {
+                ...this.searchParams,
+                resetPageNum: !isBack ? false : (this.pagination.currentPage || 1),
+            };
+
+            if (!isBack) this.pagination.currentPage = 1;
+
+            this.refreshList(pageMap);
         },
         refreshList(param) {
             param
@@ -131,7 +137,7 @@ export default{
         },
         doReset() {
             this.searchParams = {
-                userName:''
+                userName: ''
             };
             this.doSearch();
         },
@@ -139,7 +145,10 @@ export default{
             this.$router.push("/parameterDetail")
         },
         editRow(row) {
-            let query = {...row}
+            this.$store.commit("getTabname", "parameterDetailTabName", row.userName);
+            localStorage.setItem("parameterDetailTabName", row.userName);
+
+            let query = { ...row }
             this.$router.push({
                 path: 'parameterDetail',
                 query
@@ -151,7 +160,7 @@ export default{
                 cancelButtonText: "取消",
                 type: "warning",
             }).then(() => {
-                
+
             });
         },
     },
@@ -169,7 +178,8 @@ export default{
         top: 45px;
     }
 }
-.myTabsBox{
-    min-height:29px;
+
+.myTabsBox {
+    min-height: 29px;
 }
 </style>

+ 30 - 141
src/views/systemManagement/sceneLibraryManagement/generalizationScene.vue

@@ -2,74 +2,31 @@
     <div class="generalizationScenarioListPanel">
         <search-layout :needBox="true">
             <template slot="searchItem1">
-                <span class="label">场景类型编号</span>
-                <el-input
-                    v-model="searchParams.sceneId"
-                    size="small"
-                    clearable
-                    placeholder="请输入"
-                    maxlength="60"
-                    @keyup.enter.native="doSearch"
-                >
+                <span class="label">场景编号</span>
+                <el-input v-model="searchParams.sceneId" size="small" clearable placeholder="请输入" maxlength="60"
+                    @keyup.enter.native="doSearch">
                 </el-input>
             </template>
             <template slot="searchItem2">
                 <span class="label">功能模块</span>
-                <el-select
-                    v-model="searchParams.fileName"
-                    multiple
-                    clearable
-                    size="small"
-                >
-                    <el-option
-                        v-for="item in fileNameList"
-                        :label="item.caption"
-                        :value="item.code"
-                        :key="item.code"
-                    ></el-option>
+                <el-select v-model="searchParams.fileName" multiple clearable size="small">
+                    <el-option v-for="item in fileNameList" :label="item.caption" :value="item.code"
+                        :key="item.code"></el-option>
                 </el-select>
             </template>
             <template slot="searchItem3">
                 <span class="label">道路类型</span>
-                <el-select
-                    v-model="searchParams.scenarioRoadType"
-                    multiple
-                    size="small"
-                    clearable
-                >
-                    <el-option
-                        v-for="item in scenarioRoadTypeList"
-                        :label="item.caption"
-                        :value="item.code"
-                        :key="item.code"
-                    ></el-option>
-                </el-select>
-            </template>
-            <!-- <template slot="searchItem3">
-                <span class="label">天气</span>
-                <el-select
-                    v-model="searchParams.scenarioWeather"
-                    multiple
-                    clearable
-                    size="small"
-                >
-                    <el-option
-                        v-for="item in scenarioWeatherList"
-                        :label="item.caption"
-                        :value="item.code"
-                        :key="item.code"
-                    ></el-option>
+                <el-select v-model="searchParams.scenarioRoadType" multiple size="small" clearable>
+                    <el-option v-for="item in scenarioRoadTypeList" :label="item.caption" :value="item.code"
+                        :key="item.code"></el-option>
                 </el-select>
             </template>
             <template slot="searchItem4">
-                <span class="label">时间</span>
-                <el-time-picker
-                    v-model="searchParams.scenarioTime"
-                    value-format="HH:mm:ss"
-                    placeholder="时间"
-                >
-                </el-time-picker>
-            </template> -->
+                <span class="label">场景简述</span>
+                <el-input v-model="searchParams.scenarioResume" size="small" clearable placeholder="请输入" maxlength="300"
+                    @keyup.enter.native="doSearch">
+                </el-input>
+            </template>
             <template slot="searchBtn1">
                 <el-button type="primary" @click="doSearch">查询</el-button>
             </template>
@@ -79,88 +36,29 @@
         </search-layout>
 
         <div class="btnsPanel">
-            <el-button
-                type="primary"
-                plain
-                icon="el-icon-delete"
-                @click="delRows"
-                >批量删除</el-button
-            >
+            <el-button type="primary" plain icon="el-icon-delete" @click="delRows">批量删除</el-button>
         </div>
 
-        <tableList
-            ref="table"
-            style="margin: 0 30px"
-            :columns="columns"
-            :getDataWay="getDataWay"
-            :pagination="pagination"
-            :checkedData="checkedArr"
-            selection
-            index
-        >
-            <!-- <tableList
-            ref="table"
-            style="margin: 30px"
-            :columns="columns"
-            :getDataWay="getDataWay"
-            :pagination="pagination"
-            index
-        > -->
-            <el-table-column
-                label="操作"
-                slot="cgInfos"
-                align="center"
-                width="180"
-            >
+        <tableList ref="table" style="margin: 0 30px" :columns="columns" :getDataWay="getDataWay" :pagination="pagination"
+            :checkedData="checkedArr" selection index>
+            <el-table-column label="操作" slot="cgInfos" align="center" width="180">
                 <template v-slot="scope">
-                    <i
-                        @click="viewRow(scope.row)"
-                        class="el-icon-view elIcon cursor"
-                        title="查看模板"
-                    >
+                    <i @click="viewRow(scope.row)" class="el-icon-view elIcon cursor" title="查看模板">
                     </i>
-                    <i
-                        @click="delRow(scope.row)"
-                        class="el-icon-delete elIcon"
-                        title="删除"
-                    >
+                    <i @click="delRow(scope.row)" class="el-icon-delete elIcon" title="删除">
                     </i>
                 </template>
             </el-table-column>
         </tableList>
 
-        <el-dialog
-            v-if="generalizationVisible"
-            :visible.sync="generalizationVisible"
-            title="泛化模板"
-            width="90%"
-            class="generalizationDia"
-            :close-on-click-modal="false"
-            :close-on-press-escape="false"
-            :before-close="generalizationCancel"
-        >
+        <el-dialog v-if="generalizationVisible" :visible.sync="generalizationVisible" title="泛化模板" width="90%"
+            class="generalizationDia" :close-on-click-modal="false" :close-on-press-escape="false"
+            :before-close="generalizationCancel">
             <div>
-                <generalization-detail
-                    ref="generalizationDetail"
-                    :disabled="true"
-                    :id="generalizationId"
-                    :genUrlType="1"
-                ></generalization-detail>
+                <generalization-detail ref="generalizationDetail" :disabled="true" :id="generalizationId"
+                    :genUrlType="1"></generalization-detail>
             </div>
         </el-dialog>
-
-        <!-- <el-dialog
-            :title="videoDiaTitle"
-            :visible.sync="dialogVisible"
-            width="690px"
-            :close-on-click-modal="false"
-            :close-on-press-escape="false"
-            :before-close="diaClose"
-        >
-            <div class="videoBox">
-                <video autoplay :src="videoSrc" controls></video>
-            </div>
-        </el-dialog> -->
     </div>
 </template>
 
@@ -177,12 +75,11 @@ export default {
         return {
             searchParams: {
                 //搜索参数
-                sceneId: "", // 场景类型编号
+                sceneId: "", // 场景编号
                 fileName: [], // 功能模块
                 scenarioRoadType: [], // 道路类型
+                scenarioResume: "", // 场景简述
                 share: "0",
-                // scenarioWeather: [], // 天气
-                // scenarioTime: "", // 时间
             },
             labels: [],
             fileNameList: [],
@@ -195,7 +92,7 @@ export default {
             columns: [
                 //表格列
                 {
-                    label: "编号",
+                    label: "场景编号",
                     prop: "sceneId",
                 },
                 {
@@ -214,14 +111,6 @@ export default {
                     label: "场景简述",
                     prop: "scenarioResume",
                 },
-                // {
-                //     label: "时间",
-                //     prop: "scenarioTime",
-                // },
-                // {
-                //     label: "天气",
-                //     prop: "scenarioWeather",
-                // },
                 {
                     label: "操作",
                     prop: "cgInfos",
@@ -286,9 +175,8 @@ export default {
                 sceneId: "",
                 fileName: [],
                 scenarioRoadType: [],
+                scenarioResume: "",
                 share: "0",
-                // scenarioWeather: [],
-                // scenarioTime: "",
             };
             this.labels = [];
             this.doSearch();
@@ -408,6 +296,7 @@ export default {
 
 <style lang='less' scoped>
 @import "./common/util.less";
+
 .generalizationScenarioListPanel {
     .inputBox {
         .label {

+ 4 - 4
src/views/systemManagement/scenePacketDistributionDetail.vue

@@ -284,10 +284,10 @@ export default {
                     });
 
                     this.total =
-                        this.zrSceneNames +
-                        this.bzSceneNames +
-                        this.jtSceneNames +
-                        this.fhSceneNames;
+                        (+this.zrSceneNames) +
+                        (+this.bzSceneNames) +
+                        (+this.jtSceneNames) +
+                        (+this.fhSceneNames);
                 } else {
                     this.$message.error(res.message || "获取信息失败");
                 }

+ 66 - 78
src/views/systemManagement/scenePacketDistributionList.vue

@@ -1,82 +1,53 @@
 <template>
     <div>
-        <search-layout :needBox="true">
-            <template slot="searchItem1">
-                <span class="label">账户名称</span>
-                <el-input
-                    v-model="searchParams.userName"
-                    size="small"
-                    clearable
-                    placeholder="请输入"
-                    maxlength="60"
-                    @keyup.enter.native="doSearch"
-                >
-                </el-input>
-            </template>
-            <template slot="searchItem2">
-                <span class="label">操作时间</span>
-                <!-- <el-date-picker
-                    v-model="createDate"
-                    type="daterange"
-                    format="yyyy-MM-dd"
-                    value-format="yyyy-MM-dd"
-                    range-separator="至"
-                    start-placeholder="开始日期"
-                    end-placeholder="结束日期"
-                >
-                </el-date-picker> -->
-                <el-date-picker
-                    v-model="searchParams.yearMin"
-                    type="date"
-                    format="yyyy-MM-dd"
-                    value-format="yyyy-MM-dd"
-                    placeholder="开始日期"
-                    class="dateRangeInput"
-                >
-                </el-date-picker>
-                <span class="dateSeparator">至</span>
-                <el-date-picker
-                    v-model="searchParams.yearMax"
-                    type="date"
-                    format="yyyy-MM-dd"
-                    value-format="yyyy-MM-dd"
-                    placeholder="结束日期"
-                    class="dateRangeInput"
-                >
-                </el-date-picker>
-            </template>
-
-            <template slot="searchBtn1">
-                <el-button type="primary" @click="doSearch">查询</el-button>
-            </template>
-            <template slot="searchBtn2">
-                <el-button type="primary" @click="doReset">重置</el-button>
-            </template>
-        </search-layout>
+        <div v-show="!$route.path.includes('scenePacketDistributionDetail')">
+            <search-layout :needBox="true">
+                <template slot="searchItem1">
+                    <span class="label">账户名称</span>
+                    <el-input v-model="searchParams.userName" size="small" clearable placeholder="请输入" maxlength="60"
+                        @keyup.enter.native="doSearch(false)">
+                    </el-input>
+                </template>
+                <template slot="searchItem2">
+                    <span class="label">操作时间</span>
+                    <!-- <el-date-picker
+                        v-model="createDate"
+                        type="daterange"
+                        format="yyyy-MM-dd"
+                        value-format="yyyy-MM-dd"
+                        range-separator="至"
+                        start-placeholder="开始日期"
+                        end-placeholder="结束日期"
+                    >
+                    </el-date-picker> -->
+                    <el-date-picker v-model="searchParams.yearMin" type="date" format="yyyy-MM-dd" value-format="yyyy-MM-dd"
+                        placeholder="开始日期" class="dateRangeInput">
+                    </el-date-picker>
+                    <span class="dateSeparator">至</span>
+                    <el-date-picker v-model="searchParams.yearMax" type="date" format="yyyy-MM-dd" value-format="yyyy-MM-dd"
+                        placeholder="结束日期" class="dateRangeInput">
+                    </el-date-picker>
+                </template>
 
-        <tableList
-            ref="table"
-            style="margin: 30px"
-            :columns="columns"
-            :getDataWay="getDataWay"
-            :pagination="pagination"
-            index
-        >
-            <el-table-column
-                label="操作"
-                slot="cgInfos"
-                align="center"
-                width="100"
-            >
-                <template v-slot="scope">
-                    <i
-                        @click="editRow(scope.row.userName)"
-                        class="el-icon-edit-outline elIcon"
-                        title="编辑"
-                    ></i>
+                <template slot="searchBtn1">
+                    <el-button type="primary" @click="doSearch(false)">查询</el-button>
+                </template>
+                <template slot="searchBtn2">
+                    <el-button type="primary" @click="doReset">重置</el-button>
                 </template>
-            </el-table-column>
-        </tableList>
+            </search-layout>
+
+            <tableList ref="table" style="margin: 30px" :columns="columns" :getDataWay="getDataWay" :pagination="pagination"
+                index>
+                <el-table-column label="操作" slot="cgInfos" align="center" width="100">
+                    <template v-slot="scope">
+                        <i @click="editRow(scope.row.userName)" class="el-icon-edit-outline elIcon" title="编辑"></i>
+                    </template>
+                </el-table-column>
+            </tableList>
+        </div>
+
+        <router-view v-show="$route.path.includes('scenePacketDistributionDetail')"></router-view>
     </div>
 </template>
 
@@ -135,8 +106,19 @@ export default {
         };
     },
 
+    watch: {
+        $route(to, from) {
+            if (to.name === "scenePacketDistributionList") {
+                this.$nextTick(() => {
+                    this.doSearch(true);
+                });
+            }
+        },
+    },
+
     methods: {
-        doSearch() {
+        // isBack为解决从详情回退时列表在当前页刷新
+        doSearch(isBack = false) {
             let yearMin = "";
             if (this.searchParams.yearMin) {
                 yearMin = `${this.searchParams.yearMin} 00:00:00`;
@@ -156,7 +138,11 @@ export default {
                 userName: this.searchParams.userName,
                 yearMin,
                 yearMax,
+                resetPageNum: !isBack ? false : (this.pagination.currentPage || 1),
             };
+
+            if (!isBack) this.pagination.currentPage = 1;
+
             this.refreshList(pageMap);
         },
         //刷新table
@@ -175,6 +161,9 @@ export default {
             this.doSearch();
         },
         editRow(userName) {
+            this.$store.commit("getTabname", "scenePacketDistributionDetailTabName", userName);
+            localStorage.setItem("scenePacketDistributionDetailTabName", userName);
+
             this.$router.push({
                 path: "/scenePacketDistributionDetail",
                 query: { userName },
@@ -186,5 +175,4 @@ export default {
 };
 </script>
 
-<style lang='less' scoped>
-</style>
+<style lang='less' scoped></style>

+ 24 - 90
src/views/systemManagement/scenePacketListManagement/generalizationList.vue

@@ -2,74 +2,31 @@
     <div>
         <search-layout>
             <template slot="searchItem1">
-                <span class="label">场景类型编号</span>
-                <el-input
-                    v-model="searchParams.sceneId"
-                    size="small"
-                    clearable
-                    placeholder="请输入"
-                    maxlength="60"
-                    @keyup.enter.native="doSearch"
-                >
+                <span class="label">场景编号</span>
+                <el-input v-model="searchParams.sceneId" size="small" clearable placeholder="请输入" maxlength="60"
+                    @keyup.enter.native="doSearch">
                 </el-input>
             </template>
             <template slot="searchItem2">
                 <span class="label">功能模块</span>
-                <el-select
-                    v-model="searchParams.fileName"
-                    multiple
-                    clearable
-                    size="small"
-                >
-                    <el-option
-                        v-for="item in fileNameList"
-                        :label="item.caption"
-                        :value="item.code"
-                        :key="item.code"
-                    ></el-option>
+                <el-select v-model="searchParams.fileName" multiple clearable size="small">
+                    <el-option v-for="item in fileNameList" :label="item.caption" :value="item.code"
+                        :key="item.code"></el-option>
                 </el-select>
             </template>
             <template slot="searchItem3">
                 <span class="label">道路类型</span>
-                <el-select
-                    v-model="searchParams.scenarioRoadType"
-                    multiple
-                    size="small"
-                    clearable
-                >
-                    <el-option
-                        v-for="item in scenarioRoadTypeList"
-                        :label="item.caption"
-                        :value="item.code"
-                        :key="item.code"
-                    ></el-option>
-                </el-select>
-            </template>
-            <!-- <template slot="searchItem3">
-                <span class="label">天气</span>
-                <el-select
-                    v-model="searchParams.scenarioWeather"
-                    multiple
-                    clearable
-                    size="small"
-                >
-                    <el-option
-                        v-for="item in scenarioWeatherList"
-                        :label="item.caption"
-                        :value="item.code"
-                        :key="item.code"
-                    ></el-option>
+                <el-select v-model="searchParams.scenarioRoadType" multiple size="small" clearable>
+                    <el-option v-for="item in scenarioRoadTypeList" :label="item.caption" :value="item.code"
+                        :key="item.code"></el-option>
                 </el-select>
             </template>
             <template slot="searchItem4">
-                <span class="label">时间</span>
-                <el-time-picker
-                    v-model="searchParams.scenarioTime"
-                    value-format="HH:mm:ss"
-                    placeholder="时间"
-                >
-                </el-time-picker>
-            </template> -->
+                <span class="label">场景简述</span>
+                <el-input v-model="searchParams.scenarioResume" size="small" clearable placeholder="请输入" maxlength="300"
+                    @keyup.enter.native="doSearch">
+                </el-input>
+            </template>
             <template slot="searchBtn1">
                 <el-button type="primary" @click="doSearch">查询</el-button>
             </template>
@@ -78,24 +35,12 @@
             </template>
         </search-layout>
         <div class="isSelected">
-            <el-checkbox v-model="selected" @change="selectedShow"
-                >已选择</el-checkbox
-            >
+            <el-checkbox v-model="selected" @change="selectedShow">已选择</el-checkbox>
         </div>
-        <tableList
-            ref="table"
-            :columns="columns"
-            :getDataWay="getDataWay"
-            :pagination="pagination"
-            :checkedData="checkedArr"
-            :needLoadedCallBack="true"
-            :loadedCallBack="loadedCallBack"
-            :needSelectedCallBack="true"
-            :selectedCallBack="selectedCallBack"
-            :selectedAllCallBack="selectedAllCallBack"
-            index
-            selection
-        >
+        <tableList ref="table" :columns="columns" :getDataWay="getDataWay" :pagination="pagination"
+            :checkedData="checkedArr" :needLoadedCallBack="true" :loadedCallBack="loadedCallBack"
+            :needSelectedCallBack="true" :selectedCallBack="selectedCallBack" :selectedAllCallBack="selectedAllCallBack"
+            index selection>
         </tableList>
     </div>
 </template>
@@ -110,12 +55,11 @@ export default {
         return {
             searchParams: {
                 //搜索参数
-                sceneId: "", // 场景类型编号
+                sceneId: "", // 场景编号
                 fileName: [], // 功能模块
                 scenarioRoadType: [], // 道路类型
+                scenarioResume: "", // 场景简述
                 share: "0",
-                // scenarioWeather: [], // 天气
-                // scenarioTime: "", // 时间
             },
             labels: [],
             fileNameList: [],
@@ -127,7 +71,7 @@ export default {
             columns: [
                 //表格列
                 {
-                    label: "编号",
+                    label: "场景编号",
                     prop: "sceneId",
                 },
                 {
@@ -146,14 +90,6 @@ export default {
                     label: "场景简述",
                     prop: "scenarioResume",
                 },
-                // {
-                //     label: "时间",
-                //     prop: "scenarioTime",
-                // },
-                // {
-                //     label: "天气",
-                //     prop: "scenarioWeather",
-                // },
             ],
             getDataWay: {
                 //加载表格数据
@@ -185,9 +121,8 @@ export default {
                 sceneId: "",
                 fileName: [],
                 scenarioRoadType: [],
+                scenarioResume: "",
                 share: "0",
-                // scenarioWeather: [],
-                // scenarioTime: "",
             };
             this.doSearch();
         },
@@ -219,5 +154,4 @@ export default {
 };
 </script>
 
-<style lang='less' scoped>
-</style>
+<style lang='less' scoped></style>

+ 173 - 150
src/views/systemManagement/scenePacketListManagement/index.vue

@@ -1,163 +1,167 @@
 <template>
     <div>
-        <search-layout :needBox="true">
-            <template slot="searchItem1">
-                <span class="label">场景包名称</span>
-                <el-input
-                    v-model="searchParams.packageName"
-                    size="small"
-                    clearable
-                    placeholder="请输入"
-                    maxlength="60"
-                    @keyup.enter.native="doSearch"
-                >
-                </el-input>
-            </template>
-            <template slot="searchItem2">
-                <span class="label">操作时间</span>
-                <!-- <el-date-picker
-                    v-model="createDate"
-                    type="daterange"
-                    format="yyyy-MM-dd"
-                    value-format="yyyy-MM-dd"
-                    range-separator="至"
-                    start-placeholder="开始日期"
-                    end-placeholder="结束日期"
-                >
-                </el-date-picker> -->
-                <el-date-picker
-                    v-model="searchParams.yearMin"
-                    type="date"
-                    format="yyyy-MM-dd"
-                    value-format="yyyy-MM-dd"
-                    placeholder="开始日期"
-                    class="dateRangeInput"
-                >
-                </el-date-picker>
-                <span class="dateSeparator">至</span>
-                <el-date-picker
-                    v-model="searchParams.yearMax"
-                    type="date"
-                    format="yyyy-MM-dd"
-                    value-format="yyyy-MM-dd"
-                    placeholder="结束日期"
-                    class="dateRangeInput"
+        <div v-show="!$route.path.includes('scenePacketDetail')">
+            <search-layout :needBox="true">
+                <template slot="searchItem1">
+                    <span class="label">场景包名称</span>
+                    <el-input
+                        v-model="searchParams.packageName"
+                        size="small"
+                        clearable
+                        placeholder="请输入"
+                        maxlength="60"
+                        @keyup.enter.native="doSearch(false)"
+                    >
+                    </el-input>
+                </template>
+                <template slot="searchItem2">
+                    <span class="label">操作时间</span>
+                    <!-- <el-date-picker
+                        v-model="createDate"
+                        type="daterange"
+                        format="yyyy-MM-dd"
+                        value-format="yyyy-MM-dd"
+                        range-separator="至"
+                        start-placeholder="开始日期"
+                        end-placeholder="结束日期"
+                    >
+                    </el-date-picker> -->
+                    <el-date-picker
+                        v-model="searchParams.yearMin"
+                        type="date"
+                        format="yyyy-MM-dd"
+                        value-format="yyyy-MM-dd"
+                        placeholder="开始日期"
+                        class="dateRangeInput"
+                    >
+                    </el-date-picker>
+                    <span class="dateSeparator">至</span>
+                    <el-date-picker
+                        v-model="searchParams.yearMax"
+                        type="date"
+                        format="yyyy-MM-dd"
+                        value-format="yyyy-MM-dd"
+                        placeholder="结束日期"
+                        class="dateRangeInput"
+                    >
+                    </el-date-picker>
+                </template>
+    
+                <template slot="searchBtn1">
+                    <el-button type="primary" @click="doSearch(false)">查询</el-button>
+                </template>
+                <template slot="searchBtn2">
+                    <el-button type="primary" @click="doReset">重置</el-button>
+                </template>
+            </search-layout>
+    
+            <div class="btnsPanel">
+                <el-button
+                    type="primary"
+                    icon="el-icon-circle-plus-outline"
+                    @click="addOne"
+                    >新增</el-button
                 >
-                </el-date-picker>
-            </template>
-
-            <template slot="searchBtn1">
-                <el-button type="primary" @click="doSearch">查询</el-button>
-            </template>
-            <template slot="searchBtn2">
-                <el-button type="primary" @click="doReset">重置</el-button>
-            </template>
-        </search-layout>
-
-        <div class="btnsPanel">
-            <el-button
-                type="primary"
-                icon="el-icon-circle-plus-outline"
-                @click="addOne"
-                >新增</el-button
+            </div>
+    
+            <tableList
+                ref="table"
+                style="margin: 0 30px"
+                :columns="columns"
+                :getDataWay="getDataWay"
+                :pagination="pagination"
+                index
             >
-        </div>
-
-        <tableList
-            ref="table"
-            style="margin: 0 30px"
-            :columns="columns"
-            :getDataWay="getDataWay"
-            :pagination="pagination"
-            index
-        >
-            <el-table-column label="操作" slot="cgInfos" align="center">
-                <template v-slot="scope">
-                    <i
-                        @click="editRow(scope.row)"
-                        class="el-icon-edit-outline elIcon"
-                        title="编辑"
-                    ></i>
-                    <i
-                        @click="delRow(scope.row.id, scope.row.packageName)"
-                        class="el-icon-delete elIcon"
-                        title="删除"
-                    ></i>
-                    <i
-                        @click="handleRow(scope.row)"
-                        class="el-icon-setting elIcon"
-                        title="配置账户"
-                    ></i>
-                </template>
-            </el-table-column>
-        </tableList>
-
-        <el-dialog
-            title="账户分配"
-            :visible.sync="dialogVisible"
-            width="780px"
-            :close-on-click-modal="false"
-            :close-on-press-escape="false"
-            :before-close="cancelDown"
-        >
-            <div class="infoBox">
-                <div class="info">
-                    <span>场景包名称:</span>
-                    <b>{{ packetInfo.packageName }}</b>
-                </div>
-                <div class="info">
-                    <span>场景包描述:</span>
-                    <b>{{ packetInfo.sceneDescribe }}</b>
-                </div>
-                <div class="boxA">
+                <el-table-column label="操作" slot="cgInfos" align="center">
+                    <template v-slot="scope">
+                        <i
+                            @click="editRow(scope.row)"
+                            class="el-icon-edit-outline elIcon"
+                            title="编辑"
+                        ></i>
+                        <i
+                            @click="delRow(scope.row.id, scope.row.packageName)"
+                            class="el-icon-delete elIcon"
+                            title="删除"
+                        ></i>
+                        <i
+                            @click="handleRow(scope.row)"
+                            class="el-icon-setting elIcon"
+                            title="配置账户"
+                        ></i>
+                    </template>
+                </el-table-column>
+            </tableList>
+    
+            <el-dialog
+                title="账户分配"
+                :visible.sync="dialogVisible"
+                width="780px"
+                :close-on-click-modal="false"
+                :close-on-press-escape="false"
+                :before-close="cancelDown"
+            >
+                <div class="infoBox">
                     <div class="info">
-                        <span>自然驾驶场景:</span>
-                        <b>{{
-                            packetInfo.zrSceneNames
-                                ? packetInfo.zrSceneNames.length
-                                : 0
-                        }}</b>
+                        <span>场景包名称:</span>
+                        <b>{{ packetInfo.packageName }}</b>
                     </div>
                     <div class="info">
-                        <span>交通事故场景:</span>
-                        <b>{{
-                            packetInfo.jtSceneNames
-                                ? packetInfo.jtSceneNames.length
-                                : 0
-                        }}</b>
+                        <span>场景包描述:</span>
+                        <b>{{ packetInfo.sceneDescribe }}</b>
                     </div>
-                </div>
-                <div class="boxA">
-                    <div class="info">
-                        <span>标准法规场景:</span>
-                        <b>{{
-                            packetInfo.bzSceneNames
-                                ? packetInfo.bzSceneNames.length
-                                : 0
-                        }}</b>
+                    <div class="boxA">
+                        <div class="info">
+                            <span>自然驾驶场景:</span>
+                            <b>{{
+                                packetInfo.zrSceneNames
+                                    ? packetInfo.zrSceneNames.length
+                                    : 0
+                            }}</b>
+                        </div>
+                        <div class="info">
+                            <span>交通事故场景:</span>
+                            <b>{{
+                                packetInfo.jtSceneNames
+                                    ? packetInfo.jtSceneNames.length
+                                    : 0
+                            }}</b>
+                        </div>
                     </div>
-                    <div class="info">
-                        <span>泛化场景模板:</span>
-                        <b>{{
-                            packetInfo.fhSceneNames
-                                ? packetInfo.fhSceneNames.length
-                                : 0
-                        }}</b>
+                    <div class="boxA">
+                        <div class="info">
+                            <span>标准法规场景:</span>
+                            <b>{{
+                                packetInfo.bzSceneNames
+                                    ? packetInfo.bzSceneNames.length
+                                    : 0
+                            }}</b>
+                        </div>
+                        <div class="info">
+                            <span>泛化场景模板:</span>
+                            <b>{{
+                                packetInfo.fhSceneNames
+                                    ? packetInfo.fhSceneNames.length
+                                    : 0
+                            }}</b>
+                        </div>
+                    </div>
+                    <div class="transferBox">
+                        <el-transfer
+                            v-model="transferValue"
+                            :data="transferData"
+                            :titles="['未分配', '已分配']"
+                            @change="selectUserChange"
+                        ></el-transfer>
                     </div>
                 </div>
-                <div class="transferBox">
-                    <el-transfer
-                        v-model="transferValue"
-                        :data="transferData"
-                        :titles="['未分配', '已分配']"
-                        @change="selectUserChange"
-                    ></el-transfer>
-                </div>
-            </div>
-            <span slot="footer">
-                <el-button type="primary" @click="cancelDown">关 闭</el-button>
-            </span>
-        </el-dialog>
+                <span slot="footer">
+                    <el-button type="primary" @click="cancelDown">关 闭</el-button>
+                </span>
+            </el-dialog>
+        </div>
+
+        <router-view v-show="$route.path.includes('scenePacketDetail')"></router-view>
     </div>
 </template>
 
@@ -242,8 +246,20 @@ export default {
             curRow: "", // 当前操作row
         };
     },
+
+    watch: {
+        $route(to, from) {
+            if (to.name === "scenePacketListManagement") {
+                this.$nextTick(() => {
+                    this.doSearch(true);
+                });
+            }
+        },
+    },
+
     methods: {
-        doSearch() {
+        // isBack为解决从详情回退时列表在当前页刷新
+        doSearch(isBack = false) {
             let yearMin = "";
             if (this.searchParams.yearMin) {
                 yearMin = `${this.searchParams.yearMin} 00:00:00`;
@@ -263,7 +279,11 @@ export default {
                 packageName: this.searchParams.packageName,
                 yearMin,
                 yearMax,
+                resetPageNum: !isBack ? false : (this.pagination.currentPage || 1),
             };
+
+            if (!isBack) this.pagination.currentPage = 1;
+
             this.refreshList(pageMap);
         },
         //刷新table
@@ -285,6 +305,9 @@ export default {
             this.$router.push({ path: "/scenePacketDetail" });
         },
         editRow(row) {
+            this.$store.commit("getTabname", "scenePacketDetailTabName", row.packageName);
+            localStorage.setItem("scenePacketDetailTabName", row.packageName);
+
             this.$router.push({
                 path: "/scenePacketDetail",
                 query: {

+ 61 - 67
src/views/systemManagement/vehicleModelManagement.vue

@@ -1,71 +1,44 @@
 <template>
     <div>
-        <search-layout :needBox="true">
-            <template slot="searchItem1">
-                <span class="label">车辆模型标识</span>
-                <el-input
-                    v-model="searchParams.modelLabel"
-                    size="small"
-                    clearable
-                    placeholder="请输入"
-                    maxlength="60"
-                    @keyup.enter.native="doSearch"
-                >
-                </el-input>
-            </template>
-            <template slot="searchItem2">
-                <span class="label">车辆类型</span>
-                <el-input
-                    v-model="searchParams.vehicleType"
-                    size="small"
-                    clearable
-                    placeholder="请输入"
-                    maxlength="60"
-                    @keyup.enter.native="doSearch"
-                >
-                </el-input>
-            </template>
+        <div v-show="!$route.path.includes('vehicleModelDetail')">
+            <search-layout :needBox="true">
+                <template slot="searchItem1">
+                    <span class="label">车辆模型标识</span>
+                    <el-input v-model="searchParams.modelLabel" size="small" clearable placeholder="请输入" maxlength="60"
+                        @keyup.enter.native="doSearch(false)">
+                    </el-input>
+                </template>
+                <template slot="searchItem2">
+                    <span class="label">车辆类型</span>
+                    <el-input v-model="searchParams.vehicleType" size="small" clearable placeholder="请输入" maxlength="60"
+                        @keyup.enter.native="doSearch(false)">
+                    </el-input>
+                </template>
 
-            <template slot="searchBtn1">
-                <el-button type="primary" @click="doSearch">查询</el-button>
-            </template>
-            <template slot="searchBtn2">
-                <el-button type="primary" @click="doReset">重置</el-button>
-            </template>
-        </search-layout>
+                <template slot="searchBtn1">
+                    <el-button type="primary" @click="doSearch(false)">查询</el-button>
+                </template>
+                <template slot="searchBtn2">
+                    <el-button type="primary" @click="doReset">重置</el-button>
+                </template>
+            </search-layout>
 
-        <div class="btnsPanel">
-            <el-button
-                type="primary"
-                icon="el-icon-circle-plus-outline"
-                @click="addOne"
-                >新增</el-button
-            >
+            <div class="btnsPanel">
+                <el-button type="primary" icon="el-icon-circle-plus-outline" @click="addOne">新增</el-button>
+            </div>
+
+            <tableList ref="table" style="margin: 0 30px" :columns="columns" :getDataWay="getDataWay"
+                :pagination="pagination" index>
+                <el-table-column label="操作" slot="cgInfos" align="center">
+                    <template v-slot="scope">
+                        <i @click="editRow(scope.row)" class="el-icon-edit-outline elIcon" title="编辑"></i>
+                        <i @click="delRow(scope.row.id)" class="el-icon-delete elIcon" title="删除"></i>
+                    </template>
+                </el-table-column>
+            </tableList>
         </div>
 
-        <tableList
-            ref="table"
-            style="margin: 0 30px"
-            :columns="columns"
-            :getDataWay="getDataWay"
-            :pagination="pagination"
-            index
-        >
-            <el-table-column label="操作" slot="cgInfos" align="center">
-                <template v-slot="scope">
-                    <i
-                        @click="editRow(scope.row.id)"
-                        class="el-icon-edit-outline elIcon"
-                        title="编辑"
-                    ></i>
-                    <i
-                        @click="delRow(scope.row.id)"
-                        class="el-icon-delete elIcon"
-                        title="删除"
-                    ></i>
-                </template>
-            </el-table-column>
-        </tableList>
+        <router-view v-show="$route.path.includes('vehicleModelDetail')"></router-view>
     </div>
 </template>
 
@@ -129,9 +102,27 @@ export default {
         };
     },
 
+    watch: {
+        $route(to, from) {
+            if (to.name === "vehicleModelManagement") {
+                this.$nextTick(() => {
+                    this.doSearch(true);
+                });
+            }
+        },
+    },
+
     methods: {
-        doSearch() {
-            this.refreshList(this.searchParams);
+        // isBack为解决从详情回退时列表在当前页刷新
+        doSearch(isBack = false) {
+            let pageMap = {
+                ...this.searchParams,
+                resetPageNum: !isBack ? false : (this.pagination.currentPage || 1),
+            };
+
+            if (!isBack) this.pagination.currentPage = 1;
+
+            this.refreshList(pageMap);
         },
         //刷新table
         refreshList(param) {
@@ -149,10 +140,13 @@ export default {
         addOne() {
             this.$router.push({ path: "/vehicleModelDetail" });
         },
-        editRow(id) {
+        editRow(row) {
+            this.$store.commit("getTabname", "vehicleModelDetailTabName", row.modelLabel);
+            localStorage.setItem("vehicleModelDetailTabName", row.modelLabel);
+
             this.$router.push({
                 path: "/vehicleModelDetail",
-                query: { id },
+                query: { id: row.id },
             });
         },
         delRow(id) {
@@ -177,7 +171,7 @@ export default {
         },
     },
 
-    mounted() {},
+    mounted() { },
 };
 </script>
 

+ 1 - 1
src/views/workManagement/evaluationReport.vue

@@ -79,7 +79,7 @@
             <span>注:</span>
             <b
                 >场景数量=仿真异常场景个数+未参与评分场景个数+未达标场景个数+达标场景个数<br />
-                仿真异常场景:在仿真过程中报aborted错误的场景,参与得分权重,测试结果均赋0分<br />
+                仿真异常场景:在仿真过程中报自动终止错误的场景,参与得分权重,测试结果均赋0分<br />
                 评分失败场景:因为场景与评分规则不匹配导致程序报错无法对仿真结果进行打分的场景,参与得分权重,测试结果均赋0分<br />
                 未达标场景:仿真测试未得到满分的场景<br />
                 达标场景个数:仿真测试得到满分的场景</b