Переглянути джерело

修改完成数据组配置样式,完成数据模型的表达式验证

zhoupeng 1 рік тому
батько
коміт
d4d68bb662

+ 1 - 1
industry-admin/src/components/commonTable/index.vue

@@ -1,5 +1,5 @@
 <template>
-    <el-table :data="tableData" border style="width: 100%" @selection-change="handleSelectionChange">
+    <el-table height="68vh" :data="tableData" border style="width: 100%" @selection-change="handleSelectionChange">
         <el-table-column align="center" v-if="isShowCheckbox" type="selection" width="55" fixed></el-table-column>
         <el-table-column align="center" v-if="isShowIndex" label="序号" type="index" width="60" fixed>
         </el-table-column>

+ 14 - 5
industry-admin/src/views/source/dataModel/addModel.vue

@@ -72,6 +72,12 @@ export default {
             if (this.$refs['dataModelForm']) this.$refs['dataModelForm'].resetFields()
             this.visible = false
         },
+        /** 提取数字 */
+        extractNumbers(expr) {
+            const regex = /\d+/g;
+            const numbers = expr.match(regex);
+            return numbers ? numbers.map(Number) : [];
+        },
         /** 新增编辑测试 */
         testEditEvent() {
             const txt = this.dataModelForm.operationRule
@@ -126,7 +132,6 @@ export default {
                 const num = 99999
                 value = value.replace(/calcVal/g, num + '')
                 if (/^[\d|\-|\+|\*|\/|\.|\(|\)]+$/.test(value)) {
-                    console.log("----------")
                     // 排除连续的运算符
                     if (/[\-|\+|\*|\/]{2,}/.test(value)) {
                         callback(new Error('表达式验证失败,请修改后再试'))
@@ -164,6 +169,7 @@ export default {
         /** 保存数据模型 */
         saveDataModelEvent() {
             this.$refs['dataModelForm'].validate((valid) => {
+                console.log(valid)
                 if (valid) {
                     const val1 = parseInt(this.dataModelForm.replacingValue)
                     if (val1 < 0 || val1 > 99) {
@@ -220,12 +226,15 @@ export default {
                         this.$refs['dataModelForm'].resetFields()
                         this.$emit('getAllDataModel')
                     }).catch((e) => {
-                        this.$message({
-                            message: e,
-                            type: 'warning'
-                        })
+
+                    })
+                } else {
+                    this.$message({
+                        message: '表达式验证失败,请修改后再试',
+                        type: 'warning'
                     })
                 }
+                return
             })
         }
     }

+ 17 - 0
industry-admin/src/views/source/itemGroup/dialog.css

@@ -0,0 +1,17 @@
+.dialog-max {
+    height: 85vh;
+
+    .el-dialog__body {
+        height: 72vh;
+        overflow: hidden;
+    }
+}
+
+.dialog-med {
+    height: 50vh;
+
+    .el-dialog__body {
+        height: 35vh;
+        overflow: hidden;
+    }
+}

+ 4 - 1
industry-admin/src/views/source/itemGroup/index.vue

@@ -16,7 +16,7 @@
           @getAllItem="getAllItem">
         </CommonTable>
         <!-- 分页信息 -->
-        <pagination v-show="tableTotal > 0" :total="tableTotal" :page.sync="queryParams.page"
+        <pagination v-show="tableTotal > 0" small :total="tableTotal" :page.sync="queryParams.page"
           :limit.sync="queryParams.limit" align="right" @pagination="getAllItemGroup" />
       </el-col>
     </el-row>
@@ -195,3 +195,6 @@ export default {
   }
 }
 </script>
+<style rel="stylesheet/scss" lang="scss">
+@import './dialog.css';
+</style>

+ 4 - 4
industry-admin/src/views/source/itemGroup/item.vue

@@ -1,15 +1,15 @@
 <template>
     <div>
         <!-- 数据项全部信息 -->
-        <el-dialog v-if="visible" :title="title" width="1500px" top="10vh" center :before-close="dialogClose"
-            :visible.sync="visible" :close-on-click-modal="false" :append-to-body="true">
+        <el-dialog v-if="visible" :title="title" width="80%" custom-class="dialog-max" top="10vh" center
+            :before-close="dialogClose" :visible.sync="visible" :close-on-click-modal="false" :append-to-body="true">
             <div style="margin-bottom: 10px;">
                 <el-input placeholder="请输入数据项名称" size="mini" style="width: 200px;" @input="itemChangeEvent"
                     prefix-icon="el-icon-search">
                 </el-input>
                 <el-checkbox size="mini" style="margin-left: 20px;" @change="groupRunCheckboxEvent"
                     title="固定每5秒刷新一次数据">实时数据</el-checkbox>
-                <el-button type="danger" icon="el-icon-delete" size="mini" @click="multipleDelItemEvent"
+                <el-button type="danger" size="mini" @click="multipleDelItemEvent"
                     style="float: right;">批量删除</el-button>
                 <el-button type="primary" icon="el-icon-s-tools" size="mini" @click="multipleModelItemEvent"
                     style="float: right; margin-right: 15px;">批量设置表达式</el-button>
@@ -336,4 +336,4 @@ export default {
         }
     }
 }
-</script>
+</script>

+ 2 - 2
industry-admin/src/views/source/itemGroup/itemChoose.vue

@@ -1,7 +1,7 @@
 <template>
     <div>
         <!-- 数据项选择 -->
-        <el-dialog v-if="visible" :title="title" width="650px" top="10vh" center :before-close="dialogClose"
+        <el-dialog v-if="visible" :title="title" width="30%" custom-class="dialog-med" top="10vh" center :before-close="dialogClose"
             :visible.sync="visible" :close-on-click-modal="false" :append-to-body="true">
             <el-form ref="itemGroupForm" :model="itemGroupForm" :rules="groupRules" label-width="80px">
                 <el-form-item label="组名称" prop="groupName">
@@ -278,4 +278,4 @@ export default {
 
     }
 }
