setting.py 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174
  1. # -*- coding: utf-8 -*-
  2. """
  3. demeter setting page
  4. name:setting.py 服务协议管理
  5. author:rabin
  6. """
  7. from .__load__ import *
  8. class server_path(Load):
  9. @Web.auth
  10. @Web.setting
  11. def get(self):
  12. self.set(
  13. name = u'服务管理'
  14. ,path = '/setting/server'
  15. ,width = '600'
  16. ,height = '600'
  17. ,search = (('label-1','cdate-time-start','cdate-time-end','name-input-mlike'), (u'日期范围',u'开始时间',u'截止时间',u'服务名称'))
  18. ,thead = (u'服务名称', u'服务类型', u'服务地址', u'服务端口', u'更新时间')
  19. ,tbody = ('name', 'server_type', 'server_host', 'server_port', 'cdate')
  20. ,state = True
  21. )
  22. self.list('setting_server')
  23. if self.data['list']:
  24. server_type = Demeter.service('core', 'setting').server_type()
  25. for key, value in enumerate(self.data['list']):
  26. self.data['list'][key]['server_type'] = server_type[value['server_type']-1]['name']
  27. self.show('list')
  28. class server_update_path(Load):
  29. @Web.auth
  30. @Web.setting
  31. def get(self):
  32. self.set(
  33. path = '/setting/server'
  34. ,label = (u'服务名称',u'服务类型',u'服务地址',u'服务端口',u'请求间隔')
  35. ,update = ('name-input-required','server_type-select-required','server_host-input-required','server_port-input-required','server_time-input-required')
  36. ,update_server_type = Demeter.service('core', 'setting').server_type()
  37. )
  38. self.one('setting_server')
  39. self.show('update')
  40. @Web.auth
  41. @Web.setting
  42. def post(self):
  43. self.update('setting_server')
  44. @Web.auth
  45. @Web.setting
  46. def delete(self):
  47. self.drop('setting_server')
  48. class product_path(Load):
  49. @Web.auth
  50. @Web.setting
  51. def get(self):
  52. self.set(
  53. name = u'产品管理'
  54. ,path = '/setting/product'
  55. ,width = '600'
  56. ,height = '600'
  57. ,search = (('label-1','cdate-time-start','cdate-time-end','name-input-mlike'), (u'日期范围',u'开始时间',u'截止时间',u'产品名称'))
  58. ,thead = (u'产品名称',u'产品标识', u'更新时间')
  59. ,tbody = ('name', 'key','cdate')
  60. ,state = True
  61. )
  62. self.list('setting_product')
  63. self.show('list')
  64. class product_update_path(Load):
  65. @Web.auth
  66. @Web.setting
  67. def get(self):
  68. self.set(
  69. path = '/setting/product'
  70. ,label = (u'产品名称',u'产品标识')
  71. ,update = ('name-input-required','key-input-required')
  72. )
  73. self.one('setting_product')
  74. self.show('update')
  75. @Web.auth
  76. @Web.setting
  77. def post(self):
  78. self.update('setting_product')
  79. @Web.auth
  80. @Web.setting
  81. def delete(self):
  82. self.drop('setting_product')
  83. class device_type_path(Load):
  84. @Web.auth
  85. @Web.setting
  86. def get(self):
  87. self.set(
  88. name = u'设备类型'
  89. ,path = '/setting/device_type'
  90. ,width = '600'
  91. ,height = '400'
  92. ,search = (('label-1','cdate-time-start','cdate-time-end','name-input-mlike'), (u'日期范围',u'开始时间',u'截止时间',u'类型名称'))
  93. ,thead = (u'类型ID', u'类型名称', u'类型标识', u'类型单位', u'更新时间')
  94. ,tbody = ('id', 'name', 'key', 'unit', 'cdate')
  95. ,state = True
  96. )
  97. self.list('setting_device_type')
  98. self.show('list')
  99. class device_type_update_path(Load):
  100. @Web.auth
  101. @Web.setting
  102. def get(self):
  103. self.set(
  104. path = '/setting/device_type'
  105. #,label = (u'类型名称', u'类型标识',u'类型单位',u'表达式')
  106. #,update = ('name-input-required','key-input-required','unit-input-',u'exp-text--请输入表达式,{n}代表当前数据')
  107. ,label = (u'类型名称', u'类型标识',u'类型单位',u'操作类型',u'可选项')
  108. ,update = ('name-input-required','key-input-required','unit-input-','data_type-select-','data_option-text--多个换行隔开')
  109. ,update_data_type = Demeter.service('core', 'setting').data_type()
  110. )
  111. self.one('setting_device_type')
  112. self.show('update')
  113. @Web.auth
  114. @Web.setting
  115. def post(self):
  116. self.update('setting_device_type')
  117. @Web.auth
  118. @Web.setting
  119. def delete(self):
  120. self.drop('setting_device_type')
  121. class modbus_code_path(Load):
  122. @Web.auth
  123. @Web.setting
  124. def get(self):
  125. self.set(
  126. name = u'设备命令码'
  127. ,path = '/setting/modbus_code'
  128. ,width = '600'
  129. ,height = '600'
  130. ,search = (('label-1','cdate-time-start','cdate-time-end','name-input-mlike','product_id-select-'), (u'日期范围',u'开始时间',u'截止时间',u'设备名称',u'选择产品'))
  131. ,thead = (u'命令码名称', u'所属产品',u'关联设备类型', u'表达式', u'更新时间')
  132. ,tbody = ('name', 'product','device_type_key', 'exp', 'cdate')
  133. ,state = True
  134. )
  135. self.data['common']['search_product_id-select-'] = self.service('common').list('setting_product')
  136. self.list('setting_modbus_code')
  137. if self.data['list']:
  138. for key, value in enumerate(self.data['list']):
  139. product = self.service('common').one('setting_product', id=value['product_id'])
  140. self.data['list'][key]['product'] = product['name']
  141. self.show('list')
  142. class modbus_code_update_path(Load):
  143. @Web.auth
  144. @Web.setting
  145. def get(self):
  146. self.set(
  147. path = '/setting/modbus_code'
  148. ,label = (u'命令码名称',u'所属产品',u'设备类型',u'表达式',u'硬件类型',u'从机id',u'寄存器读取地址',u'寄存器写入地址')
  149. ,update = ('name-input-required','product_id-select-required','device_type_key-text-required-直接输入设备类型的key,多个用换行隔开','exp-text--{n}为当前数据,多个用换行隔开','hardware_type-select-required','slave_id-input-required','register_read_address-text-required-多个用换行隔开,寄存器类型,地址,长度','register_write_address-text--多个用换行隔开,寄存器类型,地址,长度(可为空)')
  150. ,update_product_id = self.service('common').list('setting_product')
  151. ,update_device_type = self.service('common').list('setting_device_type')
  152. #,update_oper_type = Demeter.service('core', 'setting').oper_type()
  153. #,update_register_type = Demeter.service('core', 'setting').register_type()
  154. ,update_hardware_type = self.service('common').list('hardware_type')
  155. )
  156. self.one('setting_modbus_code')
  157. self.show('update')
  158. @Web.auth
  159. @Web.setting
  160. def post(self):
  161. self.update('setting_modbus_code')
  162. @Web.auth
  163. @Web.setting
  164. def delete(self):
  165. self.drop('setting_modbus_code')