system-pay.vue 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. <template>
  2. <hc-new-dialog v-model="isShow" is-table widths="1200px" title="引用系统支付项" :loading="saveLoading" @save="modalSave">
  3. <hc-table
  4. :column="tableColumn" :datas="tableData" :loading="tableLoading"
  5. is-new :check-style="{ width: 29 }" :index-style="{ width: 60 }"
  6. is-check @selection-change="tableCheckChange"
  7. >
  8. <template #isDeduct="{ row }">
  9. <span>{{ row?.isDeduct === 1 ? '是' : '否' }}</span>
  10. </template>
  11. <template #isTotalTerms="{ row }">
  12. <span>{{ row?.isTotalTerms === 1 ? '是' : '否' }}</span>
  13. </template>
  14. </hc-table>
  15. </hc-new-dialog>
  16. </template>
  17. <script setup>
  18. import { ref, watch } from 'vue'
  19. import payApi from '~api/project/debit/project/pay.js'
  20. import { arrToId, getArrValue } from 'js-fast-way'
  21. import { useAppStore } from '~src/store'
  22. const props = defineProps({
  23. ids: {
  24. type: [String, Number],
  25. default: '',
  26. },
  27. })
  28. //事件
  29. const emit = defineEmits(['finish', 'close'])
  30. const useAppState = useAppStore()
  31. const projectId = ref(useAppState.getProjectId)
  32. //双向绑定
  33. // eslint-disable-next-line no-undef
  34. const isShow = defineModel('modelValue', {
  35. default: false,
  36. })
  37. //监听
  38. watch(() => [
  39. props.ids,
  40. ], ([ids]) => {
  41. console.log('ids', ids)
  42. }, { immediate: true })
  43. //监听
  44. watch(isShow, (val) => {
  45. if (val) {
  46. console.log('处理数据')
  47. getTableData()
  48. }
  49. })
  50. //表格数据
  51. const tableLoading = ref(false)
  52. const tableColumn = [
  53. { key: 'payNumber', name: '支付项编号' },
  54. { key: 'payName', name: '支付项名称' },
  55. { key: 'payType', name: '支付项类型' },
  56. { key: 'isDeduct', name: '是否为扣款项' },
  57. { key: 'isTotalTerms', name: '是否合计项' },
  58. { key: 'payApplicableType', name: '适用类型' },
  59. ]
  60. const tableData = ref([])
  61. //获取数据
  62. const getTableData = async () => {
  63. tableLoading.value = true
  64. const { error, code, data } = await payApi.getSyslist({
  65. projectId:projectId.value,
  66. })
  67. tableLoading.value = false
  68. if (!error && code === 200) {
  69. tableData.value = getArrValue(data)
  70. } else {
  71. tableData.value = []
  72. }
  73. }
  74. //表格选择
  75. const selectList = ref([])
  76. const tableCheckChange = (checks) => {
  77. selectList.value = checks
  78. }
  79. const saveLoading = ref(false)
  80. const modalSave = async () => {
  81. saveLoading.value = true
  82. const { error, code, msg } = await payApi.referenced({
  83. projectId:projectId.value,
  84. ids:arrToId(selectList.value),
  85. })
  86. //判断状态
  87. saveLoading.value = false
  88. if (!error && code === 200) {
  89. window?.$message?.success(msg)
  90. }
  91. emit('finish')
  92. }
  93. </script>