Prechádzať zdrojové kódy

完成数据组配置,树节点过滤监听事件,完成数据组赛选传值错误,完成界面添加数据项功能

zhoupeng 1 rok pred
rodič
commit
668435d40e

+ 16 - 0
industry-admin/src/api/source/itemGroup.js

@@ -161,4 +161,20 @@ export function saveOrUpdateItemGroup(data) {
         method: 'post',
         data
     })
+}
+
+/**
+ * 添加数据组项
+ * @param data
+ * @returns {AxiosPromise}
+ */
+export function addItemList(data) {
+    return request({
+        url: '/itemGroup/addItemList',
+        headers: {
+            isToken: true
+        },
+        method: 'post',
+        data
+    });
 }

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

@@ -27,20 +27,25 @@
         <UpdateItem ref="updateItem" @getItemGroupById="getItemGroupById"></UpdateItem>
         <!-- 批量设置表达式 -->
         <MultipleModel ref="multipleModel" @getItemGroupById="getItemGroupById"></MultipleModel>
+        <!-- 选择数据项 -->
+        <ItemChoose ref="itemChoose" @getItemGroupById="getItemGroupById"></ItemChoose>
     </div>
 </template>
 
 <script>
 import { showLoading, showConfirmWin } from '@/utils/cqcy'
 import CommonTable from '../../../components/commonTable/index.vue'
+import { getAllDataSource } from '@/api/source/dataSource'
 import { getItemGroupById, getItemValueById, deleteItemByIdList } from '@/api/source/itemGroup';
 import UpdateItem from './updateItem.vue'
