diff --git a/src/api/match/citizenSportsSync.js b/src/api/match/citizenSportsSync.js
new file mode 100644
index 0000000..672f2c4
--- /dev/null
+++ b/src/api/match/citizenSportsSync.js
@@ -0,0 +1,16 @@
+import { http } from '../../utils/request';
+
+/** 测试当前服务端配置与市民运动会平台的连接。 */
+export const citizenSportsConnectionTestPost = () => {
+ return http.post('/citizen-sports-sync/connection-test', {});
+};
+
+/** 预览待同步的报名数据,不会向外部平台写入。 */
+export const citizenSportsPreviewPost = (data) => {
+ return http.post('/citizen-sports-sync/preview', data);
+};
+
+/** 将预检通过的报名数据同步到市民运动会平台。 */
+export const citizenSportsExecutePost = (data) => {
+ return http.post('/citizen-sports-sync/execute', data);
+};
diff --git a/src/views/system/citizen-sports-sync/index.vue b/src/views/system/citizen-sports-sync/index.vue
new file mode 100644
index 0000000..62d269c
--- /dev/null
+++ b/src/views/system/citizen-sports-sync/index.vue
@@ -0,0 +1,280 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 预览报名数据
+
+ 确认上传
+
+
+
+
+
+
+ 数据预览
+
+ {{ previewResult.eventName }}
+ {{ previewResult.registrationCount }}
+ {{ previewResult.uploadRecordCount }}
+ {{ previewResult.typeCount }}
+
+
+
+
+
+
+
+ 待上传人员明细
+
+
+
+
+
+
+
+
+ {{ formatSex(scope.row.playerSex) }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 上传结果
+
+ {{ executeResult.platformEventCode }}
+ {{ executeResult.requestedCount }}
+ {{ executeResult.successCount }} / {{ executeResult.failureCount }}
+ {{ executeResult.unattemptedCount }}
+
+
+
+
+
+
+
+
+
+
+
+ {{ scope.row.success ? '成功' : '失败' }}
+
+
+
+
+
+
+
+
+
+
+