model.vue 27 KB

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