index.vue 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. <template>
  2. <HcCard>
  3. <template #header>
  4. <div class="w-36">
  5. <el-select v-model="searchForm.projectType" block clearable placeholder="收款人" size="large">
  6. <el-option v-for="item in projectType" :label="item.name" :value="item.key"/>
  7. </el-select>
  8. </div>
  9. <div class="w-72 ml-2">
  10. <el-select v-model="searchForm.projectType" block clearable placeholder="项目名称" size="large">
  11. <el-option v-for="item in projectType" :label="item.name" :value="item.key"/>
  12. </el-select>
  13. </div>
  14. <div class="ml-4">
  15. <el-button type="primary" @click="searchClick" size="large">
  16. <HcIcon name="search-2"/>
  17. <span>搜索</span>
  18. </el-button>
  19. </div>
  20. <div class="ml-2">
  21. <el-button size="large" @click="resetClick">
  22. <HcIcon name="close-circle"/>
  23. <span>重置</span>
  24. </el-button>
  25. </div>
  26. </template>
  27. <template #extra>
  28. <el-button size="large" type="warning" hc-btn @click="draftsClick">
  29. <HcIcon name="draft"/>
  30. <span>草稿箱(1)</span>
  31. </el-button>
  32. <el-button size="large" type="primary" hc-btn @click="addRowClick">
  33. <HcIcon name="add"/>
  34. <span>新增支付记录</span>
  35. </el-button>
  36. </template>
  37. <HcTable :column="tableColumn" :datas="tableData" :loading="tableLoading">
  38. <template #key="{row}">
  39. <span class="text-blue" @click="rowNameTap(row)">{{row.key}}</span>
  40. </template>
  41. <template #action="{row,index}">
  42. <el-button size="small" type="primary">撤销</el-button>
  43. </template>
  44. </HcTable>
  45. <template #action>
  46. <HcPages :pages="searchForm" @change="pageChange"/>
  47. </template>
  48. <!--草稿箱-->
  49. <HcDialog bgColor="#ffffff" isToBody isTable :footer="false" :show="draftsModal" title="草稿箱(1)" widths="62rem" @close="draftsCloseClick">
  50. <el-alert title="3个月内未更新的草稿将被自动删除" type="warning" show-icon />
  51. <div style="position: relative;height: calc(100% - 44px);">
  52. <HcTable :isIndex="false" :column="tableDraftsColumn" :datas="tableDraftsData">
  53. <template #action="{row,index}">
  54. <el-button size="small" type="primary">继续编辑</el-button>
  55. <el-button size="small" type="danger">删除</el-button>
  56. </template>
  57. </HcTable>
  58. </div>
  59. </HcDialog>
  60. </HcCard>
  61. </template>
  62. <script setup>
  63. import {ref} from "vue";
  64. import {useRouter} from 'vue-router'
  65. const router = useRouter()
  66. //项目类型
  67. const projectType = ref([
  68. {name: '二级路', key: '二级路'},
  69. {name: '国道', key: '国道'},
  70. {name: '水利水电', key: '水利水电'},
  71. {name: '市政', key: '市政'},
  72. ])
  73. //搜索表单
  74. const searchForm = ref({
  75. projectType: null, user: null, project: null,
  76. current: 1, size: 20, total: 0
  77. })
  78. //搜索
  79. const searchClick = () => {
  80. searchForm.value.current = 1;
  81. getTableData()
  82. }
  83. //重置搜索表单
  84. const resetClick = () => {
  85. searchForm.value = {current: 1, size: 20, total: 0}
  86. }
  87. //分页被点击
  88. const pageChange = ({current, size}) => {
  89. searchForm.value.current = current
  90. searchForm.value.size = size
  91. getTableData()
  92. }
  93. //获取数据
  94. const tableLoading = ref(false)
  95. const tableColumn = [
  96. {key: 'key1', name: '申请时间', minWidth: '160'},
  97. {key: 'key2', name: '收款人', minWidth: '160'},
  98. {key: 'key3', name: '收款金额', width: '160', align: 'center'},
  99. {key: 'key4', name: '收款用途', width: '160', align: 'center'},
  100. {key: 'key5', name: '审批结果', width: '160', align: 'center'},
  101. {key: 'key6', name: '审批状态', width: '140', align: 'center'},
  102. {key: 'key7', name: '报销时间', width: '160', align: 'center'},
  103. {key: 'key8', name: '创建人', width: '140', align: 'center'},
  104. {key: 'key9', name: '创建时间', width: '160', align: 'center'},
  105. {key: 'action', name: '操作', width: '90', align: 'center', fixed: 'right'},
  106. ]
  107. const tableData = ref([
  108. {id: 1, key: 'YS-01', key1: 'xxxx', key2: 'xxxx', key3: '65632', key4: '35654', key5: '12312', key6: 'xxxx'},
  109. {id: 2, key: 'YS-01', key1: 'xxxx', key2: 'xxxx', key3: '65632', key4: '35654', key5: '12312', key6: 'xxxx'},
  110. {id: 3, key: 'YS-01', key1: 'xxxx', key2: 'xxxx', key3: '65632', key4: '35654', key5: '12312', key6: 'xxxx'},
  111. {id: 4, key: 'YS-01', key1: 'xxxx', key2: 'xxxx', key3: '65632', key4: '35654', key5: '12312', key6: 'xxxx'},
  112. {id: 5, key: 'YS-01', key1: 'xxxx', key2: 'xxxx', key3: '65632', key4: '35654', key5: '12312', key6: 'xxxx'},
  113. {id: 6, key: 'YS-01', key1: 'xxxx', key2: 'xxxx', key3: '65632', key4: '35654', key5: '12312', key6: 'xxxx'},
  114. ])
  115. const getTableData = () => {
  116. }
  117. //预览
  118. const rowNameTap = (row) => {
  119. }
  120. //新增
  121. const addRowClick = () => {
  122. router.push({
  123. name: 'expense-paymentRequest-record'
  124. })
  125. }
  126. //草稿箱
  127. const draftsModal = ref(false)
  128. const draftsClick = () => {
  129. draftsModal.value = true
  130. }
  131. const draftsCloseClick = () => {
  132. draftsModal.value = false
  133. }
  134. //草稿箱数据
  135. const tableDraftsColumn = [
  136. {key: 'key1', name: '标题'},
  137. {key: 'key2', name: '更新时间', width: '200'},
  138. {key: 'action', name: '操作', width: '170', align: 'center'},
  139. ]
  140. const tableDraftsData = ref([{id: 1, key1: 'xxxx', key2: 'xxxx'}, {id: 2, key1: 'xxxx', key2: 'xxxx'}, {id: 3, key1: 'xxxx', key2: 'xxxx'}])
  141. </script>