You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1495 lines
50 KiB

3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
  1. <template>
  2. <div class="mod-config">
  3. <el-form :inline="true" label-position="top" :model="searchData" >
  4. <el-form-item :label="'计划编码'">
  5. <el-input v-model="searchData.planID" style="width: 120px"></el-input>
  6. </el-form-item>
  7. <el-form-item :label="'计划描述'">
  8. <el-input v-model="searchData.planDesc" style="width: 120px"></el-input>
  9. </el-form-item>
  10. <el-form-item :label="'设备编码'">
  11. <el-input v-model="searchData.objectID" style="width: 120px"></el-input>
  12. </el-form-item>
  13. <el-form-item :label="'计划开始日期:'">
  14. <el-date-picker
  15. style="width: 120px"
  16. v-model="searchData.startDate"
  17. type="date"
  18. value-format="yyyy-MM-dd"
  19. placeholder="选择日期">
  20. </el-date-picker>
  21. </el-form-item>
  22. <el-form-item style="margin-top: 23px;">
  23. <laber style="margin-left: -9px;font-size: 19px">&#10142</laber>
  24. </el-form-item>
  25. <el-form-item :label="' '">
  26. <el-date-picker
  27. style="width: 120px"
  28. v-model="searchData.endDate"
  29. type="date"
  30. value-format="yyyy-MM-dd"
  31. placeholder="选择日期">
  32. </el-date-picker>
  33. </el-form-item>
  34. <el-form-item :label="'状态'">
  35. <el-select filterable v-model="searchData.status" style="width: 120px">
  36. <el-option label="全部" value=""></el-option>
  37. <el-option label="已计划" value="已计划"></el-option>
  38. <el-option label="进行中" value="进行中"></el-option>
  39. <el-option label="已结束" value="已结束"></el-option>
  40. <el-option label="已取消" value="已取消"></el-option>
  41. </el-select>
  42. </el-form-item>
  43. <el-form-item :label="' '">
  44. <el-button @click="getDataList()">查询</el-button>
  45. <el-button type="primary" @click="addModal()">新增计划</el-button>
  46. <!-- <el-button type="danger" @click="deletePlan()" :disabled="dataListSelections.length <= 0">批量删除</el-button>-->
  47. </el-form-item>
  48. </el-form>
  49. <el-table
  50. :height="height"
  51. :data="dataList"
  52. border
  53. v-loading="dataListLoading"
  54. style="width: 100%;">
  55. <!-- <el-table-column-->
  56. <!-- type="selection"-->
  57. <!-- header-align="center"-->
  58. <!-- align="center"-->
  59. <!-- width="50">-->
  60. <!-- </el-table-column>-->
  61. <el-table-column
  62. v-for="(item,index) in columnList" :key="index"
  63. :sortable="item.columnSortable"
  64. :prop="item.columnProp"
  65. :header-align="item.headerAlign"
  66. :show-overflow-tooltip="item.showOverflowTooltip"
  67. :align="item.align"
  68. :fixed="item.fixed==''?false:item.fixed"
  69. :min-width="item.columnWidth"
  70. :label="item.columnLabel">
  71. <template slot-scope="scope">
  72. <span v-if="!item.columnHidden"> {{ scope.row[item.columnProp] }}</span>
  73. <span v-if="item.columnImage"><img :src="scope.row[item.columnProp]"
  74. style="width: 100px; height: 80px"/></span>
  75. </template>
  76. </el-table-column>
  77. <el-table-column
  78. fixed="right"
  79. header-align="center"
  80. align="center"
  81. width="160"
  82. label="操作">
  83. <template slot-scope="scope">
  84. <a type="text" size="small" v-if="scope.row.status=='已计划'" @click="createOrder(scope.row)">下达</a>
  85. <a type="text" size="small" v-if="scope.row.status=='进行中'" @click="planOrder(scope.row)">计划</a>
  86. <a type="text" size="small" v-if="scope.row.status!='已结束'||scope.row.status!='已取消'" @click="cancelPlan(scope.row)">取消</a>
  87. <a type="text" size="small" v-if="scope.row.status=='已计划'" @click="updateModal(scope.row)">修改</a>
  88. <a type="text" size="small" v-if="scope.row.status!='进行中'" @click="deletePlan(scope.row)">删除</a>
  89. <a type="text" size="small" @click="itemModal(scope.row)">维保项目</a>
  90. </template>
  91. </el-table-column>
  92. </el-table>
  93. <el-pagination
  94. @size-change="sizeChangeHandle"
  95. @current-change="currentChangeHandle"
  96. :current-page="pageIndex"
  97. :page-sizes="[20, 50, 100, 1000]"
  98. :page-size="pageSize"
  99. :total="totalPage"
  100. layout="total, sizes, prev, pager, next, jumper">
  101. </el-pagination>
  102. <el-dialog title="维保计划" :close-on-click-modal="false" v-drag :visible.sync="modalFlag" width="570px">
  103. <el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: -5px;">
  104. <el-form-item label="计划编码:">
  105. <el-input v-model="modalData.planID" disabled style="width: 120px"></el-input>
  106. </el-form-item>
  107. <el-form-item label="计划描述:">
  108. <el-input v-model="modalData.planDesc" style="width: 120px"></el-input>
  109. </el-form-item>
  110. <el-form-item v-if="this.modalData.flag==2" >
  111. <span slot="label" style="" @click="getBaseList(200)"><a herf="#">设备编码</a></span>
  112. <el-input v-model="modalData.objectID" :disabled="modalDisableFlag" @blur="objectIDBlur" style="width: 120px"></el-input>
  113. </el-form-item>
  114. <el-form-item label="设备名称:" v-if="this.modalData.flag==2" >
  115. <el-input v-model="modalData.objectDesc" disabled style="width: 120px"></el-input>
  116. </el-form-item>
  117. </el-form>
  118. <el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: 0px;">
  119. <el-form-item >
  120. <span slot="label" style="" @click="getBaseList(1032)"><a herf="#">维保模板</a></span>
  121. <el-input v-model="modalData.propertiesCode" @blur="modalCodeBlur" style="width: 120px"></el-input>
  122. </el-form-item>
  123. <el-form-item label="模板名称:">
  124. <el-input v-model="modalData.propertiesDesc" disabled style="width: 120px"></el-input>
  125. </el-form-item>
  126. <el-form-item label="计划开始日期:">
  127. <el-date-picker
  128. style="width: 120px"
  129. v-model="modalData.planStartDate"
  130. type="date"
  131. value-format="yyyy-MM-dd"
  132. placeholder="必选">
  133. </el-date-picker>
  134. </el-form-item>
  135. <el-form-item label="计划结束日期:">
  136. <el-date-picker
  137. style="width: 120px"
  138. v-model="modalData.planEndDate"
  139. type="date"
  140. value-format="yyyy-MM-dd"
  141. placeholder="必选">
  142. </el-date-picker>
  143. </el-form-item>
  144. </el-form>
  145. <el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: 0px;">
  146. <el-form-item >
  147. <span slot="label" style="" @click="getBaseList(201)"><a herf="#">默认机修人员</a></span>
  148. <el-input v-model="modalData.operator" style="width: 120px"></el-input>
  149. </el-form-item>
  150. <el-form-item label="维保周期(天):">
  151. <el-input v-model="modalData.planPeriod" type="number" onkeyup="value=value.replace(/^[^\d]+/g,'')" style="width: 120px"></el-input>
  152. </el-form-item>
  153. <el-form-item label="备注:">
  154. <el-input v-model="modalData.remark" style="width: 254px"></el-input>
  155. </el-form-item>
  156. </el-form>
  157. <div v-if="this.modalData.flag==1">
  158. <div style="text-align: center ;font-size: 11px">
  159. <span> ----------------------------------------------------选择设备----------------------------------------------------</span>
  160. </div>
  161. <el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: -8px;">
  162. <el-form-item label="设备编码">
  163. <el-input v-model="objectData.objectID" style="width: 120px"></el-input>
  164. </el-form-item>
  165. <el-form-item label="设备名称">
  166. <el-input v-model="objectData.objectDesc" style="width: 120px"></el-input>
  167. </el-form-item>
  168. <el-form-item >
  169. <span slot="label" style="" @click="getBaseList(1027)"><a herf="#">设备分类编码</a></span>
  170. <el-input v-model="objectData.familyID" style="width: 120px"></el-input>
  171. </el-form-item>
  172. <el-form-item label=" ">
  173. <el-button @click="getObjectList()">查询</el-button>
  174. </el-form-item>
  175. </el-form>
  176. <el-table
  177. :height="200"
  178. :data="objectList"
  179. border
  180. v-loading="dataListLoading"
  181. @selection-change="selectionChangeHandle"
  182. style="width: 100%;">
  183. <el-table-column
  184. type="selection"
  185. header-align="center"
  186. align="center"
  187. width="50">
  188. </el-table-column>
  189. <el-table-column
  190. prop="objectID"
  191. header-align="center"
  192. align="left"
  193. min-width="30"
  194. label="设备编码">
  195. </el-table-column>
  196. <el-table-column
  197. prop="objectDesc"
  198. header-align="center"
  199. align="left"
  200. min-width="30"
  201. label="设备名称">
  202. </el-table-column>
  203. <el-table-column
  204. prop="familyID"
  205. header-align="center"
  206. align="left"
  207. min-width="30"
  208. label="设备分类">
  209. </el-table-column>
  210. <el-table-column
  211. prop="familyName"
  212. header-align="center"
  213. align="left"
  214. min-width="30"
  215. label="分类名称">
  216. </el-table-column>
  217. </el-table>
  218. </div>
  219. <el-footer style="height:40px;margin-top: 10px;text-align:center">
  220. <el-button type="primary" @click="saveData()">保存</el-button>
  221. <el-button type="primary" @click="modalFlag = false">关闭</el-button>
  222. </el-footer>
  223. </el-dialog>
  224. <el-dialog title="维保项目清单" :close-on-click-modal="false" v-drag :visible.sync="detailModelFlag" width="830px">
  225. <el-form :inline="true" label-position="top" @keyup.enter.native="getDataList()">
  226. <el-form-item :label="'维保模板编码'">
  227. <el-input v-model="detailData.codeNo" readonly style="width: 120px"></el-input>
  228. </el-form-item>
  229. <el-form-item :label="'维保模板名称'">
  230. <el-input v-model="detailData.codeDesc" readonly style="width: 120px"></el-input>
  231. </el-form-item>
  232. <el-form-item :label="' '">
  233. <!-- <el-button type="primary" @click="addDetailModal()">新增</el-button>-->
  234. </el-form-item>
  235. </el-form>
  236. <el-table
  237. :height="300"
  238. :data="detailList"
  239. border
  240. v-loading="dataListLoading"
  241. style="width: 100%;">
  242. <el-table-column
  243. v-for="(item,index) in columnDetailList" :key="index"
  244. :sortable="item.columnSortable"
  245. :prop="item.columnProp"
  246. :header-align="item.headerAlign"
  247. :show-overflow-tooltip="item.showOverflowTooltip"
  248. :align="item.align"
  249. :fixed="item.fixed==''?false:item.fixed"
  250. :min-width="item.columnWidth"
  251. :label="item.columnLabel">
  252. <template slot-scope="scope">
  253. <span v-if="!item.columnHidden"> {{ scope.row[item.columnProp] }}</span>
  254. <span v-if="item.columnImage"><img :src="scope.row[item.columnProp]"
  255. style="width: 100px; height: 80px"/></span>
  256. </template>
  257. </el-table-column>
  258. <el-table-column
  259. fixed="right"
  260. header-align="center"
  261. align="center"
  262. width="130"
  263. label="操作">
  264. <template slot-scope="scope">
  265. <a type="text" size="small" v-if="scope.row.valueChooseFlag=='Y'" @click="chooseModal(scope.row)">可选值</a>
  266. <a type="text" size="small" @click="updateItemModal(scope.row)">编辑</a>
  267. </template>
  268. </el-table-column>
  269. </el-table>
  270. <el-footer style="height:40px;margin-top: 20px;text-align:center">
  271. <el-button type="primary" @click="detailModelFlag = false">关闭</el-button>
  272. </el-footer>
  273. </el-dialog>
  274. <el-dialog title="维保项目" :close-on-click-modal="false" v-drag :visible.sync="itemModalFlag" width="430px">
  275. <el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: -5px;">
  276. <el-form-item label="维保项目编码:">
  277. <el-input v-model="itemModalData.itemNo" :disabled="itemModalDisableFlag" style="width: 120px"></el-input>
  278. </el-form-item>
  279. <el-form-item label="维保项目名称:">
  280. <el-input v-model="itemModalData.itemDesc" disabled style="width: 120px"></el-input>
  281. </el-form-item>
  282. <el-form-item :label="'检测值类型'">
  283. <el-select filterable v-model="itemModalData.valueTypeDb" style="width: 120px">
  284. <el-option label="文本" value="T"></el-option>
  285. <el-option label="数字" value="N"></el-option>
  286. </el-select>
  287. </el-form-item>
  288. </el-form>
  289. <el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: -5px;">
  290. <el-form-item label="维保方法说明:">
  291. <el-input v-model="itemModalData.itemRemark" style="width: 254px"></el-input>
  292. </el-form-item>
  293. <el-form-item :label="'是否值可选'">
  294. <el-select filterable v-model="itemModalData.valueChooseFlag" style="width: 120px">
  295. <el-option label="是" value="Y"></el-option>
  296. <el-option label="否" value="N"></el-option>
  297. </el-select>
  298. </el-form-item>
  299. </el-form>
  300. <el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: -5px;">
  301. <el-form-item label="参照值:">
  302. <el-input v-model="itemModalData.defaultValue" style="width: 120px"></el-input>
  303. </el-form-item>
  304. <el-form-item label="最大值:">
  305. <el-input v-model="itemModalData.maxValue" type="number" style="width: 120px"></el-input>
  306. </el-form-item>
  307. <el-form-item label="最小值:">
  308. <el-input v-model="itemModalData.minValue" type="number" style="width: 120px"></el-input>
  309. </el-form-item>
  310. </el-form>
  311. <el-footer style="height:40px;margin-top: 20px;text-align:center">
  312. <el-button type="primary" @click="itemSaveData()">保存</el-button>
  313. <el-button type="primary" @click="itemModalFlag = false">关闭</el-button>
  314. </el-footer>
  315. </el-dialog>
  316. <el-dialog title="可选值" :close-on-click-modal="false" v-drag :visible.sync="chooseModalFlag" width="430px">
  317. <el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: -5px;">
  318. <el-form-item label="维保项目名称:">
  319. <el-input v-model="chooseModalData.itemDesc" disabled style="width: 120px"></el-input>
  320. </el-form-item>
  321. <el-form-item :label="'检测值类型'">
  322. <el-select filterable v-model="chooseModalData.valueTypeDb" disabled style="width: 120px">
  323. <el-option label="文本" value="T"></el-option>
  324. <el-option label="数字" value="N"></el-option>
  325. </el-select>
  326. </el-form-item>
  327. <el-form-item :label="' '">
  328. <el-button type="primary" @click="addChooseModal()">新增</el-button>
  329. </el-form-item>
  330. </el-form>
  331. <el-table
  332. :height="300"
  333. :data="chooseTableData"
  334. border
  335. style="width: 100%">
  336. <el-table-column
  337. prop="availableValue"
  338. header-align="center"
  339. align="left"
  340. min-width="200"
  341. label="属性值">
  342. </el-table-column>
  343. <el-table-column
  344. prop=""
  345. header-align="center"
  346. align="center"
  347. min-width="100"
  348. label="操作">
  349. <template slot-scope="scope">
  350. <a type="text" size="small" @click="updateChooseModal(scope.row)">修改</a>
  351. <a type="text" size="small" @click="deleteItemAvailable(scope.row)">删除</a>
  352. </template>
  353. </el-table-column>
  354. </el-table>
  355. <el-footer style="height:40px;margin-top: 10px;text-align:center">
  356. <el-button type="primary" @click="chooseModalFlag = false">关闭</el-button>
  357. </el-footer>
  358. </el-dialog>
  359. <el-dialog title="可选值维护" :close-on-click-modal="false" v-drag :visible.sync="itemAddModalFlag" width="215px" >
  360. <el-form :inline="true" label-position="top" style="margin-left: 22px;margin-top: -5px;" @submit.native.prevent>
  361. <el-form-item :label="'可选值:'">
  362. <el-input v-model="itemData.availableValue" :type="itemFlag" style="width: 130px;"></el-input>
  363. </el-form-item>
  364. </el-form>
  365. <el-footer style="height:40px;margin-top: 20px;text-align:center">
  366. <el-button type="primary" @click="saveItemAvailable()">保存</el-button>
  367. <el-button type="primary" @click="itemAddModalFlag = false">关闭</el-button>
  368. </el-footer>
  369. </el-dialog>
  370. <Chooselist ref="baseList" @getBaseData="getBaseData"></Chooselist>
  371. </div>
  372. </template>
  373. <script>
  374. import {
  375. eamWorkPlanSearch,
  376. eamWorkPlanSave,
  377. eamWorkPlanEdit,
  378. eamWorkPlanDelete,
  379. searchPlanItems,
  380. updatePlanItems,
  381. searchPlanItemAvailable,
  382. savePlanItemAvailable,
  383. deletePlanItemAvailable,
  384. createEamWorkOrder,
  385. objectIDBlur,
  386. modalCodeBlur,
  387. getObjectList,
  388. planOrder,
  389. cancelPlan,
  390. } from "@/api/eam/eam.js"
  391. import Chooselist from '@/views/modules/common/Chooselist_eam'
  392. export default {
  393. components: {
  394. Chooselist
  395. },
  396. watch: {
  397. searchData: {
  398. deep: true,
  399. handler: function (newV, oldV) {
  400. this.searchData.planID = this.searchData.planID.toUpperCase()
  401. this.searchData.objectID = this.searchData.objectID.toUpperCase()
  402. }
  403. },
  404. modalData: {
  405. deep: true,
  406. handler: function (newV, oldV) {
  407. this.modalData.planID = this.modalData.planID.toUpperCase()
  408. this.modalData.objectID = this.modalData.objectID.toUpperCase()
  409. this.modalData.propertiesCode = this.modalData.propertiesCode.toUpperCase()
  410. this.modalData.operator = this.modalData.operator.toUpperCase()
  411. }
  412. },
  413. detailData: {
  414. deep: true,
  415. handler: function (newV, oldV) {
  416. this.modalData.planID = this.modalData.planID.toUpperCase()
  417. this.modalData.itemNo = this.modalData.itemNo.toUpperCase()
  418. this.modalData.codeNo = this.modalData.codeNo.toUpperCase()
  419. }
  420. }
  421. },
  422. data () {
  423. return {
  424. tagNo:'',
  425. searchData: {
  426. site: this.$store.state.user.site,
  427. planID: '',
  428. planDesc: '',
  429. objectID: '',
  430. status: '',
  431. startDate: new Date(),
  432. endDate:'',
  433. functionType:'B',
  434. page: 1,
  435. limit: 10,
  436. },
  437. pageIndex: 1,
  438. pageSize: 100,
  439. totalPage: 0,
  440. height: 200,
  441. dataList: [],
  442. dataListLoading: false,
  443. dataListSelections: [],
  444. modalFlag:false,
  445. modalDisableFlag:false,
  446. modalData:{
  447. objectList:[],
  448. flag:'',
  449. functionType:'B',
  450. site: this.$store.state.user.site,
  451. planID:'',
  452. planDesc:'',
  453. objectID:'',
  454. propertiesCode:'',
  455. propertiesDesc:'',
  456. operator:'',
  457. planPeriod:'',
  458. status:'',
  459. planStartDate:'',
  460. planEndDate:'',
  461. userId:'',
  462. remark:'',
  463. },
  464. objectData:{
  465. site: this.$store.state.user.site,
  466. objectID:'',
  467. objectDesc:'',
  468. familyID:'',
  469. },
  470. objectList:[],
  471. // 展示列集
  472. columnList: [
  473. {
  474. userId: this.$store.state.user.name,
  475. functionId: 101017,
  476. serialNumber: '101017TableSite',
  477. tableId: "101017Table",
  478. tableName: "维保计划表",
  479. columnProp: 'site',
  480. headerAlign: "center",
  481. align: "left",
  482. columnLabel: '工厂编码',
  483. columnHidden: false,
  484. columnImage: false,
  485. columnSortable: false,
  486. sortLv: 0,
  487. status: true,
  488. fixed: '',
  489. columnWidth: 80,
  490. },
  491. {
  492. userId: this.$store.state.user.name,
  493. functionId: 101017,
  494. serialNumber: '101017TablePlanID',
  495. tableId: "101017Table",
  496. tableName: "维保计划表",
  497. columnProp: 'planID',
  498. headerAlign: "center",
  499. align: "left",
  500. columnLabel: '计划编码',
  501. columnHidden: false,
  502. columnImage: false,
  503. columnSortable: false,
  504. sortLv: 0,
  505. status: true,
  506. fixed: '',
  507. columnWidth: 100,
  508. },
  509. {
  510. userId: this.$store.state.user.name,
  511. functionId: 101017,
  512. serialNumber: '101017TablePlanDesc',
  513. tableId: "101017Table",
  514. tableName: "维保计划表",
  515. columnProp: 'planDesc',
  516. headerAlign: "center",
  517. align: "left",
  518. columnLabel: '计划描述',
  519. columnHidden: false,
  520. columnImage: false,
  521. columnSortable: false,
  522. sortLv: 0,
  523. status: true,
  524. fixed: '',
  525. columnWidth: 140,
  526. },
  527. {
  528. userId: this.$store.state.user.name,
  529. functionId: 101017,
  530. serialNumber: '101017TableObjectID',
  531. tableId: "101017Table",
  532. tableName: "维保计划表",
  533. columnProp: 'objectID',
  534. headerAlign: "center",
  535. align: "left",
  536. columnLabel: '设备编码',
  537. columnHidden: false,
  538. columnImage: false,
  539. columnSortable: false,
  540. sortLv: 0,
  541. status: true,
  542. fixed: '',
  543. columnWidth: 100,
  544. },
  545. {
  546. userId: this.$store.state.user.name,
  547. functionId: 101017,
  548. serialNumber: '101017TablePropertiesCode',
  549. tableId: "101017Table",
  550. tableName: "维保计划表",
  551. columnProp: 'propertiesCode',
  552. headerAlign: "center",
  553. align: "left",
  554. columnLabel: '维保模板编码',
  555. columnHidden: false,
  556. columnImage: false,
  557. columnSortable: false,
  558. sortLv: 0,
  559. status: true,
  560. fixed: '',
  561. columnWidth: 100,
  562. },
  563. {
  564. userId: this.$store.state.user.name,
  565. functionId: 101017,
  566. serialNumber: '101017TableStatus',
  567. tableId: "101017Table",
  568. tableName: "维保计划表",
  569. columnProp: 'status',
  570. headerAlign: "center",
  571. align: "left",
  572. columnLabel: '状态',
  573. columnHidden: false,
  574. columnImage: false,
  575. columnSortable: false,
  576. sortLv: 0,
  577. status: true,
  578. fixed: '',
  579. columnWidth: 70,
  580. },
  581. {
  582. userId: this.$store.state.user.name,
  583. functionId: 101017,
  584. serialNumber: '101017TablePlanStartDate',
  585. tableId: "101017Table",
  586. tableName: "维保计划表",
  587. columnProp: 'planStartDate',
  588. headerAlign: "center",
  589. align: "left",
  590. columnLabel: '计划开始日期',
  591. columnHidden: false,
  592. columnImage: false,
  593. columnSortable: false,
  594. sortLv: 0,
  595. status: true,
  596. fixed: '',
  597. columnWidth: 140,
  598. },
  599. {
  600. userId: this.$store.state.user.name,
  601. functionId: 101017,
  602. serialNumber: '101017TablePlanEndDate',
  603. tableId: "101017Table",
  604. tableName: "维保计划表",
  605. columnProp: 'planEndDate',
  606. headerAlign: "center",
  607. align: "left",
  608. columnLabel: '计划结束日期',
  609. columnHidden: false,
  610. columnImage: false,
  611. columnSortable: false,
  612. sortLv: 0,
  613. status: true,
  614. fixed: '',
  615. columnWidth: 140,
  616. },
  617. {
  618. userId: this.$store.state.user.name,
  619. functionId: 101017,
  620. serialNumber: '101017TableNextWorkDate',
  621. tableId: "101017Table",
  622. tableName: "维保计划表",
  623. columnProp: 'nextWorkDate',
  624. headerAlign: "center",
  625. align: "left",
  626. columnLabel: '下次执行日期',
  627. columnHidden: false,
  628. columnImage: false,
  629. columnSortable: false,
  630. sortLv: 0,
  631. status: true,
  632. fixed: '',
  633. columnWidth: 140,
  634. },
  635. {
  636. userId: this.$store.state.user.name,
  637. functionId: 101013,
  638. serialNumber: '101013TableOperator',
  639. tableId: "101013Table",
  640. tableName: "点检计划表",
  641. columnProp: 'operator',
  642. headerAlign: "center",
  643. align: "left",
  644. columnLabel: '计划操作员',
  645. columnHidden: false,
  646. columnImage: false,
  647. columnSortable: false,
  648. sortLv: 0,
  649. status: true,
  650. fixed: '',
  651. columnWidth: 80,
  652. },
  653. {
  654. userId: this.$store.state.user.name,
  655. functionId: 101017,
  656. serialNumber: '101017TablePlanPeriod',
  657. tableId: "101017Table",
  658. tableName: "维保计划表",
  659. columnProp: 'planPeriod',
  660. headerAlign: "center",
  661. align: "right",
  662. columnLabel: '维保周期',
  663. columnHidden: false,
  664. columnImage: false,
  665. columnSortable: false,
  666. sortLv: 0,
  667. status: true,
  668. fixed: '',
  669. columnWidth: 80,
  670. },
  671. {
  672. userId: this.$store.state.user.name,
  673. functionId: 101017,
  674. serialNumber: '101017TableCreatedDate',
  675. tableId: "101017Table",
  676. tableName: "维保计划表",
  677. columnProp: 'createdDate',
  678. headerAlign: "center",
  679. align: "left",
  680. columnLabel: '创建时间',
  681. columnHidden: false,
  682. columnImage: false,
  683. columnSortable: false,
  684. sortLv: 0,
  685. status: true,
  686. fixed: '',
  687. columnWidth: 140,
  688. },
  689. {
  690. userId: this.$store.state.user.name,
  691. functionId: 101017,
  692. serialNumber: '101017TableCreatedBy',
  693. tableId: "101017Table",
  694. tableName: "维保计划表",
  695. columnProp: 'createdBy',
  696. headerAlign: "center",
  697. align: "left",
  698. columnLabel: '创建人',
  699. columnHidden: false,
  700. columnImage: false,
  701. columnSortable: false,
  702. sortLv: 0,
  703. status: true,
  704. fixed: '',
  705. columnWidth: 80,
  706. },
  707. {
  708. userId: this.$store.state.user.name,
  709. functionId: 101017,
  710. serialNumber: '101017TableRemark',
  711. tableId: "101017Table",
  712. tableName: "维保计划表",
  713. columnProp: 'remark',
  714. headerAlign: "center",
  715. align: "left",
  716. columnLabel: '备注',
  717. columnHidden: false,
  718. columnImage: false,
  719. columnSortable: false,
  720. sortLv: 0,
  721. status: true,
  722. fixed: '',
  723. columnWidth: 150,
  724. },
  725. ],
  726. //项目清单
  727. addDetailModalFlag:false,
  728. detailData:{
  729. site:'',
  730. planID:'',
  731. codeNo:'',
  732. codeDesc:'',
  733. functionType:'B',
  734. itemNo:'',
  735. itemDesc:'',
  736. itemType:'B',
  737. userId:this.$store.state.user.name
  738. },
  739. detailModelFlag:false,
  740. detailList: [],
  741. columnDetailList: [
  742. {
  743. userId: this.$store.state.user.name,
  744. functionId: 101009,
  745. serialNumber: '101009Table2EamPropertiesItemID',
  746. tableId: "101009Table2",
  747. tableName: "维保项目表",
  748. columnProp: 'itemNo',
  749. headerAlign: "center",
  750. align: "left",
  751. columnLabel: '维保项目编码',
  752. columnHidden: false,
  753. columnImage: false,
  754. columnSortable: false,
  755. sortLv: 0,
  756. status: true,
  757. fixed: '',
  758. columnWidth: 90,
  759. },
  760. {
  761. userId: this.$store.state.user.name,
  762. functionId: 101009,
  763. serialNumber: '101009Table2EamPropertiesItemDesc',
  764. tableId: "101009Table2",
  765. tableName: "维保项目表",
  766. columnProp: 'itemDesc',
  767. headerAlign: "center",
  768. align: "left",
  769. columnLabel: '维保项目名称',
  770. columnHidden: false,
  771. columnImage: false,
  772. columnSortable: false,
  773. sortLv: 0,
  774. status: true,
  775. fixed: '',
  776. columnWidth: 90,
  777. },
  778. {
  779. userId: this.$store.state.user.name,
  780. functionId: 101009,
  781. serialNumber: '101009Table2EamPropertiesItemRemark',
  782. tableId: "101009Table2",
  783. tableName: "维保项目表",
  784. columnProp: 'itemRemark',
  785. headerAlign: "center",
  786. align: "left",
  787. columnLabel: '维保方法说明',
  788. columnHidden: false,
  789. columnImage: false,
  790. columnSortable: false,
  791. sortLv: 0,
  792. status: true,
  793. fixed: '',
  794. columnWidth: 120,
  795. },
  796. {
  797. userId: this.$store.state.user.name,
  798. functionId: 101009,
  799. serialNumber: '101009Table2ValueType',
  800. tableId: "101009Table2",
  801. tableName: "维保项目表",
  802. columnProp: 'valueType',
  803. headerAlign: "center",
  804. align: "left",
  805. columnLabel: '检测值类型',
  806. columnHidden: false,
  807. columnImage: false,
  808. columnSortable: false,
  809. sortLv: 0,
  810. status: true,
  811. fixed: '',
  812. columnWidth: 70,
  813. },
  814. {
  815. userId: this.$store.state.user.name,
  816. functionId: 101009,
  817. serialNumber: '101009Table2DefaultValue',
  818. tableId: "101009Table2",
  819. tableName: "维保项目表",
  820. columnProp: 'defaultValue',
  821. headerAlign: "center",
  822. align: "left",
  823. columnLabel: '参照值',
  824. columnHidden: false,
  825. columnImage: false,
  826. columnSortable: false,
  827. sortLv: 0,
  828. status: true,
  829. fixed: '',
  830. columnWidth: 70,
  831. },
  832. {
  833. userId: this.$store.state.user.name,
  834. functionId: 101009,
  835. serialNumber: '101009Table2MaxValue',
  836. tableId: "101009Table2",
  837. tableName: "维保项目表",
  838. columnProp: 'maxValue',
  839. headerAlign: "center",
  840. align: "left",
  841. columnLabel: '最大值',
  842. columnHidden: false,
  843. columnImage: false,
  844. columnSortable: false,
  845. sortLv: 0,
  846. status: true,
  847. fixed: '',
  848. columnWidth: 70,
  849. },
  850. {
  851. userId: this.$store.state.user.name,
  852. functionId: 101009,
  853. serialNumber: '101009Table2MinValue',
  854. tableId: "101009Table2",
  855. tableName: "维保项目表",
  856. columnProp: 'minValue',
  857. headerAlign: "center",
  858. align: "left",
  859. columnLabel: '最小值',
  860. columnHidden: false,
  861. columnImage: false,
  862. columnSortable: false,
  863. sortLv: 0,
  864. status: true,
  865. fixed: '',
  866. columnWidth: 70,
  867. },
  868. {
  869. userId: this.$store.state.user.name,
  870. functionId: 101009,
  871. serialNumber: '101009TableValueChooseFlag',
  872. tableId: "101009Table",
  873. tableName: "common",
  874. columnProp: 'valueChooseFlag',
  875. headerAlign: "center",
  876. align: "left",
  877. columnLabel: '是否值可选',
  878. columnHidden: false,
  879. columnImage: false,
  880. columnSortable: false,
  881. sortLv: 0,
  882. status: true,
  883. fixed: '',
  884. columnWidth: 70,
  885. },
  886. ],
  887. itemModalData:{
  888. site:'',
  889. planID:'',
  890. flag:'',
  891. itemNo:'',
  892. itemDesc:'',
  893. valueTypeDb:'',
  894. defaultValue:'',
  895. valueChooseFlag:'',
  896. createdBy:this.$store.state.user.name,
  897. maxValue:'',
  898. minValue:'',
  899. itemRemark:'',
  900. itemType:'B',
  901. },
  902. itemModalFlag:false,
  903. itemModalDisableFlag:false,
  904. itemFlag:'text',
  905. chooseModalFlag:false,
  906. chooseModalData:{
  907. site:'',
  908. planID:'',
  909. itemNo: '',
  910. itemDesc: '',
  911. itemType:'B',
  912. valueTypeDb:'',
  913. },
  914. chooseTableData:[],
  915. itemData:{
  916. site:'',
  917. planID:'',
  918. itemNo:'',
  919. valueNo:'',
  920. availableValue:'',
  921. itemType:'B',
  922. createdBy: this.$store.state.user.name
  923. },
  924. itemAddModalFlag:false,
  925. }
  926. },
  927. mounted () {
  928. this.$nextTick(() => {
  929. this.height = window.innerHeight - 210
  930. })
  931. },
  932. created () {
  933. this.getDataList()
  934. },
  935. methods: {
  936. // 获取基础数据列表S
  937. getBaseList (val,type) {
  938. this.tagNo = val
  939. this.$nextTick(() => {
  940. let strVal = ''
  941. if (val === 200 && this.modalDisableFlag!=true) {
  942. strVal = this.modalData.objectID
  943. this.$refs.baseList.init(val, strVal)
  944. }
  945. if (val === 1032) {
  946. strVal = this.modalData.propertiesCode
  947. this.$refs.baseList.init(val, strVal)
  948. }
  949. if (val === 201) {
  950. strVal = this.modalData.operator
  951. this.$refs.baseList.init(val, strVal)
  952. }
  953. if (val === 1027) {
  954. strVal = this.objectData.familyID
  955. this.$refs.baseList.init(val, strVal)
  956. }
  957. })
  958. },
  959. /* 列表方法的回调 */
  960. getBaseData (val) {
  961. if (this.tagNo === 200) {
  962. this.modalData.objectID = val.ObjectID
  963. this.modalData.objectDesc = val.ObjectDesc
  964. }
  965. if (this.tagNo === 1032) {
  966. this.modalData.propertiesCode = val.Code_No
  967. this.modalData.propertiesDesc = val.Code_Desc
  968. }
  969. if (this.tagNo === 201) {
  970. this.modalData.operator = val.AdminID
  971. }
  972. if (this.tagNo === 1027) {
  973. this.objectData.familyID = val.FamilyID
  974. }
  975. },
  976. // 获取数据列表
  977. getDataList () {
  978. this.searchData.limit = this.pageSize
  979. this.searchData.page = this.pageIndex
  980. eamWorkPlanSearch(this.searchData).then(({data}) => {
  981. if (data.code == 0) {
  982. this.dataList = data.page.list
  983. this.pageIndex = data.page.currPage
  984. this.pageSize = data.page.pageSize
  985. this.totalPage = data.page.totalCount
  986. }
  987. this.dataListLoading = false
  988. })
  989. },
  990. // 每页数
  991. sizeChangeHandle (val) {
  992. this.pageSize = val
  993. this.pageIndex = 1
  994. this.getDataList()
  995. },
  996. // 当前页
  997. currentChangeHandle (val) {
  998. this.pageIndex = val
  999. this.getDataList()
  1000. },
  1001. // 多选
  1002. selectionChangeHandle (val) {
  1003. this.dataListSelections = val
  1004. },
  1005. addModal(){
  1006. this.modalData={
  1007. flag:'1',
  1008. objectList:[],
  1009. functionType:'B',
  1010. site: this.$store.state.user.site,
  1011. planID:'',
  1012. planDesc:'',
  1013. objectID:'',
  1014. objectDesc:'',
  1015. propertiesCode:'',
  1016. propertiesDesc:'',
  1017. operator:'',
  1018. planPeriod:'',
  1019. status:'',
  1020. planStartDate:'',
  1021. planEndDate:'',
  1022. userId:this.$store.state.user.name,
  1023. remark:'',
  1024. };
  1025. this.modalDisableFlag=false;
  1026. this.objectList=[];
  1027. this.modalFlag=true;
  1028. },
  1029. updateModal(row){
  1030. this.modalData={
  1031. flag:'2',
  1032. objectList:[],
  1033. functionType:'B',
  1034. site:row.site,
  1035. planID:row.planID,
  1036. planDesc:row.planDesc,
  1037. objectID:row.objectID,
  1038. objectDesc:row.objectID,
  1039. propertiesCode:row.propertiesCode,
  1040. propertiesDesc:row.codeDesc,
  1041. operator:row.operator,
  1042. planPeriod:row.planPeriod,
  1043. status:row.status,
  1044. planStartDate:row.planStartDate,
  1045. planEndDate:row.planEndDate,
  1046. userId:this.$store.state.user.name,
  1047. remark:row.remark,
  1048. };
  1049. this.modalDisableFlag=true;
  1050. this.modalFlag=true;
  1051. },
  1052. deletePlan (row) {
  1053. this.$confirm(`是否删除这个维保计划?`, '提示', {
  1054. confirmButtonText: '确定',
  1055. cancelButtonText: '取消',
  1056. type: 'warning'
  1057. }).then(() => {
  1058. eamWorkPlanDelete(row).then(({data}) => {
  1059. if (data && data.code ==0) {
  1060. this.getDataList()
  1061. this.$message({
  1062. message: '操作成功',
  1063. type: 'success',
  1064. duration: 1500,
  1065. onClose: () => {
  1066. }
  1067. })
  1068. } else {
  1069. this.$alert(data.msg, '错误', {
  1070. confirmButtonText: '确定'
  1071. })
  1072. }
  1073. })
  1074. }).catch(() => {
  1075. })
  1076. },
  1077. saveData(){
  1078. if (this.modalData.planDesc == '' || this.modalData.planDesc == null) {
  1079. this.$alert('请输入计划描述 !', '错误', {
  1080. confirmButtonText: '确定'
  1081. })
  1082. return false
  1083. }
  1084. if (this.modalData.propertiesCode == '' || this.modalData.propertiesCode == null) {
  1085. this.$alert('请选择维保模板!', '错误', {
  1086. confirmButtonText: '确定'
  1087. })
  1088. return false
  1089. }
  1090. if (this.modalData.planPeriod == '' || this.modalData.planPeriod == null) {
  1091. this.$alert('选择维保周期!', '错误', {
  1092. confirmButtonText: '确定'
  1093. })
  1094. return false
  1095. }
  1096. if (this.modalData.planStartDate == '' || this.modalData.planStartDate == null) {
  1097. this.$alert('请选择开始日期!', '错误', {
  1098. confirmButtonText: '确定'
  1099. })
  1100. return false
  1101. }
  1102. if (this.modalData.planStartDate < this.dayjs().format("YYYY-MM-DD")) {
  1103. this.$alert('计划开始日期不能小于今天!', '错误', {
  1104. confirmButtonText: '确定'
  1105. })
  1106. return
  1107. }
  1108. if (this.modalData.planEndDate == '' || this.modalData.planEndDate == null) {
  1109. this.$alert('请选择结束日期!', '错误', {
  1110. confirmButtonText: '确定'
  1111. })
  1112. return false
  1113. }
  1114. if (this.modalData.planEndDate < this.dayjs().format("YYYY-MM-DD")) {
  1115. this.$alert('计划结束日期不能小于今天!', '错误', {
  1116. confirmButtonText: '确定'
  1117. })
  1118. return
  1119. }
  1120. if (this.modalData.planStartDate > this.modalData.planEndDate) {
  1121. this.$alert('计划开始日期不能小于结束日期!', '错误', {
  1122. confirmButtonText: '确定'
  1123. })
  1124. return
  1125. }
  1126. if(this.modalData.flag=='1'){
  1127. if(this.dataListSelections.length==0){
  1128. this.$alert('请勾选设备!', '错误', {
  1129. confirmButtonText: '确定'
  1130. })
  1131. return false
  1132. }
  1133. this.modalData.objectList=this.dataListSelections
  1134. eamWorkPlanSave(this.modalData).then(({data}) => {
  1135. if (data && data.code === 0) {
  1136. this.getDataList()
  1137. this.modalFlag=false
  1138. this.$message({
  1139. message: '操作成功',
  1140. type: 'success',
  1141. duration: 1500,
  1142. onClose: () => {
  1143. }
  1144. })
  1145. } else {
  1146. this.$alert(data.msg, '错误', {
  1147. confirmButtonText: '确定'
  1148. })
  1149. }
  1150. })
  1151. }else {
  1152. eamWorkPlanEdit(this.modalData).then(({data}) => {
  1153. if (data && data.code === 0) {
  1154. this.getDataList()
  1155. this.modalFlag=false
  1156. this.$message({
  1157. message: '操作成功',
  1158. type: 'success',
  1159. duration: 1500,
  1160. onClose: () => {
  1161. }
  1162. })
  1163. } else {
  1164. this.$alert(data.msg, '错误', {
  1165. confirmButtonText: '确定'
  1166. })
  1167. }
  1168. })
  1169. }
  1170. },
  1171. //----------项目清单----------------start
  1172. //打开项目清单
  1173. itemModal(row){
  1174. this.detailData.site=row.site
  1175. this.detailData.planID=row.planID
  1176. this.detailData.codeNo=row.propertiesCode
  1177. this.detailData.codeDesc=row.codeDesc
  1178. searchPlanItems(this.detailData).then(({data}) => {
  1179. this.detailList = data.rows
  1180. })
  1181. this.detailModelFlag=true;
  1182. },
  1183. updateItemModal(row){
  1184. this.itemModalData={
  1185. flag:'2',
  1186. site:row.site,
  1187. planID:row.planID,
  1188. itemNo:row.itemNo,
  1189. itemDesc:row.itemDesc,
  1190. valueTypeDb:row.valueTypeDb,
  1191. defaultValue:row.defaultValue,
  1192. valueChooseFlag:row.valueChooseFlag,
  1193. createdBy:this.$store.state.user.name,
  1194. maxValue:row.maxValue,
  1195. minValue:row.minValue,
  1196. itemRemark:row.itemRemark,
  1197. itemType:'B',
  1198. };
  1199. this.itemModalDisableFlag=true;
  1200. this.itemModalFlag=true;
  1201. },
  1202. itemSaveData(){
  1203. if (this.itemModalData.itemNo == '' || this.itemModalData.itemNo == null) {
  1204. this.$alert('请输入维保项目编码!', '错误', {
  1205. confirmButtonText: '确定'
  1206. })
  1207. return false
  1208. }
  1209. if (this.itemModalData.itemDesc == '' || this.itemModalData.itemDesc == null) {
  1210. this.$alert('请输入维保项目名称!', '错误', {
  1211. confirmButtonText: '确定'
  1212. })
  1213. return false
  1214. }
  1215. if(this.itemModalData.flag=='1'){
  1216. // eamPropertiesItemSave(this.itemModalData).then(({data}) => {
  1217. // if (data && data.code == '0') {
  1218. // searchPlanItems(this.detailData).then(({data}) => {
  1219. // this.detailList = data.rows
  1220. // })
  1221. // this.itemModalFlag=false
  1222. // this.$message({
  1223. // message: '操作成功',
  1224. // type: 'success',
  1225. // duration: 1500,
  1226. // onClose: () => {
  1227. // }
  1228. // })
  1229. // } else {
  1230. // this.$alert(data.msg, '错误', {
  1231. // confirmButtonText: '确定'
  1232. // })
  1233. // }
  1234. // })
  1235. }else {
  1236. updatePlanItems(this.itemModalData).then(({data}) => {
  1237. if (data && data.code == '0') {
  1238. searchPlanItems(this.detailData).then(({data}) => {
  1239. this.detailList = data.rows
  1240. })
  1241. this.itemModalFlag=false
  1242. this.$message({
  1243. message: '操作成功',
  1244. type: 'success',
  1245. duration: 1500,
  1246. onClose: () => {
  1247. }
  1248. })
  1249. } else {
  1250. this.$alert(data.msg, '错误', {
  1251. confirmButtonText: '确定'
  1252. })
  1253. }
  1254. })
  1255. }
  1256. },
  1257. //----------项目清单----------------end
  1258. //----------项目可选值----------------start
  1259. chooseModal(row){
  1260. this.chooseModalData.site=row.site;
  1261. this.chooseModalData.planID=row.planID;
  1262. this.chooseModalData.itemNo=row.itemNo;
  1263. this.chooseModalData.itemDesc=row.itemDesc;
  1264. this.chooseModalData.valueTypeDb=row.valueTypeDb;
  1265. searchPlanItemAvailable(this.chooseModalData).then(({data}) => {
  1266. this.chooseTableData = data.rows
  1267. })
  1268. this.chooseModalFlag=true;
  1269. },
  1270. addChooseModal(){
  1271. this.itemFlag= this.chooseModalData.valueTypeDb=='T'?'text':'number';
  1272. this.itemData={
  1273. site:this.chooseModalData.site,
  1274. planID:this.chooseModalData.planID,
  1275. itemNo:this.chooseModalData.itemNo,
  1276. valueNo:0,
  1277. availableValue:'',
  1278. itemType:'B',
  1279. createdBy: this.$store.state.user.name
  1280. }
  1281. this.itemAddModalFlag=true;
  1282. },
  1283. updateChooseModal(row){
  1284. this.itemFlag= this.chooseModalData.valueTypeDb=='T'?'text':'number';
  1285. this.itemData={
  1286. site:this.chooseModalData.site,
  1287. planID:this.chooseModalData.planID,
  1288. itemNo:this.chooseModalData.itemNo,
  1289. valueNo:row.valueNo,
  1290. availableValue:row.availableValue,
  1291. itemType:'B',
  1292. createdBy: this.$store.state.user.name
  1293. }
  1294. this.itemAddModalFlag=true;
  1295. },
  1296. saveItemAvailable(){
  1297. if(this.itemData.availableValue==''||this.itemData.availableValue==null){
  1298. this.$alert("请输入可选值!",'错误', {
  1299. confirmButtonText: '确定'
  1300. })
  1301. return false;
  1302. }
  1303. savePlanItemAvailable(this.itemData).then(({data}) => {
  1304. if (data && data.code == 0) {
  1305. searchPlanItemAvailable(this.chooseModalData).then(({data}) => {
  1306. this.chooseTableData = data.rows
  1307. })
  1308. this.itemAddModalFlag=false
  1309. this.$message({
  1310. message: '操作成功',
  1311. type: 'success',
  1312. duration: 1500,
  1313. onClose: () => {
  1314. }
  1315. })
  1316. } else {
  1317. this.$alert(data.msg, '错误', {
  1318. confirmButtonText: '确定'
  1319. })
  1320. }
  1321. })
  1322. },
  1323. deleteItemAvailable(row){
  1324. this.$confirm(`是否删除这个可选值?`, '提示', {
  1325. confirmButtonText: '确定',
  1326. cancelButtonText: '取消',
  1327. type: 'warning'
  1328. }).then(() => {
  1329. deletePlanItemAvailable(row).then(({data}) => {
  1330. if (data && data.code === 0) {
  1331. searchPlanItemAvailable(this.chooseModalData).then(({data}) => {
  1332. this.chooseTableData = data.rows
  1333. })
  1334. this.$message({
  1335. message: '操作成功',
  1336. type: 'success',
  1337. duration: 1500,
  1338. onClose: () => {
  1339. }
  1340. })
  1341. } else {
  1342. this.$alert(data.msg, '错误', {
  1343. confirmButtonText: '确定'
  1344. })
  1345. }
  1346. })
  1347. }).catch(() => {
  1348. })
  1349. },
  1350. //----------项目可选值----------------end
  1351. createOrder(row){
  1352. if(row.planStartDate < this.dayjs().format("YYYY-MM-DD")){
  1353. this.$alert('计划开始日期小于今天!请修改开始日期', '错误', {
  1354. confirmButtonText: '确定'
  1355. })
  1356. return false
  1357. }
  1358. row.userId=this.$store.state.user.name
  1359. this.$confirm(`是创建日期为`+row.planStartDate+`的维保工单?`, '提示', {
  1360. confirmButtonText: '确定',
  1361. cancelButtonText: '取消',
  1362. type: 'warning'
  1363. }).then(() => {
  1364. createEamWorkOrder(row).then(({data}) => {
  1365. if (data && data.code ==0) {
  1366. this.getDataList()
  1367. this.$message({
  1368. message: '操作成功',
  1369. type: 'success',
  1370. duration: 1500,
  1371. onClose: () => {
  1372. }
  1373. })
  1374. } else {
  1375. this.$alert(data.msg, '错误', {
  1376. confirmButtonText: '确定'
  1377. })
  1378. }
  1379. })
  1380. }).catch(() => {
  1381. })
  1382. },
  1383. objectIDBlur(){
  1384. let inData={
  1385. site:this.$store.state.user.site,
  1386. objectID:this.modalData.objectID
  1387. }
  1388. objectIDBlur(inData).then(({data}) => {
  1389. if(data.rows.length>0){
  1390. this.modalData.objectDesc=data.rows[0].objectDesc
  1391. }else {
  1392. this.modalData.objectDesc=''
  1393. }
  1394. })
  1395. },
  1396. modalCodeBlur(){
  1397. let inData={
  1398. functionType:'B',
  1399. codeNo:this.modalData.propertiesCode
  1400. }
  1401. modalCodeBlur(inData).then(({data}) => {
  1402. if(data.rows.length>0){
  1403. this.modalData.propertiesDesc=data.rows[0].codeDesc
  1404. }else {
  1405. this.modalData.propertiesDesc=''
  1406. }
  1407. })
  1408. },
  1409. getObjectList(){
  1410. getObjectList(this.objectData).then(({data}) => {
  1411. this.objectList = data.rows
  1412. })
  1413. },
  1414. planOrder(row){
  1415. row.userId=this.$store.state.user.name;
  1416. this.$confirm(`是否把进行中的计划变为已计划并取消未完成的工单?`, '提示', {
  1417. confirmButtonText: '确定',
  1418. cancelButtonText: '取消',
  1419. type: 'warning'
  1420. }).then(() => {
  1421. planOrder(row).then(({data}) => {
  1422. if (data && data.code === 0) {
  1423. this.getDataList()
  1424. this.$message({
  1425. message: '操作成功',
  1426. type: 'success',
  1427. duration: 1500,
  1428. onClose: () => {
  1429. }
  1430. })
  1431. } else {
  1432. this.$alert(data.msg, '错误', {
  1433. confirmButtonText: '确定'
  1434. })
  1435. }
  1436. })
  1437. }).catch(() => {
  1438. })
  1439. },
  1440. cancelPlan(row){
  1441. row.userId=this.$store.state.user.name;
  1442. this.$confirm(`是否取消计划?`, '提示', {
  1443. confirmButtonText: '确定',
  1444. cancelButtonText: '取消',
  1445. type: 'warning'
  1446. }).then(() => {
  1447. cancelPlan(row).then(({data}) => {
  1448. if (data && data.code === 0) {
  1449. this.getDataList()
  1450. this.$message({
  1451. message: '操作成功',
  1452. type: 'success',
  1453. duration: 1500,
  1454. onClose: () => {
  1455. }
  1456. })
  1457. } else {
  1458. this.$alert(data.msg, '错误', {
  1459. confirmButtonText: '确定'
  1460. })
  1461. }
  1462. })
  1463. }).catch(() => {
  1464. })
  1465. },
  1466. }
  1467. }
  1468. </script>
  1469. <style scoped>
  1470. </style>