index.vue
3.92 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
<template>
<el-drawer
v-model="drawerOpen"
:title="title"
:close="handleClose"
size="700px"
>
<el-card shadow="hover">
<el-form :model="queryParams" ref="queryParamsRefs" :inline="true" label-width="auto">
<el-row>
<el-col :span="12">
<el-form-item label="关键字" prop="keyword">
<el-input
v-model="queryParams.keyword"
placeholder="请输入关键字"
clearable
style="width: 100%;"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="所属科室" prop="departmentId">
<el-select-v2
v-model="queryParams.departmentId"
:options="deptList"
:props="props"
placeholder="请选择所属科室"
style="width: 180px;"
/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item>
<el-button type="primary" icon="Search" @click="getProjectLists">搜索</el-button>
<el-button icon="Refresh" @click="resetQuery">重置</el-button>
</el-form-item>
</el-col>
</el-row>
</el-form>
<el-table :data="ProjectData" border style="width: 100%" @selection-change="handleSelectionChange">
<el-table-column type="index" width="50" label="#" />
<el-table-column type="selection" width="50" />
<el-table-column prop="projectPortfolioName" label="名称" align="center"/>
<el-table-column prop="price" label="销售价" align="center"/>
</el-table>
</el-card>
<template #footer>
<el-button size="large" @click="handleClose">取消</el-button>
<el-button type="primary" size="large" @click="handleConfim">确认</el-button>
</template>
</el-drawer>
</template>
<script setup name="ProjectSelection">
import { ref } from 'vue';
import * as comboProjectApi from "@/api/basicData/combinationProject";
import { listBaseExamineProject } from "@/api/basicData/baseProject";
import { listDept } from "@/api/system/dept";
const { proxy } = getCurrentInstance()
const props = {
label: 'deptName',
value: 'deptId',
}
const drawerOpen = ref(false)
defineProps({
title: {
type: String,
default: () => '套餐选择'
}
})
const data = reactive({
loading: false,
ProjectData: [], // 数据
queryParams: {
departmentId: undefined,
keyword: undefined, // 搜索值
pageNum: 1,
pageSize: 20,
},
total: 0,
selections: [], // 选中值
deptList: [], // 科室
})
const { loading, ProjectData, queryParams, selections, deptList, total } = toRefs(data)
const getProjectLists = () => {
loading.value = true
comboProjectApi.list(queryParams.value).then(response => {
ProjectData.value = response.rows;
total.value = response.total;
}).finally(() => {
loading.value = false
})
}
const handleSelectionChange = (val) => {
selections.value = val
}
/** 查询科室列表 */
function getDeptList() {
listDept(queryParams.value).then(response => {
deptList.value = proxy.handleTree(response.data, "deptId");
});
}
const openDraw = (propData) => {
getDeptList();
getProjectLists()
drawerOpen.value = true
}
const handleAddGroup = () => {
ProjectData.value.push({
groupName: undefined
})
}
const handleDel = (row, index) => {
console.log(row, index);
ProjectData.value.splice(index, 1)
}
const emit = defineEmits(['handleConfim'])
const handleConfim = () => {
emit('handleConfim', selections.value)
drawerOpen.value = false
}
const handleClose = () => {
drawerOpen.value = false
ProjectData.value = []
selections.value = []
}
defineExpose({
openDraw
})
</script>
<style scoped lang='scss'>
</style>