2024-04-03 16:23:21 +08:00

134 lines
5.8 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<div>
<el-card class="!border-none mb-4" shadow="never">
<el-form class="mb-[-16px]" :model="queryParams" inline>
<el-form-item label="提成单号" prop="project_commission_id">
<selectRemote :formData="queryParams" model="project_commission_id" :api="apiProjectCommissionSearch" />
</el-form-item>
<el-form-item label="工程师" prop="engineer">
<el-input class="w-[280px]" v-model="queryParams.engineer" clearable placeholder="请输入工程师" />
</el-form-item>
<el-form-item label="任务名称" prop="task_name">
<el-input class="w-[280px]" v-model="queryParams.task_name" clearable placeholder="请输入任务名称" />
</el-form-item>
<el-form-item>
<el-button type="primary" @click="resetPage">查询</el-button>
<el-button @click="resetParams">重置</el-button>
<export-data class="ml-2.5" :fetch-fun="apiProjectCommissionDetailLists" :params="queryParams"
:page-size="pager.size" />
</el-form-item>
</el-form>
</el-card>
<el-card class="!border-none" v-loading="pager.loading" shadow="never">
<el-button v-perms="['project_commission_detail/delete']" :disabled="!selectData.length"
@click="handleDelete(selectData)">
删除
</el-button>
<div class="mt-4">
<el-table border :data="pager.lists" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" />
<el-table-column label="提成单号" prop="project_commission_num" show-overflow-tooltip />
<el-table-column label="工程师" prop="engineer" show-overflow-tooltip />
<el-table-column label="任务名称" prop="task_name" show-overflow-tooltip />
<el-table-column label="任务类型" prop="task_type">
<template #default="{ row }">
<dict-value :options="dictData.task_type" :value="row.task_type" />
</template>
</el-table-column>
<el-table-column label="专业类型" prop="professional_type">
<template #default="{ row }">
<dict-value :options="dictData.major_type" :value="row.professional_type" />
</template>
</el-table-column>
<el-table-column label="造价金额" prop="zj_amount" show-overflow-tooltip />
<el-table-column label="收款金额" prop="sk_amount" show-overflow-tooltip />
<el-table-column label="提成比例(%%" prop="tc_rate" show-overflow-tooltip />
<el-table-column label="应提成金额" prop="tc_amount" show-overflow-tooltip />
<el-table-column label="本次支付金额" prop="pay_amount" show-overflow-tooltip />
<el-table-column label="操作" width="120" fixed="right">
<template #default="{ row }">
<el-button v-perms="['project_commission_detail/edit']" type="primary" link
@click="handleEdit(row)">
编辑
</el-button>
<el-button v-perms="['project_commission_detail/delete']" type="danger" link
@click="handleDelete(row.id)">
删除
</el-button>
</template>
</el-table-column>
</el-table>
</div>
<div class="flex justify-end mt-4">
<pagination v-model="pager" @change="getLists" />
</div>
</el-card>
<edit-popup v-if="showEdit" ref="editRef" :dict-data="dictData" @success="getLists" @close="showEdit = false" />
</div>
</template>
<script lang="ts" setup name="projectCommissionDetailLists">
import { usePaging } from '@/hooks/usePaging'
import { useDictData } from '@/hooks/useDictOptions'
import { apiProjectCommissionDetailLists, apiProjectCommissionDetailDelete, apiProjectCommissionDetailDetail } from '@/api/project_commission_detail'
import { apiProjectCommissionSearch } from '@/api/project_commission'
import feedback from '@/utils/feedback'
import EditPopup from './edit.vue'
const editRef = shallowRef<InstanceType<typeof EditPopup>>()
// 是否显示编辑框
const showEdit = ref(false)
// 查询条件
const queryParams = reactive({
project_commission_id: '',
engineer: '',
task_name: '',
})
// 选中数据
const selectData = ref<any[]>([])
// 表格选择后回调事件
const handleSelectionChange = (val: any[]) => {
selectData.value = val.map(({ id }) => id)
}
// 获取字典数据
const { dictData } = useDictData('task_type,major_type')
// 分页相关
const { pager, getLists, resetParams, resetPage } = usePaging({
fetchFun: apiProjectCommissionDetailLists,
params: queryParams
})
// 添加
const handleAdd = async () => {
showEdit.value = true
await nextTick()
editRef.value?.open('add')
}
// 编辑
const handleEdit = async (data: any) => {
let res = await apiProjectCommissionDetailDetail({ id: data.id })
showEdit.value = true
await nextTick()
editRef.value?.open('edit')
editRef.value?.setFormData(res)
}
// 删除
const handleDelete = async (id: number | any[]) => {
await feedback.confirm('确定要删除?')
await apiProjectCommissionDetailDelete({ id })
getLists()
}
getLists()
</script>