financial.vue 32 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980
  1. <template>
  2. <div>
  3. <div class="inner--headers">
  4. <h2>{{ pageId }}</h2>
  5. <div class="bread--crumbs--wrap">
  6. <span>홈</span>
  7. <span>{{ pageId }}</span>
  8. <span v-if="pageIdSub">{{ pageIdSub }}</span>
  9. </div>
  10. </div>
  11. <div class="data--list--wrap">
  12. <div class="table--wrap">
  13. <div class="table--t">
  14. <h3>요약 연결 재무상태표</h3>
  15. <span>단위 : 백만원</span>
  16. </div>
  17. <table>
  18. <colgroup>
  19. <col width="30%" />
  20. <col width="20%" />
  21. <col width="20%" />
  22. <col width="20%" />
  23. </colgroup>
  24. <thead>
  25. <tr>
  26. <th>구분</th>
  27. <th>
  28. <v-text-field
  29. maxlength="4"
  30. class="custom-input mini"
  31. v-model="form.year1"
  32. placeholder="연도를 입력하세요"
  33. ></v-text-field>
  34. </th>
  35. <th>
  36. <v-text-field
  37. maxlength="4"
  38. class="custom-input mini"
  39. v-model="form.year2"
  40. placeholder="연도를 입력하세요"
  41. ></v-text-field>
  42. </th>
  43. <th>
  44. <v-text-field
  45. maxlength="4"
  46. class="custom-input mini"
  47. v-model="form.year3"
  48. placeholder="연도를 입력하세요"
  49. ></v-text-field>
  50. </th>
  51. </tr>
  52. </thead>
  53. <tbody>
  54. <tr>
  55. <td>유동자산</td>
  56. <td>
  57. <v-text-field
  58. maxlength="12"
  59. @input="(e) => formatNumber(e, 'value1_1')"
  60. class="custom-input mini"
  61. v-model="form.value1_1"
  62. placeholder="금액을 입력하세요"
  63. ></v-text-field>
  64. </td>
  65. <td>
  66. <v-text-field
  67. maxlength="12"
  68. @input="(e) => formatNumber(e, 'value2_1')"
  69. class="custom-input mini"
  70. v-model="form.value2_1"
  71. placeholder="금액을 입력하세요"
  72. ></v-text-field>
  73. </td>
  74. <td>
  75. <v-text-field
  76. maxlength="12"
  77. @input="(e) => formatNumber(e, 'value3_1')"
  78. class="custom-input mini"
  79. v-model="form.value3_1"
  80. placeholder="금액을 입력하세요"
  81. ></v-text-field>
  82. </td>
  83. </tr>
  84. <tr>
  85. <td>비유동자산</td>
  86. <td>
  87. <v-text-field
  88. maxlength="12"
  89. @input="(e) => formatNumber(e, 'value1_2')"
  90. class="custom-input mini"
  91. v-model="form.value1_2"
  92. placeholder="금액을 입력하세요"
  93. ></v-text-field>
  94. </td>
  95. <td>
  96. <v-text-field
  97. maxlength="12"
  98. @input="(e) => formatNumber(e, 'value2_2')"
  99. class="custom-input mini"
  100. v-model="form.value2_2"
  101. placeholder="금액을 입력하세요"
  102. ></v-text-field>
  103. </td>
  104. <td>
  105. <v-text-field
  106. maxlength="12"
  107. @input="(e) => formatNumber(e, 'value3_2')"
  108. class="custom-input mini"
  109. v-model="form.value3_2"
  110. placeholder="금액을 입력하세요"
  111. ></v-text-field>
  112. </td>
  113. </tr>
  114. <tr>
  115. <td class="bg">자산총계</td>
  116. <td class="bg">
  117. <v-text-field
  118. maxlength="12"
  119. @input="(e) => formatNumber(e, 'value1_3')"
  120. class="custom-input mini"
  121. v-model="form.value1_3"
  122. placeholder="금액을 입력하세요"
  123. ></v-text-field>
  124. </td>
  125. <td class="bg">
  126. <v-text-field
  127. maxlength="12"
  128. @input="(e) => formatNumber(e, 'value2_3')"
  129. class="custom-input mini"
  130. v-model="form.value2_3"
  131. placeholder="금액을 입력하세요"
  132. ></v-text-field>
  133. </td>
  134. <td class="bg">
  135. <v-text-field
  136. maxlength="12"
  137. @input="(e) => formatNumber(e, 'value3_3')"
  138. class="custom-input mini"
  139. v-model="form.value3_3"
  140. placeholder="금액을 입력하세요"
  141. ></v-text-field>
  142. </td>
  143. </tr>
  144. <tr>
  145. <td>유동부채</td>
  146. <td>
  147. <v-text-field
  148. maxlength="12"
  149. @input="(e) => formatNumber(e, 'value1_4')"
  150. class="custom-input mini"
  151. v-model="form.value1_4"
  152. placeholder="금액을 입력하세요"
  153. ></v-text-field>
  154. </td>
  155. <td>
  156. <v-text-field
  157. maxlength="12"
  158. @input="(e) => formatNumber(e, 'value2_4')"
  159. class="custom-input mini"
  160. v-model="form.value2_4"
  161. placeholder="금액을 입력하세요"
  162. ></v-text-field>
  163. </td>
  164. <td>
  165. <v-text-field
  166. maxlength="12"
  167. @input="(e) => formatNumber(e, 'value3_4')"
  168. class="custom-input mini"
  169. v-model="form.value3_4"
  170. placeholder="금액을 입력하세요"
  171. ></v-text-field>
  172. </td>
  173. </tr>
  174. <tr>
  175. <td>비유동부채</td>
  176. <td>
  177. <v-text-field
  178. maxlength="12"
  179. @input="(e) => formatNumber(e, 'value1_5')"
  180. class="custom-input mini"
  181. v-model="form.value1_5"
  182. placeholder="금액을 입력하세요"
  183. ></v-text-field>
  184. </td>
  185. <td>
  186. <v-text-field
  187. maxlength="12"
  188. @input="(e) => formatNumber(e, 'value2_5')"
  189. class="custom-input mini"
  190. v-model="form.value2_5"
  191. placeholder="금액을 입력하세요"
  192. ></v-text-field>
  193. </td>
  194. <td>
  195. <v-text-field
  196. maxlength="12"
  197. @input="(e) => formatNumber(e, 'value3_5')"
  198. class="custom-input mini"
  199. v-model="form.value3_5"
  200. placeholder="금액을 입력하세요"
  201. ></v-text-field>
  202. </td>
  203. </tr>
  204. <tr>
  205. <td class="bg">부채총계</td>
  206. <td class="bg">
  207. <v-text-field
  208. maxlength="12"
  209. @input="(e) => formatNumber(e, 'value1_6')"
  210. class="custom-input mini"
  211. v-model="form.value1_6"
  212. placeholder="금액을 입력하세요"
  213. ></v-text-field>
  214. </td>
  215. <td class="bg">
  216. <v-text-field
  217. maxlength="12"
  218. @input="(e) => formatNumber(e, 'value2_6')"
  219. class="custom-input mini"
  220. v-model="form.value2_6"
  221. placeholder="금액을 입력하세요"
  222. ></v-text-field>
  223. </td>
  224. <td class="bg">
  225. <v-text-field
  226. maxlength="12"
  227. @input="(e) => formatNumber(e, 'value3_6')"
  228. class="custom-input mini"
  229. v-model="form.value3_6"
  230. placeholder="금액을 입력하세요"
  231. ></v-text-field>
  232. </td>
  233. </tr>
  234. <tr>
  235. <td>자본금</td>
  236. <td>
  237. <v-text-field
  238. maxlength="12"
  239. @input="(e) => formatNumber(e, 'value1_7')"
  240. class="custom-input mini"
  241. v-model="form.value1_7"
  242. placeholder="금액을 입력하세요"
  243. ></v-text-field>
  244. </td>
  245. <td>
  246. <v-text-field
  247. maxlength="12"
  248. @input="(e) => formatNumber(e, 'value2_7')"
  249. class="custom-input mini"
  250. v-model="form.value2_7"
  251. placeholder="금액을 입력하세요"
  252. ></v-text-field>
  253. </td>
  254. <td>
  255. <v-text-field
  256. maxlength="12"
  257. @input="(e) => formatNumber(e, 'value3_7')"
  258. class="custom-input mini"
  259. v-model="form.value3_7"
  260. placeholder="금액을 입력하세요"
  261. ></v-text-field>
  262. </td>
  263. </tr>
  264. <tr>
  265. <td>주식발행 초과금</td>
  266. <td>
  267. <v-text-field
  268. maxlength="12"
  269. @input="(e) => formatNumber(e, 'value1_8')"
  270. class="custom-input mini"
  271. v-model="form.value1_8"
  272. placeholder="금액을 입력하세요"
  273. ></v-text-field>
  274. </td>
  275. <td>
  276. <v-text-field
  277. maxlength="12"
  278. @input="(e) => formatNumber(e, 'value2_8')"
  279. class="custom-input mini"
  280. v-model="form.value2_8"
  281. placeholder="금액을 입력하세요"
  282. ></v-text-field>
  283. </td>
  284. <td>
  285. <v-text-field
  286. maxlength="12"
  287. @input="(e) => formatNumber(e, 'value3_8')"
  288. class="custom-input mini"
  289. v-model="form.value3_8"
  290. placeholder="금액을 입력하세요"
  291. ></v-text-field>
  292. </td>
  293. </tr>
  294. <tr>
  295. <td>기타자본 구성요소</td>
  296. <td>
  297. <v-text-field
  298. maxlength="12"
  299. @input="(e) => formatNumber(e, 'value1_9')"
  300. class="custom-input mini"
  301. v-model="form.value1_9"
  302. placeholder="금액을 입력하세요"
  303. ></v-text-field>
  304. </td>
  305. <td>
  306. <v-text-field
  307. maxlength="12"
  308. @input="(e) => formatNumber(e, 'value2_9')"
  309. class="custom-input mini"
  310. v-model="form.value2_9"
  311. placeholder="금액을 입력하세요"
  312. ></v-text-field>
  313. </td>
  314. <td>
  315. <v-text-field
  316. maxlength="12"
  317. @input="(e) => formatNumber(e, 'value3_9')"
  318. class="custom-input mini"
  319. v-model="form.value3_9"
  320. placeholder="금액을 입력하세요"
  321. ></v-text-field>
  322. </td>
  323. </tr>
  324. <tr>
  325. <td>이익잉여금</td>
  326. <td>
  327. <v-text-field
  328. maxlength="12"
  329. @input="(e) => formatNumber(e, 'value1_10')"
  330. class="custom-input mini"
  331. v-model="form.value1_10"
  332. placeholder="금액을 입력하세요"
  333. ></v-text-field>
  334. </td>
  335. <td>
  336. <v-text-field
  337. maxlength="12"
  338. @input="(e) => formatNumber(e, 'value2_10')"
  339. class="custom-input mini"
  340. v-model="form.value2_10"
  341. placeholder="금액을 입력하세요"
  342. ></v-text-field>
  343. </td>
  344. <td>
  345. <v-text-field
  346. maxlength="12"
  347. @input="(e) => formatNumber(e, 'value3_10')"
  348. class="custom-input mini"
  349. v-model="form.value3_10"
  350. placeholder="금액을 입력하세요"
  351. ></v-text-field>
  352. </td>
  353. </tr>
  354. <tr>
  355. <td class="bg">자본총계</td>
  356. <td class="bg">
  357. <v-text-field
  358. maxlength="12"
  359. @input="(e) => formatNumber(e, 'value1_11')"
  360. class="custom-input mini"
  361. v-model="form.value1_11"
  362. placeholder="금액을 입력하세요"
  363. ></v-text-field>
  364. </td>
  365. <td class="bg">
  366. <v-text-field
  367. maxlength="12"
  368. @input="(e) => formatNumber(e, 'value2_11')"
  369. class="custom-input mini"
  370. v-model="form.value2_11"
  371. placeholder="금액을 입력하세요"
  372. ></v-text-field>
  373. </td>
  374. <td class="bg">
  375. <v-text-field
  376. maxlength="12"
  377. @input="(e) => formatNumber(e, 'value3_11')"
  378. class="custom-input mini"
  379. v-model="form.value3_11"
  380. placeholder="금액을 입력하세요"
  381. ></v-text-field>
  382. </td>
  383. </tr>
  384. </tbody>
  385. </table>
  386. </div>
  387. <div class="table--wrap">
  388. <di class="table--t">
  389. <h3>요약 연결 손익계산서</h3>
  390. <span>단위 : 백만원</span>
  391. </di>
  392. <table>
  393. <colgroup>
  394. <col width="30%" />
  395. <col width="20%" />
  396. <col width="20%" />
  397. <col width="20%" />
  398. </colgroup>
  399. <thead>
  400. <tr>
  401. <th>구분</th>
  402. <th>
  403. <v-text-field
  404. maxlength="4"
  405. class="custom-input mini"
  406. v-model="form.year1_1"
  407. placeholder="연도를 입력하세요"
  408. ></v-text-field>
  409. </th>
  410. <th>
  411. <v-text-field
  412. maxlength="4"
  413. class="custom-input mini"
  414. v-model="form.year2_1"
  415. placeholder="연도를 입력하세요"
  416. ></v-text-field>
  417. </th>
  418. <th>
  419. <v-text-field
  420. maxlength="4"
  421. class="custom-input mini"
  422. v-model="form.year3_1"
  423. placeholder="연도를 입력하세요"
  424. ></v-text-field>
  425. </th>
  426. </tr>
  427. </thead>
  428. <tbody>
  429. <tr>
  430. <td class="bg">매출액</td>
  431. <td class="bg">
  432. <v-text-field
  433. maxlength="12"
  434. @input="(e) => formatNumber(e, 'value1_12')"
  435. class="custom-input mini"
  436. v-model="form.value1_12"
  437. placeholder="금액을 입력하세요"
  438. ></v-text-field>
  439. </td>
  440. <td class="bg">
  441. <v-text-field
  442. maxlength="12"
  443. @input="(e) => formatNumber(e, 'value2_12')"
  444. class="custom-input mini"
  445. v-model="form.value2_12"
  446. placeholder="금액을 입력하세요"
  447. ></v-text-field>
  448. </td>
  449. <td class="bg">
  450. <v-text-field
  451. maxlength="12"
  452. @input="(e) => formatNumber(e, 'value3_12')"
  453. class="custom-input mini"
  454. v-model="form.value3_12"
  455. placeholder="금액을 입력하세요"
  456. ></v-text-field>
  457. </td>
  458. </tr>
  459. <tr>
  460. <td>매출원가</td>
  461. <td>
  462. <v-text-field
  463. maxlength="12"
  464. @input="(e) => formatNumber(e, 'value1_13')"
  465. class="custom-input mini"
  466. v-model="form.value1_13"
  467. placeholder="금액을 입력하세요"
  468. ></v-text-field>
  469. </td>
  470. <td>
  471. <v-text-field
  472. maxlength="12"
  473. @input="(e) => formatNumber(e, 'value2_13')"
  474. class="custom-input mini"
  475. v-model="form.value2_13"
  476. placeholder="금액을 입력하세요"
  477. ></v-text-field>
  478. </td>
  479. <td>
  480. <v-text-field
  481. maxlength="12"
  482. @input="(e) => formatNumber(e, 'value3_13')"
  483. class="custom-input mini"
  484. v-model="form.value3_13"
  485. placeholder="금액을 입력하세요"
  486. ></v-text-field>
  487. </td>
  488. </tr>
  489. <tr>
  490. <td>매출총이익</td>
  491. <td>
  492. <v-text-field
  493. maxlength="12"
  494. @input="(e) => formatNumber(e, 'value1_14')"
  495. class="custom-input mini"
  496. v-model="form.value1_14"
  497. placeholder="금액을 입력하세요"
  498. ></v-text-field>
  499. </td>
  500. <td>
  501. <v-text-field
  502. maxlength="12"
  503. @input="(e) => formatNumber(e, 'value2_14')"
  504. class="custom-input mini"
  505. v-model="form.value2_14"
  506. placeholder="금액을 입력하세요"
  507. ></v-text-field>
  508. </td>
  509. <td>
  510. <v-text-field
  511. maxlength="12"
  512. @input="(e) => formatNumber(e, 'value3_14')"
  513. class="custom-input mini"
  514. v-model="form.value3_14"
  515. placeholder="금액을 입력하세요"
  516. ></v-text-field>
  517. </td>
  518. </tr>
  519. <tr>
  520. <td>판매비와 관리비</td>
  521. <td>
  522. <v-text-field
  523. maxlength="12"
  524. @input="(e) => formatNumber(e, 'value1_15')"
  525. class="custom-input mini"
  526. v-model="form.value1_15"
  527. placeholder="금액을 입력하세요"
  528. ></v-text-field>
  529. </td>
  530. <td>
  531. <v-text-field
  532. maxlength="12"
  533. @input="(e) => formatNumber(e, 'value2_15')"
  534. class="custom-input mini"
  535. v-model="form.value2_15"
  536. placeholder="금액을 입력하세요"
  537. ></v-text-field>
  538. </td>
  539. <td>
  540. <v-text-field
  541. maxlength="12"
  542. @input="(e) => formatNumber(e, 'value3_15')"
  543. class="custom-input mini"
  544. v-model="form.value3_15"
  545. placeholder="금액을 입력하세요"
  546. ></v-text-field>
  547. </td>
  548. </tr>
  549. <tr>
  550. <td class="bg">영업이익</td>
  551. <td class="bg">
  552. <v-text-field
  553. maxlength="12"
  554. @input="(e) => formatNumber(e, 'value1_16')"
  555. class="custom-input mini"
  556. v-model="form.value1_16"
  557. placeholder="금액을 입력하세요"
  558. ></v-text-field>
  559. </td>
  560. <td class="bg">
  561. <v-text-field
  562. maxlength="12"
  563. @input="(e) => formatNumber(e, 'value2_16')"
  564. class="custom-input mini"
  565. v-model="form.value2_16"
  566. placeholder="금액을 입력하세요"
  567. ></v-text-field>
  568. </td>
  569. <td class="bg">
  570. <v-text-field
  571. maxlength="12"
  572. @input="(e) => formatNumber(e, 'value3_16')"
  573. class="custom-input mini"
  574. v-model="form.value3_16"
  575. placeholder="금액을 입력하세요"
  576. ></v-text-field>
  577. </td>
  578. </tr>
  579. <tr>
  580. <td>법인세 차감전순이익</td>
  581. <td>
  582. <v-text-field
  583. maxlength="12"
  584. @input="(e) => formatNumber(e, 'value1_17')"
  585. class="custom-input mini"
  586. v-model="form.value1_17"
  587. placeholder="금액을 입력하세요"
  588. ></v-text-field>
  589. </td>
  590. <td>
  591. <v-text-field
  592. maxlength="12"
  593. @input="(e) => formatNumber(e, 'value2_17')"
  594. class="custom-input mini"
  595. v-model="form.value2_17"
  596. placeholder="금액을 입력하세요"
  597. ></v-text-field>
  598. </td>
  599. <td>
  600. <v-text-field
  601. maxlength="12"
  602. @input="(e) => formatNumber(e, 'value3_17')"
  603. class="custom-input mini"
  604. v-model="form.value3_17"
  605. placeholder="금액을 입력하세요"
  606. ></v-text-field>
  607. </td>
  608. </tr>
  609. <tr>
  610. <td class="bg">당기순이익</td>
  611. <td class="bg">
  612. <v-text-field
  613. maxlength="12"
  614. @input="(e) => formatNumber(e, 'value1_18')"
  615. class="custom-input mini"
  616. v-model="form.value1_18"
  617. placeholder="금액을 입력하세요"
  618. ></v-text-field>
  619. </td>
  620. <td class="bg">
  621. <v-text-field
  622. maxlength="12"
  623. @input="(e) => formatNumber(e, 'value2_18')"
  624. class="custom-input mini"
  625. v-model="form.value2_18"
  626. placeholder="금액을 입력하세요"
  627. ></v-text-field>
  628. </td>
  629. <td class="bg">
  630. <v-text-field
  631. maxlength="12"
  632. @input="(e) => formatNumber(e, 'value3_18')"
  633. class="custom-input mini"
  634. v-model="form.value3_18"
  635. placeholder="금액을 입력하세요"
  636. ></v-text-field>
  637. </td>
  638. </tr>
  639. </tbody>
  640. </table>
  641. </div>
  642. <div class="view-btm-btn">
  643. <div class="btn-l"></div>
  644. <div class="btn-r">
  645. <v-btn class="custom-btn btn-blue2" @click="fnUpdEvt"
  646. ><i class="ico"></i>저장</v-btn
  647. >
  648. </div>
  649. </div>
  650. </div>
  651. </div>
  652. </template>
  653. <script setup>
  654. /************************************************************************
  655. | 레이아웃
  656. ************************************************************************/
  657. definePageMeta({
  658. layout: "default",
  659. });
  660. /************************************************************************
  661. | PROPS
  662. ************************************************************************/
  663. const props = defineProps({
  664. propsData: {
  665. type: Object,
  666. default: () => {},
  667. },
  668. });
  669. /************************************************************************
  670. | 스토어
  671. ************************************************************************/
  672. const useDtStore = useDetailStore();
  673. /************************************************************************
  674. | 전역
  675. ************************************************************************/
  676. const { $toast, $log, $dayjs, $eventBus } = useNuxtApp();
  677. const router = useRouter();
  678. const pageId = ref("재무제표");
  679. const pageIdSub = ref();
  680. /* eslint-disable */
  681. const form = ref({
  682. year1: "",
  683. year2: "",
  684. year3: "",
  685. year1_1: "",
  686. year2_1: "",
  687. year3_1: "",
  688. value1_1: "",
  689. value1_2: "",
  690. value1_3: "",
  691. value1_4: "",
  692. value1_5: "",
  693. value1_6: "",
  694. value1_7: "",
  695. value1_8: "",
  696. value1_9: "",
  697. value1_10: "",
  698. value1_11: "",
  699. value1_12: "",
  700. value1_13: "",
  701. value1_14: "",
  702. value1_15: "",
  703. value1_16: "",
  704. value1_17: "",
  705. value1_18: "",
  706. value2_1: "",
  707. value2_2: "",
  708. value2_3: "",
  709. value2_4: "",
  710. value2_5: "",
  711. value2_6: "",
  712. value2_7: "",
  713. value2_8: "",
  714. value2_9: "",
  715. value2_10: "",
  716. value2_11: "",
  717. value2_12: "",
  718. value2_13: "",
  719. value2_14: "",
  720. value2_15: "",
  721. value2_16: "",
  722. value2_17: "",
  723. value2_18: "",
  724. value3_1: "",
  725. value3_2: "",
  726. value3_3: "",
  727. value3_4: "",
  728. value3_5: "",
  729. value3_6: "",
  730. value3_7: "",
  731. value3_8: "",
  732. value3_9: "",
  733. value3_10: "",
  734. value3_11: "",
  735. value3_12: "",
  736. value3_13: "",
  737. value3_14: "",
  738. value3_15: "",
  739. value3_16: "",
  740. value3_17: "",
  741. value3_18: "",
  742. });
  743. /* eslint-disable */
  744. /* prettier-ignore */
  745. /************************************************************************
  746. | 함수(METHODS)
  747. ************************************************************************/
  748. const formatNumber = (event, key) => {
  749. // 숫자만 남기기
  750. const input = event.target.value.replace(/[^0-9]/g, '');
  751. // 3자리마다 쉼표 추가
  752. const formattedInput = new Intl.NumberFormat().format(input);
  753. // 실시간으로 업데이트
  754. form.value[key] = String(formattedInput);
  755. };
  756. const fnUpdate = () => {
  757. let wterGet = localStorage.getItem("tempAccess");
  758. let _req = {
  759. wter: wterGet,
  760. // 요약 연결 재무상태표
  761. dd_1: form.value.year1,
  762. dd_2: form.value.year2,
  763. dd_3: form.value.year3,
  764. dd_amt_1_1: form.value.value1_1,
  765. dd_amt_1_2: form.value.value1_2,
  766. dd_amt_1_3: form.value.value1_3,
  767. dd_amt_1_4: form.value.value1_4,
  768. dd_amt_1_5: form.value.value1_5,
  769. dd_amt_1_6: form.value.value1_6,
  770. dd_amt_1_7: form.value.value1_7,
  771. dd_amt_1_8: form.value.value1_8,
  772. dd_amt_1_9: form.value.value1_9,
  773. dd_amt_1_10: form.value.value1_10,
  774. dd_amt_1_11: form.value.value1_11,
  775. dd_amt_2_1: form.value.value2_1,
  776. dd_amt_2_2: form.value.value2_2,
  777. dd_amt_2_3: form.value.value2_3,
  778. dd_amt_2_4: form.value.value2_4,
  779. dd_amt_2_5: form.value.value2_5,
  780. dd_amt_2_6: form.value.value2_6,
  781. dd_amt_2_7: form.value.value2_7,
  782. dd_amt_2_8: form.value.value2_8,
  783. dd_amt_2_9: form.value.value2_9,
  784. dd_amt_2_10: form.value.value2_10,
  785. dd_amt_2_11: form.value.value2_11,
  786. dd_amt_3_1: form.value.value3_1,
  787. dd_amt_3_2: form.value.value3_2,
  788. dd_amt_3_3: form.value.value3_3,
  789. dd_amt_3_4: form.value.value3_4,
  790. dd_amt_3_5: form.value.value3_5,
  791. dd_amt_3_6: form.value.value3_6,
  792. dd_amt_3_7: form.value.value3_7,
  793. dd_amt_3_8: form.value.value3_8,
  794. dd_amt_3_9: form.value.value3_9,
  795. dd_amt_3_10: form.value.value3_10,
  796. dd_amt_3_11: form.value.value3_11,
  797. // 요약 연결 손익계산서
  798. dd_1_1: form.value.year1_1,
  799. dd_2_1: form.value.year2_1,
  800. dd_3_1: form.value.year3_1,
  801. dd_amt_1_12: form.value.value1_12,
  802. dd_amt_1_13: form.value.value1_13,
  803. dd_amt_1_14: form.value.value1_14,
  804. dd_amt_1_15: form.value.value1_15,
  805. dd_amt_1_16: form.value.value1_16,
  806. dd_amt_1_17: form.value.value1_17,
  807. dd_amt_1_18: form.value.value1_18,
  808. dd_amt_2_12: form.value.value2_12,
  809. dd_amt_2_13: form.value.value2_13,
  810. dd_amt_2_14: form.value.value2_14,
  811. dd_amt_2_15: form.value.value2_15,
  812. dd_amt_2_16: form.value.value2_16,
  813. dd_amt_2_17: form.value.value2_17,
  814. dd_amt_2_18: form.value.value2_18,
  815. dd_amt_3_12: form.value.value3_12,
  816. dd_amt_3_13: form.value.value3_13,
  817. dd_amt_3_14: form.value.value3_14,
  818. dd_amt_3_15: form.value.value3_15,
  819. dd_amt_3_16: form.value.value3_16,
  820. dd_amt_3_17: form.value.value3_17,
  821. dd_amt_3_18: form.value.value3_18,
  822. };
  823. _req = Object.fromEntries(
  824. Object.entries(_req).map(([key, value]) => [
  825. key,
  826. typeof value === "string"
  827. ? value.replace(/,/g, "") // 문자열인 경우에만 replace
  828. : value == null
  829. ? "" // null 또는 undefined 값은 빈 문자열로 처리
  830. : String(value), // 그 외 값은 문자열로 변환
  831. ])
  832. );
  833. useAxios()
  834. .post("/balance/ins", _req)
  835. .then((res) => {
  836. window.location.reload();
  837. //console.error(res)
  838. })
  839. .catch((error) => {});
  840. };
  841. const fnDetail = () => {
  842. let _req = {};
  843. useAxios()
  844. .post("/balance/detail", _req)
  845. .then((res) => {
  846. const formattedData = Object.fromEntries(
  847. Object.entries(res.data).map(([key, value]) => {
  848. let formattedValue = null;
  849. // 연도는 쉼표 제거, 금액은 쉼표 추가
  850. if(key !== 'dd_1' && key !== 'dd_2' && key !== 'dd_3' && key !== 'dd_1_1' && key !== 'dd_2_1' && key !== 'dd_3_1'){
  851. formattedValue = !isNaN(value)
  852. ? new Intl.NumberFormat().format(Number(value))
  853. : value;
  854. } else {
  855. formattedValue = value;
  856. }
  857. return [key, formattedValue];
  858. })
  859. );
  860. res.data = formattedData;
  861. form.value.year1 = res.data.dd_1;
  862. form.value.value1_1 = res.data.dd_amt_1_1;
  863. form.value.value1_2 = res.data.dd_amt_1_2;
  864. form.value.value1_3 = res.data.dd_amt_1_3;
  865. form.value.value1_4 = res.data.dd_amt_1_4;
  866. form.value.value1_5 = res.data.dd_amt_1_5;
  867. form.value.value1_6 = res.data.dd_amt_1_6;
  868. form.value.value1_7 = res.data.dd_amt_1_7;
  869. form.value.value1_8 = res.data.dd_amt_1_8;
  870. form.value.value1_9 = res.data.dd_amt_1_9;
  871. form.value.value1_10 = res.data.dd_amt_1_10;
  872. form.value.value1_11 = res.data.dd_amt_1_11;
  873. form.value.year2 = res.data.dd_2;
  874. form.value.value2_1 = res.data.dd_amt_2_1;
  875. form.value.value2_2 = res.data.dd_amt_2_2;
  876. form.value.value2_3 = res.data.dd_amt_2_3;
  877. form.value.value2_4 = res.data.dd_amt_2_4;
  878. form.value.value2_5 = res.data.dd_amt_2_5;
  879. form.value.value2_6 = res.data.dd_amt_2_6;
  880. form.value.value2_7 = res.data.dd_amt_2_7;
  881. form.value.value2_8 = res.data.dd_amt_2_8;
  882. form.value.value2_9 = res.data.dd_amt_2_9;
  883. form.value.value2_10 = res.data.dd_amt_2_10;
  884. form.value.value2_11 = res.data.dd_amt_2_11;
  885. form.value.year3 = res.data.dd_3;
  886. form.value.value3_1 = res.data.dd_amt_3_1;
  887. form.value.value3_2 = res.data.dd_amt_3_2;
  888. form.value.value3_3 = res.data.dd_amt_3_3;
  889. form.value.value3_4 = res.data.dd_amt_3_4;
  890. form.value.value3_5 = res.data.dd_amt_3_5;
  891. form.value.value3_6 = res.data.dd_amt_3_6;
  892. form.value.value3_7 = res.data.dd_amt_3_7;
  893. form.value.value3_8 = res.data.dd_amt_3_8;
  894. form.value.value3_9 = res.data.dd_amt_3_9;
  895. form.value.value3_10 = res.data.dd_amt_3_10;
  896. form.value.value3_11 = res.data.dd_amt_3_11;
  897. // 요약 연결 손익계산서
  898. form.value.year1_1 = res.data.dd_1_1;
  899. form.value.value1_12 = res.data.dd_amt_1_12;
  900. form.value.value1_13 = res.data.dd_amt_1_13;
  901. form.value.value1_14 = res.data.dd_amt_1_14;
  902. form.value.value1_15 = res.data.dd_amt_1_15;
  903. form.value.value1_16 = res.data.dd_amt_1_16;
  904. form.value.value1_17 = res.data.dd_amt_1_17;
  905. form.value.value1_18 = res.data.dd_amt_1_18;
  906. form.value.year2_1 = res.data.dd_2_1;
  907. form.value.value2_12 = res.data.dd_amt_2_12;
  908. form.value.value2_13 = res.data.dd_amt_2_13;
  909. form.value.value2_14 = res.data.dd_amt_2_14;
  910. form.value.value2_15 = res.data.dd_amt_2_15;
  911. form.value.value2_16 = res.data.dd_amt_2_16;
  912. form.value.value2_17 = res.data.dd_amt_2_17;
  913. form.value.value2_18 = res.data.dd_amt_2_18;
  914. form.value.year3_1 = res.data.dd_3_1;
  915. form.value.value3_12 = res.data.dd_amt_3_12;
  916. form.value.value3_13 = res.data.dd_amt_3_13;
  917. form.value.value3_14 = res.data.dd_amt_3_14;
  918. form.value.value3_15 = res.data.dd_amt_3_15;
  919. form.value.value3_16 = res.data.dd_amt_3_16;
  920. form.value.value3_17 = res.data.dd_amt_3_17;
  921. form.value.value3_18 = res.data.dd_amt_3_18;
  922. })
  923. .catch((error) => {});
  924. };
  925. const fnUpdEvt = () => {
  926. let param = {
  927. id: pageId,
  928. title: "재무제표 저장",
  929. content: "저장하시겠습니까?",
  930. yes: {
  931. text: "저장",
  932. isProc: true,
  933. event: "FN_UPDATE",
  934. param: "",
  935. },
  936. no: {
  937. text: "취소",
  938. isProc: false,
  939. },
  940. };
  941. $eventBus.emit("OPEN_CONFIRM_POP_UP", param);
  942. };
  943. $eventBus.off("FN_UPDATE");
  944. $eventBus.on("FN_UPDATE", () => {
  945. fnUpdate();
  946. });
  947. /************************************************************************
  948. | WATCH
  949. ************************************************************************/
  950. watch(() => {});
  951. onMounted(() => {
  952. fnDetail();
  953. });
  954. </script>