diff --git a/src/assets/css/main.css b/src/assets/css/main.css
index 38ca490..d98ddcf 100644
--- a/src/assets/css/main.css
+++ b/src/assets/css/main.css
@@ -432,6 +432,9 @@ li {
.el-switch__label span {
font-size: 12px;
}
+.m-b-20 {
+ margin-bottom: 20px;
+}
@media (max-width: 720px) {
.el-message {
min-width: auto !important;
diff --git a/src/assets/img/avatar.png b/src/assets/img/avatar.png
new file mode 100644
index 0000000..2b5ca9f
Binary files /dev/null and b/src/assets/img/avatar.png differ
diff --git a/src/assets/img/close.png b/src/assets/img/close.png
new file mode 100644
index 0000000..24e36d4
Binary files /dev/null and b/src/assets/img/close.png differ
diff --git a/src/assets/img/mini-code.png b/src/assets/img/mini-code.png
deleted file mode 100644
index 72678f4..0000000
Binary files a/src/assets/img/mini-code.png and /dev/null differ
diff --git a/src/assets/img/mini-code1.png b/src/assets/img/mini-code1.png
deleted file mode 100644
index 0e5754a..0000000
Binary files a/src/assets/img/mini-code1.png and /dev/null differ
diff --git a/src/assets/img/mini.jpg b/src/assets/img/mini.jpg
new file mode 100644
index 0000000..a4e7a32
Binary files /dev/null and b/src/assets/img/mini.jpg differ
diff --git a/src/components/Sidebar.vue b/src/components/Sidebar.vue
index 2a48182..928cc82 100644
--- a/src/components/Sidebar.vue
+++ b/src/components/Sidebar.vue
@@ -82,6 +82,11 @@ export default {
index: '/data',
title: '数据管理'
},
+ {
+ icon: 'el-icon-box',
+ index: '/match',
+ title: '大赛管理'
+ },
{
icon: 'el-icon-office-building',
index: '/configure',
diff --git a/src/router/index.js b/src/router/index.js
index 43a628c..4627f66 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -117,6 +117,26 @@ let router = new Router({
component: () => import( '../views/data/Data.vue'),
// meta: { title: '数据管理' }
},
+ {
+ path: '/match',
+ component: () => import( '../views/match/list'),
+ // meta: { title: '数据管理' }
+ },
+ {
+ path: '/addMatch',
+ component: () => import( '../views/match/add'),
+ // meta: { title: '数据管理' }
+ },
+ {
+ path: '/matchManage',
+ component: () => import( '../views/match/manage'),
+ // meta: { title: '数据管理' }
+ },
+ {
+ path: '/noticeDetail',
+ component: () => import( '../views/match/manage/noticeDetail'),
+ // meta: { title: '数据管理' }
+ },
{
path: '/system',
component: () => import( '../views/system'),
diff --git a/src/setting.js b/src/setting.js
index f688425..70e8e90 100644
--- a/src/setting.js
+++ b/src/setting.js
@@ -10,8 +10,8 @@ let host = `${location.origin}:9000/`
if (isDev) {
jumpPath = "http://192.168.31.125:8087/"; // 本地调试-需要启动本地判分点系统
// host = 'http://39.108.250.202:9000/'
- // host = 'http://192.168.31.151:9000/'// 榕
- host = 'http://192.168.31.137:9000/'// 赓
+ host = 'http://192.168.31.151:9000/'// 榕
+ // host = 'http://192.168.31.137:9000/'// 赓
} else if (isPro) {
jumpPath = "http://www.huorantech.cn/judgmentPoint/";
}
diff --git a/src/store/index.js b/src/store/index.js
index 61664fa..733f155 100644
--- a/src/store/index.js
+++ b/src/store/index.js
@@ -21,7 +21,7 @@ const store = new Vuex.Store({
projectFields: {},
btns: [],
routes: [],
- customerPage: 1
+ customerPage: 1,
},
actions: {
setSystemId({ state,commit },systemId) {
diff --git a/src/utils/api.js b/src/utils/api.js
index ab882c9..8d880e6 100644
--- a/src/utils/api.js
+++ b/src/utils/api.js
@@ -274,4 +274,38 @@ export default {
queryUserInfoByPhone: `nakadai/partner-team/queryUserInfoByPhone`,
getAllTeam: `nakadai/partnerClassification/getAllTeam`,
partnerRemoval: `nakadai/partnerAccount/partnerRemoval`,
+ generateTransferCode: `nakadai/partnerAccount/generateTransferCode`,
+ transferAdmin: `nakadai/partnerAccount/transferAdmin`,
+ transferTeam: `nakadai/partnerAccount/transferTeam`,
+
+ // 赛事
+ contestPageConditionQueryByNakadai: `occupationlab/enterprise/match/contest/contestPageConditionQueryByNakadai`,
+ addContest: `occupationlab/enterprise/match/contest/addContest`,
+ editContest: `occupationlab/enterprise/match/contest/editContest`,
+ deleteContest: `occupationlab/enterprise/match/contest/deleteContest`,
+ getContest: `occupationlab/enterprise/match/contest/getContest`,
+ deleteAnnex: `occupationlab/contest/annex/delete`,
+ saveAnnex: `occupationlab/contest/annex/save`,
+ getSchoolsByProvince: `nakadai/nakadai/school/getSchoolsByProvince`,
+
+ // 竞赛进展
+ addContestProgress: `occupationlab/enterprise/match/contest-progress/addContestProgress`,
+ deleteContestProgress: `occupationlab/enterprise/match/contest-progress/deleteContestProgress`,
+ getContestProgress: `occupationlab/enterprise/match/contest-progress/getContestProgress`,
+ editContestProgress: `occupationlab/enterprise/match/contest-progress/editContestProgress`,
+ // 报名人员
+ addApplicant: `occupationlab/enterprise/match/applicant/addApplicant`,
+ disableContests: `occupationlab/enterprise/match/applicant/disableContests`,
+ excelExport: `occupationlab/enterprise/match/applicant/excelExport`,
+ queryApplicantByCondition: `occupationlab/enterprise/match/applicant/queryApplicantByCondition`,
+ disableApplicant: `occupationlab/enterprise/match/applicant/disableApplicant`,
+ batchExport: `occupationlab/enterprise/match/applicant/batchExport`,
+ // 赛事公告
+ addAnnouncement: `occupationlab/contest/announcement/addAnnouncement`,
+ amendmentAnnouncement: `occupationlab/contest/announcement/amendmentAnnouncement`,
+ deleteAnnouncement: `occupationlab/contest/announcement/deleteAnnouncement`,
+ queryAnnouncementByContestId: `occupationlab/contest/announcement/queryAnnouncementByContestId`,
+ queryAnnouncementDetails: `occupationlab/contest/announcement/queryAnnouncementDetails`,
+ deleteAnnouncementAnnex: `occupationlab/contestAnnouncementAnnex/delete`,
+ saveAnnouncementAnnex: `occupationlab/contestAnnouncementAnnex/save`,
};
\ No newline at end of file
diff --git a/src/views/join/index.vue b/src/views/join/index.vue
index a14c8d0..b69fcf8 100644
--- a/src/views/join/index.vue
+++ b/src/views/join/index.vue
@@ -41,6 +41,7 @@ export default {
return {
isMobile: util.isMobile(),
userName: this.$route.query.userName,
+ admin: this.$route.query.admin, // 是否是转让超管
form: {
id: this.$route.query.accountId,
partnerClassificationId: this.$route.query.id,
@@ -153,7 +154,7 @@ export default {
const { form } = this
form.uniqueIdentification = Date.now()
this.submiting = true
- this.$post(this.api.savePartnerAccount, form).then(res => {
+ this.$post(this.api[this.admin ? 'transferAdmin' : 'savePartnerAccount'], form).then(res => {
this.$router.push('/success')
}).catch(res => {
this.submiting = false
diff --git a/src/views/join/success.vue b/src/views/join/success.vue
index b3f96ac..5626206 100644
--- a/src/views/join/success.vue
+++ b/src/views/join/success.vue
@@ -7,7 +7,7 @@
你已加入城市合伙人计划
请保存并用微信扫以下二维码打开城市合伙人小程序
-
+
diff --git a/src/views/match/add/index.vue b/src/views/match/add/index.vue
new file mode 100644
index 0000000..fbc8036
--- /dev/null
+++ b/src/views/match/add/index.vue
@@ -0,0 +1,594 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
展示宽度为220,高度140,JPG/PNG/GIF,3MB以内
+
+
+
+
+
+
+
+
+
展示宽度为1920,高度300,JPG/PNG/GIF,3MB以内
+
+
+
+
+
+ 全平台
+
+
+ 指定区域、院校
+ 选择院校
+ {{ rangeName }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 点击上传
+
+
支持扩展名:.rar .zip .doc .docx .pdf .jpg...
+
+
+
+
+ 保存
+ 发布
+ 预览
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/match/list/index.vue b/src/views/match/list/index.vue
new file mode 100644
index 0000000..304bc45
--- /dev/null
+++ b/src/views/match/list/index.vue
@@ -0,0 +1,323 @@
+
+
+
筛选
+
+
+
+
+
+
+ {{ scope.$index + (page - 1) * pageSize + 1 }}
+
+
+
+
+
+
+ {{ sourceList.find(e => e.id === scope.row.platformSource).name }}
+
+
+
+
+ {{ rangeList.find(e => e.id === scope.row.competitionScope).name }}
+
+
+
+
+
+ {{ scope.row.publishStatus ? '已发布' : '未发布' }}
+
+
+
+
+ {{ scope.row.playStartTime }} ~ {{ scope.row.playEndTime }}
+
+
+
+
+
+ 管理
+
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/match/list/manage/matchDetail.vue b/src/views/match/list/manage/matchDetail.vue
new file mode 100644
index 0000000..ece2024
--- /dev/null
+++ b/src/views/match/list/manage/matchDetail.vue
@@ -0,0 +1,450 @@
+
+
+
+
+
+
+
+
+
+
+
展示宽度为220,高度140,JPG/PNG/GIF,3MB以内
+
+
+
+
+
+
+
+
+
展示宽度为1920,高度300,JPG/PNG/GIF,3MB以内
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 保存
+ 发布
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/match/manage/index.vue b/src/views/match/manage/index.vue
new file mode 100644
index 0000000..2a29cba
--- /dev/null
+++ b/src/views/match/manage/index.vue
@@ -0,0 +1,73 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/match/manage/matchDetail.vue b/src/views/match/manage/matchDetail.vue
new file mode 100644
index 0000000..971243f
--- /dev/null
+++ b/src/views/match/manage/matchDetail.vue
@@ -0,0 +1,641 @@
+
+
+
+
+
+
+
+
+
+
+
展示宽度为220,高度140,JPG/PNG/GIF,3MB以内
+
+
+
+
+
+
+
+
+
展示宽度为1920,高度300,JPG/PNG/GIF,3MB以内
+
+
+
+
+
+ 全平台
+
+
+ 指定区域、院校
+ 选择院校
+ {{ rangeName }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 点击上传
+
+
支持扩展名:.rar .zip .doc .docx .pdf .jpg...
+
+
+
+
+ 发布
+ 取消
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/match/manage/matchProgress.vue b/src/views/match/manage/matchProgress.vue
new file mode 100644
index 0000000..b66c238
--- /dev/null
+++ b/src/views/match/manage/matchProgress.vue
@@ -0,0 +1,238 @@
+
+
+
+
+
+
+ {{ scope.$index + (pageNo - 1) * pageSize + 1 }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 编辑
+ 保存
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/match/manage/matchSignup.vue b/src/views/match/manage/matchSignup.vue
new file mode 100644
index 0000000..2750164
--- /dev/null
+++ b/src/views/match/manage/matchSignup.vue
@@ -0,0 +1,153 @@
+
+
+
+
+
+
+
+
+
+ {{ scope.$index + (pageNo - 1) * pageSize + 1 }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/match/manage/notice.vue b/src/views/match/manage/notice.vue
new file mode 100644
index 0000000..a83119a
--- /dev/null
+++ b/src/views/match/manage/notice.vue
@@ -0,0 +1,124 @@
+
+
+
+
+ 新增
+
+
+
+
+
+ {{ scope.$index + (pageNo - 1) * pageSize + 1 }}
+
+
+
+
+
+
+
+
+
+
+ {{ scope.row.status ? '已发布' : '草稿' }}
+
+
+
+
+ 编辑
+ 删除
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/match/manage/noticeDetail.vue b/src/views/match/manage/noticeDetail.vue
new file mode 100644
index 0000000..c952db3
--- /dev/null
+++ b/src/views/match/manage/noticeDetail.vue
@@ -0,0 +1,300 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 点击上传
+
+
支持扩展名:.rar .zip .doc .docx .pdf .jpg...
+
+
+
+
+ 草稿
+ 发布
+ 取消
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/order/AddOrder.vue b/src/views/order/AddOrder.vue
index 61bb4a5..0806556 100644
--- a/src/views/order/AddOrder.vue
+++ b/src/views/order/AddOrder.vue
@@ -1556,6 +1556,7 @@ export default {
// 城市合伙人人员
getBm() {
this.$post(this.api.partnerAccountList, {
+ type: 1,
partnerClassificationId: this.form.teamId,
keyWord: '',
pageNum: 1,
diff --git a/src/views/parner/staff.vue b/src/views/parner/staff.vue
index 2f2f7ca..7247540 100644
--- a/src/views/parner/staff.vue
+++ b/src/views/parner/staff.vue
@@ -14,8 +14,8 @@
-
-
+
+
组织架构
添加分类
@@ -99,7 +99,7 @@
- 添加城市合伙人
+ 添加城市合伙人
@@ -114,8 +114,9 @@
重置密码
-
+ 删除
移除
+ 转让超管
@@ -123,7 +124,7 @@
-
+
链接/二维码失效时间:{{ expireTime }}
城市合伙人 邀请链接
加盟商、合作伙伴可以通过这个链接加入 城市合伙人计划
@@ -135,6 +136,29 @@
加盟商、合作伙伴可以通过这个二维码加入 城市合伙人计划
+
+
+
+ 转给团队成员
+ 邀请外部人员
+
+
+
+
+
+ -
+
+
+
{{ item.userName }}
+
+
+
+
+
+
@@ -253,7 +277,12 @@ export default {
expireTime: '',
curTeamId: '',
submiting: false, // 新增编辑防抖标识
- setKey: ''
+ setKey: '',
+ transferVisible: false,
+ chooseVisible: false,
+ members: [],
+ choosePartnerId: '',
+ curRow: ''
};
},
watch: {
@@ -445,7 +474,7 @@ export default {
this.$confirm("确定要删除吗?", "提示", {
type: "warning"
}).then(() => {
- this.$post(`${this.api.delPartnerAccount}?teamId=${row.partnerClassificationId}`).then(res => {
+ this.$post(`${this.api.delPartnerAccount}?accountId=${row.accountId}`).then(res => {
util.successMsg("删除成功")
this.getList()
}).catch(res => {})
@@ -465,6 +494,11 @@ export default {
}).catch(res => {})
}).catch(() => {})
},
+ // 转让超管
+ transfer(row) {
+ this.curRow = row
+ this.transferVisible = true
+ },
// 重置密码
resetPassword(row) {
const newPwd = Setting.initialPassword
@@ -474,30 +508,68 @@ export default {
}).catch(res => {})
}).catch(() => {})
},
- // 添加
- add() {
- const curNode = this.$refs.orgTree.getCurrentNode()
- if (curNode && curNode.isTeam) {
- util.warningMsg('请选择分类添加城市合伙人!')
+ // 显示选择成员
+ showChoose() {
+ this.chooseVisible = true
+ this.$post(this.api.partnerAccountList, {
+ type: 1,
+ partnerClassificationId: this.curRow.partnerClassificationId,
+ keyWord: '',
+ pageNum: 1,
+ pageSize: 10000
+ }).then(({ pageList }) => {
+ this.members = pageList.records
+ }).catch(err => {})
+ },
+ // 选择成员提交
+ chooseSubmit() {
+ const { curRow } = this
+ const id = this.choosePartnerId
+ const member = this.members.find(e => e.partnerId === id) // 获取选择的成员
+ if (member) {
+ this.$post(this.api.transferTeam, {
+ adminPartnerId: curRow.partnerId,
+ adminTeamId: curRow.partnerClassificationId,
+ memberName: member.userName,
+ memberPartnerId: member.partnerId,
+ memberTeamId: member.partnerClassificationId
+ }).then(({ pageList }) => {
+ this.chooseVisible = false
+ this.transferVisible = false
+ this.initData()
+ }).catch(err => {})
} else {
- const { accountId } = this
- // 获取邀请码
- this.$post(`${this.api.generateInvitationCode}?accountId=${accountId}`).then(({ expireTime, invitationCode }) => {
- const date = new Date(Date.now() + expireTime * 1000) // 返回的秒,要*1000
- this.expireTime = `${date.getFullYear()}-${util.preZero(date.getMonth() + 1)}-${util.preZero(date.getDate())} ${util.preZero(date.getHours())}:${util.preZero(date.getMinutes())}:${util.preZero(date.getMinutes())}`
- this.parnerVisible = true
- const cur = this.$refs.orgTree.getCurrentKey()
- const link = `${location.origin}${Setting.isDev || Setting.isPro ? '' : '/nakadai'}/#/join?accountId=${accountId}&id=${cur || ''}&isTeam=1`
+ util.warningMsg('请选择成员!')
+ }
+ },
+ // 添加
+ add(transfer) {
+ // 非转让超管,不能在团队下加团队
+ if (!transfer) {
+ const curNode = this.$refs.orgTree.getCurrentNode()
+ if (curNode && curNode.isTeam) return util.warningMsg('请选择分类添加城市合伙人!')
+ }
+ const { curRow } = this
+ const accountId = transfer ? curRow.accountId : this.accountId
+ // 获取邀请码
+ this.$post(`${this.api[transfer ? 'generateTransferCode' : 'generateInvitationCode']}?accountId=${accountId}`).then(({ expireTime }) => {
+ const date = new Date(Date.now() + expireTime * 1000) // 返回的秒,要*1000
+ this.expireTime = `${date.getFullYear()}-${util.preZero(date.getMonth() + 1)}-${util.preZero(date.getDate())} ${util.preZero(date.getHours())}:${util.preZero(date.getMinutes())}:${util.preZero(date.getMinutes())}`
+ this.parnerVisible = true
+ const cur = transfer ? curRow.partnerClassificationId : this.$refs.orgTree.getCurrentKey()
+ const link = `${location.origin}${Setting.isDev || Setting.isPro ? '' : '/nakadai'}/#/join?accountId=${accountId}&id=${cur || ''}${transfer ? '&admin=1' : '&isTeam=1'}`
- // 生成二维码
- this.link = link
- axios.get(`${this.api.generationQrCode}?url=${encodeURIComponent(link)}`, {
- responseType: 'blob'
- }).then(({ data }) => {
- this.qrcode = window.URL.createObjectURL(data)
- }).catch(res => {})
+ // 生成二维码
+ this.link = link
+ axios.get(`${this.api.generationQrCode}?url=${encodeURIComponent(link)}`, {
+ responseType: 'blob'
+ }).then(({ data }) => {
+ this.qrcode = window.URL.createObjectURL(data)
}).catch(res => {})
- }
+ }).catch(res => {})
+ },
+ closeAdd() {
+ this.initData()
},
// 复制链接
copy(e) {
@@ -560,4 +632,28 @@ export default {
border-radius: 4px;
}
}
+/deep/.choose-dia {
+ .member-list {
+ li {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ margin-bottom: 10px;
+ }
+ .info {
+ display: inline-flex;
+ align-items: center;
+ }
+ img {
+ width: 40px;
+ height: 40px;
+ }
+ .name {
+ margin-left: 10px;
+ }
+ .el-radio__label {
+ display: none;
+ }
+ }
+}
\ No newline at end of file