Blame view

antis-ncc-admin/src/views/lqEvent/index.vue 7.18 KB
d080a458   李宇   拓客活动
1
2
3
4
5
6
7
8
9
10
  <template>
  	<div class="NCC-common-layout">
  		<div class="NCC-common-layout-center">
  			<el-row class="NCC-common-search-box" :gutter="16">
  				<el-form @submit.native.prevent>
  					<el-col :span="6">
  						<el-form-item label="活动名称">
  							<el-input v-model="query.eventName" placeholder="请输入活动名称" clearable />
  						</el-form-item>
  					</el-col>
2eaf4fdc   李宇   最新
11
  					<!-- <el-col :span="6">
d080a458   李宇   拓客活动
12
13
14
15
16
17
  						<el-form-item label="活动编号">
  							<el-input v-model="query.eventNumber" placeholder="请输入活动编号" clearable />
  						</el-form-item>
  					</el-col>
  					<el-col :span="6">
  						<el-form-item label="活动负责人">
2eaf4fdc   李宇   最新
18
  							<userSelect v-model="query.eventCoordinator" placeholder="请选择活动负责人" />
d080a458   李宇   拓客活动
19
  						</el-form-item>
2eaf4fdc   李宇   最新
20
  					</el-col> -->
d080a458   李宇   拓客活动
21
22
23
24
25
26
27
28
29
30
31
32
33
  					<el-col :span="6">
  						<el-form-item>
  							<el-button type="primary" icon="el-icon-search" @click="search()">查询</el-button>
  							<el-button icon="el-icon-refresh-right" @click="reset()">重置</el-button>
  						</el-form-item>
  					</el-col>
  				</el-form>
  			</el-row>
  			<div class="NCC-common-layout-main NCC-flex-main">
  				<div class="NCC-common-head">
  					<div>
  						<el-button type="primary" icon="el-icon-plus" @click="addOrUpdateHandle()">新增</el-button>
  						<el-button type="text" icon="el-icon-download" @click="exportData()">导出</el-button>
557dc5cd   李宇   最新
34
  						<!-- <el-button type="text" icon="el-icon-delete" @click="handleBatchRemoveDel()">批量删除</el-button> -->
d080a458   李宇   拓客活动
35
36
37
38
39
40
41
42
43
44
45
  					</div>
  					<div class="NCC-common-head-right">
  						<el-tooltip effect="dark" content="刷新" placement="top">
  							<el-link icon="icon-ym icon-ym-Refresh NCC-common-head-icon" :underline="false" @click="reset()" />
  						</el-tooltip>
  						<screenfull isContainer />
  					</div>
  				</div>
  				<NCC-table v-loading="listLoading" :data="list" has-c @selection-change="handleSelectionChange">
  					<el-table-column prop="eventName" label="活动名称" align="left" show-overflow-tooltip />
  					<el-table-column prop="eventNumber" label="活动编号" align="left" show-overflow-tooltip />
557dc5cd   李宇   最新
46
  					<el-table-column prop="eventType" label="活动类型" align="left">
d080a458   李宇   拓客活动
47
  						<template slot-scope="scope">
557dc5cd   李宇   最新
48
  							{{ scope.row.eventType | dynamicText(eventTypeOptions) }}
d080a458   李宇   拓客活动
49
50
  						</template>
  					</el-table-column>
2eaf4fdc   李宇   最新
51
  					<el-table-column prop="eventCoordinatorName" label="活动负责人" align="left" show-overflow-tooltip />
557dc5cd   李宇   最新
52
53
54
55
  					<el-table-column prop="startTime" label="开始时间" align="left"  :formatter="ncc.tableDateFormat"></el-table-column>
  					<el-table-column prop="endTime" label="结束时间" align="left" :formatter="ncc.tableDateFormat"></el-table-column>
  					
  					<!-- <el-table-column prop="Members" label="参与人数" align="center" width="100">
d080a458   李宇   拓客活动
56
  						<template slot-scope="scope">
557dc5cd   李宇   最新
57
  							{{ scope.row.Members ? scope.row.Members.length : 0 }}人
d080a458   李宇   拓客活动
58
  						</template>
557dc5cd   李宇   最新
59
  					</el-table-column> -->
d080a458   李宇   拓客活动
60
61
62
63
  					<el-table-column label="操作" align="left" width="200" fixed="right">
  						<template slot-scope="scope">
  							<el-button type="text" @click="addOrUpdateHandle(scope.row.id)">编辑</el-button>
  							<el-button type="text" @click="handleDelete(scope.row.id)">删除</el-button>
d080a458   李宇   拓客活动
64
65
66
67
68
69
70
  						</template>
  					</el-table-column>
  				</NCC-table>
  				<pagination
  					v-show="total > 0"
  					:total="total"
  					:page.sync="query.currentPage"
