课程下载资源,角色权限(未完成)

dev_2022-03-03
yujialong 3 years ago
parent 5ab1e1d55c
commit 77c9fb958e
  1. 3
      src/components/Header.vue
  2. 39
      src/components/Sidebar.vue
  3. 67
      src/config/index.js
  4. 21
      src/libs/auth/generateBtnPermission.js
  5. 6
      src/libs/bus.js
  6. 10
      src/libs/random_str.js
  7. 32
      src/libs/route/addRoutes.js
  8. 26
      src/libs/route/generateRoutes.js
  9. 6
      src/libs/route/resetRouter.js
  10. 43
      src/libs/util.cookies.js
  11. 83
      src/libs/util.db.js
  12. 136
      src/libs/util.js
  13. 5
      src/main.js
  14. 2
      src/router/index.js
  15. 15
      src/setting.js
  16. 9
      src/store/index.js
  17. 360
      src/utils/api.js
  18. 22
      src/utils/core.js
  19. 12
      src/utils/http.js
  20. 28
      src/views/course/contentSettings.vue
  21. 3
      src/views/customer/customer.vue
  22. 25
      src/views/serve/backstage/model.vue
  23. 1
      src/views/system/addLog.vue
  24. 72
      src/views/system/manageLog.vue
  25. 2
      src/views/system/role.vue
  26. 7
      src/views/user/User.vue

@ -40,9 +40,8 @@ export default {
}, },
loginout() { loginout() {
localStorage.removeItem('ms_username'); localStorage.removeItem('ms_username');
this.$router.push('/login');
sessionStorage.clear() sessionStorage.clear()
location.reload()
}, },
goHome(){ goHome(){
this.$router.push('/customer') this.$router.push('/customer')

@ -11,7 +11,7 @@
router router
@select="handleSelect" @select="handleSelect"
> >
<template v-for="item in items"> <template v-for="item in menus">
<template v-if="item.subs"> <template v-if="item.subs">
<el-submenu :index="item.index" :key="item.index"> <el-submenu :index="item.index" :key="item.index">
<template slot="title"> <template slot="title">
@ -51,10 +51,12 @@
</template> </template>
<script> <script>
import Setting from '@/setting'
import addRoutes from '@/libs/route/addRoutes'
export default { export default {
data() { data() {
return { return {
items: [ menuList: [
{ {
icon: 'el-icon-school', icon: 'el-icon-school',
index: 'customer', index: 'customer',
@ -91,6 +93,7 @@ export default {
title: '系统配置' title: '系统配置'
}, },
], ],
menus: [],
onRoutes:'customer' onRoutes:'customer'
}; };
}, },
@ -104,16 +107,38 @@ export default {
}) })
} }
}, },
mounted() {
sessionStorage.getItem('sideBar') && this.handleSelect(sessionStorage.getItem('sideBar'))
sessionStorage.getItem('token') && this.getPer() //
},
methods:{ methods:{
handleSelect(index){ handleSelect(index){
this.onRoutes = index this.onRoutes = index
sessionStorage.setItem('sideBar',index) sessionStorage.setItem('sideBar',index)
}, },
}, initMenu() {
created() { if (Setting.dynamicRoute) {
if(sessionStorage.getItem('sideBar')){ const routes = this.routes
this.handleSelect(sessionStorage.getItem('sideBar')) const menus = []
} this.menuList.map(e => {
routes.find(n => n.name === e.index) && menus.push(e)
})
this.menus = menus
} else {
this.menus = this.menuList
}
},
//
getPer() {
this.$get(`${this.api.getUserRolesPermissionMenu}?platformId=${Setting.platformId}`).then(res => {
const routes = res.permissionMenu[0].children
addRoutes(routes)
this.initMenu()
}).catch(err => {
//
this.menus = this.menuList
})
},
} }
}; };
</script> </script>

@ -1,67 +0,0 @@
export default {
/**
* @description 配置显示在浏览器标签的title
*/
title: 'saas平台服务端管理系统',
/**
* @description 是否使用国际化默认为false
* 如果不使用则需要在路由中给需要在菜单中展示的路由设置meta: {title: 'xxx'}
* 用来在菜单中显示文字
*/
locale: 'zh',
/**
* @description 长时间未操作自动退出登录时间
*/
autoLogoutTime: 3600000,
/**
* @description 默认密码
*/
initialPassword: '111aaa',
/**
* 所属平台1->职站 2->数据平台 3->中台
*/
platformId: 3,
/**
* @description 系统列表
*/
systemList: [
{
id: 1,
label: 'Python程序设计教学系统'
}
// ,{
// id: 2,
// label: '跨国仿真系统'
// },{
// id: 3,
// label: '期权期货系统'
// }
,{
id: 4,
label: '经济金融建模实验教学系统'
},{
id: 5,
label: 'Python可视化实验教学系统'
},{
id: 6,
label: '金融随机过程实验教学系统'
},{
id: 7,
label: '量化投资策略建模实验教学系统'
},{
id: 8,
label: '大数据分析实验教学系统'
},
{
id: 9,
label: 'Python数据清洗教学实验系统'
},{
id: 10,
label: 'Python数据采集(爬虫)教学实验系统'
}
],
/**
* @description 是否使用动态路由
*/
dynamicRoute: false
}

@ -0,0 +1,21 @@
/**
* @description 生成按钮级别权限组
* */
import store from '@/store';
export default function(data){
let result = []
data.map(e => {
e.children.map(n => {
if(n.children.length){
result.push(`${e.name}:${n.name}`)
n.children.map(j => {
e.path ? result.push(`${e.path}:${n.name}:${j.name}`) : result.push(`${n.path}:${j.name}`)
})
}else{
result.push(`${e.path}:${n.name}`)
}
})
})
store.dispatch('auth/addBtnAuth',result)
}

@ -0,0 +1,6 @@
import Vue from 'vue';
// 使用 Event Bus
const bus = new Vue();
export default bus;

@ -0,0 +1,10 @@
// 生成随机字符串
export default function (len = 32) {
const $chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890';
const maxPos = $chars.length;
let str = '';
for (let i = 0; i < len; i++) {
str += $chars.charAt(Math.floor(Math.random() * maxPos));
}
return str;
}

@ -0,0 +1,32 @@
import store from '@/store';
import router from '@/router';
import generateBtnPermission from '../auth/generateBtnPermission';
const newRoutes = []
function createMeta(item){
let meta = { title: item.name }
return meta
}
function createRoute(data){
data.map(e => {
if(e.path){
let meta = createMeta(e)
newRoutes.push({
name: e.path,
path: e.path,
meta
})
}
// 递归生成路由集合
e.children && e.children.length && createRoute(e.children)
})
}
export default function(data,path){
generateBtnPermission(data)
createRoute(data)
console.log('route', newRoutes)
// store.dispatch('addRoutes',newRoutes)
}

@ -0,0 +1,26 @@
import store from '@/store';
import router from '@/router';
export default function(){
setTimeout(() => {
let routes = store.state.auth.routes
routes.forEach(e => {
if(e.path == '/'){
e.component = () => import('@/layouts/home/index.vue')
}else{
e.component = () => import(`@/pages/${e.path}.vue`)
}
e.children && e.children.forEach(n => {
n.path && (n.component = () => import(`@/pages/${n.path}.vue`))
})
})
routes.push({
path: '*',
redirect: '404'
})
router.addRoutes(routes)
},500)
}

@ -0,0 +1,6 @@
import router from '@/router';
export default function(){
const newRouter = createRouter()
router.matcher = newRouter.matcher
}

