赛事联调

dev_2022-06-14
yujialong 3 years ago
parent f11780ee8f
commit af85874783
  1. 2
      src/assets/css/main.css
  2. BIN
      src/assets/img/label.png
  3. BIN
      src/assets/img/mini.jpg
  4. 4
      src/setting.js
  5. 14
      src/utils/api.js
  6. 29
      src/views/join/index.vue
  7. 104
      src/views/match/add/index.vue
  8. 52
      src/views/match/list/index.vue
  9. 57
      src/views/match/manage/index.vue
  10. 67
      src/views/match/manage/matchDetail.vue
  11. 4
      src/views/match/manage/matchProgress.vue
  12. 59
      src/views/match/manage/matchSignup.vue
  13. 10
      src/views/match/manage/noticeDetail.vue
  14. 8
      src/views/order/AddOrder.vue
  15. 2
      src/views/parner/mobileRole.vue
  16. 28
      src/views/parner/staff.vue
  17. 2
      src/views/system/manageLog.vue

@ -48,7 +48,7 @@ li {
.content {
width: auto;
height: 100%;
min-height: 100%;
padding: 20px;
box-sizing: border-box;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 334 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 45 KiB

After

Width:  |  Height:  |  Size: 47 KiB

@ -9,7 +9,7 @@ let jumpPath = `${location.origin}/judgmentPoint`
let host = `${location.origin}:9000/`
if (isDev) {
jumpPath = "http://192.168.31.125:8087/"; // 本地调试-需要启动本地判分点系统
// host = 'http://39.108.250.202:9000/'
// host = 'http://121.37.12.51:9000/'
host = 'http://192.168.31.151:9000/'// 榕
// host = 'http://192.168.31.137:9000/'// 赓
} else if (isPro) {
@ -24,7 +24,7 @@ const Setting = {
platformId: 3, // 平台标识,1职站,2数据平台,3中台,4合伙人
jumpPath, // 判分点系统跳转路径前缀
apiBaseURL: host, // 请求路径前缀
uploadURL: 'http://39.108.250.202:9000/', // 阿里云oss域名
uploadURL: 'http://121.37.12.51:9000/', // 阿里云oss域名
// 平台列表
platformList: [
{

@ -1,7 +1,7 @@
import Setting from "@/setting";
const host = Setting.apiBaseURL
const host1 = 'http://192.168.31.151:9000/'
const host1 = 'http://192.168.31.137:9000/'
const uploadURL = Setting.uploadURL
export default {
@ -9,7 +9,7 @@ export default {
logins: `users/users/user/login`, //登录
verification: `${host}users/users/user/captcha`,// 验证码图片 保留host
bindPhoneOrEmail: `users/users/userAccount/bindPhoneOrEmail`,// 绑定手机
sendPhoneOrEmailCode: `users/users/userAccount/sendPhoneOrEmailCode`,// 手机验证码
sendPhoneOrEmailCode: `${host1}users/users/userAccount/sendPhoneOrEmailCode`,// 手机验证码
getUserRolesPermissionMenu: `users/user-role/getUserRolesPermissionMenu`,
staffTemplate: `http://www.huorantech.cn/template/%E6%89%B9%E9%87%8F%E5%AF%BC%E5%85%A5%E5%91%98%E5%B7%A5%E6%A8%A1%E6%9D%BF.xlsx`, // 后台账号模板
@ -268,15 +268,16 @@ export default {
modifyPartnerAccount: `nakadai/partnerAccount/modifyPartnerAccount`,
partnerAccountDetail: `nakadai/partnerAccount/partnerAccountDetail`,
partnerAccountList: `nakadai/partnerAccount/partnerAccountList`,
savePartnerAccount: `nakadai/partnerAccount/savePartnerAccount`,
savePartnerAccount: `${host1}nakadai/partnerAccount/savePartnerAccount`,
generateInvitationCode: `nakadai/partnerAccount/generateInvitationCode`,
generationQrCode: `nakadai/partnerAccount/generationQrCode`,
queryUserInfoByPhone: `nakadai/partner-team/queryUserInfoByPhone`,
queryUserInfoByPhone: `${host1}nakadai/partner-team/queryUserInfoByPhone`,
getAllTeam: `nakadai/partnerClassification/getAllTeam`,
partnerRemoval: `nakadai/partnerAccount/partnerRemoval`,
generateTransferCode: `nakadai/partnerAccount/generateTransferCode`,
transferAdmin: `nakadai/partnerAccount/transferAdmin`,
transferTeam: `nakadai/partnerAccount/transferTeam`,
partnerAccountMergeList: `nakadai/partnerAccount/partnerAccountMergeList`,
// 赛事
contestPageConditionQueryByNakadai: `occupationlab/enterprise/match/contest/contestPageConditionQueryByNakadai`,
@ -287,6 +288,7 @@ export default {
deleteAnnex: `occupationlab/contest/annex/delete`,
saveAnnex: `occupationlab/contest/annex/save`,
getSchoolsByProvince: `nakadai/nakadai/school/getSchoolsByProvince`,
disabledEvents: `occupationlab/enterprise/match/contest/disabledEvents`,
// 竞赛进展
addContestProgress: `occupationlab/enterprise/match/contest-progress/addContestProgress`,
@ -296,10 +298,10 @@ export default {
// 报名人员
addApplicant: `occupationlab/enterprise/match/applicant/addApplicant`,
disableContests: `occupationlab/enterprise/match/applicant/disableContests`,
excelExport: `occupationlab/enterprise/match/applicant/excelExport`,
excelExport: `${host}occupationlab/enterprise/match/applicant/excelExport`,
queryApplicantByCondition: `occupationlab/enterprise/match/applicant/queryApplicantByCondition`,
disableApplicant: `occupationlab/enterprise/match/applicant/disableApplicant`,
batchExport: `occupationlab/enterprise/match/applicant/batchExport`,
exportDataInBatches: `${host}occupationlab/enterprise/match/applicant/exportDataInBatches`,
// 赛事公告
addAnnouncement: `occupationlab/contest/announcement/addAnnouncement`,
amendmentAnnouncement: `occupationlab/contest/announcement/amendmentAnnouncement`,

@ -126,22 +126,19 @@ export default {
},
//
phoneChange() {
//
if (this.form.isTeam == 0) {
const { form } = this
this.$get(this.api.queryUserInfoByPhone, {
phone: form.phone
}).then(({ info }) => {
//
if (info) {
this.repeat = true
form.account = info.account
form.userName = info.userName
} else {
this.repeat = false
}
}).catch(res => {})
}
const { form } = this
this.$get(this.api.queryUserInfoByPhone, {
phone: form.phone
}).then(({ info }) => {
//
if (info) {
this.repeat = true
form.account = info.account
form.userName = info.userName
} else {
this.repeat = false
}
}).catch(res => {})
},
//
submit() {

@ -150,6 +150,27 @@
<el-button size="small" type="primary" @click="rangeSubmit"> </el-button>
</span>
</el-dialog>
<el-dialog title="预览" :visible.sync="previewVisible" width="1080px" custom-class="preview-dia" :close-on-click-modal="false">
<div class="match">
<div class="info">
<h6 class="title">{{ form.name }}</h6>
<div class="meta">最近编辑时间{{ form.updateTime }}</div>
</div>
<div class="l-title" id="part1"><img src="@/assets/img/label.png" alt=""> 竞赛信息</div>
<div v-if="form.description" class="texts ql-editor" v-html="form.description"></div>
<template v-if="form.contestAnnexList">
<h6 class="p-title">附件下载</h6>
<ul class="files">
<li v-for="(item, i) in form.contestAnnexList" :key="i">
<el-link class="file-name" type="primary" @click="previewFile(item)">{{ item.fileName }}</el-link>
<el-link type="primary" :underline="false" @click="download(item)">下载</el-link>
</li>
</ul>
</template>
</div>
</el-dialog>
</div>
</template>
@ -208,14 +229,16 @@ export default {
const { level, value } = node
//
if (!level) {
const data = []
that.$store.state.provinceList.map(e => {
data.push({
value: e.provinceId,
label: e.provinceName
that.$get(that.api.queryProvince).then(({ list }) => {
const data = []
list.map(e => {
data.push({
value: e.provinceId,
label: e.provinceName
})
})
})
resolve(data)
resolve(data)
}).catch(res => {})
} else if (level === 1) {
//
that.$get(that.api.queryCity, {
@ -254,7 +277,8 @@ export default {
}
},
submiting: false,
updateTime: 0
updateTime: 0,
previewVisible: false
};
},
components: {
@ -309,7 +333,6 @@ export default {
type: e.length > 2 ? 0 : 1
})
})
console.log(44, this.range, this.$refs.range.getCheckedNodes())
this.form.contestRangeList = data
// name
@ -377,6 +400,16 @@ export default {
this.carouselUrl = ''
}).catch(res => {})
},
//
previewFile(item) {
const { filePath } = item
const suffix = filePath.substr(filePath.lastIndexOf('.') + 1)
window.open((util.isDoc(suffix) || suffix === 'pdf' ? 'https://view.officeapps.live.com/op/view.aspx?src=' : '') + item.filePath)
},
//
download(item) {
util.downloadFile(item.fileName, item.filePath)
},
//
save(status) {
if (this.submiting) return false;
@ -385,7 +418,7 @@ export default {
form.undertaker = this.undertakerList.filter(d => d).join();
if (form.competitionScope == 2 && !form.contestRangeList.length) return util.warningMsg('请选择区域、院校')
if (!form.name) return util.warningMsg("请填写竞赛名称");
if (status == 0) {
if (status == 1) {
if (!form.sponsor) return util.warningMsg("请填写主办方");
if (!form.signUpStartTime) return util.warningMsg("请选择报名时间");
}
@ -394,9 +427,9 @@ export default {
let signUpEndTime = new Date(form.signUpEndTime).getTime();
let playStartTime = new Date(form.playStartTime).getTime();
if (signUpStartTime && now > signUpStartTime) return util.warningMsg("报名时间不能早于当前时间");
if (!form.playStartTime && status == 0) return util.warningMsg("请选择竞赛时间");
if (!form.playStartTime && status == 1) return util.warningMsg("请选择竞赛时间");
if (playStartTime && playStartTime < signUpEndTime) return util.warningMsg("竞赛时间不能早于报名结束时间");
if (!form.description && status == 0) return util.warningMsg("请填写竞赛详情");
if (!form.description && status == 1) return util.warningMsg("请填写竞赛详情");
this.submiting = true
form.publishStatus = status
@ -422,17 +455,16 @@ export default {
},
//
preview() {
this.previewVisible = true
},
back(i) {
const id = this.form.cid
back() {
const updateTime = this.updateTime
//
if ((id && updateTime > 1) || (!id && updateTime)) {
if (updateTime) {
this.$confirm(`编辑的内容未保存,是否保存?`, '提示', {
type: 'warning'
}).then(() => {
this.save(1)
this.save(0)
}).catch(() => {
this.backPage()
})
@ -591,4 +623,42 @@ $upload-lg-height: 150px;
font-weight: bold;
}
}
.match {
.l-title{
display: flex;
align-items: center;
margin-bottom: 12px;
font-size: 14px;
color: #333;
img{
margin-right: 5px;
}
}
.title{
width: 67%;
margin: 0 auto;
font-size: 28px;
text-align: center;
color: #0B1D30;
}
.info .meta{
padding: 16px 0;
font-size: 12px;
color: #999;
text-align: center;
}
.texts {
margin-bottom: 30px;
}
.files {
li {
display: flex;
align-items: center;
margin: 10px 0;
}
.file-name {
margin-right: 10px;
}
}
}
</style>

@ -84,11 +84,11 @@
<el-table-column label="发布状态" align="center" width="120">
<template slot-scope="scope">
<el-switch
v-model="scope.row.isOpen"
v-model="scope.row.ztOpen"
:active-value="0"
:inactive-value="1"
style="margin: 0 10px 0 5px"
:active-text="scope.row.isOpen ? '关' : '开'"
:active-text="scope.row.ztOpen ? '关' : '开'"
@change="switchOff($event,scope.row,scope.$index)"
></el-switch>
</template>
@ -108,6 +108,7 @@ export default {
name: "match",
data() {
return {
timer: null,
keyword: "",
sourceList: [
{
@ -204,27 +205,32 @@ export default {
},
mounted() {
this.getData()
this.$once('hook:beforeDestroy', function() {
clearInterval(this.timer)
})
},
methods: {
getData() {
const { form } = this
this.$post(this.api.contestPageConditionQueryByNakadai, {
pageNum: this.page,
pageSize: this.pageSize,
competitionScope: form.competitionScope === '' ? null : form.competitionScope,
endTime: form.endTime || null,
keyWord: this.keyword || null,
platformSource: form.platformSource === '' ? null : form.platformSource,
startTime: form.startTime || null,
}).then(({ data }) => {
this.matchData = data.records
this.total = data.total
this.$refs.table.clearSelection()
if (!this.matchData.length && this.total) {
this.page--
this.getData()
}
}).catch(res => {})
// this.timer = setInterval(() => {
this.$post(this.api.contestPageConditionQueryByNakadai, {
pageNum: this.page,
pageSize: this.pageSize,
competitionScope: form.competitionScope === '' ? null : form.competitionScope,
endTime: form.endTime || null,
keyWord: this.keyword || null,
platformSource: form.platformSource === '' ? null : form.platformSource,
startTime: form.startTime || null,
}).then(({ data }) => {
this.matchData = data.records
this.total = data.total
this.$refs.table.clearSelection()
if (!this.matchData.length && this.total) {
this.page--
this.getData()
}
}).catch(res => {})
// }, 1000)
},
initData() {
this.page = 1;
@ -289,9 +295,13 @@ export default {
return date;
},
switchOff(val, row, index) {
this.$put(`${this.api.publishContest}/${row.id}/${val}`)
this.$post(this.api.disabledEvents, {
contestId: row.id,
isOpen: val,
type: 0 // (01)
})
.then(res => {
val == 1 ? util.warningMsg("该赛事信息已隐藏对学生端用户不可见") : util.successMsg("该赛事信息已对学生端用户公开");
val == 1 ? util.warningMsg('禁用成功') : util.successMsg('启用成功')
})
.catch(err => {
});

@ -3,15 +3,15 @@
<div>
<el-card shadow="hover" class="m-b-20">
<div class="flex-between">
<el-page-header @back="goBack" :content="'赛事管理'"></el-page-header>
<el-page-header @back="back" :content="'赛事管理'"></el-page-header>
</div>
</el-card>
<div class="page" style="margin-bottom: 24px">
<div class="tabs">
<a class="item" v-for="(item,index) in tabs" @waitChange="tabChangeWait()" :key="index" :class="{active: index == active}" @click="tabChange(index)">{{ item }}</a>
<a class="item" v-for="(item,index) in tabs" :key="index" :class="{active: index == active}" @click="tabChange(index)">{{ item }}</a>
</div>
<!-- 大赛详情 -->
<MatchDetail v-if="active == 'first'" />
<MatchDetail v-if="active == 'first'" ref="detail" />
<!-- 竞赛进展 -->
<MatchProgress v-else-if="active == 'second'" />
<!-- 公告通知 -->
@ -28,13 +28,11 @@ import MatchDetail from "./matchDetail";
import MatchProgress from "./matchProgress";
import notice from "./notice";
import MatchSignup from "./matchSignup";
import EventBus from "@/libs/bus.js";
export default {
name: "matchManage",
data() {
return {
active: "first",
active: this.$route.query.tab || "first",
tabs: {
first: "大赛详情",
second: "竞赛进展",
@ -50,19 +48,44 @@ export default {
MatchSignup
},
methods: {
goBack() {
this.$router.back();
back() {
this.handleSave(0) && this.$router.back()
},
tabChange(index) {
this.active = index
// confirm
handleSave(i) {
//
if (this.active === 'first') {
const detail = this.$refs.detail
console.log(11, detail.updateTime, i)
if (detail.updateTime > 1) {
this.$confirm(`编辑的内容未保存,是否保存?`, '提示', {
type: 'warning'
}).then(() => {
detail.save(1)
this.backOrTab(i)
}).catch(() => {
this.backOrTab(i)
})
} else {
this.backOrTab(i)
}
return false
} else {
return true
}
},
tabChangeWait(index) {
this.tabChange(index)
}
},
computed: {
wait() {
return this.$store.state.wait
backPage(){
this.$router.back()
},
tabSwitch(i) {
this.active = i
this.$router.push(`/matchManage?id=${this.$route.query.id}&tab=${i}`)
},
backOrTab(i) {
i ? this.tabSwitch(i) : this.backPage()
},
tabChange(i) {
this.handleSave(i) && this.tabSwitch(i)
}
}
};

@ -124,7 +124,7 @@
</el-upload>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="save(0)">发布</el-button>
<el-button type="primary" @click="save(1)">发布</el-button>
<el-button @click="$router.back()">取消</el-button>
</el-form-item>
</el-form>
@ -203,14 +203,16 @@ export default {
//
console.log('lazy', node)
if (!level) {
const data = []
that.$store.state.provinceList.map(e => {
data.push({
value: e.provinceId,
label: e.provinceName
that.$get(that.api.queryProvince).then(({ list }) => {
const data = []
list.map(e => {
data.push({
value: e.provinceId,
label: e.provinceName
})
})
})
resolve(data)
resolve(data)
}).catch(res => {})
} else if (level === 1) {
//
that.$get(that.api.queryCity, {
@ -310,17 +312,31 @@ export default {
}
//
const range = []
contest.contestRangeList.map(e => {
const item = [+e.provinceId]
e.cityId && item.push(+e.cityId)
e.schoolId && item.push(+e.schoolId)
range.push(item)
})
this.range = range
const ranges = contest.contestRangeList
if (ranges) {
const range = []
ranges.map(e => {
const item = [+e.provinceId]
e.cityId && item.push(+e.cityId)
e.schoolId && item.push(+e.schoolId)
range.push(item)
})
this.range = range
}
// name
const rangeName = contest.contestRangeRespList
if (rangeName) {
const range = []
rangeName.map(e => {
range.push(e.type ? (e.provinceName || e.cityName) : e.schoolName)
})
this.rangeName = range.join(',')
}
this.form = contest
// name
this.$nextTick(() => {
this.updateTime = 1
// const checked = this.$refs.range.getCheckedNodes()
// console.log(444, contest, checked)
// const name = []
@ -329,9 +345,6 @@ export default {
// })
// this.rangeName = name.join('')
})
this.form = contest
}).catch(err => {})
},
//
@ -431,7 +444,7 @@ export default {
form.undertaker = this.undertakerList.filter(d => d).join();
if (form.competitionScope == 2 && !form.contestRangeList.length) return util.warningMsg('请选择区域、院校')
if (!form.name) return util.warningMsg("请填写竞赛名称");
if (status == 0) {
if (status == 1) {
if (!form.sponsor) return util.warningMsg("请填写主办方");
if (!form.signUpStartTime) return util.warningMsg("请选择报名时间");
}
@ -440,15 +453,16 @@ export default {
let signUpEndTime = new Date(form.signUpEndTime).getTime();
let playStartTime = new Date(form.playStartTime).getTime();
if (signUpStartTime && now > signUpStartTime) return util.warningMsg("报名时间不能早于当前时间");
if (!form.playStartTime && status == 0) return util.warningMsg("请选择竞赛时间");
if (!form.playStartTime && status == 1) return util.warningMsg("请选择竞赛时间");
if (playStartTime && playStartTime < signUpEndTime) return util.warningMsg("竞赛时间不能早于报名结束时间");
if (!form.description && status == 0) return util.warningMsg("请填写竞赛详情");
if (!form.description && status == 1) return util.warningMsg("请填写竞赛详情");
this.submiting = true
form.publishStatus = status
if (form.id) delete form.contestAnnexList
if (this.form.id) {
delete form.contestAnnexList
this.$post(this.api.editContest, form).then(res => {
this.updateTime = 1
this.submiting = false;
util.successMsg("修改成功");
this.$router.back();
@ -471,11 +485,10 @@ export default {
preview() {
},
back(i) {
const id = this.form.cid
back() {
const updateTime = this.updateTime
//
if ((id && updateTime > 1) || (!id && updateTime)) {
if (updateTime > 1) {
this.$confirm(`编辑的内容未保存,是否保存?`, '提示', {
type: 'warning'
}).then(() => {

@ -77,7 +77,9 @@ export default {
row.operate = true
},
getData() {
this.$get(`${this.api.getContestProgress}/${this.id}`).then(res => {
this.$get(this.api.getContestProgress, {
contestId: this.id
}).then(res => {
this.listData = res.contestProgressList;
for(let index=0; index<this.listData.length; index++) {
//

@ -15,10 +15,10 @@
</div>
<el-table ref="table" :data="listData" class="table" stripe header-align="center" @selection-change="handleSelectionChange" row-key="id">
<el-table-column type="selection" :selectable="row => row.isDisable!=0" width="80" align="center" :reserve-selection="true"></el-table-column>
<el-table-column type="selection" :selectable="row => row.isDisable!=1" width="80" align="center" :reserve-selection="true"></el-table-column>
<el-table-column type="index" width="60" label="序号" align="center">
<template slot-scope="scope">
{{ scope.$index + (pageNo - 1) * pageSize + 1 }}
{{ scope.$index + (page - 1) * pageSize + 1 }}
</template>
</el-table-column>
<el-table-column prop="school" label="学校">
@ -33,9 +33,9 @@
<template slot-scope="scope">
<el-switch
v-model="scope.row.isDisable"
:active-text="scope.row.isDisable ? '开' : '关'"
:active-value="1"
:inactive-value="0"
:active-text="scope.row.isDisable ? '关' : '开'"
active-value="0"
inactive-value="1"
style="margin: 0 10px 0 5px"
@change="switchOff($event,scope.row,scope.$index)"
></el-switch>
@ -43,7 +43,7 @@
</el-table-column>
</el-table>
<div class="pagination">
<el-pagination background layout="total, prev, pager, next" :total="totals" @current-change="handleCurrentChange" :current-page="pageNo">
<el-pagination background layout="total, prev, pager, next" :total="totals" @current-change="handleCurrentChange" :current-page="page">
</el-pagination>
</div>
</div>
@ -51,18 +51,18 @@
<script>
import util from "@/libs/util";
import Setting from "@/setting";
import axios from 'axios'
export default {
name: "matchSignup",
data() {
return {
token: util.local.get(Setting.tokenKey),
token: sessionStorage.getItem('token'),
id: this.$route.query.id,
keyword: "",
listData: [],
multipleSelection: [],
pageNo: 1,
page: 1,
pageSize: 10,
totals: 0
};
@ -80,13 +80,14 @@ export default {
},
methods: {
getData() {
let data = {
contestId: this.id
};
if (this.keyword) data.name = this.keyword;
this.$get(`${this.api.queryApplicantByCondition}/${this.pageNo}/${this.pageSize}`, data).then(res => {
this.listData = res.applicantList;
this.totals = res.total;
this.$post(this.api.queryApplicantByCondition, {
pageNum: this.page,
pageSize: this.pageSize,
contestId: this.id,
keyWord: this.keyword,
}).then(({ data }) => {
this.listData = data.records;
this.totals = data.total;
this.$refs.table.clearSelection();
}).catch(res => {
});
@ -95,7 +96,7 @@ export default {
this.multipleSelection = val;
},
handleCurrentChange(val) {
this.pageNo = val;
this.page = val;
this.getData();
},
switchOff(val, row, index) {
@ -133,16 +134,20 @@ export default {
location.href = `${this.api.excelExport}?contestId=${this.id}`;
},
exportBatch() {
if (this.multipleSelection.length != "") {
let newArr = this.multipleSelection;
let data = newArr.map(item => {
return item.id;
});
location.href = `${this.api.batchExport}?ids=${data.join(",")}`;
} else {
util.errorMsg("请先选择数据 !");
}
const data = this.multipleSelection
if (data.length) {
data.map((e, i) => e.id = i + 1)
axios.post(this.api.exportDataInBatches, data, {
headers: {
token: this.token
},
responseType: 'blob'
}).then((res) => {
util.downloadFileDirect(`报名人员.xls`, new Blob([res.data]))
}).catch(res => {})
} else {
util.errorMsg("请先选择数据 !");
}
}
}
};

@ -11,7 +11,7 @@
<el-form label-width="170px" label-suffix=":" size="small">
<el-form-item label="公告标题">
<div class="d-inline-block">
<el-input placeholder="请输入竞赛名称" v-model="form.announcementTitle" clearable></el-input>
<el-input placeholder="请输入公告名称" v-model="form.announcementTitle" clearable></el-input>
</div>
</el-form-item>
<el-form-item label="正文">
@ -106,12 +106,14 @@ export default {
}
}).catch(err => {})
},
//
save(status) {
const form = this.form
if (!form.announcementTitle) return util.warningMsg('请填写公告标题')
if (!form.announcementText) return util.warningMsg('请填写正文')
form.status = status
if (form.id) {
delete form.announcementAnnexList
this.$post(this.api.amendmentAnnouncement, form).then(res => {
util.successMsg("修改成功")
this.$router.back()
@ -126,18 +128,18 @@ export default {
handleExceed(files, fileList) {
util.warningMsg(`当前限制选择 1 个文件,如需更换,请删除上一个文件再重新选择!`);
},
//
uploadSuccess(res) {
const file = res.data.filesResult
const { id } = this.form
this.form.announcementAnnexList.push({
const data = {
announcementId: id || '',
fileName: this.fileName,
filePath: file.fileUrl || file.fileId
})
}
this.form.contestAnnexList.push(data)
//
id && this.$post(this.api.saveAnnouncementAnnex, data).then(res => {}).catch(res => {})
console.log(44, this.form)
},
//
beforeUpload(file) {

@ -1045,7 +1045,6 @@ export default {
order: form,//
orderOther: tempArr//
};
debugger
this.loading = true;
if (this.editDisabled) {
this.$post(this.api.orderUpdate, param).then(res => {
@ -1695,6 +1694,13 @@ export default {
.mag {
margin-right: 20px;
}
.small {
display: flex;
align-items: center;
.el-input {
margin-right: 5px;
}
}
.uploadTitle {
width: 100%;
height: 40px;

@ -25,7 +25,7 @@
<el-table-column label="操作" align="center" width="200">
<template slot-scope="scope">
<el-button type="text" @click="showRole(scope.row)" v-auth="'/system:角色权限:查看'">查看</el-button>
<el-button v-if="scope.row.roleName !== '超级管理员'" type="text" @click="editRole(scope.row)" v-auth="'/system:角色权限:编辑'">编辑</el-button>
<el-button type="text" @click="editRole(scope.row)" v-auth="'/system:角色权限:编辑'">编辑</el-button>
<el-button v-if="scope.row.roleName !== '超级管理员' && scope.row.roleName !== '管理员'" type="text" @click="handleDelete(scope.row)" v-auth="'/system:角色权限:删除'">删除</el-button>
</template>
</el-table-column>

@ -4,15 +4,16 @@
<div class="side">
<div class="m-b-20">
<h6 class="p-title">或然城市合伙人</h6>
<el-radio-group v-model="type" @change="initData">
<el-radio-group v-model="type" @change="typeChange">
<div class="m-b-20">
<el-radio :label="1">团队合伙人</el-radio>
<el-radio :label="1">城市合伙人</el-radio>
</div>
<div>
<el-radio :label="2">未加入团队的合伙人</el-radio>
</div>
</el-radio-group>
</div>
<el-divider></el-divider>
<div>
<div class="flex-between">
<h6 class="p-title" style="margin-bottom: 0">组织架构</h6>
@ -110,13 +111,13 @@
<el-table-column prop="account" label="账号" align="center" min-width="100"></el-table-column>
<el-table-column prop="phone" label="手机号" align="center" width="120"></el-table-column>
<el-table-column prop="partnerClassificationName" label="团队名称" align="center" min-width="200" show-overflow-tooltip></el-table-column>
<el-table-column prop="roleName" label="授权角色" align="center" min-width="200" show-overflow-tooltip></el-table-column>
<el-table-column v-if="!type" prop="roleName" label="授权角色" align="center" min-width="200" show-overflow-tooltip></el-table-column>
<el-table-column label="操作" align="center" width="300">
<template slot-scope="scope">
<el-button type="text" v-auth="'/system:后台账号:重置密码'" @click="resetPassword(scope.row)">重置密码</el-button>
<el-button v-if="type === 2" type="text" v-auth="'/system:后台账号:删除'" @click="del(scope.row)">删除</el-button>
<el-button v-if="type" type="text" v-auth="'/system:后台账号:删除'" @click="del(scope.row)">删除</el-button>
<el-button v-else-if="scope.row.isTeam == 1" type="text" v-auth="'/system:后台账号:删除'" @click="transfer(scope.row)">转让超管</el-button>
<el-button v-if="scope.row.isTeam == 0" type="text" v-auth="'/system:后台账号:删除'" @click="remove(scope.row)">移除</el-button>
<el-button v-if="scope.row.isTeam == 1 && type === 1" type="text" v-auth="'/system:后台账号:删除'" @click="transfer(scope.row)">转让超管</el-button>
</template>
</el-table-column>
</el-table>
@ -322,6 +323,12 @@ export default {
})
this.getList()
},
//
typeChange() {
this.$refs.orgTree.setCurrentKey(null)
this.curTeamId = ''
this.initData()
},
//
addOrg(node, data) {
this.typeForm = {
@ -341,7 +348,8 @@ export default {
this.orgListDia = list
this.typeForm = {
id: data.id,
partnerClassificationName: data.partnerClassificationName
partnerClassificationName: data.partnerClassificationName,
isTeam: data.isTeam
}
this.orgVisible = true
const { ids } = data
@ -420,7 +428,7 @@ export default {
},
//
handleNodeClick(data) {
this.type = 1
this.type = ''
this.curTeamId = ''
if (data.isTeam) {
this.curTeamId = data.id
@ -428,7 +436,6 @@ export default {
this.getTeamId(data.children)
}
if (!this.curTeamId) this.curTeamId = data.id
// this.$refs.orgTree.setCurrentKey(this.curTeamId)
this.initData()
this.$refs.table.clearSelection()
},
@ -445,8 +452,8 @@ export default {
},
//
getList() {
this.$post(this.api.partnerAccountList, {
type: this.type,
this.$post(this.api[this.type ? 'partnerAccountMergeList' : 'partnerAccountList'], {
type: this.type || 1,
partnerClassificationId: this.curTeamId,
keyWord: this.keyWord,
pageNum: this.page,
@ -591,7 +598,6 @@ export default {
}
.wrap {
display: flex;
height: calc(100vh - 223px);
padding: 0 24px;
.side {
width: 300px;

@ -32,7 +32,7 @@
</div>
<el-timeline class="timeline">
<el-timeline-item placement="top" v-for="(item, i) in listData" :key="i" :class="['item' + i, {draft: item.draft}]">
<p class="sign">{{ item.draft ? '未发布' : item.updateTime }}</p>
<p class="sign">{{ item.draft ? '未发布' : item.createTime }}</p>
<div class="ver">
<div>
{{ item.versionName + (item.draft ? '(草稿)' : '') }}

Loading…
Cancel
Save