|
7 | 7 | </el-form-item>
|
8 | 8 | <el-form-item label="性别" prop="sex">
|
9 | 9 | <el-select v-model="queryParams.sex" placeholder="请选择性别" clearable size="small">
|
10 |
| - <el-option v-for="dict in this.getDictDatas(DICT_TYPE.INFRA_BOOLEAN_STRING)" |
| 10 | + <el-option v-for="dict in this.getDictDatas(DICT_TYPE.SYSTEM_USER_SEX)" |
11 | 11 | :key="dict.value" :label="dict.label" :value="dict.value"/>
|
12 | 12 | </el-select>
|
13 | 13 | </el-form-item>
|
14 |
| - <el-form-item label="出生年" prop="birthday"> |
15 |
| - <el-date-picker clearable v-model="queryParams.birthday" type="date" value-format="yyyy-MM-dd" placeholder="选择出生年" /> |
16 |
| - </el-form-item> |
17 | 14 | <el-form-item label="创建时间" prop="createTime">
|
18 |
| - <el-date-picker v-model="queryParams.createTime" style="width: 240px" value-format="yyyy-MM-dd HH:mm:ss" type="daterange" |
19 |
| - range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期" :default-time="['00:00:00', '23:59:59']" /> |
| 15 | + <el-date-picker v-model="queryParams.createTime" style="width: 240px" value-format="yyyy-MM-dd HH:mm:ss" |
| 16 | + type="daterange" |
| 17 | + range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期" |
| 18 | + :default-time="['00:00:00', '23:59:59']"/> |
20 | 19 | </el-form-item>
|
21 | 20 | <el-form-item>
|
22 | 21 | <el-button type="primary" icon="el-icon-search" @click="handleQuery">搜索</el-button>
|
|
28 | 27 | <el-row :gutter="10" class="mb8">
|
29 | 28 | <el-col :span="1.5">
|
30 | 29 | <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="openForm(undefined)"
|
31 |
| - v-hasPermi="['infra:demo01-contact:create']">新增</el-button> |
| 30 | + v-hasPermi="['infra:demo01-contact:create']">新增 |
| 31 | + </el-button> |
| 32 | + </el-col> |
| 33 | + <el-col :span="1.5"> |
| 34 | + <el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport" |
| 35 | + :loading="exportLoading" |
| 36 | + v-hasPermi="['infra:demo01-contact:export']">导出 |
| 37 | + </el-button> |
32 | 38 | </el-col>
|
33 | 39 | <el-col :span="1.5">
|
34 |
| - <el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport" :loading="exportLoading" |
35 |
| - v-hasPermi="['infra:demo01-contact:export']">导出</el-button> |
| 40 | + <el-button |
| 41 | + type="danger" |
| 42 | + plain |
| 43 | + icon="el-icon-delete" |
| 44 | + size="mini" |
| 45 | + :disabled="isEmpty(checkedIds)" |
| 46 | + @click="handleDeleteBatch" |
| 47 | + v-hasPermi="['infra:demo01-contact:delete']" |
| 48 | + > |
| 49 | + 批量删除 |
| 50 | + </el-button> |
36 | 51 | </el-col>
|
37 | 52 | <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
38 | 53 | </el-row>
|
39 | 54 |
|
40 |
| - <el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true"> |
41 |
| - <el-table-column label="编号" align="center" prop="id" /> |
42 |
| - <el-table-column label="名字" align="center" prop="name" /> |
| 55 | + <el-table |
| 56 | + v-loading="loading" |
| 57 | + :data="list" |
| 58 | + :stripe="true" |
| 59 | + :show-overflow-tooltip="true" |
| 60 | + @selection-change="handleRowCheckboxChange" |
| 61 | + > |
| 62 | + <el-table-column type="selection" width="55"/> |
| 63 | + <el-table-column label="编号" align="center" prop="id"/> |
| 64 | + <el-table-column label="名字" align="center" prop="name"/> |
43 | 65 | <el-table-column label="性别" align="center" prop="sex">
|
44 | 66 | <template v-slot="scope">
|
45 |
| - <dict-tag :type="DICT_TYPE.INFRA_BOOLEAN_STRING" :value="scope.row.sex" /> |
| 67 | + <dict-tag :type="DICT_TYPE.SYSTEM_USER_SEX" :value="scope.row.sex"/> |
46 | 68 | </template>
|
47 | 69 | </el-table-column>
|
48 | 70 | <el-table-column label="出生年" align="center" prop="birthday" width="180">
|
49 | 71 | <template v-slot="scope">
|
50 | 72 | <span>{{ parseTime(scope.row.birthday) }}</span>
|
51 | 73 | </template>
|
52 | 74 | </el-table-column>
|
53 |
| - <el-table-column label="简介" align="center" prop="description" /> |
54 |
| - <el-table-column label="头像" align="center" prop="avatar" /> |
| 75 | + <el-table-column label="简介" align="center" prop="description"/> |
| 76 | + <el-table-column label="头像" align="center" prop="avatar"/> |
55 | 77 | <el-table-column label="创建时间" align="center" prop="createTime" width="180">
|
56 | 78 | <template v-slot="scope">
|
57 | 79 | <span>{{ parseTime(scope.row.createTime) }}</span>
|
|
60 | 82 | <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
61 | 83 | <template v-slot="scope">
|
62 | 84 | <el-button size="mini" type="text" icon="el-icon-edit" @click="openForm(scope.row.id)"
|
63 |
| - v-hasPermi="['infra:demo01-contact:update']">修改</el-button> |
| 85 | + v-hasPermi="['infra:demo01-contact:update']">修改 |
| 86 | + </el-button> |
64 | 87 | <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
|
65 |
| - v-hasPermi="['infra:demo01-contact:delete']">删除</el-button> |
| 88 | + v-hasPermi="['infra:demo01-contact:delete']">删除 |
| 89 | + </el-button> |
66 | 90 | </template>
|
67 | 91 | </el-table-column>
|
68 | 92 | </el-table>
|
69 | 93 | <!-- 分页组件 -->
|
70 | 94 | <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNo" :limit.sync="queryParams.pageSize"
|
71 | 95 | @pagination="getList"/>
|
72 | 96 | <!-- 对话框(添加 / 修改) -->
|
73 |
| - <Demo01ContactForm ref="formRef" @success="getList" /> |
| 97 | + <Demo01ContactForm ref="formRef" @success="getList"/> |
74 | 98 | </div>
|
75 | 99 | </template>
|
76 | 100 |
|
@@ -100,15 +124,13 @@ export default {
|
100 | 124 | refreshTable: true,
|
101 | 125 | // 选中行
|
102 | 126 | currentRow: {},
|
| 127 | + checkedIds: [], |
103 | 128 | // 查询参数
|
104 | 129 | queryParams: {
|
105 | 130 | pageNo: 1,
|
106 | 131 | pageSize: 10,
|
107 | 132 | name: null,
|
108 | 133 | sex: null,
|
109 |
| - birthday: null, |
110 |
| - description: null, |
111 |
| - avatar: null, |
112 | 134 | createTime: [],
|
113 | 135 | },
|
114 | 136 | };
|
@@ -150,15 +172,29 @@ export default {
|
150 | 172 | await Demo01ContactApi.deleteDemo01Contact(id);
|
151 | 173 | await this.getList();
|
152 | 174 | this.$modal.msgSuccess("删除成功");
|
153 |
| - } catch {} |
| 175 | + } catch { |
| 176 | + } |
| 177 | + }, |
| 178 | + /** 批量删除示例联系人 */ |
| 179 | + async handleDeleteBatch() { |
| 180 | + await this.$modal.confirm('是否确认删除?') |
| 181 | + try { |
| 182 | + await Demo01ContactApi.deleteDemo01ContactList(this.checkedIds); |
| 183 | + await this.getList(); |
| 184 | + this.$modal.msgSuccess("删除成功"); |
| 185 | + } catch { |
| 186 | + } |
| 187 | + }, |
| 188 | + handleRowCheckboxChange(records) { |
| 189 | + this.checkedIds = records.map((item) => item.id); |
154 | 190 | },
|
155 | 191 | /** 导出按钮操作 */
|
156 | 192 | async handleExport() {
|
157 | 193 | await this.$modal.confirm('是否确认导出所有示例联系人数据项?');
|
158 | 194 | try {
|
159 | 195 | this.exportLoading = true;
|
160 |
| - const res = await Demo01ContactApi.exportDemo01ContactExcel(this.queryParams); |
161 |
| - this.$download.excel(res.data, '示例联系人.xls'); |
| 196 | + const data = await Demo01ContactApi.exportDemo01ContactExcel(this.queryParams); |
| 197 | + this.$download.excel(data, '示例联系人.xls'); |
162 | 198 | } catch {
|
163 | 199 | } finally {
|
164 | 200 | this.exportLoading = false;
|
|
0 commit comments