@ -0,0 +1,43 @@
import Cookies from 'js-cookie';
import Setting from '@/setting';
const cookies = {};
/**
* @description 存储 cookie
* @param {String} name cookie name
* @param {String} value cookie value
* @param {Object} cookieSetting cookie setting
*/
cookies.set = function (name = 'default', value = '', cookieSetting = {}) {
let currentCookieSetting = {
expires: Setting.cookiesExpires
};
Object.assign(currentCookieSetting, cookieSetting);
Cookies.set(`admin-${name}`, value, currentCookieSetting);
};
/**
* @description 拿到 cookie
* @param {String} name cookie name
*/
cookies.get = function (name = 'default') {
return Cookies.get(`admin-${name}`);
};
/**
* @description 拿到 cookie 全部的值
*/
cookies.getAll = function () {
return Cookies.get();
};
/**
* @description 删除 cookie
* @param {String} name cookie name
*/
cookies.remove = function (name = 'default') {
return Cookies.remove(`admin-${name}`);
};
export default cookies;

@ -0,0 +1,83 @@
/**
* localStorage
* @调用_local.set('access_token', '123456', 5000);
* @调用_local.get('access_token');
*/
var _local = {
//存储,可设置过期时间
set(key, value, expires) {
let params = { key, value, expires };
if (expires) {
// 记录何时将值存入缓存,毫秒级
var data = Object.assign(params, { startTime: new Date().getTime() });
localStorage.setItem(key, JSON.stringify(data));
} else {
if (Object.prototype.toString.call(value) == '[object Object]') {
value = JSON.stringify(value);
}
if (Object.prototype.toString.call(value) == '[object Array]') {
value = JSON.stringify(value);
}
localStorage.setItem(key, value);
}
},
//取出
get(key) {
let item = localStorage.getItem(key);
// 先将拿到的试着进行json转为对象的形式
try {
item = JSON.parse(item);
} catch (error) {
// eslint-disable-next-line no-self-assign
item = item;
}
// 如果有startTime的值,说明设置了失效时间
if (item && item.startTime) {
let date = new Date().getTime();
// 如果大于就是过期了,如果小于或等于就还没过期
if (date - item.startTime > item.expires) {
localStorage.removeItem(key);
return false;
} else {
return item.value;
}
} else {
return item;
}
},
// 删除
remove(key) {
localStorage.removeItem(key);
},
// 清除全部
clear() {
localStorage.clear();
}
}
/**
* sessionStorage
*/
var _session = {
get: function (key) {
var data = sessionStorage[key];
if (!data || data === "null") {
return null;
}
return data;
},
set: function (key, value) {
sessionStorage[key] = value;
},
// 删除
remove(key) {
sessionStorage.removeItem(key);
},
// 清除全部
clear() {
sessionStorage.clear();
}
}
export { _local, _session }

@ -0,0 +1,136 @@
import cookies from './util.cookies'
import {_local,_session} from './util.db'
import { Message } from 'element-ui'
const util = {
cookies,
local: _local,
session: _session,
// 传入身份证获取生日
getBirth(idCard) {
var birthday = "";
if(idCard != null && idCard != ""){
if(idCard.length == 15){
birthday = "19"+idCard.slice(6,12);
} else if(idCard.length == 18){
birthday = idCard.slice(6,14);
}
birthday = birthday.replace(/(.{4})(.{2})/,"$1-$2-");
//通过正则表达式来指定输出格式为:1990-01-01
}
return birthday;
},
// new Date('2020-11-12 00:00:00') 在IE下失效,因此把-替换成/
dateCompatible(date) {
return date.replace(/\-/g, '/')
},
// 日期时间前面补零
formateTime(num) {
return num < 10 ? `0${num}` : num
},
//返回格式化时间,传参例如:"yyyy-MM-dd hh:mm:ss"
formatDate(fmt,date) {
var date = date ? date : new Date()
var o = {
"M+" : date.getMonth()+1, //月份
"d+" : date.getDate(), //日
"h+" : date.getHours(), //小时
"m+" : date.getMinutes(), //分
"s+" : date.getSeconds(), //秒
"q+" : Math.floor((date.getMonth()+3)/3), //季度
"S" : date.getMilliseconds() //毫秒
};
if(/(y+)/.test(fmt)) {
fmt=fmt.replace(RegExp.$1, (date.getFullYear()+"").substr(4 - RegExp.$1.length));
}
for(var k in o) {
if(new RegExp("("+ k +")").test(fmt)){
fmt = fmt.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00"+ o[k]).substr((""+ o[k]).length)));
}
}
return fmt;
},
// 移除数组中指定值
removeByValue(arr, val) {
for(var i=0; i<arr.length; i++) {
if(arr[i] == val) {
arr.splice(i, 1);
break;
}
}
},
// 传入文件后缀判断是否是视频
isVideo(ext) {
if('mp4,3gp,mov,m4v,avi,dat,mkv,flv,vob,rmvb,rm,qlv'.includes(ext)) return true
return false
},
// 传入文件后缀判断是否是音频
isAudio(ext) {
if('mp3,aac,ape,flac,wav,wma,amr,mid'.includes(ext)) return true
return false
},
// 传入文件后缀判断是否是图片
isImg(ext) {
if('jpg,jpeg,png,gif,svg,psd'.includes(ext)) return true
return false
},
// 传入文件后缀判断是否是pdf以外的文档
isDoc(ext) {
if(!util.isVideo(ext) && !util.isAudio(ext) && !util.isImg(ext) && ext != 'pdf') return true
return false
},
// 循环去除html标签
removeHtmlTag(list,attr) {
list.map(n => {
n[attr] = n[attr].replace(/<\/?.+?>/gi,'')
})
return list
},
// 传入文件名获取文件后缀
getFileExt(fileName) {
return fileName.substring(fileName.lastIndexOf('.') + 1)
},
// 传入文件名和路径,下载图片视频,支持跨域,a标签加download不支持跨域
downloadFile(fileName,url) {
var x = new XMLHttpRequest()
x.open("GET", url, true)
x.responseType = 'blob'
x.onload=function(e) {
var url = window.URL.createObjectURL(x.response)
var a = document.createElement('a')
a.href = url
a.download = fileName
a.click()
}
x.send()
},
// 传入文件名和数据,下载文件
downloadFileDirect(fileName,data) {
if ('download' in document.createElement('a')) { // 非IE下载
const elink = document.createElement('a')
elink.download = fileName
elink.style.display = 'none'
elink.href = URL.createObjectURL(data)
document.body.appendChild(elink)
elink.click()
URL.revokeObjectURL(elink.href) // 释放URL 对象
document.body.removeChild(elink)
} else { // IE10+下载
navigator.msSaveBlob(data, fileName)
}
},
// 成功提示
successMsg(message,duration = 1500) {
return Message.success({message,showClose: true,offset: (document.documentElement.clientHeight - 40) / 2,duration})
},
// 警告提示
warningMsg(message,duration = 1500) {
return Message.warning({message,showClose: true,offset: (document.documentElement.clientHeight - 40) / 2,duration})
},
// 错误提示
errorMsg(message,duration = 1500) {
return Message.error({message,showClose: true,offset: (document.documentElement.clientHeight - 40) / 2,duration})
},
}
export default util

