index.vue 43 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453
  1. <template>
  2. <div class="mergePutMesh-container">
  3. <div class="title" style="margin-left: 0px">
  4. <div class="item">
  5. <span class="font subWorkNameBox">合并挂网</span>
  6. </div>
  7. <div class="item">
  8. <span class="font"
  9. >{{ riqi }} &nbsp; &nbsp;{{ days }} &nbsp; {{ shijian }}</span
  10. >
  11. </div>
  12. <div class="item">
  13. <img class="top-bar__img" :src="info.avatar" />
  14. <span class="font">
  15. {{ info.name }}
  16. </span>
  17. </div>
  18. <div class="item">
  19. <div class="back" @click="$router.back()">
  20. <i class="icon-mes-fanhui"></i>
  21. <!-- <span class="font">返回</span> -->
  22. </div>
  23. </div>
  24. </div>
  25. <basic-container
  26. v-loading="pageLoading"
  27. element-loading-text="数据加载中..."
  28. element-loading-spinner="el-icon-loading"
  29. >
  30. <!-- 板材计划未合并挂网详情列表 -->
  31. <div class="unMerge-list">
  32. <div class="table-header-row">
  33. <el-button
  34. size="small"
  35. icon="el-icon-search"
  36. type="primary"
  37. class="screen"
  38. @click="searchDialogVisible = true"
  39. >筛选</el-button
  40. >
  41. <span class="table-title">板材计划未合并挂网详情列表</span>
  42. </div>
  43. <el-table
  44. :data="unMergeTableData"
  45. style="max-height: 300px"
  46. border
  47. v-loading="unMergeTableLoading"
  48. :header-row-style="headerRowStyle"
  49. >
  50. <el-table-column
  51. label="计划编号"
  52. align="center"
  53. prop="code"
  54. width="170"
  55. ></el-table-column>
  56. <el-table-column label="等级" align="center" width="60">
  57. <template slot-scope="scope">
  58. <span>{{ scope.row.weight | weightFilter }}</span>
  59. </template>
  60. </el-table-column>
  61. <el-table-column
  62. label="规格型号"
  63. align="center"
  64. prop="specification"
  65. ></el-table-column>
  66. <el-table-column
  67. prop="productName"
  68. width="110"
  69. align="center"
  70. label="产品名称"
  71. ></el-table-column>
  72. <!-- <el-table-column
  73. label="是否开槽"
  74. align="center"
  75. prop="isSlotting"
  76. ></el-table-column> -->
  77. <el-table-column label="开槽类型" align="center" prop="slottingType">
  78. <template slot-scope="scope">
  79. <span>{{
  80. getDictValue('开槽类型', scope.row.slottingType + '')
  81. }}</span>
  82. </template>
  83. </el-table-column>
  84. <el-table-column
  85. label="未排程块数"
  86. align="center"
  87. prop="noWordCount"
  88. ></el-table-column>
  89. <el-table-column
  90. label="计划块数"
  91. align="center"
  92. prop="blockCount"
  93. ></el-table-column>
  94. <el-table-column label="计划日期" align="center" prop="startTime">
  95. <template slot-scope="scope">
  96. <span>{{ scope.row.planDeliveryTime | subTime }}</span>
  97. </template>
  98. </el-table-column>
  99. <el-table-column label="交货期" align="center" prop="deliveryDate">
  100. <template slot-scope="scope">
  101. <span>{{ scope.row.reqMoldTime | subTime }}</span>
  102. </template>
  103. </el-table-column>
  104. <el-table-column
  105. label="项目名称"
  106. align="center"
  107. prop="projectName"
  108. ></el-table-column>
  109. <el-table-column label="首次排程" align="center" prop="createTime">
  110. <template slot-scope="scope">
  111. <span>{{ scope.row.createTime | subTime }}</span>
  112. </template>
  113. </el-table-column>
  114. <el-table-column
  115. label="备注"
  116. align="center"
  117. prop="remark"
  118. ></el-table-column>
  119. <el-table-column label="操作" align="center">
  120. <template slot-scope="scope">
  121. <div>
  122. <el-tooltip
  123. class="item"
  124. effect="dark"
  125. content="挂网"
  126. placement="bottom"
  127. >
  128. <el-button
  129. type="text"
  130. size="small"
  131. class="handle-btn"
  132. icon="el-icon-guide"
  133. @click="handlePutMesh(scope.row)"
  134. ></el-button>
  135. </el-tooltip>
  136. <el-tooltip
  137. class="item"
  138. effect="dark"
  139. content="删除"
  140. placement="bottom"
  141. >
  142. <el-button
  143. type="text"
  144. size="small"
  145. class="handle-btn"
  146. icon="el-icon-delete"
  147. @click="handleDeleteSchedule(scope.row)"
  148. ></el-button>
  149. </el-tooltip>
  150. </div>
  151. </template>
  152. </el-table-column>
  153. </el-table>
  154. <!-- 筛选弹窗 -->
  155. <el-dialog
  156. :visible.sync="searchDialogVisible"
  157. width="600px"
  158. append-to-body
  159. :close-on-click-modal="false"
  160. :close-on-press-escape="false"
  161. >
  162. <span slot="title">查询条件</span>
  163. <el-form class="search-form" :model="searchForm" label-width="120px">
  164. <el-form-item label="项目名称:">
  165. <el-select v-model="searchForm.projectName" :clearable="true">
  166. <el-option
  167. v-for="(item, index) in projectNameList"
  168. :key="index"
  169. :value="item"
  170. :label="item"
  171. ></el-option>
  172. </el-select>
  173. </el-form-item>
  174. <el-form-item label="产品名称:">
  175. <el-select v-model="searchForm.productName" :clearable="true">
  176. <el-option
  177. v-for="(item, index) in materialNameList"
  178. :key="index"
  179. :value="item"
  180. :label="item"
  181. ></el-option>
  182. </el-select>
  183. </el-form-item>
  184. <el-form-item label="规格型号:">
  185. <el-input
  186. v-model="searchForm.specification"
  187. placeholder="请输入规格型号"
  188. style="width: 200px"
  189. >
  190. </el-input>
  191. </el-form-item>
  192. <el-form-item label="是否开槽:">
  193. <el-select v-model="searchForm.isSlotting" :clearable="true">
  194. <el-option value="1" label="是"></el-option>
  195. <el-option value="2" label="否"></el-option>
  196. </el-select>
  197. </el-form-item>
  198. <el-form-item label="等级:">
  199. <el-select v-model="searchForm.weight" :clearable="true">
  200. <el-option :value="1" label="A"></el-option>
  201. <el-option :value="2" label="B"></el-option>
  202. <el-option :value="3" label="C"></el-option>
  203. </el-select>
  204. </el-form-item>
  205. </el-form>
  206. <div class="searchForm-btns">
  207. <el-button size="small" @click="reset">重置</el-button>
  208. <el-button size="small" type="success" @click="search"
  209. >查询</el-button
  210. >
  211. </div>
  212. </el-dialog>
  213. </div>
  214. <!-- 合并挂网(并模)图示 -->
  215. <div class="merge-pic-table-title">合并组网</div>
  216. <div class="merge-pic-table">
  217. <!-- 左边图示 -->
  218. <div class="merge-pic">
  219. <div
  220. v-for="(item, index) in editTableData"
  221. :key="index"
  222. class="pic-item"
  223. :style="{
  224. width: Number(item.specification.split('*')[0]) / 6 + '%'
  225. }"
  226. >
  227. <div>{{ item.specification }}</div>
  228. <div>{{ item.productName }}</div>
  229. <div>块数:{{ item.blockCount }}</div>
  230. </div>
  231. <div
  232. :style="{
  233. width: `${(surplusLength / 6.1).toFixed(2)}` + '%'
  234. }"
  235. >
  236. <span>剩余:</span>
  237. <span>{{ surplusLength }}</span>
  238. <div>{{ Number((surplusLength / 6.1).toFixed(2)) }}%</div>
  239. </div>
  240. </div>
  241. <div style="flex: 1; display: flex">
  242. <!-- 中间表格 -->
  243. <div class="merge-table">
  244. <el-table
  245. :data="editTableData"
  246. border
  247. :header-row-style="headerRowStyle"
  248. >
  249. <el-table-column
  250. label="规格"
  251. align="center"
  252. width="120"
  253. prop="specification"
  254. ></el-table-column>
  255. <el-table-column
  256. prop="productName"
  257. width="110"
  258. align="center"
  259. label="产品名称"
  260. ></el-table-column>
  261. <el-table-column
  262. label="块数"
  263. align="center"
  264. prop="blockCount"
  265. ></el-table-column>
  266. <el-table-column label="等级" align="center">
  267. <template slot-scope="scope">
  268. <span>{{ scope.row.weight | weightFilter }}</span>
  269. </template>
  270. </el-table-column>
  271. <el-table-column
  272. label="剩余模数"
  273. align="center"
  274. prop="surplusModulus"
  275. >
  276. <template slot-scope="scope">
  277. <span>{{ getSurplusModulus(scope.row.specification) }}</span>
  278. </template>
  279. </el-table-column>
  280. <el-table-column
  281. label="附加工艺"
  282. align="center"
  283. prop="slottingType"
  284. >
  285. <template slot-scope="scope">
  286. <span>{{
  287. getDictValue('开槽类型', scope.row.slottingType + '')
  288. }}</span>
  289. </template>
  290. </el-table-column>
  291. </el-table>
  292. <div class="merge-btns">
  293. <el-button size="small" type="primary" @click="updateMerge"
  294. >确定</el-button
  295. >
  296. <el-button size="small" type="primary" @click="resetEditTable"
  297. >重置</el-button
  298. >
  299. </div>
  300. </div>
  301. <!-- 右边统计表 -->
  302. <div class="info-message">
  303. <div class="info-item">
  304. <span :style="headerRowStyle">班组</span>
  305. <span>*模数</span>
  306. <span>合计模数</span>
  307. <span>允许模数</span>
  308. </div>
  309. <div class="info-item">
  310. <span :style="headerRowStyle">网A</span>
  311. <el-input
  312. v-model="modulusNum1"
  313. placeholder="输入模数"
  314. oninput="value=value.replace(/^(0+)|[^\d]+/g,'')"
  315. @input="modulsNumInput"
  316. ></el-input>
  317. <span>{{ modulusSum }}</span>
  318. <span>{{ allowModulus }}</span>
  319. </div>
  320. <div class="info-item">
  321. <span :style="headerRowStyle">网B</span>
  322. <el-input
  323. v-model="modulusNum2"
  324. oninput="value=value.replace(/^(0+)|[^\d]+/g,'')"
  325. placeholder="输入模数"
  326. @input="modulsNumInput"
  327. ></el-input>
  328. <span>*任务日期</span>
  329. <el-date-picker
  330. v-model="taskDate"
  331. type="date"
  332. value-format="yyyy-MM-dd"
  333. placeholder="选择日期"
  334. >
  335. </el-date-picker>
  336. </div>
  337. </div>
  338. </div>
  339. </div>
  340. <!-- 任务未下发列表操作 && 下发未报工列表 -->
  341. <div class="task-distribution">
  342. <!-- 任务未下发列表 -->
  343. <div class="task-dist">
  344. <div class="task-btns">
  345. <div>
  346. <el-button
  347. size="small"
  348. @click="seletAll(taskDistTableData, 'taskDistTableData')"
  349. >全选</el-button
  350. >
  351. <!-- <el-button size="small">排序</el-button> -->
  352. <!-- <el-button size="small">筛选</el-button> -->
  353. </div>
  354. <div class="task-dist-title">组网过渡表</div>
  355. <div>
  356. <el-button
  357. size="small"
  358. @click="handleDeleteWorkOrder('取消', '0')"
  359. :disabled="taskDistSelection.length == 0"
  360. >取消</el-button
  361. >
  362. <el-button
  363. size="small"
  364. :disabled="taskDistSelection.length == 0"
  365. @click="taskDistribute"
  366. >任务下发</el-button
  367. >
  368. </div>
  369. </div>
  370. <el-table
  371. ref="taskDistTableData"
  372. :data="taskDistTableData"
  373. v-loading="taskDistTableLoading"
  374. style="max-height: 300px"
  375. border
  376. @selection-change="taskDistTableSelectionChange"
  377. >
  378. <el-table-column type="selection" width="45" align="center">
  379. </el-table-column>
  380. <el-table-column
  381. label="等级"
  382. align="center"
  383. width="70"
  384. prop="weight"
  385. filterable
  386. :filters="[
  387. { text: 'A', value: 1 },
  388. { text: 'B', value: 2 },
  389. { text: 'C', value: 3 }
  390. ]"
  391. :filter-method="filterWeightMethod1"
  392. >
  393. <template slot-scope="scope">
  394. <span>{{ scope.row.weight | weightFilter }}</span>
  395. </template>
  396. </el-table-column>
  397. <el-table-column
  398. align="center"
  399. width="70"
  400. label="高度"
  401. prop="height"
  402. filterable
  403. :filters="heightFilterArr1"
  404. :filter-method="filterHeightMethod1"
  405. ></el-table-column>
  406. <el-table-column
  407. label="长1+长2+长3"
  408. align="center"
  409. width="120"
  410. prop="length"
  411. ></el-table-column>
  412. <el-table-column
  413. prop="productName"
  414. width="110"
  415. align="center"
  416. label="产品名称"
  417. ></el-table-column>
  418. <el-table-column
  419. label="模数"
  420. align="center"
  421. width="70"
  422. prop="moCount"
  423. ></el-table-column>
  424. <el-table-column
  425. label="片1+片2+片3"
  426. align="center"
  427. width="120"
  428. prop="blockCount"
  429. >
  430. </el-table-column>
  431. <!-- <el-table-column label="是否开槽" align="center"></el-table-column> -->
  432. <el-table-column
  433. align="center"
  434. width="115"
  435. prop="slottingType"
  436. filterable
  437. label="开槽类型"
  438. :filters="[
  439. { text: '开槽', value: '开槽' },
  440. { text: '不开槽', value: '不开槽' }
  441. ]"
  442. :filter-method="filterSlottingMethod1"
  443. >
  444. <template slot-scope="scope">
  445. <span>{{
  446. getDictValue('开槽类型', scope.row.slottingType + '')
  447. }}</span>
  448. </template>
  449. </el-table-column>
  450. <el-table-column label="日期" align="center" prop="taskTime">
  451. <template slot-scope="scope">
  452. <span>{{ scope.row.taskTime }}</span>
  453. </template>
  454. </el-table-column>
  455. <el-table-column
  456. align="center"
  457. width="85"
  458. prop="teamName"
  459. label="班组"
  460. filterable
  461. :filters="[
  462. { text: '班组A', value: '班组A' },
  463. { text: '班组B', value: '班组B' }
  464. ]"
  465. :filter-method="filterJobMethod1"
  466. ></el-table-column>
  467. </el-table>
  468. </div>
  469. <!-- 任务下发未报工列表 -->
  470. <div class="work-unreport">
  471. <div class="unreport-btns">
  472. <div>
  473. <el-button
  474. size="small"
  475. @click="
  476. seletAll(workUnreportTableData, 'workUnreportTableData')
  477. "
  478. >全选</el-button
  479. >
  480. <!-- <el-button size="small">排序</el-button> -->
  481. <!-- <el-button size="small">筛选</el-button> -->
  482. </div>
  483. <div class="work-unreport-title">组网任务表</div>
  484. <div>
  485. <el-button
  486. size="small"
  487. @click="handleDeleteWorkOrder('中止', '1')"
  488. :disabled="workUnreportSelection.length == 0"
  489. >人工中止</el-button
  490. >
  491. <el-button
  492. size="small"
  493. :disabled="workUnreportSelection.length == 0"
  494. @click="handleDeleteWorkOrder('撤回', '0')"
  495. >撤回</el-button
  496. >
  497. </div>
  498. </div>
  499. <el-table
  500. :data="workUnreportTableData"
  501. ref="workUnreportTableData"
  502. style="max-height: 300px"
  503. v-loading="workUnreportTableLoading"
  504. border
  505. @selection-change="workUnreportTableSelectionChange"
  506. >
  507. <el-table-column type="selection" width="45" align="center">
  508. </el-table-column>
  509. <el-table-column
  510. label="等级"
  511. align="center"
  512. width="70"
  513. prop="weight"
  514. filterable
  515. :filters="[
  516. { text: 'A', value: 1 },
  517. { text: 'B', value: 2 },
  518. { text: 'C', value: 3 }
  519. ]"
  520. :filter-method="filterWeightMethod1"
  521. >
  522. <template slot-scope="scope">
  523. <span>{{ scope.row.weight | weightFilter }}</span>
  524. </template>
  525. </el-table-column>
  526. <el-table-column
  527. align="center"
  528. width="70"
  529. label="高度"
  530. prop="height"
  531. filterable
  532. :filters="heightFilterArr2"
  533. :filter-method="filterHeightMethod1"
  534. ></el-table-column>
  535. <el-table-column
  536. label="长1+长2+长3"
  537. align="center"
  538. prop="length"
  539. width="120"
  540. ></el-table-column>
  541. <el-table-column
  542. prop="productName"
  543. width="110"
  544. align="center"
  545. label="产品名称"
  546. ></el-table-column>
  547. <el-table-column
  548. label="余量"
  549. align="center"
  550. width="70"
  551. prop="allowance"
  552. ></el-table-column>
  553. <el-table-column
  554. label="模数"
  555. align="center"
  556. prop="moCount"
  557. width="120"
  558. ></el-table-column>
  559. <el-table-column
  560. label="片1+片2+片3"
  561. align="center"
  562. prop="blockCount"
  563. width="120"
  564. >
  565. <template slot-scope="scope">
  566. <span>{{ scope.row.blockCount }}</span>
  567. </template>
  568. </el-table-column>
  569. <!-- <el-table-column label="是否开槽" align="center"></el-table-column> -->
  570. <el-table-column
  571. align="center"
  572. width="115"
  573. prop="slottingType"
  574. filterable
  575. label="开槽类型"
  576. :filters="[
  577. { text: '开槽', value: '开槽' },
  578. { text: '不开槽', value: '不开槽' }
  579. ]"
  580. :filter-method="filterSlottingMethod1"
  581. >
  582. <template slot-scope="scope">
  583. <span>{{
  584. getDictValue('开槽类型', scope.row.slottingType + '')
  585. }}</span>
  586. </template>
  587. </el-table-column>
  588. <el-table-column label="任务日期" prop="taskTime" align="center">
  589. <template slot-scope="scope">
  590. <span>{{ scope.row.taskTime }}</span>
  591. </template>
  592. </el-table-column>
  593. <el-table-column label="下发日期" align="center" prop="issuedTime">
  594. <template slot-scope="scope">
  595. <span>{{ scope.row.issuedTime }}</span>
  596. </template>
  597. </el-table-column>
  598. <el-table-column
  599. align="center"
  600. width="85"
  601. prop="teamName"
  602. label="班组"
  603. filterable
  604. :filters="[
  605. { text: '班组A', value: '班组A' },
  606. { text: '班组B', value: '班组B' }
  607. ]"
  608. :filter-method="filterJobMethod1"
  609. ></el-table-column>
  610. </el-table>
  611. </div>
  612. </div>
  613. </basic-container>
  614. </div>
  615. </template>
  616. <script>
  617. import basicContainer from '@/components/basic-container/main';
  618. import {
  619. getScheduleWorkOrderByPage,
  620. updateMergeV2,
  621. getPutMeshWorkOrderByPage,
  622. issuedPutMeshWorkOrder,
  623. deletePutMeshWorkOrder,
  624. deleteScheduleWorkOrder
  625. } from '@/api/mergePutMesh/mergePutMesh';
  626. import { mapState } from 'vuex';
  627. import dictMixins from '@/mixins/dictMixins';
  628. export default {
  629. components: {
  630. basicContainer
  631. },
  632. mixins: [dictMixins],
  633. data() {
  634. return {
  635. permission: {},
  636. pageLoading: false,
  637. unMergeTableData: [], // 未合并挂网详情列表
  638. editTableData: [], // 合并挂网任务编辑详情列表
  639. taskDistTableData: [], // 任务未下发列表
  640. workUnreportTableData: [], // 任务已下发未报工列表
  641. taskDistSelection: [],
  642. workUnreportSelection: [],
  643. unMergeTableLoading: false,
  644. taskDistTableLoading: false,
  645. workUnreportTableLoading: false,
  646. searchDialogVisible: false, // 筛选弹窗
  647. headerRowStyle: {
  648. backgroundColor: ' #d0e4d5'
  649. },
  650. // 筛选弹窗表单
  651. searchForm: {
  652. projectName: '', // 项目名称下拉
  653. productName: '', // 产品名称下拉
  654. specification: '', // 规格型号
  655. weight: '', // 等级
  656. isSlotting: ''
  657. },
  658. projectNameList: [],
  659. materialNameList: [],
  660. modulusNum1: 0,
  661. modulusNum2: 0,
  662. taskDate: '', // 任务日期
  663. modulusLength: '',
  664. surplusLength: 610, // 剩余长度
  665. allowModulus: 0, // 允许模数
  666. modulusSum: 0, // 合计模数
  667. heightFilterArr1: [], // 高度筛选1表格
  668. heightFilterArr2: [], // 高度筛选2表格
  669. riqi: '',
  670. days: '',
  671. shijian: ''
  672. };
  673. },
  674. computed: {
  675. ...mapState({
  676. info: (store) => store.user.info //用户数据
  677. })
  678. },
  679. filters: {
  680. weightFilter(value) {
  681. let weight = '';
  682. switch (value) {
  683. case 1:
  684. weight = 'A';
  685. break;
  686. case 2:
  687. weight = 'B';
  688. break;
  689. case 3:
  690. weight = 'C';
  691. break;
  692. }
  693. return weight;
  694. },
  695. subTime(value) {
  696. if (!value) return;
  697. let date = value.substr(0, value.indexOf(' '));
  698. return date;
  699. }
  700. },
  701. created() {
  702. this.requestDict('开槽类型');
  703. this.getScheduleWorkOrder({});
  704. this.getPutMeshWorkOrder();
  705. this.getWorkUnreport();
  706. },
  707. mounted() {
  708. this.gettime();
  709. this.newtime();
  710. },
  711. methods: {
  712. gettime() {
  713. var date = new Date();
  714. let year = date.getFullYear();
  715. let mou = date.getMonth() + 1;
  716. let day = date.getDate();
  717. let days = date.getDay();
  718. switch (days) {
  719. case 1:
  720. days = '星期一';
  721. break;
  722. case 2:
  723. days = '星期二';
  724. break;
  725. case 3:
  726. days = '星期三';
  727. break;
  728. case 4:
  729. days = '星期四';
  730. break;
  731. case 5:
  732. days = '星期五';
  733. break;
  734. case 6:
  735. days = '星期六';
  736. break;
  737. case 0:
  738. days = '星期日';
  739. break;
  740. }
  741. let hou = date.getHours(); //获取当前小时数(0-23)
  742. let min = date.getMinutes(); //获取当前分钟数(0-59)
  743. let sec = date.getSeconds(); //获取当前秒数(0-59)
  744. if (mou < 10) mou = '0' + mou;
  745. if (day < 10) day = '0' + day;
  746. if (hou < 10) hou = '0' + hou;
  747. if (min < 10) min = '0' + min;
  748. if (sec < 10) sec = '0' + sec;
  749. this.riqi = year + '/' + mou + '/' + day;
  750. this.days = days;
  751. this.shijian = hou + ':' + min + ':' + sec;
  752. },
  753. newtime() {
  754. setInterval(() => {
  755. this.gettime();
  756. }, 1000);
  757. },
  758. // 获取未合并挂网数据列表
  759. getScheduleWorkOrder(params) {
  760. this.unMergeTableLoading = true;
  761. this.projectNameList = [];
  762. this.materialNameList = [];
  763. let pages = {
  764. pageNum: 1,
  765. pageSize: 100
  766. };
  767. let query = Object.assign(pages, params, {
  768. status: ['3', '2', '4']
  769. });
  770. getScheduleWorkOrderByPage(query)
  771. .then((res) => {
  772. this.unMergeTableLoading = false;
  773. console.log('未合并挂网数据列表:', res.data.data.list);
  774. this.unMergeTableData = res.data.data.list.filter((item) =>
  775. item.productName.includes('板材')
  776. );
  777. console.log(this.unMergeTableData, 'unMergeTableData');
  778. this.unMergeTableData.map((item) => {
  779. if (
  780. !this.projectNameList.includes(item.projectName) &&
  781. item.projectName
  782. ) {
  783. this.projectNameList.push(item.projectName);
  784. }
  785. if (!this.materialNameList.includes(item.productName)) {
  786. this.materialNameList.push(item.productName);
  787. }
  788. });
  789. })
  790. .catch(() => {
  791. this.unMergeTableLoading = false;
  792. });
  793. },
  794. // 获取任务未下发数据列表
  795. async getPutMeshWorkOrder() {
  796. this.taskDistTableLoading = true;
  797. this.heightFilterArr1 = [];
  798. let pages = {
  799. // pageNum: 1,
  800. // pageSize: 100,
  801. listStatus: [0]
  802. // artisanStatus: '0'
  803. };
  804. const res = await getPutMeshWorkOrderByPage(pages);
  805. console.log('任务未下发数据列表:', res.list);
  806. this.taskDistTableLoading = false;
  807. this.taskDistTableData = res.list;
  808. let tempHeight = [];
  809. this.taskDistTableData.map((item) => {
  810. tempHeight.push(item.height);
  811. });
  812. tempHeight = [...new Set(tempHeight)];
  813. tempHeight.map((item) => {
  814. this.heightFilterArr1.push({
  815. value: item,
  816. text: item
  817. });
  818. });
  819. // console.log(this.heightFilterArr1);
  820. },
  821. // 获取已下发未报工列表数据
  822. async getWorkUnreport() {
  823. this.workUnreportTableLoading = true;
  824. this.heightFilterArr2 = [];
  825. let pages = {
  826. // pageNum: 1,
  827. // pageSize: 100,
  828. listStatus: [1]
  829. // artisanStatus: '0'
  830. };
  831. const res = await getPutMeshWorkOrderByPage(pages);
  832. console.log('任务已下发数据列表:', res.list);
  833. // this.taskDistTableLoading = false
  834. this.workUnreportTableData = res.list;
  835. this.workUnreportTableLoading = false;
  836. let tempHeight = [];
  837. this.workUnreportTableData.map((item) => {
  838. tempHeight.push(item.height);
  839. });
  840. tempHeight = [...new Set(tempHeight)];
  841. tempHeight.map((item) => {
  842. this.heightFilterArr2.push({
  843. value: item,
  844. text: item
  845. });
  846. });
  847. },
  848. // 重置筛选表单
  849. reset() {
  850. this.searchForm = {
  851. projectName: '',
  852. productName: '',
  853. specification: '',
  854. weight: '',
  855. isSlotting: ''
  856. };
  857. this.searchDialogVisible = false;
  858. this.getScheduleWorkOrder({});
  859. },
  860. // 按表单查询
  861. search() {
  862. this.searchDialogVisible = false;
  863. this.getScheduleWorkOrder(this.searchForm);
  864. },
  865. // 挂网报工按钮操作
  866. handlePutMesh(row) {
  867. // 挂网判断
  868. // 1,只允许添加相同高度的计划
  869. // 2,只允许添加相同宽度的计划
  870. // 3,只允许添加相同工艺的计划
  871. // 4,长度加起来不能大610
  872. // 5,最多只能添加3条
  873. let rowModelArr = row.specification.split('*');
  874. // 要添加的规格的高度
  875. let addWide = Number(rowModelArr[1]);
  876. let addHeight = Number(
  877. rowModelArr[2].substr(0, rowModelArr[2].indexOf('cm'))
  878. );
  879. let allowSlotting = ''; // 已添加计划的工艺
  880. let allowWide = 0; // 已添加计划的高度
  881. let allowHeight = 0; // 已添加计划的高度
  882. let allowLong = 0; // 已添加计划的长度
  883. let addLong = Number(rowModelArr[0]); // 要添加计划的长度
  884. if (this.editTableData.length > 0) {
  885. allowSlotting = this.editTableData[0].slottingType;
  886. let modelArr = this.editTableData[0].specification.split('*');
  887. allowWide = Number(modelArr[1]);
  888. allowHeight = Number(modelArr[2].substr(0, modelArr[2].indexOf('cm')));
  889. // 计算已添加的长度的总和是否大610
  890. this.editTableData.map((item) => {
  891. allowLong += Number(item.specification.split('*')[0]);
  892. });
  893. if (this.editTableData.length == 3) {
  894. return this.$alert('最多只能添加三条计划!');
  895. }
  896. if (allowLong + addLong > 610) {
  897. return this.$alert('挂网并模总长度不能大于610!');
  898. }
  899. if (row.slottingType != allowSlotting) {
  900. return this.$alert(
  901. `请添加${this.getDictValue(
  902. '开槽类型',
  903. allowSlotting + ''
  904. )}工艺的计划!`
  905. );
  906. }
  907. if (addHeight != allowHeight) {
  908. return this.$alert(`请添加高度为${allowHeight}cm的计划!`);
  909. }
  910. if (addWide != allowWide) {
  911. return this.$alert(`请添加宽度为${allowWide}的计划!`);
  912. }
  913. }
  914. this.editTableData.push(JSON.parse(JSON.stringify(row)));
  915. let equalIdObj = {};
  916. this.editTableData.map((item) => {
  917. if (equalIdObj[item.id]) {
  918. equalIdObj[item.id]++;
  919. } else {
  920. this.$set(equalIdObj, item.id, 1);
  921. }
  922. });
  923. let longSum = 0;
  924. let surplusModulusArr = []; // 允许模数
  925. this.editTableData.map((item) => {
  926. item.equalIdNum = equalIdObj[item.id];
  927. let modelArr = item.specification.split('*');
  928. let modelHeight = modelArr[2];
  929. modelHeight = Number(modelHeight.substr(0, modelHeight.indexOf('cm')));
  930. longSum += Number(modelArr[0]);
  931. // 块数
  932. item.blockCount = Number(Math.floor(120 / modelHeight));
  933. // 剩余模数
  934. item.surplusModulus = Number(
  935. Math.ceil(item.noWordCount / item.blockCount / item.equalIdNum)
  936. );
  937. surplusModulusArr.push(item.surplusModulus);
  938. });
  939. // console.log(this.editTableData,'editTableData')
  940. // 获取允许模数 allowModulus
  941. this.allowModulus = Math.min(...surplusModulusArr);
  942. this.surplusLength = 610 - longSum;
  943. // 计算模数长度
  944. this.modulusLength =
  945. (100 - (this.surplusLength / 6.1).toFixed(2)) /
  946. this.editTableData.length +
  947. '%';
  948. },
  949. getSurplusModulus(specification) {
  950. return Math.min(
  951. ...this.editTableData
  952. .filter((item) => item.specification == specification)
  953. .map((item) => item.surplusModulus)
  954. );
  955. },
  956. // 输入模数
  957. modulsNumInput() {
  958. this.modulusSum = Number(this.modulusNum1) + Number(this.modulusNum2);
  959. if (this.modulusSum > this.allowModulus) {
  960. this.$alert('合计模数不能大于允许模数!');
  961. this.modulusSum = 0;
  962. this.modulusNum1 = 0;
  963. this.modulusNum2 = 0;
  964. return false;
  965. }
  966. return true;
  967. },
  968. // 重置合并挂网
  969. resetEditTable() {
  970. this.editTableData = [];
  971. this.modulusSum = 0;
  972. this.modulusNum1 = 0;
  973. this.modulusNum2 = 0;
  974. this.allowModulus = 0;
  975. this.taskDate = '';
  976. this.surplusLength = 610;
  977. this.modulusLength = '';
  978. },
  979. // 确定添加挂网并模
  980. updateMerge() {
  981. if (this.editTableData.length == 0)
  982. return this.$alert('请选择要挂网的计划列表!');
  983. if (Number(this.modulusNum1) + Number(this.modulusNum2) == 0)
  984. return this.$alert('请输入班组模数!');
  985. if (!this.taskDate) return this.$alert('请选择任务日期!');
  986. if (!this.modulsNumInput()) return;
  987. this.pageLoading = true;
  988. let ids = [];
  989. let meshSpecs = [];
  990. let meshNumber = [];
  991. let meshSpecsTwo = [];
  992. let meshNumberTwo = [];
  993. let numbersArr = [];
  994. // for (let i = 0; i < this.editTableData.length; i++) {
  995. // ids.push(this.editTableData[i].id);
  996. // meshSpecs.push(this.editTableData[i].model);
  997. // meshNumber.push(this.editTableData[i].moCount);
  998. // meshSpecsTwo.push('+');
  999. // meshNumberTwo.push('+');
  1000. // numbersArr.push('1');
  1001. // }
  1002. let data = {
  1003. mergeIds: this.editTableData.map((item) => item.id).toString(),
  1004. meshNumber: this.editTableData.map((item) => item.blockCount).join('+'),
  1005. modulus:
  1006. this.modulusNum1 && this.modulusNum2
  1007. ? this.modulusNum1 + ',' + this.modulusNum2
  1008. : this.modulusNum1 || this.modulusNum2,
  1009. job: this.modulusNum1 && this.modulusNum2 ? 2 : 1,
  1010. endTime: this.taskDate
  1011. // mergeId: ids.join(','),
  1012. // numbers: numbersArr.join(','),
  1013. // moduls: String(this.modulusSum), // 合计模数
  1014. // meshSpecs: meshSpecs.join(','), // 网片尺寸
  1015. // meshNumber: meshNumber.join(','), // 网片数量
  1016. // meshSpecsTwo: meshSpecsTwo.join(','), // 网片尺寸2
  1017. // meshNumberTwo: meshNumberTwo.join(','), // 网片数量2
  1018. // meshType: '单网', // 网片类型
  1019. // joba: '班组A',
  1020. // jobb: '班组B',
  1021. // endTime: this.taskDate + ' 00:00:00', // 任务日期
  1022. // jobaModulus: Number(this.modulusNum1), // 网A数量
  1023. // jobbModulus: Number(this.modulusNum2) // 网B数量
  1024. };
  1025. updateMergeV2(data)
  1026. .then((res) => {
  1027. this.pageLoading = false;
  1028. this.$message.success('任务添加成功!');
  1029. this.resetEditTable();
  1030. this.getScheduleWorkOrder({});
  1031. this.getPutMeshWorkOrder();
  1032. })
  1033. .catch((err) => {
  1034. this.pageLoading = false;
  1035. this.$message.success('任务添加失败!');
  1036. });
  1037. },
  1038. // 筛选等级1
  1039. filterWeightMethod1(value, row, column) {
  1040. const property = column['property'];
  1041. return row[property] === value;
  1042. },
  1043. // 筛选高度1
  1044. filterHeightMethod1(value, row, column) {
  1045. const property = column['property'];
  1046. return row[property] === value;
  1047. },
  1048. // 筛选班组1
  1049. filterJobMethod1(value, row, column) {
  1050. const property = column['property'];
  1051. return row[property] === value;
  1052. },
  1053. // 筛选开槽1
  1054. filterSlottingMethod1(value, row, column) {
  1055. if (value == '开槽') {
  1056. return row['isSlotting'] == '1';
  1057. } else {
  1058. return row['isSlotting'] == '2';
  1059. }
  1060. },
  1061. // 任务未下发列表多选
  1062. taskDistTableSelectionChange(val) {
  1063. this.taskDistSelection = val;
  1064. },
  1065. // 任务下发按钮操作
  1066. taskDistribute() {
  1067. this.$confirm('确认下发选中的任务吗?', '提示', {
  1068. confirmButtonText: '确定',
  1069. cancleButtonText: '取消',
  1070. type: 'warning'
  1071. })
  1072. .then(async () => {
  1073. let ids = this.taskDistSelection.map((item) => item.id);
  1074. const res = await issuedPutMeshWorkOrder({ id: ids, status: 1 });
  1075. this.$message.success('任务下发成功!');
  1076. this.getPutMeshWorkOrder();
  1077. this.getWorkUnreport();
  1078. })
  1079. .catch(() => {});
  1080. },
  1081. // 任务下发未报工列表多选
  1082. workUnreportTableSelectionChange(val) {
  1083. this.workUnreportSelection = val;
  1084. },
  1085. // 按钮全选
  1086. seletAll(data, tableName) {
  1087. if (data) {
  1088. data.forEach((row) => {
  1089. this.$refs[tableName].toggleRowSelection(row, true);
  1090. });
  1091. }
  1092. },
  1093. // 批量删除挂网工单信息(取消、删除、撤回)
  1094. handleDeleteWorkOrder(btnType, type) {
  1095. this.$confirm(`确定${btnType}选中的任务吗?`, '提示', {
  1096. confirmButtonText: '确定',
  1097. cancleButtonText: '取消',
  1098. type: 'warning'
  1099. })
  1100. .then(() => {
  1101. this.pageLoading = true;
  1102. let ids = '';
  1103. if (btnType == '取消') {
  1104. ids = this.taskDistSelection.map((item) => item.id);
  1105. } else if (btnType == '撤回' || btnType == '中止') {
  1106. ids = this.workUnreportSelection.map((item) => item.id);
  1107. }
  1108. // let params = { type, ids };
  1109. deletePutMeshWorkOrder({ id: ids }, type)
  1110. .then((res) => {
  1111. this.pageLoading = false;
  1112. this.$message.success(res.data.msg);
  1113. this.getScheduleWorkOrder({});
  1114. this.getPutMeshWorkOrder();
  1115. this.getWorkUnreport();
  1116. })
  1117. .catch(() => {
  1118. this.pageLoading = false;
  1119. });
  1120. })
  1121. .catch(() => {});
  1122. },
  1123. // 未合并挂网列表删除
  1124. handleDeleteSchedule(row) {
  1125. this.$confirm('确定删除选中的任务吗?', '提示', {
  1126. confirmButtonText: '确定',
  1127. cancleButtonText: '取消',
  1128. type: 'warning'
  1129. })
  1130. .then(() => {
  1131. this.pageLoading = true;
  1132. let ids = row.id;
  1133. deleteScheduleWorkOrder({ ids })
  1134. .then((res) => {
  1135. this.pageLoading = false;
  1136. this.$message.success(res.data.msg);
  1137. this.getScheduleWorkOrder({});
  1138. })
  1139. .catch(() => {
  1140. this.pageLoading = false;
  1141. });
  1142. })
  1143. .catch(() => {});
  1144. }
  1145. }
  1146. };
  1147. </script>
  1148. <style lang="scss" scoped>
  1149. .avue-view {
  1150. height: 100vh;
  1151. }
  1152. .title {
  1153. display: flex;
  1154. justify-content: flex-start;
  1155. align-items: center;
  1156. margin-left: 0;
  1157. padding: 0 20px;
  1158. box-sizing: border-box;
  1159. // color: #000;
  1160. height: 60px;
  1161. width: 100%;
  1162. background-color: #fff;
  1163. font-size: 16px;
  1164. .item:nth-child(1) {
  1165. flex: 1;
  1166. }
  1167. .item:nth-child(2) {
  1168. flex: 2;
  1169. text-align: left;
  1170. }
  1171. .item:nth-child(3) {
  1172. flex: 2;
  1173. text-align: left;
  1174. }
  1175. .item:nth-child(4) {
  1176. flex: 2;
  1177. text-align: right;
  1178. }
  1179. .item:nth-child(5) {
  1180. flex: 1;
  1181. }
  1182. .subWorkNameBox {
  1183. font-size: 24px;
  1184. }
  1185. }
  1186. :deep(.el-table) th.el-table__cell {
  1187. background: none;
  1188. }
  1189. :deep(.el-card.is-always-shadow),
  1190. :deep(.el-table__empty-block),
  1191. .basic-container {
  1192. // background-color: #fff;
  1193. height: calc(100% - 66px);
  1194. }
  1195. :deep(.el-table--border) {
  1196. overflow: auto;
  1197. }
  1198. :deep(.el-table::before) {
  1199. display: none;
  1200. }
  1201. :deep(.el-table) thead,
  1202. :deep(.el-table) tbody {
  1203. // color: #000 !important;
  1204. }
  1205. :deep(.el-table) thead th,
  1206. :deep(.el-table) tbody td {
  1207. // background-color: #080848 !important;
  1208. font-size: 16px;
  1209. }
  1210. // 全局修改滚动条样式
  1211. :deep(::-webkit-scrollbar-thumb) {
  1212. // background-color: #666aa1;
  1213. }
  1214. :deep(.el-button) {
  1215. // background-color: #080848;
  1216. // color: #fff;
  1217. }
  1218. // 最上面一行
  1219. .unMerge-list {
  1220. height: 50%;
  1221. margin-bottom: 8px;
  1222. // border: 1px solid #fff;
  1223. .table-header-row {
  1224. display: flex;
  1225. .screen {
  1226. padding: 9px 30px;
  1227. margin: 5px 0 5px 5px;
  1228. }
  1229. .table-title {
  1230. flex: 1;
  1231. // color: #fff;
  1232. text-align: center;
  1233. font-size: 20px;
  1234. padding-right: 10%;
  1235. line-height: 43px;
  1236. }
  1237. }
  1238. .handle-btn {
  1239. font-size: 16px;
  1240. }
  1241. }
  1242. // 筛选弹窗
  1243. .search-form {
  1244. :deep(.el-input__inner) {
  1245. width: 300px;
  1246. }
  1247. }
  1248. // 筛选弹窗
  1249. .searchForm-btns {
  1250. margin-top: 10px;
  1251. text-align: center;
  1252. padding-right: 30px;
  1253. :deep(.el-button) {
  1254. // background-color: #157a2c !important;
  1255. padding: 9px 30px;
  1256. }
  1257. }
  1258. // 第二行
  1259. .merge-pic-table-title {
  1260. color: #fff;
  1261. font-size: 20px;
  1262. text-align: center;
  1263. line-height: 40px;
  1264. // border: 1px solid #fff;
  1265. border-bottom: 0;
  1266. }
  1267. .merge-pic-table {
  1268. display: flex;
  1269. height: 200px;
  1270. .merge-pic {
  1271. display: flex;
  1272. width: 610px;
  1273. height: 100%;
  1274. margin-right: 8px;
  1275. color: #fff;
  1276. // border: 1px solid #fff;
  1277. box-sizing: border-box;
  1278. font-size: 14px;
  1279. > div {
  1280. display: flex;
  1281. flex-direction: column;
  1282. align-items: center;
  1283. justify-content: space-around;
  1284. padding: 15px 0;
  1285. &:nth-child(1) {
  1286. background-color: #409eff;
  1287. }
  1288. &:nth-child(2) {
  1289. background-color: #e6a23c;
  1290. }
  1291. &:nth-child(3) {
  1292. background-color: #67c23a;
  1293. }
  1294. &:last-child {
  1295. background-color: #191a23;
  1296. }
  1297. }
  1298. }
  1299. .merge-table {
  1300. flex: 0.6;
  1301. height: 100%;
  1302. border: 1px solid #fff;
  1303. box-sizing: border-box;
  1304. :deep(.el-table__header-wrapper) {
  1305. background-color: #080848;
  1306. }
  1307. :deep(.el-table) {
  1308. // border: 0;
  1309. height: calc(100% - 45px);
  1310. // background-color: #080848;
  1311. }
  1312. :deep(.el-button--primary) {
  1313. padding: 9px 30px;
  1314. // border-color: #fff;
  1315. }
  1316. .merge-btns {
  1317. padding: 5px;
  1318. text-align: right;
  1319. }
  1320. }
  1321. .info-message {
  1322. flex: 0.4;
  1323. border-top: 1px solid #ededed;
  1324. border-left: 1px solid #ededed;
  1325. margin-left: 8px;
  1326. display: flex;
  1327. // color: #fff;
  1328. .info-item {
  1329. flex: 1;
  1330. border-right: 1px solid #ededed;
  1331. display: flex;
  1332. flex-direction: column;
  1333. font-size: 16px;
  1334. > span,
  1335. :deep(.el-input) {
  1336. flex: 1;
  1337. border-bottom: 1px solid #ededed;
  1338. display: flex;
  1339. justify-content: center;
  1340. align-items: center;
  1341. }
  1342. :deep(.el-input__inner) {
  1343. padding: 0;
  1344. padding-left: 10px;
  1345. // border: 0;
  1346. border-radius: 0;
  1347. margin: 0 5px;
  1348. // background-color: #ccc;
  1349. // color: #fff;
  1350. }
  1351. :deep(.el-date-editor) {
  1352. width: 100%;
  1353. }
  1354. :deep(.el-input__icon) {
  1355. display: none;
  1356. }
  1357. }
  1358. }
  1359. }
  1360. // 第三行 任务未下发列表 和下发未报工列表
  1361. .task-distribution {
  1362. margin-top: 8px;
  1363. display: flex;
  1364. .task-dist {
  1365. width: 45%;
  1366. overflow: auto;
  1367. margin-right: 8px;
  1368. // border: 1px solid #fff;
  1369. box-sizing: border-box;
  1370. .task-btns {
  1371. // border-bottom: 1px solid #fff;
  1372. padding: 5px;
  1373. box-sizing: border-box;
  1374. display: flex;
  1375. justify-content: space-between;
  1376. .task-dist-title {
  1377. font-size: 20px;
  1378. // color: #fff;
  1379. text-align: center;
  1380. flex: 1;
  1381. align-self: center;
  1382. }
  1383. }
  1384. }
  1385. .work-unreport {
  1386. width: 55%;
  1387. overflow: auto;
  1388. // border: 1px solid #fff;
  1389. box-sizing: border-box;
  1390. .unreport-btns {
  1391. padding: 5px;
  1392. // border-bottom: 1px solid #fff;
  1393. box-sizing: border-box;
  1394. display: flex;
  1395. justify-content: space-between;
  1396. .work-unreport-title {
  1397. flex: 1;
  1398. font-size: 20px;
  1399. // color: #fff;
  1400. text-align: center;
  1401. line-height: 33px;
  1402. }
  1403. }
  1404. }
  1405. }
  1406. :deep(.el-dropdown-selfdefine) {
  1407. font-size: 16px;
  1408. // color: #fff;
  1409. }
  1410. :deep(.el-dropdown-menu) {
  1411. padding: 4px;
  1412. box-sizing: border-box;
  1413. }
  1414. :deep(.el-dropdown-menu__item) {
  1415. font-size: 16px !important;
  1416. }
  1417. :deep(.el-table__column-filter-trigger) i {
  1418. font-size: 14px;
  1419. // color: #fff;
  1420. }
  1421. // /deep/ .el-table__header tr,
  1422. // /deep/ .el-table__header th {
  1423. // height: 42px;
  1424. // }
  1425. </style>