79 lines
1.7 KiB
Markdown
79 lines
1.7 KiB
Markdown
# Examples
|
|
|
|
## API 方法定义示例
|
|
|
|
```js
|
|
import request from "@/utils/request";
|
|
|
|
export function getCheckInList(params) {
|
|
return request({
|
|
url: "/signin/checkin/list",
|
|
method: "get",
|
|
params
|
|
});
|
|
}
|
|
|
|
export function saveCheckInConfig(data) {
|
|
return request({
|
|
url: "/signin/checkin/config/save",
|
|
method: "post",
|
|
data
|
|
});
|
|
}
|
|
```
|
|
|
|
## 查询参数整形示例
|
|
|
|
```js
|
|
buildQueryParams() {
|
|
const { dateRange, status, pageNum, pageSize, keyword } = this.queryForm;
|
|
return {
|
|
pageNum,
|
|
pageSize,
|
|
keyword: keyword ? keyword.trim() : "",
|
|
status: typeof status === "boolean" ? (status ? 1 : 0) : status,
|
|
startTime: dateRange && dateRange.length ? dateRange[0] : "",
|
|
endTime: dateRange && dateRange.length ? dateRange[1] : ""
|
|
};
|
|
}
|
|
```
|
|
|
|
## 列表请求与兜底示例
|
|
|
|
```js
|
|
async fetchList() {
|
|
this.loading = true;
|
|
try {
|
|
const params = this.buildQueryParams();
|
|
const res = await getCheckInList(params);
|
|
const data = (res && res.data) || {};
|
|
this.tableData = Array.isArray(data.list) ? data.list : [];
|
|
this.total = Number(data.total || 0);
|
|
} catch (e) {
|
|
this.$message.error("列表加载失败,请稍后重试");
|
|
} finally {
|
|
this.loading = false;
|
|
}
|
|
}
|
|
```
|
|
|
|
## 提交流程与防重复示例
|
|
|
|
```js
|
|
async handleSubmit() {
|
|
if (this.submitLoading) return;
|
|
this.submitLoading = true;
|
|
try {
|
|
await this.$refs.formRef.validate();
|
|
await saveCheckInConfig(this.formData);
|
|
this.$message.success("保存成功");
|
|
this.dialogVisible = false;
|
|
this.fetchList();
|
|
} catch (e) {
|
|
this.$message.error("保存失败,请检查后重试");
|
|
} finally {
|
|
this.submitLoading = false;
|
|
}
|
|
}
|
|
```
|