Quellcode durchsuchen

账户管理和参数管理

shiyu vor 3 Jahren
Ursprung
Commit
e962ffa302

+ 3 - 1
src/api/index.js

@@ -6,6 +6,7 @@ import workManagement from './workManagement.js' // 工作管理
 import modelLibrary from './modelLibrary.js' // 模型库
 import algorithmsLibrary from './algorithmsLibrary.js' // 算法库
 import mainPage from './mainPage.js' // 首页
+import systemManagement from "./systemManagement.js"; //系统管理
 
 const api = {
     common,
@@ -13,7 +14,8 @@ const api = {
     workManagement,
     modelLibrary,
     algorithmsLibrary,
-    mainPage
+    mainPage,
+    systemManagement
 }
 
 export default api;

+ 30 - 0
src/api/systemManagement.js

@@ -0,0 +1,30 @@
+const basePart = '/simulation/resource/server'
+//账户管理
+const getUserPageList = basePart + '/user/getUserPageList'
+const saveUser = basePart + '/user/saveUser'
+const saveDefaultPassword = basePart +  '/user/saveDefaultPassword'
+const saveVisible = basePart + '/user/saveVisible'
+//参数管理
+const getParameterList = basePart + '/parameter/getParameterList'
+const saveParameter = basePart + '/parameter/saveParameter'
+const getParamHistory = basePart + '/parameter/getParamHistory'
+//集群管理
+const getClusterList = basePart + '/cluster/getClusterList'
+const saveCluster = basePart + '/cluster/saveCluster'
+const getClusterHistory = basePart + '/cluster/getClusterHistory'
+const getClusterNum = basePart + '/cluster/getClusterNum'
+
+
+export default{
+    getUserPageList,
+    saveUser,
+    saveDefaultPassword,
+    saveVisible,
+    getParameterList,
+    saveParameter,
+    getParamHistory,
+    getClusterList,
+    saveCluster,
+    getClusterHistory,
+    getClusterNum
+}

+ 88 - 79
src/router/systemManagement.js

@@ -1,90 +1,99 @@
 export default [{
-        path: "/accountManagement",
-        name: "accountManagement",
-        meta: {
-            tabname: "账户管理",
-            menuKind: "systemManagement"
-        },
-        component: () => import("@/views/systemManagement/accountManagement")
+    path: "/accountManagement",
+    name: "accountManagement",
+    meta: {
+        tabname: "账户管理",
+        menuKind: "systemManagement"
     },
-    {
-        path: "/addAccount",
-        name: "addAccount",
-        meta: {
-            tabname: "创建账户",
-            menuKind: "systemManagement"
-        },
-        component: () => import("@/views/systemManagement/addAccount")
+    component: () => import("@/views/systemManagement/accountManagement")
+},
+{
+    path: "/addAccount",
+    name: "addAccount",
+    meta: {
+        tabname: "创建账户",
+        menuKind: "systemManagement"
     },
-    {
-        path: "/parameterManagement",
-        name: "paramenterManagement",
-        meta: {
-            tabname: "参数管理",
-            menuKind: "systemManagement"
-        },
-        component: () => import("@/views/systemManagement/parameterManagement")    
+    component: () => import("@/views/systemManagement/addAccount")
+},
+{
+    path: "/editAccount",
+    name: "editAccount",
+    meta: {
+        tabname: "编辑账户",
+        menuKind: "systemManagement"
     },
-    {
-        path: "/parameterDetail",
-        name: "parameterDetail",
-        meta: {
-            tabname: "新增参数配置",
-            menuKind: "systemManagement"
-        },
-        component: () => import("@/views/systemManagement/parameterDetail")
+    component: () => import("@/views/systemManagement/editAccount")
+},
+{
+    path: "/parameterManagement",
+    name: "paramenterManagement",
+    meta: {
+        tabname: "参数管理",
+        menuKind: "systemManagement"
     },
-    {
-        path: "/sceneLibraryManagement",
-        name: "sceneLibraryManagement",
-        meta: {
-            tabname: "场景库管理",
-            menuKind: "systemManagement"
-        },
-        component: () => import("@/views/systemManagement/sceneLibraryManagement/sceneLibraryManagement")
+    component: () => import("@/views/systemManagement/parameterManagement")    
+},
+{
+    path: "/parameterDetail",
+    name: "parameterDetail",
+    meta: {
+        tabname: "新增参数配置",
+        menuKind: "systemManagement"
     },
-    {
-        path: "/reportTemplateManagement",
-        name: "reportTemplateManagement",
-        meta: {
-            tabname: "报告模板管理",
-            menuKind: "systemManagement"
-        },
-        component: () => import("@/views/systemManagement/reportTemplateManagement")
+    component: () => import("@/views/systemManagement/parameterDetail")
+},
+{
+    path: "/clusteringManagement",
+    name: "clusteringManagement",
+    meta: {
+        tabname: "集群管理",
+        menuKind: "sysyemManagement"
     },
-    {
-        path: "/reportTemplateDetail",
-        name: "reportTemplateDetail",
-        meta: {
-
-        },
-        component: () => import("@/views/systemManagement/reportTemplateDetail") 
+    component: () => import("@/views/systemManagement/clusteringManagement")
+},
+{
+    path: "/clusteringDetail",
+    name: "clusteringDetail",
+    meta: {
+        tabname: "新增集群配置",
+        menuKind: "systemManagement"
+    },
+    component: () => import("@/views/systemManagement/clusteringDetail")
+},
+{
+    path: "/sceneLibraryManagement",
+    name: "sceneLibraryManagement",
+    meta: {
+        tabname: "场景库管理",
+        menuKind: "systemManagement"
     },
-    {
-        path: "/clusteringManagement",
-        name: "clusteringManagement",
-        meta: {
-            tabname: "集群管理",
-            menuKind: "sysyemManagement"
-        },
-        component: () => import("@/views/systemManagement/clusteringManagement")
+    component: () => import("@/views/systemManagement/sceneLibraryManagement/sceneLibraryManagement")
+},
+{
+    path: "/reportTemplateManagement",
+    name: "reportTemplateManagement",
+    meta: {
+        tabname: "报告模板管理",
+        menuKind: "systemManagement"
+    },
+    component: () => import("@/views/systemManagement/reportTemplateManagement")
+},
+{
+    path: "/reportTemplateDetail",
+    name: "reportTemplateDetail",
+    meta: {
+
     },
-    {
-        path: "/clusteringDetail",
-        name: "clusteringDetail",
-        meta: {
-            tabname: "新增集群配置",
-            menuKind: "systemManagement"
-        },
-        component: () => import("@/views/systemManagement/clusteringDetail")
+    component: () => import("@/views/systemManagement/reportTemplateDetail") 
+},
+{
+    path: "/logManagement",
+    name:"logManagement",
+    meta: {
+        tabname: "日志管理",
+        menuKind: "systemManagement"
     },
-    {
-        path: "/logManagement",
-        name:"logManagement",
-        meta: {
-            tabname: "日志管理",
-            menuKind: "systemManagement"
-        },
-        component: () => import("@/views/systemManagement/logManagement")
-    }
+    component: () => import("@/views/systemManagement/logManagement")
+}
 ]

+ 146 - 57
src/views/systemManagement/accountManagement.vue

@@ -4,17 +4,7 @@
             <template slot="searchItem1">
                 <span class="label">账户名称</span>
                 <el-input
-                    v-model="searchParams.id"
-                    size="small"
-                    clearable
-                    placeholder="请输入"
-                >
-                </el-input>
-            </template>
-            <template slot="searchItem2">
-                <span class="label">所属公司</span>
-                <el-input
-                    v-model="searchParams.clientOrgName"
+                    v-model="searchParams.username"
                     size="small"
                     clearable
                     placeholder="请输入"
@@ -23,18 +13,28 @@
             </template>
             <template slot="searchItem3">
                 <span class="label">账户类型</span>
-                <el-select v-model="searchParams.status">
+                <el-select v-model="searchParams.roleCode">
                     <el-option
-                        v-for="item in list"
+                        v-for="item in roleCodeList"
                         :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="请输入"
+                >
+                </el-input>
+            </template>
             <template slot="searchItem4">
                 <span class="label">状态</span>
-                <el-select v-model="searchParams.status">
+                <el-select v-model="searchParams.visible">
                     <el-option
                         v-for="item in list"
                         :label="item.caption"
@@ -44,25 +44,25 @@
                 </el-select>
             </template>
             <template slot="searchBtn1">
-                <el-button type="primary">查询</el-button>
+                <el-button type="primary" @click="search">查询</el-button>
             </template>
             <template slot="searchBtn2">
-                <el-button type="primary">重置</el-button>
+                <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 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="addConfig"
-                >创建</el-button
+                @click="addAccount"
+                >创建账户</el-button
             >
         </div>
 
@@ -75,15 +75,24 @@
             index
             selection
         >
+            <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="#13ce66"
+                        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="addMarkDia(scope.row)"
+                        @click="editAccount(scope.row)"
                         class="el-icon-edit-outline elIcon"
-                    ></i>
-                    <i
-                        @click="addMarkDia(scope.row)"
-                        class="el-icon-video-pause elIcon"
+                        title="编辑"
                     ></i>
                 </template>
             </el-table-column>
@@ -102,46 +111,56 @@ export default {
         return {
             searchParams: {
                 //搜索参数
-                id: "", //ID
-                clientOrgName: "", //车辆名称
-                clientOrgName1: "", //配置名称
-                clientOrgName2: "", //配置描述
-                status: "",
+                username: "", //账户名
+                company:"",  //所属公司
+                roleCode:"",  //账户类型
+                visible:""  //启用状态
             },
-            list: [],
+            roleCodeList:[],
+            list: [
+                {
+                    code:'1',
+                    caption:'启用'
+                },
+                {
+                    code:'0',
+                    caption:'停用'
+                }
+            ],
             columns: [
                 //表格列
                 {
                     label: "账户名称",
-                    prop: "id",
+                    prop: "username",
                 },
                 {
                     label: "账户类型",
-                    prop: "aid",
+                    prop: "roleCode",
                 },
                 {
                     label: "所属公司",
-                    prop: "ktName",
+                    prop: "company",
                 },
                 {
                     label: "联系人",
-                    prop: "jbSource",
+                    prop: "nickname",
                 },
                 {
                     label: "联系方式",
-                    prop: "aid",
+                    prop: "phone",
                 },
                 {
-                    label: "状态",
-                    prop: "ktName",
+                    label: "停/启用",
+                    prop: "visible",
+                    template: true
                 },
                 {
                     label: "创建人",
-                    prop: "jbSource",
+                    prop: "createUserName",
                 },
                 {
                     label: "创建时间",
-                    prop: "jbSource",
+                    prop: "createTime",
                 },
                 {
                     label: "操作",
@@ -159,31 +178,100 @@ export default {
             },
             getDataWay: {
                 //加载表格数据
-                dataType: "data",
+                dataType: "url",
                 type: "post",
-                firstRequest: false,
-                data: [
-                    {
-                        id: 1,
-                        ktName: "kjdhfkjsdhfkjsjhdfksdjhfkhwoieyrhfisdhfksjhdf",
-                        jbSource: "收到就好付款时间的回复可见收到货覅无痕",
-                    },
-                    { id: 2 },
-                    { id: 3 },
-                    { id: 4 },
-                    { id: 51 },
-                    { id: 6 },
-                ],
-                // data: this.$api.scientificStatistics.typeProjectStatistics,
+                // firstRequest: false,
+                data: this.$api.systemManagement.getUserPageList,
                 param: {},
             },
         };
     },
+    async mounted() {
+        await this.$dicsListsInit({
+            roleCodeList: "roleCode",
+        });
+    },
     methods: {
-        addConfig() {
+        addAccount() {
             this.$router.push({ path: "/addAccount" });
         },
-        addMarkDia() {},
+        editAccount(row) {
+            let query = {...row}
+            this.$router.push({
+                path: "/editAccount",
+                query
+            })
+        },
+        search(){
+            let searchParam = {
+                    username: this.searchParams.username,
+                    company: this.searchParams.company,
+                    roleCode: this.searchParams.roleCode,
+                    visible: this.searchParams.visible
+            }
+            this.refreshList(searchParam)
+        },
+        reset(){
+            this.searchParams={
+                username: '',
+                company: '',
+                roleCode: '',
+                visible: ''
+            }
+            this.search()
+        },
+        refreshList(param) {
+            param
+                ? this.$refs["table"].loadData(param)
+                : this.$refs["table"].loadData();
+        },
+        switchVisible(value, row){  //停用启用账户
+            if(value == '0'){
+                row.visible = '1'
+                this.$confirm("确认停用该账户?", "提示", {
+                    confirmButtonText: "确定",
+                    cancelButtonText: "取消",
+                    type: "warning",
+                }).then(()=>{
+                    this.$axios({
+                        method:'POST',
+                        url: this.$api.systemManagement.saveVisible,
+                        data:{
+                            id: row.id,
+                            visible: '0'
+                        }
+                    }).then(res=>{
+                        if(res.code == '200'){
+                            row.visible = '0'
+                        }else{
+                            this.$message.error(res.message || "停用失败");
+                        }
+                    })
+                }).catch(()=>{})
+            }else{
+                row.visible = '0'
+                this.$confirm("确认启用该账户?", "提示", {
+                    confirmButtonText: "确定",
+                    cancelButtonText: "取消",
+                    type: "warning",
+                }).then(()=>{this.$axios({
+                        method:'POST',
+                        url: this.$api.systemManagement.saveVisible,
+                        data:{
+                            id: row.id,
+                            visible: '1'
+                        }
+                    }).then(res=>{
+                        if(res.code == '200'){
+                            row.visible = '1'
+                        }else{
+                            this.$message.error(res.message || "启用失败");
+                        }
+                    })
+                }).catch(()=>{})
+            }
+            
+        }
     },
 };
 </script>
@@ -191,5 +279,6 @@ export default {
 <style scoped lang="less">
 .btnsPanel {
     margin: 45px 40px 15px;
+    text-align: right;
 }
 </style>

+ 75 - 124
src/views/systemManagement/addAccount.vue

@@ -1,7 +1,7 @@
 <template>
     <div>
         <div class="flexBox box">
-            <div class="fileBox">
+            <!--<div class="fileBox">
                 <div class="til">头像</div>
                 <div class="photo">
                     <img :src="imgSrc" width="100%" height="100%" />
@@ -11,165 +11,97 @@
                         >上传文件</el-button
                     >
                 </div>
-            </div>
+            </div>-->
             <el-form
                 ref="form"
                 :model="form"
                 :rules="rules"
                 label-width="108px"
             >
-                <el-form-item label="账户名称:" prop="name" v-show="isEdited">
+                <el-form-item label="账户名称:" prop="username">
                     <el-input
                         placeholder="请输入"
                         maxlength="30"
-                        v-autoTrim="{ obj: form, key: 'name' }"
-                        v-model="form.name"
+                        v-autoTrim="{ obj: form, key: 'username' }"
+                        v-model="form.username"
                     >
                     </el-input>
                 </el-form-item>
-                <el-form-item label="账户名称:" prop="name" v-show="!isEdited">
-                    {{ form.name }}
-                </el-form-item>
-
-                <el-form-item label="账户类型:" prop="des" v-show="isEdited">
-                    <el-select v-model="form.des">
+                <el-form-item label="账户类型:" prop="roleCode">
+                    <el-select v-model="form.roleCode">
                         <el-option
-                            v-for="item in list"
+                            v-for="item in roleCodeList"
                             :label="item.caption"
                             :value="item.code"
                             :key="item.code"
                         ></el-option>
                     </el-select>
                 </el-form-item>
-                <el-form-item label="账户类型:" prop="des" v-show="!isEdited">
-                    {{ form.name }}
-                </el-form-item>
 
-                <el-form-item label="所属公司:" prop="x" v-show="isEdited">
+                <el-form-item label="所属公司:" prop="company">
                     <el-input
                         placeholder="请输入"
                         maxlength="15"
-                        v-autoTrim="{ obj: form, key: 'x' }"
-                        v-model="form.x"
+                        v-autoTrim="{ obj: form.company, key: 'company' }"
+                        v-model="form.company"
                     >
                     </el-input>
                 </el-form-item>
-                <el-form-item label="所属公司:" prop="x" v-show="!isEdited">
-                    {{ form.name }}
-                </el-form-item>
 
-                <el-form-item label="联系人:" prop="x" v-show="isEdited">
+                <el-form-item label="联系人:" prop="nickname">
                     <el-input
                         placeholder="请输入"
                         maxlength="15"
-                        v-autoTrim="{ obj: form, key: 'x' }"
-                        v-model="form.x"
+                        v-autoTrim="{ obj: form.nickname, key: 'nickname' }"
+                        v-model="form.nickname"
                     >
                     </el-input>
                 </el-form-item>
-                <el-form-item label="联系人:" prop="x" v-show="!isEdited">
-                    {{ form.name }}
-                </el-form-item>
-
-                <el-form-item label="联系方式:" prop="x" v-show="isEdited">
+                
+                <el-form-item label="联系方式:" prop="phone">
                     <el-input
                         placeholder="请输入"
                         maxlength="15"
-                        v-autoTrim="{ obj: form, key: 'x' }"
-                        v-model="form.x"
+                        v-autoTrim="{ obj: form.phone, key: 'phone' }"
+                        v-model="form.phone"
                     >
                     </el-input>
                 </el-form-item>
-                <el-form-item label="联系方式:" prop="x" v-show="!isEdited">
-                    {{ form.name }}
-                </el-form-item>
-
-                <el-form-item label="密码:" prop="x" v-show="isEdited">
+                <!--
+                <el-form-item label="密码:" prop="password">
                     <el-input
                         placeholder="请输入"
                         type="password"
                         maxlength="15"
-                        v-autoTrim="{ obj: form, key: 'x' }"
-                        v-model="form.x"
+                        v-autoTrim="{ obj: form.password, key: 'password' }"
+                        v-model="form.password"
                     >
                     </el-input>
                 </el-form-item>
 
-                <el-form-item label="确认密码:" prop="x" v-show="isEdited">
+                <el-form-item label="确认密码:" prop="password">
                     <el-input
                         placeholder="请输入"
                         type="password"
                         maxlength="15"
-                        v-autoTrim="{ obj: form, key: 'x' }"
-                        v-model="form.x"
+                        v-autoTrim="{ obj: form.password, key: 'password' }"
+                        v-model="form.password"
                     >
                     </el-input>
                 </el-form-item>
-
-                <el-form-item label="状态:" prop="y" v-show="isEdited">
-                    <el-radio v-model="form.z" label="1">启用</el-radio>
-                    <el-radio v-model="form.z" label="2">停用</el-radio>
-                </el-form-item>
-                <el-form-item label="状态:" prop="y" v-show="!isEdited">
-                    {{ form.name }}
+                -->
+                <el-form-item label="独占类型:" prop="useType">
+                    <el-radio v-for="item in useTypeList" :key="item.code" :label="item.code" v-model="form.useType">{{item.caption}}</el-radio>
                 </el-form-item>
 
-                <div class="btns" v-show="isEdited">
-                    <el-button type="primary">保存</el-button>
+                <div class="btns">
+                    <el-button type="primary" @click="saveForm">保存</el-button>
                     <el-button type="primary" plain @click="cancelForm"
-                        >取消</el-button
-                    >
+                    >取消</el-button>
                 </div>
             </el-form>
-            <div class="editBox">
-                <el-button
-                 v-show="isEdited"
-                    type="primary"
-                    icon="el-icon-edit-outline"
-                    @click="editForm"
-                    >编辑</el-button
-                >
-            </div>
         </div>
 
-        <el-dialog
-            title="编辑"
-            :visible.sync="dialogVisible"
-            width="690px"
-            :close-on-click-modal="false"
-            :close-on-press-escape="false"
-        >
-            <el-form
-                ref="formA"
-                :model="formA"
-                :rules="rulesA"
-                label-width="108px"
-            >
-                <el-form-item
-                    label="手机验证码:"
-                    prop="name"
-                    class="getCodeBox"
-                >
-                    <el-input
-                        placeholder="请输入"
-                        maxlength="30"
-                        class="name"
-                        v-autoTrim="{ obj: form, key: 'name' }"
-                        v-model="formA.name"
-                    >
-                        <el-button slot="append" type="primary"
-                            >获取验证码</el-button
-                        >
-                    </el-input>
-                </el-form-item>
-            </el-form>
-            <span slot="footer">
-                <el-button type="primary" @click="dialogVisible = false"
-                    >确 定</el-button
-                >
-                <el-button @click="dialogVisible = false">取 消</el-button>
-            </span>
-        </el-dialog>
     </div>
 </template>
 
@@ -182,45 +114,64 @@ export default {
     data() {
         return {
             list: [],
-            isEdited: true,
+            roleCodeList: [],
+            useTypeList:[],  //占用类型
             imgSrc: require("@/assets/common/image/photoF.png"),
             form: {
-                name: "创建账户",
-                des: "",
-                x: "",
-                y: "1",
-                z: "2",
+                id: "",
+                username: "",
+                roleCode: "",
+                company: "",
+                nickname: "",
+                phone: "",
+                //password: "",
+                useType: ""
             },
             rules: {
-                name: [{ required: true, message: "请输入", trigger: "blur" }],
-                des: [{ required: true, message: "请输入", trigger: "blur" }],
-                x: [{ required: true, message: "请输入", trigger: "blur" }],
-                y: [{ required: true, message: "请选择", trigger: "change" }],
-                z: [{ required: true, message: "请选择", trigger: "change" }],
+                username: [{ required: true, message: "请输入", trigger: "blur" }],
+                roleCode: [{ required: true, message: "请选择", trigger: "change" }],
+                company: [{ required: true, message: "请输入", trigger: "blur" }],
+                nickname: [{ required: true, message: "请输入", trigger: "blur" }],
+                phone: [{ required: true, message: "请输入", trigger: "blur" }],
+                //password: [{ required: true, message: "请输入", trigger: "blur" }],
+                useType: [{ required: true, message: "请选择", trigger: "change" }],
             },
-            formA: {
-                name: "",
-            },
-            rulesA: {
-                name: [{ required: true, message: "请输入", trigger: "blur" }],
-            },
-            dialogVisible: false,
         };
     },
+    async created(){
 
-    computed: {},
+    },
+    async mounted() {
+        await this.$dicsListsInit({
+            roleCodeList: "roleCode",
+            useTypeList: "useType"
+        });
+    },
+    computed: {
 
+    },
     methods: {
-        editForm() {
-            this.isEdited = true;
-            this.dialogVisible = true;
+        saveForm(){
+            this.$axios({
+                method:'POST',
+                url:this.$api.systemManagement.saveUser,
+                data:{
+                    ...this.form
+                }
+            }).then(res => {
+                if(res.code == 200){
+                    this.$message.success("保存成功");
+                    this.$router.history.go(-1)        
+                }else{
+                    this.$message.error(res.message || "保存失败");
+                }
+            })
         },
         cancelForm() {
-            this.isEdited = false;
-            this.dialogVisible = false;
+            this.$router.history.go(-1)
         },
+        
     },
-
     // mounted: {},
 };
 </script>

+ 291 - 0
src/views/systemManagement/editAccount.vue

@@ -0,0 +1,291 @@
+<template>
+    <div>
+        <div class="flexBox box">
+            <el-form
+                ref="form"
+                :model="form"
+                :rules="rules"
+                label-width="108px"
+            >
+                <el-form-item label="账户名称:" prop="username">
+                    <el-input
+                        placeholder="请输入"
+                        maxlength="30"
+                        v-autoTrim="{ obj: form, key: 'username' }"
+                        v-model="form.username"
+                    >
+                    </el-input>
+                </el-form-item>
+                <el-form-item label="账户类型:" prop="roleCode">
+                    <el-select v-model="form.roleCode" disabled>
+                        <el-option
+                            v-for="item in roleCodeList"
+                            :label="item.caption"
+                            :value="item.code"
+                            :key="item.code"
+                        ></el-option>
+                    </el-select>
+                </el-form-item>
+
+                <el-form-item label="所属公司:" prop="company">
+                    <el-input
+                        placeholder="请输入"
+                        maxlength="15"
+                        v-autoTrim="{ obj: form.company, key: 'company' }"
+                        v-model="form.company"
+                    >
+                    </el-input>
+                </el-form-item>
+
+                <el-form-item label="联系人:" prop="nickname">
+                    <el-input
+                        placeholder="请输入"
+                        maxlength="15"
+                        v-autoTrim="{ obj: form.nickname, key: 'nickname' }"
+                        v-model="form.nickname"
+                    >
+                    </el-input>
+                </el-form-item>
+                
+                <el-form-item label="联系方式:" prop="phone">
+                    <el-input
+                        placeholder="请输入"
+                        maxlength="15"
+                        v-autoTrim="{ obj: form.phone, key: 'password' }"
+                        v-model="form.phone"
+                    >
+                    </el-input>
+                </el-form-item>
+                
+                <el-form-item label="密码:" prop="password">
+                    <el-input
+                        placeholder="请输入"
+                        type="password"
+                        maxlength="15"
+                        v-autoTrim="{ obj: form.password, key: 'password' }"
+                        v-model="form.password"
+                    >
+                    </el-input>
+                </el-form-item>
+
+                <el-form-item label="确认密码:" prop="password">
+                    <el-input
+                        placeholder="请输入"
+                        type="password"
+                        maxlength="15"
+                        v-autoTrim="{ obj: form.password, key: 'password' }"
+                        v-model="form.password"
+                    >
+                    </el-input>
+                </el-form-item>
+
+                <el-form-item label="独占类型:" prop="useType">
+                    <el-radio v-for="item in useTypeList" :key="item.code" :label="item.code" v-model="form.useType">{{item.caption}}</el-radio>
+                </el-form-item>
+
+                <div class="btns">
+                    <el-button type="primary" @click="saveForm">保存</el-button>
+                    <el-button type="primary" plain @click="cancelForm"
+                    >取消</el-button>
+                </div>
+            </el-form>
+            <div class="fileBox">
+                <div class="photo">
+                    <img :src="imgSrc" width="100%" height="100%" />
+                </div>
+                <!--<div class="uploadBox">
+                    <el-button type="primary" plain icon="el-icon-upload2"
+                        >上传头像</el-button
+                    >
+                </div>-->
+            </div>
+        </div>
+
+        <el-dialog
+            title="编辑账户"
+            :visible.sync="dialogVisible"
+            width="690px"
+            :close-on-click-modal="false"
+            :close-on-press-escape="false"
+        >
+            <el-form
+                ref="formA"
+                :model="formA"
+                :rules="rulesA"
+                label-width="108px"
+            >
+                <el-form-item
+                    label="手机验证码:"
+                    prop="name"
+                    class="getCodeBox"
+                >
+                    <el-input
+                        placeholder="请输入"
+                        maxlength="30"
+                        class="name"
+                        v-autoTrim="{ obj: form, key: 'name' }"
+                        v-model="formA.name"
+                    >
+                        <el-button slot="append" type="primary"
+                            >获取验证码</el-button
+                        >
+                    </el-input>
+                </el-form-item>
+            </el-form>
+            <span slot="footer">
+                <el-button type="primary" @click="dialogVisible = false"
+                    >确 定</el-button
+                >
+                <el-button @click="dialogVisible = false">取 消</el-button>
+            </span>
+        </el-dialog>
+    </div>
+</template>
+
+<script>
+//import  from '';
+
+export default {
+    name: "editAccount", // 创建账户
+    components: {},
+    data() {
+        return {
+            list: [],
+            roleCodeList: [],
+            useTypeList:[],  //占用类型
+            imgSrc: require("@/assets/common/image/photoF.png"),
+            form: {
+                id: "",
+                username: "",
+                roleCode: "",
+                company: "",
+                nickname: "",
+                phone: "",
+                password: "",
+                useType: ""
+            },
+            rules: {
+                username: [{ required: true, message: "请输入", trigger: "blur" }],
+                roleCode: [{ required: true, message: "请选择", trigger: "change" }],
+                company: [{ required: true, message: "请输入", trigger: "blur" }],
+                nickname: [{ required: true, message: "请输入", trigger: "blur" }],
+                phone: [{ required: true, message: "请输入", trigger: "blur" }],
+                password: [{ required: true, message: "请输入", trigger: "blur" }],
+                useType: [{ required: true, message: "请选择", trigger: "change" }],
+            },
+            formA: {
+                name: "",
+            },
+            rulesA: {
+                name: [{ required: true, message: "请输入", trigger: "blur" }],
+            },
+            dialogVisible: false,
+        };
+    },
+    async created(){
+        if(this.$route.query){
+            this.form = {...this.$route.query}
+        }
+    },
+    async mounted() {
+        await this.$dicsListsInit({
+            roleCodeList: "roleCode",
+            useTypeList: "useType"
+        });
+    },
+    computed: {
+
+    },
+    methods: {
+        saveForm(){
+            this.$axios({
+                method:'POST',
+                url:this.$api.systemManagement.saveUser,
+                data:{
+                    ...this.form
+                }
+            }).then(res => {
+                if(res.code == 200){
+                    this.$message.success("保存成功");
+                    this.$router.history.go(-1)        
+                }else{
+                    this.$message.error(res.message || "保存失败");
+                }
+            })
+        },
+        cancelForm() {
+            this.$router.history.go(-1)
+        },
+        
+    },
+    // mounted: {},
+};
+</script>
+
+<style lang='less' scoped>
+.flexBox.box {
+    padding-top: 45px;
+}
+
+.el-form {
+    flex: 1;
+    padding-bottom: 45px;
+
+    /deep/ .el-input,
+    .el-select {
+        width: 100%;
+    }
+}
+
+.fileBox {
+    text-align: right;
+    padding: 0 5% 0 10%;
+
+    .til {
+        width: 210px;
+        padding-bottom: 10px;
+        margin: 0 auto;
+        text-align: left;
+    }
+
+    .photo {
+        display: inline-block;
+        width: 210px;
+        height: 210px;
+        line-height: 210px;
+        // border-radius: 50%;
+        overflow: hidden;
+
+        // img {
+        //     vertical-align: middle;
+        // }
+    }
+}
+
+.uploadBox {
+    padding-top: 30px;
+    text-align: center;
+}
+
+.editBox {
+    width: 15%;
+    padding-left: 4%;
+    text-align: left;
+}
+
+.btns {
+    padding-top: 30px;
+    text-align: center;
+}
+
+.getCodeBox {
+    .el-button {
+        background-color: @themeColor;
+        color: #ffffff;
+    }
+
+    /deep/ .el-input-group__append {
+        border: 1px solid transparent;
+    }
+}
+</style>

+ 65 - 53
src/views/systemManagement/parameterDetail.vue

@@ -1,7 +1,7 @@
 <!--新增、编辑、查看参数详情-->
 <template>
     <div>
-        <div class="title">选择普通账户</div>
+        <!--<div class="title">选择普通账户</div>
         <tableList
             ref="table"
             style="width:60%;min-width: 900px;margin: auto;"
@@ -12,39 +12,45 @@
             selection
         >
             
-        </tableList>
+        </tableList>-->
         <el-form
             ref="form"
             :model="form"
             :rules="rules"
-            label-width="200px"
+            label-width="220px"
             class="flexBox"
         >
             <div class="formItemBox">
-                <el-form-item label="可创建子账户数量:" prop="projectName">
+                <el-form-item label="账户名称:" prop="userName">
+                    {{form.userName}}
+                </el-form-item>
+                <el-form-item label="可创建子账户数量:" prop="numCreateUser">
                     <el-input
+                        type="number"
                         placeholder="请输入"
-                        maxlength="30"
-                        v-autoTrim="{ obj: form, key: 'projectName' }"
-                        v-model="form.projectName"
+                        maxlength="10"
+                        v-autoTrim="{ obj: form, key: 'numCreateUser' }"
+                        v-model="form.numCreateUser"
                     >
                     </el-input>
                 </el-form-item>
-                <el-form-item label="最多可创建场景测试包数量:" prop="parallelism">
+                <el-form-item label="最多可创建场景测试包数量:" prop="numCreateScenePackage">
                     <el-input
+                        type="number"
                         placeholder="请输入"
-                        maxlength="100"
-                        v-autoTrim="{ obj: form, key: 'parallelism' }"
-                        v-model="form.parallelism"
+                        maxlength="10"
+                        v-autoTrim="{ obj: form, key: 'numCreateScenePackage' }"
+                        v-model="form.numCreateScenePackage"
                     >
                     </el-input>
                 </el-form-item>
-                <el-form-item label="场景数据包的最大场景数量:" prop="maxSimulationTime">
+                <el-form-item label="场景数据包的最大场景数量:" prop="numScenePerPackage">
                     <el-input
+                        type="number"
                         placeholder="请输入"
-                        maxlength="100"
-                        v-autoTrim="{ obj: form, key: 'maxSimulationTime' }"
-                        v-model="form.maxSimulationTime"
+                        maxlength="10"
+                        v-autoTrim="{ obj: form, key: 'numScenePerPackage' }"
+                        v-model="form.numScenePerPackage"
                     >
                     </el-input>
                 </el-form-item>
@@ -67,57 +73,56 @@ export default {
     components: {tableList},
     data() {
         return {
-            getDataWay:{
-                //dataType: "url",
-                dataType: "data",
-                type: "post",
-                // firstRequest: false,
-                // data: this.$api.algorithmsLibrary.selectSharedAlgorithmList,
-                data:[{a1:'1',a2:'2',a3:'3',a4:'4'}],
-                param: {},
-            },
-            columns: [
-                //表格列
-                {
-                    label: "账户名",
-                    prop: "a1",
-                },
-                {
-                    label: "账户类型",
-                    prop: "a2",
-                },
-                {
-                    label: "联系人",
-                    prop: "a3",
-                },
-                {
-                    label: "联系方式",
-                    prop: "a4",
-                },
-            ],
             form: {
-                
+                id:'',
+                userId:'',
+                userName:'111',
+                numCreateUser: '',
+                numCreateScenePackage: '',
+                numScenePerPackage: '',
             },
-            
             rules: {
+                numCreateUser:  [{ required: true, message: "请输入", trigger: "blur" }],
+                numCreateScenePackage:  [{ required: true, message: "请输入", trigger: "blur" }],
+                numScenePerPackage:  [{ required: true, message: "请输入", trigger: "blur" }],
             }
         };
     },
-
     computed: {},
-
+    async created(){
+        if(this.$route.query){
+            this.form = {...this.$route.query}
+            delete this.form.modifyTime
+        }
+        this.$axios({
+            method:'POST',
+            url:this.$api.systemManagement.getParamHistory,
+            data:{
+                userId: this.$route.query.userId
+            }
+        })
+    },
     methods: {
         save(){
-
+            this.$axios({
+                method:'POST',
+                url:this.$api.systemManagement.saveParameter,
+                data:{
+                    ...this.form
+                }
+            }).then(res => {
+                if(res.code == 200){
+                    this.$message.success("保存成功");
+                    this.$router.history.go(-1)        
+                }else{
+                    this.$message.error(res.message || "保存失败");
+                }
+            })
         },
         cancel(){
-
+            this.$router.history.go(-1)
         },
     },
-
-    mounted() {
-        
-    },
 };
 </script>
 
@@ -156,4 +161,11 @@ export default {
     font-size: 16px;
     font-weight: bold;
 }
+/deep/ input::-webkit-outer-spin-button,
+/deep/ input::-webkit-inner-spin-button {
+  -webkit-appearance: none !important;
+}
+/deep/ input[type='number'] {
+  -moz-appearance: textfield !important;
+}
 </style>

+ 24 - 20
src/views/systemManagement/parameterManagement.vue

@@ -5,7 +5,7 @@
             <template slot="searchItem1">
                 <span class="label">账户名</span>
                 <el-input
-                    v-model="searchParams.algorithmCode"
+                    v-model="searchParams.userName"
                     size="small"
                     clearable
                     placeholder="请输入"
@@ -23,13 +23,13 @@
         </search-layout>
 
         <div class="myTabsBox myTabsBoxThreeTabs">
-            <el-button
+            <!--<el-button
                 v-bind:class="{ addBtn: true}"
                 icon="el-icon-circle-plus-outline"
                 @click="addOne"
                 type="primary"
                 >新增参数配置</el-button
-            >
+            >-->
         </div>
 
         <tableList
@@ -47,11 +47,11 @@
                         class="el-icon-edit-outline elIcon"
                         title="编辑"
                     ></i>
-                    <i
+                    <!--<i
                         @click="delOne(scope.row)"
                         class="el-icon-delete elIcon"
                         title="删除"
-                    ></i>
+                    ></i>-->
                 </template>
             </el-table-column>
         </tableList>
@@ -69,35 +69,35 @@ export default{
         return {
             searchParams: {
                 //搜索参数
-                
+                userName:''
             },
-            validationStatusList: [],
             getDataWay:{
-                //dataType: "url",
-                dataType: "data",
+                dataType: "url",
                 type: "post",
-                // firstRequest: false,
-                // data: this.$api.algorithmsLibrary.selectSharedAlgorithmList,
-                data:[{a1:'1',a2:'2',a3:'3',a4:'4'}],
+                data: this.$api.systemManagement.getParameterList,
                 param: {},
             },
             columns: [
                 //表格列
                 {
-                    label: "账户名",
-                    prop: "a1",
+                    label: "账户名",
+                    prop: "userName",
                 },
                 {
                     label: "可创建子账户数量",
-                    prop: "a2",
+                    prop: "numCreateUser",
                 },
                 {
                     label: "最多可创建场景测试包数量",
-                    prop: "a3",
+                    prop: "numCreateScenePackage",
                 },
                 {
                     label: "场景数量包的最大场景数",
-                    prop: "a4",
+                    prop: "numScenePerPackage",
+                },
+                {
+                    label: "创建时间",
+                    prop: "modifyTime"
                 },
                 {
                     label: "操作",
@@ -128,7 +128,7 @@ export default{
         },
         doReset() {
             this.searchParams = {
-                
+                userName:''
             };
             this.doSearch();
         },
@@ -136,7 +136,11 @@ export default{
             this.$router.push("/parameterDetail")
         },
         editRow(row) {
-            
+            let query = {...row}
+            this.$router.push({
+                path: 'parameterDetail',
+                query
+            })
         },
         delOne(row) {
             this.$confirm("确认是否删除?", "提示", {
@@ -163,6 +167,6 @@ export default{
     }
 }
 .myTabsBox{
-    min-height:99px;
+    min-height:29px;
 }
 </style>