|
1 | 1 | <template>
|
2 | 2 | <a-card :bordered="false">
|
3 |
| - <div class="table-page-search-wrapper"> |
4 |
| - <a-form layout="inline"> |
5 |
| - <a-row :gutter="48"> |
6 |
| - <a-col :md="8" :sm="24"> |
7 |
| - <a-form-item label="规则编号"> |
8 |
| - <a-input v-model="queryParam.id" placeholder=""/> |
9 |
| - </a-form-item> |
10 |
| - </a-col> |
11 |
| - <a-col :md="8" :sm="24"> |
12 |
| - <a-form-item label="使用状态"> |
13 |
| - <a-select v-model="queryParam.status" placeholder="请选择" default-value="0"> |
14 |
| - <a-select-option value="0">全部</a-select-option> |
15 |
| - <a-select-option value="1">关闭</a-select-option> |
16 |
| - <a-select-option value="2">运行中</a-select-option> |
17 |
| - </a-select> |
18 |
| - </a-form-item> |
19 |
| - </a-col> |
20 |
| - <template v-if="advanced"> |
21 |
| - <a-col :md="8" :sm="24"> |
22 |
| - <a-form-item label="调用次数"> |
23 |
| - <a-input-number v-model="queryParam.callNo" style="width: 100%"/> |
24 |
| - </a-form-item> |
25 |
| - </a-col> |
26 |
| - <a-col :md="8" :sm="24"> |
27 |
| - <a-form-item label="更新日期"> |
28 |
| - <a-date-picker v-model="queryParam.date" style="width: 100%" placeholder="请输入更新日期"/> |
29 |
| - </a-form-item> |
30 |
| - </a-col> |
31 |
| - <a-col :md="8" :sm="24"> |
32 |
| - <a-form-item label="使用状态"> |
33 |
| - <a-select v-model="queryParam.useStatus" placeholder="请选择" default-value="0"> |
34 |
| - <a-select-option value="0">全部</a-select-option> |
35 |
| - <a-select-option value="1">关闭</a-select-option> |
36 |
| - <a-select-option value="2">运行中</a-select-option> |
37 |
| - </a-select> |
38 |
| - </a-form-item> |
39 |
| - </a-col> |
40 |
| - <a-col :md="8" :sm="24"> |
41 |
| - <a-form-item label="使用状态"> |
42 |
| - <a-select placeholder="请选择" default-value="0"> |
43 |
| - <a-select-option value="0">全部</a-select-option> |
44 |
| - <a-select-option value="1">关闭</a-select-option> |
45 |
| - <a-select-option value="2">运行中</a-select-option> |
46 |
| - </a-select> |
47 |
| - </a-form-item> |
48 |
| - </a-col> |
49 |
| - </template> |
50 |
| - <a-col :md="!advanced && 8 || 24" :sm="24"> |
51 |
| - <span class="table-page-search-submitButtons" :style="advanced && { float: 'right', overflow: 'hidden' } || {} "> |
52 |
| - <a-button type="primary" @click="$refs.table.refresh(true)">查询</a-button> |
53 |
| - <a-button style="margin-left: 8px" @click="() => queryParam = {}">重置</a-button> |
54 |
| - <a @click="toggleAdvanced" style="margin-left: 8px"> |
55 |
| - {{ advanced ? '收起' : '展开' }} |
56 |
| - <a-icon :type="advanced ? 'up' : 'down'"/> |
57 |
| - </a> |
58 |
| - </span> |
59 |
| - </a-col> |
60 |
| - </a-row> |
61 |
| - </a-form> |
62 |
| - </div> |
63 |
| - |
64 |
| - <div class="table-operator"> |
65 |
| - <a-button type="primary" icon="plus" v-action:add>新建</a-button> |
66 |
| - <a-dropdown v-action:edit v-if="selectedRowKeys.length > 0"> |
67 |
| - <a-menu slot="overlay"> |
68 |
| - <a-menu-item key="1"><a-icon type="delete" />删除</a-menu-item> |
69 |
| - <!-- lock | unlock --> |
70 |
| - <a-menu-item key="2"><a-icon type="lock" />锁定</a-menu-item> |
71 |
| - </a-menu> |
72 |
| - <a-button style="margin-left: 8px"> |
73 |
| - 批量操作 <a-icon type="down" /> |
74 |
| - </a-button> |
75 |
| - </a-dropdown> |
76 |
| - </div> |
77 |
| - |
78 |
| - <div> |
79 |
| - <a-button @click="tableOption(false)" v-if="optionAlertShow">关闭 alert</a-button> |
80 |
| - </div> |
81 |
| - <s-table |
82 |
| - ref="table" |
83 |
| - size="default" |
84 |
| - :columns="columns" |
85 |
| - :data="loadData" |
86 |
| - :alert="options.alert" |
87 |
| - :rowSelection="options.rowSelection" |
88 |
| - > |
89 |
| - <span slot="serial" slot-scope="text, record, index"> |
90 |
| - {{ index + 1 }} |
91 |
| - </span> |
92 |
| - <span slot="action" slot-scope="text, record"> |
93 |
| - <template v-if="$auth('table.update')"> |
94 |
| - <a @click="handleEdit(record)">编辑</a> |
95 |
| - <a-divider type="vertical" /> |
96 |
| - </template> |
97 |
| - <a-dropdown> |
98 |
| - <a class="ant-dropdown-link"> |
99 |
| - 更多 <a-icon type="down" /> |
100 |
| - </a> |
101 |
| - <a-menu slot="overlay"> |
102 |
| - <a-menu-item> |
103 |
| - <a href="javascript:;">详情</a> |
104 |
| - </a-menu-item> |
105 |
| - <a-menu-item v-if="$auth('table.disable')"> |
106 |
| - <a href="javascript:;">禁用</a> |
107 |
| - </a-menu-item> |
108 |
| - <a-menu-item v-if="$auth('table.delete')"> |
109 |
| - <a href="javascript:;">删除</a> |
110 |
| - </a-menu-item> |
111 |
| - </a-menu> |
112 |
| - </a-dropdown> |
113 |
| - </span> |
114 |
| - </s-table> |
115 |
| - |
116 |
| - <a-modal |
117 |
| - title="操作" |
118 |
| - :width="800" |
119 |
| - v-model="visible" |
120 |
| - @ok="handleOk" |
121 |
| - > |
122 |
| - <a-form :autoFormCreate="(form)=>{this.form = form}"> |
123 |
| - |
124 |
| - <a-form-item |
125 |
| - :labelCol="labelCol" |
126 |
| - :wrapperCol="wrapperCol" |
127 |
| - label="规则编号" |
128 |
| - hasFeedback |
129 |
| - validateStatus="success" |
130 |
| - > |
131 |
| - <a-input placeholder="规则编号" v-model="mdl.no" id="no" /> |
132 |
| - </a-form-item> |
133 |
| - |
134 |
| - <a-form-item |
135 |
| - :labelCol="labelCol" |
136 |
| - :wrapperCol="wrapperCol" |
137 |
| - label="服务调用次数" |
138 |
| - hasFeedback |
139 |
| - validateStatus="success" |
140 |
| - > |
141 |
| - <a-input-number :min="1" id="callNo" v-model="mdl.callNo" style="width: 100%" /> |
142 |
| - </a-form-item> |
143 |
| - |
144 |
| - <a-form-item |
145 |
| - :labelCol="labelCol" |
146 |
| - :wrapperCol="wrapperCol" |
147 |
| - label="状态" |
148 |
| - hasFeedback |
149 |
| - validateStatus="warning" |
150 |
| - > |
151 |
| - <a-select defaultValue="1" v-model="mdl.status"> |
152 |
| - <a-select-option value="1">Option 1</a-select-option> |
153 |
| - <a-select-option value="2">Option 2</a-select-option> |
154 |
| - <a-select-option value="3">Option 3</a-select-option> |
155 |
| - </a-select> |
156 |
| - </a-form-item> |
157 |
| - |
158 |
| - <a-form-item |
159 |
| - :labelCol="labelCol" |
160 |
| - :wrapperCol="wrapperCol" |
161 |
| - label="描述" |
162 |
| - hasFeedback |
163 |
| - help="请填写一段描述" |
164 |
| - > |
165 |
| - <a-textarea :rows="5" v-model="mdl.description" placeholder="..." id="description"/> |
166 |
| - </a-form-item> |
167 |
| - |
168 |
| - <a-form-item |
169 |
| - :labelCol="labelCol" |
170 |
| - :wrapperCol="wrapperCol" |
171 |
| - label="更新时间" |
172 |
| - hasFeedback |
173 |
| - validateStatus="error" |
174 |
| - > |
175 |
| - <a-date-picker |
176 |
| - style="width: 100%" |
177 |
| - showTime |
178 |
| - format="YYYY-MM-DD HH:mm:ss" |
179 |
| - placeholder="Select Time" |
180 |
| - /> |
181 |
| - </a-form-item> |
182 |
| - |
183 |
| - </a-form> |
184 |
| - </a-modal> |
185 |
| - |
| 3 | + <router-view /> |
186 | 4 | </a-card>
|
187 | 5 | </template>
|
188 | 6 |
|
189 | 7 | <script>
|
190 |
| -import STable from '@/components/table/' |
| 8 | +
|
191 | 9 | import ATextarea from 'ant-design-vue/es/input/TextArea'
|
192 | 10 | import AInput from 'ant-design-vue/es/input/Input'
|
193 |
| -import moment from 'moment' |
194 |
| -
|
195 |
| -import { getRoleList, getServiceList } from '@/api/manage' |
196 | 11 |
|
197 | 12 | export default {
|
198 |
| - name: 'TableList', |
| 13 | + name: 'TableListWrapper', |
199 | 14 | components: {
|
200 | 15 | AInput,
|
201 |
| - ATextarea, |
202 |
| - STable |
| 16 | + ATextarea |
203 | 17 | },
|
204 | 18 | data () {
|
205 | 19 | return {
|
206 |
| - visible: false, |
207 |
| - labelCol: { |
208 |
| - xs: { span: 24 }, |
209 |
| - sm: { span: 5 } |
210 |
| - }, |
211 |
| - wrapperCol: { |
212 |
| - xs: { span: 24 }, |
213 |
| - sm: { span: 12 } |
214 |
| - }, |
215 |
| - form: null, |
216 |
| - mdl: {}, |
217 |
| -
|
218 |
| - // 高级搜索 展开/关闭 |
219 |
| - advanced: false, |
220 |
| - // 查询参数 |
221 |
| - queryParam: {}, |
222 |
| - // 表头 |
223 |
| - columns: [ |
224 |
| - { |
225 |
| - title: '#', |
226 |
| - scopedSlots: { customRender: 'serial' } |
227 |
| - }, |
228 |
| - { |
229 |
| - title: '规则编号', |
230 |
| - dataIndex: 'no' |
231 |
| - }, |
232 |
| - { |
233 |
| - title: '描述', |
234 |
| - dataIndex: 'description' |
235 |
| - }, |
236 |
| - { |
237 |
| - title: '服务调用次数', |
238 |
| - dataIndex: 'callNo', |
239 |
| - sorter: true, |
240 |
| - needTotal: true, |
241 |
| - customRender: (text) => text + ' 次' |
242 |
| - }, |
243 |
| - { |
244 |
| - title: '状态', |
245 |
| - dataIndex: 'status', |
246 |
| - needTotal: true |
247 |
| - }, |
248 |
| - { |
249 |
| - title: '更新时间', |
250 |
| - dataIndex: 'updatedAt', |
251 |
| - sorter: true |
252 |
| - }, |
253 |
| - { |
254 |
| - table: '操作', |
255 |
| - dataIndex: 'action', |
256 |
| - width: '150px', |
257 |
| - scopedSlots: { customRender: 'action' } |
258 |
| - } |
259 |
| - ], |
260 |
| - // 加载数据方法 必须为 Promise 对象 |
261 |
| - loadData: parameter => { |
262 |
| - return getServiceList(Object.assign(parameter, this.queryParam)) |
263 |
| - .then(res => { |
264 |
| - return res.result |
265 |
| - }) |
266 |
| - }, |
267 |
| - selectedRowKeys: [], |
268 |
| - selectedRows: [], |
269 |
| -
|
270 |
| - // custom table alert & rowSelection |
271 |
| - options: { |
272 |
| - alert: { show: true, clear: () => { this.selectedRowKeys = [] } }, |
273 |
| - rowSelection: { |
274 |
| - selectedRowKeys: this.selectedRowKeys, |
275 |
| - onChange: this.onSelectChange |
276 |
| - } |
277 |
| - }, |
278 |
| - optionAlertShow: true |
279 | 20 | }
|
280 | 21 | },
|
281 | 22 | created () {
|
282 |
| - this.tableOption(true) |
283 |
| - getRoleList({ t: new Date() }) |
| 23 | +
|
284 | 24 | },
|
285 | 25 | methods: {
|
286 | 26 |
|
287 |
| - tableOption (bool) { |
288 |
| - if (bool) { |
289 |
| - this.options = { |
290 |
| - alert: { show: true, clear: () => { this.selectedRowKeys = [] } }, |
291 |
| - rowSelection: { |
292 |
| - selectedRowKeys: this.selectedRowKeys, |
293 |
| - onChange: this.onSelectChange |
294 |
| - } |
295 |
| - } |
296 |
| - } else { |
297 |
| - this.options = { |
298 |
| - alert: false, |
299 |
| - rowSelection: null |
300 |
| - } |
301 |
| - this.optionAlertShow = false |
302 |
| - } |
303 |
| - }, |
304 |
| -
|
305 |
| - handleEdit (record) { |
306 |
| - this.mdl = Object.assign({}, record) |
307 |
| - console.log(this.mdl) |
308 |
| - this.visible = true |
309 |
| - }, |
310 |
| - handleOk () { |
311 |
| -
|
312 |
| - }, |
313 |
| -
|
314 |
| - onSelectChange (selectedRowKeys, selectedRows) { |
315 |
| - this.selectedRowKeys = selectedRowKeys |
316 |
| - this.selectedRows = selectedRows |
317 |
| - }, |
318 |
| - toggleAdvanced () { |
319 |
| - this.advanced = !this.advanced |
320 |
| - }, |
321 |
| -
|
322 |
| - resetSearchForm () { |
323 |
| - this.queryParam = { |
324 |
| - date: moment(new Date()) |
325 |
| - } |
326 |
| - } |
327 |
| - }, |
328 |
| - watch: { |
329 |
| - /* |
330 |
| - 'selectedRows': function (selectedRows) { |
331 |
| - this.needTotalList = this.needTotalList.map(item => { |
332 |
| - return { |
333 |
| - ...item, |
334 |
| - total: selectedRows.reduce( (sum, val) => { |
335 |
| - return sum + val[item.dataIndex] |
336 |
| - }, 0) |
337 |
| - } |
338 |
| - }) |
339 |
| - } |
340 |
| - */ |
341 | 27 | }
|
342 | 28 | }
|
343 | 29 | </script>
|
0 commit comments