@ -11,9 +11,8 @@ import './utils/rem';
import {post,get,del,put} from './utils/http'; import {post,get,del,put} from './utils/http';
import api from './utils/api'; import api from './utils/api';
import store from './store' import store from './store'
import config from '@/config'
import { systemStatus, systemTypeStatus, systemAttributionStatus, courseTypeStatus, import { systemStatus, systemTypeStatus, systemAttributionStatus, courseTypeStatus,
hoursStatus, roleStatus, orderTypeFn, orderStatusFn, orderNatureFn, Percentage, removeByValue, isIE, encodeString, formatDate } from './utils/core'; hoursStatus, roleStatus, orderTypeFn, orderStatusFn, orderNatureFn, Percentage, removeByValue, isIE, encodeString, formatDate, downloadFile } from './utils/core';
import preventReClick from './utils/preventReClick' //防多次点击,重复提交 import preventReClick from './utils/preventReClick' //防多次点击,重复提交
@ -23,7 +22,6 @@ Vue.prototype.$post = post;
Vue.prototype.$del = del; Vue.prototype.$del = del;
Vue.prototype.$put = put; Vue.prototype.$put = put;
Vue.prototype.$config = config
Vue.prototype.systemStatus = systemStatus; Vue.prototype.systemStatus = systemStatus;
Vue.prototype.systemTypeStatus = systemTypeStatus; Vue.prototype.systemTypeStatus = systemTypeStatus;
Vue.prototype.systemAttributionStatus = systemAttributionStatus; Vue.prototype.systemAttributionStatus = systemAttributionStatus;
@ -38,6 +36,7 @@ Vue.prototype.removeByValue = removeByValue;
Vue.prototype.isIE = isIE; Vue.prototype.isIE = isIE;
Vue.prototype.encodeString = encodeString; Vue.prototype.encodeString = encodeString;
Vue.prototype.formatDate = formatDate; Vue.prototype.formatDate = formatDate;
Vue.prototype.downloadFile = downloadFile;
Vue.config.productionTip = false; Vue.config.productionTip = false;
Vue.use(ElementUI, { size: 'small' }); Vue.use(ElementUI, { size: 'small' });

