Browse Source

新建页面性能分析

liujiejie 1 year ago
parent
commit
b3f92a7cfb

+ 3 - 0
src/utils/getAuth.js

@@ -44,6 +44,9 @@ const filterTreeByPermissions = (permissions, tree) => {
         const permission = permissions.find(
           (perm) => perm.permissionName === newNode.name
         );
+        if (permission && permission.permissionShow) {
+          newNode.meta.hidden = permission.permissionShow == 1 ? false : true;
+        }
         if (permission && permission.permissionIconUrl) {
           newNode.iconName = permission.permissionIconUrl;
         } else {

+ 0 - 19
src/views/admin/performanceAnalysisManage/Index.vue

@@ -1,19 +0,0 @@
-<template>
-  <div>
-    <!--性能分析 -->
-  </div>
-</template>
-
-<script>
-export default {
-  name: 'PerformanceTestIndex',
-
-  data() {
-    return {}
-  },
-
-  mounted() {},
-
-  methods: {}
-}
-</script>

+ 6 - 5
src/views/home/components/Menu.vue

@@ -50,11 +50,11 @@
     >
       <template v-for="item in routerList">
         <el-submenu
+          v-if="item.children && item.children.length"
           :index="item.path"
-          v-if="item.children && item.children.length > 0"
         >
           <template slot="title">
-            <i class="el-icon-menu" v-if="isElPrefix(item.iconName)"></i>
+            <i v-if="isElPrefix(item.iconName)" class="el-icon-menu"></i>
             <i v-else class="svnIcon">
               <svg-icon :icon-class="item.iconName" />
             </i>
@@ -62,10 +62,11 @@
           </template>
           <el-menu-item
             v-for="child in item.children"
+            v-if="child.meta?.hidden === false"
             :key="child.id"
             :index="`/home/${item.path}/${child.path}?id=${child.id}&name=${child.name}`"
           >
-            <i class="el-icon-menu" v-if="isElPrefix(child.iconName)"></i>
+            <i v-if="isElPrefix(child.iconName)" class="el-icon-menu"></i>
             <i v-else class="svnIcon">
               <svg-icon :icon-class="child.iconName" />
             </i>
@@ -73,11 +74,11 @@
           </el-menu-item>
         </el-submenu>
         <el-menu-item
+          v-else-if="item.meta?.hidden === false"
           :key="item.id"
           :index="`/home/${item.path}?id=${item.id}&name=${item.name}`"
-          v-else
         >
-          <i class="el-icon-menu" v-if="isElPrefix(item.iconName)"></i>
+          <i v-if="isElPrefix(item.iconName)" class="el-icon-menu"></i>
           <i v-else class="svnIcon">
             <svg-icon :icon-class="item.iconName" />
           </i>

+ 101 - 5
src/views/home/components/mockData.js

@@ -3,6 +3,9 @@ export const orgList = [
     name: "驾驶舱",
     id: "1",
     path: "cockpitManage",
+    meta: {
+      hidden: false,
+    },
     iconName: "gps",
     component: () =>
       import(
@@ -14,6 +17,9 @@ export const orgList = [
         name: "电子地图",
         iconName: "gps",
         path: "electronic-map",
+        meta: {
+          hidden: false,
+        },
         component: () =>
           import(
             /*webpackChunkName:'cockpitManage'*/ "@/views/admin/cockpitManage/electronicMap.vue"
@@ -24,19 +30,61 @@ export const orgList = [
   {
     name: "性能分析",
     id: "2",
+    path: "performance",
+    meta: {
+      hidden: false,
+    },
     iconName: "analyse",
     component: () =>
-      import(
-        /*webpackChunkName:'analyse'*/ "@/views/admin/performanceAnalysisManage/Index.vue"
-      ),
+      import(/*webpackChunkName:'system'*/ "@/views/system/index.vue"),
     children: [
       {
         id: 21,
-        name: "新能分析评估",
+        name: "性能分析评估",
+        path: "assetssMag",
+        meta: {
+          hidden: false,
+        },
+        component: () =>
+          import(
+            /*webpackChunkName:'performance'*/ "@/views/performance/assetssMag.vue"
+          ),
+      },
+      {
+        id: 23,
+        name: "性能分析详情",
+        path: "assetssDetail",
+        meta: {
+          hidden: true,
+        },
+        component: () =>
+          import(
+            /*webpackChunkName:'performance'*/ "@/views/performance/assetssDetail.vue"
+          ),
+      },
+      {
+        id: 24,
+        name: "分析",
+        meta: {
+          hidden: true,
+        },
+        path: "editAssets",
+        component: () =>
+          import(
+            /*webpackChunkName:'performance'*/ "@/views/performance/editAssets.vue"
+          ),
       },
       {
         id: 22,
         name: "批次管理",
+        path: "batchMag",
+        meta: {
+          hidden: false,
+        },
+        component: () =>
+          import(
+            /*webpackChunkName:'performance'*/ "@/views/performance/batchMag.vue"
+          ),
       },
     ],
   },
@@ -45,6 +93,9 @@ export const orgList = [
     iconName: "dataManage",
     id: "3",
     path: "dataManage",
+    meta: {
+      hidden: false,
+    },
     component: () =>
       import(/*webpackChunkName:'dataManage'*/ "@/views/system/index.vue"),
     children: [
@@ -53,6 +104,9 @@ export const orgList = [
         name: "数据操作",
         iconName: "gps",
         path: "dataAdministration",
+        meta: {
+          hidden: false,
+        },
         component: () =>
           import(
             /*webpackChunkName:'dataManage'*/ "@/views/dataAdministration/index.vue"
@@ -63,32 +117,63 @@ export const orgList = [
   {
     name: "台账管理",
     iconName: "Ledger",
+    path: "Ledger",
+    meta: {
+      hidden: false,
+    },
     id: "4",
+    component: () =>
+      import(/*webpackChunkName:'system'*/ "@/views/system/index.vue"),
     children: [
       {
         id: 41,
         name: "企业信息",
         path: "enterprise",
+        meta: {
+          hidden: false,
+        },
+        component: () =>
+          import(/*webpackChunkName:'Ledger'*/ "@/views/ledger/enterprise.vue"),
       },
       {
         id: 42,
         name: "风场信息",
         path: "windsite",
+        meta: {
+          hidden: false,
+        },
+        component: () =>
+          import(/*webpackChunkName:'Ledger'*/ "@/views/ledger/windsite.vue"),
       },
       {
         id: 43,
         name: "风机信息",
         path: "draught",
+        meta: {
+          hidden: false,
+        },
+        component: () =>
+          import(/*webpackChunkName:'Ledger'*/ "@/views/ledger/draught.vue"),
       },
       {
         id: 44,
         name: "机型信息",
         path: "milltype",
+        meta: {
+          hidden: false,
+        },
+        component: () =>
+          import(/*webpackChunkName:'Ledger'*/ "@/views/ledger/milltype.vue"),
       },
       {
         id: 45,
         name: "测风塔信息",
         path: "anemometer",
+        meta: {
+          hidden: false,
+        },
+        component: () =>
+          import(/*webpackChunkName:'Ledger'*/ "@/views/ledger/anemometer.vue"),
       },
     ],
   },
@@ -97,13 +182,18 @@ export const orgList = [
     iconName: "jurisdiction",
     id: "5",
     path: "system",
+    meta: {
+      hidden: false,
+    },
     component: () =>
       import(/*webpackChunkName:'system'*/ "@/views/system/index.vue"),
     children: [
       {
         id: 51,
         name: "用户管理",
-
+        meta: {
+          hidden: false,
+        },
         path: "userMag",
         component: () =>
           import(
@@ -114,6 +204,9 @@ export const orgList = [
         id: 52,
         name: "角色管理",
         path: "roleMag",
+        meta: {
+          hidden: false,
+        },
         component: () =>
           import(
             /*webpackChunkName:'system'*/ "@/views/system/roleMag/index.vue"
@@ -123,6 +216,9 @@ export const orgList = [
         id: 53,
         name: "菜单权限",
         path: "menuMag",
+        meta: {
+          hidden: false,
+        },
         component: () =>
           import(
             /*webpackChunkName:'system'*/ "@/views/system/menuMag/index.vue"

+ 300 - 236
src/views/ledger/enterprise.vue

@@ -1,260 +1,324 @@
 <template>
-    <div class="global-variable">
-        <div class="condition">
-            <el-form :inline="true" :model="formInline" class="demo-form-inline">
-                <el-form-item label="单位名称:">
-                    <el-input v-model="formInline.user" placeholder="请输入单位名称" size="small"></el-input>
-                </el-form-item>
-                <el-form-item label="状态:">
-                    <el-select v-model="formInline.region" placeholder="选择状态" size="small ">
-                        <el-option label="启用" value="1"></el-option>
-                        <el-option label="停用" value="2"></el-option>
-                    </el-select>
-                </el-form-item>
-                <el-form-item>
-                    <el-button type="primary" @click="onSubmit" size="small">查询</el-button>
-                    <el-button @click="reset" size="small">重置</el-button>
-                </el-form-item>
-            </el-form>
-        </div>
-        <div class="list-page">
-            <div class="newly">
-                <el-button type="primary" @click="newnuedialog" size="small">新增</el-button>
-            </div>
-
-            <el-table class="center-align-table" :data="tableData" border :cell-style="rowStyle" stripe row-key="id"
-                default-expand-all :tree-props="{ children: 'children', hasChildren: 'hasChildren' }">
-                <!-- Table Columns -->
-                <el-table-column fixed prop="name" align="center" label="单位名称">
-                </el-table-column>
-                <el-table-column prop="" align="center" label="单位ID">
-                </el-table-column>
-
-                <el-table-column prop="abnormal" label="风场数量" width="80">
-                    <template slot-scope="scope">
-                        <el-button v-if="scope.row.abnormal == 1" @click="particulars(scope.row)" type="text"
-                            size="small">10</el-button>
-                        <span v-else>/</span>
-                    </template>
-                </el-table-column>
-
-                <el-table-column prop="" align="center" label="状态" width="100">
-                </el-table-column>
-                <el-table-column prop="" align="center" label="转换时间">
-                </el-table-column>
-                <el-table-column prop="transition" align="center" fixed="right" label="操作" width="200">
-                    <template slot-scope="scope">
-                        <el-button @click="compile(scope.row)" type="text" size="small">编辑</el-button>
-                        <el-button @click="newcomer(scope.row)" type="text" size="small">新增</el-button>
-                        <el-button v-if="scope.row.transition == 1" @click="start(scope.row)" type="text"
-                            size="small">启用</el-button>
-                        <el-button v-else style="color: #666;" @click="stop(scope.row)" type="text"
-                            size="small">停用</el-button>
-                        <el-button style="color: #f00;" @click="deleted(scope.row)" type="text"
-                            size="small">删除</el-button>
-                    </template>
-                </el-table-column>
-            </el-table>
-            <div class="pagination-container">
-                <el-pagination :page-size="10" :pager-count="11" layout="total, prev, pager, next" :total="35">
-                </el-pagination>
-            </div>
-        </div>
+  <div class="global-variable">
+    <div class="condition">
+      <el-form :inline="true" :model="formInline" class="demo-form-inline">
+        <el-form-item label="单位名称:">
+          <el-input
+            v-model="formInline.user"
+            placeholder="请输入单位名称"
+            size="small"
+          ></el-input>
+        </el-form-item>
+        <el-form-item label="状态:">
+          <el-select
+            v-model="formInline.region"
+            placeholder="选择状态"
+            size="small "
+          >
+            <el-option label="启用" value="1"></el-option>
+            <el-option label="停用" value="2"></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item>
+          <el-button type="primary" @click="onSubmit" size="small"
+            >查询</el-button
+          >
+          <el-button @click="reset" size="small">重置</el-button>
+        </el-form-item>
+      </el-form>
+    </div>
+    <div class="list-page">
+      <div class="newly">
+        <el-button type="primary" @click="newnuedialog" size="small"
+          >新增</el-button
+        >
+      </div>
 
+      <el-table
+        class="center-align-table"
+        :data="tableData"
+        border
+        :cell-style="rowStyle"
+        stripe
+        row-key="id"
+        default-expand-all
+        :tree-props="{ children: 'children', hasChildren: 'hasChildren' }"
+      >
+        <!-- Table Columns -->
+        <el-table-column fixed prop="name" align="center" label="单位名称">
+        </el-table-column>
+        <el-table-column prop="" align="center" label="单位ID">
+        </el-table-column>
 
-        <!-- 弹出层 -->
-        <!-- 新增 -->
-        <el-dialog :title="title" :visible.sync="nuedialog" width="380px">
-            <el-form ref="newform" :rules="rules" :model="newform" label-width="90px">
-                <el-form-item label="单位名称:" prop="unit">
-                    <el-input v-model="newform.unit" size="small"></el-input>
-                </el-form-item>
-                <el-form-item label="所属省:" prop="province">
-                    <el-select v-model="newform.province" placeholder="请选择" size="small">
-                        <el-option label="区域一" value="shanghai"></el-option>
-                    </el-select>
-                </el-form-item>
-                <el-form-item label="所属市:" prop="city">
-                    <el-select v-model="newform.city" placeholder="请选择" size="small">
-                        <el-option label="区域一" value="shanghai"></el-option>
-                    </el-select>
-                </el-form-item>
-                <el-form-item label="备注:">
-                    <el-input v-model="newform.name" size="small" type="textarea"></el-input>
-                </el-form-item>
-            </el-form>
-            <span slot="footer" class="dialog-footer">
-                <el-button @click="nuedialog = false" size="small">取 消</el-button>
-                <el-button type="primary" @click="newly" size="small">确 定</el-button>
-            </span>
-        </el-dialog>
+        <el-table-column prop="abnormal" label="风场数量" width="80">
+          <template slot-scope="scope">
+            <el-button
+              v-if="scope.row.abnormal == 1"
+              @click="particulars(scope.row)"
+              type="text"
+              size="small"
+              >10</el-button
+            >
+            <span v-else>/</span>
+          </template>
+        </el-table-column>
 
-        <!-- 风场数量 -->
-        <el-dialog title="风场数量" :visible.sync="unusualdialog" width="1000px">
-            <el-table class="center-align-table" :data="tableData" border :cell-style="rowStyle" stripe>
-                <!-- Table Columns -->
-                <el-table-column fixed prop="name" align="center" label="风场名称">
-                </el-table-column>
-                <el-table-column prop="" align="center" label="所在省">
-                </el-table-column>
-                <el-table-column prop="" align="center" label="所在市">
-                </el-table-column>
-                <el-table-column prop="" align="center" label="海拔高度" width="80">
-                </el-table-column>
-                <el-table-column prop="" align="center" label="经度" width="80">
-                </el-table-column>
-                <el-table-column prop="" align="center" label="纬度" width="80">
-                </el-table-column>
-                <el-table-column prop="" align="center" label="额定容量">
-                </el-table-column>
+        <el-table-column prop="" align="center" label="状态" width="100">
+        </el-table-column>
+        <el-table-column prop="" align="center" label="转换时间">
+        </el-table-column>
+        <el-table-column
+          prop="transition"
+          align="center"
+          fixed="right"
+          label="操作"
+          width="200"
+        >
+          <template slot-scope="scope">
+            <el-button @click="compile(scope.row)" type="text" size="small"
+              >编辑</el-button
+            >
+            <el-button @click="newcomer(scope.row)" type="text" size="small"
+              >新增</el-button
+            >
+            <el-button
+              v-if="scope.row.transition == 1"
+              @click="start(scope.row)"
+              type="text"
+              size="small"
+              >启用</el-button
+            >
+            <el-button
+              v-else
+              style="color: #666"
+              @click="stop(scope.row)"
+              type="text"
+              size="small"
+              >停用</el-button
+            >
+            <el-button
+              style="color: #f00"
+              @click="deleted(scope.row)"
+              type="text"
+              size="small"
+              >删除</el-button
+            >
+          </template>
+        </el-table-column>
+      </el-table>
+      <div class="pagination-container">
+        <el-pagination
+          :page-size="10"
+          :pager-count="11"
+          layout="total, prev, pager, next"
+          :total="35"
+        >
+        </el-pagination>
+      </div>
+    </div>
 
-            </el-table>
+    <!-- 弹出层 -->
+    <!-- 新增 -->
+    <el-dialog :title="title" :visible.sync="nuedialog" width="380px">
+      <el-form ref="newform" :rules="rules" :model="newform" label-width="90px">
+        <el-form-item label="单位名称:" prop="unit">
+          <el-input v-model="newform.unit" size="small"></el-input>
+        </el-form-item>
+        <el-form-item label="所属省:" prop="province">
+          <el-select
+            v-model="newform.province"
+            placeholder="请选择"
+            size="small"
+          >
+            <el-option label="区域一" value="shanghai"></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="所属市:" prop="city">
+          <el-select v-model="newform.city" placeholder="请选择" size="small">
+            <el-option label="区域一" value="shanghai"></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="备注:">
+          <el-input
+            v-model="newform.name"
+            size="small"
+            type="textarea"
+          ></el-input>
+        </el-form-item>
+      </el-form>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="nuedialog = false" size="small">取 消</el-button>
+        <el-button type="primary" @click="newly" size="small">确 定</el-button>
+      </span>
+    </el-dialog>
 
-            <div class="pagination-container">
-                <el-pagination :page-size="10" :pager-count="11" layout="total, prev, pager, next" :total="35">
-                </el-pagination>
-            </div>
-        </el-dialog>
+    <!-- 风场数量 -->
+    <el-dialog title="风场数量" :visible.sync="unusualdialog" width="1000px">
+      <el-table
+        class="center-align-table"
+        :data="tableData"
+        border
+        :cell-style="rowStyle"
+        stripe
+      >
+        <!-- Table Columns -->
+        <el-table-column fixed prop="name" align="center" label="风场名称">
+        </el-table-column>
+        <el-table-column prop="" align="center" label="所在省">
+        </el-table-column>
+        <el-table-column prop="" align="center" label="所在市">
+        </el-table-column>
+        <el-table-column prop="" align="center" label="海拔高度" width="80">
+        </el-table-column>
+        <el-table-column prop="" align="center" label="经度" width="80">
+        </el-table-column>
+        <el-table-column prop="" align="center" label="纬度" width="80">
+        </el-table-column>
+        <el-table-column prop="" align="center" label="额定容量">
+        </el-table-column>
+      </el-table>
 
-    </div>
+      <div class="pagination-container">
+        <el-pagination
+          :page-size="10"
+          :pager-count="11"
+          layout="total, prev, pager, next"
+          :total="35"
+        >
+        </el-pagination>
+      </div>
+    </el-dialog>
+  </div>
 </template>
 
 <script>
 export default {
-    data() {
-        return {
-            rules: {
-                unit: [
-                    { required: true, message: '请填写单位名称', trigger: 'blur' }
-                ],
-                province: [
-                    { required: true, message: '请选择省', trigger: 'change' }
-                ],
-                city: [
-                    { required: true, message: '请选择省', trigger: 'change' }
-                ],
-            },
-            formInline: {
-                user: '',
-                region: ''
-            },
-            tableData: [{
-                id: 1,
-                name: '王小虎',
-                transition: "1"
-            }, {
-                id: 3,
-                name: '王小虎',
-                abnormal: "1",
-                transition: "0",
-                children: [{
-                    id: 31,
-
-                    name: '王小虎',
-
-                    abnormal: "1",
-                }]
-            },],
-            nuedialog: false,
-            unusualdialog: false,
-            newform: {
-                unit: "",
-                province: "",
-                city: "",
-                descr: "",
-            },
-            title: "新增",
-            warningShown: false
-
-        }
-    },
-    methods: {
-        rowStyle() {
-            return "text-align:center";
-        },
-
-        // 查询
-        onSubmit() {
-            console.log('submit!');
+  data() {
+    return {
+      rules: {
+        unit: [{ required: true, message: "请填写单位名称", trigger: "blur" }],
+        province: [{ required: true, message: "请选择省", trigger: "change" }],
+        city: [{ required: true, message: "请选择省", trigger: "change" }],
+      },
+      formInline: {
+        user: "",
+        region: "",
+      },
+      tableData: [
+        {
+          id: 1,
+          name: "王小虎",
+          transition: "1",
         },
-        // 重置
-        reset() {
-            this.formInline.user = ""
-            this.formInline.region = ""
+        {
+          id: 3,
+          name: "王小虎",
+          abnormal: "1",
+          transition: "0",
+          children: [
+            {
+              id: 31,
 
-        },
-        // 新增
-        newly() {
-            this.nuedialog = false
+              name: "王小虎",
 
+              abnormal: "1",
+            },
+          ],
         },
+      ],
+      nuedialog: false,
+      unusualdialog: false,
+      newform: {
+        unit: "",
+        province: "",
+        city: "",
+        descr: "",
+      },
+      title: "新增",
+      warningShown: false,
+    };
+  },
+  methods: {
+    rowStyle() {
+      return "text-align:center";
+    },
 
-        //异常详情
-        particulars(row) {
-            this.unusualdialog = true;
-        },
-        // 编辑
-        compile(row) {
-            this.nuedialog = true
-            this.title = "编辑"
-        },
-        // 新增子级
-        newcomer(row) {
-            this.nuedialog = true
-            this.title = "新增"
-        },
-        // 启用
-        start(row) {
-
-        },
-        // 停用
-        stop(row) {
-
-        },
-        // 删除
-        deleted(row) {
-            if (row.transition === "0") {
-                if (!this.warningShown) {
-                    this.$message({
-                        type: 'error',
-                        message: '该项处于停用状态,无法删除!'
-                    });
-                    this.warningShown = true; // 设置警告消息已经显示过了的标志位为true
-                }
-                return;
-            }
-
-            this.$confirm('此操作将永久删除该文件,是否继续?', '提示', {
-                confirmButtonText: '确定',
-                cancelButtonText: '取消',
-                type: 'warning'
-            }).then(() => {
-                // 执行删除操作
-                this.$message({
-                    type: 'success',
-                    message: '删除成功!'
-                });
-            }).catch(() => {
-                // 取消删除
-                this.$message({
-                    type: 'info',
-                    message: '已取消删除'
-                });
-            });
-        },
-
-        newnuedialog() {
-            this.nuedialog = true
-            this.title = "新增"
+    // 查询
+    onSubmit() {
+      console.log("submit!");
+    },
+    // 重置
+    reset() {
+      this.formInline.user = "";
+      this.formInline.region = "";
+    },
+    // 新增
+    newly() {
+      this.nuedialog = false;
+    },
 
+    //异常详情
+    particulars(row) {
+      this.unusualdialog = true;
+    },
+    // 编辑
+    compile(row) {
+      this.nuedialog = true;
+      this.title = "编辑";
+    },
+    // 新增子级
+    newcomer(row) {
+      this.nuedialog = true;
+      this.title = "新增";
+    },
+    // 启用
+    start(row) {},
+    // 停用
+    stop(row) {},
+    // 删除
+    deleted(row) {
+      if (row.transition === "0") {
+        if (!this.warningShown) {
+          this.$message({
+            type: "error",
+            message: "该项处于停用状态,无法删除!",
+          });
+          this.warningShown = true; // 设置警告消息已经显示过了的标志位为true
         }
-    }
+        return;
+      }
 
-}
+      this.$confirm("此操作将永久删除该文件,是否继续?", "提示", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      })
+        .then(() => {
+          // 执行删除操作
+          this.$message({
+            type: "success",
+            message: "删除成功!",
+          });
+        })
+        .catch(() => {
+          // 取消删除
+          this.$message({
+            type: "info",
+            message: "已取消删除",
+          });
+        });
+    },
+
+    newnuedialog() {
+      this.nuedialog = true;
+      this.title = "新增";
+    },
+  },
+};
 </script>
 
 <style lang="scss" scoped>
 .el-select {
-    width: 250px;
+  width: 250px;
 }
-</style>
+</style>

+ 13 - 0
src/views/performance/assetssDetail.vue

@@ -0,0 +1,13 @@
+<!--
+ * @Author: your name
+ * @Date: 2024-05-27 09:25:45
+ * @LastEditTime: 2024-05-27 09:29:24
+ * @LastEditors: bogon
+ * @Description: In User Settings Edit
+ * @FilePath: /performance-test/src/views/performance/assetssDetail.vue
+-->
+<template>
+  <div>性能分析详情</div>
+</template>
+<script></script>
+<style scoped></style>

+ 6 - 0
src/views/performance/assetssMag.vue

@@ -0,0 +1,6 @@
+import Vue from 'vue/types/umd';
+<template>
+  <div>性能分析管理</div>
+</template>
+<script></script>
+<style scoped lang="scss"></style>

+ 13 - 0
src/views/performance/batchMag.vue

@@ -0,0 +1,13 @@
+<!--
+ * @Author: your name
+ * @Date: 2024-05-27 09:23:37
+ * @LastEditTime: 2024-05-27 09:29:56
+ * @LastEditors: bogon
+ * @Description: In User Settings Edit
+ * @FilePath: /performance-test/src/views/performance/batchMag.vue
+-->
+<template>
+  <div>性能批次管理</div>
+</template>
+<script></script>
+<style scoped lang="scss"></style>

+ 13 - 0
src/views/performance/editAssets.vue

@@ -0,0 +1,13 @@
+<!--
+ * @Author: your name
+ * @Date: 2024-05-27 09:26:31
+ * @LastEditTime: 2024-05-27 09:28:23
+ * @LastEditors: bogon
+ * @Description: In User Settings Edit
+ * @FilePath: /performance-test/src/views/performance/editAssets.vue
+-->
+<template>
+  <div>编辑性能分析</div>
+</template>
+<script></script>
+<style scoped lang="scss"></style>

+ 10 - 1
src/views/system/menuMag/components/editDialog.vue

@@ -32,7 +32,11 @@
           placeholder="请输入菜单标识"
         ></el-input>
       </el-form-item>
-      <el-form-item label="菜单图标" prop="piconUrl" v-if="activeName !== '3'">
+      <el-form-item
+        label="菜单图标"
+        prop="piconUrl"
+        v-if="activeName !== '3' && activeName !== '2'"
+      >
         <el-popover
           placement="bottom-start"
           width="460"
@@ -316,4 +320,9 @@ export default {
 ::v-deep .el-input__prefix {
   line-height: 50px !important;
 }
+.demo-ruleForm {
+  .el-form-item {
+    margin-bottom: 25px;
+  }
+}
 </style>

+ 0 - 1
src/views/system/menuMag/index.vue

@@ -220,7 +220,6 @@ export default {
     handleClose() {
       if (this.activeName === "1") {
         this.$refs.addList.cancel();
-        console.log("取消1");
       } else {
         this.$refs.addMenu.cancel();
       }

+ 12 - 2
src/views/system/roleMag/index.vue

@@ -15,7 +15,7 @@
             size="small"
           ></el-input>
         </el-form-item>
-        <el-form-item label="状态:" prop="roleAvailable"   size="small">
+        <el-form-item label="状态:" prop="roleAvailable" size="small">
           <el-select
             v-model="formInline.roleAvailable"
             placeholder="请选择状态"
@@ -214,7 +214,12 @@
     <!-- 权限设置 -->
     <el-dialog title="权限设置" :visible.sync="unusualdialog" width="500px">
       <div v-loading="loadingView" class="views">
-        <el-form :model="editRoleAuth" ref="editRoleAuth" label-width="100px">
+        <el-form
+          :model="editRoleAuth"
+          ref="editRoleAuth"
+          label-width="100px"
+          class="demo-ruleForm"
+        >
           <el-form-item
             label="角色名称"
             prop="roleName"
@@ -597,4 +602,9 @@ export default {
 .tabs {
   margin-bottom: 50px;
 }
+.demo-ruleForm {
+  .el-form-item {
+    margin-bottom: 25px;
+  }
+}
 </style>

+ 29 - 4
src/views/system/userMag/index.vue

@@ -10,13 +10,17 @@
       >
         <el-form-item label="用户名称:" prop="userName">
           <el-input
-          size="small"
+            size="small"
             v-model="formInline.userName"
             placeholder="请输入用户名称"
           ></el-input>
         </el-form-item>
         <el-form-item label="角色名称:" prop="roleId">
-          <el-select v-model="formInline.roleId" placeholder="请选择角色"     size="small"> 
+          <el-select
+            v-model="formInline.roleId"
+            placeholder="请选择角色"
+            size="small"
+          >
             <el-option
               :label="item.roleDescription"
               v-for="item in roleList"
@@ -205,6 +209,7 @@
           :model="editUserPassword"
           ref="editUserPassword"
           label-width="100px"
+          class="demo-ruleForm"
         >
           <el-form-item
             label="旧密码"
@@ -267,6 +272,16 @@ import {
 } from "@/api/system.js";
 export default {
   data() {
+    const validateUserName = (rule, value, callback) => {
+      const regex = /^[^\u4e00-\u9fa5\W]+$/;
+      if (!value) {
+        callback(new Error("账号名称不能为空"));
+      } else if (!regex.test(value)) {
+        callback(new Error("账号名称不能包含中文及特殊字符"));
+      } else {
+        callback();
+      }
+    };
     const validatePhone = (rule, value, callback) => {
       const phoneRegex = /^[1][3-9][0-9]{9}$/;
       if (!value) {
@@ -307,10 +322,15 @@ export default {
           { required: true, message: "请输入手机号", trigger: "blur" },
           { validator: validatePhone, trigger: "blur" },
         ],
-        loginName: { required: true, message: "请输入", trigger: "blur" },
+        loginName: [
+          { required: true, message: "请输入账号名称", trigger: "blur" },
+          { validator: validateUserName, trigger: "blur" },
+        ],
         pwd: { required: true, message: "请输入密码", trigger: "blur" },
         roleId: { required: true, message: "请选择角色", trigger: "change" },
-        userName: { required: true, message: "请输入账号", trigger: "blur" },
+        userName: [
+          { required: true, message: "请输入员工姓名", trigger: "blur" },
+        ],
       },
       //修改密码
       editUserPassword: {
@@ -604,4 +624,9 @@ export default {
   justify-content: flex-end;
   margin-bottom: 10px;
 }
+.demo-ruleForm {
+  .el-form-item {
+    margin-bottom: 25px;
+  }
+}
 </style>

+ 1 - 5
vue.config.js

@@ -57,11 +57,7 @@ module.exports = {
     proxy: {
       "/api": {
         // target: "http://192.168.5.4:16200", // 石月
-<<<<<<< HEAD
-        target: "http://192.168.50.235:16200",//内网
-=======
-        target: "http://192.168.50.235:16200",
->>>>>>> 3c71ffd323781083528875676ea7f31295780bfd
+        target: "http://192.168.50.235:16200", //内网
         // target: "http://106.120.102.238:16600",//外网
         changeOrigin: true,
         pathRewrite: {