index.vue 43 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456
  1. <template>
  2. <div class="app-container">
  3. <div v-if="MainTable == false">
  4. <MainForm
  5. ref="MainForm"
  6. :searchdata="formOption"
  7. :display="display"
  8. :form="queryParms"
  9. :show="show"
  10. :inDex="inDex"
  11. />
  12. <listComponent
  13. style="clear:both"
  14. v-if="waitFor"
  15. :tableData="tableData"
  16. @selectionbox="selectionbox"
  17. @see="viewMethod"
  18. @modify="modification"
  19. @deletion="deletion"
  20. @buttonList="buttonList"
  21. @showSearch="showSearch"
  22. @getList="getList"
  23. @feedback="feedback"
  24. :customButton="customButton"
  25. :arrow="arrow"
  26. :hasPermi="hasPermi"
  27. :tatolLabel="mainTatol"
  28. :seachButton="seachButton"
  29. :setRowList="setRowList"
  30. :listStyle="listStyle"
  31. :isItHidden="isItHidden"
  32. :queryList="queryList"/>
  33. <pagination
  34. v-show="total > 0"
  35. :total="total"
  36. :page.sync="queryParms.pageNum"
  37. :limit.sync="queryParms.pageSize"
  38. @pagination="getList"
  39. />
  40. </div>
  41. <div v-if="MainTable == true">
  42. <MainForm
  43. ref="detailForm"
  44. :searchdata="detailOption"
  45. :display="display"
  46. :form="detailForm"
  47. :show="show = true"
  48. :inDex="inDex"
  49. @backRules="backRules"
  50. @backSave="backSave"
  51. @verificationRules="verificationRules"
  52. @changeWarehouse="changeWarehouse"
  53. />
  54. <list-component
  55. v-if="waitFor"
  56. :tableData="detailData"
  57. @selectionbox="selectionbox"
  58. @see="viewMethod"
  59. @modify="modification"
  60. @deletion="deletion"
  61. @buttonList="buttonList"
  62. @showSearch="showSearch"
  63. @getList="getList"
  64. @deletRows="deletRows"
  65. @feedback="feedback"
  66. @totalAmount="totalAmount"
  67. @change="change"
  68. :seachButton="confirmButton"
  69. :customButton="detailButton"
  70. :listStyle="detailStyle"
  71. :hasPermi="hasPermi"
  72. :setRowList="setRowList"
  73. :tatolLabel="tatolLabel"
  74. :listData="listData"
  75. :queryList="detailList"/>
  76. </div>
  77. <el-dialog
  78. title="打印出库"
  79. :visible.sync="dialogVisible"
  80. :fullscreen="true"
  81. style="padding: 0;margin:0"
  82. width="70%">
  83. <div ref="print">
  84. <table class="table table-striped table-bordered" align="center" valign="center" style="font-size: 12px;border-collapse: collapse; border: none;margin-top: 10px;" >
  85. <tr>
  86. <td style="font-size: 24px;font-weight:bold" class="column" colspan="15" align="center">出库明细</td>
  87. </tr>
  88. <tr>
  89. <td class="column" style="border: 1px solid #000; padding:10px" align="center" rowspan="2">出库时间</td>
  90. <td class="column" style="border: 1px solid #000; padding:10px" align="center" rowspan="2">产品名称</td>
  91. <td class="column" style="border: 1px solid #000; padding:10px" align="center" rowspan="2">规格</td>
  92. <td class="column" style="border: 1px solid #000; padding:10px" align="center" rowspan="2">数量</td>
  93. <td class="column" style="border: 1px solid #000; padding:10px" align="center" rowspan="2">供货商</td>
  94. <td class="column" style="border: 1px solid #000; padding:10px" align="center" rowspan="2">供货人</td>
  95. <td class="column" style="border: 1px solid #000; padding:10px" align="center" rowspan="2">联系电话</td>
  96. <!-- <td class="column" style="border: 1px solid #000; padding:10px" align="center" rowspan="2">生产日期或批号</td>-->
  97. <!-- <td class="column" style="border: 1px solid #000; padding:10px" align="center" rowspan="2">保质期限</td>-->
  98. <!-- <td class="column" style="border: 1px solid #000; padding:10px" align="center" rowspan="2">保存条件</td>-->
  99. <!-- <td class="column" style="border: 1px solid #000; padding:10px" align="center" rowspan="2">索证索票情况</td>-->
  100. <!-- <td class="column" style="border: 1px solid #000; padding:10px" align="center" rowspan="2">采购人</td>-->
  101. <td class="column" style="border: 1px solid #000; padding:10px" align="center" colspan="2">检验结果</td>
  102. <td class="column" style="border: 1px solid #000; padding:10px" align="center" rowspan="2">验收人</td>
  103. </tr>
  104. <tr>
  105. <td class="column" style="border: 1px solid #000; padding:10px" align="center" >感官</td>
  106. <td class="column" style="border: 1px solid #000; padding:10px" align="center" >数量</td>
  107. </tr>
  108. <tr v-for="(item,index) in this.detailData" :key="index">
  109. <td class="column" style="border: 1px solid #000; padding:10px" align="center" >{{detailForm.fBsdate}}</td>
  110. <td class="column" style="border: 1px solid #000; padding:10px" align="center" >{{item.fFeeid}}</td>
  111. <td class="column" style="border: 1px solid #000; padding:10px" align="center" >{{item.fFeeunitid}}</td>
  112. <td class="column" style="border: 1px solid #000; padding:10px" align="center" >{{item.fQty}}</td>
  113. <td class="column" style="border: 1px solid #000; padding:10px" align="center" >{{detailForm.corpName}}</td>
  114. <td class="column" style="border: 1px solid #000; padding:10px" align="center" >{{item.fAmount}}</td>
  115. <td class="column" style="border: 1px solid #000; padding:10px" align="center" >{{item.fStltypeid}}</td>
  116. <!-- <td class="column" style="border: 1px solid #000; padding:10px" align="center" >{{item.tProductdate}}/{{item.fLotno}}</td>-->
  117. <!-- <td class="column" style="border: 1px solid #000; padding:10px" align="center" >{{item.fValid}}</td>-->
  118. <!-- <td class="column" style="border: 1px solid #000; padding:10px" align="center" >{{item.fStoreEnv}}</td>-->
  119. <!-- <td class="column" style="border: 1px solid #000; padding:10px" align="center" >{{item.fIsfilles}}</td>-->
  120. <!-- <td class="column" style="border: 1px solid #000; padding:10px" align="center" >{{detailForm.fPurchase}}</td>-->
  121. <td class="column" style="border: 1px solid #000; padding:10px" align="center" ></td>
  122. <td class="column" style="border: 1px solid #000; padding:10px" align="center" ></td>
  123. <td class="column" style="border: 1px solid #000; padding:10px" align="center" ></td>
  124. </tr>
  125. </table>
  126. </div>
  127. <span slot="footer" class="dialog-footer">
  128. <el-button @click="dialogVisible = false">取 消</el-button>
  129. <el-button type="primary" @click="Printing">打印</el-button>
  130. </span>
  131. </el-dialog>
  132. </div>
  133. </template>
  134. <script>
  135. import { select } from '@/api/system/set'
  136. import MainForm from '@/combination/MainForm'
  137. import { listInStock, addSave, getSave, getArea,
  138. getustomer,getEntry, getwarehouse, getGoodName,
  139. canBedelet, delRows, getWarehousekeeper, addWarehous,
  140. deletMain, delFee, copyNew, listQuery} from '@/api/warehouse/inStock'
  141. import Cookies from 'js-cookie'
  142. import { getliable } from '@/api/project'
  143. export default {
  144. name: 'inStock',
  145. data(){
  146. return{
  147. setRowList:[],
  148. hasPermi:{
  149. lookup:['anpin:stockControl:query'],
  150. disappear:['anpin:stockControl:remove']
  151. },
  152. formList:{},
  153. dialogVisible: false,
  154. mainTatol:['金额'],
  155. ids:[],
  156. listData:{
  157. fFeeid:[],
  158. fFeeunitid:[],
  159. fStltypeid:[],
  160. fWarehouseid:[],
  161. fUnits:[],
  162. fStoreEnv:[],
  163. fIsfilles:[],
  164. },
  165. selection:[],
  166. isItHidden:true,
  167. // 非单个禁用
  168. single: true,
  169. // 总条数
  170. total: 0,
  171. inDex:4,
  172. tatolLabel:['单价','数量','金额'],
  173. MainTable:false,
  174. show: false,
  175. arrow:'el-icon-arrow-up',
  176. queryList:{
  177. tableName:'出库主表',
  178. columnList:[]
  179. },
  180. detailList:{
  181. tableName:'仓库出库详情',
  182. columnList:[]
  183. },
  184. //判断自定义列是否有值再渲染组件
  185. waitFor:false,
  186. display:3,
  187. queryParms:{
  188. pageNum: 1,
  189. pageSize: 10,
  190. fBilltype:'CK'
  191. },
  192. detailForm:{
  193. },
  194. //主页面默认显示4个表单数据
  195. formOption:[
  196. {
  197. span:6,
  198. label: 'fBillno',
  199. name:"系统编号",
  200. form:2,
  201. width:200,
  202. labelSize:'80',
  203. rules: { required:false }
  204. },
  205. {
  206. span:6,
  207. label: 'fWarehouseid',
  208. name:"仓库",
  209. form:1,
  210. width:200,
  211. labelSize:'80',
  212. rules: { required:false },
  213. data:[]
  214. },
  215. {
  216. span:6,
  217. label: 'fCorpid',
  218. name:"供应商",
  219. form:1,
  220. width:200,
  221. labelSize:'80',
  222. rules: { required:false },
  223. data:[]
  224. },
  225. {
  226. span:6,
  227. label: 'timeInterval',
  228. name:"出库日期",
  229. form:6,
  230. width:250,
  231. labelSize:'80',
  232. rules: { required:false },
  233. },
  234. {
  235. span:6,
  236. label: 'cLoadDate',
  237. name:"申请日期",
  238. form:6,
  239. width:200,
  240. labelSize:'80',
  241. rules: { required:false }
  242. },
  243. {
  244. span:6,
  245. label: 'moneys',
  246. name:"金额范围",
  247. form:5,
  248. width:200,
  249. labelSize:'80',
  250. rules: { required:false }
  251. },
  252. {
  253. span:6,
  254. label: 'createBy',
  255. name:"申请人",
  256. form:2,
  257. width:200,
  258. labelSize:'80',
  259. rules: { required:false }
  260. },
  261. {
  262. span:6,
  263. label: 'fGoodsid',
  264. name:"项目名称",
  265. form:1,
  266. width:200,
  267. labelSize:'80',
  268. rules: { required:false },
  269. data:[]
  270. },
  271. {
  272. span:6,
  273. label: 'remark',
  274. name:"备注",
  275. form:2,
  276. width:200,
  277. labelSize:'80',
  278. rules: { required:false }
  279. },
  280. ],
  281. //表名称
  282. tableData:[],
  283. //从表表名
  284. detailData:[],
  285. //传输表
  286. mainStyle:[],
  287. //表数据
  288. listStyle: [
  289. {
  290. surface: "1",
  291. label: "serialNumber",
  292. name: "序号",
  293. checked: 0,
  294. width: 100,
  295. onabort:''
  296. },{
  297. surface: "2",
  298. label: "fBillno",
  299. name: "申请编号",
  300. checked: 0,
  301. width: 100,
  302. }, {
  303. surface: "3",
  304. label: "fWarehouseName",
  305. name: "仓库",
  306. checked: 0,
  307. width: 200,
  308. operation:1
  309. },
  310. {
  311. surface: "4",
  312. label: "corpName",
  313. name: "供应商",
  314. checked: 0,
  315. width: 200,
  316. operation:1
  317. },{
  318. surface: "5",
  319. label: "fMoney",
  320. name: "金额",
  321. checked: 0,
  322. width: 200,
  323. operation:1
  324. },{
  325. surface: "6",
  326. label: "createTime",
  327. name: "申请日期",
  328. checked: 0,
  329. width: 200,
  330. operation:1
  331. },{
  332. surface: "7",
  333. label: "fBsdate",
  334. name: "出库日期",
  335. checked: 0,
  336. width: 200,
  337. operation:1
  338. },
  339. {
  340. surface: "8",
  341. label: "createBy",
  342. name: "申请人",
  343. checked: 0,
  344. width: 200,
  345. operation:1
  346. },{
  347. surface: "9",
  348. label: "fBillstatusName",
  349. name: "状态",
  350. checked: 0,
  351. width: 200,
  352. operation:1
  353. },{
  354. surface: "10",
  355. label: "fReviewDate",
  356. name: "审核日期",
  357. checked: 0,
  358. width: 200,
  359. operation:1,
  360. },
  361. {
  362. surface: "11",
  363. label: "projectName",
  364. name: "项目名称",
  365. checked: 0,
  366. width: 200,
  367. operation:1
  368. },{
  369. surface: "12",
  370. label: "remark",
  371. name: "备注",
  372. checked: 0,
  373. width: 200,
  374. operation:1
  375. },{
  376. surface: "13",
  377. label: "fMaterial2",
  378. name: "操作",
  379. checked: 0,
  380. width: 200,
  381. fixed:'right',
  382. operation:1
  383. }
  384. ],
  385. //从表数据
  386. detailStyle: [
  387. {
  388. surface: "1",
  389. label: "serialNumber",
  390. name: "序号",
  391. checked: 0,
  392. width: 100,
  393. onabort:''
  394. },{
  395. surface: "2",
  396. label: "fFeeid",
  397. name: "品名",
  398. checked: 0,
  399. width: 200,
  400. changeable:1,
  401. },
  402. {
  403. surface: "3",
  404. label: "fCurrencyName",
  405. name: "规格",
  406. checked: 0,
  407. width: 100,
  408. },
  409. {
  410. surface: "4",
  411. label: "fUnitprice",
  412. name: "单价",
  413. checked: 0,
  414. width: 100,
  415. operation:2,
  416. changeable:2,
  417. disabled:false,
  418. onabort:'this.value=this.value.replace(/[^\\d^\\.]+/g,\'\')'
  419. },{
  420. surface: "5",
  421. label: "fQty",
  422. name: "数量",
  423. checked: 0,
  424. width: 100,
  425. operation:2,
  426. changeable:2,
  427. disabled:false,
  428. onabort:'this.value=this.value.replace(/[^\\d^\\.]+/g,\'\')'
  429. },{
  430. surface: "6",
  431. label: "fFeeunitid",
  432. name: "计量单位",
  433. checked: 0,
  434. width: 100,
  435. changeable:1,
  436. operation:2,
  437. data:[],
  438. disabled:false
  439. },{
  440. surface: "7",
  441. label: "fWarehouseid",
  442. name: "库区",
  443. checked: 0,
  444. width: 100,
  445. operation:2,
  446. changeable:1,
  447. data:[],
  448. disabled:false
  449. },{
  450. surface: "8",
  451. label: "fAmount",
  452. name: "金额",
  453. checked: 0,
  454. width: 100,
  455. operation:2,
  456. },{
  457. surface: "9",
  458. label: "fStltypeid",
  459. name: "付费方式",
  460. checked: 0,
  461. width: 100,
  462. operation:2,
  463. changeable: 1,
  464. data:[],
  465. disabled:false
  466. },
  467. // {
  468. // surface: "9",
  469. // label: "tProductdate",
  470. // name: "生产日期",
  471. // checked: 0,
  472. // width: 100,
  473. // operation:2,
  474. // changeable: 3,
  475. // data:[],
  476. // disabled:false
  477. // },{
  478. // surface: "10",
  479. // label: "fLotno",
  480. // name: "批号",
  481. // checked: 0,
  482. // width: 100,
  483. // operation:2,
  484. // changeable: 2,
  485. // data:[],
  486. // disabled:false
  487. // },
  488. // {
  489. // surface: "11",
  490. // label: "fValid",
  491. // name: "保质期限",
  492. // checked: 0,
  493. // width: 100,
  494. // operation:2,
  495. // changeable: 2,
  496. // data:[],
  497. // disabled:false,
  498. // onabort:'this.value=this.value.replace(/[^\\d^\\.]+/g,\'\')'
  499. // },
  500. // {
  501. // surface: "12",
  502. // label: "fUnits",
  503. // name: "单位",
  504. // checked: 0,
  505. // width: 100,
  506. // operation:2,
  507. // changeable: 1,
  508. // data:[],
  509. // disabled:false
  510. // },
  511. // {
  512. // surface: "13",
  513. // label: "fStoreEnv",
  514. // name: "存储环境",
  515. // checked: 0,
  516. // width: 100,
  517. // operation:2,
  518. // changeable: 1,
  519. // data:[],
  520. // disabled:false
  521. // },
  522. // {
  523. // surface: "14",
  524. // label: "fIsfilles",
  525. // name: "索证索票",
  526. // checked: 0,
  527. // width: 100,
  528. // operation:2,
  529. // changeable: 1,
  530. // disabled:false
  531. // },
  532. {
  533. surface: "10",
  534. label: "remark",
  535. name: "备注",
  536. checked: 0,
  537. width: 100,
  538. operation:2,
  539. changeable: 2,
  540. disabled:false
  541. },{
  542. surface: "11",
  543. label: "fReviewDate",
  544. name: "审核日期",
  545. checked: 0,
  546. width: 100,
  547. operation:2,
  548. },
  549. {
  550. surface: "12",
  551. label: "createBy",
  552. name: "申请人",
  553. checked: 0,
  554. width: 100,
  555. operation:2,
  556. },{
  557. surface: "13",
  558. label: "fMaterial10",
  559. name: "操作",
  560. checked: 0,
  561. width: 100,
  562. operation:2,
  563. disabled:false
  564. }
  565. ],
  566. //详情主表
  567. detailOption:[
  568. {
  569. index:'1',
  570. span:6,
  571. label: 'fBillno',
  572. name:"系统编号",
  573. form:2,
  574. width:200,
  575. labelSize:'80',
  576. rules:'',
  577. disabled:true,
  578. doNot:'1'
  579. },
  580. {
  581. index:'2',
  582. span:6,
  583. label: 'fCorpid',
  584. name:"供应商",
  585. form:1,
  586. width:200,
  587. labelSize:'80',
  588. rules:{ required: true, message: ' ', trigger: 'blur' },
  589. data:[],
  590. disabled:false
  591. },
  592. {
  593. index:'3',
  594. span:6,
  595. label: 'fStorekeeper',
  596. name:"库管员",
  597. form:1,
  598. width:200,
  599. labelSize:'80',
  600. rules:{ required: true, message: ' ', trigger: 'blur' },
  601. data:[],
  602. disabled:false
  603. },
  604. // {
  605. // index:'4',
  606. // span:6,
  607. // label: 'fPurchase',
  608. // name:"采购人",
  609. // form:1,
  610. // width:200,
  611. // labelSize:'80',
  612. // rules:{ required: true, message: ' ', trigger: 'blur' },
  613. // data:[],
  614. // disabled:false
  615. // },
  616. {
  617. index:'5',
  618. span:6,
  619. label: 'fWarehouseid',
  620. name:"仓库",
  621. form:1,
  622. width:200,
  623. labelSize:'80',
  624. rules:{ required: true, message: ' ', trigger: 'blur' },
  625. data:[],
  626. disabled:false
  627. }, {
  628. index:'6',
  629. span:6,
  630. label: 'fSbu',
  631. name:"开票公司",
  632. form:1,
  633. width:200,
  634. labelSize:'80',
  635. rules:{ required: true, message: ' ', trigger: 'blur' },
  636. data:[],
  637. disabled:false
  638. },
  639. {
  640. index:'7',
  641. span:6,
  642. label: 'fBsdate',
  643. name:"出库日期",
  644. form:3,
  645. width:200,
  646. labelSize:'80',
  647. rules:{ required: true, message: ' ', trigger: 'blur' },
  648. disabled:false
  649. },
  650. {
  651. index:'8',
  652. span:6,
  653. label: 'remark',
  654. name:"备注",
  655. form:4,
  656. width:200,
  657. labelSize:'80',
  658. rules:'',
  659. disabled:false
  660. },
  661. ],
  662. //按钮
  663. customButton:[
  664. {
  665. type:'primary',
  666. size:'mini',
  667. icon:'el-icon-plus',
  668. name:'新增',
  669. disabled:false,
  670. hasPermi:['anpin:stockControl:anPingApply']
  671. },{
  672. type:'success',
  673. size:'mini',
  674. icon:'el-icon-edit',
  675. name:'修改',
  676. res:0,
  677. disabled:true,
  678. hasPermi:['anpin:stockControl:anPingApply']
  679. },{
  680. type:'info',
  681. size:'mini',
  682. icon:'el-icon-plus',
  683. name:'复制新增',
  684. disabled:true,
  685. hasPermi:['anpin:stockControl:generateReceipts']
  686. },
  687. ],
  688. seachButton:[
  689. {
  690. type:'',
  691. size:'mini',
  692. icon:'el-icon-search',
  693. name:'搜索',
  694. disabled:false,
  695. },{
  696. type:'',
  697. size:'mini',
  698. icon:'el-icon-refresh',
  699. name:'重置',
  700. disabled:false,
  701. },{
  702. type:'',
  703. size:'mini',
  704. icon:'el-icon-arrow-up',
  705. name:'展开',
  706. disabled:false
  707. }
  708. ],
  709. detailButton:[
  710. {
  711. type:'danger',
  712. size:'mini',
  713. icon:'el-icon-refresh-left',
  714. name:'返回列表',
  715. disabled:false,
  716. },{
  717. type:'primary',
  718. size:'mini',
  719. icon:'el-icon-edit',
  720. name:'录入',
  721. disabled:false,
  722. },{
  723. type:'success',
  724. size:'mini',
  725. icon:'el-icon-check',
  726. name:'保存',
  727. disabled:false
  728. },{
  729. type:'info',
  730. size:'mini',
  731. icon:'el-icon-edit',
  732. name:'修改',
  733. disabled:false,
  734. res:1
  735. },{
  736. type:'info',
  737. size:'mini',
  738. icon:'el-icon-edit',
  739. name:'打印',
  740. disabled:false,
  741. res:1
  742. },{
  743. type:'info',
  744. size:'mini',
  745. icon:'el-icon-edit',
  746. name:'出库确认',
  747. disabled:false,
  748. res:1
  749. },
  750. {
  751. type:'warning',
  752. size:'mini',
  753. icon:'el-icon-refresh',
  754. name:'刷新',
  755. disabled:false,
  756. res:1
  757. }
  758. ],
  759. confirmButton:[
  760. {
  761. type:'cyan',
  762. size:'mini',
  763. icon:'',
  764. name:'打印',
  765. disabled:false,
  766. },{
  767. type:'info',
  768. size:'mini',
  769. icon:'',
  770. name:'出库确认',
  771. disabled:false
  772. }
  773. ]
  774. }
  775. },
  776. created() {
  777. let data = {
  778. tableName: this.queryList.tableName,
  779. userId: Cookies.get("userName"),
  780. };
  781. this.getRow(data)
  782. let list = {
  783. fBilltype:'CK'
  784. }
  785. this.query(list)
  786. this.getRow()
  787. this.getList()
  788. this.selectMethods()
  789. },
  790. methods:{
  791. change(scope){
  792. for(let item in this.detailData){
  793. for(let li in this.listData.fFeeid){
  794. if(this.detailData[item].fFeeid == this.listData.fFeeid[li].value){
  795. this.$set(this.detailData[item],'fFeeunitid',JSON.stringify(this.listData.fFeeid[li].fFeeunitid))
  796. this.$set(this.detailData[item],'fCurrencyName',this.listData.fFeeid[li].fCurrency)
  797. }
  798. }
  799. }
  800. },
  801. //确认打印
  802. Printing(){
  803. this.$print(this.$refs.print)
  804. },
  805. //查询主页列数据
  806. query(data){
  807. listQuery(data).then(res =>{
  808. this.tableData = res.rows
  809. })
  810. },
  811. //更换仓库
  812. changeWarehouse(){
  813. if(this.detailData.length != 0){
  814. for(let li in this.detailData){
  815. this.detailData[li].fWarehouseid = ''
  816. }
  817. }
  818. getArea(this.detailForm.fWarehouseid).then(res=>{
  819. this.listData.fWarehouseid = []
  820. for(let item in res.data){
  821. this.listData.fWarehouseid.push({
  822. label:res.data[item].fWarehouseInformation,
  823. value:res.data[item].id
  824. })
  825. }
  826. })
  827. },
  828. //自动合计金额
  829. totalAmount(){
  830. for(let li in this.detailData){
  831. if(this.detailData[li].fUnitprice && this.detailData[li].fQty){
  832. this.detailData[li].fAmount = (this.detailData[li].fUnitprice * this.detailData[li].fQty).toFixed(2)
  833. }
  834. }
  835. },
  836. //搜索、重置、展开
  837. feedback(res){
  838. if (res == '展开'){
  839. if (this.inDex == 4){
  840. this.inDex = this.formOption.length
  841. }else {
  842. this.inDex = 4
  843. }
  844. }else if (res == '搜索'){
  845. this.handleQuery()
  846. }else if (res == '重置'){
  847. this.resetQuery()
  848. }
  849. },
  850. selectMethods(){
  851. this.mainMethods()
  852. this.detailMethods()
  853. },
  854. //主页面下拉获取名称
  855. mainMethods(){
  856. for(let li in this.formOption){
  857. if(this.formOption[li].name == '仓库'){
  858. let queryParams = { pageNum: 1,}
  859. getwarehouse(queryParams).then(res=>{
  860. for(let item in res.rows){
  861. this.formOption[li].data.push({
  862. label:res.rows[item].fName,
  863. value:res.rows[item].fId
  864. })
  865. }
  866. })
  867. }
  868. else
  869. if(this.formOption[li].name == '供应商'){
  870. let queryParams = { pageNum: 1, fTypeid: 1}
  871. getustomer(queryParams).then(res => {
  872. for(let item in res.data){
  873. this.formOption[li].data.push({
  874. label:res.data[item].fName,
  875. value:res.data[item].fId
  876. })
  877. }
  878. })
  879. }
  880. }
  881. },
  882. //弹窗页获取下拉名称
  883. detailMethods(){
  884. for(let li in this.detailOption){
  885. if(this.detailOption[li].name == '仓库'){
  886. //获取仓库
  887. let queryParams = { pageNum: 1 }
  888. getwarehouse(queryParams).then(res=>{
  889. for(let item in res.rows){
  890. this.detailOption[li].data.push({
  891. label:res.rows[item].fName,
  892. value:res.rows[item].fId
  893. })
  894. }
  895. })
  896. }else if(this.detailOption[li].name == '供应商'){
  897. //获取供应商
  898. let queryParams = { pageNum: 1, fTypeid: 1}
  899. getustomer(queryParams).then(res => {
  900. for(let item in res.data){
  901. this.detailOption[li].data.push({
  902. label:res.data[item].fName,
  903. value:res.data[item].fId
  904. })
  905. }
  906. })
  907. }else if(this.detailOption[li].name == '开票公司'){
  908. //获取付款单位
  909. let queryParams = { pageNum: 1, fTypeid: 1}
  910. getustomer(queryParams).then(res => {
  911. for(let item in res.data){
  912. this.detailOption[li].data.push({
  913. label:res.data[item].fName,
  914. value:res.data[item].fId
  915. })
  916. }
  917. })
  918. }else if(this.detailOption[li].name == '库管员'){
  919. let queryParams = { pageNum: 1,roleName:'库管'}
  920. getWarehousekeeper(queryParams).then(res=>{
  921. for(let item in res.rows){
  922. this.detailOption[li].data.push({
  923. label:res.rows[item].userName,
  924. value:res.rows[item].userId
  925. })
  926. }
  927. })
  928. }
  929. else if(this.detailOption[li].name == '采购人'){
  930. getliable().then((res) => {
  931. console.log(res)
  932. for(let item in res.rows){
  933. this.detailOption[li].data.push({
  934. label:res.rows[item].userName,
  935. value:res.rows[item].userId
  936. })
  937. }
  938. })
  939. }
  940. }
  941. //获取计量单位字典表
  942. this.getDicts('data_unitfees').then((response) => {
  943. if (response.data) {
  944. for (let item in response.data) {
  945. this.listData.fFeeunitid.push({
  946. label: response.data[item].dictLabel,
  947. value: response.data[item].dictValue
  948. })
  949. }
  950. }
  951. })
  952. //获取浮点单位字典表
  953. this.getDicts('f_floatunit').then((response) => {
  954. if (response.data) {
  955. for (let item in response.data) {
  956. this.listData.fUnits.push({
  957. label: response.data[item].dictLabel,
  958. value: JSON.parse(response.data[item].dictValue)
  959. })
  960. }
  961. }
  962. })
  963. //获取存储环境字典表
  964. this.getDicts('f_StorageEnvironment').then((response) => {
  965. if (response.data) {
  966. for (let item in response.data) {
  967. this.listData.fStoreEnv.push({
  968. label: response.data[item].dictLabel,
  969. value: JSON.parse(response.data[item].dictValue)
  970. })
  971. }
  972. }
  973. })
  974. this.getDicts('f_evidence').then((response) => {
  975. if (response.data) {
  976. for (let item in response.data) {
  977. this.listData.fIsfilles.push({
  978. label: response.data[item].dictLabel,
  979. value: JSON.parse(response.data[item].dictValue)
  980. })
  981. }
  982. }
  983. })
  984. //获取品名
  985. let queryParams = { pageNum: 1 }
  986. getGoodName(queryParams).then(res=>{
  987. console.log(res)
  988. for(let item in res.rows){
  989. this.listData.fFeeid.push({
  990. label:res.rows[item].fName,
  991. value:res.rows[item].fId,
  992. fFeeunitid: res.rows[item].fFeeunitid,
  993. fCurrency: res.rows[item].fCurrency
  994. })
  995. }
  996. })
  997. //付费方式
  998. this.getDicts('f_paymode').then((response) => {
  999. if (response.data) {
  1000. for (let item in response.data) {
  1001. this.listData.fStltypeid.push({
  1002. label: response.data[item].dictLabel,
  1003. value: response.data[item].dictValue
  1004. })
  1005. }
  1006. }
  1007. })
  1008. },
  1009. handleQuery(){
  1010. this.$refs.MainForm.hide()
  1011. this.getList();
  1012. },
  1013. resetQuery(){
  1014. this.queryParms = {}
  1015. this.getList();
  1016. },
  1017. //查询列数据
  1018. getRow() {
  1019. let data = {
  1020. tableName: this.queryList.tableName,
  1021. userId: Cookies.get("userName"),
  1022. };
  1023. select(data).then((res) => {
  1024. if (data.tableName === '仓库出库详情') {
  1025. if (res.data.length != 0) {
  1026. this.detailList.columnList = res.data.filter((e) => e.checked == 0);
  1027. this.detailList.columnList = res.data;
  1028. this.setRowList = res.data
  1029. this.detailList.columnList = this.detailList.columnList.filter((e) => e.checked == 0);
  1030. // this.waitFor = true
  1031. }else {
  1032. // this.waitFor = true
  1033. this.$set(this.detailList,'columnList',this.$options.data().detailStyle)
  1034. this.setRowList = this.$options.data().detailStyle
  1035. }
  1036. // this.pageDisplay = false
  1037. this.isItHidden = false
  1038. this.inDex = this.detailOption.length
  1039. }else {
  1040. if (res.data.length != 0) {
  1041. this.queryList.columnList = res.data.filter((e) => e.checked == 0);
  1042. this.queryList.columnList = res.data;
  1043. this.setRowList = res.data
  1044. this.queryList.columnList = this.queryList.columnList.filter((e) => e.checked == 0);
  1045. this.waitFor = true
  1046. }else {
  1047. this.waitFor = true
  1048. this.$set(this.queryList,'columnList',this.$options.data().listStyle)
  1049. this.setRowList = this.$options.data().listStyle
  1050. }
  1051. // this.pageDisplay = true
  1052. this.isItHidden = true
  1053. this.inDex = 4
  1054. }
  1055. });
  1056. },
  1057. //选择框
  1058. selectionbox(selection){
  1059. this.selection = selection
  1060. this.ids = selection.map((item) => item.fId)
  1061. this.single = selection.length !== 1
  1062. for(let li in this.customButton){
  1063. if(this.customButton[li].name == '修改' || this.customButton[li].name == '复制新增'){
  1064. this.customButton[li].disabled = this.single
  1065. }
  1066. }
  1067. },
  1068. //查看
  1069. viewMethod(scope){
  1070. this.detailList.columnList = this.detailStyle
  1071. let fId = ''
  1072. if(scope){
  1073. fId = scope.row.fId
  1074. }else{
  1075. fId = this.ids
  1076. }
  1077. getSave(fId).then(res=>{
  1078. if(res.code == 200){
  1079. if(res.data.warehouseBills){
  1080. this.detailForm = res.data.warehouseBills
  1081. this.$set(this.detailForm,'fStorekeeper',JSON.parse(this.detailForm.fStorekeeper))
  1082. }
  1083. if(res.data.tWarehousebillsfees){
  1084. this.detailData = res.data.tWarehousebillsfees
  1085. for(let li in this.detailData){
  1086. this.$set(this.detailData[li],'fFeeunitid',JSON.stringify(this.detailData[li].fFeeunitid))
  1087. this.$set(this.detailData[li],'fStltypeid',JSON.stringify(this.detailData[li].fStltypeid))
  1088. }
  1089. }
  1090. }
  1091. for(let li in this.detailStyle){
  1092. this.detailStyle[li].disabled = true
  1093. }
  1094. for(let item in this.detailOption){
  1095. this.detailOption[item].disabled = true
  1096. }
  1097. for(let li in this.detailButton){
  1098. if(this.detailForm.fBillstatus == '6'){
  1099. if(this.detailButton[li].name == '返回列表'){
  1100. this.detailButton[li].disabled = false
  1101. }else {
  1102. this.detailButton[li].disabled = true
  1103. }
  1104. } else {
  1105. if(this.detailButton[li].name == '返回列表' || this.detailButton[li].name == '修改'){
  1106. this.detailButton[li].disabled = false
  1107. }else{
  1108. this.detailButton[li].disabled = true
  1109. }
  1110. }
  1111. }
  1112. getArea(this.detailForm.fWarehouseid).then(res=>{
  1113. if(res.code == 200){
  1114. this.listData.fWarehouseid = []
  1115. for(let item in res.data){
  1116. this.listData.fWarehouseid.push({
  1117. label:res.data[item].fWarehouseInformation,
  1118. value:res.data[item].id
  1119. })
  1120. }
  1121. }
  1122. })
  1123. this.MainTable = true
  1124. this.inDex = this.detailOption.length
  1125. })
  1126. },
  1127. //修改
  1128. modification(scope){
  1129. },
  1130. //删除
  1131. deletion(scope){
  1132. const fIds = scope.row.fId || this.ids;
  1133. let tips = "";
  1134. deletMain(fIds).then(res=>{
  1135. switch (res.msg) {
  1136. case "0": {
  1137. this.$message.error("当前数据已被其他操作员操作,请刷新页面");
  1138. break;
  1139. }
  1140. case "1": {
  1141. tips = "当前主表有数据,确认是否删除?";
  1142. this.delete_s(fIds, tips);
  1143. break;
  1144. }
  1145. case "2": {
  1146. tips = "当前主表有数据,从表有数据,确认是否删除?";
  1147. this.delete_s(fIds, tips);
  1148. break;
  1149. }
  1150. default: {
  1151. return this.$message.error("未知错误,无状态");
  1152. }
  1153. }
  1154. })
  1155. },
  1156. delete_s(fIds, tips) {
  1157. this.$confirm(tips, "警告", {
  1158. confirmButtonText: "确定",
  1159. cancelButtonText: "取消",
  1160. type: "warning",
  1161. })
  1162. .then(function () {
  1163. return delFee(fIds);
  1164. })
  1165. .then(() => {
  1166. this.getList();
  1167. this.msgSuccess("删除成功");
  1168. });
  1169. },
  1170. //删除从表行
  1171. deletRows(index,rows){
  1172. if(rows[index].fId){
  1173. let formData = {
  1174. fId:this.detailForm.fId,
  1175. fDateChanged:this.detailForm.fDateChanged
  1176. }
  1177. canBedelet(formData).then(res=>{
  1178. return delRows(rows[index].fId)
  1179. })
  1180. .then(()=>{
  1181. getSave(this.detailForm.fId).then(res=>{
  1182. if(res.code == 200){
  1183. if(res.data.warehouseBills){
  1184. this.detailForm = res.data.warehouseBills
  1185. this.$set(this.detailForm,'fStorekeeper',JSON.parse(this.detailForm.fStorekeeper))
  1186. }
  1187. if(res.data.tWarehousebillsfees){
  1188. this.detailData = res.data.tWarehousebillsfees
  1189. for(let li in this.detailData){
  1190. this.$set(this.detailData[li],'fFeeunitid',JSON.stringify(this.detailData[li].fFeeunitid))
  1191. this.$set(this.detailData[li],'fStltypeid',JSON.stringify(this.detailData[li].fStltypeid))
  1192. }
  1193. }
  1194. this.msgSuccess("删除成功");
  1195. }
  1196. })
  1197. })
  1198. .catch(res=>{
  1199. this.$message.error(res)
  1200. })
  1201. }else {
  1202. rows.splice(index, 1)
  1203. }
  1204. },
  1205. //必填项新行
  1206. verificationRules(valid){
  1207. if(valid){
  1208. this.detailData.push({
  1209. serialNumber:null,
  1210. fFeeid:null,
  1211. fUnitprice:null,
  1212. fQty:null,
  1213. fFeeunitid:null,
  1214. fWarehouseid:null,
  1215. fAmount:null,
  1216. fStltypeid:'1',
  1217. tProductdate:null,
  1218. fLotno:null,
  1219. fValid:null,
  1220. fUnits:null,
  1221. fStoreEnv:null,
  1222. fIsfilles:0,
  1223. remark:null,
  1224. fReviewDate:null,
  1225. createBy:null,
  1226. })
  1227. }
  1228. },
  1229. //返回列表是否保存
  1230. backRules(){
  1231. for(let li in this.detailOption) {
  1232. if(this.detailOption[li].name == '供应商'){
  1233. if(this.detailOption[li].disabled == true){
  1234. this.inDex = 4
  1235. this.getList();
  1236. this.MainTable = false
  1237. } else {
  1238. this.$confirm("返回列表,是否保存?", "提示", {
  1239. confirmButtonText: "保存",
  1240. cancelButtonText: "取消",
  1241. type: "warning",
  1242. }).then(() => {
  1243. this.$refs.detailForm.saveRules('1')
  1244. }).catch(() => {
  1245. this.inDex = 4
  1246. this.MainTable = false
  1247. this.getList();
  1248. });
  1249. }
  1250. }
  1251. }
  1252. },
  1253. backSave(valid,i){
  1254. if(valid){
  1255. this.detailForm.fMoney = 0
  1256. for(let li in this.detailData){
  1257. if(this.detailData[li]){
  1258. this.detailForm.fMoney += Number(this.detailData[li].fAmount)
  1259. }
  1260. }
  1261. let formData = new window.FormData();
  1262. formData.append('tWarehousebills', JSON.stringify(this.detailForm))
  1263. formData.append('tWarehousebillsfees', JSON.stringify(this.detailData))
  1264. formData.append('fBilltype', 'CK')
  1265. addSave(formData).then(res=>{
  1266. if(res.code == 200){
  1267. this.detailForm = res.data.warehouseBills
  1268. this.$set(this.detailForm,'fStorekeeper',JSON.parse(this.detailForm.fStorekeeper))
  1269. this.detailData = res.data.tWarehousebillsCntrs
  1270. for(let li in this.detailData){
  1271. this.$set(this.detailData[li],'fFeeunitid',JSON.stringify(this.detailData[li].fFeeunitid))
  1272. this.$set(this.detailData[li],'fStltypeid',JSON.stringify(this.detailData[li].fStltypeid))
  1273. }
  1274. this.$message.success("操作成功")
  1275. this.getList();
  1276. if(i == 1){
  1277. this.MainTable = false
  1278. this.inDex = 4
  1279. }
  1280. }
  1281. })
  1282. }
  1283. },
  1284. //所以按钮
  1285. buttonList(row){
  1286. switch (row.name) {
  1287. case '新增':
  1288. this.detailList.columnList = this.detailStyle
  1289. this.detailForm = {}
  1290. this.detailData = []
  1291. this.inDex = this.detailOption.length
  1292. //从表修改按钮
  1293. for(let li in this.detailStyle){
  1294. if(!this.detailStyle[li].doNot){
  1295. this.detailStyle[li].disabled = false
  1296. }
  1297. }
  1298. for(let item in this.detailOption){
  1299. if(!this.detailOption[item].doNot){
  1300. this.detailOption[item].disabled = false
  1301. }
  1302. }
  1303. for(let li in this.detailButton){
  1304. this.detailButton[li].disabled = false
  1305. }
  1306. this.MainTable = true
  1307. break
  1308. case '录入':
  1309. this.$refs.detailForm.rules()
  1310. break
  1311. case '返回列表':
  1312. this.backRules()
  1313. break
  1314. case '保存':
  1315. this.$refs.detailForm.saveRules()
  1316. break
  1317. case '出库确认':
  1318. console.log(this.detailData)
  1319. if(this.detailData.length == 0){
  1320. this.$message.error("请维护明细")
  1321. }else{
  1322. for(let item in this.detailData) {
  1323. let num = Number(item) + 1
  1324. if(!this.detailData[item].fQty){
  1325. this.$message.error("请维护第" + num + "数量")
  1326. return false
  1327. }
  1328. if (!this.detailData[item].fWarehouseid) {
  1329. this.$message.error("请维护第" + num + "行库区")
  1330. return false
  1331. }
  1332. }
  1333. this.detailForm.fMoney = 0
  1334. for(let li in this.detailData){
  1335. if(this.detailData[li]){
  1336. this.detailForm.fMoney += Number(this.detailData[li].fAmount)
  1337. }
  1338. }
  1339. let formData = new window.FormData();
  1340. formData.append('tWarehousebills', JSON.stringify(this.detailForm))
  1341. formData.append('tWarehousebillsfees', JSON.stringify(this.detailData))
  1342. formData.append('fBilltype', 'CK')
  1343. addWarehous(formData).then(res=>{
  1344. if(res.data.warehouseBills){
  1345. this.detailForm = res.data.warehouseBills
  1346. this.$set(this.detailForm,'fStorekeeper',JSON.parse(this.detailForm.fStorekeeper))
  1347. }
  1348. if(res.data.tWarehousebillsCntrs){
  1349. this.detailData = res.data.tWarehousebillsCntrs
  1350. for(let li in this.detailData){
  1351. this.$set(this.detailData[li],'fFeeunitid',JSON.stringify(this.detailData[li].fFeeunitid))
  1352. this.$set(this.detailData[li],'fStltypeid',JSON.stringify(this.detailData[li].fStltypeid))
  1353. }
  1354. }
  1355. this.$message.success("操作成功")
  1356. for(let li in this.detailStyle){
  1357. this.detailStyle[li].disabled = true
  1358. }
  1359. for(let item in this.detailOption){
  1360. this.detailOption[item].disabled = true
  1361. }
  1362. for(let li in this.detailButton) {
  1363. if (this.detailButton[li].name == '返回列表') {
  1364. this.detailButton[li].disabled = false
  1365. }else{
  1366. this.detailButton[li].disabled = true
  1367. }
  1368. }
  1369. })
  1370. }
  1371. break
  1372. case '刷新':
  1373. if(this.detailForm.fId){
  1374. getSave(this.detailForm.fId).then(res=>{
  1375. if(res.data.warehouseBills){
  1376. this.detailForm = res.data.warehouseBills
  1377. this.$set(this.detailForm,'fStorekeeper',JSON.parse(this.detailForm.fStorekeeper))
  1378. }
  1379. if(res.data.tWarehousebillsfees){
  1380. this.detailData = res.data.tWarehousebillsfees
  1381. for(let li in this.detailData){
  1382. this.$set(this.detailData[li],'fFeeunitid',JSON.stringify(this.detailData[li].fFeeunitid))
  1383. this.$set(this.detailData[li],'fStltypeid',JSON.stringify(this.detailData[li].fStltypeid))
  1384. }
  1385. }
  1386. })
  1387. }
  1388. break
  1389. case '复制新增':
  1390. let formDate = {
  1391. fBilltype:'CK',
  1392. fId:this.selection[0].fId
  1393. }
  1394. copyNew(formDate).then(res=>{
  1395. this.$message.success("操作成功")
  1396. this.getList()
  1397. })
  1398. break
  1399. case '打印':
  1400. this.formList = this.detailForm
  1401. this.dialogVisible = true
  1402. break
  1403. }
  1404. if(row.name == '修改' && row.res == '0'){
  1405. this.viewMethod()
  1406. }
  1407. if(row.res === 1){
  1408. //从表修改按钮
  1409. for(let li in this.detailStyle){
  1410. if(!this.detailStyle[li].doNot){
  1411. this.detailStyle[li].disabled = false
  1412. }
  1413. }
  1414. for(let item in this.detailOption){
  1415. if(!this.detailOption[item].doNot){
  1416. this.detailOption[item].disabled = false
  1417. }
  1418. }
  1419. for(let li in this.detailButton){
  1420. this.detailButton[li].disabled = false
  1421. }
  1422. }
  1423. },
  1424. // 显示搜索条件、点击后会调用此方法
  1425. showSearch(){
  1426. this.getList()
  1427. },
  1428. //点击刷新会调用此方法
  1429. getList(){
  1430. this.queryParms.fBilltype = 'CK'
  1431. listInStock(this.queryParms).then(res=>{
  1432. this.tableData = res.rows
  1433. this.total = res.total
  1434. })
  1435. },
  1436. }
  1437. }
  1438. </script>
  1439. <style scoped lang="scss">
  1440. .app-container ::v-deep .el-form-item {
  1441. margin-bottom: 4px;
  1442. }
  1443. .app-container ::v-deep .el-table__body-wrapper{
  1444. z-index: 2;
  1445. }
  1446. </style>