@ -94,7 +94,7 @@ let router = new Router({
}, },
{ {
path: '/contentSettings', path: '/contentSettings',
component: () => import( '../views/course/courseconfig.vue'), component: () => import( '../views/course/contentSettings.vue'),
// meta: { title: '内容设置' } // meta: { title: '内容设置' }
}, },
{ {

@ -14,18 +14,18 @@ if (isDev) {
jumpPath = "http://192.168.31.125:8087/"; // 本地调试-需要启动本地判分点系统 jumpPath = "http://192.168.31.125:8087/"; // 本地调试-需要启动本地判分点系统
// host = "http://www.huorantech.cn:9000";//线上 // host = "http://www.huorantech.cn:9000";//线上
// host = "http://39.108.250.202:9000";//测试 // host = "http://39.108.250.202:9000";//测试
host = 'http://192.168.31.151:9000'// 榕 host = 'http://192.168.31.151:9000/'// 榕
// host = 'http://192.168.31.137:9000'// 赓 // host = 'http://192.168.31.137:9000'// 赓
} else if (isTest) { } else if (isTest) {
// jumpPath = "http://124.71.12.62/judgmentPoint/"; // jumpPath = "http://124.71.12.62/judgmentPoint/";
jumpPath = "http://39.108.250.202/judgmentPoint/"; jumpPath = "http://39.108.250.202/judgmentPoint/";
host = "http://39.108.250.202:9000"; host = "http://39.108.250.202:9000/";
// host = "http://124.71.12.62:9000";//线上 // host = "http://124.71.12.62:9000";//线上
} else if (isPro) { } else if (isPro) {
// jumpPath = "http://124.71.12.62/judgmentPoint/"; // jumpPath = "http://124.71.12.62/judgmentPoint/";
// host = "http://124.71.12.62:9000";//线上 // host = "http://124.71.12.62:9000";//线上
jumpPath = "http://www.huorantech.cn/judgmentPoint/"; jumpPath = "http://www.huorantech.cn/judgmentPoint/";
host = "http://www.huorantech.cn:9000";//线上 host = "http://www.huorantech.cn:9000/";//线上
} }
@ -36,6 +36,7 @@ const Setting = {
platformId: 3, // 平台标识,1职站,2数据平台,3中台 platformId: 3, // 平台标识,1职站,2数据平台,3中台
jumpPath, // 判分点系统跳转路径前缀 jumpPath, // 判分点系统跳转路径前缀
host, // 请求路径前缀 host, // 请求路径前缀
uploadURL: 'http://39.108.250.202:9000/', // 阿里云oss域名
// 平台列表 // 平台列表
platformList: [ platformList: [
{ {
@ -50,7 +51,13 @@ const Setting = {
id: 3, id: 3,
name: '中台' name: '中台'
} }
] ],
// 是否使用动态路由
dynamicRoute: true,
/**
* @description 默认密码
*/
initialPassword: '111aaa',
}; };
export default Setting; export default Setting;

@ -18,6 +18,8 @@ const store = new Vuex.Store({
schoolId: '', schoolId: '',
lastSystemId: null, lastSystemId: null,
projectFields: {}, projectFields: {},
btns: [],
routes: []
}, },
actions: { actions: {
setSystemId({ state,commit },systemId) { setSystemId({ state,commit },systemId) {
@ -67,7 +69,12 @@ const store = new Vuex.Store({
schoolIdData (state, payload) { schoolIdData (state, payload) {
state.schoolId = payload.schoolId state.schoolId = payload.schoolId
}, },
addBtnAuth(state,btns) {
state.btns = btns
},
addRoutes(state,routes) {
state.routes = routes
}
} }
}); });

@ -1,215 +1,223 @@
import Setting from "@/setting"; import Setting from "@/setting";
const host = Setting.host; const uploadURL = Setting.uploadURL
const host1 = 'http://192.168.31.137:9000' const host1 = 'http://192.168.31.137:9000'
const uploadURL = "http://39.108.250.202:9000";
export default { export default {
logins: `${host}/users/users/user/login`, //登录 logins: `users/users/user/login`, //登录
verification: `${host}/users/users/user/captcha`,// 验证码图片 verification: `users/users/user/captcha`,// 验证码图片
bindPhoneOrEmail: `${host}/users/users/userAccount/bindPhoneOrEmail`,// 绑定手机 bindPhoneOrEmail: `users/users/userAccount/bindPhoneOrEmail`,// 绑定手机
sendPhoneOrEmailCode: `${host}/users/users/userAccount/sendPhoneOrEmailCode`,// 手机验证码 sendPhoneOrEmailCode: `users/users/userAccount/sendPhoneOrEmailCode`,// 手机验证码
// 订单管理 // 订单管理
orderAdd: `${host}/nakadai/nakadai/order/add`,// 订单添加 orderAdd: `nakadai/nakadai/order/add`,// 订单添加
orderDelete: `${host}/nakadai/nakadai/order/delete`,// 删除定单 orderDelete: `nakadai/nakadai/order/delete`,// 删除定单
orderDetail: `${host}/nakadai/nakadai/order/get`,// 订单详情 orderDetail: `nakadai/nakadai/order/get`,// 订单详情
orderList: `${host}/nakadai/nakadai/order/list`,// 订单列表 orderList: `nakadai/nakadai/order/list`,// 订单列表
orderUpdate: `${host}/nakadai/nakadai/order/update`,// 订单更新 orderUpdate: `nakadai/nakadai/order/update`,// 订单更新
renew: `${host}/nakadai/nakadai/orderOther/renew`,// 续费信息管理-post renew: `nakadai/nakadai/orderOther/renew`,// 续费信息管理-post
ship: `${host}/nakadai/nakadai/orderOther/ship`,// 处理时的订单发货管理-post ship: `nakadai/nakadai/orderOther/ship`,// 处理时的订单发货管理-post
getOrderOtherTime: `${host}/nakadai/nakadai/orderOther/getOrderOtherTime`, getOrderOtherTime: `nakadai/nakadai/orderOther/getOrderOtherTime`,
queryAccountIsExist: `${host}/liuwanr/userInfo/queryServerAccountIsExist`, //查询账号是否存在 queryAccountIsExist: `liuwanr/userInfo/queryServerAccountIsExist`, //查询账号是否存在
// 客户管理 // 客户管理
delCustomers: `${host}/nakadai/nakadai/customer/delCustomers`, delCustomers: `nakadai/nakadai/customer/delCustomers`,
updateCustomer: `${host}/nakadai/nakadai/customer/updateCustomer`, updateCustomer: `nakadai/nakadai/customer/updateCustomer`,
addCustomer: `${host}/nakadai/nakadai/customer/addCustomer`, addCustomer: `nakadai/nakadai/customer/addCustomer`,
queryCustomer: `${host}/nakadai/nakadai/customer/queryCustomer`, queryCustomer: `nakadai/nakadai/customer/queryCustomer`,
queryCustomerDetails: `${host}/nakadai/nakadai/customer/queryCustomerDetails`, queryCustomerDetails: `nakadai/nakadai/customer/queryCustomerDetails`,
saveOrUpdate: `${host}/data/data/role/saveOrUpdate`, saveOrUpdate: `data/data/role/saveOrUpdate`,
doAssign: `${host}/data/data/permission/doAssign`, doAssign: `data/data/permission/doAssign`,
updateCustomerByRoleId: `${host}/nakadai/nakadai/customer/updateCustomerByRoleId`, updateCustomerByRoleId: `nakadai/nakadai/customer/updateCustomerByRoleId`,
checkEmailOrPhone: `${host}/nakadai/nakadai/customer/checkEmailOrPhone`, // 新增客户前:校验手机号或者邮箱 checkEmailOrPhone: `nakadai/nakadai/customer/checkEmailOrPhone`, // 新增客户前:校验手机号或者邮箱
resetPwdCustomer: `${host}/nakadai/nakadai/customer/resetPwd`, resetPwdCustomer: `nakadai/nakadai/customer/resetPwd`,
queryCustomerIsExists: `${host}/nakadai/nakadai/customer/queryCustomerIsExists`, queryCustomerIsExists: `nakadai/nakadai/customer/queryCustomerIsExists`,
updateEnabled: `${host}/nakadai/nakadai/customer/updateEnabled`, updateEnabled: `nakadai/nakadai/customer/updateEnabled`,
queryCustomerIndustryClass: `${host}/nakadai/nakadai/hrIndustryClass/queryIndustryClass`, queryCustomerIndustryClass: `nakadai/nakadai/hrIndustryClass/queryIndustryClass`,
queryCustomerIndustry: `${host}/nakadai/nakadai/hrIndustry/queryIndustry`, queryCustomerIndustry: `nakadai/nakadai/hrIndustry/queryIndustry`,
querySchoolData: `${host}/nakadai/nakadai/school/querySchool`, querySchoolData: `nakadai/nakadai/school/querySchool`,
queryPhone: `${host}/liuwanr/user/queryPhone`, queryPhone: `liuwanr/user/queryPhone`,
queryPlatform: `${host}/liuwanr/userInfo/queryPlatform`, queryPlatform: `liuwanr/userInfo/queryPlatform`,
// 用户管理 // 用户管理
delUserAccounts: `${host}/users/users/userAccount/delUserAccounts`, delUserAccounts: `users/users/userAccount/delUserAccounts`,
queryUserInfoDetails: `${host}/users/users/userAccount/queryUserInfoDetails`, queryUserInfoDetails: `users/users/userAccount/queryUserInfoDetails`,
queryUserInfoList: `${host}/users/users/userAccount/queryUserInfoList`, queryUserInfoList: `users/users/userAccount/queryUserInfoList`,
resetPwd: `${host}/users/users/userAccount/resetPwd`, resetPwd: `users/users/userAccount/resetPwd`,
selectAccountDetail: `${host}/users/users/userAccount/selectAccountDetail`, selectAccountDetail: `users/users/userAccount/selectAccountDetail`,
selectUserSysBind: `${host}/users/users/userAccount/selectUserSysBind`, selectUserSysBind: `users/users/userAccount/selectUserSysBind`,
updatePersonCenter: `${host}/users/users/userAccount/updatePersonCenter`, updatePersonCenter: `users/users/userAccount/updatePersonCenter`,
updateUserAvatars: `${host}/users/users/userAccount/updateUserAvatars`, updateUserAvatars: `users/users/userAccount/updateUserAvatars`,
userInfo: `${host}/users/users/userAccount/userInfo`, userInfo: `users/users/userAccount/userInfo`,
// bindPhoneOrEmail: `${host}/users/users/userAccount/bindPhoneOrEmail`, // bindPhoneOrEmail: `users/users/userAccount/bindPhoneOrEmail`,
// sendPhoneOrEmailCode: `${host}/users/users/userAccount/sendPhoneOrEmailCode`, // sendPhoneOrEmailCode: `users/users/userAccount/sendPhoneOrEmailCode`,
updateAccountEnable: `${host}/users/users/userAccount/updateAccountEnable`, updateAccountEnable: `users/users/userAccount/updateAccountEnable`,
updateAccountAllEnable: `${host}/users/users/userAccount/updateAccountAllEnable`, updateAccountAllEnable: `users/users/userAccount/updateAccountAllEnable`,
examinePassword: `${host}/users/users/userAccount/examinePassword`, examinePassword: `users/users/userAccount/examinePassword`,
queryOrder: `${host}/liuwanr/order/queryOrder`, //查询订单 queryOrder: `liuwanr/order/queryOrder`, //查询订单
queryOrderDetails: `${host}/liuwanr/order/queryOrderDetails`, //查询订单详情 queryOrderDetails: `liuwanr/order/queryOrderDetails`, //查询订单详情
queryOrderCustomer: `${host}/liuwanr/order/queryOrderCustomer`, //查询订单客户 queryOrderCustomer: `liuwanr/order/queryOrderCustomer`, //查询订单客户
queryOrderCustomerContact: `${host}/liuwanr/order/queryOrderCustomerContact`, //查询订单客户联系人 queryOrderCustomerContact: `liuwanr/order/queryOrderCustomerContact`, //查询订单客户联系人
addOrder: `${host}/liuwanr/order/addOrder`, //添加订单 addOrder: `liuwanr/order/addOrder`, //添加订单
updateOrder: `${host}/liuwanr/order/updateOrder`, //编辑订单 updateOrder: `liuwanr/order/updateOrder`, //编辑订单
deleteOrder: `${host}/liuwanr/order/deleteOrder`, //删除订单 deleteOrder: `liuwanr/order/deleteOrder`, //删除订单
bindingApplication: `${host}/liuwanr/order/bindingApplicationPermissions`, //绑定应用权限 bindingApplication: `liuwanr/order/bindingApplicationPermissions`, //绑定应用权限
queryCoursePermissions: `${host}/liuwanr/order/queryCoursePermissions`, //查询应用权限 queryCoursePermissions: `liuwanr/order/queryCoursePermissions`, //查询应用权限
queryCourseList: `${host}/liuwanr/order/queryCourseList`, //查询订单课程列表 queryCourseList: `liuwanr/order/queryCourseList`, //查询订单课程列表
isDeliverGoods: `${host}/liuwanr/order/isDeliverGoods`, //是否上架课程 isDeliverGoods: `liuwanr/order/isDeliverGoods`, //是否上架课程
//服务配置 //服务配置
deleteServiceConfig: `${host}/liuwanr/serviceConfig/deleteServiceConfig`, //删除服务配置 deleteServiceConfig: `liuwanr/serviceConfig/deleteServiceConfig`, //删除服务配置
updateServiceConfig: `${host}/liuwanr/serviceConfig/updateServiceConfig`, //更新服务配置 updateServiceConfig: `liuwanr/serviceConfig/updateServiceConfig`, //更新服务配置
addServiceConfig: `${host}/liuwanr/serviceConfig/addServiceConfig`, //添加服务配置 addServiceConfig: `liuwanr/serviceConfig/addServiceConfig`, //添加服务配置
queryServiceConfigDetails: `${host}/liuwanr/serviceConfig/queryServiceConfigDetails`, //查询服务配置详情 queryServiceConfigDetails: `liuwanr/serviceConfig/queryServiceConfigDetails`, //查询服务配置详情
queryServiceConfig: `${host}/nakadai/serviceConfiguration/getAllService`, //查询服务配置 queryServiceConfig: `nakadai/serviceConfiguration/getAllService`, //查询服务配置
// 项目管理 // 项目管理
avgValues: `${host}/occupationlab/projectManage/avgValues`, // 平均分分配值 avgValues: `occupationlab/projectManage/avgValues`, // 平均分分配值
deleteProjectManage: `${host}/occupationlab/projectManage/deleteProjectManage`, // 新增项目管理 deleteProjectManage: `occupationlab/projectManage/deleteProjectManage`, // 新增项目管理
getProjectBySystemId: `${host}/occupationlab/projectManage/getProjectBySystemId`, // 根据系统id获取全部项目 getProjectBySystemId: `occupationlab/projectManage/getProjectBySystemId`, // 根据系统id获取全部项目
queryNameIsExist: `${host}/occupationlab/projectManage/queryNameIsExist`, // 新增/编辑项目管理名称判重 queryNameIsExist: `occupationlab/projectManage/queryNameIsExist`, // 新增/编辑项目管理名称判重
queryProjectManage: `${host}/occupationlab/projectManage/queryProjectManage`, // 项目管理列表(分页、筛选) queryProjectManage: `occupationlab/projectManage/queryProjectManage`, // 项目管理列表(分页、筛选)
updateIsOpen: `${host}/occupationlab/projectManage/updateIsOpen`, // 更新开启状态 updateIsOpen: `occupationlab/projectManage/updateIsOpen`, // 更新开启状态
getProjectDetail: `${host}/occupationlab/projectManage/getProjectDetail`, // 根据项目id查询详情 getProjectDetail: `occupationlab/projectManage/getProjectDetail`, // 根据项目id查询详情
addProjectManage: `${host}/occupationlab/projectManage/addProjectManage`, // 新增项目管理 addProjectManage: `occupationlab/projectManage/addProjectManage`, // 新增项目管理
updateProjectManage: `${host}/occupationlab/projectManage/updateProjectManage`, // 修改项目管理 updateProjectManage: `occupationlab/projectManage/updateProjectManage`, // 修改项目管理
copyProjectManage: `${host}/occupationlab/projectManage/copyProjectManage`, // 复制项目管理 copyProjectManage: `occupationlab/projectManage/copyProjectManage`, // 复制项目管理
// 判分点 // 判分点
getBcJudgmentPoint: `${host}/judgment/bcJudgmentPoint/getBcJudgmentPoint`, // 获取编程类判分点列表(分页) getBcJudgmentPoint: `judgment/bcJudgmentPoint/getBcJudgmentPoint`, // 获取编程类判分点列表(分页)
getLcJudgmentPoint: `${host}/judgment/lcJudgmentPoint/queryAllJudgmentPoint`, // 获取流程类判分点列表(分页) getLcJudgmentPoint: `judgment/lcJudgmentPoint/queryAllJudgmentPoint`, // 获取流程类判分点列表(分页)
addProjectJudgment: `${host}/occupationlab/projectJudgment/addProjectJudgment`, // 添加项目管理、判分点中间表 addProjectJudgment: `occupationlab/projectJudgment/addProjectJudgment`, // 添加项目管理、判分点中间表
updateProjectJudgment: `${host}/occupationlab/projectJudgment/updateProjectJudgment`, // 判分点中间表批量更新 updateProjectJudgment: `occupationlab/projectJudgment/updateProjectJudgment`, // 判分点中间表批量更新
deleteProjectJudgment: `${host}/occupationlab/projectJudgment/deleteProjectJudgment`, // 判分点中间表批量删除 deleteProjectJudgment: `occupationlab/projectJudgment/deleteProjectJudgment`, // 判分点中间表批量删除
// 系统后台 // 系统后台
deleteModelClass: `${host}/nakadai/model/reference/deleteModelClass`, deleteModelClass: `nakadai/model/reference/deleteModelClass`,
modelClassList: `${host}/nakadai/model/reference/modelClassList`, modelClassList: `nakadai/model/reference/modelClassList`,
saveReferenceCategory: `${host}/nakadai/model/reference/saveReferenceCategory`, saveReferenceCategory: `nakadai/model/reference/saveReferenceCategory`,
updateModelClass: `${host}/nakadai/model/reference/updateModelClass`, updateModelClass: `nakadai/model/reference/updateModelClass`,
checkIsShowBySystemId: `${host}/nakadai/model/reference/checkIsShowBySystemId`, checkIsShowBySystemId: `nakadai/model/reference/checkIsShowBySystemId`,
modifyIsShowState: `${host}/nakadai/model/reference/modifyIsShowState`, modifyIsShowState: `nakadai/model/reference/modifyIsShowState`,
delModelInfoBySystemId: `${host}/nakadai/model/reference/demo/delModelInfoBySystemId`, delModelInfoBySystemId: `nakadai/model/reference/demo/delModelInfoBySystemId`,
deleteReferenceDemo: `${host}/nakadai/model/reference/demo/deleteReferenceDemo`, deleteReferenceDemo: `nakadai/model/reference/demo/deleteReferenceDemo`,
referenceFindById: `${host}/nakadai/model/reference/demo/findById`, referenceFindById: `nakadai/model/reference/demo/findById`,
saveReferenceDemo: `${host}/nakadai/model/reference/demo/saveReferenceDemo`, saveReferenceDemo: `nakadai/model/reference/demo/saveReferenceDemo`,
referenceDemoList: `${host}/nakadai/model/reference/demo/referenceDemoList`, referenceDemoList: `nakadai/model/reference/demo/referenceDemoList`,
getAllModelList: `${host}/nakadai/model/reference/demo/getAllModelList`, getAllModelList: `nakadai/model/reference/demo/getAllModelList`,
deleteSourceModelCategory: `${host}/nakadai/model/category/deleteSourceModelCategory`, deleteSourceModelCategory: `nakadai/model/category/deleteSourceModelCategory`,
categorySave: `${host}/nakadai/model/category/save`, categorySave: `nakadai/model/category/save`,
sourceModelClassification: `${host}/nakadai/model/category/sourceModelClassification`, sourceModelClassification: `nakadai/model/category/sourceModelClassification`,
updateSourceModelCategory: `${host}/nakadai/model/category/updateSourceModelCategory`, updateSourceModelCategory: `nakadai/model/category/updateSourceModelCategory`,
bulkDisable: `${host}/nakadai/model/demo/bulkDisable`, bulkDisable: `nakadai/model/demo/bulkDisable`,
deleteSysModelDemo: `${host}/nakadai/model/demo/deleteSysModelDemo`, deleteSysModelDemo: `nakadai/model/demo/deleteSysModelDemo`,
modelFindById: `${host}/nakadai/model/demo/findById`, modelFindById: `nakadai/model/demo/findById`,
saveSysModelDemo: `${host}/nakadai/model/demo/saveSysModelDemo`, saveSysModelDemo: `nakadai/model/demo/saveSysModelDemo`,
sysModelDemoList: `${host}/nakadai/model/demo/sysModelDemoList`, sysModelDemoList: `nakadai/model/demo/sysModelDemoList`,
updateSysModelDemo: `${host}/nakadai/model/demo/updateSysModelDemo`, updateSysModelDemo: `nakadai/model/demo/updateSysModelDemo`,
runPythonCode: `${host}/nakadai/model/demo/runPythonCode`, runPythonCode: `nakadai/model/demo/runPythonCode`,
getAllModelListBySys: `${host}/nakadai/model/demo/getAllModelListBySys`, getAllModelListBySys: `nakadai/model/demo/getAllModelListBySys`,
// 课程管理三级联查 // 课程管理三级联查
courseDiscipline: `${host}/nakadai/nakadai/subject/courseDiscipline`, //课程学科类别 courseDiscipline: `nakadai/nakadai/subject/courseDiscipline`, //课程学科类别
courseProfessionalClass: `${host}/nakadai/nakadai/subject/courseProfessionalClass`, //课程专业类 courseProfessionalClass: `nakadai/nakadai/subject/courseProfessionalClass`, //课程专业类
courseProfessional: `${host}/nakadai/nakadai/subject/courseProfessional`, //课程专业 courseProfessional: `nakadai/nakadai/subject/courseProfessional`, //课程专业
//课程管理 //课程管理
curriculumList: `${host}/nakadai/nakadai/curriculum/curriculumList`, //课程列表 curriculumList: `nakadai/nakadai/curriculum/curriculumList`, //课程列表
createCurriculum: `${host}/nakadai/nakadai/curriculum/createCurriculum`, //创建课程 createCurriculum: `nakadai/nakadai/curriculum/createCurriculum`, //创建课程
curriculumDetail: `${host}/nakadai/nakadai/curriculum/curriculumDetail`, //课程详情 curriculumDetail: `nakadai/nakadai/curriculum/curriculumDetail`, //课程详情
modifyCourse: `${host}/nakadai/nakadai/curriculum/modifyCourse`, //编辑课程 modifyCourse: `nakadai/nakadai/curriculum/modifyCourse`, //编辑课程
delCourse: `${host}/nakadai/nakadai/curriculum/delCourse`, //单个、批量删除课程 delCourse: `nakadai/nakadai/curriculum/delCourse`, //单个、批量删除课程
isShelves: `${host}/nakadai/nakadai/curriculum/isShelves`, //上下架课程 isShelves: `nakadai/nakadai/curriculum/isShelves`, //上下架课程
getInternalProjectBySystemId: `${host}/occupationlab/projectManage/getInternalProjectBySystemId`, //根据系统id、项目权限获取系统内置项目 getInternalProjectBySystemId: `occupationlab/projectManage/getInternalProjectBySystemId`, //根据系统id、项目权限获取系统内置项目
checkConfig: `${host}/nakadai/nakadai/curriculum/checkConfig`, checkConfig: `nakadai/nakadai/curriculum/checkConfig`,
// 课程章节管理 // 课程章节管理
addChapter: `${host}/nakadai/curriculum/chapter/addChapter`, //添加章节 addChapter: `nakadai/curriculum/chapter/addChapter`, //添加章节
editChapter: `${host}/nakadai/curriculum/chapter/editChapter`, //修改章节 editChapter: `nakadai/curriculum/chapter/editChapter`, //修改章节
deleteChapter: `${host}/nakadai/curriculum/chapter/deleteChapter`, //根据id删除章节 deleteChapter: `nakadai/curriculum/chapter/deleteChapter`, //根据id删除章节
queryChaptersAndSubsections: `${host}/nakadai/curriculum/chapter/queryChaptersAndSubsections`, //根据课程id查询章节小节,树状结构 queryChaptersAndSubsections: `nakadai/curriculum/chapter/queryChaptersAndSubsections`, //根据课程id查询章节小节,树状结构
reorder: `${host}/nakadai/curriculum/chapter/reorder`, //编辑排序 reorder: `nakadai/curriculum/chapter/reorder`, //编辑排序
// 课程小节管理 // 课程小节管理
addSubsection: `${host}/nakadai/curriculum/subsection/addSubsection`, //添加小节 addSubsection: `nakadai/curriculum/subsection/addSubsection`, //添加小节
deleteSubsection: `${host}/nakadai/curriculum/subsection/deleteSubsection`, //根据id删除小节 deleteSubsection: `nakadai/curriculum/subsection/deleteSubsection`, //根据id删除小节
editSubsection: `${host}/nakadai/curriculum/subsection/editSubsection`, //修改小节 editSubsection: `nakadai/curriculum/subsection/editSubsection`, //修改小节
getSubsection: `${host}/nakadai/curriculum/subsection/getSubsection`, //根据小节id获取预览文件地址 getSubsection: `nakadai/curriculum/subsection/getSubsection`, //根据小节id获取预览文件地址
// 阿里云文件/视频管理 // 阿里云文件/视频管理
fileDeletion: `${uploadURL}/oss/manage/fileDeletion`, // 删除OSS文件 fileDeletion: `${uploadURL}oss/manage/fileDeletion`, // 删除OSS文件
fileupload: `${uploadURL}/oss/manage/fileupload`, // 文件上传 fileupload: `${uploadURL}oss/manage/fileupload`, // 文件上传
getPlayAuth: `${uploadURL}/oss/manage/getPlayAuth`, // 获取播放凭证 getPlayAuth: `${uploadURL}oss/manage/getPlayAuth`, // 获取播放凭证
removeMoreVideo: `${uploadURL}/oss/manage/removeMoreVideo`, // 批量删除视频文件 removeMoreVideo: `${uploadURL}oss/manage/removeMoreVideo`, // 批量删除视频文件
removeVideo: `${uploadURL}/oss/manage/removeVideo`, // 删除视频文件 removeVideo: `${uploadURL}oss/manage/removeVideo`, // 删除视频文件
queryProvince: `${host}/nakadai/nakadai/province/queryProvince`, //查询省份 queryProvince: `nakadai/nakadai/province/queryProvince`, //查询省份
queryCity: `${host}/nakadai/nakadai/city/queryCity`, //查询城市 queryCity: `nakadai/nakadai/city/queryCity`, //查询城市
queryCourseDiscipline: `${host}/nakadai/nakadai/subject/courseDiscipline`, //查询课程学科 queryCourseDiscipline: `nakadai/nakadai/subject/courseDiscipline`, //查询课程学科
queryCourseProfessionalClass: `${host}/nakadai/nakadai/subject/courseProfessionalClass`, //查询专业类 queryCourseProfessionalClass: `nakadai/nakadai/subject/courseProfessionalClass`, //查询专业类
queryCourseProfessional: `${host}/nakadai/nakadai/subject/courseProfessional`, //查询专业 queryCourseProfessional: `nakadai/nakadai/subject/courseProfessional`, //查询专业
queryAppConfig: `${host}/liuwanr/course/queryAppConfig`, //查询应用配置 queryAppConfig: `liuwanr/course/queryAppConfig`, //查询应用配置
queryTrainingConfig: `${host}/liuwanr/course/queryConfig`, //查询实训配置 queryTrainingConfig: `liuwanr/course/queryConfig`, //查询实训配置
deleteTrainingConfig: `${host}/liuwanr/course/deleteTrainingConfig`, //删除实训配置 deleteTrainingConfig: `liuwanr/course/deleteTrainingConfig`, //删除实训配置
isShow: `${host}/liuwanr/course/isShow`, //是否展示项目控制 isShow: `liuwanr/course/isShow`, //是否展示项目控制
queryCourseDetailsTC: `${host}/liuwanr/course/queryCourseDetailsTC`, //查询课程详情课程权限 queryCourseDetailsTC: `liuwanr/course/queryCourseDetailsTC`, //查询课程详情课程权限
queryLinkDetails: `${host}/liuwanr/course/queryLinkDetails`, //查询环节详情 queryLinkDetails: `liuwanr/course/queryLinkDetails`, //查询环节详情
addCourseLink: `${host}/liuwanr/course/addCourseLink`, //添加课程环节 addCourseLink: `liuwanr/course/addCourseLink`, //添加课程环节
updateLink: `${host}/liuwanr/course/updateLink`, //更新环节 updateLink: `liuwanr/course/updateLink`, //更新环节
uploadFiles: `${host}/liuwanr/aliyun/uploadFiles`, //上传文件 uploadFiles: `liuwanr/aliyun/uploadFiles`, //上传文件
downloadFiles: `${host}/liuwanr/aliyun/downloadFiles`, //下载文件 downloadFiles: `liuwanr/aliyun/downloadFiles`, //下载文件
// 数据管理 // 数据管理
getIdQueryTable: `${host}/data/data/table/getIdQueryTable`, getIdQueryTable: `data/data/table/getIdQueryTable`,
getTableByClassification: `${host}/data/data/table/getTableByClassification`, getTableByClassification: `data/data/table/getTableByClassification`,
getTableByCondition: `${host}/data/data/table/getTableByCondition`, getTableByCondition: `data/data/table/getTableByCondition`,
originalList: `${host}/data/data/table/originalList`, originalList: `data/data/table/originalList`,
originalListById: `${host}/data/data/table/originalListById`, originalListById: `data/data/table/originalListById`,
saveCategory: `${host}/data/data/table/saveCategory`, saveCategory: `data/data/table/saveCategory`,
saveTable: `${host}/data/data/table/saveTable`, saveTable: `data/data/table/saveTable`,
updateCategory: `${host}/data/data/table/updateCategory`, updateCategory: `data/data/table/updateCategory`,
deleteCategory: `${host}/data/data/table/deleteCategory`, deleteCategory: `data/data/table/deleteCategory`,
deleteTable: `${host}/data/data/table/deleteTable`, deleteTable: `data/data/table/deleteTable`,
previewData: `${host}/data/data/preview`, previewData: `data/data/preview`,
staticPreview: `${host}/data/data/staticPreview`, staticPreview: `data/data/staticPreview`,
editTableName: `${host}/data/data/table/editTableName`, editTableName: `data/data/table/editTableName`,
updateTableCommit: `${host}/data/data/updateTableCommit`, updateTableCommit: `data/data/updateTableCommit`,
getLevel: `${host}/data/category/getLevel`, getLevel: `data/category/getLevel`,
getAllTableInfoByCategoryId: `${host}/data/data/product/getAllTableInfoByCategoryId`, getAllTableInfoByCategoryId: `data/data/product/getAllTableInfoByCategoryId`,
// 产品管理 // 产品管理
deleteProduct: `${host}/data/data/product/delete`, deleteProduct: `data/data/product/delete`,
findById: `${host}/data/data/product/findById`, findById: `data/data/product/findById`,
listByEntity: `${host}/data/data/product/listByEntity`, listByEntity: `data/data/product/listByEntity`,
saveProduct: `${host}/data/data/product/save`, saveProduct: `data/data/product/save`,
updateProduct: `${host}/data/data/product/update`, updateProduct: `data/data/product/update`,
saveRecord: `${host}/data/data/dataRecord/saveRecord`, saveRecord: `data/data/dataRecord/saveRecord`,
getAllTableIdBycategoryId: `${host}/data/data/product/getAllTableIdBycategoryId`, getAllTableIdBycategoryId: `data/data/product/getAllTableIdBycategoryId`,
// 关键词 // 关键词
addKeyword: `${host}/data/keyword/addKeyword`, addKeyword: `data/keyword/addKeyword`,
deleteKeyword: `${host}/data/keyword/deleteKeyword`, deleteKeyword: `data/keyword/deleteKeyword`,
getKeywordByCategoryId: `${host}/data/keyword/getKeywordByCategoryId`, getKeywordByCategoryId: `data/keyword/getKeywordByCategoryId`,
// 角色管理
batchRemove: `${host1}/users/role/batchRemove`, //批量删除角色
checkRoleIsExist: `${host1}/users/role/checkRoleIsExist`, //判断该角色是否存在
delRoleByAccountId: `${host1}/users/role/delRoleByAccountId`, //删除某用户下的某个角色
roleList: `${host1}/users/role/list`, //角色分页列表查询
obtainDetails: `${host1}/users/role/obtainDetails`, //获取角色详情
saveOrUpdate: `${host1}/users/role/saveOrUpdate`, //新增或更新角色
queryAllMenus: `${host1}/users/users/permission/queryAllMenus`, //查询所有菜单
getUserRolesPermissionMenu: `${host1}/users/user-role/getUserRolesPermissionMenu`,
// 日志管理 // 日志管理
logAdd: `${host1}/nakadai/log/add`, logAdd: `${host1}/nakadai/log/add`,

@ -1,3 +1,5 @@
import { Loading } from 'element-ui'
const pad2 = str => ('0' + str).substr(-2) const pad2 = str => ('0' + str).substr(-2)
function fMoney (s, n) { function fMoney (s, n) {
@ -193,6 +195,23 @@ function formatDate(fmt,date) {
return fmt; return fmt;
} }
// 传入文件名和路径,下载图片视频,支持跨域,a标签加download不支持跨域
function downloadFile(fileName, url) {
const loadIns = Loading.service()
var x = new XMLHttpRequest()
x.open("GET", url, true)
x.responseType = "blob"
x.onload = function(e) {
var url = window.URL.createObjectURL(x.response)
var a = document.createElement("a")
a.href = url
a.download = fileName
a.click()
loadIns.close()
}
x.send()
}
export { export {
fMoney, fMoney,
toDateTime, toDateTime,
@ -212,5 +231,6 @@ export {
removeByValue, removeByValue,
isIE, isIE,
encodeString, encodeString,
formatDate formatDate,
downloadFile
} }

@ -1,18 +1,10 @@
import axios from 'axios'; import axios from 'axios';
import QS from 'qs';
import store from '../store/index' import store from '../store/index'
import { Message } from 'element-ui' import { Message } from 'element-ui'
import router from '../router/index' import router from '../router/index'
import Setting from '@/setting'
// 环境的切换 axios.defaults.baseURL = Setting.host
// if (process.env.NODE_ENV == 'development') {
// axios.defaults.baseURL = '/api';
// } else if (process.env.NODE_ENV == 'debug') {
// axios.defaults.baseURL = '';
// } else if (process.env.NODE_ENV == 'production') {
// axios.defaults.baseURL = 'http://api.123dailu.com/';
// }
// 请求超时时间 // 请求超时时间
axios.defaults.timeout = 30000; axios.defaults.timeout = 30000;

@ -51,6 +51,7 @@
<el-table-column label="操作" align="center" width="300"> <el-table-column label="操作" align="center" width="300">
<template slot-scope="scope"> <template slot-scope="scope">
<template v-if="!sorting"> <template v-if="!sorting">
<el-button type="text" @click="download(scope.row)">下载</el-button>
<el-button type="text" @click="preview(scope.row)">查看</el-button> <el-button type="text" @click="preview(scope.row)">查看</el-button>
<el-button type="text" @click="delSection(scope.row)">删除</el-button> <el-button type="text" @click="delSection(scope.row)">删除</el-button>
<el-button type="text" @click="editSectionName(scope.row,chapter.id)">修改小节名称</el-button> <el-button type="text" @click="editSectionName(scope.row,chapter.id)">修改小节名称</el-button>
@ -178,6 +179,7 @@
</div> </div>
</div> </div>
</el-card> </el-card>
<div class="player-download" id="playerDownload"></div>
</div> </div>
</template> </template>
@ -454,6 +456,28 @@ export default {
this.fileUrl = ""; this.fileUrl = "";
this.sectionId = ""; this.sectionId = "";
}, },
//
download(row) {
const { fileType } = row
// ppt
if (fileType === 'pptx') {
this.downloadFile(row.name, row.fileUrl)
} else if (fileType === 'mp4') {
//
this.$get(`${this.api.getPlayAuth}/${row.fileId}`).then(res => {
const player = new Aliplayer({
id: "playerDownload",
width: "100%",
autoplay: false,
vid: row.fileId,
playauth: res.data.playAuth,
encryptType: 1 //
}, player => {
this.downloadFile(row.name, player._urls[0].Url)
})
}).catch(res => {})
}
},
preview(row) { preview(row) {
if (this.transferType(row.fileType) == "视频") { if (this.transferType(row.fileType) == "视频") {
this.$get(`${this.api.getPlayAuth}/${row.fileId}`).then(res => { this.$get(`${this.api.getPlayAuth}/${row.fileId}`).then(res => {
@ -694,6 +718,10 @@ export default {
width: 1200px !important; width: 1200px !important;
height: 600px !important; height: 600px !important;
} }
.player-download {
position: absolute;
top: -9999px;
}
.fileIframe { .fileIframe {
z-index: 1; z-index: 1;

@ -99,6 +99,7 @@
</template> </template>
<script> <script>
import Setting from '@/setting'
export default { export default {
name: 'customer', name: 'customer',
data() { data() {
@ -243,7 +244,7 @@ export default {
this.getData() this.getData()
}, },
resetPassword(row){ resetPassword(row){
this.$confirm(`重置后的密码为:${this.$config.initialPassword},确定重置?`, '提示', { this.$confirm(`重置后的密码为:${Setting.initialPassword},确定重置?`, '提示', {
}).then(() => { }).then(() => {
this.$get(this.api.resetPwdCustomer,{ this.$get(this.api.resetPwdCustomer,{
customerId: row.customerId, customerId: row.customerId,

@ -42,11 +42,10 @@
<el-dialog title="请选择需要导入的模型" :visible.sync="modelVisible" width="500px" class="dialog" :close-on-click-modal="false"> <el-dialog title="请选择需要导入的模型" :visible.sync="modelVisible" width="500px" class="dialog" :close-on-click-modal="false">
<el-tree <el-tree
:data="modelData" :data="modelData" v-loading="modelLoading"
ref="model" ref="model"
default-expand-all default-expand-all
show-checkbox show-checkbox
:check-strictly="true"
node-key="id" node-key="id"
:props="{children: 'children', label: 'categoryName', isLeaf: 'leaf'}"> :props="{children: 'children', label: 'categoryName', isLeaf: 'leaf'}">
</el-tree> </el-tree>
@ -70,6 +69,7 @@ export default {
total: 0, total: 0,
multipleSelection: [], multipleSelection: [],
modelVisible: false, modelVisible: false,
modelLoading: false,
modelData: [] modelData: []
}; };
}, },
@ -118,12 +118,12 @@ export default {
// //
add() { add() {
this.modelVisible = true this.modelVisible = true
const categoryId = this.$refs.tree.$refs.tree.getCurrentKey() // this.modelLoading = true
// //
this.$post(this.api.referenceDemoList, { this.$post(this.api.getAllModelList, {
pageNum: 1, pageNum: 1,
pageSize: 10000, pageSize: 10000,
categoryId systemId: this.systemId
}).then(res => { }).then(res => {
const modelList = res.data.records const modelList = res.data.records
@ -162,10 +162,10 @@ export default {
addType(data) addType(data)
Promise.all(promises).then(_ => { Promise.all(promises).then(_ => {
this.modelData = data this.modelData = data
this.modelLoading = false
}).catch(res => {}) }).catch(res => {})
}).catch(res => {}) }).catch(res => {})
}).catch(res => {}) }).catch(res => {})
}, },
// //
show(row) { show(row) {
@ -210,14 +210,15 @@ export default {
submit() { submit() {
const data = [] const data = []
const systemId = this.systemId const systemId = this.systemId
const list = this.$refs.model.getCheckedNodes() const list = this.$refs.model.getCheckedNodes() //
const categoryId = this.$refs.tree.$refs.tree.getCurrentKey() // const categoryId = this.$refs.tree.$refs.tree.getCurrentKey() //
list.map(e => { list.map(e => {
data.push({ // categoryId
systemId, e.categoryId && data.push({
categoryId, systemId,
copyId: e.id categoryId,
}) copyId: e.id
})
}) })
this.$post(this.api.saveReferenceDemo, data).then(res => { this.$post(this.api.saveReferenceDemo, data).then(res => {
this.modelVisible = false this.modelVisible = false

@ -162,7 +162,6 @@ export default {
logContents, logContents,
draft draft
} }
debugger
if (id) { if (id) {
data.logId = id data.logId = id
this.$post(this.api.listUpdate, data).then(res => { this.$post(this.api.listUpdate, data).then(res => {

@ -42,9 +42,11 @@
<el-switch v-model="item.open" :active-value="0" :inactive-value="1" @change="switchOff($event, item)"></el-switch> <el-switch v-model="item.open" :active-value="0" :inactive-value="1" @change="switchOff($event, item)"></el-switch>
</div> </div>
<ul class="detail"> <ul class="detail">
<li> <li v-for="(item, i) in item.logContents" :key="i">
<p class="name">修复</p> <p class="name">{{ funcList.find(e => e.id === item.type).name }}</p>
<div class="val">测试测试测试测试测试测试</div> <div class="val">
<p class="" v-for="(item, i) in item.content" :key="i">{{ item }}</p>
</div>
</li> </li>
</ul> </ul>
</el-timeline-item> </el-timeline-item>
@ -62,7 +64,21 @@ export default {
platformName: '', platformName: '',
versionName: '', versionName: '',
vers: [], vers: [],
listData: [] listData: [],
funcList: [
{
id: 0,
name: '新功能'
},
{
id: 1,
name: '修复'
},
{
id: 2,
name: '优化'
}
]
}; };
}, },
mounted() { mounted() {
@ -73,18 +89,21 @@ export default {
getData() { getData() {
this.$get(`${this.api.platformLogList}?platformId=${this.platformId}&versionName=${this.versionName}`).then(res => { this.$get(`${this.api.platformLogList}?platformId=${this.platformId}&versionName=${this.versionName}`).then(res => {
const { logList } = res const { logList } = res
if (logList.length) { if (logList.length) {
const vers = [] const vers = []
const platformName = Setting.platformList.find(e => e.id === logList[0].platformId).name const platformName = Setting.platformList.find(e => e.id === logList[0].platformId).name
this.platformName = platformName this.platformName = platformName
this.listData = logList this.listData = logList
logList.map((e, i) => { logList.map((e, i) => {
vers.push({ e.logContents.map(n => {
id: i, n.content = n.content.split('\n')
name: e.versionName
})
}) })
this.vers = vers vers.push({
id: i,
name: e.versionName
})
})
this.vers = vers
} }
}).catch(res => {}) }).catch(res => {})
}, },
@ -167,18 +186,31 @@ export default {
} }
.detail { .detail {
li { li {
margin-bottom: 10px; margin-bottom: 20px;
} }
.name { .name {
margin-bottom: 5px;
font-size: 14px; font-size: 14px;
color: #9984f1;
} }
.val { .val {
font-size: 16px; font-size: 15px;
line-height: 1.8; line-height: 1.8;
white-space: pre-wrap;
p {
position: relative;
&:before {
content: '';
position: absolute;
top: 11px;
left: -10px;
width: 5px;
height: 5px;
border-radius: 20px;
background-color: #c5b8ff;
}
}
} }
} }
.switch {
}
} }
</style> </style>

@ -103,7 +103,7 @@ export default {
} }
}, },
mounted() { mounted() {
// this.getData(); this.getData()
}, },
methods: { methods: {
getData() { getData() {

@ -141,11 +141,12 @@
</template> </template>
<script> <script>
import Setting from '@/setting'
export default { export default {
name: 'user', name: 'user',
data() { data() {
return { return {
platformId: this.$config.platformId, platformId: Setting.platformId,
searchTimer: null, searchTimer: null,
form: { form: {
name: '', name: '',
@ -349,10 +350,10 @@ export default {
}).catch(() => {}) }).catch(() => {})
}, },
resetPassword(row){ resetPassword(row){
this.$confirm(`重置后的密码为:${this.$config.initialPassword},确定重置?`, '提示', { this.$confirm(`重置后的密码为:${Setting.initialPassword},确定重置?`, '提示', {
}).then(() => { }).then(() => {
this.$get(this.api.resetPwd,{ this.$get(this.api.resetPwd,{
newPwd: this.$config.initialPassword, newPwd: Setting.initialPassword,
userId: row.userId, userId: row.userId,
}).then(res => { }).then(res => {
if(res.message == 'success'){ if(res.message == 'success'){

Loading…
Cancel
Save