index.vue 5.2 KB

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