model.vue 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828
  1. <template>
  2. <div class="app-container">
  3. <el-tabs v-model="activeObjType" @tab-click="handleTabClick">
  4. <el-tab-pane label="设施模型" name="1"></el-tab-pane>
  5. <el-tab-pane label="设备模型" name="2"></el-tab-pane>
  6. <el-tab-pane label="设备部件" name="3"></el-tab-pane>
  7. </el-tabs>
  8. <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
  9. <el-form-item label="模型编码" prop="modelCode">
  10. <el-input
  11. v-model="queryParams.modelCode"
  12. placeholder="请输入模型编码"
  13. clearable
  14. @keyup.enter.native="handleQuery"
  15. />
  16. </el-form-item>
  17. <el-form-item label="模型名称" prop="modelName">
  18. <el-input
  19. v-model="queryParams.modelName"
  20. placeholder="请输入模型名称"
  21. clearable
  22. @keyup.enter.native="handleQuery"
  23. />
  24. </el-form-item>
  25. <el-form-item>
  26. <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
  27. <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
  28. </el-form-item>
  29. </el-form>
  30. <el-row :gutter="10" class="mb8">
  31. <el-col :span="1.5">
  32. <el-button
  33. type="primary"
  34. plain
  35. icon="el-icon-plus"
  36. size="mini"
  37. @click="handleAdd"
  38. v-hasPermi="['ems:model:add']"
  39. >新增
  40. </el-button>
  41. </el-col>
  42. <el-col :span="1.5">
  43. <el-button
  44. type="success"
  45. plain
  46. icon="el-icon-edit"
  47. size="mini"
  48. :disabled="single"
  49. @click="handleUpdate"
  50. v-hasPermi="['ems:model:edit']"
  51. >修改
  52. </el-button>
  53. </el-col>
  54. <el-col :span="1.5">
  55. <el-button
  56. type="danger"
  57. plain
  58. icon="el-icon-delete"
  59. size="mini"
  60. :disabled="multiple"
  61. @click="handleDelete"
  62. v-hasPermi="['ems:model:remove']"
  63. >删除
  64. </el-button>
  65. </el-col>
  66. <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
  67. </el-row>
  68. <el-table v-loading="loading" :data="modelList" @selection-change="handleSelectionChange">
  69. <el-table-column type="selection" width="55" align="center"/>
  70. <el-table-column label="模型编码" align="center" prop="modelCode"/>
  71. <el-table-column label="模型名称" align="center" prop="modelName"/>
  72. <el-table-column label="对象类型" align="center">
  73. <template slot-scope="scope">
  74. {{ objTypeMapping[scope.row.objType] }}
  75. </template>
  76. </el-table-column>
  77. <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
  78. <template slot-scope="scope">
  79. <el-button
  80. size="mini"
  81. type="text"
  82. icon="el-icon-edit"
  83. @click="handleUpdate(scope.row)"
  84. v-hasPermi="['ems:model:edit']"
  85. >修改
  86. </el-button>
  87. <el-button
  88. size="mini"
  89. type="text"
  90. icon="el-icon-delete"
  91. @click="handleDelete(scope.row)"
  92. v-hasPermi="['ems:model:remove']"
  93. >删除
  94. </el-button>
  95. <el-button
  96. size="mini"
  97. type="text"
  98. icon="el-icon-info"
  99. @click="handleDetail(scope.row)"
  100. >
  101. 特性
  102. </el-button>
  103. </template>
  104. </el-table-column>
  105. </el-table>
  106. <pagination
  107. v-show="total>0"
  108. :total="total"
  109. :page.sync="queryParams.pageNum"
  110. :limit.sync="queryParams.pageSize"
  111. @pagination="getList"
  112. />
  113. <!-- 添加或修改能源对象属性对话框 -->
  114. <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
  115. <el-form ref="form" :model="form" :rules="rules" label-width="80px">
  116. <el-form-item label="模型编码" prop="modelCode">
  117. <el-input v-model="form.modelCode" placeholder="请输入模型code"/>
  118. </el-form-item>
  119. <el-form-item label="模型名称" prop="modelName">
  120. <el-input v-model="form.modelName" placeholder="请输入模型名称"/>
  121. </el-form-item>
  122. <!-- 对象类型选择,但值由标签页控制 -->
  123. <!-- <el-form-item label="对象类型" prop="objType">-->
  124. <!-- <el-select v-model="form.objType" placeholder="请选择对象类型" disabled>-->
  125. <!-- <el-option :label="objTypeMapping[activeObjType]" :value="activeObjType" />-->
  126. <!-- </el-select>-->
  127. <!-- </el-form-item>-->
  128. </el-form>
  129. <div slot="footer" class="dialog-footer">
  130. <el-button type="primary" @click="submitForm">确 定</el-button>
  131. <el-button @click="cancel">取 消</el-button>
  132. </div>
  133. </el-dialog>
  134. <!-- ”特性“对话框 -->
  135. <el-drawer :title=curRow.modelName size="80%" :visible.sync="showDrawer" direction="rtl">
  136. <div class="drawer-content" style="padding-left:50px">
  137. <el-tabs v-model="subKey">
  138. <el-tab-pane label="对象属性" name="attr">
  139. <el-row :gutter="10" class="mb8">
  140. <el-col :span="1.5">
  141. <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAttrAdd"
  142. v-hasPermi="['ems:attr:add']">新增
  143. </el-button>
  144. </el-col>
  145. </el-row>
  146. <el-table v-loading="loading" :data="attrList">
  147. <el-table-column type="selection" width="55" align="center"/>
  148. <el-table-column label="属性名称" align="center" prop="attrName"/>
  149. <el-table-column label="属性标识" align="center" prop="attrKey"/>
  150. <el-table-column label="属性单位" align="center" prop="attrUnit"/>
  151. <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
  152. <template slot-scope="scope">
  153. <el-button size="mini" type="text" icon="el-icon-edit" @click="handleAttrUpdate(scope.row)"
  154. v-hasPermi="['ems:attr:edit']">修改
  155. </el-button>
  156. <el-button size="mini" type="text" icon="el-icon-delete" class="deleteBtn"
  157. @click="handleAttrDelete(scope.row)" v-hasPermi="['ems:attr:remove']">删除
  158. </el-button>
  159. </template>
  160. </el-table-column>
  161. </el-table>
  162. <pagination v-show="total>0" :total="total" :page.sync="queryAttrParams.pageNum"
  163. :limit.sync="queryAttrParams.pageSize"
  164. @pagination="getAttrList"/>
  165. <!-- 添加或修改服务区用电属性对话框 -->
  166. <el-dialog :title="title" :visible.sync="attrOpen" width="500px" append-to-body>
  167. <el-form ref="attrForm" :model="attrForm" :rules="attrRules" label-width="150px">
  168. <el-form-item label="属性名称" prop="attrName">
  169. <el-input v-model="attrForm.attrName" placeholder="请输入属性名称"/>
  170. </el-form-item>
  171. <el-form-item label="属性标识" prop="attrKey">
  172. <el-input v-model="attrForm.attrKey" placeholder="请输入属性标识"/>
  173. </el-form-item>
  174. <el-form-item label="属性类型" prop="attrType">
  175. <el-select v-model="attrForm.attrType" placeholder="请选择属性类型">
  176. <el-option label="静态" value="0"></el-option>
  177. <el-option label="动态" value="1"></el-option>
  178. </el-select>
  179. </el-form-item>
  180. <el-form-item label="属性单位" prop="attrUnit">
  181. <el-input v-model="attrForm.attrUnit" placeholder="请输入属性单位"/>
  182. </el-form-item>
  183. </el-form>
  184. <div slot="footer" class="dialog-footer">
  185. <el-button type="primary" @click="submitAttrForm">确 定</el-button>
  186. <el-button @click="attrCancel">取 消</el-button>
  187. </div>
  188. </el-dialog>
  189. </el-tab-pane>
  190. <el-tab-pane label="对象事件" name="second">
  191. <el-row :gutter="10" class="mb8">
  192. <el-col :span="1.5">
  193. <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleEventAdd"
  194. v-hasPermi="['ems:event:add']">新增
  195. </el-button>
  196. </el-col>
  197. </el-row>
  198. <el-table v-loading="loading" :data="eventList">
  199. <el-table-column type="selection" width="55" align="center"/>
  200. <el-table-column label="事件名称" align="center" prop="eventKey"/>
  201. <el-table-column label="事件类型" align="center" prop="eventType">
  202. <template slot-scope="scope">
  203. <span>{{ scope.row.eventType === 1 ? '消息上报' : '异常告警' }}</span>
  204. </template>
  205. </el-table-column>
  206. <el-table-column label="事件代码" align="center" prop="eventCode"/>
  207. <el-table-column label="外系统事件代码" align="center" prop="extEventCode"/>
  208. <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
  209. <template slot-scope="scope">
  210. <el-button size="mini" type="text" icon="el-icon-edit" @click="handleEventUpdate(scope.row)"
  211. v-hasPermi="['ems:event:edit']">修改
  212. </el-button>
  213. <el-button size="mini" type="text" icon="el-icon-delete" class="deleteBtn"
  214. @click="handleEventDelete(scope.row)" v-hasPermi="['ems:event:remove']">删除
  215. </el-button>
  216. </template>
  217. </el-table-column>
  218. </el-table>
  219. <pagination v-show="total>0" :total="total" :page.sync="queryEventParams.pageNum"
  220. :limit.sync="queryEventParams.pageSize"
  221. @pagination="getEventList"/>
  222. <!-- 添加或修改事件对话框 -->
  223. <el-dialog :title="title" :visible.sync="eventOpen" width="500px" append-to-body>
  224. <el-form ref="eventForm" :model="eventForm" :rules="eventRules" label-width="80px">
  225. <el-form-item label="事件名称" prop="eventKey">
  226. <el-input v-model="eventForm.eventKey" placeholder="请输入事件名称"/>
  227. </el-form-item>
  228. <el-form-item label="事件类型" prop="eventType">
  229. <el-select v-model="eventForm.eventType" placeholder="请选择对象类型">
  230. <el-option v-for="item in objEventTypeOptions"
  231. :label="item.name"
  232. :value="item.code"
  233. :key="item.code" />
  234. </el-select>
  235. </el-form-item>
  236. <el-form-item label="事件代码" prop="eventCode">
  237. <el-input v-model="eventForm.eventCode" placeholder="请输入事件代码"/>
  238. </el-form-item>
  239. <el-form-item label="外系统事件代码" prop="extEventCode">
  240. <el-input v-model="eventForm.extEventCode" placeholder="请输入外系统事件代码"/>
  241. </el-form-item>
  242. </el-form>
  243. <div slot="footer" class="dialog-footer">
  244. <el-button type="primary" @click="submitEventForm">确 定</el-button>
  245. <el-button @click="eventCancel">取 消</el-button>
  246. </div>
  247. </el-dialog>
  248. </el-tab-pane>
  249. <el-tab-pane label="对象能力" name="third">
  250. <el-row :gutter="10" class="mb8">
  251. <el-col :span="1.5">
  252. <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAbilityAdd"
  253. v-hasPermi="['ems:ability:add']">新增
  254. </el-button>
  255. </el-col>
  256. </el-row>
  257. <el-table v-loading="loading" :data="abilityList">
  258. <el-table-column type="selection" width="55" align="center"/>
  259. <el-table-column label="能力名称" align="center" prop="abilityName"/>
  260. <el-table-column label="能力键" align="center" prop="abilityKey"/>
  261. <el-table-column label="能力参数" align="center" prop="abilityParam"/>
  262. <el-table-column label="能力描述" align="center" prop="abilityDesc"/>
  263. <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
  264. <template slot-scope="scope">
  265. <el-button size="mini" type="text" icon="el-icon-edit" @click="handleAbilityUpdate(scope.row)"
  266. v-hasPermi="['ems:ability:edit']">修改
  267. </el-button>
  268. <el-button size="mini" type="text" icon="el-icon-delete" class="deleteBtn"
  269. @click="handleAbilityDelete(scope.row)" v-hasPermi="['ems:ability:remove']">删除
  270. </el-button>
  271. </template>
  272. </el-table-column>
  273. </el-table>
  274. <!-- 添加或修改能力对话框 -->
  275. <el-dialog :title="title" :visible.sync="abilityOpen" width="500px" append-to-body>
  276. <el-form ref="abilityForm" :model="abilityForm" :rules="abilityRules" label-width="80px">
  277. <!-- <el-form-item label="模型code" prop="modelCode">-->
  278. <!-- <el-input v-model="abilityForm.modelCode" placeholder="请输入模型code"/>-->
  279. <!-- </el-form-item>-->
  280. <el-form-item label="能力键" prop="abilityKey">
  281. <el-input v-model="abilityForm.abilityKey" placeholder="请输入能力键"/>
  282. </el-form-item>
  283. <el-form-item label="能力名称" prop="abilityName">
  284. <el-input v-model="abilityForm.abilityName" placeholder="请输入能力名称"/>
  285. </el-form-item>
  286. <el-form-item label="能力描述" prop="abilityDesc">
  287. <el-input v-model="abilityForm.abilityDesc" type="textarea" placeholder="请输入内容"/>
  288. </el-form-item>
  289. <el-form-item label="能力参数" prop="abilityParam">
  290. <el-input v-model="abilityForm.abilityParam" type="textarea" placeholder="请输入内容"/>
  291. </el-form-item>
  292. </el-form>
  293. <div slot="footer" class="dialog-footer">
  294. <el-button type="primary" @click="submitAbilityForm">确 定</el-button>
  295. <el-button @click="abilityCancel">取 消</el-button>
  296. </div>
  297. </el-dialog>
  298. </el-tab-pane>
  299. </el-tabs>
  300. </div>
  301. </el-drawer>
  302. </div>
  303. </template>
  304. <script>
  305. import { listModel, getModel, delModel, addModel, updateModel, getModelByCode } from '@/api/basecfg/objModel'
  306. import { getEvent, delEvent, addEvent, updateEvent } from '@/api/basecfg/objEvent'
  307. import { getAttr, delAttr, addAttr, updateAttr } from '@/api/basecfg/objAttribute'
  308. import { getAbility, delAbility, addAbility, updateAbility } from '@/api/basecfg/objAbility'
  309. export default {
  310. name: 'Model',
  311. data() {
  312. return {
  313. // 遮罩层
  314. loading: true,
  315. // 选中数组
  316. ids: [],
  317. // 非单个禁用
  318. single: true,
  319. // 非多个禁用
  320. multiple: true,
  321. // 显示搜索条件
  322. showSearch: true,
  323. // 总条数
  324. total: 0,
  325. // 能源对象属性表格数据
  326. modelList: [],
  327. filteredModelList:[],
  328. activeObjType: '1', // 当前激活的 objType
  329. // 弹出层标题
  330. title: '',
  331. // 是否显示弹出层
  332. open: false,
  333. eventOpen: false,
  334. attrOpen: false,
  335. abilityOpen: false,
  336. // 查询参数
  337. queryParams: {
  338. pageNum: 1,
  339. pageSize: 10,
  340. modelCode: null,
  341. modelName: null,
  342. objType: null
  343. },
  344. objTypeMapping: {
  345. 1: '设施',
  346. 2: '设备',
  347. 3: '设备部件'
  348. },
  349. objTypeOptions: [
  350. { code: 1, name: '设施' },
  351. { code: 2, name: '设备' },
  352. { code: 3, name: '设备部件' }
  353. ],
  354. objEventTypeOptions: [
  355. { code: 1, name: '信息上报' },
  356. { code: 2, name: '异常警告' },
  357. ],
  358. // 查询参数
  359. queryEventParams: {
  360. pageNum: 1,
  361. pageSize: 10
  362. },
  363. queryAttrParams: {
  364. pageNum: 1,
  365. pageSize: 10
  366. },
  367. queryAbilityParams: {
  368. pageNum: 1,
  369. pageSize: 10
  370. },
  371. curRow: {},
  372. // 表单参数
  373. form: {
  374. id: null,
  375. modelCode: null,
  376. modelName: null,
  377. objType: null // 这里将由标签页控制
  378. },
  379. eventForm: {},
  380. attrForm: {},
  381. abilityForm: {},
  382. // 表单校验
  383. rules: {
  384. modelCode: [
  385. { required: true, message: '模型code不能为空', trigger: 'blur' }
  386. ],
  387. modelName: [
  388. { required: true, message: '模型名称不能为空', trigger: 'blur' }
  389. ],
  390. objType: [
  391. { required: true, message: '对象类型不能为空', trigger: 'change' }
  392. ]
  393. },
  394. eventRules: {
  395. modelCode: [
  396. { required: true, message: '模型code不能为空', trigger: 'blur' }
  397. ],
  398. eventKey: [
  399. { required: true, message: '事件名称不能为空', trigger: 'blur' }
  400. ],
  401. eventType: [
  402. { required: true, message: '事件类型不能为空', trigger: 'change' }
  403. ],
  404. eventName: [
  405. { required: true, message: '事件名称不能为空', trigger: 'blur' }
  406. ]
  407. },
  408. attrRules: {
  409. modelCode: [
  410. { required: true, message: '模型code不能为空', trigger: 'blur' }
  411. ],
  412. attrKey: [
  413. { required: true, message: '属性标识不能为空', trigger: 'blur' }
  414. ],
  415. attrName: [
  416. { required: true, message: '属性名称不能为空', trigger: 'blur' }
  417. ]
  418. },
  419. abilityRules: {
  420. modelCode: [
  421. { required: true, message: '模型code不能为空', trigger: 'blur' }
  422. ],
  423. abilityKey: [
  424. { required: true, message: '能力键不能为空', trigger: 'blur' }
  425. ],
  426. abilityName: [
  427. { required: true, message: '能力名称不能为空', trigger: 'blur' }
  428. ]
  429. },
  430. // 能源对象事件表格数据
  431. eventList: [],
  432. // 能源对象属性表格数据
  433. attrList: [],
  434. // 能源对象能力表格数据
  435. abilityList: [],
  436. showDrawer: false,
  437. subDialogShow: false,
  438. // subTitle: '',
  439. subKey: 'attr'
  440. }
  441. },
  442. // computed: {
  443. // filteredModelList() {
  444. // // 根据当前激活的 objType 过滤模型列表
  445. // return this.modelList.filter(item => item.objType.toString() === this.activeObjType);
  446. // }
  447. // },
  448. // watch: {
  449. // activeObjType(newVal) {
  450. // // 当激活的 objType 变化时,重新获取列表数据
  451. // this.getList();
  452. // }
  453. // },
  454. created() {
  455. this.getList()
  456. },
  457. methods: {
  458. handleTabClick(tab) {
  459. this.activeObjType = tab.name;
  460. this.form.objType = null; // 重置表单时清除预设的 objType
  461. this.getList();
  462. },
  463. // 设配详情
  464. handleDetail(row) {
  465. this.showDrawer = true
  466. this.curRow = row
  467. console.log('模型代码', this.modelCode)
  468. getModel(this.curRow.id).then(response => {
  469. const data = response.data
  470. console.log('data', data)
  471. this.attrList = data.attrList
  472. this.eventList = data.eventList
  473. this.abilityList = data.abilityList
  474. })
  475. },
  476. /** 新增按钮操作 */
  477. handleAttrAdd() {
  478. this.attrReset()
  479. this.attrOpen = true
  480. this.title = '添加能源对象属性'
  481. this.attrForm.modelCode= this.curRow.modelCode
  482. },
  483. handleEventAdd() {
  484. this.eventReset()
  485. this.eventOpen = true
  486. this.title = '添加能源对象事件'
  487. this.eventForm.modelCode= this.curRow.modelCode
  488. },
  489. handleAbilityAdd() {
  490. this.abilityReset()
  491. this.abilityOpen = true
  492. this.title = '添加能源对象事件'
  493. this.abilityForm.modelCode= this.curRow.modelCode
  494. },
  495. /** 查询能源对象属性列表 */
  496. getList() {
  497. this.loading = true
  498. listModel({ objType: this.activeObjType }).then(response => {
  499. this.modelList = response.rows
  500. this.total = response.total
  501. this.loading = false
  502. })
  503. },
  504. getEventList(modelcode) {
  505. console.log('对象事件!!!!')
  506. this.loading = true
  507. getModelByCode(modelcode).then(response => {
  508. const data = response.data
  509. console.log('data', data)
  510. this.attrList = data.attrList
  511. this.eventList = data.eventList
  512. this.abilityList = data.abilityList
  513. })
  514. this.loading = false
  515. },
  516. /** 查询能源对象属性列表 */
  517. getAttrList(modelcode) {
  518. this.loading = true
  519. getModelByCode(modelcode).then(response => {
  520. const data = response.data
  521. console.log('data', data)
  522. this.attrList = data.attrList
  523. this.eventList = data.eventList
  524. this.abilityList = data.abilityList
  525. })
  526. this.loading = false
  527. },
  528. /** 查询能源对象能力列表 */
  529. getAbilityList(modelcode) {
  530. this.loading = true
  531. console.log('对象能力!!!!')
  532. getModelByCode(modelcode).then(response => {
  533. const data = response.data
  534. console.log('data', data)
  535. this.attrList = data.attrList
  536. this.eventList = data.eventList
  537. this.abilityList = data.abilityList
  538. })
  539. this.loading = false
  540. },
  541. // 表单重置
  542. attrReset() {
  543. this.attrForm = {
  544. id: null,
  545. modelCode: this.curRow.modelCode || '',
  546. attrKey: null,
  547. attrType: null,
  548. attrName: null,
  549. attrValue: null,
  550. attrUnit: null
  551. }
  552. this.resetForm('attrForm')
  553. },
  554. eventReset() {
  555. this.eventForm = {
  556. id: null,
  557. modelCode: this.curRow.modelCode || '',
  558. eventKey: null,
  559. eventType: null,
  560. eventName: null,
  561. eventDesc: null,
  562. eventCode: null,
  563. extEventCode: null
  564. }
  565. this.resetForm('eventForm')
  566. },
  567. abilityReset() {
  568. this.abilityForm = {
  569. id: null,
  570. modelCode: this.curRow.modelCode || '',
  571. abilityKey: null,
  572. abilityName: null,
  573. abilityDesc: null,
  574. abilityParam: null
  575. }
  576. this.resetForm('abilityForm')
  577. },
  578. /** 修改按钮操作 */
  579. handleAttrUpdate(row) {
  580. this.attrReset()
  581. const id = row.id || this.ids
  582. getAttr(id).then(response => {
  583. this.attrForm = response.data
  584. this.attrOpen = true
  585. this.title = '修改能源对象属性'
  586. this.attrForm.modelCode= this.curRow.modelCode
  587. })
  588. },
  589. handleEventUpdate(row) {
  590. this.eventReset()
  591. const id = row.id || this.ids
  592. getEvent(id).then(response => {
  593. this.eventForm = response.data
  594. this.eventOpen = true
  595. this.title = '修改能源对象事件'
  596. this.attrForm.modelCode= this.curRow.modelCode
  597. })
  598. },
  599. handleAbilityUpdate(row) {
  600. this.abilityReset()
  601. const id = row.id || this.ids
  602. getAbility(id).then(response => {
  603. this.abilityForm = response.data
  604. this.abilityOpen = true
  605. this.title = '修改能源对象能力'
  606. this.attrForm.modelCode= this.curRow.modelCode
  607. })
  608. },
  609. /** 删除按钮操作 */
  610. handleAttrDelete(row) {
  611. const ids = row.id || this.ids
  612. this.$modal.confirm('是否确认删除能源对象属性编号为"' + ids + '"的数据项?').then(function() {
  613. return delAttr(ids)
  614. }).then(() => {
  615. console.log('删除row', row.modelCode)
  616. this.getAttrList(row.modelCode)
  617. this.$modal.msgSuccess('删除成功')
  618. }).catch(() => {
  619. })
  620. },
  621. handleEventDelete(row) {
  622. const ids = row.id || this.ids
  623. this.$modal.confirm('是否确认删除能源对象事件编号为"' + ids + '"的数据项?').then(function() {
  624. return delEvent(ids)
  625. }).then(() => {
  626. console.log('删除row', row.modelCode)
  627. this.getEventList(row.modelCode)
  628. this.$modal.msgSuccess('删除成功')
  629. }).catch(() => {
  630. })
  631. },
  632. handleAbilityDelete(row) {
  633. const ids = row.id || this.ids
  634. this.$modal.confirm('是否确认删除能源对象能力编号为"' + ids + '"的数据项?').then(function() {
  635. return delAbility(ids)
  636. }).then(() => {
  637. console.log('删除row', row.modelCode)
  638. this.getAbilityList(row.modelCode)
  639. this.$modal.msgSuccess('删除成功')
  640. }).catch(() => {
  641. })
  642. },
  643. /** 提交按钮 */
  644. submitAttrForm() {
  645. this.$refs['attrForm'].validate(valid => {
  646. if (valid) {
  647. if (this.attrForm.id != null) {
  648. updateAttr(this.attrForm).then(response => {
  649. this.$modal.msgSuccess('修改成功')
  650. this.attrOpen = false
  651. console.log('id', this.attrForm.modelCode)
  652. this.getAttrList(this.attrForm.modelCode)
  653. })
  654. } else {
  655. addAttr(this.attrForm).then(response => {
  656. this.$modal.msgSuccess('新增成功')
  657. this.attrOpen = false
  658. this.getAttrList(this.attrForm.modelCode)
  659. })
  660. }
  661. }
  662. })
  663. },
  664. submitEventForm() {
  665. this.$refs['eventForm'].validate(valid => {
  666. if (valid) {
  667. if (this.eventForm.id != null) {
  668. updateEvent(this.eventForm).then(response => {
  669. this.$modal.msgSuccess('修改成功')
  670. this.eventOpen = false
  671. console.log('id', this.eventForm)
  672. this.getEventList(this.eventForm.modelCode)
  673. })
  674. } else {
  675. addEvent(this.eventForm).then(response => {
  676. this.$modal.msgSuccess('新增成功')
  677. this.eventOpen = false
  678. console.log('id', this.eventForm)
  679. this.getEventList(this.eventForm.modelCode)
  680. })
  681. }
  682. }
  683. })
  684. },
  685. submitAbilityForm() {
  686. this.$refs['abilityForm'].validate(valid => {
  687. if (valid) {
  688. if (this.abilityForm.id != null) {
  689. updateAbility(this.abilityForm).then(response => {
  690. this.$modal.msgSuccess('修改成功')
  691. this.abilityOpen = false
  692. this.getAbilityList(this.abilityForm.modelCode)
  693. })
  694. } else {
  695. addAbility(this.abilityForm).then(response => {
  696. this.$modal.msgSuccess('新增成功')
  697. this.abilityOpen = false
  698. this.getAbilityList(this.abilityForm.modelCode)
  699. })
  700. }
  701. }
  702. })
  703. },
  704. // 取消按钮
  705. attrCancel() {
  706. this.attrOpen = false
  707. this.attrReset()
  708. },
  709. eventCancel() {
  710. this.eventOpen = false
  711. this.eventReset()
  712. },
  713. // 取消按钮
  714. abilityCancel() {
  715. this.abilityOpen = false
  716. this.abilityReset()
  717. },
  718. // 取消按钮
  719. cancel() {
  720. this.open = false
  721. this.reset()
  722. },
  723. // 表单重置
  724. reset() {
  725. this.form = {
  726. id: null,
  727. modelCode: null,
  728. modelName: null,
  729. objType: null
  730. }
  731. this.resetForm('form')
  732. },
  733. /** 搜索按钮操作 */
  734. handleQuery() {
  735. this.queryParams.pageNum = 1
  736. this.getList()
  737. },
  738. /** 重置按钮操作 */
  739. resetQuery() {
  740. this.resetForm('queryForm')
  741. this.handleQuery()
  742. },
  743. // 多选框选中数据
  744. handleSelectionChange(selection) {
  745. this.ids = selection.map(item => item.id)
  746. this.single = selection.length !== 1
  747. this.multiple = !selection.length
  748. },
  749. /** 新增按钮操作 */
  750. handleAdd() {
  751. this.reset()
  752. this.open = true
  753. this.title = '添加能源对象属性'
  754. this.form.objType = this.activeObjType; // 设置默认对象类型
  755. },
  756. /** 修改按钮操作 */
  757. handleUpdate(row) {
  758. this.reset()
  759. const id = row.id || this.ids
  760. getModel(id).then(response => {
  761. this.form = response.data
  762. this.form.objType = this.activeObjType; // 设置默认对象类型
  763. this.open = true
  764. this.title = '修改能源对象属性'
  765. })
  766. },
  767. /** 提交按钮 */
  768. submitForm() {
  769. this.$refs['form'].validate(valid => {
  770. if (valid) {
  771. if (this.form.id != null) {
  772. updateModel(this.form).then(response => {
  773. this.$modal.msgSuccess('修改成功')
  774. this.open = false
  775. this.getList()
  776. })
  777. } else {
  778. addModel(this.form).then(response => {
  779. this.$modal.msgSuccess('新增成功')
  780. this.open = false
  781. this.getList()
  782. })
  783. }
  784. }
  785. })
  786. },
  787. /** 删除按钮操作 */
  788. handleDelete(row) {
  789. const ids = row.id || this.ids
  790. this.$modal.confirm('是否确认删除能源对象属性编号为"' + ids + '"的数据项?').then(function() {
  791. return delModel(ids)
  792. }).then(() => {
  793. this.getList()
  794. this.$modal.msgSuccess('删除成功')
  795. }).catch(() => {
  796. })
  797. }
  798. }
  799. }
  800. </script>