import re import json import base64 from PyQt6 import * from PyQt6.QtCore import * from PyQt6.QtGui import * from PyQt6.QtWidgets import * from ui.Ui_createModelDlg import Ui_createModelDlg from devmodelModel.devModelManager import devModelManager from common import common import ui.res_rc class CreateModelDlg(QDialog): createFinished = pyqtSignal() editFinished = pyqtSignal() def __init__(self, parent=None): super().__init__(parent) self.ui = Ui_createModelDlg() self.ui.setupUi(self) self.devModelId = '' self.group_id = '' self.extendedProperty = {} self.interfaceType = {} self.pixmap = '' self.ui.pbOk.clicked.connect(self.handleAccept) self.ui.pbCancel.clicked.connect(self.reject) def showCreateDlg(self, group_id): self.setWindowTitle('创建设备模型') self.pixmap = '' self.group_id = group_id self.extendedProperty = {} self.interfaceType = {} self.ui.leName.setText('') self.ui.leCategory.setText('') self.ui.leDevModelNumber.setText('') self.exec() def showEditDlg(self, data): self.setWindowTitle('编辑设备模型') self.ui.leName.setText(data['name']) self.ui.leCategory.setText(data['category']) modelnumber = "" self.pixmap = '' self.devModelId = data['id'] if 'attr' in data: attr_json_dict = data['attr'] if 'modelnumber' in attr_json_dict: modelnumber = attr_json_dict['modelnumber'] if 'image' in attr_json_dict: self.pixmap = attr_json_dict['image'] if 'extendedProperty' in attr_json_dict: self.extendedProperty = attr_json_dict['extendedProperty'] if 'interfaceType' in attr_json_dict: self.interfaceType = attr_json_dict['interfaceType'] self.ui.leDevModelNumber.setText(modelnumber) self.exec() def handleAccept(self): name = self.ui.leName.text() category = self.ui.leCategory.text() attr = { "modelnumber": self.ui.leDevModelNumber.text(), "image": self.pixmap, "extendedProperty" : self.extendedProperty, "interfaceType" : self.interfaceType } if self.windowTitle() == '创建设备模型': id = devModelManager.create(self.group_id, name, category, attr) if id != "": self.createFinished.emit() elif self.windowTitle() == '编辑设备模型': param = { "name": name, "category": category, "attr" : attr } if devModelManager.update(self.devModelId, param): self.editFinished.emit() self.accept()