diff --git a/src/api/common/upload.js b/src/api/common/upload.js
new file mode 100644
index 0000000..e744de1
--- /dev/null
+++ b/src/api/common/upload.js
@@ -0,0 +1,23 @@
+import '@/utils/ajaxfileupload';
+
+export const uploadFile = id => {
+ return new Promise((resolve, reject) => {
+ $.ajaxFileUpload({
+ fileElementId: id,
+ url: '/admin/upload/img',
+ type: 'post',
+ dataType: 'json',
+ secureuri: false,
+ async: true,
+ submitType: 'ajax',
+ success: function (res) {
+ resolve(res);
+ },
+ error: function (res, status, e) {
+ console.error(res);
+ console.error(status);
+ reject(e);
+ }
+ });
+ });
+};
\ No newline at end of file
diff --git a/src/api/game/gamePartner.js b/src/api/game/gamePartner.js
new file mode 100644
index 0000000..ea911cb
--- /dev/null
+++ b/src/api/game/gamePartner.js
@@ -0,0 +1,8 @@
+import request from "@/utils/request";
+
+export const getGamePartnerList = () => {
+ return request({
+ url: '/admin/gamePartner/info/listAll',
+ method: 'get',
+ });
+}
\ No newline at end of file
diff --git a/src/api/home/homeGameTab.js b/src/api/home/homeGameTab.js
new file mode 100644
index 0000000..9c0d2c4
--- /dev/null
+++ b/src/api/home/homeGameTab.js
@@ -0,0 +1,33 @@
+import request from "@/utils/request";
+
+export const getHomeGameTabPage = query => {
+ return request({
+ url: '/admin/home/game/tab/page',
+ method: 'get',
+ params: query,
+ });
+}
+
+export const saveHomeGameTab = data => {
+ return request({
+ url: '/admin/home/game/tab',
+ method: 'post',
+ data: data,
+ });
+}
+
+export const updateHomeGameTab = data => {
+ return request({
+ url: '/admin/home/game/tab',
+ method: 'post',
+ data: data,
+ });
+}
+
+export const delHomeGameTab = query => {
+ return request({
+ url: '/admin/home/game/tab',
+ method: 'get',
+ params: query,
+ });
+}
diff --git a/src/utils/maintainer.js b/src/utils/maintainer.js
index 497ce80..54d2144 100644
--- a/src/utils/maintainer.js
+++ b/src/utils/maintainer.js
@@ -56,4 +56,16 @@ export function param(json) {
return encodeURIComponent(key) + '=' +
encodeURIComponent(json[key])
})).join('&')
+}
+
+export function buildSelectOption(id, defVal, array) {
+ let $select = $(id);
+ for(let i in array) {
+ let obj = array[i];
+ let selected = false;
+ if (obj.value == defVal) {
+ selected = true;
+ }
+ $select.append('');
+ }
}
\ No newline at end of file
diff --git a/src/views/home/HomeGameTabAdminView.vue b/src/views/home/HomeGameTabAdminView.vue
new file mode 100644
index 0000000..6b7edca
--- /dev/null
+++ b/src/views/home/HomeGameTabAdminView.vue
@@ -0,0 +1,300 @@
+
+