-import MultipleModel from './multipleModel.vue';
+import MultipleModel from './multipleModel.vue'
+import ItemChoose from './itemChoose.vue'
 export default {
     components: {
         CommonTable,
         UpdateItem,
-        MultipleModel
+        MultipleModel,
+        ItemChoose
     },
     data() {
         return {
@@ -64,7 +69,7 @@ export default {
                     propName: "describe",
                     labelName: "别名",
                 }, {
-                    propName: "operationRule",
+                    propName: "remark",
                     labelName: "表达式",
                 },
                 {
@@ -142,7 +147,7 @@ export default {
                         propName: "dataType",
                         labelName: "数据项类型",
                     }, {
-                        propName: "operationRule",
+                        propName: "remark",
                         labelName: "表达式",
                     }, {
                         propName: "quality",
@@ -174,7 +179,7 @@ export default {
                         propName: "describe",
                         labelName: "别名",
                     }, {
-                        propName: "operationRule",
+                        propName: "remark",
                         labelName: "表达式",
                     },
                     {
@@ -230,9 +235,47 @@ export default {
             this.$refs.multipleModel.itemGroupId = this.id
             this.$refs.multipleModel.selectionItems = this.checkItemList
         },
+        /** 获取所有数据源列表 */
+        getAllDataSource() {
+            getAllDataSource({ page: 1, limit: 9999 }).then(res => {
+                if (!res || !res.data) {
+                    this.$message({
+                        message: '数据源查询失败!',
+                        type: 'warning'
+                    })
+                    return
+                }
+                this.$refs.itemChoose.dataSourceList = res.data.dataSourceList
+            }).catch((e) => {
+                this.$message({
+                    message: e,
+                    type: 'warning'
+                })
+            })
+        },
         /** 给数据组添加数据项 */
         addGroupItemEvent() {
-
+            this.$refs.itemChoose.itemGroupForm.id = this.id
+            getItemGroupById(this.id).then(res => {
+                if (!res || !res.data) {
+                    this.$message({
+                        message: '数据组查询失败!',
+                        type: 'warning'
+                    })
+                    return
+                }
+                this.getAllDataSource()
+                this.$refs.itemChoose.itemGroupForm.groupName = res.data.groupName
+                this.$refs.itemChoose.itemGroupForm.groupDescribe = res.data.groupDescribe
+                this.$refs.itemChoose.itemGroupForm.dataSourceId = res.data.dataSourceId
+                this.$refs.itemChoose.itemGroupForm.itemList = res.data.itemList ? res.data.itemList : []
+                this.$refs.itemChoose.addDataItem()
+            }).catch((e) => {
+                this.$message({
+                    message: e,
+                    type: 'warning'
+                })
+            })
         },
         /** 查看数据组实时数据 */
         getRealTimeData() {

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

@@ -43,7 +43,10 @@
 <script>
 import { showLoading } from '@/utils/cqcy'
 import ItemChooseTree from './itemChooseTree.vue'
-import { getNextAllItem, getDriverItemBySouceId, saveOrUpdateItemGroup } from '@/api/source/itemGroup';
+import {
+    getNextAllItem, getDriverItemBySouceId,
+    saveOrUpdateItemGroup, addItemList
+} from '@/api/source/itemGroup';
 
 export default {
     components: {
@@ -179,9 +182,13 @@ export default {
                 }
             });
         },
-        /**  */
+        /** 给数据组的数据项赋值 */
         saveItemChoose(datas) {
             this.itemGroupForm.itemList = datas
+            //如果界面没有弹出,则说明此界面是从添加数据项进来的,不是新增修改数据组进来的,则默认提交
+            if (!this.visible) {
+                this.addItemList()
+            }
         },
         /** 保存或修改数据组 */
         saveOrUpdateItemGroup() {
@@ -221,6 +228,28 @@ export default {
                 }
             });
         },
+        /** 添加数据项 */
+        addItemList() {
+            let params = {
+                id: this.itemGroupForm.id,
+                itemList: this.itemGroupForm.itemList,
+            }
+            addItemList(params).then((res) => {
+                if (res.data) {
+                    this.$message({
+                        message: "添加数据项成功!",
+                        type: 'success'
+                    })
+                    this.$emit('getItemGroupById', this.itemGroupForm.id)
+                    return;
+                }
+            }).catch((e) => {
+                this.$message({
+                    message: e,
+                    type: 'warning'
+                })
+            });
+        },
         /** 参数检查 */
         checkParams() {
             if (!this.itemGroupForm.groupName) {

+ 11 - 7
industry-admin/src/views/source/itemGroup/itemChooseTree.vue

@@ -125,6 +125,11 @@ export default {
         'p-virtual-check': PVirtualCheck,
         ItemConfigModel
     },
+    watch: {
+        filterLabelText(val) {
+            this.$refs.itemTree.filter(val);
+        },
+    },
     created() {
         this.getAllDataModel()
     },
@@ -254,9 +259,7 @@ export default {
             });
         },
         /** 过滤树节点事件 */
-        filterLabelEvent(value) {
-            console.log('--------------' + value)
-            // console.log(data)
+        filterLabelEvent(value, data) {
             if (!value) return true;
             return data.label.indexOf(value) !== -1;
         },
@@ -329,7 +332,8 @@ export default {
                     dataType: null,
                     label: this.leavesChooseList[i].fullPath,
                     nodeIndex: this.leavesChooseList[i].nodeIndex,
-                    itemName: this.leavesChooseList[i].itemName,
+                    itemName: this.leavesChooseList[i].fullPath,
+                    // itemName: this.leavesChooseList[i].itemName,
                     itemReadName: this.leavesChooseList[i].itemReadName,
                     value: this.leavesChooseList[i].itemReadName,
                     checked: false,
@@ -418,7 +422,7 @@ export default {
             params.chooseItemStr = this.queryParams.chooseItemStr
             params.needItemStr = JSON.stringify(this.queryParams.needItemStr)
             const treeArr = this.$refs.itemTree.getCheckedNodes();
-            const treeQ = document.getElementsByClassName('el-tree el-tree--highlight-current')[0]
+            const treeQ = document.getElementsByClassName('el-tree cy-item-tree el-tree--highlight-current')[0]
                 .getElementsByClassName('el-tree-node__content');
             let seTreeArr = []
             if (treeArr.length > 0) {
@@ -438,9 +442,9 @@ export default {
                 }
             }
             params.nextItemStr = JSON.stringify(seTreeArr)
-            if (!params.nextItemStr) {
+            if (!seTreeArr || seTreeArr.length == 0) {
                 this.$message({
-                    message: '输入的关键字过滤不能为空',
+                    message: '节点选择为空',
                     type: 'warning'
                 });
                 return

+ 10 - 11
industry-admin/src/views/source/itemGroup/updateItem.vue

@@ -36,7 +36,7 @@ export default {
             visible: false,
             title: '修改数据项',
             dataModelList: [],
-            itemGroupId:null,
+            itemGroupId: null,
             itemForm: {
                 id: null,
                 dataModelId: null,
@@ -76,18 +76,17 @@ export default {
             let loading = showLoading(this, '数据加载中,请稍候···')
             let params = JSON.parse(JSON.stringify(this.itemForm))
             updateItem(params).then(res => {
-                this.$message({
-                    message: '修改成功!',
-                    type: 'success'
-                })
-                this.$emit('getItemGroupById', this.itemGroupId)
-                this.dialogClose()
                 loading.close()
+                if (res.data) {
+                    this.$message({
+                        message: '修改成功!',
+                        type: 'success'
+                    })
+                    this.$emit('getItemGroupById', this.itemGroupId)
+                    this.dialogClose()
+                    return
+                }
             }).catch((e) => {
-                this.$message({
-                    message: e,
-                    type: 'warning'
-                })
             })
         }
     }

+ 4 - 0
industry-system/cqcy-ei-common/src/main/java/com/example/opc_common/entity/Item.java

@@ -63,6 +63,10 @@ public class Item implements Serializable {
      */
     private String operationRule;
     /**
+     * 四则运算表达式名称
+     */
+    private String remark;
+    /**
      * 虚拟数据源名称,返回给前端的
      */
     private String dataSourceName;

+ 1 - 0
industry-system/cqcy-ei-da/src/main/java/com/example/opc_da/util/OpcDaUtil.java

@@ -310,6 +310,7 @@ public class OpcDaUtil {
                                     }
                                 }
                             }
+                            jsonObject.put("remark", Blank.isNotEmpty(dm) ? dm.getRemark() : "");
                             jsonObject.put("operationRule", Blank.isNotEmpty(dm) ? dm.getOperationRule() : "");
                             jsonObject.put("createTime", itemMap.getTimestamp().getTime());
                             jsonObject.put("describe", map.get(item.getItemName()));

+ 5 - 14
industry-system/cqcy-ei-da/src/main/resources/mapper/ItemGroupDao.xml

@@ -181,6 +181,7 @@
         ti.data_model_id,
         ti.is_driver_item,
         tdm.operation_rule,
+        tdm.remark,
         tds.data_source_name
         FROM
         t_item ti
@@ -229,20 +230,10 @@
     </select>
 
     <select id="getItemById" resultType="com.example.opc_common.entity.Item">
-        select ti.id,
-               ti.item_group_id,
-               ti.item_name,
-               ti.item_read_name,
-               ti.item_type,
-               ti.node_index,
-               ti.data_type,
-               ti.`describe`,
-               ti.data_model_id,
-               ti.is_driver_item,
-               tig.run_state
-        from t_item ti
-                 left join t_item_group tig on ti.item_group_id = tig.id
-        where ti.id = #{id}
+        select
+        <include refid="item"/>
+        from t_item
+        where id = #{id}
     </select>
 
     <select id="getItemDescribe" resultType="java.lang.String">