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.

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