borrowing.vue 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835
  1. <template>
  2. <div class="gva-table-box">
  3. <el-tabs
  4. v-model="activeName"
  5. class="demo-tabs"
  6. >
  7. <el-tab-pane
  8. label="报销"
  9. name="first"
  10. >
  11. <el-header>
  12. <el-row>
  13. <el-col :span="20">
  14. <el-form inline>
  15. <el-form-item label="名称">
  16. <el-input v-model="searchDailyExpenses.name" />
  17. </el-form-item>
  18. <el-form-item label="时间">
  19. <el-date-picker
  20. v-model="searchDailyExpenses.time"
  21. type="date"
  22. placeholder="选择日期"
  23. format="YYYY-MM-DD"
  24. value-format="YYYY-MM-DD"
  25. />
  26. </el-form-item>
  27. <el-form-item label="类型">
  28. <el-select
  29. v-model.number="searchDailyExpenses.state"
  30. placeholder="查询"
  31. style="width: 115px"
  32. clearable
  33. filterable
  34. >
  35. <el-option
  36. v-for="item in feeGenre"
  37. :key="item.ID"
  38. :label="item.name"
  39. :value="item.ID"
  40. />
  41. </el-select>
  42. </el-form-item>
  43. <el-form-item>
  44. <el-button
  45. type="primary"
  46. @click="queryData"
  47. >查询</el-button>
  48. </el-form-item>
  49. </el-form>
  50. </el-col>
  51. <el-col :span="4">
  52. <el-button @click="openFeeGenre = true">费用类型</el-button>
  53. <el-button @click="dailyExpensesOpen">新增记录</el-button>
  54. </el-col>
  55. </el-row>
  56. </el-header>
  57. <el-main>
  58. <el-table :data="dailyExpensesTable">
  59. <el-table-column
  60. prop="name"
  61. label="名称"
  62. >
  63. <template #default="scope">
  64. <el-button
  65. type="primary"
  66. link
  67. @click="expensesDetailsData(scope.row)"
  68. >{{ scope.row.name }}</el-button>
  69. </template>
  70. </el-table-column>
  71. <el-table-column
  72. prop="expensesGenre.name"
  73. label="费用类型"
  74. />
  75. <el-table-column
  76. prop="applicant"
  77. label="申请人"
  78. />
  79. <el-table-column
  80. prop="user.nickName"
  81. label="负责人"
  82. />
  83. <el-table-column
  84. prop="totalAmount"
  85. label="报销总金额"
  86. />
  87. <el-table-column
  88. prop="applicationTime"
  89. label="申请日期"
  90. />
  91. </el-table>
  92. <div class="gva-pagination">
  93. <el-pagination
  94. :current-page="searchDailyExpenses.pageInfo.page"
  95. :page-size="searchDailyExpenses.pageInfo.pageSize"
  96. :page-sizes="[10, 30, 50, 100]"
  97. :total="dailyExpensesTotal"
  98. layout="total, sizes, prev, pager, next, jumper"
  99. @current-change="dailyExpensesCurrentChange"
  100. @size-change="dailyExpensesSizeChange"
  101. />
  102. </div>
  103. <!-- 新增-->
  104. <el-drawer
  105. v-model="openDailyExpenses"
  106. title="报销记录"
  107. direction="rtl"
  108. size="50%"
  109. >
  110. <el-form
  111. label-width="auto"
  112. style="max-width: 900px"
  113. >
  114. <el-form-item label="名称">
  115. <el-input
  116. v-model="dailyExpensesData.name"
  117. style="width: 300px"
  118. />
  119. </el-form-item>
  120. <el-form-item label="费用类型">
  121. <el-select v-model="dailyExpensesData.genre">
  122. <el-option
  123. v-for="item in feeGenre"
  124. :key="item.ID"
  125. :label="item.name"
  126. :value="item.ID"
  127. />
  128. </el-select>
  129. </el-form-item>
  130. <el-form-item label="申请人">
  131. <el-input
  132. v-model="dailyExpensesData.applicant"
  133. style="width: 300px"
  134. />
  135. </el-form-item>
  136. <el-form-item label="申请时间">
  137. <el-date-picker
  138. v-model="dailyExpensesData.applicationTime"
  139. type="date"
  140. placeholder="选择日期"
  141. value-format="YYYY-MM-DD"
  142. />
  143. </el-form-item>
  144. <el-form-item label="负责人">
  145. <el-select v-model="dailyExpensesData.charge">
  146. <el-option
  147. v-for="item in users"
  148. :key="item.ID"
  149. :label="item.nickName"
  150. :value="item.ID"
  151. />
  152. </el-select>
  153. </el-form-item>
  154. <el-form-item label="总金额">
  155. <el-input-number
  156. v-model="dailyExpensesData.totalAmount"
  157. style="width: 300px"
  158. :precision="2"
  159. disabled
  160. />
  161. </el-form-item>
  162. <el-form-item>
  163. <el-table
  164. :data="dailyExpensesData.dailyFeeDetails"
  165. row-key="id"
  166. >
  167. <el-table-column
  168. label="序号"
  169. property="id"
  170. prop="id"
  171. />
  172. <el-table-column
  173. property="illustrate"
  174. label="费用说明"
  175. >
  176. <template #default="scope">
  177. <el-input
  178. v-model="scope.row.illustrate"
  179. type="textarea"
  180. maxlength="100"
  181. show-word-limit
  182. />
  183. </template>
  184. </el-table-column>
  185. <el-table-column
  186. property="price"
  187. label="报销金额"
  188. >
  189. <template #default="scope">
  190. <el-input-number
  191. v-model.number="scope.row.price"
  192. :precision="2"
  193. :min="0"
  194. @change="sumExpenses"
  195. />
  196. </template>
  197. </el-table-column>
  198. <el-table-column
  199. property="feeTime"
  200. label="日期"
  201. >
  202. <template #default="scope">
  203. <el-date-picker
  204. v-model="scope.row.feeTime"
  205. type="date"
  206. placeholder="选择日期"
  207. value-format="YYYY-MM-DD"
  208. />
  209. </template>
  210. </el-table-column>
  211. <el-table-column
  212. label="操作"
  213. >
  214. <template #default="scope">
  215. <el-button
  216. @click="handleDelete(scope.row.id)"
  217. >删除</el-button>
  218. </template>
  219. </el-table-column>
  220. </el-table>
  221. </el-form-item>
  222. <el-form-item>
  223. <el-button
  224. type="success"
  225. @click="addLineData"
  226. >添加一行</el-button>
  227. </el-form-item>
  228. </el-form>
  229. <template #footer>
  230. <div style="flex: auto">
  231. <el-button
  232. type="warning"
  233. @click="erasureDailyExpenses"
  234. >删除</el-button>
  235. <el-button @click="openDailyExpenses = false">取消</el-button>
  236. <el-button
  237. type="primary"
  238. @click="saveDailyExpenses"
  239. >保存</el-button>
  240. </div>
  241. </template>
  242. </el-drawer>
  243. <!-- 费用类型-->
  244. <el-dialog
  245. v-model="openFeeGenre"
  246. title="费用类型"
  247. width="800"
  248. align-center
  249. >
  250. <el-collapse v-model="activeNames">
  251. <el-collapse-item
  252. title="操作"
  253. name="1"
  254. >
  255. <el-form>
  256. <el-form-item label="施工人员">
  257. <el-input
  258. v-model="feeGenreData.name"
  259. style="width: 400px"
  260. >
  261. <template #prepend>
  262. <el-select
  263. v-model="feeGenreData.id"
  264. placeholder="查询"
  265. style="width: 115px"
  266. clearable
  267. filterable
  268. >
  269. <el-option
  270. v-for="item in feeGenre"
  271. :key="item.ID"
  272. :label="item.name"
  273. :value="item.ID"
  274. />
  275. </el-select>
  276. </template>
  277. <template #append>
  278. <el-button @click="erasureFeeGenre">删除</el-button>
  279. </template>
  280. </el-input>
  281. </el-form-item>
  282. <el-form-item>
  283. <el-button @click="saveFeeGenre">保存</el-button>
  284. </el-form-item>
  285. </el-form>
  286. </el-collapse-item>
  287. <el-collapse-item
  288. title="列表"
  289. name="2"
  290. >
  291. <div>
  292. <el-table :data="feeGenre">
  293. <el-table-column
  294. prop="ID"
  295. label="编号"
  296. />
  297. <el-table-column
  298. prop="name"
  299. label="姓名"
  300. />
  301. </el-table>
  302. </div>
  303. </el-collapse-item>
  304. </el-collapse>
  305. <template #footer>
  306. <div class="dialog-footer">
  307. <el-button @click="openFeeGenre = false">取消</el-button>
  308. <el-button
  309. type="primary"
  310. @click="openFeeGenre = false"
  311. >
  312. 确定
  313. </el-button>
  314. </div>
  315. </template>
  316. </el-dialog>
  317. </el-main>
  318. </el-tab-pane>
  319. <el-tab-pane
  320. label="支借"
  321. name="second"
  322. >
  323. <el-header>
  324. <el-row>
  325. <el-col :span="20">
  326. <el-form inline>
  327. <el-form-item label="名称">
  328. <el-input v-model="searchBorrowing.name" />
  329. </el-form-item>
  330. <el-form-item label="时间">
  331. <el-date-picker
  332. v-model="searchBorrowing.time"
  333. type="date"
  334. placeholder="选择日期"
  335. format="YYYY-MM-DD"
  336. value-format="YYYY-MM-DD"
  337. />
  338. </el-form-item>
  339. <el-form-item>
  340. <el-button
  341. type="primary"
  342. @click="queryData"
  343. >查询</el-button>
  344. </el-form-item>
  345. </el-form>
  346. </el-col>
  347. <el-col :span="4">
  348. <el-button @click="addBorrowing">新增数据</el-button>
  349. </el-col>
  350. </el-row>
  351. </el-header>
  352. <el-main>
  353. <el-table :data="borrowingTable">
  354. <el-table-column
  355. prop="name"
  356. label="名称"
  357. >
  358. <template #default="scope">
  359. <el-button
  360. type="primary"
  361. link
  362. @click="openBorrowing(scope.row)"
  363. >{{ scope.row.name }}</el-button>
  364. </template>
  365. </el-table-column>
  366. <el-table-column
  367. prop="applicant"
  368. label="申请人"
  369. />
  370. <el-table-column
  371. prop="user.nickName"
  372. label="负责人"
  373. />
  374. <el-table-column
  375. prop="price"
  376. label="支借金额"
  377. />
  378. <el-table-column
  379. prop="applicationTime"
  380. label="申请日期"
  381. />
  382. </el-table>
  383. <div class="gva-pagination">
  384. <el-pagination
  385. :current-page="searchBorrowing.pageInfo.page"
  386. :page-size="searchBorrowing.pageInfo.pageSize"
  387. :page-sizes="[10, 30, 50, 100]"
  388. :total="borrowingTotal"
  389. layout="total, sizes, prev, pager, next, jumper"
  390. @current-change="borrowingCurrentChange"
  391. @size-change="borrowingSizeChange"
  392. />
  393. </div>
  394. <el-dialog
  395. v-model="borrowingDialog"
  396. title="详情"
  397. width="500"
  398. align-center
  399. >
  400. <div>
  401. <el-form
  402. label-width="auto"
  403. style="max-width: 400px"
  404. >
  405. <el-form-item label="名称">
  406. <el-input v-model="borrowingData.name" />
  407. </el-form-item>
  408. <el-form-item label="申请人">
  409. <el-input v-model="borrowingData.applicant" />
  410. </el-form-item>
  411. <el-form-item label="申请日期">
  412. <el-date-picker
  413. v-model="borrowingData.applicationTime"
  414. type="date"
  415. placeholder="选择日期"
  416. format="YYYY-MM-DD"
  417. value-format="YYYY-MM-DD"
  418. />
  419. </el-form-item>
  420. <el-form-item label="负责人">
  421. <el-select v-model="borrowingData.charge">
  422. <el-option
  423. v-for="item in users"
  424. :key="item.ID"
  425. :label="item.nickName"
  426. :value="item.ID"
  427. />
  428. </el-select>
  429. </el-form-item>
  430. <el-form-item label="支借金额">
  431. <el-input-number
  432. v-model="borrowingData.price"
  433. :min="0.00"
  434. :precision="2"
  435. />
  436. </el-form-item>
  437. </el-form>
  438. </div>
  439. <template #footer>
  440. <div class="dialog-footer">
  441. <el-button
  442. type="warning"
  443. @click="erasureBorrowing"
  444. >删除</el-button>
  445. <el-button @click="borrowingDialog = false">取消</el-button>
  446. <el-button
  447. type="primary"
  448. @click="saveBorrowing"
  449. >
  450. 保存
  451. </el-button>
  452. </div>
  453. </template>
  454. </el-dialog>
  455. </el-main>
  456. </el-tab-pane>
  457. </el-tabs>
  458. </div>
  459. </template>
  460. <script setup>
  461. import { onMounted, ref } from 'vue'
  462. import { ElMessage, ElMessageBox } from 'element-plus'
  463. import {
  464. createBorrowing, createConstructor,
  465. createDailyExpenses, createFeeGenre, deleteBorrowing, deleteConstructor,
  466. deleteDailyExpenses, deleteFeeGenre, queryBorrowingList,
  467. queryDailyExpensesList,
  468. queryExpensesGenre, updateBorrowing, updateConstructor,
  469. updateDailyExpenses, updateFeeGenre
  470. } from '@/api/finance'
  471. import { getAllUsers } from '@/api/user'
  472. // 数据初始化
  473. const feeGenre = ref()
  474. const users = ref()
  475. const dailyExpensesTable = ref()
  476. const dailyExpensesTotal = ref(0)
  477. const searchDailyExpenses = ref({
  478. pageInfo: {
  479. page: 1,
  480. pageSize: 10
  481. },
  482. name: '',
  483. time: '',
  484. state: null
  485. })
  486. // 分页
  487. const dailyExpensesSizeChange = (val) => {
  488. searchDailyExpenses.value.pageInfo.pageSize = val
  489. queryData()
  490. }
  491. const dailyExpensesCurrentChange = (val) => {
  492. searchDailyExpenses.value.pageInfo.page = val
  493. queryData()
  494. }
  495. const borrowingTable = ref()
  496. const borrowingTotal = ref(0)
  497. const searchBorrowing = ref({
  498. pageInfo: {
  499. page: 1,
  500. pageSize: 10
  501. },
  502. name: '',
  503. time: ''
  504. })
  505. // 分页
  506. const borrowingSizeChange = (val) => {
  507. searchBorrowing.value.pageInfo.pageSize = val
  508. queryData()
  509. }
  510. const borrowingCurrentChange = (val) => {
  511. searchBorrowing.value.pageInfo.page = val
  512. queryData()
  513. }
  514. const queryData = async() => {
  515. if (searchDailyExpenses.value.state === '') {
  516. searchDailyExpenses.value.state = null
  517. }
  518. await queryExpensesGenre().then(res => {
  519. console.log(res.data)
  520. feeGenre.value = res.data
  521. })
  522. await getAllUsers().then(res => {
  523. users.value = res.data
  524. })
  525. await queryDailyExpensesList(searchDailyExpenses.value).then(res => {
  526. dailyExpensesTable.value = res.data.list
  527. searchDailyExpenses.value.pageInfo.page = res.data.page
  528. searchDailyExpenses.value.pageInfo.pageSize = res.data.pageSize
  529. dailyExpensesTotal.value = res.data.total
  530. })
  531. await queryBorrowingList(searchBorrowing.value).then(res => {
  532. console.log(res)
  533. borrowingTable.value = res.data.list
  534. searchBorrowing.value.pageInfo.page = res.data.page
  535. searchBorrowing.value.pageInfo.pageSize = res.data.pageSize
  536. borrowingTotal.value = res.data.total
  537. })
  538. }
  539. const activeName = ref('first')
  540. // 日常报销
  541. const openDailyExpenses = ref(false)
  542. const dailyExpensesOpen = () => {
  543. dailyExpensesData.value = {
  544. name: '',
  545. genre: null,
  546. applicant: '',
  547. applicationTime: '',
  548. charge: null,
  549. totalAmount: 0,
  550. dailyFeeDetails: [{
  551. id: 1,
  552. feeTime: '',
  553. illustrate: '',
  554. price: 0
  555. }]
  556. }
  557. openDailyExpenses.value = true
  558. }
  559. const dailyExpensesData = ref({
  560. name: '',
  561. genre: null,
  562. applicant: '',
  563. applicationTime: '',
  564. charge: null,
  565. totalAmount: 0,
  566. dailyFeeDetails: [{
  567. id: 1,
  568. feeTime: '',
  569. illustrate: '',
  570. price: 0
  571. }]
  572. })
  573. const addLineData = () => {
  574. const newData = {
  575. id: dailyExpensesData.value.dailyFeeDetails.length + 1,
  576. feeTime: '',
  577. illustrate: '',
  578. price: 0
  579. }
  580. dailyExpensesData.value.dailyFeeDetails.push(newData)
  581. }
  582. const handleDelete = (val) => {
  583. ElMessageBox.confirm('确认删除该条数据?', '警告', {
  584. confirmButtonText: '确定',
  585. cancelButtonText: '取消',
  586. type: 'warning',
  587. }).then(() => {
  588. const ds = dailyExpensesData.value.dailyFeeDetails.filter(item => item.id !== val)
  589. for (let i = 0; i < ds.length; i++) {
  590. ds[i].id = i + 1
  591. }
  592. dailyExpensesData.value.dailyFeeDetails = ds
  593. })
  594. }
  595. const sumExpenses = () => {
  596. let sum = 0
  597. for (const key in dailyExpensesData.value.dailyFeeDetails) {
  598. sum += dailyExpensesData.value.dailyFeeDetails[key].price
  599. }
  600. dailyExpensesData.value.totalAmount = sum
  601. }
  602. // 保存
  603. const saveDailyExpenses = async() => {
  604. for (let i = 0; i < dailyExpensesData.value.dailyFeeDetails.length; i++) {
  605. dailyExpensesData.value.dailyFeeDetails[i].id = null
  606. }
  607. const dd = dailyExpensesData.value
  608. // 校验
  609. if (dd.name === '' || dd.genre == null || dd.charge == null || dd.applicationTime === '' || dd.applicant === '') {
  610. ElMessage.error('请将数据填写完整')
  611. return false
  612. }
  613. if (dd.ID === null || dd.ID === '' || dd.ID === undefined) {
  614. await createDailyExpenses(dd).then(res => {
  615. if (res.code === 0) {
  616. ElMessage.success('新增成功')
  617. queryData()
  618. openDailyExpenses.value = false
  619. }
  620. })
  621. } else {
  622. await updateDailyExpenses(dd).then(res => {
  623. if (res.code === 0) {
  624. ElMessage.success('修改成功')
  625. queryData()
  626. openDailyExpenses.value = false
  627. }
  628. })
  629. }
  630. }
  631. // 详情
  632. const expensesDetailsData = (val) => {
  633. console.log(val)
  634. dailyExpensesData.value = val
  635. openDailyExpenses.value = true
  636. }
  637. // 删除
  638. const erasureDailyExpenses = async() => {
  639. for (let i = 0; i < dailyExpensesData.value.dailyFeeDetails.length; i++) {
  640. dailyExpensesData.value.dailyFeeDetails[i].id = null
  641. }
  642. const dd = dailyExpensesData.value
  643. ElMessageBox.confirm(
  644. '确定进行删除操作吗?',
  645. '删除',
  646. {
  647. confirmButtonText: '确定',
  648. cancelButtonText: '取消',
  649. type: 'warning',
  650. }
  651. )
  652. .then(async() => {
  653. await deleteDailyExpenses(dd).then(res => {
  654. console.log(res)
  655. if (res.code === 0) {
  656. ElMessage.success('删除成功')
  657. queryData()
  658. openDailyExpenses.value = false
  659. }
  660. })
  661. }).catch(() => {
  662. ElMessage.info('删除取消')
  663. })
  664. }
  665. // 支借
  666. const borrowingDialog = ref(false)
  667. const borrowingData = ref({
  668. ID: null,
  669. name: '',
  670. applicant: '',
  671. applicationTime: '',
  672. charge: null,
  673. price: 0
  674. })
  675. const openBorrowing = (val) => {
  676. borrowingData.value = val
  677. borrowingDialog.value = true
  678. }
  679. const addBorrowing = () => {
  680. borrowingData.value = {
  681. ID: null,
  682. name: '',
  683. applicant: '',
  684. applicationTime: '',
  685. charge: null,
  686. price: 0
  687. }
  688. borrowingDialog.value = true
  689. }
  690. // 保存
  691. const saveBorrowing = async() => {
  692. const dd = borrowingData.value
  693. // 校验
  694. if (dd.name === '' || dd.charge == null || dd.applicationTime === '' || dd.applicant === '') {
  695. ElMessage.error('请将数据填写完整')
  696. return false
  697. }
  698. if (dd.ID === null || dd.ID === undefined) {
  699. await createBorrowing(dd).then(res => {
  700. if (res.code === 0) {
  701. ElMessage.success('新增成功')
  702. queryData()
  703. borrowingDialog.value = false
  704. }
  705. })
  706. } else {
  707. await updateBorrowing(dd).then(res => {
  708. if (res.code === 0) {
  709. ElMessage.success('修改成功')
  710. queryData()
  711. borrowingDialog.value = false
  712. }
  713. })
  714. }
  715. }
  716. // 删除
  717. const erasureBorrowing = async() => {
  718. const dd = borrowingData.value
  719. console.log(borrowingData.value)
  720. ElMessageBox.confirm(
  721. '确定进行删除操作吗?',
  722. '删除',
  723. {
  724. confirmButtonText: '确定',
  725. cancelButtonText: '取消',
  726. type: 'warning',
  727. }
  728. )
  729. .then(async() => {
  730. await deleteBorrowing(dd).then(res => {
  731. console.log(res)
  732. if (res.code === 0) {
  733. ElMessage.success('删除成功')
  734. queryData()
  735. borrowingDialog.value = false
  736. }
  737. })
  738. }).catch(() => {
  739. ElMessage.info('删除取消')
  740. })
  741. }
  742. // 费用类型
  743. const activeNames = ref(['1'])
  744. const openFeeGenre = ref(false)
  745. const feeGenreData = ref({
  746. id: null,
  747. name: ''
  748. })
  749. const saveFeeGenre = async() => {
  750. if (feeGenreData.value.name === '') {
  751. ElMessage.error('数据不能为空')
  752. return false
  753. }
  754. if (feeGenreData.value.id === null) {
  755. await createFeeGenre(feeGenreData.value).then(res => {
  756. if (res.code === 0) {
  757. ElMessage.success('新增成功')
  758. }
  759. queryData()
  760. })
  761. } else {
  762. await updateFeeGenre(feeGenreData.value).then(res => {
  763. if (res.code === 0) {
  764. ElMessage.success('修改成功')
  765. }
  766. queryData()
  767. })
  768. }
  769. }
  770. // 删除
  771. const erasureFeeGenre = async() => {
  772. if (feeGenreData.value.id === null) {
  773. ElMessage.error('请选择人员')
  774. return false
  775. }
  776. ElMessageBox.confirm(
  777. '确定进行删除操作吗?',
  778. '删除',
  779. {
  780. confirmButtonText: '确定',
  781. cancelButtonText: '取消',
  782. type: 'warning',
  783. }
  784. )
  785. .then(async() => {
  786. await deleteFeeGenre(feeGenreData.value).then(res => {
  787. if (res.code === 0) {
  788. ElMessage.success('删除成功')
  789. }
  790. queryData()
  791. })
  792. })
  793. .catch(() => {
  794. ElMessage({
  795. type: 'info',
  796. message: '取消删除',
  797. })
  798. })
  799. }
  800. onMounted(() => {
  801. queryData()
  802. })
  803. </script>
  804. <style scoped lang="scss">
  805. </style>