ソースを参照

shiyu集群数量限制和部分字段校验

shiyu 2 年 前
コミット
978e30fa00

+ 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")

+ 16 - 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,21 @@ 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
+                }
+            })
+            console.log(temp)
+            return temp
+        }
     },
     methods: {
         addAccount() {

+ 55 - 6
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,7 +124,7 @@ export default {
                     label: "到期时间",
                     prop: "dateDynamicLicense",
                     formatter:(data)=>{
-                        return data.dateDynamicLicense.slice(0,10)
+                        return data.dateDynamicLicense?data.dateDynamicLicense.slice(0,10):''
                     }
                 },
                 {
@@ -145,9 +145,35 @@ export default {
                 numDynamicLicense: "",
                 dateDynamicLicense: ""
             },
+            validNumSimLicense: undefined,
+            validNumDynLicense: undefined,
             rules: {
-                numSimulationLicense: [{ required: true, message: "请输入", trigger: "blur" }],
-                dateSimulationLicense: [{ 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" },
+                    {
+                        validator: (rule, value, callback) => {
+                            if(this.$validateInteger(value)){
+                                callback()
+                            }else{
+                                callback(new Error('格式错误'))
+                            }
+                        },
+                        trigger: "blur"
+                    }
+                ],
                 numDynamicLicense: [{ required: true, message: "请输入", trigger: "blur" }],
                 dateDynamicLicense: [{ required: true, message: "请选择", trigger: "blur" }]
             }
@@ -158,6 +184,7 @@ export default {
             this.form = {...this.$route.query}
             delete this.form.modifyTime
         }
+        this.getValidNum()
     },
     async mounted() {
         if(this.$route.query.userId){
@@ -172,9 +199,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,

+ 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)
                     }
                 },
                 {