-</script>
+</script>

+ 1 - 13
industry-admin/src/views/source/itemGroup/itemChooseTree.css

@@ -1,15 +1,3 @@
-.cy-custom-dialog {
-    .el-dialog {
-        height: 80vh;
-        overflow: hidden !important;
-
-        .el-dialog__body {
-            height: calc(100% - 120px);
-            overflow: auto;
-        }
-    }
-}
-
 .cy-transform-data {
     width: calc(50% - 60px);
 
@@ -59,7 +47,7 @@
     /* color: #ffffff !important; */
 
     .el-tree-node:focus>.el-tree-node__content {
-        background-color: #b8bdbd;
+        background-color: #d9dddd;
     }
 
     .el-tree-node__content:hover {

+ 10 - 8
industry-admin/src/views/source/itemGroup/itemChooseTree.vue

@@ -1,7 +1,7 @@
 <template>
     <div>
         <!-- 数据项选择树 -->
-        <el-dialog :title="title" width="80%" top="10vh" class="cy-custom-dialog" center v-if="visible"
+        <el-dialog :title="title" width="80%" top="10vh" custom-class="dialog-max" class="cy-custom-dialog" center v-if="visible"
             :before-close="dialogClose" :visible.sync="visible" :close-on-click-modal="false" :append-to-body="true">
             <el-form label-width="100px">
                 <el-row>
@@ -12,10 +12,10 @@
                                     :value="dict.id"></el-option>
                             </el-select>
                         </el-form-item>
-                        <el-form-item label="所选路径" style="margin-bottom: 20px; width: 300px">
+                        <!-- <el-form-item label="所选路径" style="margin-bottom: 20px; width: 300px">
                             <el-input style="margin-top: -10px; width: 400px" disabled
                                 v-model="queryParams.chooseItemStr"></el-input>
-                        </el-form-item>
+                        </el-form-item> -->
                     </el-col>
                     <template>
                         <el-select v-model="queryParams.needItemStr" multiple collapse-tags placeholder="请选择">
@@ -28,7 +28,8 @@
                     </template>
                 </el-row>
             </el-form>
-            <div style="display: flex; height: calc(100% - 36px); overflow: auto">
+            <!-- <div style="display: flex; height: calc(100% - 36px); overflow: auto"> -->
+            <div style="display: flex; height: calc(100% - 36px);">
                 <!-- 数据项 -->
                 <div class="cy-transform-data">
                     <el-divider content-position="left">数据项</el-divider>
@@ -37,9 +38,9 @@
                             <el-input placeholder="输入关键字进行过滤" v-model="filterLabelText" size="mini"
                                 prefix-icon="el-icon-search"></el-input>
                         </div>
-                        <div style="height: calc(100% - 35px); overflow: auto">
+                        <div style="height: calc(100% - 50px); overflow: auto">
                             <!-- 树节点 -->
-                            <div style="height: 40%;overflow: auto;">
+                            <div style="height: 20vh;overflow: auto;">
                                 <el-tree class="cy-group-tree" ref="itemTree" :indent="10" :load="loadGroupDataItemNode"
                                     lazy node-key="id" :filter-node-method="filterLabelEvent"
                                     @node-click="handleLabelNodeClick" @node-expand="handleLabelNodeExpand"
@@ -56,7 +57,7 @@
                                 </el-tree>
                             </div>
                             <!-- 树节点对应的叶节点 -->
-                            <div style="height: 60%; overflow: auto">
+                            <div style="height: 30vh; overflow: auto">
                                 <el-divider content-position="left" style="margin-bottom: 15px !important">
                                     <i></i>
                                     <span>(共{{ leavesList.length }}项)</span>
@@ -92,7 +93,7 @@
                     <div class="cy-line">
                         <el-checkbox v-model="isSelectAllItem" @change="selectAllItem"
                             style="margin-left: 10px">全选</el-checkbox>
-                        <div style="height: calc(100% - 22px); overflow: auto">
+                        <div style="height: 60vh; overflow: auto">
                             <p-virtual-check ref="pvcChoose" :data-sources="chooseItemDataListByTree"
                                 @check-change-all="checkChangeAllChoose"
                                 @check-change="checkChangeChoose"></p-virtual-check>
@@ -533,5 +534,6 @@ export default {
 </script>
 
 <style rel="stylesheet/scss" lang="scss">
+@import './dialog.css';
 @import './itemChooseTree.css';
 </style>

+ 6 - 4
industry-admin/src/views/source/itemGroup/itemConfigModel.vue

@@ -1,18 +1,20 @@
 <template>
     <div>
         <!-- 数据项表达式配置 -->
-        <el-dialog v-if="visible" :title="title" width="1400px" top="10vh" center :before-close="dialogClose"
+        <el-dialog v-if="visible" :title="title" width="80%" top="5vh" center :before-close="dialogClose"
             :visible.sync="visible" :close-on-click-modal="false" :append-to-body="true">
             <el-form label-width="100px">
                 <el-row>
                     <el-col :span="6">
-                        <el-form-item label="数据源:" style="margin-bottom: 20px; width: 300px">
+                        <el-form-item label="数据源:" style="margin-bottom: 5px; width: 100%">
                             <el-select v-model="dataSourceId" disabled>
                                 <el-option v-for="dict in dataSourceList" :key="dict.id" :label="dict.dataSourceName"
                                     :value="dict.id"></el-option>
                             </el-select>
                         </el-form-item>
-                        <el-form-item label="数据项:" style="margin-bottom: 0px; width: 300px">
+                    </el-col>
+                    <el-col :span="6">
+                        <el-form-item label="数据项:" style="margin-bottom: 5px; width: 100%">
                             <el-input placeholder="请输入数据项名称进行过滤" style="" @input="chooseItemChangeEvent"
                                 v-model="filterChooseItemText"></el-input>
                         </el-form-item>
@@ -95,7 +97,7 @@ export default {
         },
         /** 确定数据项的设置 */
         saveItemChoose() {
-            this.$emit('saveItemChoose',this.tableData)
+            this.$emit('saveItemChoose', this.tableData)
             this.dialogClose()
             this.$emit('dialogClose')
         },