dev_review
yujialong 10 months ago
parent 292d73a222
commit 717b8a08dd
  1. 9
      public/index.html
  2. 1
      src/assets/css/main.css
  3. 4
      src/setting.js
  4. 2
      src/views/course/AddCurriculum.vue
  5. 56
      src/views/data/Introduce.vue
  6. 11
      src/views/match/add/step2.vue
  7. 3
      src/views/serve/Configure.vue
  8. 150
      src/views/theoreticalCourse/list/buildPlatform/index.vue

@ -1,10 +1,11 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="en">
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="keywords" content="深圳或然科技中台"> <meta name="keywords" content="深圳或然科技中台" />
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no"> <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
<meta name="viewport" content="width=device-width, user-scalable=yes, shrink-to-fit=no" />
<script src="/styles/tinymce/tinymce.min.js"></script> <script src="/styles/tinymce/tinymce.min.js"></script>
<title>深圳或然科技中台</title> <title>深圳或然科技中台</title>
</head> </head>

@ -14,6 +14,7 @@ body,
} }
body { body {
min-width: 1200px;
font-family: 'PingFang SC', 'Helvetica Neue', Helvetica, 'microsoft yahei', arial, STHeiTi, sans-serif; font-family: 'PingFang SC', 'Helvetica Neue', Helvetica, 'microsoft yahei', arial, STHeiTi, sans-serif;
font-size: 14px; font-size: 14px;
} }

