levelOneYear.vue
5.85 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
<template>
<div class="from-Card">
<el-form ref="queryRef" size="small" :model="queryParams" inline label-position="top">
<el-row style="width: 100%;">
<el-col :span="4">
<el-form-item label="年度">
<el-date-picker
v-model="queryParams.year"
:clearable="false"
style="width: 100%"
type="year"
value-format="YYYY"
@change="handleQuery"
/>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label="个人会员是否达标">
<el-select v-model="queryParams.isStandard_p" clearable style="width: 100%" @change="handleQuery">
<el-option label="达标" value="1" />
<el-option label="未达标" value="0" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label="单位会员是否达标">
<el-select v-model="queryParams.isStandard_m" clearable style="width: 100%" @change="handleQuery">
<el-option label="达标" value="1" />
<el-option label="未达标" value="0" />
</el-select>
</el-form-item>
</el-col>
<div class="po-r-btns">
<el-button type="primary" icon="Search" @click="handleQuery">查询</el-button>
<el-button icon="Refresh" @click="resetQuery">重置</el-button>
<el-button type="success" plain icon="Download" @click="handleExport">导出</el-button>
</div>
</el-row>
</el-form>
</div>
<div class="table">
<el-table v-loading="loading" height="700" :data="tableList" border stripe>
<el-table-column type="index" width="55" align="center" label="序号" />
<el-table-column label="会员单位" align="center" prop="deptName" />
<el-table-column label="个人会员" align="center">
<el-table-column label="约定数量" align="center" prop="promisePersonNum" />
<el-table-column label="约定金额" align="center" prop="promisePersonAmount" />
<el-table-column label="实际服务数量" align="center" prop="personRealNum" />
<el-table-column label="完成比" align="center" prop="personPercent" />
<el-table-column label="年度是否达标" align="center" prop="personIsStandard" />
<el-table-column label="实际应支付金额" align="center" prop="personAmount" />
<el-table-column label="年度已打款金额" align="center" prop="personAlreadyAmount" />
<el-table-column label="剩余打款金额" align="center" prop="personRemaindk" />
<el-table-column label="剩余应支付金额" align="center" prop="personSyyzfje" />
</el-table-column>
<el-table-column label="单位会员" align="center">
<el-table-column label="约定数量" align="center" prop="promiseMemberNum" />
<el-table-column label="约定金额" align="center" prop="promiseMemberAmount" />
<el-table-column label="实际服务数量" align="center" prop="memberRealNum" />
<el-table-column label="完成比" align="center" prop="memberPercent" />
<el-table-column label="年度是否达标" align="center" prop="memberIsStandard" />
<el-table-column label="实际应支付金额" align="center" prop="memberAmount" />
<el-table-column label="打款金额" align="center" prop="memberdkje" />
<el-table-column label="剩余应支付金额" align="center" prop="memberSyyzfje" />
</el-table-column>
<!-- <el-table-column label="剩余应支付金额" align="center" prop="leftAmount" />-->
<el-table-column :label="`${nextYear}补充金额`" align="center" prop="nextYearAmount" />
<el-table-column label="状态" align="center" prop="yearStatus">
<template #default="{row}">
<span :class="{'text-success':row.yearStatus=='已下发'}">{{ row.yearStatus }}</span>
</template>
</el-table-column>
<el-table-column fixed="right" label="操作" width="100" align="center">
<template #default="{row}">
<el-button :disabled="row.yearStatus=='已下发'" type="primary" size="small" @click="handelXia(row)">下发</el-button>
</template>
</el-table-column>
</el-table>
</div>
</template>
<script setup>
import { reactive, ref, watch, onMounted, getCurrentInstance } from 'vue'
import dayjs from 'dayjs'
import { getLevelOneYear } from '@/api/report/business'
import { addBusinessData } from '/@/api/report/businessData'
const { proxy } = getCurrentInstance()
const queryParams = reactive({
year: undefined,
isStandard_p: undefined,
isStandard_m: undefined
})
watch(() => queryParams.year, (val) => {
if (val) {
nextYear.value = `${Number(queryParams.year) + 1}`
}
})
const loading = ref(false)
const tableList = ref([])
const nextYear = ref()
onMounted(() => {
queryParams.year = `${dayjs().year()}`
})
function init() {
handleQuery()
}
function handleQuery() {
loading.value = true
getLevelOneYear(queryParams).then(res => {
tableList.value = res.data
}).catch(() => {
tableList.value = []
}).finally(() => {
loading.value = false
})
}
function resetQuery() {
queryParams.year = `${dayjs().year()}`
queryParams.isStandard_p = undefined
queryParams.isStandard_m = undefined
handleQuery()
}
function handleExport() {
proxy.download('/report/exportLevelOneYear', {
...queryParams
}, `中跆协${queryParams.year}年度业务${new Date().getTime()}.xlsx`)
}
async function handelXia(row) {
await proxy.$modal.confirm(`确定下发${row.deptName}的${queryParams.year}年度业务吗?`)
await addBusinessData({
deptId: row.deptId,
year: row.year,
content: JSON.stringify(row),
type: '1'
})
await proxy.$modal.msgSuccess('操作成功!')
init()
}
defineExpose({
init
})
</script>
<style scoped>
</style>