record.vue 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  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-40 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="w-48 ml-2">
  15. <el-input v-model="searchForm.queryValue" clearable placeholder="请输入项目名称进行查询" size="large"/>
  16. </div>
  17. <div class="ml-4">
  18. <el-button type="primary" @click="searchClick" size="large">
  19. <HcIcon name="search-2"/>
  20. <span>搜索</span>
  21. </el-button>
  22. </div>
  23. <div class="ml-2">
  24. <el-button size="large" @click="resetClick">
  25. <HcIcon name="close-circle"/>
  26. <span>重置</span>
  27. </el-button>
  28. </div>
  29. </template>
  30. <template #extra>
  31. <el-button size="large" type="primary" hc-btn @click="updateClick">
  32. <HcIcon name="refresh"/>
  33. <span>合同回款更新</span>
  34. </el-button>
  35. <el-button size="large" type="primary" hc-btn @click="addRowClick">
  36. <HcIcon name="add"/>
  37. <span>新增项目合同信息</span>
  38. </el-button>
  39. </template>
  40. <HcTable :isIndex="false" :column="tableColumn" :datas="tableData" :loading="tableLoading">
  41. <template #key1="{row}">
  42. <span class="text-blue" @click="rowNameTap(row)">{{row.key1}}</span>
  43. </template>
  44. <template #action="{row,index}">
  45. <el-button plain size="small" type="primary" @click="editRowClick(row)">编辑</el-button>
  46. <el-button plain size="small" type="danger">删除</el-button>
  47. </template>
  48. </HcTable>
  49. <template #action>
  50. <HcPages :pages="searchForm" @change="pageChange"/>
  51. </template>
  52. </HcCard>
  53. </template>
  54. <script setup>
  55. import {ref} from "vue";
  56. import {useRouter} from 'vue-router'
  57. const router = useRouter()
  58. //项目类型
  59. const projectType = ref([
  60. {name: '二级路', key: '二级路'},
  61. {name: '国道', key: '国道'},
  62. {name: '水利水电', key: '水利水电'},
  63. {name: '市政', key: '市政'},
  64. ])
  65. //搜索表单
  66. const searchForm = ref({
  67. projectType: null, user: null, project: null,
  68. current: 1, size: 20, total: 0
  69. })
  70. //搜索
  71. const searchClick = () => {
  72. searchForm.value.current = 1;
  73. getTableData()
  74. }
  75. //重置搜索表单
  76. const resetClick = () => {
  77. searchForm.value = {current: 1, size: 20, total: 0}
  78. }
  79. //分页被点击
  80. const pageChange = ({current, size}) => {
  81. searchForm.value.current = current
  82. searchForm.value.size = size
  83. getTableData()
  84. }
  85. //获取数据
  86. const tableLoading = ref(false)
  87. const tableColumn = [
  88. {key: 'key', name: '合同编号', width: '120', align: 'center'},
  89. {key: 'key1', name: '合同名称'},
  90. {key: 'key2', name: '合同类型', width: '140', align: 'center'},
  91. {key: 'key3', name: '签订时间', width: '160', align: 'center'},
  92. {key: 'key4', name: '合同起止日期', width: '220', align: 'center'},
  93. {key: 'key5', name: '合同已履约回款', width: '140', align: 'center'},
  94. {key: 'key6', name: '合同未履约回款', width: '140', align: 'center'},
  95. {key: 'action', name: '操作', width: '130', align: 'center'},
  96. ]
  97. const tableData = ref([
  98. {id: 1, key: 'YS-01', key1: 'xxxx', key2: 'xxxx', key3: '65632', key4: '35654', key5: '12312', key6: 'xxxx'},
  99. {id: 2, key: 'YS-01', key1: 'xxxx', key2: 'xxxx', key3: '65632', key4: '35654', key5: '12312', key6: 'xxxx'},
  100. {id: 3, key: 'YS-01', key1: 'xxxx', key2: 'xxxx', key3: '65632', key4: '35654', key5: '12312', key6: 'xxxx'},
  101. {id: 4, key: 'YS-01', key1: 'xxxx', key2: 'xxxx', key3: '65632', key4: '35654', key5: '12312', key6: 'xxxx'},
  102. {id: 5, key: 'YS-01', key1: 'xxxx', key2: 'xxxx', key3: '65632', key4: '35654', key5: '12312', key6: 'xxxx'},
  103. {id: 6, key: 'YS-01', key1: 'xxxx', key2: 'xxxx', key3: '65632', key4: '35654', key5: '12312', key6: 'xxxx'},
  104. ])
  105. const getTableData = () => {
  106. }
  107. //预览
  108. const rowNameTap = (row) => {
  109. router.push({
  110. name: 'project-contract-form',
  111. query: {
  112. id: row.id,
  113. type: 'view'
  114. }
  115. })
  116. }
  117. //新增预算
  118. const addRowClick = () => {
  119. router.push({
  120. name: 'project-contract-form',
  121. query: {type: 'edit'}
  122. })
  123. }
  124. //编辑预算
  125. const editRowClick = (row) => {
  126. router.push({
  127. name: 'project-contract-form',
  128. query: {
  129. id: row.id,
  130. type: 'edit'
  131. }
  132. })
  133. }
  134. //合同回款更新
  135. const updateClick = () => {
  136. router.push({
  137. name: 'project-contract-update'
  138. })
  139. }
  140. </script>