index.vue 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805
  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-row>
  12. <el-form-item label="硬件编码" prop="hardwareCode">
  13. <el-input
  14. v-model="queryParams.hardwareCode"
  15. placeholder="请输入硬件编码"
  16. clearable
  17. @keyup.enter.native="handleQuery"
  18. />
  19. </el-form-item>
  20. <el-form-item label="硬件名称" prop="hardwareName">
  21. <el-input
  22. v-model="queryParams.hardwareName"
  23. placeholder="请输入硬件名称"
  24. clearable
  25. @keyup.enter.native="handleQuery"
  26. />
  27. </el-form-item>
  28. <el-form-item label="状态" prop="status">
  29. <el-select
  30. v-model="queryParams.status"
  31. placeholder="请选择硬件状态"
  32. clearable
  33. >
  34. <el-option
  35. v-for="dict in dict.type.hardware_status"
  36. :key="dict.value"
  37. :label="dict.label"
  38. :value="dict.value"
  39. />
  40. </el-select>
  41. </el-form-item>
  42. <el-form-item label="硬件类型" prop="hardwareTypeId">
  43. <treeselect
  44. style="width: 215px"
  45. v-model="queryParams.hardwareTypeId"
  46. :options="hardwareTypeOption"
  47. :show-count="true"
  48. placeholder="请选择硬件类型"
  49. />
  50. </el-form-item>
  51. </el-row>
  52. <el-form-item label="规格型号" prop="hardwareSpec">
  53. <el-input
  54. v-model="queryParams.hardwareSpec"
  55. placeholder="请输入规格型号"
  56. clearable
  57. @keyup.enter.native="handleQuery"
  58. />
  59. </el-form-item>
  60. <el-form-item label="创建时间" prop="createTime">
  61. <el-date-picker
  62. v-model="createTime"
  63. type="datetimerange"
  64. :picker-options="pickerOptions"
  65. range-separator="-"
  66. start-placeholder="开始日期"
  67. end-placeholder="结束日期"
  68. align="right"
  69. style="width: 540px"
  70. >
  71. </el-date-picker>
  72. </el-form-item>
  73. <!-- <el-form-item label="所属车间" prop="status">
  74. <el-select
  75. v-model="queryParams.workshopName"
  76. placeholder="请选择所属车间"
  77. clearable
  78. @change="workShopChangequery"
  79. >
  80. <el-option
  81. v-for="dict in this.workshopOption"
  82. :key="dict.key"
  83. :label="dict.label"
  84. :value="dict.value"
  85. />
  86. </el-select>
  87. </el-form-item> -->
  88. <el-form-item style="margin-left: 50px">
  89. <el-button
  90. v-no-more-click
  91. type="primary"
  92. icon="el-icon-search"
  93. size="mini"
  94. @click="handleQuery"
  95. >搜索</el-button
  96. >
  97. <el-button
  98. v-no-more-click
  99. icon="el-icon-refresh"
  100. size="mini"
  101. @click="resetQuery"
  102. >重置</el-button
  103. >
  104. </el-form-item>
  105. </el-form>
  106. <el-row :gutter="10" class="mb8">
  107. <el-col :span="1.5">
  108. <el-button
  109. v-no-more-click
  110. type="primary"
  111. plain
  112. icon="el-icon-plus"
  113. size="mini"
  114. @click="handleAdd"
  115. v-hasPermi="['mes:hw:information:add']"
  116. >新增</el-button
  117. >
  118. </el-col>
  119. <!-- <el-col :span="1.5">
  120. <el-button v-no-more-click
  121. type="success"
  122. plain
  123. icon="el-icon-edit"
  124. size="mini"
  125. :disabled="single"
  126. @click="handleUpdate"
  127. v-hasPermi="['mes:dv:repair:edit']"
  128. >修改</el-button
  129. >
  130. </el-col> -->
  131. <el-col :span="1.5">
  132. <el-button
  133. v-no-more-click
  134. type="danger"
  135. plain
  136. icon="el-icon-delete"
  137. size="mini"
  138. :disabled="multiple"
  139. @click="handleDelete"
  140. v-hasPermi="['mes:hw:information:batchremove']"
  141. >批量删除</el-button
  142. >
  143. </el-col>
  144. <right-toolbar
  145. :showSearch.sync="showSearch"
  146. @queryTable="getList"
  147. ></right-toolbar>
  148. </el-row>
  149. <el-table
  150. v-loading="loading"
  151. :data="repairList"
  152. @selection-change="handleSelectionChange"
  153. >
  154. <el-table-column type="selection" width="55" align="center" />
  155. <el-table-column
  156. label="硬件编码"
  157. width="120px"
  158. align="center"
  159. prop="hardwareCode"
  160. />
  161. <el-table-column
  162. label="硬件名称"
  163. width="150px"
  164. align="center"
  165. prop="hardwareName"
  166. :show-overflow-tooltip="true"
  167. />
  168. <el-table-column
  169. label="硬件类型"
  170. align="center"
  171. prop="hardwareTypeName"
  172. />
  173. <el-table-column label="规格型号" align="center" prop="hardwareSpec" />
  174. <!-- <el-table-column label="所属车间" align="center" prop="workshopName" /> -->
  175. <el-table-column label="硬件状态" align="center" prop="status">
  176. <template slot-scope="scope">
  177. <dict-tag
  178. :options="dict.type.hardware_status"
  179. :value="scope.row.status"
  180. />
  181. </template>
  182. </el-table-column>
  183. <el-table-column
  184. label="创建时间"
  185. align="center"
  186. prop="createTime"
  187. width="180"
  188. >
  189. <template slot-scope="scope">
  190. <span>{{ scope.row.createTime }}</span>
  191. </template>
  192. </el-table-column>
  193. <el-table-column
  194. label="启用时间"
  195. align="center"
  196. prop="activationTime"
  197. width="120"
  198. >
  199. <template slot-scope="scope">
  200. <span>{{ scope.row.activationTime }}</span>
  201. </template>
  202. </el-table-column>
  203. <el-table-column label="可用次数" align="center" prop="availableTimes" />
  204. <el-table-column label="已用次数" align="center" prop="usedTimes" />
  205. <el-table-column label="可用寿命" align="center" prop="availableLife" />
  206. <el-table-column label="已用寿命" align="center" prop="usedLife" />
  207. <el-table-column
  208. label="操作"
  209. align="center"
  210. class-name="small-padding fixed-width"
  211. fixed="right"
  212. >
  213. <template slot-scope="scope">
  214. <el-button
  215. v-no-more-click
  216. size="mini"
  217. type="text"
  218. icon="el-icon-edit"
  219. @click="handleUpdate(scope.row)"
  220. v-hasPermi="['mes:hw:information:edit']"
  221. >编辑</el-button
  222. >
  223. <el-button
  224. v-no-more-click
  225. size="mini"
  226. type="text"
  227. icon="el-icon-delete"
  228. @click="handleDelete(scope.row)"
  229. v-hasPermi="['mes:hw:information:remove']"
  230. >删除</el-button
  231. >
  232. <!-- <el-button v-no-more-click size="mini" type="text">预览</el-button>-->
  233. </template>
  234. </el-table-column>
  235. </el-table>
  236. <pagination
  237. v-show="total > 0"
  238. :total="total"
  239. :page.sync="queryParams.current"
  240. :limit.sync="queryParams.size"
  241. @pagination="getList"
  242. />
  243. <!-- 添加或修改设备维修单对话框 -->
  244. <el-dialog
  245. :title="title"
  246. :visible.sync="open"
  247. width="1100px"
  248. append-to-body
  249. >
  250. <el-form ref="form" :model="form" :rules="rules" label-width="120px">
  251. <el-row>
  252. <el-col :span="8">
  253. <el-form-item label="硬件编码" prop="hardwareCode">
  254. <el-input
  255. v-model="form.hardwareCode"
  256. placeholder="请输入硬件编码"
  257. style="width: 100%"
  258. />
  259. </el-form-item>
  260. </el-col>
  261. <el-col :span="3">
  262. <el-form-item label-width="80">
  263. <el-switch
  264. v-model="autoGenFlag"
  265. active-color="#13ce66"
  266. active-text="自动生成"
  267. @change="handleAutoGenChange(autoGenFlag)"
  268. v-if="optType != 'view'"
  269. >
  270. </el-switch>
  271. </el-form-item>
  272. </el-col>
  273. <el-col :span="11">
  274. <el-form-item label="硬件类型" prop="hardwareTypeId">
  275. <treeselect
  276. v-model="form.hardwareTypeId"
  277. :options="hardwareTypeOption"
  278. @input="onSelectChange"
  279. :show-count="true"
  280. placeholder="请选择硬件类型"
  281. />
  282. </el-form-item>
  283. </el-col>
  284. </el-row>
  285. <el-row>
  286. <el-col :span="11">
  287. <el-form-item label="硬件名称" prop="hardwareName">
  288. <el-input
  289. v-model="form.hardwareName"
  290. placeholder="请输入硬件名称"
  291. />
  292. </el-form-item>
  293. </el-col>
  294. <el-col :span="11">
  295. <el-form-item label="规格型号" prop="hardwareSpec">
  296. <el-input
  297. v-model="form.hardwareSpec"
  298. placeholder="请输入规格型号"
  299. />
  300. </el-form-item>
  301. </el-col>
  302. </el-row>
  303. <el-row>
  304. <el-col :span="11">
  305. <el-form-item label="可用次数" prop="availableTimes">
  306. <el-input
  307. v-model="form.availableTimes"
  308. placeholder="请输入可用次数"
  309. disabled
  310. />
  311. </el-form-item>
  312. </el-col>
  313. <el-col :span="11">
  314. <el-form-item label="已用次数" prop="usedTimes">
  315. <el-input
  316. v-model="form.usedTimes"
  317. placeholder="请输入已用次数"
  318. disabled
  319. />
  320. </el-form-item>
  321. </el-col>
  322. </el-row>
  323. <el-row>
  324. <el-col :span="11">
  325. <el-form-item label="可用寿命" prop="availableLife">
  326. <el-input
  327. v-model="form.availableLife"
  328. placeholder="请输入可用寿命"
  329. />
  330. </el-form-item>
  331. </el-col>
  332. <el-col :span="11">
  333. <el-form-item label="已用寿命" prop="usedLife">
  334. <el-input v-model="form.usedLife" placeholder="请输入已用寿命" />
  335. </el-form-item>
  336. </el-col>
  337. </el-row>
  338. <el-row>
  339. <el-col :span="11">
  340. <el-form-item label="启用日期" prop="activationTime">
  341. <el-date-picker
  342. clearable
  343. v-model="form.activationTime"
  344. style="width: 100%"
  345. type="date"
  346. value-format="yyyy-MM-dd"
  347. placeholder="请选择启用日期"
  348. >
  349. </el-date-picker> </el-form-item
  350. ></el-col>
  351. <el-col :span="11">
  352. <!-- <el-form-item label="所属车间" prop="workshopName">
  353. <el-select
  354. v-model="form.workshopName"
  355. placeholder="请选择所属车间"
  356. clearable
  357. style="width: 100%"
  358. @change="workShopChange"
  359. >
  360. <el-option
  361. v-for="dict in this.workshopOption"
  362. :key="dict.key"
  363. :label="dict.label"
  364. :value="dict.value"
  365. />
  366. </el-select>
  367. </el-form-item> -->
  368. <el-form-item label="状态" prop="status">
  369. <el-radio v-model="form.status" label="1" v-removeAriaHidden
  370. ><img
  371. src="@/assets/images/success.png"
  372. alt=""
  373. class="imgstatus"
  374. />
  375. 在线</el-radio
  376. >
  377. <el-radio v-model="form.status" v-removeAriaHidden label="2"
  378. ><img
  379. src="@/assets/images/error.png"
  380. alt=""
  381. class="imgstatus"
  382. />
  383. 离线</el-radio
  384. >
  385. <el-radio v-model="form.status" v-removeAriaHidden label="3"
  386. ><img src="@/assets/images/warn.png" alt="" class="imgstatus" />
  387. 异常</el-radio
  388. >
  389. </el-form-item>
  390. </el-col>
  391. </el-row>
  392. </el-form>
  393. <div slot="footer" class="dialog-footer">
  394. <el-button v-no-more-click type="primary" @click="submitForm"
  395. >确 定</el-button
  396. >
  397. <el-button v-no-more-click @click="cancel">取 消</el-button>
  398. </div>
  399. </el-dialog>
  400. </div>
  401. </template>
  402. <script>
  403. import {
  404. listHardware,
  405. addHardware,
  406. updateHardware,
  407. delHardware,
  408. getHardwareInfo,
  409. listAllWorkshop,
  410. } from "@/api/mes/hw/hardwareinfo";
  411. import { genCode } from "@/api/system/autocode/rule";
  412. import { listHanrwareType } from "@/api/mes/hw/hadrwareType";
  413. import Treeselect from "@riophae/vue-treeselect";
  414. import "@riophae/vue-treeselect/dist/vue-treeselect.css";
  415. export default {
  416. name: "hardwareinfo",
  417. dicts: ["hardware_status"],
  418. // components: { Repairline, MachinerySelectSingle },
  419. components: { Treeselect },
  420. data() {
  421. return {
  422. autoGenFlag: false,
  423. optType: undefined,
  424. // 遮罩层
  425. loading: true,
  426. // 选中数组
  427. ids: [],
  428. codes: [],
  429. // 非单个禁用
  430. single: true,
  431. // 非多个禁用
  432. multiple: true,
  433. // 显示搜索条件
  434. showSearch: true,
  435. // 总条数
  436. total: 0,
  437. // 设备维修单表格数据
  438. repairList: [],
  439. // 弹出层标题
  440. title: "",
  441. // 是否显示弹出层
  442. open: false,
  443. // 查询参数
  444. createTime: "",
  445. queryParams: {
  446. current: 1,
  447. size: 10,
  448. hardwareCode: "",
  449. hardwareName: "",
  450. status: "",
  451. hardwareTypeName: "",
  452. hardwareSpec: "",
  453. startTime: "",
  454. endTime: "",
  455. workshopName: "",
  456. workshopCode: "",
  457. workshopId: "",
  458. },
  459. queryTypeParams: {
  460. enableFlag: "y",
  461. },
  462. workshopOption: [],
  463. hardwareTypeOption: [],
  464. // 表单参数
  465. form: {
  466. hardwareTypeId: 0,
  467. workshopCode: 0,
  468. workshopId: 0,
  469. hardwareTypeName: "",
  470. },
  471. // 表单校验
  472. rules: {
  473. hardwareCode: [
  474. { required: true, message: "硬件编码不能为空", trigger: "blur" },
  475. ],
  476. hardwareName: [
  477. { required: true, message: "硬件名称不能为空", trigger: "blur" },
  478. ],
  479. hardwareTypeId:[
  480. { required: true, message: "硬件类型不能为空", trigger: "blur" },
  481. ]
  482. },
  483. // 日期选择
  484. pickerOptions: {
  485. shortcuts: [
  486. {
  487. text: "最近一周",
  488. onClick(picker) {
  489. const end = new Date();
  490. const start = new Date();
  491. start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
  492. picker.$emit("pick", [start, end]);
  493. },
  494. },
  495. {
  496. text: "最近一个月",
  497. onClick(picker) {
  498. const end = new Date();
  499. const start = new Date();
  500. start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
  501. picker.$emit("pick", [start, end]);
  502. },
  503. },
  504. {
  505. text: "最近三个月",
  506. onClick(picker) {
  507. const end = new Date();
  508. const start = new Date();
  509. start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
  510. picker.$emit("pick", [start, end]);
  511. },
  512. },
  513. ],
  514. },
  515. value2: "",
  516. // 新增状态
  517. radio: 3,
  518. EditId: 0, //修改判断
  519. cascaderOptions: [], // 转换后的数据
  520. flatHardwareTypeOption: [], // 用于快速查找
  521. };
  522. },
  523. created() {
  524. this.getList();
  525. this.getHardwareTypeList();
  526. this.convertToTreeStructure();
  527. },
  528. methods: {
  529. // 格式化日期查询数据
  530. formatDate(date) {
  531. if (date && date instanceof Date && !isNaN(date)) {
  532. // 使用本地时间
  533. return `${date.getFullYear()}-${String(date.getMonth() + 1).padStart(
  534. 2,
  535. "0"
  536. )}-${String(date.getDate()).padStart(2, "0")}`;
  537. }
  538. return null;
  539. },
  540. /** 查询设备维修单列表 */
  541. getList() {
  542. this.loading = true;
  543. // 格式化日期并更新 queryParams
  544. if (Array.isArray(this.createTime) && this.createTime.length === 2) {
  545. this.queryParams.startTime = this.formatDate(this.createTime[0]);
  546. this.queryParams.endTime = this.formatDate(this.createTime[1]);
  547. }
  548. listHardware(this.queryParams).then((response) => {
  549. this.repairList = response.data.records;
  550. this.total = response.data.total;
  551. this.loading = false;
  552. });
  553. // 车间数据
  554. listAllWorkshop().then((response) => {
  555. this.workshopOption = response.data.map((item) => {
  556. return {
  557. label: item.workshopName,
  558. value: item.workshopId,
  559. key: item.workshopCode,
  560. };
  561. });
  562. });
  563. },
  564. // 获取硬件类型-所有
  565. getHardwareTypeList() {
  566. const data = {
  567. current: 1,
  568. size: 10000,
  569. };
  570. listHanrwareType(data).then((response) => {
  571. // console.log(response, "Type");
  572. this.flatHardwareTypeOption = response.data.records; // 保存扁平数据
  573. this.hardwareTypeOption = this.convertToTreeStructure(
  574. response.data.records
  575. );
  576. });
  577. },
  578. // 将扁平数据转换为树形结构
  579. convertToTreeStructure(data) {
  580. const map = {};
  581. const tree = [];
  582. // console.log(data, 'convertToTreeStructure-data');
  583. data.forEach((item) => {
  584. map[item.id] = {
  585. id: item.id,
  586. label: item.hardwareTypeName,
  587. children: [],
  588. };
  589. });
  590. data.forEach((item) => {
  591. const node = map[item.id];
  592. if (item.parentTypeId === "0") {
  593. tree.push(node);
  594. } else {
  595. const parent = map[item.parentTypeId];
  596. if (parent) {
  597. parent.children.push(node);
  598. }
  599. }
  600. });
  601. return tree;
  602. },
  603. // 处理选择变化
  604. onSelectChange(selectedId) {
  605. this.form.hardwareTypeId = selectedId;
  606. // 查找对应的 hardwareTypeName
  607. const selectedOption = this.flatHardwareTypeOption.find(
  608. (option) => option.id === selectedId
  609. );
  610. if (selectedOption) {
  611. this.form.hardwareTypeName = selectedOption.hardwareTypeName;
  612. } else {
  613. // console.error('Selected ID not found:', selectedId);
  614. }
  615. // console.log('Selected ID:', selectedId);
  616. // console.log('Selected Name:', this.form.hardwareTypeName);
  617. },
  618. // 车间下拉 --新增表单
  619. workShopChange(val) {
  620. // console.log(val, "val");
  621. this.form.workshopId = val;
  622. const item = this.workshopOption.find((item) => {
  623. return item.value == val ? item.key : null;
  624. });
  625. // console.log(item, "item");
  626. this.form.workshopCode = item.key;
  627. this.form.workshopName = item.label;
  628. },
  629. workShopChangequery(val) {
  630. // console.log(val, "查询下拉");
  631. this.queryParams.workshopId = val;
  632. const item = this.workshopOption.find((item) => {
  633. return item.value == val ? item.key : null;
  634. });
  635. this.queryParams.workshopCode = item.key;
  636. this.queryParams.workshopName = item.label;
  637. },
  638. // 取消按钮
  639. cancel() {
  640. this.open = false;
  641. this.reset();
  642. },
  643. // 表单重置
  644. reset() {
  645. this.form = {
  646. hardwareCode: "",
  647. hardwareName: "",
  648. status: "",
  649. hardwareTypeName: "",
  650. hardwareSpec: "",
  651. createTime: "",
  652. workshopName: "",
  653. workshopId: "",
  654. workshopCode: null,
  655. };
  656. this.autoGenFlag = false;
  657. this.resetForm("form");
  658. },
  659. /** 搜索按钮操作 */
  660. handleQuery() {
  661. this.queryParams.current = 1;
  662. this.getList();
  663. },
  664. /** 重置按钮操作 */
  665. resetQuery() {
  666. this.queryParams.workshopCode = "";
  667. this.queryParams.workshopName = "";
  668. this.queryParams.workshopId = "";
  669. this.createTime = ""; //之所以不把这个值放到queryParams是因为会被携带到参数里create Time[0]这样的内容携带进去
  670. this.queryParams.startTime = "";
  671. this.queryParams.endTime = "";
  672. this.resetForm("queryForm");
  673. this.handleQuery();
  674. },
  675. // 多选框选中数据
  676. handleSelectionChange(selection) {
  677. this.ids = selection.map((item) => item.id);
  678. this.codes = selection.map((item) => item.hardwareCode);
  679. this.single = selection.length !== 1;
  680. this.multiple = !selection.length;
  681. },
  682. /** 新增按钮操作 */
  683. handleAdd() {
  684. this.reset();
  685. this.open = true;
  686. this.EditId = null;
  687. this.title = "新增硬件信息";
  688. },
  689. /** 修改按钮操作 */
  690. handleUpdate(row) {
  691. this.reset();
  692. this.EditId = row.id || this.ids;
  693. getHardwareInfo(this.EditId).then((response) => {
  694. this.form = response.data;
  695. this.open = true;
  696. this.title = "编辑硬件信息";
  697. });
  698. },
  699. /** 提交按钮 */
  700. submitForm() {
  701. this.$refs["form"].validate((valid) => {
  702. if (valid) {
  703. if (this.EditId != null) {
  704. updateHardware(this.form).then((response) => {
  705. this.$modal.msgSuccess("修改成功");
  706. this.open = false;
  707. this.getList();
  708. });
  709. } else {
  710. // console.log(this.form, "form");
  711. addHardware(this.form).then((response) => {
  712. this.$modal.msgSuccess("新增成功");
  713. this.open = false;
  714. this.EditId = null;
  715. this.getList();
  716. });
  717. }
  718. }
  719. });
  720. },
  721. /** 删除按钮操作 */
  722. handleDelete(row) {
  723. const repairIds = row.id || this.ids;
  724. const repairCodes = row.hardwareCode || this.codes;
  725. this.$modal
  726. .confirm('是否确认删除硬件编码为"' + repairCodes + '"的数据项?')
  727. .then(function () {
  728. return delHardware(repairIds);
  729. })
  730. .then(() => {
  731. this.getList();
  732. this.$modal.msgSuccess("删除成功");
  733. })
  734. .catch(() => {});
  735. },
  736. /** 导出按钮操作 */
  737. handleExport() {
  738. this.download(
  739. "dv/repair/export",
  740. {
  741. ...this.queryParams,
  742. },
  743. `repair_${new Date().getTime()}.xlsx`
  744. );
  745. },
  746. //自动生成编码
  747. handleAutoGenChange(autoGenFlag) {
  748. if (autoGenFlag) {
  749. genCode("HARDWARE_CODE").then((response) => {
  750. this.form.hardwareCode = response;
  751. });
  752. } else {
  753. this.form.hardwareCode = null;
  754. }
  755. },
  756. },
  757. };
  758. </script>
  759. <style scoped>
  760. .imgstatus {
  761. position: relative;
  762. top: 1px;
  763. left: 0px;
  764. }
  765. /deep/ .el-radio__inner {
  766. border-radius: 2px;
  767. }
  768. /deep/.el-radio__input.is-checked .el-radio__inner::after {
  769. content: "";
  770. width: 8px;
  771. height: 3px;
  772. border: 1px solid white;
  773. border-top: transparent;
  774. border-right: transparent;
  775. text-align: center;
  776. display: block;
  777. position: absolute;
  778. top: 3px;
  779. left: 2px;
  780. transform: rotate(-45deg);
  781. border-radius: 0pc;
  782. background: none;
  783. }
  784. </style>