index.vue 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206
  1. <template>
  2. <div>
  3. <detail-template
  4. :headData="mainAreaData"
  5. :title="`${userData.devicename}(${userData.serialnumber})`"
  6. :tabs="['详情信息','物模型','检查项','日志','关联阀门','关联网关','告警配置','告警记录']"
  7. ownertable="user"
  8. :delParam="{id:'20230616134502',content:{w_deviceid:router.currentRoute.value.query.id}}"
  9. <<<<<<< HEAD
  10. :disable="!utils.hasPermission('delete')"
  11. =======
  12. :disable="!utils.hasPermission('delete') || isDisabled"
  13. >>>>>>> xiaoqin
  14. >
  15. <template #operation>
  16. <Edit :disabled="isDisabled || !utils.hasPermission('update')" :data="userData" @onSuccess="mianData"></Edit>
  17. <customBtn
  18. :btnName="userData.isused ? '禁用' : '启用'"
  19. idName="20230615110102"
  20. keyName="w_deviceid"
  21. :id="userData.w_deviceid"
  22. type="primary"
  23. size="middle"
  24. :paramData="[{key:'isused',value:userData.isused ? 0 : 1}]"
  25. :message="userData.isused ? '确定禁用当前设备吗?' : '确定启用当起设备吗?'"
  26. @onSuccess="mianData"
  27. <<<<<<< HEAD
  28. :disabled="!utils.hasPermission('use')"
  29. =======
  30. :disabled="isDisabled || !utils.hasPermission('use')"
  31. >>>>>>> xiaoqin
  32. />
  33. <a-button @click="goControl" type="primary">设备控制</a-button>
  34. </template>
  35. <template #tab0>
  36. <p class="normal-title">基本信息</p>
  37. <defaultInfo :data="defaultInfoData" style="margin-bottom: 16px;"></defaultInfo>
  38. <p class="normal-title">系统信息</p>
  39. <defaultInfo :data="systemInfoData" :column="2"></defaultInfo>
  40. </template>
  41. <template #tab1>
  42. <a-radio-group v-model:value="currentInfoModel" :style="{ marginBottom: '8px' }" style="margin-bottom:10px">
  43. <a-radio-button value="attribute">属性定义</a-radio-button>
  44. <a-radio-button value="server">功能定义</a-radio-button>
  45. <!-- <a-radio-button value="event">事件定义</a-radio-button> -->
  46. </a-radio-group>
  47. <AttributeTab :disabled="isDisabled" :data="userData" ref="attributeTab" v-if="currentInfoModel == 'attribute'">
  48. </AttributeTab>
  49. <serveTable :disabled="isDisabled" :data="userData" ref="serveTab" v-else-if="currentInfoModel == 'server'">
  50. <template #add>
  51. <AddServe :disabled="!utils.hasPermission('modelTab') || isDisabled" :data="userData" @onSuccess="serveSuccess"></AddServe>
  52. </template>
  53. </serveTable>
  54. <eventTab :disabled="isDisabled" :data="userData" v-else></eventTab>
  55. </template>
  56. <template #tab3>
  57. <HistoryHandle></HistoryHandle>
  58. </template>
  59. <template #tab4>
  60. <AndAssets></AndAssets>
  61. </template>
  62. <template #tab5>
  63. <AndGateway></AndGateway>
  64. </template>
  65. <template #tab6>
  66. <warningSet></warningSet>
  67. </template>
  68. <template #tab7>
  69. <warningHistory></warningHistory>
  70. </template>
  71. </detail-template>
  72. </div>
  73. </template>
  74. <script setup>
  75. import Api from '@/api/api'
  76. import utils from '@/utils/utils'
  77. import normalTable from '@/template/normalTable/index.vue'
  78. import detailTemplate from '@/components/detailTemplate/index.vue'
  79. import defaultInfo from '@/template/defaultInfo/index.vue'
  80. import customBtn from '@/components/customHandleBtn/index.vue'
  81. import Edit from '../modules/Edit.vue'
  82. import AddAttrite from './modules/attributeTab/modules/Add.vue'
  83. import AddServe from './modules/serveTable/modules/Add.vue'
  84. import AttributeTab from './modules/attributeTab/index.vue'
  85. import serveTable from './modules/serveTable/index.vue'
  86. import eventTab from './modules/eventTab/index.vue'
  87. import HistoryHandle from './modules/historyHandle/index.vue'
  88. import AndAssets from './modules/andAssets/index.vue'
  89. import AndGateway from './modules/andGateway/index.vue'
  90. import warningSet from './modules/warningSet/index.vue'
  91. import warningHistory from './modules/warningHistory/index.vue'
  92. import { message, Modal } from 'ant-design-vue'
  93. import { ExclamationCircleOutlined } from '@ant-design/icons-vue'
  94. import { useRouter } from "vue-router";
  95. import { onMounted,ref,createVNode,computed,provide } from "vue"
  96. const router = useRouter()
  97. const mainAreaData = ref([])
  98. let currentInfoModel = ref('attribute')
  99. const userData = ref({})
  100. let defaultInfoData = ref([])
  101. let systemInfoData = ref([])
  102. let serveTab = ref()
  103. provide('detailData',() => {return userData.value})
  104. const mianData = async ()=>{
  105. const res = await Api.requested({
  106. "id":20230615103902,
  107. "content": {
  108. "w_deviceid": router.currentRoute.value.query.id
  109. }
  110. })
  111. userData.value = res.data
  112. console.log(userData.value);
  113. changeDataStructure(res.data)
  114. }
  115. let isDisabled = computed(() => {
  116. return userData.value.isOffical != 1
  117. })
  118. const changeDataStructure = (data) => {
  119. mainAreaData.value = [
  120. {
  121. label:'设备编码',
  122. value:data.serialnumber
  123. },
  124. {
  125. label:'设备名称',
  126. value:data.devicename
  127. },
  128. // {
  129. // label:'区域',
  130. // value:data.areaname
  131. // },
  132. {
  133. label:'启用状态',
  134. value:data.isused ? '启用':'停用',
  135. style:() => {
  136. let style = {}
  137. style.color = utils.statusAndColor(userData.value.isused ? '启用' : '停用')
  138. return style
  139. }
  140. },
  141. {
  142. label:'运行状态',
  143. value:data.status,
  144. style:() => {
  145. let style = {}
  146. style.color = utils.statusAndColor(data.status)
  147. return style
  148. }
  149. },
  150. {
  151. label:'描述',
  152. value:data.remarks
  153. },
  154. ]
  155. defaultInfoData.value = [
  156. {label:'产品编码',value:userData.value.prodnum},
  157. {label:'产品名称',value:userData.value.prodname},
  158. {label:'设备类型',value:userData.value.prodtype},
  159. {label:'厂商',value:userData.value.enterprisename},
  160. {label:'状态',value:userData.value.isused ? '启用' : '停用',style:() => {
  161. let style = {}
  162. style.color = utils.statusAndColor(userData.value.isused ? '启用' : '停用')
  163. return style
  164. }},
  165. {label:'地址',value:userData.value.address},
  166. {label:'消息协议',value:userData.value.protocolname},
  167. // {label:'设备数量',value:userData.value.device_count},
  168. {label:'描述',value:userData.value.remarks},
  169. ]
  170. systemInfoData.value = [
  171. {label:'创建时间',value:userData.value.createdate},
  172. {label:'创建人',value:userData.value.createby},
  173. {label:'最近编辑时间',value:userData.value.changedate},
  174. {label:'最近编辑人',value:userData.value.changeby},
  175. ]
  176. }
  177. let goControl = () => {
  178. router.push({
  179. path:`/${userData.value.prodnum}`,
  180. query: {
  181. id:userData.value.w_deviceid
  182. }
  183. })
  184. }
  185. let serveSuccess = () => {
  186. serveTab.value.param.content.ownerid = router.currentRoute.value.query.id
  187. serveTab.value.$refs.list.listData()
  188. }
  189. onMounted (()=>{
  190. mianData()
  191. })
  192. </script>
  193. <style>
  194. </style>