index.vue 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778
  1. <template>
  2. <div class="app-container">
  3. <el-form
  4. :model="queryParams"
  5. ref="queryForm"
  6. size="small"
  7. :inline="true"
  8. v-show="showSearch"
  9. label-width="100px"
  10. >
  11. <el-form-item label="隔离点编号" prop="pointCode">
  12. <el-input
  13. v-model="queryParams.pointCode"
  14. placeholder="请输入隔离点编号"
  15. clearable
  16. @keyup.enter.native="handleQuery"
  17. />
  18. </el-form-item>
  19. <el-form-item label="隔离点名称" prop="pointName">
  20. <el-input
  21. v-model="queryParams.pointName"
  22. placeholder="请输入隔离点名称"
  23. clearable
  24. @keyup.enter.native="handleQuery"
  25. />
  26. </el-form-item>
  27. <!-- <el-form-item label="状态" prop="calendarType">
  28. <el-select v-model="queryParams.calendarType" placeholder="状态">
  29. <el-option>正常</el-option>
  30. <el-option>异常</el-option>
  31. </el-select>
  32. </el-form-item> -->
  33. <el-form-item label="隔离点类型" prop="pointType">
  34. <el-select
  35. v-model="queryParams.pointType"
  36. placeholder="请选择隔离点类型"
  37. >
  38. <el-option
  39. v-for="dict in dict.type.point_type"
  40. :key="dict.value"
  41. :label="dict.label"
  42. :value="dict.value"
  43. />
  44. </el-select>
  45. </el-form-item>
  46. <el-form-item label="危险能量类型" prop="powerType">
  47. <el-select
  48. style="width: 300px"
  49. v-model="queryParams.powerType"
  50. placeholder="请选择危险能量类型"
  51. >
  52. <el-option
  53. v-for="dict in dict.type.power_type"
  54. :key="dict.value"
  55. :label="dict.label"
  56. :value="dict.value"
  57. />
  58. </el-select>
  59. </el-form-item>
  60. <el-form-item label="创建时间">
  61. <el-date-picker
  62. v-model="createTime"
  63. type="daterange"
  64. align="right"
  65. unlink-panels
  66. range-separator="至"
  67. start-placeholder="开始日期"
  68. end-placeholder="结束日期"
  69. :picker-options="pickerOptions"
  70. >
  71. </el-date-picker>
  72. </el-form-item>
  73. <el-form-item>
  74. <el-button
  75. type="primary"
  76. icon="el-icon-search"
  77. size="mini"
  78. @click="handleQuery"
  79. >搜索</el-button
  80. >
  81. <el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
  82. >重置</el-button
  83. >
  84. </el-form-item>
  85. </el-form>
  86. <el-row :gutter="10" class="mb8">
  87. <el-col :span="1.5">
  88. <el-button
  89. type="primary"
  90. plain
  91. icon="el-icon-plus"
  92. size="mini"
  93. @click="handleAdd"
  94. v-hasPermi="['mes:md:seg:add']"
  95. >新增
  96. </el-button>
  97. </el-col>
  98. <el-col :span="1.5">
  99. <el-button
  100. type="danger"
  101. plain
  102. icon="el-icon-delete"
  103. size="mini"
  104. :disabled="multiple"
  105. @click="handleDelete"
  106. v-hasPermi="['mes:md:seg:batchremove']"
  107. >批量删除
  108. </el-button>
  109. </el-col>
  110. <!-- <el-col :span="1.5">-->
  111. <!-- <el-button-->
  112. <!-- type="warning"-->
  113. <!-- plain-->
  114. <!-- icon="el-icon-download"-->
  115. <!-- size="mini"-->
  116. <!-- @click="handleExport"-->
  117. <!-- v-hasPermi="['mes:cal:team:export']"-->
  118. <!-- >导出</el-button>-->
  119. <!-- </el-col>-->
  120. <right-toolbar
  121. :showSearch.sync="showSearch"
  122. @queryTable="getList"
  123. ></right-toolbar>
  124. </el-row>
  125. <el-table
  126. v-loading="loading"
  127. :data="isolationList"
  128. @selection-change="handleSelectionChange"
  129. >
  130. <el-table-column type="selection" width="55" align="center" />
  131. <!-- <el-table-column label="隔离点ID" align="center" prop="pointId">
  132. <template slot-scope="scope">
  133. <el-button
  134. type="text"
  135. @click="handleView(scope.row)"
  136. v-hasPermi="['mes:md:seg:query']"
  137. >{{ scope.row.pointId }}
  138. </el-button>
  139. </template>
  140. </el-table-column> -->
  141. <el-table-column label="隔离点编号" align="center" prop="pointCode">
  142. <template slot-scope="scope">
  143. <el-button
  144. type="text"
  145. @click="handleView(scope.row)"
  146. v-hasPermi="['mes:md:seg:query']"
  147. >{{ scope.row.pointCode }}
  148. </el-button>
  149. </template>
  150. </el-table-column>
  151. <el-table-column label="隔离点名称" align="center" prop="pointName" />
  152. <!-- <el-table-column label="状态" align="center" prop="calendarType">
  153. <template slot-scope="scope">
  154. <dict-tag
  155. :options="dict.type.mes_calendar_type"
  156. :value="scope.row.calendarType"
  157. />
  158. </template>
  159. </el-table-column> -->
  160. <el-table-column label="隔离点图标" align="center" prop="pointIcon">
  161. <template slot-scope="scope">
  162. <img
  163. :src="scope.row.pointIcon"
  164. alt=""
  165. style="width: 50px; height: 50px"
  166. />
  167. </template>
  168. </el-table-column>
  169. <el-table-column label="隔离点图片" align="center" prop="pointPicture">
  170. <template slot-scope="scope">
  171. <img
  172. :src="scope.row.pointPicture"
  173. alt=""
  174. style="width: 50px; height: 50px"
  175. />
  176. </template>
  177. </el-table-column>
  178. <el-table-column label="隔离点类型" align="center" prop="pointType">
  179. <template slot-scope="scope">
  180. <dict-tag
  181. :options="dict.type.point_type"
  182. :value="scope.row.pointType"
  183. />
  184. </template>
  185. </el-table-column>
  186. <!-- <el-table-column label="存在的作业种类" align="center" prop="remark">
  187. </el-table-column> -->
  188. <el-table-column label="危险能量类型" align="center" prop="powerType">
  189. <template slot-scope="scope">
  190. <dict-tag
  191. :options="dict.type.power_type"
  192. :value="scope.row.powerType"
  193. />
  194. </template>
  195. </el-table-column>
  196. <el-table-column label="创建时间" align="center" prop="createTime">
  197. </el-table-column>
  198. <el-table-column
  199. label="操作"
  200. align="center"
  201. class-name="small-padding fixed-width"
  202. >
  203. <template slot-scope="scope">
  204. <el-button
  205. size="mini"
  206. type="text"
  207. icon="el-icon-edit"
  208. @click="handleUpdate(scope.row)"
  209. v-hasPermi="['mes:md:seg:edit']"
  210. >编辑
  211. </el-button>
  212. <el-button
  213. size="mini"
  214. type="text"
  215. icon="el-icon-delete"
  216. @click="handleDelete(scope.row)"
  217. v-hasPermi="['mes:md:seg:remove']"
  218. >删除
  219. </el-button>
  220. </template>
  221. </el-table-column>
  222. </el-table>
  223. <pagination
  224. v-show="total > 0"
  225. :total="total"
  226. :page.sync="queryParams.current"
  227. :limit.sync="queryParams.size"
  228. @pagination="getList"
  229. />
  230. <!-- 添加或修改班组对话框 -->
  231. <el-dialog :visible.sync="open" width="960px" append-to-body>
  232. <div slot="title" class="dialog-title">
  233. <i></i>
  234. <span class="title">{{ title }}</span>
  235. </div>
  236. <el-form ref="form" :model="form" :rules="rules" label-width="110px">
  237. <el-row>
  238. <el-col :span="8">
  239. <el-form-item label="隔离点编码" prop="pointCode">
  240. <el-input
  241. v-model="form.pointCode"
  242. placeholder="请输入隔离点编码"
  243. />
  244. </el-form-item>
  245. </el-col>
  246. <el-col :span="4">
  247. <el-form-item label-width="80">
  248. <el-switch
  249. v-model="autoGenFlag"
  250. active-color="#13ce66"
  251. active-text="自动生成"
  252. @change="handleAutoGenChange(autoGenFlag)"
  253. v-if="optType != 'view'"
  254. >
  255. </el-switch>
  256. </el-form-item>
  257. </el-col>
  258. <el-col :span="12">
  259. <el-form-item label-width="80" label="锁具名称" prop="lockName">
  260. <el-input
  261. style="width: 300px"
  262. v-model="form.lockName"
  263. placeholder="请输入锁具名称"
  264. />
  265. </el-form-item>
  266. </el-col>
  267. </el-row>
  268. <el-row>
  269. <el-col :span="12">
  270. <el-form-item label="隔离点名称" prop="pointName">
  271. <el-input
  272. style="width: 300px"
  273. v-model="form.pointName"
  274. placeholder="请输入隔离点名称"
  275. />
  276. </el-form-item>
  277. </el-col>
  278. <el-col :span="12">
  279. <el-form-item label-width="80" label="锁具类型" prop="lockType">
  280. <el-select
  281. style="width: 300px"
  282. v-model="form.lockType"
  283. placeholder="请选择锁具类型"
  284. >
  285. <el-option
  286. v-for="dict in dict.type.lock_type"
  287. :key="dict.value"
  288. :label="dict.label"
  289. :value="dict.value"
  290. />
  291. </el-select>
  292. </el-form-item>
  293. </el-col>
  294. </el-row>
  295. <el-row>
  296. <el-col :span="11">
  297. <el-form-item label="隔离点类型" prop="pointType">
  298. <el-select
  299. style="width: 300px"
  300. v-model="form.pointType"
  301. placeholder="请选择隔离点类型"
  302. >
  303. <el-option
  304. v-for="dict in dict.type.point_type"
  305. :key="dict.value"
  306. :label="dict.label"
  307. :value="dict.value"
  308. />
  309. </el-select>
  310. </el-form-item>
  311. </el-col>
  312. <el-col :span="11">
  313. <el-form-item label="危险能量类型" prop="powerType">
  314. <el-select
  315. style="width: 300px"
  316. v-model="form.powerType"
  317. placeholder="请选择危险能量类型"
  318. >
  319. <el-option
  320. v-for="dict in dict.type.power_type"
  321. :key="dict.value"
  322. :label="dict.label"
  323. :value="dict.value"
  324. />
  325. </el-select>
  326. </el-form-item>
  327. </el-col>
  328. </el-row>
  329. <el-row>
  330. <el-col :span="12">
  331. <el-form-item label="作业区域" prop="workareaId">
  332. <!-- <el-select-->
  333. <!-- style="width: 300px"-->
  334. <!-- v-model="form.workareaId"-->
  335. <!-- placeholder="请选择工作区域"-->
  336. <!-- >-->
  337. <!-- <el-option-->
  338. <!-- v-for="dict in this.workareaList"-->
  339. <!-- :key="dict.value"-->
  340. <!-- :label="dict.label"-->
  341. <!-- :value="dict.value"-->
  342. <!-- />-->
  343. <!-- </el-select>-->
  344. <treeselect style="width: 300px" v-model="form.workareaId" :options="deptOptions" :normalizer="normalizer"
  345. placeholder="选择作业区域"
  346. />
  347. </el-form-item>
  348. </el-col>
  349. </el-row>
  350. <el-row>
  351. <el-col :span="7">
  352. <el-form-item label="隔离点图标" prop="pointIcon">
  353. <ImageUpload
  354. :limit="1"
  355. :value="form.pointIcon"
  356. :fileSize="5"
  357. @onUploaded="handleIconUplaoded"
  358. @onRemoved="handleIconRemoved"
  359. ></ImageUpload>
  360. </el-form-item>
  361. </el-col>
  362. <el-col :span="7">
  363. <el-form-item label="隔离点图片" prop="pointPicture">
  364. <ImageUpload
  365. :limit="1"
  366. :value="form.pointPicture"
  367. :fileSize="5"
  368. @onUploaded="handleImgUplaoded"
  369. @onRemoved="handleImgRemoved"
  370. ></ImageUpload>
  371. </el-form-item>
  372. </el-col>
  373. <el-col :span="7">
  374. <el-form-item label="锁具图片" prop="lockImg">
  375. <ImageUpload
  376. :limit="1"
  377. :value="form.lockImg"
  378. :fileSize="5"
  379. @onUploaded="handleIconUplaoded1"
  380. @onRemoved="handleIconRemoved1"
  381. ></ImageUpload>
  382. </el-form-item>
  383. </el-col>
  384. </el-row>
  385. <!-- <el-form-item label="所属车间" prop="workshopId">-->
  386. <!-- <el-select-->
  387. <!-- style="width: 318px"-->
  388. <!-- v-model="form.workshopId"-->
  389. <!-- placeholder="请选择所属车间"-->
  390. <!-- @change="workShopChange"-->
  391. <!-- >-->
  392. <!-- <el-option-->
  393. <!-- v-for="item in this.workshopList"-->
  394. <!-- :key="item.key"-->
  395. <!-- :label="item.label"-->
  396. <!-- :value="item.value"-->
  397. <!-- />-->
  398. <!-- </el-select>-->
  399. <!-- </el-form-item>-->
  400. </el-form>
  401. <div slot="footer" class="dialog-footer">
  402. <el-button type="primary" @click="submitForm">确 定</el-button>
  403. <el-button @click="cancel">取 消</el-button>
  404. </div>
  405. </el-dialog>
  406. </div>
  407. </template>
  408. <script>
  409. import {
  410. getIsIsolationPointPage,
  411. addinsertIsIsolationPoint,
  412. updateIsIsolationPoint,
  413. workshoplistAll,
  414. getIsWorkareaList,
  415. selectIsIsolationPointById,
  416. deleteIsIsolationPointByPointIds,
  417. } from "@/api/mes/spm/segregationPoint";
  418. import { genCode } from "@/api/system/autocode/rule";
  419. import Treeselect from '@riophae/vue-treeselect'
  420. import '@riophae/vue-treeselect/dist/vue-treeselect.css'
  421. import { listWorkarea } from '@/api/mes/wa/workarea'
  422. export default {
  423. name: "Team",
  424. components: { Treeselect },
  425. dicts: ["power_type", "point_type",'lock_type'],
  426. data() {
  427. return {
  428. //自动生成编码
  429. autoGenFlag: false,
  430. optType: undefined,
  431. // 遮罩层
  432. loading: true,
  433. // 选中数组
  434. ids: [],
  435. codes: [],
  436. // 非单个禁用
  437. single: true,
  438. // 非多个禁用
  439. multiple: true,
  440. // 部门树选项
  441. deptOptions: [],
  442. // 显示搜索条件
  443. showSearch: true,
  444. // 总条数
  445. total: 0,
  446. // 班组表格数据
  447. isolationList: [],
  448. // 弹出层标题
  449. title: "",
  450. // 是否显示弹出层
  451. open: false,
  452. // 车间数据
  453. workshopList: [],
  454. // 工作区域数据
  455. workareaList: [],
  456. // 新增或修改
  457. pointId: null,
  458. // 查询参数
  459. createTime: "",
  460. queryParams: {
  461. current: 1,
  462. size: 10,
  463. pointCode: "",
  464. pointName: "",
  465. delFlag: "",
  466. pointType: "",
  467. powerType: "",
  468. startTime: "",
  469. endTime: "",
  470. },
  471. pickerOptions: {
  472. shortcuts: [
  473. {
  474. text: "最近一周",
  475. onClick(picker) {
  476. const end = new Date();
  477. const start = new Date();
  478. start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
  479. picker.$emit("pick", [start, end]);
  480. },
  481. },
  482. {
  483. text: "最近一个月",
  484. onClick(picker) {
  485. const end = new Date();
  486. const start = new Date();
  487. start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
  488. picker.$emit("pick", [start, end]);
  489. },
  490. },
  491. {
  492. text: "最近三个月",
  493. onClick(picker) {
  494. const end = new Date();
  495. const start = new Date();
  496. start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
  497. picker.$emit("pick", [start, end]);
  498. },
  499. },
  500. ],
  501. },
  502. // 表单参数
  503. form: {},
  504. // 表单校验
  505. rules: {
  506. pointCode: [
  507. { required: true, message: "隔离点编号不能为空", trigger: "blur" },
  508. ],
  509. pointName: [
  510. { required: true, message: "隔离点名称不能为空", trigger: "blur" },
  511. ],
  512. workshopId: [
  513. { required: true, message: "所属车间不能为空", trigger: "blur" },
  514. ],
  515. workareaId: [
  516. { required: true, message: "工作区域不能为空", trigger: "blur" },
  517. ],
  518. pointType:[
  519. { required: true, message: "隔离点类型不能为空", trigger: "blur" },
  520. ]
  521. },
  522. };
  523. },
  524. created() {
  525. this.getList();
  526. this.getworkShop();
  527. this.getworkArea();
  528. },
  529. methods: {
  530. // 格式化日期查询数据
  531. formatDate(date) {
  532. if (date && date instanceof Date && !isNaN(date)) {
  533. // 使用本地时间
  534. return `${date.getFullYear()}-${String(date.getMonth() + 1).padStart(
  535. 2,
  536. "0"
  537. )}-${String(date.getDate()).padStart(2, "0")}`;
  538. }
  539. return null;
  540. },
  541. /** 查询隔离点信息列表 */
  542. getList() {
  543. this.loading = true;
  544. // 格式化日期并更新queryParams
  545. if (Array.isArray(this.createTime) && this.createTime.length === 2) {
  546. this.queryParams.startTime = this.formatDate(this.createTime[0]);
  547. this.queryParams.endTime = this.formatDate(this.createTime[1]);
  548. }
  549. getIsIsolationPointPage(this.queryParams).then((response) => {
  550. // console.log(response, "接口返回结果");
  551. this.isolationList = response.data.records;
  552. this.total = response.data.total;
  553. this.loading = false;
  554. });
  555. // 获取工作区域数据
  556. listWorkarea().then(response => {
  557. this.deptOptions = this.handleTree(response.data.records, 'workareaId', 'parentId', 'children')
  558. })
  559. },
  560. /** 转换部门数据结构 */
  561. normalizer(node) {
  562. if (node.children && !node.children.length) {
  563. delete node.children
  564. }
  565. return {
  566. id: node.workareaId,
  567. label: node.workareaName,
  568. children: node.children
  569. }
  570. },
  571. //图片上传成功
  572. handleImgUplaoded(imgUrl) {
  573. this.form.pointPicture = imgUrl[0].url;
  574. },
  575. //图片移除
  576. handleImgRemoved(imgUrl) {
  577. this.form.pointPicture = null;
  578. },
  579. //图标上传成功
  580. handleIconUplaoded(imgUrl) {
  581. this.form.pointIcon = imgUrl[0].url;
  582. },
  583. handleIconUplaoded1(imgUrl){
  584. this.form.lockImg = imgUrl[0].url;
  585. },
  586. // 图标移除
  587. handleIconRemoved(imgUrl) {
  588. this.form.pointIcon = null;
  589. },
  590. // 图标移除
  591. handleIconRemoved1(imgUrl) {
  592. this.form.lockImg = null;
  593. },
  594. // 取消按钮
  595. cancel() {
  596. this.open = false;
  597. this.reset();
  598. },
  599. // 表单重置
  600. reset() {
  601. this.form = {
  602. pointCode: null,
  603. pointName: null,
  604. pointIcon: null,
  605. pointPicture: null,
  606. pointType: null,
  607. powerType: null,
  608. createTime: null,
  609. };
  610. this.autoGenFlag = false;
  611. this.resetForm("form");
  612. },
  613. /** 搜索按钮操作 */
  614. handleQuery() {
  615. this.queryParams.current = 1;
  616. this.getList();
  617. },
  618. /** 重置按钮操作 */
  619. resetQuery() {
  620. this.createTime = "";
  621. (this.queryParams.startTime = ""),
  622. (this.queryParams.endTime = ""),
  623. this.resetForm("queryForm");
  624. this.handleQuery();
  625. },
  626. // 多选框选中数据
  627. handleSelectionChange(selection) {
  628. this.ids = selection.map((item) => item.pointId);
  629. this.codes = selection.map((item) => item.pointCode);
  630. this.single = selection.length !== 1;
  631. this.multiple = !selection.length;
  632. },
  633. /** 新增按钮操作 */
  634. handleAdd() {
  635. this.reset();
  636. this.open = true;
  637. this.title = "添加隔离点";
  638. this.optType = "add";
  639. this.pointId = null;
  640. this.form.workshopId=0;
  641. this.getworkShop();
  642. },
  643. // 查询明细按钮操作
  644. // handleView(row) {
  645. // this.reset();
  646. // const teamId = row.teamId || this.ids;
  647. // getTeam(teamId).then((response) => {
  648. // this.form = response.data;
  649. // this.open = true;
  650. // this.title = "查看";
  651. // this.optType = "view";
  652. // });
  653. // },
  654. /** 修改按钮操作 */
  655. handleUpdate(row) {
  656. this.reset();
  657. this.pointId = row.pointId || this.ids;
  658. selectIsIsolationPointById(this.pointId).then((response) => {
  659. this.form = response.data;
  660. this.open = true;
  661. this.title = "修改隔离点信息";
  662. this.optType = "edit";
  663. });
  664. },
  665. /** 提交按钮 */
  666. submitForm() {
  667. this.$refs["form"].validate((valid) => {
  668. if (valid) {
  669. console.log(this.pointId, "this.pointId");
  670. if (this.pointId != null) {
  671. updateIsIsolationPoint(this.form).then((response) => {
  672. this.$modal.msgSuccess("修改成功");
  673. this.open = false;
  674. this.getList();
  675. });
  676. } else {
  677. console.log(this.form, "新增参数");
  678. addinsertIsIsolationPoint(this.form).then((response) => {
  679. this.$modal.msgSuccess("新增成功");
  680. this.open = false;
  681. this.getList();
  682. this.pointId = null;
  683. });
  684. }
  685. }
  686. });
  687. },
  688. /** 删除按钮操作 */
  689. handleDelete(row) {
  690. const teamIds = row.pointId || this.ids;
  691. const pointcodes = row.pointCode || this.codes;
  692. this.$modal
  693. .confirm('是否确认删除隔离点编号为"' + pointcodes + '"的数据项?')
  694. .then(function () {
  695. return deleteIsIsolationPointByPointIds(teamIds);
  696. })
  697. .then(() => {
  698. this.getList();
  699. this.$modal.msgSuccess("删除成功");
  700. })
  701. .catch(() => {});
  702. },
  703. /** 导出按钮操作 */
  704. handleExport() {
  705. this.download(
  706. "cal/team/export",
  707. {
  708. ...this.queryParams,
  709. },
  710. `team_${new Date().getTime()}.xlsx`
  711. );
  712. },
  713. //自动生成编码
  714. handleAutoGenChange(autoGenFlag) {
  715. if (autoGenFlag) {
  716. genCode("ISOLATION_POINT_CODE").then((response) => {
  717. this.form.pointCode = response;
  718. });
  719. } else {
  720. this.form.pointCode = null;
  721. }
  722. },
  723. // 获取车间数据
  724. getworkShop() {
  725. workshoplistAll().then((response) => {
  726. console.log(response, "获取车间数据");
  727. this.workshopList = response.data.map((item) => {
  728. return {
  729. label: item.workshopName,
  730. value: item.workshopId,
  731. key: item.workshopCode,
  732. };
  733. });
  734. });
  735. },
  736. // 所属车间下拉改变工作区域内容
  737. workShopChange() {
  738. this.getworkArea();
  739. },
  740. // 获取工作区域数据
  741. getworkArea() {
  742. const workshopId = this.form.workshopId;
  743. if (workshopId) {
  744. getIsWorkareaList(workshopId).then((response) => {
  745. console.log(response, "获取工作区域数据");
  746. this.workareaList = response.data.map((item) => {
  747. return {
  748. label: item.workareaName,
  749. value: item.workareaId,
  750. key: item.workareaCode,
  751. };
  752. });
  753. });
  754. }
  755. },
  756. },
  757. };
  758. </script>
  759. <style lang="scss" src="@/assets/styles/dialog-title.scss" scoped>
  760. .el-input-width {
  761. width: 380px !important;
  762. }
  763. </style>