@ -12,8 +12,8 @@ if (isDev) {
jumpPath = 'http://192.168.31.125:8087/' // 本地调试-需要启动本地判分点系统 jumpPath = 'http://192.168.31.125:8087/' // 本地调试-需要启动本地判分点系统
sandPath = `http://${location.hostname}:9520` sandPath = `http://${location.hostname}:9520`
host = 'http://121.37.12.51/' host = 'http://121.37.12.51/'
// host = 'https://huorantech.cn/' host = 'https://huorantech.cn/'
host = 'http://192.168.31.217:9000/'// 榕 // host = 'http://192.168.31.217:9000/'// 榕
// host = 'http://192.168.31.51:9000/'// 赓 // host = 'http://192.168.31.51:9000/'// 赓
} else if (isPro) { } else if (isPro) {
jumpPath = 'https://www.huorantech.cn/judgmentPoint/' jumpPath = 'https://www.huorantech.cn/judgmentPoint/'

@ -1177,7 +1177,7 @@ $avatar-width: 104px;
} }
.systems { .systems {
margin-top: 10px; margin-top: 10px;
max-height: 550px; max-height: 520px;
overflow: auto; overflow: auto;
li { li {
display: flex; display: flex;

@ -1,38 +1,63 @@
<template> <template>
<div class="wrap"> <div class="wrap">
<div class="side"> <div class="side">
<el-tree ref="type" :data="typeList" node-key="id" accordion :default-expanded-keys="defaultActive" :current-node-key="categoryId" :props="defaultProps" :highlight-current="true" @current-change="typeClick"></el-tree> <el-tree ref="type"
:data="typeList"
node-key="id"
accordion
:default-expanded-keys="defaultActive"
:current-node-key="categoryId"
:props="defaultProps"
:highlight-current="true"
@current-change="typeClick"></el-tree>
</div> </div>
<div class="right"> <div class="right">
<div class="flex-between" style="margin-bottom: 10px;"> <div class="flex-between"
style="margin-bottom: 10px;">
<p>数据简介</p> <p>数据简介</p>
<el-button v-if="introduceText && !editing" type="primary" @click="editing = !editing" v-auth="'/data:数据简介:编辑'">编辑</el-button> <el-button v-if="introduceText && !editing"
type="primary"
@click="editing = !editing"
v-auth="'/data:数据简介:编辑'">编辑</el-button>
</div> </div>
<div class="intro" v-if="!introduceText && !editing"> <div class="intro"
v-if="!introduceText && !editing">
<p class="text">请添加简介</p> <p class="text">请添加简介</p>
<div class="btn"> <div class="btn">
<el-button type="primary" @click="edit">添加</el-button> <el-button type="primary"
@click="edit">添加</el-button>
</div> </div>
</div> </div>
<template v-if="introduceText || editing"> <template v-if="introduceText || editing">
<el-input placeholder="请输入简介" v-model="introduce" type="textarea" rows="5" :disabled="!editing"></el-input> <el-input placeholder="请输入简介"
v-model="introduce"
type="textarea"
rows="5"
:disabled="!editing"></el-input>
<div class="field"> <div class="field">
<p class="label">数据源</p> <p class="label">数据源</p>
<el-input style="width: 250px" placeholder="请输入数据源" v-model="dataSource" type="text" :disabled="!editing"></el-input> <el-input style="width: 250px"
placeholder="请输入数据源"
v-model="dataSource"
type="text"
:disabled="!editing"></el-input>
</div> </div>
</template> </template>
<div class="field"> <div class="field">
<p class="label">关键字</p> <p class="label">关键字</p>
<div class="tag-add" v-if="editing"> <div class="tag-add"
<el-input placeholder="请输入关键字" size="small" v-model="newKeyword"></el-input> v-if="editing">
<el-input placeholder="请输入关键字"
size="small"
v-model="newKeyword"></el-input>
<span v-if="editing"> <span v-if="editing">
<el-button @click="save" style="color: #9076FF;border: 1px solid #9076FF;border-radius:5px;height: 25px;line-height: 0px"> </el-button> <el-button @click="save"
style="color: #9076FF;border: 1px solid #9076FF;border-radius:5px;height: 25px;line-height: 0px"> </el-button>
</span> </span>
</div> </div>
<div class="tag-wrap"> <div class="tag-wrap">
<el-tag <el-tag :key="tag.id"
:key="tag.id"
:type="editing ? '' : 'info'" :type="editing ? '' : 'info'"
v-for="tag in keywordList" v-for="tag in keywordList"
:closable="editing" :closable="editing"
@ -42,9 +67,11 @@
</el-tag> </el-tag>
</div> </div>
</div> </div>
<div class="btns" v-if="editing"> <div class="btns"
v-if="editing">
<el-button @click="editing = false"> </el-button> <el-button @click="editing = false"> </el-button>
<el-button type="primary" @click="confirmData"> </el-button> <el-button type="primary"
@click="confirmData"> </el-button>
</div> </div>
</div> </div>
</div> </div>
@ -149,7 +176,6 @@ export default {
}, },
// //
saveType () { saveType () {
const id = this.categoryId // id const id = this.categoryId // id
this.$post(this.api.updateCategory, { this.$post(this.api.updateCategory, {
id, id,

@ -80,7 +80,8 @@
<span class="req">*</span> <span class="req">*</span>
团队参赛人数限制 团队参赛人数限制
<el-radio v-model="item.teamNumLimitOpt" <el-radio v-model="item.teamNumLimitOpt"
:label="0">不限制</el-radio> :label="0"
@change="item.teamNumLimit = 0">不限制</el-radio>
<el-radio v-model="item.teamNumLimitOpt" <el-radio v-model="item.teamNumLimitOpt"
:label="1">自定义</el-radio> :label="1">自定义</el-radio>
<el-input v-model.number="item.teamNumLimit" <el-input v-model.number="item.teamNumLimit"
@ -397,6 +398,8 @@ export default {
} }
form.competitionStageList = stages.slice(0, 1) // form.competitionStageList = stages.slice(0, 1) //
} else { // } else { //
let teamNumLimit = 0
const { competitionType, minTeamSize, maxTeamSize } = step1.completeCompetitionSetup // 01
for (const i in stages) { for (const i in stages) {
const e = stages[i] const e = stages[i]
if (rule !== 2 && !e.stageName) { if (rule !== 2 && !e.stageName) {
@ -404,7 +407,6 @@ export default {
util.errorMsg('请输入阶段名称') util.errorMsg('请输入阶段名称')
break break
} }
const { competitionType, maxTeamSize } = step1.completeCompetitionSetup // 01
// rule: 012 // rule: 012
// //
if (!rule) { if (!rule) {
@ -452,8 +454,13 @@ export default {
} }
e.resultAnnouncementTime = +e.resultAnnouncementTime e.resultAnnouncementTime = +e.resultAnnouncementTime
} }
if (e.teamNumLimit) teamNumLimit += e.teamNumLimit //
} }
if (invalid) return if (invalid) return
if (form.teamLimit && competitionType) {
if (stages.length > minTeamSize) return util.errorMsg('阶段数不得大于团队人数下限')
if (teamNumLimit > minTeamSize) return util.errorMsg('各阶段自定义的参赛人数之和不得大于团队人数下限')
}
if (form.resultCalculationMethod == 0 && !rule && pointWeight > 0 && pointWeight !== 100) return util.errorMsg('权重须等于100,请重新输入') if (form.resultCalculationMethod == 0 && !rule && pointWeight > 0 && pointWeight !== 100) return util.errorMsg('权重须等于100,请重新输入')
} }
} else { // 稿 } else { // 稿

@ -126,6 +126,7 @@
<el-pagination background <el-pagination background
@current-change="handleCurrentChange" @current-change="handleCurrentChange"
layout="total, prev, pager, next" layout="total, prev, pager, next"
:current-page="pageNo"
:total="totals"> :total="totals">
</el-pagination> </el-pagination>
</div> </div>
@ -227,7 +228,7 @@ export default {
// //
toBackstage (row) { toBackstage (row) {
if (row.systemId == 19) { if (row.systemId == 19) {
location.href = `${Setting.sandPath}/#/config?token=${sessionStorage.getItem('token')}&referrer=${encodeURIComponent(location.href)}` location.href = `${Setting.sandPath}/#/config?token=${sessionStorage.getItem('token')}&admin=1&referrer=${encodeURIComponent(location.href)}`
} else { } else {
this.$router.push(`/backstage?systemId=${row.systemId}&show=1&name=${row.systemName}`) this.$router.push(`/backstage?systemId=${row.systemId}&show=1&name=${row.systemName}`)
} }

@ -2,90 +2,162 @@
<!-- 平台自建 --> <!-- 平台自建 -->
<div style="padding-top: 24px"> <div style="padding-top: 24px">
<div class="tool"> <div class="tool">
<ul class="filter" style="align-items: flex-start"> <ul class="filter"
style="align-items: flex-start">
<li> <li>
<label>可见范围</label> <label>可见范围</label>
<el-select v-model="form.visibleRange" clearable placeholder="请选择可见范围" @change="getData"> <el-select v-model="form.visibleRange"
<el-option v-for="(item,index) in regions" :key="index" :label="item.name" :value="item.id"></el-option> clearable
placeholder="请选择可见范围"
@change="getData">
<el-option v-for="(item,index) in regions"
:key="index"
:label="item.name"
:value="item.id"></el-option>
</el-select> </el-select>
</li> </li>
<li> <li>
<label>课程分类</label> <label>课程分类</label>
<el-select v-model="form.categoryId" clearable placeholder="请选择课程分类" @change="getData"> <el-select v-model="form.categoryId"
<el-option label="不限" value=""></el-option> clearable
<el-option label="暂无分类" value="0"></el-option> placeholder="请选择课程分类"
<el-option v-for="(item,index) in classificationList" :key="index" :label="item.classificationName" :value="item.id"></el-option> @change="getData">
<el-option label="不限"
value=""></el-option>
<el-option label="暂无分类"
value="0"></el-option>
<el-option v-for="(item,index) in classificationList"
:key="index"
:label="item.classificationName"
:value="item.id"></el-option>
</el-select> </el-select>
</li> </li>
<li> <li>
<label>课程类型</label> <label>课程类型</label>
<el-select v-model="form.courseType" clearable placeholder="请选择课程类型" @change="getData"> <el-select v-model="form.courseType"
<el-option v-for="(item,index) in types" :key="index" :label="item.name" :value="item.id"></el-option> clearable
placeholder="请选择课程类型"
@change="getData">
<el-option v-for="(item,index) in types"
:key="index"
:label="item.name"
:value="item.id"></el-option>
</el-select> </el-select>
</li> </li>
<li> <li>
<label>搜索</label> <label>搜索</label>
<el-input placeholder="请输入理论课程名称/创建人" suffix-icon="el-icon-search" v-model="keyword" clearable size="small"></el-input> <el-input placeholder="请输入理论课程名称/创建人"
suffix-icon="el-icon-search"
v-model="keyword"
clearable
size="small"></el-input>
</li> </li>
</ul> </ul>
<div> <div>
<el-button v-auth="'平台自建:新增'" type="primary" round @click="addCourse">新增</el-button> <el-button v-auth="'平台自建:新增'"
<el-button v-auth="'平台自建:批量删除'" type="primary" round @click="delAllData">批量删除</el-button> type="primary"
round
@click="addCourse">新增</el-button>
<el-button v-auth="'平台自建:批量删除'"
type="primary"
round
@click="delAllData">批量删除</el-button>
</div> </div>
</div> </div>
<el-table :data="list" class="table" ref="table" stripe header-align="center" @selection-change="handleSelectionChange" row-key="id"> <el-table :data="list"
<el-table-column type="selection" width="80" align="center" :reserve-selection="true"></el-table-column> class="table"
<el-table-column type="index" width="100" label="序号" align="center"> ref="table"
stripe
header-align="center"
@selection-change="handleSelectionChange"
row-key="id">
<el-table-column type="selection"
width="80"
align="center"
:reserve-selection="true"></el-table-column>
<el-table-column type="index"
width="100"
label="序号"
align="center">
<template slot-scope="scope"> <template slot-scope="scope">
{{ scope.$index + (page - 1) * pageSize + 1 }} {{ scope.$index + (page - 1) * pageSize + 1 }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="courseName" label="课程名称" align="center"> <el-table-column prop="courseName"
label="课程名称"
align="center">
</el-table-column> </el-table-column>
<el-table-column label="可见范围" align="center"> <el-table-column label="可见范围"
align="center">
<template slot-scope="scope"> <template slot-scope="scope">
{{ regionName[scope.row.visibleRange] }} {{ regionName[scope.row.visibleRange] }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="createTime" label="创建时间" align="center"> <el-table-column prop="createTime"
label="创建时间"
align="center">
</el-table-column> </el-table-column>
<el-table-column prop="courseClassification" label="课程类型" align="center"> <el-table-column prop="courseClassification"
label="课程类型"
align="center">
<template slot-scope="scope"> <template slot-scope="scope">
{{ scope.row.courseType == 1 ? '付费' : '免费' }} {{ scope.row.courseType == 1 ? '付费' : '免费' }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="founder" label="创建人" align="center"> <el-table-column prop="founder"
label="创建人"
align="center">
</el-table-column> </el-table-column>
<el-table-column prop="courseClassification" label="课程分类" align="center" show-overflow-tooltip> <el-table-column prop="courseClassification"
label="课程分类"
align="center"
show-overflow-tooltip>
</el-table-column> </el-table-column>
<el-table-column label="操作" align="center" width="250"> <el-table-column label="操作"
align="center"
width="250">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button v-auth="'平台自建:编辑信息'" type="text" @click="editCourse(scope.row)">编辑信息</el-button> <el-button v-auth="'平台自建:编辑信息'"
<el-divider v-auth="'平台自建:编辑信息'" direction="vertical"></el-divider> type="text"
<el-button v-auth="'平台自建:内容设置'" type="text" @click="config(scope.row)">内容设置</el-button> @click="editCourse(scope.row)">编辑信息</el-button>
<el-divider v-auth="'平台自建:内容设置'" direction="vertical"></el-divider> <el-divider v-auth="'平台自建:编辑信息'"
<el-button v-auth="'平台自建:预览'" type="text" @click="preview(scope.row)">预览</el-button> direction="vertical"></el-divider>
<el-divider v-auth="'平台自建:预览'" direction="vertical"></el-divider> <el-button v-auth="'平台自建:内容设置'"
<el-button v-auth="'平台自建:删除'" type="text" @click="handleDelete(scope.row)">删除</el-button> type="text"
@click="config(scope.row)">内容设置</el-button>
<el-divider v-auth="'平台自建:内容设置'"
direction="vertical"></el-divider>
<el-button v-auth="'平台自建:预览'"
type="text"
@click="preview(scope.row)">预览</el-button>
<el-divider v-auth="'平台自建:预览'"
direction="vertical"></el-divider>
<el-button v-auth="'平台自建:删除'"
type="text"
@click="handleDelete(scope.row)">删除</el-button>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="可授权状态" align="center" width="120"> <el-table-column label="可授权状态"
align="center"
width="120">
<template slot-scope="scope"> <template slot-scope="scope">
<el-switch <el-switch v-auth="'平台自建:禁用'"
v-auth="'平台自建:禁用'"
v-model="scope.row.ztOpen" v-model="scope.row.ztOpen"
:active-value="0" :active-value="0"
:inactive-value="1" :inactive-value="1"
style="margin: 0 10px 0 5px" style="margin: 0 10px 0 5px"
:active-text="scope.row.ztOpen ? '关' : '开'" :active-text="scope.row.ztOpen ? '关' : '开'"
@change="switchOff($event,scope.row,scope.$index)" @change="switchOff($event,scope.row,scope.$index)"></el-switch>
></el-switch>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<div class="pagination"> <div class="pagination">
<el-pagination background layout="total, prev, pager, next" :total="total" @current-change="handleCurrentChange" :current-page="page"> <el-pagination background
layout="total, prev, pager, next"
:total="total"
@current-change="handleCurrentChange"
:current-page="page">
</el-pagination> </el-pagination>
</div> </div>
</div> </div>
@ -188,10 +260,10 @@ export default {
}, },
getData () { getData () {
this.getList() this.getList()
if (!Setting.isDev) { // if (!Setting.isDev) {
clearInterval(this.timer) // clearInterval(this.timer)
this.timer = setInterval(this.getRedis, 1000) // this.timer = setInterval(this.getRedis, 1000)
} // }
}, },
initData () { initData () {
this.page = 1; this.page = 1;

Loading…
Cancel
Save