Ver código fonte

Merge branch 'master' of http://10.12.10.70:3000/zhangliang/simulation-front

zhangliang2 2 anos atrás
pai
commit
3dc3ffeea2

+ 3 - 1
src/api/systemManagement.js

@@ -9,12 +9,13 @@ 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'
-
+const getValidClusterInfo = basePart + '/cluster/getValidClusterInfo'
 //场景包管理
 const querySystemScenePackageList = basePart + '/SystemScenePackage/querySystemScenePackageList' // 场景包列表
 const saveSystemScenePackage = basePart + '/SystemScenePackage/saveSystemScenePackage' // 保存场景包详情
@@ -62,6 +63,7 @@ export default {
     saveCluster,
     getClusterHistory,
     getClusterNum,
+    getValidClusterInfo,
 
     querySystemScenePackageList,
     saveSystemScenePackage,

+ 3 - 0
src/lib/util.js

@@ -180,6 +180,9 @@ Vue.prototype.$getObjectPathByRandom = function () {
 Vue.prototype.$md5 = md5
 
 function TimeFormatter(time){
+    if(!time){
+        return ''
+    }
     let date = new Date(time)
     let year = date.getFullYear()
     let month = date.getMonth()+1

+ 1 - 1
src/router/systemManagement.js

@@ -56,7 +56,7 @@ export default [{
         path: "/clusteringDetail",
         name: "clusteringDetail",
         meta: {
-            tabname: "新增集群配置",
+            tabname: "编辑集群配置",
             menuKind: "systemManagement"
         },
         component: () => import("@/views/systemManagement/clusteringDetail")

+ 35 - 30
src/views/mainPage.vue

@@ -323,17 +323,21 @@ export default {
     watch:{
         roleCode:{
             handler(newV){
-                if(newV == '0'|| newV == '1'){
-                    this.tabsList=[
-                        {label: '系统监控', name: '1'},
-                        {label: '系统监控', name: '2'},
-                    ]
-                    this.activeName = '1'
-                }else{
-                    this.tabsList=[
-                        {label: '系统监控', name: '2'},
-                    ]
-                    this.activeName = '2'
+                if(newV){
+                    if(newV == '0'|| newV == '1'){
+                        this.tabsList=[
+                            {label: '服务监控', name: '1'},
+                            {label: '系统监控', name: '2'},
+                        ]
+                        this.activeName = '1'
+                        this.init()
+                    }else{
+                        this.tabsList=[
+                            {label: '系统监控', name: '2'},
+                        ]
+                        this.activeName = '2'
+                        this.init2()
+                    }  
                 }
             },
             immediate: true
@@ -373,35 +377,36 @@ export default {
             });
         },
         init() {
-            this.getData(this.$api.mainPage.selectHardware, "hardware");
-            this.getData(this.$api.mainPage.selectService, "serviceData");
-            this.getData(this.$api.mainPage.selectAccess, "dateAccessList");
+            this.getData(this.$api.mainPage.selectHardware, "hardware");  //1
+            this.getData(this.$api.mainPage.selectService, "serviceData");   //1
+            this.getData(this.$api.mainPage.selectAccess, "dateAccessList");  //1
 
             this.getDataWay = {
                 dataType: "url",
                 type: "post",
                 data: this.$api.mainPage.selectServer,
                 param: {},
-            };
-
-            this.getData(this.$api.mainPage.queryAllNum, "dataOverview");
-            this.getData(
-                this.$api.mainPage.selectRunProjectBySy,
-                "runProjectList"
-            );
-            this.getData(this.$api.mainPage.selectRunTaskBySy, "runTaskList");
-            this.getData(
-                this.$api.mainPage.selectRunProjectByState,
-                "dataListA"
-            );
-            this.getData(this.$api.mainPage.selectRunTaskByState, "dataListB");
-            this.getData(this.$api.mainPage.selectEvaluationLevel, "dataListC");
+            };  //1
+
+            this.getData(this.$api.mainPage.queryAllNum, "dataOverview");  //2
+            this.getData(this.$api.mainPage.selectRunProjectBySy, "runProjectList");  //2
+            this.getData(this.$api.mainPage.selectRunTaskBySy, "runTaskList"); //2
+            this.getData(this.$api.mainPage.selectRunProjectByState, "dataListA");  //2
+            this.getData(this.$api.mainPage.selectRunTaskByState, "dataListB");  //2
+            this.getData(this.$api.mainPage.selectEvaluationLevel, "dataListC");  //2
+        },
+        init2(){
+            this.getData(this.$api.mainPage.queryAllNum, "dataOverview");  //2
+            this.getData(this.$api.mainPage.selectRunProjectBySy, "runProjectList");  //2
+            this.getData(this.$api.mainPage.selectRunTaskBySy, "runTaskList"); //2
+            this.getData(this.$api.mainPage.selectRunProjectByState, "dataListA");  //2
+            this.getData(this.$api.mainPage.selectRunTaskByState, "dataListB");  //2
+            this.getData(this.$api.mainPage.selectEvaluationLevel, "dataListC");  //2
         },
     },
-
     mounted() {
         if (localStorage.getItem("Authorization")) {
-            this.init();
+            //this.init();
         }else{  //如果没有Authorization
             /*this.$alert('用户信息过期,请重新登陆','提示',{
                 confirmButtonText:'确定',

+ 15 - 1
src/views/systemManagement/accountManagement.vue

@@ -15,7 +15,7 @@
                 <span class="label">账户类型</span>
                 <el-select v-model="searchParams.roleCode">
                     <el-option
-                        v-for="item in roleCodeList"
+                        v-for="item in limitRoleCodeList"
                         :label="item.caption"
                         :value="item.code"
                         :key="item.code"
@@ -192,6 +192,20 @@ export default {
         await this.$dicsListsInit({
             roleCodeList: "roleCode",
         });
+        console.log(this.$store.state.roleCode)
+    },
+    computed:{
+        limitRoleCodeList(){
+            let temp = []
+            temp = this.roleCodeList.filter(item=>{
+                if(item.code > this.$store.state.roleCode){
+                    return true
+                }else{
+                    return false
+                }
+            })
+            return temp
+        }
     },
     methods: {
         addAccount() {

+ 31 - 3
src/views/systemManagement/addAccount.vue

@@ -93,7 +93,7 @@
                 </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-radio v-for="item in useTypeList" :key="item.code" :label="item.code" v-model="form.useType" :disabled="useTypeReadonly">{{item.caption}}</el-radio>
                 </el-form-item>
 
                 <div class="btns">
@@ -152,25 +152,53 @@ export default {
                 //password: [{ required: true, message: "请输入", trigger: "blur" }],
                 useType: [{ required: true, message: "请选择", trigger: "change" }],
             },
+            
         };
     },
     async created(){
-        this.form.useType = this.$store.state.useType
+        //this.form.useType = this.$store.state.useType
     },
     async mounted() {
         await this.$dicsListsInit({
             roleCodeList: "roleCode",
             useTypeList: "useType"
         });
+        //管理员用户创建时可以选择useType,普通账户只能继承useType且不可修改
+    },
+    watch:{
+        activeInfo:{
+            handler(newV){
+                if(newV.roleCode == '0'||newV.roleCode == '1'){
+
+                }else{
+                    this.form.useType = newV.useType
+                }
+            },
+            deep:true,
+            immediate:true
+        }
     },
     computed: {
+        activeInfo(){
+            return {
+                roleCode:this.$store.state.roleCode,
+                useType:this.$store.state.useType
+            }
+        },
         roleCode(){
             return this.$store.state.roleCode
         },
+        useTypeReadonly(){
+            if(this.roleCode == '0'|| this.roleCode == '1'){
+                return false
+            }else{
+                return true
+            }
+        },
         limitRoleCodeList(){
             let list = []
             this.roleCodeList.map(item=>{
-                if(Number(item.code)>=this.roleCode){
+                if(Number(item.code)>this.roleCode){
                     list.push(item)
                 }
             })

+ 60 - 9
src/views/systemManagement/clusteringDetail.vue

@@ -35,7 +35,7 @@
                 </el-form-item>
                 <el-form-item label="仿真软件license数量:" prop="numSimulationLicense">
                     <el-input
-                        placeholder="请输入"
+                        :placeholder="validNumSimLicense?'请输入仿真软件license数量,最大值:'+validNumSimLicense:'请输入仿真软件license数量'"
                         maxlength="20"
                         v-autoTrim="{ obj: form, key: 'numSimulationLicense' }"
                         v-model="form.numSimulationLicense"
@@ -52,7 +52,7 @@
                 </el-form-item>
                 <el-form-item label="动力学软件license数量:" prop="numDynamicLicense">
                     <el-input
-                        placeholder="请输入"
+                        :placeholder="validNumDynLicense?('请输入动力学软件license数量,最大值:'+validNumDynLicense):'请输入动力学软件license数量'"
                         maxlength="20"
                         v-autoTrim="{ obj: form, key: 'numDynamicLicense' }"
                         v-model="form.numDynamicLicense"
@@ -113,7 +113,7 @@ export default {
                     label: "到期时间",
                     prop: "dateSimulationLicense",
                     formatter:(data)=>{
-                        return data.dateSimulationLicense.slice(0,10)
+                        return data.dateSimulationLicense?data.dateSimulationLicense.slice(0,10):''
                     }
                 },
                 {
@@ -124,15 +124,15 @@ export default {
                     label: "到期时间",
                     prop: "dateDynamicLicense",
                     formatter:(data)=>{
-                        return data.dateDynamicLicense.slice(0,10)
+                        return data.dateDynamicLicense?data.dateDynamicLicense.slice(0,10):''
                     }
                 },
                 {
                     label: "操作时间",
                     prop: "modifyTime",
-                    formatter:(data)=>{
+                    /*formatter:(data)=>{
                         return this.$timeFormatter(data.modifyTime)
-                    }
+                    }*/
                 }
             ],
             form: {
@@ -145,10 +145,38 @@ export default {
                 numDynamicLicense: "",
                 dateDynamicLicense: ""
             },
+            validNumSimLicense: undefined,
+            validNumDynLicense: undefined,
             rules: {
-                numSimulationLicense: [{ required: true, message: "请输入", trigger: "blur" }],
-                dateSimulationLicense: [{ required: true, message: "请选择", trigger: "blur" }],
-                numDynamicLicense: [{ required: true, message: "请输入", trigger: "blur" }],
+                numSimulationLicense: [
+                    { required: true, message: "请输入", trigger: "blur" },
+                    {
+                        validator: (rule, value, callback) => {
+                            if(this.$validateInteger(value)){
+                                callback()
+                            }else{
+                                callback(new Error('格式错误'))
+                            }
+                        },
+                        trigger: "blur"
+                    },
+                ],
+                dateSimulationLicense: [
+                    { required: true, message: "请选择", trigger: "blur" },
+                ],
+                numDynamicLicense: [
+                    { required: true, message: "请输入", trigger: "blur" },
+                    {
+                        validator: (rule, value, callback) => {
+                            if(this.$validateInteger(value)){
+                                callback()
+                            }else{
+                                callback(new Error('格式错误'))
+                            }
+                        },
+                        trigger: "blur"
+                    }
+                ],
                 dateDynamicLicense: [{ required: true, message: "请选择", trigger: "blur" }]
             }
         };
@@ -158,6 +186,7 @@ export default {
             this.form = {...this.$route.query}
             delete this.form.modifyTime
         }
+        this.getValidNum()
     },
     async mounted() {
         if(this.$route.query.userId){
@@ -172,9 +201,31 @@ export default {
     },
     computed: {},
     methods: {
+        getValidNum(){
+            this.$axios({
+                method: 'POST',
+                url: this.$api.systemManagement.getValidClusterInfo,
+                data:{
+                    userId: this.$route.query.userId
+                }
+            }).then(res=>{
+                if(res.code == '200' && res.info){
+                    this.validNumDynLicense = res.info.validNumDynLicense
+                    this.validNumSimLicense = res.info.validNumSimLicense
+                }
+            })
+        },
         save(){
             this.$refs.form.validate(valid=>{
                 if(valid){
+                    if(this.validNumSimLicense && this.form.numSimulationLicense > this.validNumSimLicense){
+                        this.$message.warning('仿真软件license超数量出最大数量')
+                        return
+                    }
+                    if(this.validNumDynLicense && this.form.numDynamicLicense > this.validNumDynLicense){
+                        this.$message.warning('仿真软件license超数量出最大数量')
+                        return
+                    }
                     this.$axios({
                         method:"POST",
                         url:this.$api.systemManagement.saveCluster,

+ 4 - 0
src/views/systemManagement/clusteringManagement.vue

@@ -148,6 +148,10 @@ export default {
                         return data.dateDynamicLicense?data.dateDynamicLicense.slice(0,10):''
                     }
                 },
+                {   
+                    label: "操作时间",
+                    prop: "modifyTime",
+                },
                 {
                     label: "操作",
                     prop: "cgInfos",

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

@@ -82,7 +82,7 @@
                 </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-radio v-for="item in useTypeList" :key="item.code" :label="item.code" v-model="form.useType" disabled>{{item.caption}}</el-radio>
                 </el-form-item>
 
                 <div class="btns">

+ 2 - 2
src/views/systemManagement/parameterManagement.vue

@@ -97,9 +97,9 @@ export default{
                 },
                 {
                     label: "创建时间",
-                    prop: "modifyTime",
+                    prop: "createTime",
                     formatter: (data) => {
-                        return this.$timeFormatter(data.modifyTime)
+                        return this.$timeFormatter(data.createTime)
                     }
                 },
                 {