9661fd47   李宇   ```
71
  					:limit.sync="query.rows"
d080a458   李宇   拓客活动
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
  					@pagination="getList"
  				/>
  			</div>
  		</div>
  		<!-- 弹窗, 新增 / 修改 -->
  		<Form v-if="formVisible" ref="Form" @refreshDataList="getList" />
  		<!-- 导出弹窗 -->
  		<ExportBox v-if="exportVisible" ref="ExportBox" @refreshDataList="getList" />
  		<!-- 查看成员弹窗 -->
  		<el-dialog title="活动成员" :visible.sync="membersVisible" width="800px">
  			<el-table :data="currentMembers" v-loading="membersLoading">
  				<el-table-column prop="userId" label="用户ID" align="left" />
  				<el-table-column prop="depId" label="部门ID" align="left" />
  				<el-table-column prop="teamName" label="团队名称" align="left" />
  			</el-table>
  		</el-dialog>
  	</div>
  </template>
  
  <script>
557dc5cd   李宇   最新
92
  import request from '@/utils/request'
d080a458   李宇   拓客活动
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
  import { getLqEventList, deleteLqEvent, batchDeleteLqEvent } from '@/api/extend/lqevent'
  import Form from './Form'
  import ExportBox from './ExportBox'
  import Pagination from '@/components/Pagination'
  
  export default {
  	name: 'LqEvent',
  	components: {
  		Form,
  		ExportBox,
  		Pagination
  	},
  	data() {
  		return {
  			query: {
  				eventName: '',
  				eventNumber: '',
  				eventCoordinator: '',
  				currentPage: 1,
9661fd47   李宇   ```
112
  				rows: 20
d080a458   李宇   拓客活动
113
114
115
116
117
118
119
120
121
  			},
  			list: [],
  			total: 0,
  			listLoading: true,
  			formVisible: false,
  			exportVisible: false,
  			membersVisible: false,
  			membersLoading: false,
  			currentMembers: [],
557dc5cd   李宇   最新
122
123
  			selectedIds: [],
  			eventTypeOptions: [],
d080a458   李宇   拓客活动
124
125
126
  		}
  	},
  	created() {
557dc5cd   李宇   最新
127
  		this.getEventTypeOptions()
d080a458   李宇   拓客活动
128
129
130
  		this.getList()
  	},
  	methods: {
557dc5cd   李宇   最新
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
  		// 获取活动类型选项
  		getEventTypeOptions() {
  			request({
  				url: '/api/Extend/lqevent/event-types',
  				method: 'GET'
  			}).then(response => {
  				if (response.code === 200 && response.data) {
  					this.eventTypeOptions = response.data.map(item => ({
  						id: item.Value,
  						fullName: item.Name
  					}))
  				}
  			}).catch(err => {
  				console.error('获取活动类型选项失败:', err)
  				this.eventTypeOptions = []
  			})
  		},
d080a458   李宇   拓客活动
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
  		// 获取数据列表
  		getList() {
  			this.listLoading = true
  			getLqEventList(this.query).then(response => {
  				this.list = response.data.list
  				this.total = response.data.pagination.total
  				this.listLoading = false
  			}).catch(() => {
  				this.listLoading = false
  			})
  		},
  		// 搜索
  		search() {
  			this.query.currentPage = 1
  			this.getList()
  		},
  		// 重置
  		reset() {
  			this.query = {
  				eventName: '',
  				eventNumber: '',
  				eventCoordinator: '',
  				currentPage: 1,
9661fd47   李宇   ```
171
  				rows: 20
d080a458   李宇   拓客活动
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
  			}
  			this.getList()
  		},
  		// 新增 / 修改
  		addOrUpdateHandle(id) {
  			this.formVisible = true
  			this.$nextTick(() => {
  				this.$refs.Form.init(id)
  			})
  		},
  		// 删除
  		handleDelete(id) {
  			this.$confirm('确定要删除该拓客活动吗?', '提示', {
  				confirmButtonText: '确定',
  				cancelButtonText: '取消',
  				type: 'warning'
  			}).then(() => {
  				deleteLqEvent(id).then(() => {
  					this.$message({
  						message: '删除成功',
  						type: 'success'
  					})
  					this.getList()
  				})
  			})
  		},
  		// 批量删除
  		handleBatchRemoveDel() {
  			if (this.selectedIds.length === 0) {
  				this.$message({
  					message: '请选择要删除的数据',
  					type: 'warning'
  				})
  				return
  			}
  			this.$confirm('确定要删除选中的拓客活动吗?', '提示', {
  				confirmButtonText: '确定',
  				cancelButtonText: '取消',
  				type: 'warning'
  			}).then(() => {
  				batchDeleteLqEvent(this.selectedIds).then(() => {
  					this.$message({
  						message: '删除成功',
  						type: 'success'
  					})
  					this.getList()
  				})
  			})
  		},
  		// 多选
  		handleSelectionChange(selection) {
  			this.selectedIds = selection.map(item => item.id)
  		},
  		// 导出
  		exportData() {
  			this.exportVisible = true
  			this.$nextTick(() => {
  				this.$refs.ExportBox.init()
  			})
  		},
  		// 查看成员
  		viewMembers(row) {
  			this.membersVisible = true
  			this.membersLoading = true
  			this.currentMembers = row.members || []
  			this.membersLoading = false
  		}
  	}
  }
  </script>
  
  <style scoped>
  .NCC-common-layout {
  	height: 100%;
  }
  </style>