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.

1484 lines
51 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
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
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. <div>
  4. <span @click="favoriteFunction()">
  5. <icon-svg :name="favorite?'xiangqufill':'xiangqu'" class="sl-svg"></icon-svg>
  6. </span>
  7. </div>
  8. <el-form :inline="true" label-position="top" :model="searchData" @keyup.enter.native="getDataList()">
  9. <el-form-item :label="'BU'">
  10. <el-select v-model="searchData.buDesc" placeholder="请选择" clearable style="width: 130px">
  11. <el-option
  12. v-for = "i in userBuList"
  13. :key = "i.buNo"
  14. :label = "i.buDesc"
  15. :value = "i.buDesc">
  16. </el-option>
  17. </el-select>
  18. </el-form-item>
  19. <el-form-item :label="'反馈单号'">
  20. <el-input v-model="searchData.planID" clearable style="width: 120px"></el-input>
  21. </el-form-item>
  22. <el-form-item :label="'工单编码'">
  23. <el-input v-model="searchData.orderNo" clearable style="width: 120px"></el-input>
  24. </el-form-item>
  25. <el-form-item :label="'设备编码'">
  26. <el-input v-model="searchData.objectID" clearable style="width: 120px"></el-input>
  27. </el-form-item>
  28. <!-- <el-form-item :label="'计划执行人员编码'">-->
  29. <!-- <el-input v-model="searchData.planOperatorName" clearable style="width: 120px"></el-input>-->
  30. <!-- </el-form-item>-->
  31. <el-form-item :label="'人员部门'">
  32. <el-input v-model="searchData.departmentName" readonly style="width: 120px"></el-input>
  33. </el-form-item>
  34. <el-form-item :label="'状态'">
  35. <el-select v-model="searchData.status" style="width: 100px">
  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-select v-model="searchData.documentSource" style="width: 100px">
  45. <el-option label="全部" value=""></el-option>
  46. <el-option label="设备点检" value="设备点检"></el-option>
  47. <el-option label="设备维修" value="设备维修"></el-option>
  48. </el-select>
  49. </el-form-item>
  50. <el-form-item :label="'计划执行日期:'">
  51. <el-date-picker
  52. style="width: 120px"
  53. v-model="searchData.startDate"
  54. type="date"
  55. value-format="yyyy-MM-dd"
  56. placeholder="选择日期">
  57. </el-date-picker>
  58. </el-form-item>
  59. <el-form-item style="margin-top: 23px;">
  60. <laber style="margin-left: -9px;font-size: 19px">&#10142</laber>
  61. </el-form-item>
  62. <el-form-item :label="' '">
  63. <el-date-picker
  64. style="width: 120px"
  65. v-model="searchData.endDate"
  66. type="date"
  67. value-format="yyyy-MM-dd"
  68. placeholder="选择日期">
  69. </el-date-picker>
  70. </el-form-item>
  71. <el-form-item :label="' '">
  72. <el-button @click="getDataList()">查询</el-button>
  73. <el-button type="primary" @click="changeModel()">更改执行人员</el-button>
  74. <download-excel
  75. :fields="fields()"
  76. :data="exportData"
  77. type="xls"
  78. :name="exportName"
  79. :header="exportHeader"
  80. :footer="exportFooter"
  81. :fetch="createExportData"
  82. :before-generate="startDownload"
  83. :before-finish="finishDownload"
  84. worksheet="导出信息"
  85. class="el-button el-button--primary el-button--medium">
  86. {{ "导出" }}
  87. </download-excel>
  88. </el-form-item>
  89. </el-form>
  90. <el-table
  91. :height="height"
  92. :data="dataList"
  93. border
  94. v-loading="dataListLoading"
  95. @selection-change="selectionChangeHandle"
  96. :row-style="controlRowStyle"
  97. style="width: 100%;">
  98. <el-table-column
  99. type="selection"
  100. header-align="center"
  101. align="center"
  102. :selectable="selectFlag"
  103. width="50">
  104. </el-table-column>
  105. <el-table-column
  106. prop="urgency"
  107. header-align="center"
  108. align="center"
  109. label="紧急程度"
  110. width="90">
  111. </el-table-column>
  112. <el-table-column
  113. prop="result"
  114. header-align="center"
  115. align="center"
  116. label="维修结论"
  117. width="80">
  118. <template slot-scope="scope">
  119. <div :style="{fontWeight:'bold', color: scope.row.result =='维修失败' ? 'red' : scope.row.result =='维修完成' ? '#3ac252' : ''}">
  120. {{ scope.row.result }}
  121. </div>
  122. </template>
  123. </el-table-column>
  124. <el-table-column
  125. v-for="(item,index) in columnList" :key="index"
  126. :sortable="item.columnSortable"
  127. :prop="item.columnProp"
  128. :header-align="item.headerAlign"
  129. :show-overflow-tooltip="item.showOverflowTooltip"
  130. :align="item.align"
  131. :fixed="item.fixed==''?false:item.fixed"
  132. :min-width="item.columnWidth"
  133. :label="item.columnLabel">
  134. <template slot-scope="scope">
  135. <span v-if="!item.columnHidden">{{scope.row[item.columnProp]}}</span>
  136. <span v-if="item.columnImage"><img :src="scope.row[item.columnProp]" style="width: 100px; height: 80px"/></span>
  137. </template>
  138. </el-table-column>
  139. <el-table-column
  140. fixed="right"
  141. header-align="center"
  142. align="center"
  143. width="100"
  144. label="操作">
  145. <template slot-scope="scope">
  146. <!-- <a type="text" size="small" v-if="scope.row.status === '待审核'" @click="checkModal(scope.row)">审核</a>-->
  147. <a type="text" size="small" v-if="scope.row.status === '待审核' || scope.row.status === '已完工'" @click="reportModal(scope.row)">详情</a>
  148. <a type="text" size="small" v-if="scope.row.status === '未开工'" @click="cancelOrder(scope.row)">取消工单</a>
  149. </template>
  150. </el-table-column>
  151. </el-table>
  152. <el-pagination
  153. @size-change="sizeChangeHandle"
  154. @current-change="currentChangeHandle"
  155. :current-page="pageIndex"
  156. :page-sizes="[20, 50, 100, 200, 500]"
  157. :page-size="pageSize"
  158. :total="totalPage"
  159. layout="total, sizes, prev, pager, next, jumper">
  160. </el-pagination>
  161. <el-dialog title="批量修改计划人员" :close-on-click-modal="false" v-drag :visible.sync="changeModelFlag" width="300px">
  162. <el-form :inline="true" label-position="top" >
  163. <el-form-item style="margin-left: 10px" >
  164. <span slot="label" style="" @click="getBaseList(201)"><a herf="#">计划执行人员</a></span>
  165. <el-input v-model="planOperator" style="width: 120px"></el-input>
  166. </el-form-item>
  167. <el-form-item :label="'人员名称'">
  168. <el-input v-model="planOperatorName" disabled style="width: 120px"></el-input>
  169. </el-form-item>
  170. </el-form>
  171. <el-footer style="height:40px;margin-top: 10px;text-align:center">
  172. <el-button type="primary" @click="changeOrderOperator()">保存</el-button>
  173. <el-button type="primary" @click="changeModelFlag = false">关闭</el-button>
  174. </el-footer>
  175. </el-dialog>
  176. <el-dialog title="审核" :close-on-click-modal="false" v-drag :visible.sync="submitModelFlag" width="375px">
  177. <el-form :inline="true" label-position="top">
  178. <el-form-item :label="'难度等级'">
  179. <el-select filterable v-model="submitData.difficultyLevel" style="width: 130px" placeholder="请评估难度等级">
  180. <el-option label="难度一" value="难度一"></el-option>
  181. <el-option label="难度二" value="难度二"></el-option>
  182. <el-option label="难度三" value="难度三"></el-option>
  183. </el-select>
  184. </el-form-item>
  185. <el-form-item :label="'备注'">
  186. <el-input v-model="submitData.difficultyRemark" style="width: 200px"></el-input>
  187. </el-form-item>
  188. </el-form>
  189. <el-footer style="height:40px;margin-top: 10px;text-align:center">
  190. <el-button type="primary" @click="submitModel()">确定</el-button>
  191. <el-button type="primary" @click="submitModelFlag = false">取消</el-button>
  192. </el-footer>
  193. </el-dialog>
  194. <el-dialog title="执行结果" :close-on-click-modal="false" v-drag :visible.sync="detailModelFlag" width="960px">
  195. <el-form :inline="true" label-position="top">
  196. <el-form-item :label="'设备编码'">
  197. <el-input v-model="detailData.objectID" disabled style="width: 221px"></el-input>
  198. </el-form-item>
  199. <el-form-item :label="'设备名称'">
  200. <el-input v-model="detailData.objectDesc" disabled style="width: 221px"></el-input>
  201. </el-form-item>
  202. <el-form-item :label="'机台'">
  203. <el-input v-model="detailData.resourceDesc" disabled style="width: 221px"></el-input>
  204. </el-form-item>
  205. <el-form-item :label="'反馈描述'">
  206. <el-input v-model="detailData.feedBackDesc" disabled style="width: 221px"></el-input>
  207. </el-form-item>
  208. </el-form>
  209. <el-form :inline="true" label-position="top">
  210. <el-form-item label="故障编码">
  211. <el-input v-model="detailData.defectID" disabled style="width: 221px"></el-input>
  212. </el-form-item>
  213. <el-form-item label="故障名称">
  214. <el-input v-model="detailData.defectDesc" disabled style="width: 221px"></el-input>
  215. </el-form-item>
  216. <el-form-item :label="'维修结果'">
  217. <el-input v-model="detailData.result" disabled style="width: 221px"></el-input>
  218. </el-form-item>
  219. <el-form-item :label="'处置措施'">
  220. <el-input v-model="detailData.disposalMeasures" disabled style="width: 221px"></el-input>
  221. </el-form-item>
  222. </el-form>
  223. <el-form :inline="true" label-position="top">
  224. <el-form-item :label="'计划执行日期'">
  225. <el-date-picker style="width: 221px" v-model="detailData.planDate" type="datetime" disabled value-format='yyyy-MM-dd' format='yyyy-MM-dd'></el-date-picker>
  226. </el-form-item>
  227. <el-form-item :label="'到达时间'">
  228. <el-date-picker style="width: 221px" v-model="detailData.reachDate" type="datetime" value-format='yyyy-MM-dd HH:mm:ss' format='yyyy-MM-dd HH:mm:ss'></el-date-picker>
  229. </el-form-item>
  230. <el-form-item :label="'实际执行时间'">
  231. <el-date-picker style="width: 221px" v-model="detailData.actualDate" type="datetime" value-format='yyyy-MM-dd HH:mm:ss' format='yyyy-MM-dd HH:mm:ss'></el-date-picker>
  232. </el-form-item>
  233. <el-form-item :label="'工作时长(m)'">
  234. <el-input v-model="detailData.workTime" type="number" disabled :min="0" style="width: 221px"></el-input>
  235. </el-form-item>
  236. </el-form>
  237. <el-form :inline="true" label-position="top">
  238. <el-form-item label="执行人员">
  239. <el-input v-model="detailData.actualOperatorName" disabled style="width: 673px"></el-input>
  240. </el-form-item>
  241. <el-form-item :label="' '">
  242. <el-button v-if="detailData.status === '已完工'" type="primary" @click="checkModal()">取消审核</el-button>
  243. <el-button v-if="detailData.status === '待审核'" type="primary" @click="checkModal()">审核</el-button>
  244. </el-form-item>
  245. <el-form-item :label="' '">
  246. <el-button type="primary" @click="checkFaultImageModal()">故障图片</el-button>
  247. </el-form-item>
  248. <el-form-item :label="' '">
  249. <el-button type="primary" @click="checkSparPartImageModal()">备件图片</el-button>
  250. </el-form-item>
  251. </el-form>
  252. <el-form :inline="true" label-position="top">
  253. <el-form-item :label="'故障原因'">
  254. <el-input v-if="detailData.status === '已完工'" readonly type="textarea" v-model="detailData.faultReason" :rows="3" resize='none' show-word-limit style="width: 456px"></el-input>
  255. <el-input v-if="detailData.status === '待审核'" type="textarea" v-model="detailData.faultReason" :rows="3" resize='none' show-word-limit style="width: 456px"></el-input>
  256. </el-form-item>
  257. <el-form-item :label="'处理方式'">
  258. <el-input v-if="detailData.status === '已完工'" readonly type="textarea" v-model="detailData.handlingMethod" :rows="3" resize='none' show-word-limit style="width: 456px"></el-input>
  259. <el-input v-if="detailData.status === '待审核'" type="textarea" v-model="detailData.handlingMethod" :rows="3" resize='none' show-word-limit style="width: 456px"></el-input>
  260. </el-form-item>
  261. </el-form>
  262. <el-form :inline="true" label-position="top" style="margin-top: 45px">
  263. <el-form-item :label="'预防措施'">
  264. <el-input v-if="detailData.status === '已完工'" readonly type="textarea" v-model="detailData.preventiveMeasure" :rows="3" resize='none' show-word-limit style="width: 456px"></el-input>
  265. <el-input v-if="detailData.status === '待审核'" type="textarea" v-model="detailData.preventiveMeasure" :rows="3" resize='none' show-word-limit style="width: 456px"></el-input>
  266. </el-form-item>
  267. <el-form-item :label="'执行结果备注'">
  268. <el-input v-if="detailData.status === '已完工'" readonly type="textarea" v-model="detailData.remark" :rows="3" resize='none' show-word-limit style="width: 456px"></el-input>
  269. <el-input v-if="detailData.status === '待审核'" type="textarea" v-model="detailData.remark" :rows="3" resize='none' show-word-limit style="width: 456px"></el-input>
  270. </el-form-item>
  271. </el-form>
  272. <el-footer style="height:40px;margin-top: 65px;text-align:center">
  273. <el-button style="margin-left: -12px" type="primary" @click="updateResult()">保存</el-button>
  274. <el-button type="primary" @click="detailModelFlag = false">关闭</el-button>
  275. </el-footer>
  276. </el-dialog>
  277. <!-- 部门 -->
  278. <el-dialog title="部门清单" :close-on-click-modal="false" v-drag :visible.sync="departmentModelFlag" width="520px">
  279. <div class="rq">
  280. <el-form :inline="true" label-position="top" :model="departmentData">
  281. <el-form-item :label="'部门编码'">
  282. <el-input v-model="departmentData.deptId" style="width: 120px"></el-input>
  283. </el-form-item>
  284. <el-form-item :label="'部门名称'">
  285. <el-input v-model="departmentData.deptName" style="width: 120px"></el-input>
  286. </el-form-item>
  287. <el-form-item :label="' '">
  288. <el-button type="primary" @click="getDepartmentList()">查询</el-button>
  289. </el-form-item>
  290. </el-form>
  291. <el-table
  292. :height="300"
  293. :data="departmentList"
  294. ref="departmentTable"
  295. @row-click="departmentClickRow"
  296. @selection-change="selectionDepartment"
  297. :row-key="getRowKeys"
  298. border
  299. v-loading="dataListLoading"
  300. style="width: 100%;">
  301. <el-table-column
  302. type="selection"
  303. header-align="center"
  304. align="center"
  305. :reserve-selection="true"
  306. width="50">
  307. </el-table-column>
  308. <el-table-column
  309. v-for="(item,index) in departmentDetailList" :key="index"
  310. :sortable="item.columnSortable"
  311. :prop="item.columnProp"
  312. :header-align="item.headerAlign"
  313. :show-overflow-tooltip="item.showOverflowTooltip"
  314. :align="item.align"
  315. :fixed="item.fixed==''?false:item.fixed"
  316. :min-width="item.columnWidth"
  317. :label="item.columnLabel">
  318. <template slot-scope="scope">
  319. <span v-if="!item.columnHidden">{{scope.row[item.columnProp]}}</span>
  320. <span v-if="item.columnImage"><img :src="scope.row[item.columnProp]" style="width: 100px; height: 80px"/></span>
  321. </template>
  322. </el-table-column>
  323. </el-table>
  324. </div>
  325. <el-footer style="height:40px;margin-top: 20px;text-align:center">
  326. <el-button type="primary" @click="confirmDepartment()">确认</el-button>
  327. <el-button type="primary" @click="departmentModelFlag = false">关闭</el-button>
  328. </el-footer>
  329. </el-dialog>
  330. <el-dialog title="图片查看" :close-on-click-modal="false" v-drag :visible.sync="imageModalFlag" width="390px" style="height: 550px;">
  331. <div v-viewer>
  332. <img v-for="(item, index) in descImages" :src="item" :key="index" style="width: 100px;height: 100px"/>
  333. </div>
  334. <el-footer style="height:40px;margin-top: 20px;text-align:center">
  335. <el-button type="primary" @click="imageModalFlag = false">关闭</el-button>
  336. </el-footer>
  337. </el-dialog>
  338. <Chooselist ref="baseList" @getBaseData="getBaseData"></Chooselist>
  339. </div>
  340. </template>
  341. <script>
  342. import {
  343. eamWorkOrderSearchForDefect,
  344. cancelOrder,
  345. changeOrderOperator,
  346. submitDefect,
  347. searchFileUrl,
  348. getEmpyDeptList,
  349. getDeptList,
  350. updateReportResult, // 修改执行结果
  351. getSiteAndBuByUserName
  352. } from "@/api/eam/eam.js"
  353. import {
  354. getTableDefaultListLanguage,
  355. getTableUserListLanguage,
  356. } from "@/api/table.js"
  357. import {userFavoriteList, saveUserFavorite, removeUserFavorite} from '@/api/userFavorite.js'
  358. import Chooselist from '@/views/modules/common/Chooselist_eam'
  359. import {isAuth} from '../../../utils'
  360. export default {
  361. components: {
  362. Chooselist
  363. },
  364. watch: {
  365. searchData: {
  366. deep: true,
  367. handler: function (newV, oldV) {
  368. this.searchData.groupID = this.searchData.groupID.toUpperCase()
  369. }
  370. }
  371. },
  372. data () {
  373. return {
  374. // 是否收藏
  375. favorite: false,
  376. // 导出 start
  377. exportData: [],
  378. exportName: "维修工单" + this.dayjs().format('YYYYMMDDHHmmss'),
  379. exportHeader: ["维修工单"],
  380. exportFooter: [],
  381. exportList: [],
  382. // 导出 end
  383. tagNo: '',
  384. searchData: {
  385. site: '',
  386. userName: this.$store.state.user.name,
  387. orderNo: '',
  388. planID: '',
  389. objectID: '',
  390. planOperator: '',
  391. planOperatorName: '',
  392. functionType: 'C',
  393. status: '',
  394. startDate:'',
  395. endDate:'',
  396. departmentName: '',
  397. documentSource: '',
  398. page: 1,
  399. limit: 10,
  400. },
  401. height: 200,
  402. pageIndex: 1,
  403. pageSize: 50,
  404. totalPage: 0,
  405. dataList: [],
  406. dataListLoading: false,
  407. dataListSelections: [],
  408. modalFlag: false,
  409. modalDisableFlag: false,
  410. departmentList: [],
  411. // 展示列集
  412. columnList: [
  413. {
  414. userId: this.$store.state.user.name,
  415. functionId: 101004002,
  416. serialNumber: '101004002Table1BuDesc',
  417. tableId: "101004002Table1",
  418. tableName: "维修工单表",
  419. columnProp: 'buDesc',
  420. headerAlign: "center",
  421. align: "center",
  422. columnLabel: 'BU',
  423. columnHidden: false,
  424. columnImage: false,
  425. columnSortable: false,
  426. sortLv: 0,
  427. status: true,
  428. fixed: '',
  429. columnWidth: 80,
  430. },
  431. {
  432. userId: this.$store.state.user.name,
  433. functionId: 101004002,
  434. serialNumber: '101004002Table1DisposalMeasures',
  435. tableId: "101004002Table1",
  436. tableName: "维修工单表",
  437. columnProp: 'disposalMeasures',
  438. headerAlign: "center",
  439. align: "center",
  440. columnLabel: '处置措施',
  441. columnHidden: false,
  442. columnImage: false,
  443. columnSortable: false,
  444. sortLv: 0,
  445. status: true,
  446. fixed: '',
  447. columnWidth: 80,
  448. },
  449. {
  450. userId: this.$store.state.user.name,
  451. functionId: 101004002,
  452. serialNumber: '101004002Table1OrderNo',
  453. tableId: "101004002Table1",
  454. tableName: "维修工单表",
  455. columnProp: 'orderNo',
  456. headerAlign: "center",
  457. align: "center",
  458. columnLabel: '工单编码',
  459. columnHidden: false,
  460. columnImage: false,
  461. columnSortable: true,
  462. sortLv: 0,
  463. status: true,
  464. fixed: '',
  465. columnWidth: 100,
  466. },
  467. {
  468. userId: this.$store.state.user.name,
  469. functionId: 101004002,
  470. serialNumber: '101004002Table1PlanID',
  471. tableId: "101004002Table1",
  472. tableName: "维修工单表",
  473. columnProp: 'planID',
  474. headerAlign: "center",
  475. align: "center",
  476. columnLabel: '反馈单号',
  477. columnHidden: false,
  478. columnImage: false,
  479. columnSortable: true,
  480. sortLv: 0,
  481. status: true,
  482. fixed: '',
  483. columnWidth: 100,
  484. },
  485. {
  486. userId: this.$store.state.user.name,
  487. functionId: 101004002,
  488. serialNumber: '101004002Table1FeedBackDesc',
  489. tableId: "101004002Table1",
  490. tableName: "维修工单表",
  491. columnProp: 'feedBackDesc',
  492. headerAlign: "center",
  493. align: "center",
  494. columnLabel: '反馈描述',
  495. columnHidden: false,
  496. columnImage: false,
  497. columnSortable: true,
  498. sortLv: 0,
  499. status: true,
  500. fixed: '',
  501. columnWidth: 100,
  502. },
  503. {
  504. userId: this.$store.state.user.name,
  505. functionId: 101004002,
  506. serialNumber: '101004002Table1DefectID',
  507. tableId: "101004002Table1",
  508. tableName: "维修工单表",
  509. columnProp: 'defectID',
  510. headerAlign: "center",
  511. align: "center",
  512. columnLabel: '故障编码',
  513. columnHidden: false,
  514. columnImage: false,
  515. columnSortable: false,
  516. sortLv: 0,
  517. status: true,
  518. fixed: '',
  519. columnWidth: 80,
  520. },
  521. {
  522. userId: this.$store.state.user.name,
  523. functionId: 101004002,
  524. serialNumber: '101004002Table1DefectDesc',
  525. tableId: "101004002Table1",
  526. tableName: "维修工单表",
  527. columnProp: 'defectDesc',
  528. headerAlign: "center",
  529. align: "center",
  530. columnLabel: '故障名称',
  531. columnHidden: false,
  532. columnImage: false,
  533. columnSortable: false,
  534. sortLv: 0,
  535. status: true,
  536. fixed: '',
  537. columnWidth: 80,
  538. },
  539. {
  540. userId: this.$store.state.user.name,
  541. functionId: 101004002,
  542. serialNumber: '101004002Table1ObjectID',
  543. tableId: "101004002Table1",
  544. tableName: "维修工单表",
  545. columnProp: 'objectID',
  546. headerAlign: "center",
  547. align: "center",
  548. columnLabel: '设备编码',
  549. columnHidden: false,
  550. columnImage: false,
  551. columnSortable: false,
  552. sortLv: 0,
  553. status: true,
  554. fixed: '',
  555. columnWidth: 80,
  556. },
  557. {
  558. userId: this.$store.state.user.name,
  559. functionId: 101004002,
  560. serialNumber: '101004002Table1ObjectDesc',
  561. tableId: "101004002Table1",
  562. tableName: "维修工单表",
  563. columnProp: 'objectDesc',
  564. headerAlign: "center",
  565. align: "center",
  566. columnLabel: '设备名称',
  567. columnHidden: false,
  568. columnImage: false,
  569. columnSortable: false,
  570. sortLv: 0,
  571. status: true,
  572. fixed: '',
  573. columnWidth: 120,
  574. },
  575. {
  576. userId: this.$store.state.user.name,
  577. functionId: 101004002,
  578. serialNumber: '101004002Table1ResourceDesc',
  579. tableId: "101004002Table1",
  580. tableName: "维修工单表",
  581. columnProp: 'resourceDesc',
  582. headerAlign: "center",
  583. align: "center",
  584. columnLabel: '机台名称',
  585. columnHidden: false,
  586. columnImage: false,
  587. columnSortable: false,
  588. sortLv: 0,
  589. status: true,
  590. fixed: '',
  591. columnWidth: 120,
  592. },
  593. {
  594. userId: this.$store.state.user.name,
  595. functionId: 101004002,
  596. serialNumber: '101004002Table1DepartmentName',
  597. tableId: "101004002Table1",
  598. tableName: "维修工单表",
  599. columnProp: 'departmentName',
  600. headerAlign: "center",
  601. align: "center",
  602. columnLabel: '设备部门',
  603. columnHidden: false,
  604. columnImage: false,
  605. columnSortable: false,
  606. sortLv: 0,
  607. status: true,
  608. fixed: '',
  609. columnWidth: 100,
  610. },
  611. {
  612. userId: this.$store.state.user.name,
  613. functionId: 101004002,
  614. serialNumber: '101004002Table1CreateBy',
  615. tableId: "101004002Table1",
  616. tableName: "维修工单表",
  617. columnProp: 'createBy',
  618. headerAlign: "center",
  619. align: "center",
  620. columnLabel: '报修人员名称',
  621. columnHidden: false,
  622. columnImage: false,
  623. columnSortable: false,
  624. sortLv: 0,
  625. status: true,
  626. fixed: '',
  627. columnWidth: 80,
  628. },
  629. {
  630. userId: this.$store.state.user.name,
  631. functionId: 101004002,
  632. serialNumber: '101004002Table1Status',
  633. tableId: "101004002Table1",
  634. tableName: "维修工单表",
  635. columnProp: 'status',
  636. headerAlign: "center",
  637. align: "center",
  638. columnLabel: '状态',
  639. columnHidden: false,
  640. columnImage: false,
  641. columnSortable: true,
  642. sortLv: 0,
  643. status: true,
  644. fixed: '',
  645. columnWidth: 80,
  646. },
  647. {
  648. userId: this.$store.state.user.name,
  649. functionId: 101004002,
  650. serialNumber: '101004002Table1PlanOperatorName',
  651. tableId: "101004002Table1",
  652. tableName: "维修工单表",
  653. columnProp: 'planOperatorName',
  654. headerAlign: "center",
  655. align: "center",
  656. columnLabel: '计划执行人员',
  657. columnHidden: false,
  658. columnImage: false,
  659. columnSortable: false,
  660. sortLv: 0,
  661. status: true,
  662. fixed: '',
  663. columnWidth: 100,
  664. },
  665. {
  666. userId: this.$store.state.user.name,
  667. functionId: 101004002,
  668. serialNumber: '101004002Table1ActualOperatorName',
  669. tableId: "101004002Table1",
  670. tableName: "维修工单表",
  671. columnProp: 'actualOperatorName',
  672. headerAlign: "center",
  673. align: "center",
  674. columnLabel: '实际执行人员',
  675. columnHidden: false,
  676. columnImage: false,
  677. columnSortable: false,
  678. sortLv: 0,
  679. status: true,
  680. fixed: '',
  681. columnWidth: 100,
  682. },
  683. {
  684. userId: this.$store.state.user.name,
  685. functionId: 101004002,
  686. serialNumber: '101004002Table1PlanDate',
  687. tableId: "101004002Table1",
  688. tableName: "维修工单表",
  689. columnProp: 'planDate',
  690. headerAlign: "center",
  691. align: "center",
  692. columnLabel: '计划执行日期',
  693. columnHidden: false,
  694. columnImage: false,
  695. columnSortable: true,
  696. sortLv: 0,
  697. status: true,
  698. fixed: '',
  699. columnWidth: 100,
  700. },
  701. {
  702. userId: this.$store.state.user.name,
  703. functionId: 101004002,
  704. serialNumber: '101004002Table1CreatedDate',
  705. tableId: "101004002Table1",
  706. tableName: "维修工单表",
  707. columnProp: 'createdDate',
  708. headerAlign: "center",
  709. align: "center",
  710. columnLabel: '故障时间',
  711. columnHidden: false,
  712. columnImage: false,
  713. columnSortable: true,
  714. sortLv: 0,
  715. status: true,
  716. fixed: '',
  717. columnWidth: 130,
  718. },
  719. {
  720. userId: this.$store.state.user.name,
  721. functionId: 101004002,
  722. serialNumber: '101004002Table1ReachDate',
  723. tableId: "101004002Table1",
  724. tableName: "维修工单表",
  725. columnProp: 'reachDate',
  726. headerAlign: "center",
  727. align: "center",
  728. columnLabel: '到达时间',
  729. columnHidden: false,
  730. columnImage: false,
  731. columnSortable: true,
  732. sortLv: 0,
  733. status: true,
  734. fixed: '',
  735. columnWidth: 130,
  736. },
  737. {
  738. userId: this.$store.state.user.name,
  739. functionId: 101004002,
  740. serialNumber: '101004002Table1ActualDate',
  741. tableId: "101004002Table1",
  742. tableName: "维修工单表",
  743. columnProp: 'actualDate',
  744. headerAlign: "center",
  745. align: "center",
  746. columnLabel: '实际执行时间',
  747. columnHidden: false,
  748. columnImage: false,
  749. columnSortable: true,
  750. sortLv: 0,
  751. status: true,
  752. fixed: '',
  753. columnWidth: 130,
  754. },
  755. {
  756. userId: this.$store.state.user.name,
  757. functionId: 101004002,
  758. serialNumber: '101004002Table1ResponseTime',
  759. tableId: "101004002Table1",
  760. tableName: "维修工单表",
  761. columnProp: 'responseTime',
  762. headerAlign: "center",
  763. align: "right",
  764. columnLabel: '维修响应时长(m)',
  765. columnHidden: false,
  766. columnImage: false,
  767. columnSortable: false,
  768. sortLv: 0,
  769. status: true,
  770. fixed: '',
  771. columnWidth: 110,
  772. },
  773. {
  774. userId: this.$store.state.user.name,
  775. functionId: 101004002,
  776. serialNumber: '101004002Table1WorkTime',
  777. tableId: "101004002Table1",
  778. tableName: "维修工单表",
  779. columnProp: 'workTime',
  780. headerAlign: "center",
  781. align: "right",
  782. columnLabel: '工作时长(m)',
  783. columnHidden: false,
  784. columnImage: false,
  785. columnSortable: false,
  786. sortLv: 0,
  787. status: true,
  788. fixed: '',
  789. columnWidth: 80,
  790. },
  791. {
  792. userId: this.$store.state.user.name,
  793. functionId: 101004002,
  794. serialNumber: '101004002Table1Remark',
  795. tableId: "101004002Table1",
  796. tableName: "维修工单表",
  797. columnProp: 'remark',
  798. headerAlign: "center",
  799. align: "center",
  800. columnLabel: '工单备注',
  801. columnHidden: false,
  802. columnImage: false,
  803. columnSortable: false,
  804. sortLv: 0,
  805. status: true,
  806. fixed: '',
  807. columnWidth: 120,
  808. },
  809. {
  810. userId: this.$store.state.user.name,
  811. functionId: 101004002,
  812. serialNumber: '101004002Table1DifficultyLevel',
  813. tableId: "101004002Table1",
  814. tableName: "维修工单表",
  815. columnProp: 'difficultyLevel',
  816. headerAlign: "center",
  817. align: "center",
  818. columnLabel: '难度等级',
  819. columnHidden: false,
  820. columnImage: false,
  821. columnSortable: false,
  822. sortLv: 0,
  823. status: true,
  824. fixed: '',
  825. columnWidth: 80,
  826. },
  827. {
  828. userId: this.$store.state.user.name,
  829. functionId: 101004002,
  830. serialNumber: '101004002Table1DifficultyRemark',
  831. tableId: "101004002Table1",
  832. tableName: "维修工单表",
  833. columnProp: 'difficultyRemark',
  834. headerAlign: "center",
  835. align: "center",
  836. columnLabel: '难度备注',
  837. columnHidden: false,
  838. columnImage: false,
  839. columnSortable: false,
  840. sortLv: 0,
  841. status: true,
  842. fixed: '',
  843. columnWidth: 120,
  844. },
  845. {
  846. userId: this.$store.state.user.name,
  847. functionId: 101004002,
  848. serialNumber: '101004002Table1DocumentSource',
  849. tableId: "101004002Table1",
  850. tableName: "维修工单表",
  851. columnProp: 'documentSource',
  852. headerAlign: "center",
  853. align: "center",
  854. columnLabel: '单据来源',
  855. columnHidden: false,
  856. columnImage: false,
  857. columnSortable: false,
  858. sortLv: 0,
  859. status: true,
  860. fixed: '',
  861. columnWidth: 100,
  862. },
  863. ],
  864. changeModelFlag: false,
  865. planOperator: '',
  866. planOperatorName: '',
  867. submitData: {
  868. site: '',
  869. buNo: '',
  870. orderNo: '',
  871. planID: '',
  872. objectID: '',
  873. checker: '',
  874. checkerName: '',
  875. difficultyLevel: '',
  876. difficultyRemark: '',
  877. status: '',
  878. updateBy: this.$store.state.user.name,
  879. createBy: this.$store.state.user.name,
  880. planDesc: '',
  881. disposalMeasures: '',
  882. defectID: '',
  883. remark: ''
  884. },
  885. submitModelFlag: false,
  886. detailData: {},
  887. detailModelFlag: false,
  888. descImages: [],
  889. imageModalFlag: false,
  890. departmentModelFlag: false,
  891. departmentData: {
  892. site: '',
  893. buNo: '',
  894. deptId: '',
  895. deptName: '',
  896. },
  897. departmentListSelections: [],
  898. departmentDetailList: [
  899. {
  900. columnProp: 'deptId',
  901. headerAlign: "center",
  902. align: "center",
  903. columnLabel: '部门编码',
  904. columnHidden: false,
  905. columnImage: false,
  906. columnSortable: false,
  907. sortLv: 0,
  908. status: true,
  909. fixed: '',
  910. },
  911. {
  912. columnProp: 'deptName',
  913. headerAlign: "center",
  914. align: "center",
  915. columnLabel: '部门名称',
  916. columnHidden: false,
  917. columnImage: false,
  918. columnSortable: false,
  919. sortLv: 0,
  920. status: true,
  921. fixed: '',
  922. },
  923. ],
  924. userBuList: [],
  925. }
  926. },
  927. mounted () {
  928. this.$nextTick(() => {
  929. this.height = window.innerHeight - 210
  930. })
  931. },
  932. created () {
  933. // 获取用户的 site 和 bu
  934. this.getSiteAndBuByUserName()
  935. this.favoriteIsOk()
  936. // 查询登陆人员的部门,并过滤出相应工单
  937. this.getUserDept()
  938. // 动态列
  939. this.getTableUserColumn(this.$route.meta.menuId+'table1',1)
  940. },
  941. methods: {
  942. // 获取用户的bu
  943. getSiteAndBuByUserName () {
  944. let tempData = {
  945. username: this.$store.state.user.name,
  946. }
  947. getSiteAndBuByUserName(tempData).then(({data}) => {
  948. if (data.code === 0) {
  949. this.userBuList = data.rows
  950. }
  951. })
  952. },
  953. // 控制单行的背景颜色
  954. controlRowStyle ({row, rowIndex}) {
  955. // 区分不同的样式对应不同的颜色
  956. if (row.status === '待审核') {
  957. return "background-color: #D8ECF1"
  958. }
  959. },
  960. // 查询登陆人员的部门
  961. getUserDept () {
  962. let tempDate = {
  963. site: '',
  964. username: this.$store.state.user.name,
  965. }
  966. getDeptList(tempDate).then(({data}) => {
  967. if (data.code === 0) {
  968. data.rows.forEach(val => {
  969. this.searchData.departmentName = this.searchData.departmentName + ";" + val
  970. })
  971. this.searchData.departmentName = this.searchData.departmentName.substring(1)
  972. this.getDataList()
  973. }
  974. })
  975. },
  976. // 校验用户是否收藏
  977. favoriteIsOk () {
  978. let userFavorite = {
  979. userId: this.$store.state.user.id,
  980. languageCode: this.$i18n.locale
  981. }
  982. userFavoriteList(userFavorite).then(({data}) => {
  983. for (let i = 0; i < data.list.length; i++) {
  984. if (this.$route.meta.menuId === data.list[i].menuId) {
  985. this.favorite = true
  986. }
  987. }
  988. })
  989. },
  990. // 收藏 OR 取消收藏
  991. favoriteFunction () {
  992. let userFavorite = {
  993. userId: this.$store.state.user.id,
  994. functionId: this.$route.meta.menuId,
  995. }
  996. if (this.favorite) {
  997. removeUserFavorite(userFavorite).then(({data}) => {
  998. this.$message.success(data.msg)
  999. this.favorite = false
  1000. })
  1001. } else {
  1002. // 收藏
  1003. saveUserFavorite(userFavorite).then(({data}) => {
  1004. this.$message.success(data.msg)
  1005. this.favorite = true
  1006. })
  1007. }
  1008. },
  1009. // 获取基础数据列表S
  1010. getBaseList (val,type) {
  1011. this.tagNo = val
  1012. this.$nextTick(() => {
  1013. let strVal = ''
  1014. if (val === 201) {
  1015. strVal = this.planOperator
  1016. this.$refs.baseList.init(val, strVal)
  1017. }
  1018. })
  1019. },
  1020. /* 列表方法的回调 */
  1021. getBaseData (val) {
  1022. if (this.tagNo === 201) {
  1023. this.planOperator = val.username
  1024. this.planOperatorName = val.user_display
  1025. }
  1026. },
  1027. //导出excel
  1028. async createExportData () {
  1029. this.searchData.limit = -1
  1030. this.searchData.page = 1
  1031. await eamWorkOrderSearchForDefect(this.searchData).then(({data}) => {
  1032. this.exportList= data.page.list
  1033. })
  1034. return this.exportList
  1035. },
  1036. startDownload () {},
  1037. finishDownload () {},
  1038. fields () {
  1039. let json = "{"
  1040. this.columnList.forEach((item, index) => {
  1041. if (index == this.columnList.length - 1) {
  1042. json += "\"" + item.columnLabel + "\"" + ":" + "\"" + item.columnProp + "\""
  1043. } else {
  1044. json += "\"" + item.columnLabel + "\"" + ":" + "\"" + item.columnProp + "\"" + ","
  1045. }
  1046. })
  1047. json += "}"
  1048. let s = eval("(" + json + ")")
  1049. return s
  1050. },
  1051. // 获取数据列表
  1052. getDataList () {
  1053. this.searchData.limit = this.pageSize
  1054. this.searchData.page = this.pageIndex
  1055. eamWorkOrderSearchForDefect(this.searchData).then(({data}) => {
  1056. if (data.code === 0) {
  1057. this.dataList = data.page.list
  1058. this.pageIndex = data.page.currPage
  1059. this.pageSize = data.page.pageSize
  1060. this.totalPage = data.page.totalCount
  1061. }
  1062. this.dataListLoading = false
  1063. })
  1064. },
  1065. // 每页数
  1066. sizeChangeHandle (val) {
  1067. this.pageSize = val
  1068. this.pageIndex = 1
  1069. this.getDataList()
  1070. },
  1071. // 当前页
  1072. currentChangeHandle (val) {
  1073. this.pageIndex = val
  1074. this.getDataList()
  1075. },
  1076. // 多选
  1077. selectionChangeHandle (val) {
  1078. this.dataListSelections = val
  1079. },
  1080. cancelOrder (row) {
  1081. this.$confirm(`是否取消选定工单?`, '提示', {
  1082. confirmButtonText: '确定',
  1083. cancelButtonText: '取消',
  1084. type: 'warning'
  1085. }).then(() => {
  1086. cancelOrder(row).then(({data}) => {
  1087. if (data && data.code === 0) {
  1088. this.getDataList()
  1089. this.$message({
  1090. message: '操作成功',
  1091. type: 'success',
  1092. duration: 1500,
  1093. onClose: () => {}
  1094. })
  1095. } else {
  1096. this.$alert(data.msg, '错误', {
  1097. confirmButtonText: '确定'
  1098. })
  1099. }
  1100. })
  1101. }).catch(() => {
  1102. })
  1103. },
  1104. selectFlag (row,index) {
  1105. if (row.status !== '未开工') {
  1106. return false
  1107. } else {
  1108. return true
  1109. }
  1110. },
  1111. changeModel () {
  1112. if (this.dataListSelections.length === 0) {
  1113. this.$alert('请勾选工单!', '错误', {
  1114. confirmButtonText: '确定'
  1115. })
  1116. return false
  1117. }
  1118. this.planOperator = ''
  1119. this.planOperatorName = ''
  1120. this.changeModelFlag = true
  1121. },
  1122. changeOrderOperator () {
  1123. let inList = JSON.parse(JSON.stringify(this.dataListSelections))
  1124. for (let i = 0; i <inList.length ; i++) {
  1125. inList[i].planOperator = this.planOperator
  1126. }
  1127. changeOrderOperator(inList).then(({data}) => {
  1128. if (data && data.code === 0) {
  1129. this.changeModelFlag = false
  1130. this.getDataList()
  1131. this.$message({
  1132. message: '操作成功',
  1133. type: 'success',
  1134. duration: 1500,
  1135. onClose: () => {}
  1136. })
  1137. } else {
  1138. this.$alert(data.msg, '错误', {
  1139. confirmButtonText: '确定'
  1140. })
  1141. }
  1142. })
  1143. },
  1144. // 审核按钮
  1145. checkModal () {
  1146. if (!this.isAuth(this.$route.meta.menuId+":check")) {
  1147. this.$message.warning('无审核权限!')
  1148. return
  1149. }
  1150. this.submitData.site = this.detailData.site
  1151. this.submitData.buNo = this.detailData.buNo
  1152. this.submitData.orderNo = this.detailData.orderNo
  1153. this.submitData.planID = this.detailData.planID
  1154. this.submitData.objectID = this.detailData.objectID
  1155. this.submitData.planDesc = this.detailData.planDesc
  1156. this.submitData.disposalMeasures = this.detailData.disposalMeasures
  1157. this.submitData.defectID = this.detailData.defectID
  1158. this.submitData.remark = this.detailData.remark
  1159. this.submitData.difficultyLevel = ''
  1160. this.submitData.difficultyRemark = ''
  1161. if (this.detailData.status === '已完工') {
  1162. this.$confirm(`是否取消审核?`, '提示', {
  1163. confirmButtonText: '确定',
  1164. cancelButtonText: '取消',
  1165. type: 'warning'
  1166. }).then(() => {
  1167. this.submitData.status = '待审核'
  1168. submitDefect(this.submitData).then(({data}) => {
  1169. if (data && data.code === 0) {
  1170. this.getDataList()
  1171. this.detailData.status = '待审核'
  1172. this.$message({
  1173. message: '操作成功',
  1174. type: 'success',
  1175. duration: 1500,
  1176. onClose: () => {}
  1177. })
  1178. } else {
  1179. this.$alert(data.msg, '错误', {
  1180. confirmButtonText: '确定'
  1181. })
  1182. }
  1183. })
  1184. }).catch(() => {
  1185. })
  1186. } else {
  1187. this.submitData.status = '已完工'
  1188. this.submitModelFlag = true
  1189. }
  1190. },
  1191. // 确认审核
  1192. submitModel () {
  1193. if (this.submitData.difficultyLevel === ''||this.submitData.difficultyLevel == null) {
  1194. this.$alert('请选择难度等级!', '提示', {
  1195. confirmButtonText: '确定'
  1196. })
  1197. return false
  1198. }
  1199. submitDefect(this.submitData).then(({data}) => {
  1200. if (data && data.code === 0) {
  1201. this.getDataList()
  1202. this.detailData.status = '已完工'
  1203. this.submitModelFlag = false
  1204. this.$message({
  1205. message: '操作成功',
  1206. type: 'success',
  1207. duration: 1500,
  1208. onClose: () => {}
  1209. })
  1210. } else {
  1211. this.$alert(data.msg, '错误', {
  1212. confirmButtonText: '确定'
  1213. })
  1214. }
  1215. })
  1216. },
  1217. // 详情
  1218. reportModal (row) {
  1219. this.detailData = {
  1220. site: row.site,
  1221. buNo: row.buNo,
  1222. orderNo: row.orderNo,
  1223. planID: row.planID,
  1224. objectID: row.objectID,
  1225. objectDesc: row.objectDesc,
  1226. status: row.status,
  1227. remark: row.remark,
  1228. workTime: row.workTime,
  1229. result: row.result,
  1230. defectID: row.defectID,
  1231. defectDesc: row.defectDesc,
  1232. actualOperatorName: row.actualOperatorName,
  1233. planDate: row.planDate,
  1234. reachDate: row.reachDate,
  1235. actualDate: row.actualDate,
  1236. planDesc: row.planDesc,
  1237. disposalMeasures: row.disposalMeasures,
  1238. handlingMethod: row.handlingMethod,
  1239. functionType: row.functionType,
  1240. resourceDesc: row.resourceDesc,
  1241. feedBackDesc: row.feedBackDesc,
  1242. faultReason: row.faultReason,
  1243. preventiveMeasure: row.preventiveMeasure
  1244. }
  1245. this.detailModelFlag = true
  1246. },
  1247. updateResult () {
  1248. if (!this.isAuth(this.$route.meta.menuId+":check")) {
  1249. this.$message.warning('无审核权限!')
  1250. return
  1251. }
  1252. if (this.detailData.reachDate === '' || this.detailData.reachDate == null) {
  1253. this.$message.warning('请选择到达时间!')
  1254. return
  1255. }
  1256. if (this.detailData.actualDate === '' || this.detailData.actualDate == null) {
  1257. this.$message.warning('请选择实际执行时间!')
  1258. return
  1259. }
  1260. if (this.detailData.reachDate > this.detailData.actualDate) {
  1261. this.$message.warning('到达时间不能大于实际执行时间!')
  1262. return
  1263. }
  1264. updateReportResult(this.detailData).then(({data}) => {
  1265. if (data && data.code === 0) {
  1266. this.getDataList()
  1267. this.detailModelFlag = false
  1268. this.$message({
  1269. message: '操作成功',
  1270. type: 'success',
  1271. duration: 1500,
  1272. onClose: () => {}
  1273. })
  1274. } else {
  1275. this.$alert(data.msg, '错误', {
  1276. confirmButtonText: '确定'
  1277. })
  1278. }
  1279. })
  1280. },
  1281. /**
  1282. * 查看故障图片
  1283. */
  1284. checkFaultImageModal () {
  1285. this.descImages = []
  1286. let tempData = {
  1287. site: this.detailData.site,
  1288. buNo: this.detailData.buNo,
  1289. orderNo: this.detailData.orderNo,
  1290. folder: 'reportFault',
  1291. }
  1292. searchFileUrl(tempData).then(({data}) => {
  1293. if (data.code === 0) {
  1294. for (let i = 0; i < data.rows.length; i++) {
  1295. this.descImages.push(data.rows[i].url)
  1296. }
  1297. } else {
  1298. this.$message.warning(data.msg)
  1299. }
  1300. })
  1301. this.imageModalFlag = true
  1302. },
  1303. /**
  1304. * 查看备件图片
  1305. */
  1306. checkSparPartImageModal () {
  1307. this.descImages = []
  1308. let tempData = {
  1309. site: this.detailData.site,
  1310. buNo: this.detailData.buNo,
  1311. orderNo: this.detailData.orderNo,
  1312. folder: 'reportSparPart',
  1313. }
  1314. searchFileUrl(tempData).then(({data}) => {
  1315. if (data.code === 0) {
  1316. for (let i = 0; i < data.rows.length; i++) {
  1317. this.descImages.push(data.rows[i].url)
  1318. }
  1319. } else {
  1320. this.$message.warning(data.msg)
  1321. }
  1322. })
  1323. this.imageModalFlag = true
  1324. },
  1325. // 获取部门列表
  1326. getDepartmentList () {
  1327. // 先清空缓存选中
  1328. this.$nextTick(() => this.$refs.departmentTable.clearSelection())
  1329. // 拿到选中的部门编号
  1330. let tempDataList = (this.searchData.departmentName == null ? '' : this.searchData.departmentName).split(';')
  1331. // 查询部门
  1332. getEmpyDeptList(this.departmentData).then(({data}) => {
  1333. if (data && data.code === 0) {
  1334. this.departmentList = data.rows
  1335. this.departmentList.forEach(val => {
  1336. // 回显选中的部门
  1337. if (tempDataList.includes(val.deptName)) {
  1338. this.$nextTick(() => this.$refs.departmentTable.toggleRowSelection(val, true))
  1339. }
  1340. })
  1341. this.departmentModelFlag = true
  1342. }else {
  1343. this.$alert(data.msg, '错误', {
  1344. confirmButtonText: '确定'
  1345. })
  1346. }
  1347. })
  1348. },
  1349. // 部门
  1350. departmentClickRow (row) {
  1351. this.$refs.departmentTable.toggleRowSelection(row)
  1352. },
  1353. // 多选
  1354. selectionDepartment (val) {
  1355. this.departmentListSelections = val
  1356. },
  1357. getRowKeys (row) {
  1358. // 唯一值,一般都为id
  1359. return row.deptId
  1360. },
  1361. // 确认多选部门
  1362. confirmDepartment () {
  1363. this.searchData.departmentName = ''
  1364. for (let i = 0; i < this.departmentListSelections.length; i++) {
  1365. this.searchData.departmentName = this.searchData.departmentName + ";" + this.departmentListSelections[i].deptName
  1366. }
  1367. this.searchData.departmentName = this.searchData.departmentName.substring(1)
  1368. this.departmentModelFlag = false
  1369. },
  1370. // 清空搜索框部门
  1371. clearDepartmentName () {
  1372. this.searchData.departmentName = ''
  1373. },
  1374. // 动态列开始 获取 用户保存的 格式列
  1375. async getTableUserColumn(tableId, columnId) {
  1376. let queryTableUser = {
  1377. userId: this.$store.state.user.name,
  1378. functionId: this.$route.meta.menuId,
  1379. tableId: tableId,
  1380. status: true,
  1381. languageCode: this.$i18n.locale
  1382. }
  1383. await getTableUserListLanguage(queryTableUser).then(({data}) => {
  1384. if (data.rows.length > 0) {
  1385. //this.columnList1 = []
  1386. switch (columnId) {
  1387. case 1:
  1388. this.columnList = data.rows
  1389. break;
  1390. // case 2:
  1391. // this.columnDetailList = data.rows
  1392. // break;
  1393. // case 3:
  1394. // this.columnList2 = data.rows
  1395. // break;
  1396. // case 4:
  1397. // this.columnList3 = data.rows
  1398. // break;
  1399. }
  1400. } else {
  1401. this.getColumnList(tableId, columnId)
  1402. }
  1403. })
  1404. },
  1405. // 获取 tableDefault 列
  1406. async getColumnList(tableId, columnId) {
  1407. let queryTable= {
  1408. functionId: this.$route.meta.menuId,
  1409. tableId: tableId,
  1410. languageCode: this.$i18n.locale
  1411. }
  1412. await getTableDefaultListLanguage(queryTable).then(({data}) => {
  1413. if (!data.rows.length == 0) {
  1414. switch (columnId) {
  1415. case 1:
  1416. this.columnList = data.rows
  1417. break;
  1418. // case 2:
  1419. // this.columnDetailList = data.rows
  1420. // break;
  1421. // case 3:
  1422. // this.columnList2 = data.rows
  1423. // break;
  1424. // case 4:
  1425. // this.columnList3 = data.rows
  1426. // break;
  1427. }
  1428. } else {
  1429. // this.showDefault = true.
  1430. }
  1431. })
  1432. },
  1433. }
  1434. }
  1435. </script>