high-comp-discount-details.vue 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484
  1. <template>
  2. <basic-container v-loading="loading">
  3. <div class="btn-wrap">
  4. <el-button type="primary" icon="el-icon-edit" @click="handleSaveBtn">保存</el-button>
  5. </div>
  6. <div class="doc-page">
  7. <h3 class="page-title" style="margin: 24px 0 16px">{{ pageTitle }}</h3>
  8. <div style="display: flex; margin: 12px 0;">
  9. <year-month-select v-model="year" :showMonth="false" style="margin: 0 15px 0 0;"></year-month-select>
  10. <el-button
  11. type="primary"
  12. size="small"
  13. @click="handleReady"
  14. >
  15. 读取数据
  16. </el-button>
  17. <el-button
  18. type="warning"
  19. size="small"
  20. plain
  21. icon="el-icon-download"
  22. @click="handleExport"
  23. >
  24. 导出
  25. </el-button>
  26. </div>
  27. <table>
  28. <tbody>
  29. <tr>
  30. <td colspan="7" align="center">
  31. <h4 style="margin: 6px 0;">税收优惠基本信息</h4>
  32. </td>
  33. </tr>
  34. <tr>
  35. <td width="30px" align="center">1</td>
  36. <td width="23%" align="center" rowspan="3">企业主要产品(服务)及特殊收入支持作用的技术所属范围</td>
  37. <td rowspan="3" width="30%" align="center">国家重点支持的高新技术领域</td>
  38. <td colspan="3">一级领域</td>
  39. <td width="12%" align="center">{{ formData.d1 }}</td>
  40. </tr>
  41. <tr>
  42. <td width="30px" align="center">2</td>
  43. <td colspan="3">二级领域</td>
  44. <td align="center">{{ formData.d2 }}</td>
  45. </tr>
  46. <tr>
  47. <td width="30px" align="center">3</td>
  48. <td colspan="3">三级领域</td>
  49. <td align="center">{{ formData.d3 }}</td>
  50. </tr>
  51. <tr>
  52. <td colspan="7" align="center">
  53. <h4 style="margin: 3px 0;">税收优惠有关情况</h4>
  54. </td>
  55. </tr>
  56. <tr>
  57. <td width="30px" align="center">4</td>
  58. <td rowspan="7" align="center">收入指标</td>
  59. <td colspan="4">一、本年高新技术产品(服务)收入</td>
  60. <td align="center">{{ formData.d4 }}</td>
  61. </tr>
  62. <tr>
  63. <td width="30px" align="center">5</td>
  64. <td colspan="4" style="padding-left: 30px;">其中:产品(服务)收入</td>
  65. <td>
  66. <input placeholder="请输入" type="number" v-model="formData.d5" />
  67. </td>
  68. </tr>
  69. <tr>
  70. <td width="30px" align="center">6</td>
  71. <td colspan="4" style="padding-left: 60px;">技术性收入</td>
  72. <td>
  73. <input placeholder="请输入" type="number" v-model="formData.d6" />
  74. </td>
  75. </tr>
  76. <tr>
  77. <td width="30px" align="center">7</td>
  78. <td colspan="4">二、本年企业总收入</td>
  79. <td align="center">{{ formData.d7 }}</td>
  80. </tr>
  81. <tr>
  82. <td width="30px" align="center">8</td>
  83. <td colspan="4" style="padding-left: 30px;">其中:收入总额</td>
  84. <td align="center">
  85. <input placeholder="请输入" type="number" v-model="formData.d8" />
  86. </td>
  87. </tr>
  88. <tr>
  89. <td width="30px" align="center">9</td>
  90. <td colspan="4" style="padding-left: 60px;">不征税收入</td>
  91. <td>
  92. <input placeholder="请输入" type="number" v-model="formData.d9" />
  93. </td>
  94. </tr>
  95. <tr>
  96. <td width="30px" align="center">10</td>
  97. <td colspan="4">三、本年高新技术产品(服务)收入占企业总收入的比例</td>
  98. <td align="center">{{ formData.d10 }}</td>
  99. </tr>
  100. <tr>
  101. <td width="30px" align="center">11</td>
  102. <td rowspan="3" align="center">人员指标</td>
  103. <td colspan="4">四、本年科技人员数</td>
  104. <td align="center">{{ formData.d11 }}</td>
  105. </tr>
  106. <tr>
  107. <td width="30px" align="center">12</td>
  108. <td colspan="4">五、本年职工总数</td>
  109. <td>
  110. <input placeholder="请输入" type="number" v-model="formData.d12" />
  111. </td>
  112. </tr>
  113. <tr>
  114. <td width="30px" align="center">13</td>
  115. <td colspan="4">六、本年科技人员占企业当年职工总数的比例</td>
  116. <td align="center">{{ formData.d13 }}</td>
  117. </tr>
  118. <tr>
  119. <td width="30px" align="center" rowspan="2">14</td>
  120. <td rowspan="17" align="center">研发费用指标</td>
  121. <td rowspan="2" style="padding-left: 30px;">高新研发费用归集年度</td>
  122. <td align="center">本年度</td>
  123. <td align="center">前一年度</td>
  124. <td align="center">前二年度</td>
  125. <td align="center">合计</td>
  126. </tr>
  127. <tr>
  128. <td align="center">1</td>
  129. <td align="center">2</td>
  130. <td align="center">3</td>
  131. <td align="center">4</td>
  132. </tr>
  133. <tr>
  134. <td width="30px" align="center">15</td>
  135. <td>七、归集的高新研发费用金额</td>
  136. <td align="center">{{ formData.d15_1 }}</td>
  137. <td align="center">{{ formData.d15_2 }}</td>
  138. <td align="center">{{ formData.d15_3 }}</td>
  139. <td align="center">{{ formData.d15_4 }}</td>
  140. </tr>
  141. <tr>
  142. <td width="30px" align="center">16</td>
  143. <td>(一)内部研究开发投入</td>
  144. <td align="center">{{ formData.d16_1 }}</td>
  145. <td align="center">{{ formData.d16_2 }}</td>
  146. <td align="center">{{ formData.d16_3 }}</td>
  147. <td align="center">{{ formData.d16_4 }}</td>
  148. </tr>
  149. <tr>
  150. <td width="30px" align="center">17</td>
  151. <td style="padding-left: 60px;">1.人员人工费用</td>
  152. <td align="center">{{ formData.d17_1 }}</td>
  153. <td align="center">{{ formData.d17_2 }}</td>
  154. <td align="center">{{ formData.d17_3 }}</td>
  155. <td align="center">{{ formData.d17_4 }}</td>
  156. </tr>
  157. <tr>
  158. <td width="30px" align="center">18</td>
  159. <td style="padding-left: 60px;">2.直接投入费用</td>
  160. <td align="center">{{ formData.d18_1 }}</td>
  161. <td align="center">{{ formData.d18_2 }}</td>
  162. <td align="center">{{ formData.d18_3 }}</td>
  163. <td align="center">{{ formData.d18_4 }}</td>
  164. </tr>
  165. <tr>
  166. <td width="30px" align="center">19</td>
  167. <td style="padding-left: 60px;">3.折旧费用与长期待摊费用</td>
  168. <td align="center">{{ formData.d19_1 }}</td>
  169. <td align="center">{{ formData.d19_2 }}</td>
  170. <td align="center">{{ formData.d19_3 }}</td>
  171. <td align="center">{{ formData.d19_4 }}</td>
  172. </tr>
  173. <tr>
  174. <td width="30px" align="center">20</td>
  175. <td style="padding-left: 60px;">4.无形资产摊销费用</td>
  176. <td align="center">{{ formData.d20_1 }}</td>
  177. <td align="center">{{ formData.d20_2 }}</td>
  178. <td align="center">{{ formData.d20_3 }}</td>
  179. <td align="center">{{ formData.d20_4 }}</td>
  180. </tr>
  181. <tr>
  182. <td width="30px" align="center">21</td>
  183. <td style="padding-left: 60px;">5.设计费用</td>
  184. <td align="center">{{ formData.d21_1 }}</td>
  185. <td align="center">{{ formData.d21_2 }}</td>
  186. <td align="center">{{ formData.d21_3 }}</td>
  187. <td align="center">{{ formData.d21_4 }}</td>
  188. </tr>
  189. <tr>
  190. <td width="30px" align="center">22</td>
  191. <td style="padding-left: 60px;">6.设备调试费与实验费用</td>
  192. <td align="center">{{ formData.d22_1 }}</td>
  193. <td align="center">{{ formData.d22_2 }}</td>
  194. <td align="center">{{ formData.d22_3 }}</td>
  195. <td align="center">{{ formData.d22_4 }}</td>
  196. </tr>
  197. <tr>
  198. <td width="30px" align="center">23</td>
  199. <td style="padding-left: 60px;">7.其他费用</td>
  200. <td align="center">{{ formData.d23_1 }}</td>
  201. <td align="center">{{ formData.d23_2 }}</td>
  202. <td align="center">{{ formData.d23_3 }}</td>
  203. <td align="center">{{ formData.d23_4 }}</td>
  204. </tr>
  205. <tr>
  206. <td width="30px" align="center">24</td>
  207. <td style="padding-left: 60px;">其中:可计入研发费用的其他费用</td>
  208. <td align="center">{{ formData.d24_1 }}</td>
  209. <td align="center">{{ formData.d24_2 }}</td>
  210. <td align="center">{{ formData.d24_3 }}</td>
  211. <td align="center">{{ formData.d24_4 }}</td>
  212. </tr>
  213. <tr>
  214. <td width="30px" align="center">25</td>
  215. <td>(二)委托外部研发费用</td>
  216. <td align="center">{{ formData.d25_1 }}</td>
  217. <td align="center">{{ formData.d25_2 }}</td>
  218. <td align="center">{{ formData.d25_3 }}</td>
  219. <td align="center">{{ formData.d25_4 }}</td>
  220. </tr>
  221. <tr>
  222. <td width="30px" align="center">26</td>
  223. <td style="padding-left: 60px;">1.境内的外部研发费</td>
  224. <td align="center">{{ formData.d26_1 }}</td>
  225. <td align="center">{{ formData.d26_2 }}</td>
  226. <td align="center">{{ formData.d26_3 }}</td>
  227. <td align="center">{{ formData.d26_4 }}</td>
  228. </tr>
  229. <tr>
  230. <td width="30px" align="center">27</td>
  231. <td style="padding-left: 60px;">2.境外的外部研发费</td>
  232. <td align="center">{{ formData.d27_1 }}</td>
  233. <td align="center">{{ formData.d27_2 }}</td>
  234. <td align="center">{{ formData.d27_3 }}</td>
  235. <td align="center">{{ formData.d27_4 }}</td>
  236. </tr>
  237. <tr>
  238. <td width="30px" align="center">28</td>
  239. <td style="padding-left: 60px;">其中:可计入研发费用的境外的外部研发费</td>
  240. <td align="center">{{ formData.d28_1 }}</td>
  241. <td align="center">{{ formData.d28_2 }}</td>
  242. <td align="center">{{ formData.d28_3 }}</td>
  243. <td align="center">{{ formData.d28_4 }}</td>
  244. </tr>
  245. <tr>
  246. <td width="30px" align="center">29</td>
  247. <td>八、销售(营业)收入</td>
  248. <td align="center"><input placeholder="请输入" type="number" v-model="formData.d29_1" /></td>
  249. <td align="center"><input placeholder="请输入" type="number" v-model="formData.d29_2" /></td>
  250. <td align="center"><input placeholder="请输入" type="number" v-model="formData.d29_3" /></td>
  251. <td align="center">{{ formData.d29_4 }}</td>
  252. </tr>
  253. <tr>
  254. <td width="30px" align="center">30</td>
  255. <td rowspan="3" align="center">税收优惠</td>
  256. <td colspan="4">九、三年研发费用占销售(营业)收入的比例</td>
  257. <td align="center">{{ formData.d30 }}</td>
  258. </tr>
  259. <tr>
  260. <td width="30px" align="center">31</td>
  261. <td colspan="4">十、国家需要重点扶持的高新技术企业减征企业所得税</td>
  262. <td align="center"><input placeholder="请输入" type="number" v-model="formData.d31" /></td>
  263. </tr>
  264. <tr>
  265. <td width="30px" align="center">32</td>
  266. <td colspan="4">十一、经济特区和上海浦东新区新设立的高新技术企业定期减免税额</td>
  267. <td align="center"><input placeholder="请输入" type="number" v-model="formData.d32" /></td>
  268. </tr>
  269. </tbody>
  270. </table>
  271. </div>
  272. </basic-container>
  273. </template>
  274. <script>
  275. import { getList, update } from "@/api/externalReports/highCompDiscountDetails";
  276. import moment from "moment";
  277. import yearMonthSelect from "@/components/year-month-select";
  278. import { HIGH_TECH_FIELDS } from "@/config/dict";
  279. import { exportBlob } from "@/api/common";
  280. import { getToken } from "@/util/auth";
  281. import { downloadXls } from "@/util/util";
  282. import { mapGetters } from "vuex";
  283. export default {
  284. components: {
  285. yearMonthSelect,
  286. },
  287. data() {
  288. return {
  289. isLoad: false,
  290. loading: false,
  291. confirmLoading: false,
  292. year: "",
  293. formData: {}
  294. };
  295. },
  296. computed: {
  297. ...mapGetters(['tag']),
  298. pageTitle() {
  299. let yearCN = this.year ? moment(this.year).format('yyyy年') : '';
  300. return `${yearCN}${this.tag.label}`
  301. }
  302. },
  303. methods: {
  304. handleReady() {
  305. this.getData();
  306. },
  307. // 转译高新领域
  308. formatHighTechField(id) {
  309. return this.findLabelById(HIGH_TECH_FIELDS, id);
  310. },
  311. findLabelById(tree, targetId) {
  312. // 遍历当前层级的节点
  313. for (const node of tree) {
  314. // 如果找到目标ID,返回对应的label
  315. if (node.value == targetId) {
  316. return node.label;
  317. }
  318. // 如果有子节点,递归查找
  319. if (node.children && node.children.length > 0) {
  320. const result = this.findLabelById(node.children, targetId);
  321. if (result) {
  322. return result;
  323. }
  324. }
  325. }
  326. // 如果没有找到,返回null或undefined
  327. return null;
  328. },
  329. getData() {
  330. this.loading = true;
  331. getList({ year: this.year }).then(({ data }) => {
  332. this.loading = false;
  333. if (data.code == 200) {
  334. this.isLoad = true;
  335. this.formData = data.data;
  336. }
  337. }).catch(() => {
  338. this.loading = false;
  339. });
  340. },
  341. handleSaveBtn() {
  342. if (!this.isLoad) {
  343. this.$message.error("请读取页面数据,再保存!");
  344. return;
  345. }
  346. this.confirmLoading = true;
  347. let params = {
  348. yearAndMonth: this.year,
  349. d5: this.formData.d5,
  350. d6: this.formData.d6,
  351. d8: this.formData.d8,
  352. d9: this.formData.d9,
  353. d12: this.formData.d12,
  354. d29_1: this.formData.d29_1,
  355. d29_2: this.formData.d29_2,
  356. d29_3: this.formData.d29_3,
  357. d31: this.formData.d31,
  358. d32: this.formData.d32,
  359. };
  360. update(params).then(({ data }) => {
  361. this.confirmLoading = false;
  362. if (data.code == 200) {
  363. this.$message.success('保存成功!');
  364. this.getData();
  365. }
  366. }).catch(err => {
  367. this.confirmLoading = false;
  368. });
  369. },
  370. handleExport() {
  371. exportBlob(
  372. `/api/kd-scientific/gxjsqyyhqkjmxb/export?${
  373. this.website.tokenHeader
  374. }=${getToken()}`,
  375. { year: this.year }
  376. ).then((res) => {
  377. downloadXls(
  378. res.data,
  379. `${this.pageTitle}.xlsx`
  380. );
  381. });
  382. },
  383. },
  384. };
  385. </script>
  386. <style lang="scss" scoped>
  387. .btn-wrap {
  388. position: fixed;
  389. right: 90px;
  390. bottom: 60px;
  391. ::v-deep .el-button {
  392. width: 86px;
  393. height: 86px;
  394. text-align: left;
  395. border-radius: 100%;
  396. font-weight: 600;
  397. box-shadow: 0 0 12px #888;
  398. box-sizing: border-box;
  399. }
  400. }
  401. .page-title {
  402. text-align: center;
  403. font-size: 24px;
  404. }
  405. .doc-page {
  406. width: 900px;
  407. margin: 30px auto;
  408. }
  409. table {
  410. width: 100%;
  411. border: 1px solid #333;
  412. }
  413. .doc-label {
  414. text-align: center;
  415. padding: 6px;
  416. color: #777;
  417. font-size: 14px;
  418. width: 15%;
  419. }
  420. .doc-input {
  421. text-align: center;
  422. color: #333;
  423. width: 35%;
  424. }
  425. .el-input__inner {
  426. border: none;
  427. }
  428. tr td {
  429. border: 1px solid #333;
  430. padding: 9px 3px;
  431. font-size: 14px;
  432. color: #666;
  433. input {
  434. border: none;
  435. width: 100%;
  436. box-sizing: border-box;
  437. text-align: center;
  438. color: blue;
  439. padding-left: 17px;
  440. }
  441. }
  442. </style>