Compare commits
5 Commits
player-202
...
250702-add
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
43ca756741 | ||
|
|
6c99555498 | ||
|
|
e6d0281014 | ||
|
|
7713e1f176 | ||
|
|
6efd64644e |
@@ -1 +0,0 @@
|
|||||||
60ab8a4b97b446b2dcd32889
|
|
||||||
5760
package-lock.json
generated
12
package.json
@@ -15,7 +15,6 @@
|
|||||||
"lint": "vue-cli-service lint"
|
"lint": "vue-cli-service lint"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@mermaid-js/parser": "^0.6.3",
|
|
||||||
"axios": "^0.21.4",
|
"axios": "^0.21.4",
|
||||||
"core-js": "^3.6.5",
|
"core-js": "^3.6.5",
|
||||||
"driver.js": "^0.9.8",
|
"driver.js": "^0.9.8",
|
||||||
@@ -24,15 +23,9 @@
|
|||||||
"element-ui": "^2.15.7",
|
"element-ui": "^2.15.7",
|
||||||
"file-saver": "^2.0.5",
|
"file-saver": "^2.0.5",
|
||||||
"fuse.js": "^6.4.6",
|
"fuse.js": "^6.4.6",
|
||||||
"highlight.js": "^11.11.1",
|
|
||||||
"image-conversion": "^2.1.1",
|
"image-conversion": "^2.1.1",
|
||||||
"jsencrypt": "^3.2.1",
|
"jsencrypt": "^3.2.1",
|
||||||
"json-bigint": "^1.0.0",
|
"json-bigint": "^1.0.0",
|
||||||
"katex": "^0.16.25",
|
|
||||||
"markdown-it": "^14.1.0",
|
|
||||||
"markdown-it-highlightjs": "^4.2.0",
|
|
||||||
"markdown-it-mermaid": "^0.2.5",
|
|
||||||
"mermaid": "^8.13.10",
|
|
||||||
"mockjs": "^1.1.0",
|
"mockjs": "^1.1.0",
|
||||||
"moment": "^2.29.1",
|
"moment": "^2.29.1",
|
||||||
"nprogress": "^0.2.0",
|
"nprogress": "^0.2.0",
|
||||||
@@ -50,12 +43,10 @@
|
|||||||
"vue": "^2.6.11",
|
"vue": "^2.6.11",
|
||||||
"vue-awesome-swiper": "^3.1.3",
|
"vue-awesome-swiper": "^3.1.3",
|
||||||
"vue-cookies": "^1.7.4",
|
"vue-cookies": "^1.7.4",
|
||||||
"vue-katex": "^0.5.0",
|
|
||||||
"vue-pdf": "^4.2.0",
|
"vue-pdf": "^4.2.0",
|
||||||
"vue-quill-editor": "^3.0.6",
|
"vue-quill-editor": "^3.0.6",
|
||||||
"vue-router": "^3.5.2",
|
"vue-router": "^3.5.2",
|
||||||
"vuex": "^3.6.2",
|
"vuex": "^3.6.2"
|
||||||
"wangeditor": "^4.7.15"
|
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@vue/cli-plugin-babel": "~4.5.0",
|
"@vue/cli-plugin-babel": "~4.5.0",
|
||||||
@@ -69,7 +60,6 @@
|
|||||||
"html-webpack-plugin": "^5.5.0",
|
"html-webpack-plugin": "^5.5.0",
|
||||||
"less": "^4.1.1",
|
"less": "^4.1.1",
|
||||||
"less-loader": "^6.2.0",
|
"less-loader": "^6.2.0",
|
||||||
"null-loader": "^4.0.1",
|
|
||||||
"sass": "^1.32.13",
|
"sass": "^1.32.13",
|
||||||
"sass-loader": "^10.1.0",
|
"sass-loader": "^10.1.0",
|
||||||
"vue-template-compiler": "^2.6.11"
|
"vue-template-compiler": "^2.6.11"
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 438 KiB |
|
Before Width: | Height: | Size: 1.5 KiB |
70
src/App.vue
@@ -1,74 +1,25 @@
|
|||||||
<template>
|
<template>
|
||||||
<div id="app" style="width: 100vw">
|
<div id="app">
|
||||||
<keep-alive :include="['case']">
|
<keep-alive :include="['case']">
|
||||||
<router-view />
|
<router-view />
|
||||||
12312
|
|
||||||
</keep-alive>
|
</keep-alive>
|
||||||
<!-- 添加AI Call组件 -->
|
|
||||||
<AICall
|
|
||||||
:dialogVisible="showAICall"
|
|
||||||
@close="onCloseAICall"
|
|
||||||
@restore="onRestoreAICall"
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { mapGetters, mapState } from 'vuex';
|
import { mapGetters } from 'vuex';
|
||||||
import AICall from '@/views/portal/case/AICall.vue';
|
|
||||||
|
|
||||||
export default{
|
export default{
|
||||||
name: 'App',
|
name: 'App',
|
||||||
components: {
|
|
||||||
AICall
|
|
||||||
},
|
|
||||||
computed: {
|
computed: {
|
||||||
...mapGetters(['userInfo']),
|
...mapGetters(['userInfo'])
|
||||||
...mapState('app', ['showAICall', 'showAICallMinimized'])
|
|
||||||
},
|
},
|
||||||
methods: {
|
mounted() {
|
||||||
onCloseAICall() {
|
|
||||||
// 通过Vuex关闭AI Call组件
|
|
||||||
this.$store.dispatch('app/setShowAICall', false);
|
|
||||||
},
|
|
||||||
|
|
||||||
onRestoreAICall() {
|
|
||||||
// 通过Vuex显示AI Call组件
|
|
||||||
this.$store.dispatch('app/setShowAICall', true);
|
|
||||||
},
|
|
||||||
|
|
||||||
// 检查当前路由是否应该显示AI弹窗
|
|
||||||
checkRouteForAICall() {
|
|
||||||
const currentRoute = this.$route.name;
|
|
||||||
// 只在case或caseDetail路由显示弹窗
|
|
||||||
if (currentRoute === 'case' || currentRoute === 'caseDetail') {
|
|
||||||
// 设置最小化窗口显示状态为true
|
|
||||||
this.$store.dispatch('app/setShowAICallMinimized', true);
|
|
||||||
// 注意:这里不再强制设置showAICall为true,保留用户之前的操作状态
|
|
||||||
} else {
|
|
||||||
// 其他路由关闭弹窗
|
|
||||||
this.$store.dispatch('app/setShowAICall', false);
|
|
||||||
// 设置最小化窗口显示状态为false
|
|
||||||
this.$store.dispatch('app/setShowAICallMinimized', false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
mounted() {
|
|
||||||
//从状态值中取,因为登录处理,所以移动watch中
|
//从状态值中取,因为登录处理,所以移动watch中
|
||||||
// console.log(this.userInfo);
|
// console.log(this.userInfo);
|
||||||
// if(this.userInfo && this.userInfo.name!=''){
|
// if(this.userInfo && this.userInfo.name!=''){
|
||||||
// this.$watermark.set(this.userInfo.name+this.userInfo.loginName);
|
// this.$watermark.set(this.userInfo.name+this.userInfo.loginName);
|
||||||
// }
|
// }
|
||||||
|
|
||||||
// 初始化检查路由
|
|
||||||
this.checkRouteForAICall();
|
|
||||||
},
|
},
|
||||||
watch: {
|
|
||||||
// 监听路由变化
|
|
||||||
$route(to, from) {
|
|
||||||
this.checkRouteForAICall();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// watch:{
|
// watch:{
|
||||||
// userInfo(newVal,oldVal){
|
// userInfo(newVal,oldVal){
|
||||||
// if(newVal && newVal.name!=''){
|
// if(newVal && newVal.name!=''){
|
||||||
@@ -87,16 +38,5 @@
|
|||||||
border: 1px solid #e7e7e7 !important;
|
border: 1px solid #e7e7e7 !important;
|
||||||
box-shadow: 0px 1px 5px 1px rgba(92,98,111,.3);
|
box-shadow: 0px 1px 5px 1px rgba(92,98,111,.3);
|
||||||
}
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
#app {
|
|
||||||
pointer-events: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
#app > *:not(.case-expert-dialog) {
|
|
||||||
pointer-events: auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
.case-expert-dialog {
|
|
||||||
pointer-events: auto;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
241
src/api/ajax.js
@@ -19,93 +19,88 @@ import errorCode from '@/utils/errorCode'
|
|||||||
|
|
||||||
|
|
||||||
// const ReLoginUrl=process.env.VUE_APP_LOGIN_URL;
|
// const ReLoginUrl=process.env.VUE_APP_LOGIN_URL;
|
||||||
const TokenName = 'XBOE-Access-Token';
|
const TokenName='XBOE-Access-Token';
|
||||||
/**axios.defaults.headers['Content-Type'] = 'application/x-www-form-urlencoded'**/
|
/**axios.defaults.headers['Content-Type'] = 'application/x-www-form-urlencoded'**/
|
||||||
//只是用于发送json对象数据时使用post,put,patch
|
//只是用于发送json对象数据时使用post,put,patch
|
||||||
/**axios.defaults.headers['Content-Type'] = 'application/x-www-form-urlencoded'**/
|
/**axios.defaults.headers['Content-Type'] = 'application/x-www-form-urlencoded'**/
|
||||||
//只是用于发送json对象数据时使用post,put,patch
|
//只是用于发送json对象数据时使用post,put,patch
|
||||||
//用于普通的发送请求
|
//用于普通的发送请求
|
||||||
const formRequest = axios.create({
|
const formRequest=axios.create({
|
||||||
// headers:{'Content-Type':'application/x-www-form-urlencoded'},
|
// headers:{'Content-Type':'application/x-www-form-urlencoded'},
|
||||||
// axios中请求配置有baseURL选项,表示请求URL公共部分
|
// axios中请求配置有baseURL选项,表示请求URL公共部分
|
||||||
// baseURL: process.env.VUE_APP_CESOURCE_BASE_API,
|
// baseURL: process.env.VUE_APP_CESOURCE_BASE_API,
|
||||||
//超时
|
//超时
|
||||||
timeout: 60000,
|
timeout: 60000,
|
||||||
})
|
})
|
||||||
//发送json对象的拦截器
|
//发送json对象的拦截器
|
||||||
formRequest.interceptors.request.use(config => {
|
formRequest.interceptors.request.use(config => {
|
||||||
//是否需要设置 token
|
//是否需要设置 token
|
||||||
const isToken = (config.headers || {}).isToken === false
|
const isToken = (config.headers || {}).isToken === false
|
||||||
if (getToken() && !isToken) {
|
if (getToken() && !isToken) {
|
||||||
config.headers[TokenName] = getToken() // 让每个请求携带自定义token 请根据实际情况自行修改
|
config.headers[TokenName] = getToken() // 让每个请求携带自定义token 请根据实际情况自行修改
|
||||||
}
|
}
|
||||||
return config
|
return config
|
||||||
}, error => {
|
}, error => {
|
||||||
console.log(error)
|
console.log(error)
|
||||||
Promise.reject(error)
|
Promise.reject(error)
|
||||||
});
|
});
|
||||||
formRequest.interceptors.response.use(res => {
|
formRequest.interceptors.response.use(res => {
|
||||||
const code = res.data.status || 200;
|
const code = res.data.status || 200;
|
||||||
if (code === 200) {
|
if(code===200){
|
||||||
return res.data
|
return res.data
|
||||||
} else {
|
}else{
|
||||||
if (code === 401) {
|
if(code === 401){
|
||||||
//Message({message: msg, type: 'error'});
|
//Message({message: msg, type: 'error'});
|
||||||
store.dispatch('LogOut').then(() => {
|
store.dispatch('LogOut').then(() => {
|
||||||
if (top !== window) { // 判断当前是否在iframe内
|
location.href = this.webBaseUrl + ReLoginUrl;
|
||||||
top.location.href = this.webBaseUrl + ReLoginUrl;
|
})
|
||||||
} else {
|
}else if(code===403){
|
||||||
window.location.href = this.webBaseUrl + ReLoginUrl;
|
var msg='当前操作没有权限';
|
||||||
}
|
Message({message: msg, type: 'error'});
|
||||||
// location.href = this.webBaseUrl + ReLoginUrl;
|
return Promise.reject(new Error(msg))
|
||||||
})
|
}else{
|
||||||
} else if (code === 403) {
|
//Message({message: res.data.message, type: 'error'});
|
||||||
var msg = '当前操作没有权限';
|
//console.log('err' + res.data.error);
|
||||||
Message({ message: msg, type: 'error' });
|
return res.data
|
||||||
return Promise.reject(new Error(msg))
|
}
|
||||||
} else {
|
}
|
||||||
//Message({message: res.data.message, type: 'error'});
|
},
|
||||||
//console.log('err' + res.data.error);
|
error => {
|
||||||
return res.data
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
error => {
|
|
||||||
console.log('err' + error)
|
console.log('err' + error)
|
||||||
let { message } = error;
|
let { message } = error;
|
||||||
if (message == "Network Error") {
|
if (message == "Network Error") {
|
||||||
message = "网络异常,请稍后重试";
|
message = "网络异常,请稍后重试";
|
||||||
}
|
}
|
||||||
else if (message.includes("timeout")) {
|
else if (message.includes("timeout")) {
|
||||||
message = "网络异常或接口错误,请求超时";
|
message = "网络异常或接口错误,请求超时";
|
||||||
}
|
}
|
||||||
else if (message.includes("Request failed with status code")) {
|
else if (message.includes("Request failed with status code")) {
|
||||||
message = "系统接口" + message.substr(message.length - 3) + "异常";
|
message = "系统接口" + message.substr(message.length - 3) + "异常";
|
||||||
}
|
}
|
||||||
Message({
|
Message({
|
||||||
message: message,
|
message: message,
|
||||||
type: 'error',
|
type: 'error',
|
||||||
duration: 5 * 1000
|
duration: 5 * 1000
|
||||||
})
|
})
|
||||||
return Promise.reject(error)
|
return Promise.reject(error)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* request请求,可以自定义参数
|
* request请求,可以自定义参数
|
||||||
*/
|
*/
|
||||||
const request = formRequest.request;
|
const request=formRequest.request;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* get请求 ,只有url
|
* get请求 ,只有url
|
||||||
*/
|
*/
|
||||||
const get = function (baseURL, url) {
|
const get = function(baseURL,url){
|
||||||
return request({
|
return request({
|
||||||
baseURL,
|
baseURL,
|
||||||
url: url,
|
url: url,
|
||||||
method: 'get',
|
method: 'get',
|
||||||
headers: { 'Content-Type': 'application/x-www-form-urlencoded' }
|
headers:{'Content-Type':'application/x-www-form-urlencoded'}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -113,61 +108,61 @@ const get = function (baseURL, url) {
|
|||||||
* @param {Object} url
|
* @param {Object} url
|
||||||
* @param {Object} postData
|
* @param {Object} postData
|
||||||
*/
|
*/
|
||||||
const post = function (baseURL, url, postData) {
|
const post=function(baseURL,url,postData){
|
||||||
if (postData) {
|
if(postData){
|
||||||
postData = qs.stringify(postData);
|
postData=qs.stringify(postData);
|
||||||
}
|
}
|
||||||
return request({
|
return request({
|
||||||
baseURL,
|
baseURL,
|
||||||
url: url,
|
url: url,
|
||||||
method: 'post',
|
method: 'post',
|
||||||
data: postData,
|
data:postData,
|
||||||
headers: { 'Content-Type': 'application/x-www-form-urlencoded' }
|
headers:{'Content-Type':'application/x-www-form-urlencoded'}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
//post请求
|
//post请求
|
||||||
const postForm = function (baseURL, url, data) {
|
const postForm=function(baseURL,url,data){
|
||||||
return request({
|
return request({
|
||||||
baseURL,
|
baseURL,
|
||||||
url,
|
url,
|
||||||
data,
|
data,
|
||||||
method: 'post',
|
method: 'post',
|
||||||
headers: { 'Content-Type': 'application/x-www-form-urlencoded' }
|
headers:{'Content-Type':'application/x-www-form-urlencoded'}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
// const postJson=jsonRequest.post;
|
// const postJson=jsonRequest.post;
|
||||||
|
|
||||||
const postJson = function (baseURL, url, postData) {
|
const postJson=function(baseURL,url,postData){
|
||||||
return request({
|
return request({
|
||||||
baseURL,
|
baseURL,
|
||||||
url: url,
|
url: url,
|
||||||
method: 'post',
|
method: 'post',
|
||||||
data: postData,
|
data:postData,
|
||||||
headers: { 'Content-Type': 'application/json;charset=utf-8' },
|
headers:{'Content-Type':'application/json;charset=utf-8'},
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
const postPdf = function (baseURL, url, postData) {
|
const postPdf=function(baseURL,url,postData){
|
||||||
return request({
|
return request({
|
||||||
baseURL,
|
baseURL,
|
||||||
url: url,
|
url: url,
|
||||||
responseType: 'blob',
|
responseType: 'blob',
|
||||||
method: 'post',
|
method: 'post',
|
||||||
data: postData,
|
data:postData,
|
||||||
headers: { 'Content-Type': 'application/pdf' },
|
headers:{'Content-Type':'application/pdf'},
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// 导出文件请求定义
|
// 导出文件请求定义
|
||||||
const postJsonToFile = function (baseURL, url, postData) {
|
const postJsonToFile=function(baseURL,url,postData){
|
||||||
return request({
|
return request({
|
||||||
baseURL,
|
baseURL,
|
||||||
url: url,
|
url: url,
|
||||||
method: 'post',
|
method: 'post',
|
||||||
data: postData,
|
data:postData,
|
||||||
headers: { 'Content-Type': 'application/json;charset=utf-8' },
|
headers:{'Content-Type':'application/json;charset=utf-8'},
|
||||||
responseType: 'blob'
|
responseType: 'blob'
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -175,39 +170,39 @@ const postJsonToFile = function (baseURL, url, postData) {
|
|||||||
/**
|
/**
|
||||||
* put请求
|
* put请求
|
||||||
*/
|
*/
|
||||||
const put = function (baseURL, url, data) {
|
const put=function(baseURL,url,data){
|
||||||
if (data) {
|
if(data){
|
||||||
data = qs.stringify(data);
|
data=qs.stringify(data);
|
||||||
}
|
}
|
||||||
return request({
|
return request({
|
||||||
baseURL,
|
baseURL,
|
||||||
url: url,
|
url: url,
|
||||||
method: 'put',
|
method: 'put',
|
||||||
data: data,
|
data:data,
|
||||||
headers: { 'Content-Type': 'application/x-www-form-urlencoded' }
|
headers:{'Content-Type':'application/x-www-form-urlencoded'}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
const putJson = function (baseURL, url, data) {
|
const putJson=function(baseURL,url,data){
|
||||||
return request({
|
return request({
|
||||||
baseURL,
|
baseURL,
|
||||||
url: url,
|
url: url,
|
||||||
method: 'put',
|
method: 'put',
|
||||||
data: data,
|
data:data,
|
||||||
headers: { 'Content-Type': 'application/json;charset=utf-8' },
|
headers:{'Content-Type':'application/json;charset=utf-8'},
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
tokenName: TokenName,
|
tokenName:TokenName,
|
||||||
request,
|
request,
|
||||||
get,
|
get,
|
||||||
post,
|
post,
|
||||||
postJson,
|
postJson,
|
||||||
postJsonToFile,
|
postJsonToFile,
|
||||||
put,
|
put,
|
||||||
putJson,
|
putJson,
|
||||||
postPdf,
|
postPdf,
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,30 +0,0 @@
|
|||||||
import ajax from '@/utils/xajax.js'
|
|
||||||
|
|
||||||
/**
|
|
||||||
* AI聊天对话接口
|
|
||||||
* @param {Object} data - 请求参数
|
|
||||||
* @param {string} data.conversationId - 会话ID,如果为空则创建新会话
|
|
||||||
* @param {string} data.query - 用户提问内容
|
|
||||||
* @returns {Promise} - 返回SSE流
|
|
||||||
*/
|
|
||||||
export function aiChat(data) {
|
|
||||||
return ajax.postJson('http://192.168.3.178/xboe/m/boe/case/ai/chat', data)
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 查询会话消息记录接口
|
|
||||||
* @param {string} conversationId - 会话ID
|
|
||||||
* @returns {Promise} - 返回会话历史记录
|
|
||||||
*/
|
|
||||||
export function getChatMessages(conversationId) {
|
|
||||||
return ajax.get('/xboe/m/boe/case/ai/messages?conversationId=' + conversationId)
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 案例专家功能入口显示权限判断接口
|
|
||||||
* 判断当前登录用户是否显示"案例专家"功能入口
|
|
||||||
* @returns {Promise} - 返回是否显示功能入口的布尔值
|
|
||||||
*/
|
|
||||||
export function showCaseAiEntrance() {
|
|
||||||
return ajax.get('/xboe/m/boe/case/ai/show-entrance')
|
|
||||||
}
|
|
||||||
@@ -19,95 +19,90 @@ import errorCode from '@/utils/errorCode'
|
|||||||
|
|
||||||
|
|
||||||
// const ReLoginUrl=process.env.VUE_APP_LOGIN_URL;
|
// const ReLoginUrl=process.env.VUE_APP_LOGIN_URL;
|
||||||
const TokenName = 'token';
|
const TokenName='token';
|
||||||
/**axios.defaults.headers['Content-Type'] = 'application/x-www-form-urlencoded'**/
|
/**axios.defaults.headers['Content-Type'] = 'application/x-www-form-urlencoded'**/
|
||||||
//只是用于发送json对象数据时使用post,put,patch
|
//只是用于发送json对象数据时使用post,put,patch
|
||||||
/**axios.defaults.headers['Content-Type'] = 'application/x-www-form-urlencoded'**/
|
/**axios.defaults.headers['Content-Type'] = 'application/x-www-form-urlencoded'**/
|
||||||
//只是用于发送json对象数据时使用post,put,patch
|
//只是用于发送json对象数据时使用post,put,patch
|
||||||
//用于普通的发送请求
|
//用于普通的发送请求
|
||||||
const formRequest = axios.create({
|
const formRequest=axios.create({
|
||||||
// headers:{'Content-Type':'application/x-www-form-urlencoded'},
|
// headers:{'Content-Type':'application/x-www-form-urlencoded'},
|
||||||
// axios中请求配置有baseURL选项,表示请求URL公共部分
|
// axios中请求配置有baseURL选项,表示请求URL公共部分
|
||||||
// baseURL: process.env.VUE_APP_CESOURCE_BASE_API,
|
// baseURL: process.env.VUE_APP_CESOURCE_BASE_API,
|
||||||
//超时
|
//超时
|
||||||
timeout: 10000,
|
timeout: 10000,
|
||||||
})
|
})
|
||||||
//发送json对象的拦截器
|
//发送json对象的拦截器
|
||||||
formRequest.interceptors.request.use(config => {
|
formRequest.interceptors.request.use(config => {
|
||||||
//是否需要设置 token
|
//是否需要设置 token
|
||||||
const isToken = (config.headers || {}).isToken === false
|
const isToken = (config.headers || {}).isToken === false
|
||||||
let curToken = getToken();
|
let curToken=getToken();
|
||||||
//curToken='eyJ0eXBlIjoidG9rZW4iLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC91LmJvZS5jb20iLCJpYXQiOjE2NzIzMTE2MTIsImV4cCI6MTY3MjMxODgxMiwiR2l2ZW5OYW1lIjoiYm9ldSIsInVzZXJJZCI6IjZCMDQ5RkFGLUMzMTQtN0NDRi0wRDI4LTBEMjNGNEM0MjUzMSIsInVJZCI6Ijk2NTM0MjAyNzQ5NzYwNzE2OCIsInBlcm1pc3Npb24iOiIifQ==.a4f41376e994c5fcd3ab537ce17572ef4c633863f87785cf7b6ffa353e2ed51c';
|
//curToken='eyJ0eXBlIjoidG9rZW4iLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC91LmJvZS5jb20iLCJpYXQiOjE2NzIzMTE2MTIsImV4cCI6MTY3MjMxODgxMiwiR2l2ZW5OYW1lIjoiYm9ldSIsInVzZXJJZCI6IjZCMDQ5RkFGLUMzMTQtN0NDRi0wRDI4LTBEMjNGNEM0MjUzMSIsInVJZCI6Ijk2NTM0MjAyNzQ5NzYwNzE2OCIsInBlcm1pc3Npb24iOiIifQ==.a4f41376e994c5fcd3ab537ce17572ef4c633863f87785cf7b6ffa353e2ed51c';
|
||||||
if (curToken && !isToken) {
|
if (curToken && !isToken) {
|
||||||
config.headers[TokenName] = curToken // 让每个请求携带自定义token 请根据实际情况自行修改
|
config.headers[TokenName] = curToken // 让每个请求携带自定义token 请根据实际情况自行修改
|
||||||
}
|
}
|
||||||
return config
|
return config
|
||||||
}, error => {
|
}, error => {
|
||||||
console.log(error)
|
console.log(error)
|
||||||
Promise.reject(error)
|
Promise.reject(error)
|
||||||
});
|
});
|
||||||
formRequest.interceptors.response.use(res => {
|
formRequest.interceptors.response.use(res => {
|
||||||
//console.log(res);
|
//console.log(res);
|
||||||
const code = res.data.status || 200;
|
const code = res.data.status || 200;
|
||||||
if (code === 200) {
|
if(code===200){
|
||||||
return res.data
|
return res.data
|
||||||
} else {
|
}else{
|
||||||
if (code === 401) {
|
if(code === 401){
|
||||||
store.dispatch('LogOut').then(() => {
|
store.dispatch('LogOut').then(() => {
|
||||||
if (top !== window) { // 判断当前是否在iframe内
|
location.href = this.webBaseUrl + ReLoginUrl;
|
||||||
top.location.href = this.webBaseUrl + ReLoginUrl;
|
})
|
||||||
} else {
|
}else if(code===403){
|
||||||
window.location.href = this.webBaseUrl + ReLoginUrl;
|
var msg='当前操作没有权限';
|
||||||
}
|
Message({message: msg, type: 'error'});
|
||||||
// location.href = this.webBaseUrl + ReLoginUrl;
|
return Promise.reject(new Error(msg))
|
||||||
})
|
}else{
|
||||||
} else if (code === 403) {
|
//Message({message: res.data.message, type: 'error'});
|
||||||
var msg = '当前操作没有权限';
|
//console.log('err' + res.data.error);
|
||||||
Message({ message: msg, type: 'error' });
|
return res.data
|
||||||
return Promise.reject(new Error(msg))
|
}
|
||||||
} else {
|
}
|
||||||
//Message({message: res.data.message, type: 'error'});
|
},
|
||||||
//console.log('err' + res.data.error);
|
error => {
|
||||||
return res.data
|
console.log('err',error)
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
error => {
|
|
||||||
console.log('err', error)
|
|
||||||
let { message } = error;
|
let { message } = error;
|
||||||
if (message == "Network Error") {
|
if (message == "Network Error") {
|
||||||
message = "网络异常,请稍后重试";
|
message = "网络异常,请稍后重试";
|
||||||
}
|
}
|
||||||
else if (message.includes("timeout")) {
|
else if (message.includes("timeout")) {
|
||||||
message = "网络异常或接口错误,请求超时";
|
message = "网络异常或接口错误,请求超时";
|
||||||
}
|
}
|
||||||
else if (message.includes("Request failed with status code")) {
|
else if (message.includes("Request failed with status code")) {
|
||||||
message = "系统接口" + message.substr(message.length - 3) + "异常";
|
message = "系统接口" + message.substr(message.length - 3) + "异常";
|
||||||
}
|
}
|
||||||
Message({
|
Message({
|
||||||
message: message,
|
message: message,
|
||||||
type: 'error',
|
type: 'error',
|
||||||
duration: 5 * 1000
|
duration: 5 * 1000
|
||||||
})
|
})
|
||||||
return Promise.reject(error)
|
return Promise.reject(error)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* request请求,可以自定义参数
|
* request请求,可以自定义参数
|
||||||
*/
|
*/
|
||||||
const request = formRequest.request;
|
const request=formRequest.request;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* get请求 ,只有url
|
* get请求 ,只有url
|
||||||
*/
|
*/
|
||||||
const get = function (baseURL, url) {
|
const get = function(baseURL,url){
|
||||||
return request({
|
return request({
|
||||||
baseURL,
|
baseURL,
|
||||||
url: url,
|
url: url,
|
||||||
method: 'get',
|
method: 'get',
|
||||||
headers: { 'Content-Type': 'application/x-www-form-urlencoded' }
|
headers:{'Content-Type':'application/x-www-form-urlencoded'}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -115,49 +110,49 @@ const get = function (baseURL, url) {
|
|||||||
* @param {Object} url
|
* @param {Object} url
|
||||||
* @param {Object} postData
|
* @param {Object} postData
|
||||||
*/
|
*/
|
||||||
const post = function (baseURL, url, postData) {
|
const post=function(baseURL,url,postData){
|
||||||
if (postData) {
|
if(postData){
|
||||||
postData = qs.stringify(postData);
|
postData=qs.stringify(postData);
|
||||||
}
|
}
|
||||||
return request({
|
return request({
|
||||||
baseURL,
|
baseURL,
|
||||||
url: url,
|
url: url,
|
||||||
method: 'post',
|
method: 'post',
|
||||||
data: postData,
|
data:postData,
|
||||||
headers: { 'Content-Type': 'application/x-www-form-urlencoded' }
|
headers:{'Content-Type':'application/x-www-form-urlencoded'}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
//post请求
|
//post请求
|
||||||
const postForm = function (baseURL, url, data) {
|
const postForm=function(baseURL,url,data){
|
||||||
return request({
|
return request({
|
||||||
baseURL,
|
baseURL,
|
||||||
url,
|
url,
|
||||||
data,
|
data,
|
||||||
method: 'post',
|
method: 'post',
|
||||||
headers: { 'Content-Type': 'application/x-www-form-urlencoded' }
|
headers:{'Content-Type':'application/x-www-form-urlencoded'}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
// const postJson=jsonRequest.post;
|
// const postJson=jsonRequest.post;
|
||||||
|
|
||||||
const postJson = function (baseURL, url, postData) {
|
const postJson=function(baseURL,url,postData){
|
||||||
return request({
|
return request({
|
||||||
baseURL,
|
baseURL,
|
||||||
url: url,
|
url: url,
|
||||||
method: 'post',
|
method: 'post',
|
||||||
data: postData,
|
data:postData,
|
||||||
headers: { 'Content-Type': 'application/json' },
|
headers:{'Content-Type':'application/json'},
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// 导出文件请求定义
|
// 导出文件请求定义
|
||||||
const postJsonToFile = function (baseURL, url, postData) {
|
const postJsonToFile=function(baseURL,url,postData){
|
||||||
return request({
|
return request({
|
||||||
baseURL,
|
baseURL,
|
||||||
url: url,
|
url: url,
|
||||||
method: 'post',
|
method: 'post',
|
||||||
data: postData,
|
data:postData,
|
||||||
headers: { 'Content-Type': 'application/json;charset=utf-8' },
|
headers:{'Content-Type':'application/json;charset=utf-8'},
|
||||||
responseType: 'blob'
|
responseType: 'blob'
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -165,38 +160,38 @@ const postJsonToFile = function (baseURL, url, postData) {
|
|||||||
/**
|
/**
|
||||||
* put请求
|
* put请求
|
||||||
*/
|
*/
|
||||||
const put = function (baseURL, url, data) {
|
const put=function(baseURL,url,data){
|
||||||
if (data) {
|
if(data){
|
||||||
data = qs.stringify(data);
|
data=qs.stringify(data);
|
||||||
}
|
}
|
||||||
return request({
|
return request({
|
||||||
baseURL,
|
baseURL,
|
||||||
url: url,
|
url: url,
|
||||||
method: 'put',
|
method: 'put',
|
||||||
data: data,
|
data:data,
|
||||||
headers: { 'Content-Type': 'application/x-www-form-urlencoded' }
|
headers:{'Content-Type':'application/x-www-form-urlencoded'}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
const putJson = function (baseURL, url, data) {
|
const putJson=function(baseURL,url,data){
|
||||||
return request({
|
return request({
|
||||||
baseURL,
|
baseURL,
|
||||||
url: url,
|
url: url,
|
||||||
method: 'put',
|
method: 'put',
|
||||||
data: data,
|
data:data,
|
||||||
headers: { 'Content-Type': 'application/json;charset=utf-8' },
|
headers:{'Content-Type':'application/json;charset=utf-8'},
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
tokenName: TokenName,
|
tokenName:TokenName,
|
||||||
request,
|
request,
|
||||||
get,
|
get,
|
||||||
post,
|
post,
|
||||||
postJson,
|
postJson,
|
||||||
postJsonToFile,
|
postJsonToFile,
|
||||||
put,
|
put,
|
||||||
putJson,
|
putJson,
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,201 +18,191 @@ import errorCode from '@/utils/errorCode'
|
|||||||
*delete请求 axios.delete(url[, config])
|
*delete请求 axios.delete(url[, config])
|
||||||
*/
|
*/
|
||||||
|
|
||||||
const ReLoginUrl = process.env.VUE_APP_LOGIN_URL;
|
const ReLoginUrl=process.env.VUE_APP_LOGIN_URL;
|
||||||
const TokenName = 'token';
|
const TokenName='token';
|
||||||
|
|
||||||
/**axios.defaults.headers['Content-Type'] = 'application/x-www-form-urlencoded'**/
|
/**axios.defaults.headers['Content-Type'] = 'application/x-www-form-urlencoded'**/
|
||||||
//只是用于发送json对象数据时使用post,put,patch
|
//只是用于发送json对象数据时使用post,put,patch
|
||||||
const jsonRequest = axios.create({
|
const jsonRequest=axios.create({
|
||||||
headers: { 'Content-Type': 'application/json;charset=utf-8' },
|
headers:{'Content-Type':'application/json;charset=utf-8'},
|
||||||
// axios中请求配置有baseURL选项,表示请求URL公共部分
|
// axios中请求配置有baseURL选项,表示请求URL公共部分
|
||||||
baseURL: process.env.VUE_APP_BOE_BASE_API,
|
baseURL: process.env.VUE_APP_BOE_BASE_API,
|
||||||
//超时
|
//超时
|
||||||
timeout: 10000,
|
timeout: 10000,
|
||||||
});
|
});
|
||||||
//发送json对象的拦截器
|
//发送json对象的拦截器
|
||||||
jsonRequest.interceptors.request.use(config => {
|
jsonRequest.interceptors.request.use(config => {
|
||||||
//是否需要设置 token
|
//是否需要设置 token
|
||||||
const isToken = (config.headers || {}).isToken === false
|
const isToken = (config.headers || {}).isToken === false
|
||||||
if (getToken() && !isToken) {
|
if (getToken() && !isToken) {
|
||||||
config.headers[TokenName] = getToken() // 让每个请求携带自定义token 请根据实际情况自行修改
|
config.headers[TokenName] = getToken() // 让每个请求携带自定义token 请根据实际情况自行修改
|
||||||
}
|
}
|
||||||
return config
|
return config
|
||||||
}, error => {
|
}, error => {
|
||||||
console.log(error)
|
console.log(error)
|
||||||
Promise.reject(error)
|
Promise.reject(error)
|
||||||
})
|
})
|
||||||
|
|
||||||
// 响应拦截器
|
// 响应拦截器
|
||||||
jsonRequest.interceptors.response.use(res => {
|
jsonRequest.interceptors.response.use(res => {
|
||||||
|
|
||||||
const code1 = res.data.status || 200;
|
const code1 = res.data.status || 200;
|
||||||
const code = parseInt(code1);
|
const code=parseInt(code1);
|
||||||
if (code === 200) {
|
if(code===200){
|
||||||
return res.data
|
return res.data
|
||||||
} else {
|
}else{
|
||||||
if (code == 6001) { //对方是字符串,所以这里不要使用三个等号
|
if(code == 6001){ //对方是字符串,所以这里不要使用三个等号
|
||||||
store.dispatch('LogOut').then(() => {
|
store.dispatch('LogOut').then(() => {
|
||||||
if (top !== window) { // 判断当前是否在iframe内
|
location.href = ReLoginUrl;
|
||||||
top.location.href = ReLoginUrl;
|
})
|
||||||
} else {
|
}else if(code===403){
|
||||||
window.location.href = ReLoginUrl;
|
var msg='当前操作没有权限';
|
||||||
}
|
Message({message: msg, type: 'error'});
|
||||||
// location.href = ReLoginUrl;
|
return Promise.reject(new Error(msg))
|
||||||
})
|
//return res.data;
|
||||||
} else if (code === 403) {
|
}else{
|
||||||
var msg = '当前操作没有权限';
|
//Message({message: res.data.message, type: 'error'});
|
||||||
Message({ message: msg, type: 'error' });
|
//console.log('err:' + res.data.error);
|
||||||
return Promise.reject(new Error(msg))
|
//return Promise.reject(new Error(res.data.message))
|
||||||
//return res.data;
|
return res.data;
|
||||||
} else {
|
}
|
||||||
//Message({message: res.data.message, type: 'error'});
|
}
|
||||||
//console.log('err:' + res.data.error);
|
},
|
||||||
//return Promise.reject(new Error(res.data.message))
|
error => {
|
||||||
return res.data;
|
console.log('err' + error)
|
||||||
}
|
let { message } = error;
|
||||||
}
|
if (message == "Network Error") {
|
||||||
},
|
message = "网络异常,请稍后重试";
|
||||||
error => {
|
}
|
||||||
console.log('err' + error)
|
else if (message.includes("timeout")) {
|
||||||
let { message } = error;
|
message = "系统接口请求超时";
|
||||||
if (message == "Network Error") {
|
//location.href = this.webBaseUrl + ReLoginUrl;
|
||||||
message = "网络异常,请稍后重试";
|
}
|
||||||
}
|
else if (message.includes("Request failed with status code")) {
|
||||||
else if (message.includes("timeout")) {
|
message = "系统接口" + message.substr(message.length - 3) + "异常";
|
||||||
message = "系统接口请求超时";
|
}
|
||||||
//location.href = this.webBaseUrl + ReLoginUrl;
|
Message({
|
||||||
}
|
message: message,
|
||||||
else if (message.includes("Request failed with status code")) {
|
type: 'error',
|
||||||
message = "系统接口" + message.substr(message.length - 3) + "异常";
|
duration: 5 * 1000
|
||||||
}
|
})
|
||||||
Message({
|
return Promise.reject(error)
|
||||||
message: message,
|
}
|
||||||
type: 'error',
|
|
||||||
duration: 5 * 1000
|
|
||||||
})
|
|
||||||
return Promise.reject(error)
|
|
||||||
}
|
|
||||||
)
|
)
|
||||||
|
|
||||||
//用于普通的发送请求
|
//用于普通的发送请求
|
||||||
const formRequest = axios.create({
|
const formRequest=axios.create({
|
||||||
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
|
headers:{'Content-Type':'application/x-www-form-urlencoded'},
|
||||||
// axios中请求配置有baseURL选项,表示请求URL公共部分
|
// axios中请求配置有baseURL选项,表示请求URL公共部分
|
||||||
baseURL: process.env.VUE_APP_BOE_BASE_API,
|
baseURL: process.env.VUE_APP_BOE_BASE_API,
|
||||||
//超时
|
//超时
|
||||||
timeout: 10000,
|
timeout: 10000,
|
||||||
})
|
})
|
||||||
//发送json对象的拦截器
|
//发送json对象的拦截器
|
||||||
formRequest.interceptors.request.use(config => {
|
formRequest.interceptors.request.use(config => {
|
||||||
//是否需要设置 token
|
//是否需要设置 token
|
||||||
const isToken = (config.headers || {}).isToken === false
|
const isToken = (config.headers || {}).isToken === false
|
||||||
if (getToken() && !isToken) {
|
if (getToken() && !isToken) {
|
||||||
config.headers[TokenName] = getToken() // 让每个请求携带自定义token 请根据实际情况自行修改
|
config.headers[TokenName] = getToken() // 让每个请求携带自定义token 请根据实际情况自行修改
|
||||||
}
|
}
|
||||||
return config
|
return config
|
||||||
}, error => {
|
}, error => {
|
||||||
console.log(error)
|
console.log(error)
|
||||||
Promise.reject(error)
|
Promise.reject(error)
|
||||||
});
|
});
|
||||||
formRequest.interceptors.response.use(res => {
|
formRequest.interceptors.response.use(res => {
|
||||||
const code = res.data.status || 200;
|
const code = res.data.status || 200;
|
||||||
if (code === 200) {
|
if(code===200){
|
||||||
return res.data
|
return res.data
|
||||||
} else {
|
}else{
|
||||||
if (code == 6001) { //对方是字符串,所以这里不要使用三个等号
|
if(code == 6001){ //对方是字符串,所以这里不要使用三个等号
|
||||||
store.dispatch('LogOut').then(() => {
|
store.dispatch('LogOut').then(() => {
|
||||||
if (top !== window) { // 判断当前是否在iframe内
|
location.href = ReLoginUrl;
|
||||||
top.location.href = ReLoginUrl;
|
})
|
||||||
} else {
|
}else if(code===403){
|
||||||
window.location.href = ReLoginUrl;
|
var msg='当前操作没有权限';
|
||||||
}
|
Message({message: msg, type: 'error'});
|
||||||
// location.href = ReLoginUrl;
|
return Promise.reject(new Error(msg))
|
||||||
})
|
}else{
|
||||||
} else if (code === 403) {
|
//Message({message: res.data.message, type: 'error'});
|
||||||
var msg = '当前操作没有权限';
|
//console.log('err' + res.data.error);
|
||||||
Message({ message: msg, type: 'error' });
|
//return Promise.reject(new Error(res.data.message))
|
||||||
return Promise.reject(new Error(msg))
|
return res.data;//返回给用户做业务处理
|
||||||
} else {
|
}
|
||||||
//Message({message: res.data.message, type: 'error'});
|
}
|
||||||
//console.log('err' + res.data.error);
|
},
|
||||||
//return Promise.reject(new Error(res.data.message))
|
error => {
|
||||||
return res.data;//返回给用户做业务处理
|
console.log('err' + error)
|
||||||
}
|
let { message } = error;
|
||||||
}
|
if (message == "Network Error") {
|
||||||
},
|
message = "网络异常,请稍后重试";
|
||||||
error => {
|
}
|
||||||
console.log('err' + error)
|
else if (message.includes("timeout")) {
|
||||||
let { message } = error;
|
message = "系统接口请求超时";
|
||||||
if (message == "Network Error") {
|
//location.href = this.webBaseUrl + ReLoginUrl;
|
||||||
message = "网络异常,请稍后重试";
|
}
|
||||||
}
|
else if (message.includes("Request failed with status code")) {
|
||||||
else if (message.includes("timeout")) {
|
message = "系统接口" + message.substr(message.length - 3) + "异常";
|
||||||
message = "系统接口请求超时";
|
}
|
||||||
//location.href = this.webBaseUrl + ReLoginUrl;
|
Message({
|
||||||
}
|
message: message,
|
||||||
else if (message.includes("Request failed with status code")) {
|
type: 'error',
|
||||||
message = "系统接口" + message.substr(message.length - 3) + "异常";
|
duration: 5 * 1000
|
||||||
}
|
})
|
||||||
Message({
|
return Promise.reject(error)
|
||||||
message: message,
|
}
|
||||||
type: 'error',
|
|
||||||
duration: 5 * 1000
|
|
||||||
})
|
|
||||||
return Promise.reject(error)
|
|
||||||
}
|
|
||||||
)
|
)
|
||||||
|
|
||||||
//request请求
|
//request请求
|
||||||
const request = function (cfg) {
|
const request=function(cfg){
|
||||||
if (cfg.data) {
|
if(cfg.data){
|
||||||
cfg.data = qs.stringify(cfg.data);
|
cfg.data=qs.stringify(cfg.data);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
//requestJson请求
|
//requestJson请求
|
||||||
const requestJson = jsonRequest.request;
|
const requestJson=jsonRequest.request;
|
||||||
//get请求
|
//get请求
|
||||||
const get = formRequest.request;
|
const get=formRequest.request;
|
||||||
//post请求
|
//post请求
|
||||||
const post = function (url, data, config) {
|
const post=function(url,data,config){
|
||||||
if (data) {
|
if(data){
|
||||||
data = qs.stringify(data);
|
data=qs.stringify(data);
|
||||||
}
|
}
|
||||||
return formRequest.post(url, data, config);
|
return formRequest.post(url,data,config);
|
||||||
}
|
}
|
||||||
//postJson请求
|
//postJson请求
|
||||||
const postJson = jsonRequest.post;
|
const postJson=jsonRequest.post;
|
||||||
//put请求
|
//put请求
|
||||||
const put = function (url, data, config) {
|
const put=function(url,data,config){
|
||||||
if (data) {
|
if(data){
|
||||||
data = qs.stringify(data);
|
data=qs.stringify(data);
|
||||||
}
|
}
|
||||||
return formRequest.put(url, data, config);
|
return formRequest.put(url,data,config);
|
||||||
}
|
}
|
||||||
//putJson请求
|
//putJson请求
|
||||||
const putJson = jsonRequest.put;
|
const putJson=jsonRequest.put;
|
||||||
//patch请求
|
//patch请求
|
||||||
const patch = function (url, data, config) {
|
const patch=function(url,data,config){
|
||||||
if (data) {
|
if(data){
|
||||||
data = qs.stringify(data);
|
data=qs.stringify(data);
|
||||||
}
|
}
|
||||||
return formRequest.patch(url, data, config);
|
return formRequest.patch(url,data,config);
|
||||||
}
|
}
|
||||||
//patchJson请求
|
//patchJson请求
|
||||||
const patchJson = jsonRequest.patch;
|
const patchJson=jsonRequest.patch;
|
||||||
//delete请求
|
//delete请求
|
||||||
const del = formRequest.delete;
|
const del=formRequest.delete;
|
||||||
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
request,
|
request,
|
||||||
requestJson,
|
requestJson,
|
||||||
get,
|
get,
|
||||||
post,
|
post,
|
||||||
postJson,
|
postJson,
|
||||||
put,
|
put,
|
||||||
putJson,
|
putJson,
|
||||||
patch,
|
patch,
|
||||||
patchJson,
|
patchJson,
|
||||||
del
|
del
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -103,14 +103,6 @@ const getUsersByIds = function(ids) {
|
|||||||
return ajax.postJson(baseURL,'/user/getUserMessageToDai',ids);
|
return ajax.postJson(baseURL,'/user/getUserMessageToDai',ids);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 根据关键字检索用户(创建人下拉)
|
|
||||||
* @param {string} keyword
|
|
||||||
*/
|
|
||||||
const selectUser = function(keyword = '') {
|
|
||||||
return ajax.postJson(baseURL,'/user/selectuser',{ keyword });
|
|
||||||
}
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
userParentOrg,
|
userParentOrg,
|
||||||
findOrgsByKeyword,
|
findOrgsByKeyword,
|
||||||
@@ -124,6 +116,5 @@ export default {
|
|||||||
getInAudienceIds,
|
getInAudienceIds,
|
||||||
getUsersByIds,
|
getUsersByIds,
|
||||||
updateUser,
|
updateUser,
|
||||||
logout,
|
logout
|
||||||
selectUser
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,196 +16,186 @@ import errorCode from '@/utils/errorCode'
|
|||||||
*patchJson请求 axios.patch(url[, data[, config]])
|
*patchJson请求 axios.patch(url[, data[, config]])
|
||||||
*delete请求 axios.delete(url[, config])
|
*delete请求 axios.delete(url[, config])
|
||||||
*/
|
*/
|
||||||
|
|
||||||
const ReLoginUrl = "/login";
|
const ReLoginUrl="/login";
|
||||||
const TokenName = 'XBOE-Access-Token';
|
const TokenName='XBOE-Access-Token';
|
||||||
/**axios.defaults.headers['Content-Type'] = 'application/x-www-form-urlencoded'**/
|
/**axios.defaults.headers['Content-Type'] = 'application/x-www-form-urlencoded'**/
|
||||||
//只是用于发送json对象数据时使用post,put,patch
|
//只是用于发送json对象数据时使用post,put,patch
|
||||||
const jsonRequest = axios.create({
|
const jsonRequest=axios.create({
|
||||||
headers: { 'Content-Type': 'application/json;charset=utf-8' },
|
headers:{'Content-Type':'application/json;charset=utf-8'},
|
||||||
// axios中请求配置有baseURL选项,表示请求URL公共部分
|
// axios中请求配置有baseURL选项,表示请求URL公共部分
|
||||||
baseURL: process.env.VUE_APP_CESOURCE_BASE_API,
|
baseURL: process.env.VUE_APP_CESOURCE_BASE_API,
|
||||||
//超时
|
//超时
|
||||||
timeout: 10000,
|
timeout: 10000,
|
||||||
});
|
});
|
||||||
//发送json对象的拦截器
|
//发送json对象的拦截器
|
||||||
jsonRequest.interceptors.request.use(config => {
|
jsonRequest.interceptors.request.use(config => {
|
||||||
//是否需要设置 token
|
//是否需要设置 token
|
||||||
const isToken = (config.headers || {}).isToken === false
|
const isToken = (config.headers || {}).isToken === false
|
||||||
if (getToken() && !isToken) {
|
if (getToken() && !isToken) {
|
||||||
config.headers[TokenName] = getToken() // 让每个请求携带自定义token 请根据实际情况自行修改
|
config.headers[TokenName] = getToken() // 让每个请求携带自定义token 请根据实际情况自行修改
|
||||||
}
|
}
|
||||||
return config
|
return config
|
||||||
}, error => {
|
}, error => {
|
||||||
console.log(error)
|
console.log(error)
|
||||||
Promise.reject(error)
|
Promise.reject(error)
|
||||||
})
|
})
|
||||||
|
|
||||||
// 响应拦截器
|
// 响应拦截器
|
||||||
jsonRequest.interceptors.response.use(res => {
|
jsonRequest.interceptors.response.use(res => {
|
||||||
|
|
||||||
const code = res.data.status || 200;
|
const code = res.data.status || 200;
|
||||||
if (code === 200) {
|
if(code===200){
|
||||||
return res.data
|
return res.data
|
||||||
} else {
|
}else{
|
||||||
if (code === 401) {
|
if(code === 401){
|
||||||
store.dispatch('LogOut').then(() => {
|
store.dispatch('LogOut').then(() => {
|
||||||
if (top !== window) { // 判断当前是否在iframe内
|
location.href = this.webBaseUrl + ReLoginUrl;
|
||||||
top.location.href = this.webBaseUrl + ReLoginUrl;
|
})
|
||||||
} else {
|
}else if(code===403){
|
||||||
window.location.href = this.webBaseUrl + ReLoginUrl;
|
var msg='当前操作没有权限';
|
||||||
}
|
Message({message: msg, type: 'error'});
|
||||||
// location.href = this.webBaseUrl + ReLoginUrl;
|
return Promise.reject(new Error(msg))
|
||||||
})
|
}else{
|
||||||
} else if (code === 403) {
|
//Message({message: res.data.message, type: 'error'});
|
||||||
var msg = '当前操作没有权限';
|
//console.log('err:' + res.data.error);
|
||||||
Message({ message: msg, type: 'error' });
|
return res.data;
|
||||||
return Promise.reject(new Error(msg))
|
//return Promise.reject(new Error(res.data.message))
|
||||||
} else {
|
}
|
||||||
//Message({message: res.data.message, type: 'error'});
|
}
|
||||||
//console.log('err:' + res.data.error);
|
},
|
||||||
return res.data;
|
error => {
|
||||||
//return Promise.reject(new Error(res.data.message))
|
console.log('err' + error)
|
||||||
}
|
let { message } = error;
|
||||||
}
|
if (message == "Network Error") {
|
||||||
},
|
message = "网络异常,请稍后重试";
|
||||||
error => {
|
}
|
||||||
console.log('err' + error)
|
else if (message.includes("timeout")) {
|
||||||
let { message } = error;
|
message = "系统接口请求超时";
|
||||||
if (message == "Network Error") {
|
}
|
||||||
message = "网络异常,请稍后重试";
|
else if (message.includes("Request failed with status code")) {
|
||||||
}
|
message = "系统接口" + message.substr(message.length - 3) + "异常";
|
||||||
else if (message.includes("timeout")) {
|
}
|
||||||
message = "系统接口请求超时";
|
Message({
|
||||||
}
|
message: message,
|
||||||
else if (message.includes("Request failed with status code")) {
|
type: 'error',
|
||||||
message = "系统接口" + message.substr(message.length - 3) + "异常";
|
duration: 5 * 1000
|
||||||
}
|
})
|
||||||
Message({
|
return Promise.reject(error)
|
||||||
message: message,
|
}
|
||||||
type: 'error',
|
|
||||||
duration: 5 * 1000
|
|
||||||
})
|
|
||||||
return Promise.reject(error)
|
|
||||||
}
|
|
||||||
)
|
)
|
||||||
|
|
||||||
//用于普通的发送请求
|
//用于普通的发送请求
|
||||||
const formRequest = axios.create({
|
const formRequest=axios.create({
|
||||||
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
|
headers:{'Content-Type':'application/x-www-form-urlencoded'},
|
||||||
// axios中请求配置有baseURL选项,表示请求URL公共部分
|
// axios中请求配置有baseURL选项,表示请求URL公共部分
|
||||||
baseURL: process.env.VUE_APP_CESOURCE_BASE_API,
|
baseURL: process.env.VUE_APP_CESOURCE_BASE_API,
|
||||||
//超时
|
//超时
|
||||||
timeout: 10000,
|
timeout: 10000,
|
||||||
})
|
})
|
||||||
//发送json对象的拦截器
|
//发送json对象的拦截器
|
||||||
formRequest.interceptors.request.use(config => {
|
formRequest.interceptors.request.use(config => {
|
||||||
//是否需要设置 token
|
//是否需要设置 token
|
||||||
const isToken = (config.headers || {}).isToken === false
|
const isToken = (config.headers || {}).isToken === false
|
||||||
if (getToken() && !isToken) {
|
if (getToken() && !isToken) {
|
||||||
config.headers[TokenName] = getToken() // 让每个请求携带自定义token 请根据实际情况自行修改
|
config.headers[TokenName] = getToken() // 让每个请求携带自定义token 请根据实际情况自行修改
|
||||||
}
|
}
|
||||||
return config
|
return config
|
||||||
}, error => {
|
}, error => {
|
||||||
console.log(error)
|
console.log(error)
|
||||||
Promise.reject(error)
|
Promise.reject(error)
|
||||||
});
|
});
|
||||||
formRequest.interceptors.response.use(res => {
|
formRequest.interceptors.response.use(res => {
|
||||||
const code = res.data.status || 200;
|
const code = res.data.status || 200;
|
||||||
if (code === 200) {
|
if(code===200){
|
||||||
return res.data
|
|
||||||
} else {
|
|
||||||
if (code === 401) {
|
|
||||||
store.dispatch('LogOut').then(() => {
|
|
||||||
if (top !== window) { // 判断当前是否在iframe内
|
|
||||||
top.location.href = this.webBaseUrl + ReLoginUrl;
|
|
||||||
} else {
|
|
||||||
window.location.href = this.webBaseUrl + ReLoginUrl;
|
|
||||||
}
|
|
||||||
// location.href = this.webBaseUrl + ReLoginUrl;
|
|
||||||
})
|
|
||||||
} else if (code === 403) {
|
|
||||||
var msg = '当前操作没有权限';
|
|
||||||
Message({ message: msg, type: 'error' });
|
|
||||||
return Promise.reject(new Error(msg))
|
|
||||||
} else {
|
|
||||||
//Message({message: res.data.message, type: 'error'});
|
|
||||||
//console.log('err' + res.data.error);
|
|
||||||
return res.data
|
return res.data
|
||||||
}
|
}else{
|
||||||
}
|
if(code === 401){
|
||||||
},
|
store.dispatch('LogOut').then(() => {
|
||||||
error => {
|
location.href = this.webBaseUrl + ReLoginUrl;
|
||||||
console.log('err' + error)
|
})
|
||||||
let { message } = error;
|
}else if(code===403){
|
||||||
if (message == "Network Error") {
|
var msg='当前操作没有权限';
|
||||||
message = "网络异常,请稍后重试";
|
Message({message: msg, type: 'error'});
|
||||||
}
|
return Promise.reject(new Error(msg))
|
||||||
else if (message.includes("timeout")) {
|
}else{
|
||||||
message = "系统接口请求超时";
|
//Message({message: res.data.message, type: 'error'});
|
||||||
}
|
//console.log('err' + res.data.error);
|
||||||
else if (message.includes("Request failed with status code")) {
|
return res.data
|
||||||
message = "系统接口" + message.substr(message.length - 3) + "异常";
|
}
|
||||||
}
|
}
|
||||||
Message({
|
},
|
||||||
message: message,
|
error => {
|
||||||
type: 'error',
|
console.log('err' + error)
|
||||||
duration: 5 * 1000
|
let { message } = error;
|
||||||
})
|
if (message == "Network Error") {
|
||||||
return Promise.reject(error)
|
message = "网络异常,请稍后重试";
|
||||||
}
|
}
|
||||||
|
else if (message.includes("timeout")) {
|
||||||
|
message = "系统接口请求超时";
|
||||||
|
}
|
||||||
|
else if (message.includes("Request failed with status code")) {
|
||||||
|
message = "系统接口" + message.substr(message.length - 3) + "异常";
|
||||||
|
}
|
||||||
|
Message({
|
||||||
|
message: message,
|
||||||
|
type: 'error',
|
||||||
|
duration: 5 * 1000
|
||||||
|
})
|
||||||
|
return Promise.reject(error)
|
||||||
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
//request请求
|
//request请求
|
||||||
const request = function (cfg) {
|
const request=function(cfg){
|
||||||
if (cfg.data) {
|
if(cfg.data){
|
||||||
cfg.data = qs.stringify(cfg.data);
|
cfg.data=qs.stringify(cfg.data);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
//requestJson请求
|
//requestJson请求
|
||||||
const requestJson = jsonRequest.request;
|
const requestJson=jsonRequest.request;
|
||||||
//get请求
|
//get请求
|
||||||
const get = formRequest.request;
|
const get=formRequest.request;
|
||||||
//post请求
|
//post请求
|
||||||
const post = function (url, data, config) {
|
const post=function(url,data,config){
|
||||||
if (data) {
|
if(data){
|
||||||
data = qs.stringify(data);
|
data=qs.stringify(data);
|
||||||
}
|
}
|
||||||
return formRequest.post(url, data, config);
|
return formRequest.post(url,data,config);
|
||||||
}
|
}
|
||||||
//postJson请求
|
//postJson请求
|
||||||
const postJson = jsonRequest.post;
|
const postJson=jsonRequest.post;
|
||||||
//put请求
|
//put请求
|
||||||
const put = function (url, data, config) {
|
const put=function(url,data,config){
|
||||||
if (data) {
|
if(data){
|
||||||
data = qs.stringify(data);
|
data=qs.stringify(data);
|
||||||
}
|
}
|
||||||
return formRequest.put(url, data, config);
|
return formRequest.put(url,data,config);
|
||||||
}
|
}
|
||||||
//putJson请求
|
//putJson请求
|
||||||
const putJson = jsonRequest.put;
|
const putJson=jsonRequest.put;
|
||||||
//patch请求
|
//patch请求
|
||||||
const patch = function (url, data, config) {
|
const patch=function(url,data,config){
|
||||||
if (data) {
|
if(data){
|
||||||
data = qs.stringify(data);
|
data=qs.stringify(data);
|
||||||
}
|
}
|
||||||
return formRequest.patch(url, data, config);
|
return formRequest.patch(url,data,config);
|
||||||
}
|
}
|
||||||
//patchJson请求
|
//patchJson请求
|
||||||
const patchJson = jsonRequest.patch;
|
const patchJson=jsonRequest.patch;
|
||||||
//delete请求
|
//delete请求
|
||||||
const del = formRequest.delete;
|
const del=formRequest.delete;
|
||||||
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
request,
|
request,
|
||||||
requestJson,
|
requestJson,
|
||||||
get,
|
get,
|
||||||
post,
|
post,
|
||||||
postJson,
|
postJson,
|
||||||
put,
|
put,
|
||||||
putJson,
|
putJson,
|
||||||
patch,
|
patch,
|
||||||
patchJson,
|
patchJson,
|
||||||
del
|
del
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,195 +17,185 @@ import errorCode from '@/utils/errorCode'
|
|||||||
*delete请求 axios.delete(url[, config])
|
*delete请求 axios.delete(url[, config])
|
||||||
*/
|
*/
|
||||||
|
|
||||||
const ReLoginUrl = "/login";
|
const ReLoginUrl="/login";
|
||||||
const TokenName = 'XBOE-Access-Token';
|
const TokenName='XBOE-Access-Token';
|
||||||
/**axios.defaults.headers['Content-Type'] = 'application/x-www-form-urlencoded'**/
|
/**axios.defaults.headers['Content-Type'] = 'application/x-www-form-urlencoded'**/
|
||||||
//只是用于发送json对象数据时使用post,put,patch
|
//只是用于发送json对象数据时使用post,put,patch
|
||||||
const jsonRequest = axios.create({
|
const jsonRequest=axios.create({
|
||||||
headers: { 'Content-Type': 'application/json;charset=utf-8' },
|
headers:{'Content-Type':'application/json;charset=utf-8'},
|
||||||
// axios中请求配置有baseURL选项,表示请求URL公共部分
|
// axios中请求配置有baseURL选项,表示请求URL公共部分
|
||||||
baseURL: process.env.VUE_APP_STAT_BASE_API,
|
baseURL: process.env.VUE_APP_STAT_BASE_API,
|
||||||
//超时
|
//超时
|
||||||
timeout: 10000,
|
timeout: 10000,
|
||||||
});
|
});
|
||||||
//发送json对象的拦截器
|
//发送json对象的拦截器
|
||||||
jsonRequest.interceptors.request.use(config => {
|
jsonRequest.interceptors.request.use(config => {
|
||||||
//是否需要设置 token
|
//是否需要设置 token
|
||||||
const isToken = (config.headers || {}).isToken === false
|
const isToken = (config.headers || {}).isToken === false
|
||||||
if (getToken() && !isToken) {
|
if (getToken() && !isToken) {
|
||||||
config.headers[TokenName] = getToken() // 让每个请求携带自定义token 请根据实际情况自行修改
|
config.headers[TokenName] = getToken() // 让每个请求携带自定义token 请根据实际情况自行修改
|
||||||
}
|
}
|
||||||
return config
|
return config
|
||||||
}, error => {
|
}, error => {
|
||||||
console.log(error)
|
console.log(error)
|
||||||
Promise.reject(error)
|
Promise.reject(error)
|
||||||
})
|
})
|
||||||
|
|
||||||
// 响应拦截器
|
// 响应拦截器
|
||||||
jsonRequest.interceptors.response.use(res => {
|
jsonRequest.interceptors.response.use(res => {
|
||||||
|
|
||||||
const code = res.data.status || 200;
|
const code = res.data.status || 200;
|
||||||
if (code === 200) {
|
if(code===200){
|
||||||
return res.data
|
return res.data
|
||||||
} else {
|
}else{
|
||||||
if (code === 401) {
|
if(code === 401){
|
||||||
store.dispatch('LogOut').then(() => {
|
store.dispatch('LogOut').then(() => {
|
||||||
if (top !== window) { // 判断当前是否在iframe内
|
location.href = this.webBaseUrl + ReLoginUrl;
|
||||||
top.location.href = this.webBaseUrl + ReLoginUrl;
|
})
|
||||||
} else {
|
}else if(code===403){
|
||||||
window.location.href = this.webBaseUrl + ReLoginUrl;
|
var msg='当前操作没有权限';
|
||||||
}
|
Message({message: msg, type: 'error'});
|
||||||
// location.href = this.webBaseUrl + ReLoginUrl;
|
return Promise.reject(new Error(msg))
|
||||||
})
|
}else{
|
||||||
} else if (code === 403) {
|
//Message({message: res.data.message, type: 'error'});
|
||||||
var msg = '当前操作没有权限';
|
//console.log('err:' + res.data.error);
|
||||||
Message({ message: msg, type: 'error' });
|
return res.data;
|
||||||
return Promise.reject(new Error(msg))
|
//return Promise.reject(new Error(res.data.message))
|
||||||
} else {
|
}
|
||||||
//Message({message: res.data.message, type: 'error'});
|
}
|
||||||
//console.log('err:' + res.data.error);
|
},
|
||||||
return res.data;
|
error => {
|
||||||
//return Promise.reject(new Error(res.data.message))
|
console.log('err' + error)
|
||||||
}
|
let { message } = error;
|
||||||
}
|
if (message == "Network Error") {
|
||||||
},
|
message = "网络异常,请稍后重试";
|
||||||
error => {
|
}
|
||||||
console.log('err' + error)
|
else if (message.includes("timeout")) {
|
||||||
let { message } = error;
|
message = "系统接口请求超时";
|
||||||
if (message == "Network Error") {
|
}
|
||||||
message = "网络异常,请稍后重试";
|
else if (message.includes("Request failed with status code")) {
|
||||||
}
|
message = "系统接口" + message.substr(message.length - 3) + "异常";
|
||||||
else if (message.includes("timeout")) {
|
}
|
||||||
message = "系统接口请求超时";
|
Message({
|
||||||
}
|
message: message,
|
||||||
else if (message.includes("Request failed with status code")) {
|
type: 'error',
|
||||||
message = "系统接口" + message.substr(message.length - 3) + "异常";
|
duration: 5 * 1000
|
||||||
}
|
})
|
||||||
Message({
|
return Promise.reject(error)
|
||||||
message: message,
|
}
|
||||||
type: 'error',
|
|
||||||
duration: 5 * 1000
|
|
||||||
})
|
|
||||||
return Promise.reject(error)
|
|
||||||
}
|
|
||||||
)
|
)
|
||||||
|
|
||||||
//用于普通的发送请求
|
//用于普通的发送请求
|
||||||
const formRequest = axios.create({
|
const formRequest=axios.create({
|
||||||
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
|
headers:{'Content-Type':'application/x-www-form-urlencoded'},
|
||||||
// axios中请求配置有baseURL选项,表示请求URL公共部分
|
// axios中请求配置有baseURL选项,表示请求URL公共部分
|
||||||
baseURL: process.env.VUE_APP_STAT_BASE_API,
|
baseURL: process.env.VUE_APP_STAT_BASE_API,
|
||||||
//超时
|
//超时
|
||||||
timeout: 10000,
|
timeout: 10000,
|
||||||
})
|
})
|
||||||
//发送json对象的拦截器
|
//发送json对象的拦截器
|
||||||
formRequest.interceptors.request.use(config => {
|
formRequest.interceptors.request.use(config => {
|
||||||
//是否需要设置 token
|
//是否需要设置 token
|
||||||
const isToken = (config.headers || {}).isToken === false
|
const isToken = (config.headers || {}).isToken === false
|
||||||
if (getToken() && !isToken) {
|
if (getToken() && !isToken) {
|
||||||
config.headers[TokenName] = getToken() // 让每个请求携带自定义token 请根据实际情况自行修改
|
config.headers[TokenName] = getToken() // 让每个请求携带自定义token 请根据实际情况自行修改
|
||||||
}
|
}
|
||||||
return config
|
return config
|
||||||
}, error => {
|
}, error => {
|
||||||
console.log(error)
|
console.log(error)
|
||||||
Promise.reject(error)
|
Promise.reject(error)
|
||||||
});
|
});
|
||||||
formRequest.interceptors.response.use(res => {
|
formRequest.interceptors.response.use(res => {
|
||||||
const code = res.data.status || 200;
|
const code = res.data.status || 200;
|
||||||
if (code === 200) {
|
if(code===200){
|
||||||
return res.data
|
|
||||||
} else {
|
|
||||||
if (code === 401) {
|
|
||||||
store.dispatch('LogOut').then(() => {
|
|
||||||
if (top !== window) { // 判断当前是否在iframe内
|
|
||||||
top.location.href = this.webBaseUrl + ReLoginUrl;
|
|
||||||
} else {
|
|
||||||
window.location.href = this.webBaseUrl + ReLoginUrl;
|
|
||||||
}
|
|
||||||
// location.href = this.webBaseUrl + ReLoginUrl;
|
|
||||||
})
|
|
||||||
} else if (code === 403) {
|
|
||||||
var msg = '当前操作没有权限';
|
|
||||||
Message({ message: msg, type: 'error' });
|
|
||||||
return Promise.reject(new Error(msg))
|
|
||||||
} else {
|
|
||||||
//Message({message: res.data.message, type: 'error'});
|
|
||||||
//console.log('err' + res.data.error);
|
|
||||||
return res.data
|
return res.data
|
||||||
}
|
}else{
|
||||||
}
|
if(code === 401){
|
||||||
},
|
store.dispatch('LogOut').then(() => {
|
||||||
error => {
|
location.href = this.webBaseUrl + ReLoginUrl;
|
||||||
console.log('err' + error)
|
})
|
||||||
let { message } = error;
|
}else if(code===403){
|
||||||
if (message == "Network Error") {
|
var msg='当前操作没有权限';
|
||||||
message = "网络异常,请稍后重试";
|
Message({message: msg, type: 'error'});
|
||||||
}
|
return Promise.reject(new Error(msg))
|
||||||
else if (message.includes("timeout")) {
|
}else{
|
||||||
message = "系统接口请求超时";
|
//Message({message: res.data.message, type: 'error'});
|
||||||
}
|
//console.log('err' + res.data.error);
|
||||||
else if (message.includes("Request failed with status code")) {
|
return res.data
|
||||||
message = "系统接口" + message.substr(message.length - 3) + "异常";
|
}
|
||||||
}
|
}
|
||||||
Message({
|
},
|
||||||
message: message,
|
error => {
|
||||||
type: 'error',
|
console.log('err' + error)
|
||||||
duration: 5 * 1000
|
let { message } = error;
|
||||||
})
|
if (message == "Network Error") {
|
||||||
return Promise.reject(error)
|
message = "网络异常,请稍后重试";
|
||||||
}
|
}
|
||||||
|
else if (message.includes("timeout")) {
|
||||||
|
message = "系统接口请求超时";
|
||||||
|
}
|
||||||
|
else if (message.includes("Request failed with status code")) {
|
||||||
|
message = "系统接口" + message.substr(message.length - 3) + "异常";
|
||||||
|
}
|
||||||
|
Message({
|
||||||
|
message: message,
|
||||||
|
type: 'error',
|
||||||
|
duration: 5 * 1000
|
||||||
|
})
|
||||||
|
return Promise.reject(error)
|
||||||
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
//request请求
|
//request请求
|
||||||
const request = function (cfg) {
|
const request=function(cfg){
|
||||||
if (cfg.data) {
|
if(cfg.data){
|
||||||
cfg.data = qs.stringify(cfg.data);
|
cfg.data=qs.stringify(cfg.data);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
//requestJson请求
|
//requestJson请求
|
||||||
const requestJson = jsonRequest.request;
|
const requestJson=jsonRequest.request;
|
||||||
//get请求
|
//get请求
|
||||||
const get = formRequest.request;
|
const get=formRequest.request;
|
||||||
//post请求
|
//post请求
|
||||||
const post = function (url, data, config) {
|
const post=function(url,data,config){
|
||||||
if (data) {
|
if(data){
|
||||||
data = qs.stringify(data);
|
data=qs.stringify(data);
|
||||||
}
|
}
|
||||||
return formRequest.post(url, data, config);
|
return formRequest.post(url,data,config);
|
||||||
}
|
}
|
||||||
//postJson请求
|
//postJson请求
|
||||||
const postJson = jsonRequest.post;
|
const postJson=jsonRequest.post;
|
||||||
//put请求
|
//put请求
|
||||||
const put = function (url, data, config) {
|
const put=function(url,data,config){
|
||||||
if (data) {
|
if(data){
|
||||||
data = qs.stringify(data);
|
data=qs.stringify(data);
|
||||||
}
|
}
|
||||||
return formRequest.put(url, data, config);
|
return formRequest.put(url,data,config);
|
||||||
}
|
}
|
||||||
//putJson请求
|
//putJson请求
|
||||||
const putJson = jsonRequest.put;
|
const putJson=jsonRequest.put;
|
||||||
//patch请求
|
//patch请求
|
||||||
const patch = function (url, data, config) {
|
const patch=function(url,data,config){
|
||||||
if (data) {
|
if(data){
|
||||||
data = qs.stringify(data);
|
data=qs.stringify(data);
|
||||||
}
|
}
|
||||||
return formRequest.patch(url, data, config);
|
return formRequest.patch(url,data,config);
|
||||||
}
|
}
|
||||||
//patchJson请求
|
//patchJson请求
|
||||||
const patchJson = jsonRequest.patch;
|
const patchJson=jsonRequest.patch;
|
||||||
//delete请求
|
//delete请求
|
||||||
const del = formRequest.delete;
|
const del=formRequest.delete;
|
||||||
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
request,
|
request,
|
||||||
requestJson,
|
requestJson,
|
||||||
get,
|
get,
|
||||||
post,
|
post,
|
||||||
postJson,
|
postJson,
|
||||||
put,
|
put,
|
||||||
putJson,
|
putJson,
|
||||||
patch,
|
patch,
|
||||||
patchJson,
|
patchJson,
|
||||||
del
|
del
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,208 +0,0 @@
|
|||||||
import axios from 'axios'
|
|
||||||
import qs from 'qs'
|
|
||||||
import {Notification, MessageBox, Message} from 'element-ui'
|
|
||||||
import store from '@/store'
|
|
||||||
import {getToken} from '@/utils/token'
|
|
||||||
import errorCode from '@/utils/errorCode'
|
|
||||||
|
|
||||||
/**
|
|
||||||
*request请求 axios.request(config)
|
|
||||||
*requestJson请求 axios.request(config)
|
|
||||||
*get请求 axios.get(url[, config])
|
|
||||||
*post请求 axios.post(url[, data[, config]])
|
|
||||||
*postJson请求 axios.post(url[, data[, config]])
|
|
||||||
*put请求 axios.put(url[, data[, config]])
|
|
||||||
*putJson请求 axios.put(url[, data[, config]])
|
|
||||||
*patch请求 axios.patch(url[, data[, config]])
|
|
||||||
*patchJson请求 axios.patch(url[, data[, config]])
|
|
||||||
*delete请求 axios.delete(url[, config])
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
// const ReLoginUrl=process.env.VUE_APP_LOGIN_URL;
|
|
||||||
const TokenName = 'token';
|
|
||||||
/**axios.defaults.headers['Content-Type'] = 'application/x-www-form-urlencoded'**/
|
|
||||||
//只是用于发送json对象数据时使用post,put,patch
|
|
||||||
/**axios.defaults.headers['Content-Type'] = 'application/x-www-form-urlencoded'**/
|
|
||||||
//只是用于发送json对象数据时使用post,put,patch
|
|
||||||
//用于普通的发送请求
|
|
||||||
const formRequest = axios.create({
|
|
||||||
//headers:{'Content-Type':'application/x-www-form-urlencoded'},
|
|
||||||
// axios中请求配置有baseURL选项,表示请求URL公共部分
|
|
||||||
// baseURL: process.env.VUE_APP_CESOURCE_BASE_API,
|
|
||||||
//超时
|
|
||||||
timeout: 10000,
|
|
||||||
})
|
|
||||||
//发送json对象的拦截器
|
|
||||||
formRequest.interceptors.request.use(config => {
|
|
||||||
//是否需要设置 token
|
|
||||||
const isToken = (config.headers || {}).isToken === false
|
|
||||||
let curToken = getToken();
|
|
||||||
//curToken='eyJ0eXBlIjoidG9rZW4iLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC91LmJvZS5jb20iLCJpYXQiOjE2NzIzMTE2MTIsImV4cCI6MTY3MjMxODgxMiwiR2l2ZW5OYW1lIjoiYm9ldSIsInVzZXJJZCI6IjZCMDQ5RkFGLUMzMTQtN0NDRi0wRDI4LTBEMjNGNEM0MjUzMSIsInVJZCI6Ijk2NTM0MjAyNzQ5NzYwNzE2OCIsInBlcm1pc3Npb24iOiIifQ==.a4f41376e994c5fcd3ab537ce17572ef4c633863f87785cf7b6ffa353e2ed51c';
|
|
||||||
if (curToken && !isToken) {
|
|
||||||
config.headers[TokenName] = curToken // 让每个请求携带自定义token 请根据实际情况自行修改
|
|
||||||
}
|
|
||||||
return config
|
|
||||||
}, error => {
|
|
||||||
console.log(error)
|
|
||||||
Promise.reject(error)
|
|
||||||
});
|
|
||||||
formRequest.interceptors.response.use(res => {
|
|
||||||
//console.log(res);
|
|
||||||
const code = res.data.status || 200;
|
|
||||||
if (code === 200) {
|
|
||||||
return res.data
|
|
||||||
} else {
|
|
||||||
if (code === 401) {
|
|
||||||
// store.dispatch('LogOut').then(() => {
|
|
||||||
// location.href = this.webBaseUrl + ReLoginUrl;
|
|
||||||
// })
|
|
||||||
console.error('', res.data);
|
|
||||||
return Promise.reject(new Error('接口返回未登录'))
|
|
||||||
} else if (code === 403) {
|
|
||||||
var msg = '当前操作没有权限';
|
|
||||||
Message({message: msg, type: 'error'});
|
|
||||||
return Promise.reject(new Error(msg))
|
|
||||||
} else {
|
|
||||||
//Message({message: res.data.message, type: 'error'});
|
|
||||||
//console.log('err' + res.data.error);
|
|
||||||
return res.data
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
error => {
|
|
||||||
console.log('err', error)
|
|
||||||
let {message} = error;
|
|
||||||
if (message == "Network Error") {
|
|
||||||
message = "网络异常,请稍后重试";
|
|
||||||
} else if (message.includes("timeout")) {
|
|
||||||
message = "网络异常或接口错误,请求超时";
|
|
||||||
} else if (message.includes("Request failed with status code")) {
|
|
||||||
message = "系统接口" + message.substr(message.length - 3) + "异常";
|
|
||||||
}
|
|
||||||
Message({
|
|
||||||
message: message,
|
|
||||||
type: 'error',
|
|
||||||
duration: 5 * 1000
|
|
||||||
})
|
|
||||||
return Promise.reject(error)
|
|
||||||
}
|
|
||||||
)
|
|
||||||
|
|
||||||
/**
|
|
||||||
* request请求,可以自定义参数
|
|
||||||
*/
|
|
||||||
const request = formRequest.request;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* get请求 ,只有url
|
|
||||||
*/
|
|
||||||
const get = function (baseURL, url) {
|
|
||||||
return request({
|
|
||||||
baseURL,
|
|
||||||
url: url,
|
|
||||||
method: 'get',
|
|
||||||
headers: {'Content-Type': 'application/json'}
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* post请求
|
|
||||||
* @param {Object} url
|
|
||||||
* @param {Object} postData
|
|
||||||
*/
|
|
||||||
const post = function (baseURL, url, postData) {
|
|
||||||
// if (postData) {
|
|
||||||
// postData = qs.stringify(postData);
|
|
||||||
// }
|
|
||||||
return request({
|
|
||||||
baseURL,
|
|
||||||
url: url,
|
|
||||||
method: 'post',
|
|
||||||
data: postData,
|
|
||||||
headers: {'Content-Type': 'application/json'}
|
|
||||||
})
|
|
||||||
}
|
|
||||||
//post请求
|
|
||||||
const postForm = function (baseURL, url, data) {
|
|
||||||
return request({
|
|
||||||
baseURL,
|
|
||||||
url,
|
|
||||||
data,
|
|
||||||
method: 'post',
|
|
||||||
headers: {'Content-Type': 'application/x-www-form-urlencoded'}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
// const postJson=jsonRequest.post;
|
|
||||||
|
|
||||||
const postJson = function (baseURL, url, postData) {
|
|
||||||
return request({
|
|
||||||
baseURL,
|
|
||||||
url: url,
|
|
||||||
method: 'post',
|
|
||||||
data: postData,
|
|
||||||
headers: {'Content-Type': 'application/json;charset=utf-8'},
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
// 导出文件请求定义
|
|
||||||
const postJsonToFile = function (baseURL, url, postData) {
|
|
||||||
return request({
|
|
||||||
baseURL,
|
|
||||||
url: url,
|
|
||||||
method: 'post',
|
|
||||||
data: postData,
|
|
||||||
headers: {'Content-Type': 'application/json;charset=utf-8'},
|
|
||||||
responseType: 'blob'
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
const getJsonToFile = function (baseURL, url, postData) {
|
|
||||||
return request({
|
|
||||||
baseURL,
|
|
||||||
url: url,
|
|
||||||
method: 'get',
|
|
||||||
data: postData,
|
|
||||||
headers: {'Content-Type': 'application/json;charset=utf-8'},
|
|
||||||
responseType: 'blob'
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* put请求
|
|
||||||
*/
|
|
||||||
const put = function (baseURL, url, data) {
|
|
||||||
if (data) {
|
|
||||||
data = qs.stringify(data);
|
|
||||||
}
|
|
||||||
return request({
|
|
||||||
baseURL,
|
|
||||||
url: url,
|
|
||||||
method: 'put',
|
|
||||||
data: data,
|
|
||||||
headers: {'Content-Type': 'application/x-www-form-urlencoded'}
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
const putJson = function (baseURL, url, data) {
|
|
||||||
return request({
|
|
||||||
baseURL,
|
|
||||||
url: url,
|
|
||||||
method: 'put',
|
|
||||||
data: data,
|
|
||||||
headers: {'Content-Type': 'application/json;charset=utf-8'},
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
export default {
|
|
||||||
tokenName: TokenName,
|
|
||||||
request,
|
|
||||||
get,
|
|
||||||
post,
|
|
||||||
postJson,
|
|
||||||
postJsonToFile,
|
|
||||||
put,
|
|
||||||
putJson,
|
|
||||||
getJsonToFile
|
|
||||||
}
|
|
||||||
@@ -34,48 +34,9 @@ const userRsSginupCourse = function(data){
|
|||||||
return ajax.postJson(baseURL,'/stu/project/stuCancelEnrollment',data);
|
return ajax.postJson(baseURL,'/stu/project/stuCancelEnrollment',data);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取学员指定新员工转正项目的bpm审批状况
|
|
||||||
* {studentId,pid}
|
|
||||||
* add by zhengsongbo on 2025-07-12
|
|
||||||
*/
|
|
||||||
const getStudntProjectInfo = function(pid){
|
|
||||||
return ajax.get(baseURL,`/stu/project/queryStudentInfo?pid=${pid}`);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* BPM项目:立即报名
|
|
||||||
* pid
|
|
||||||
* add by zhengsongbo on 2025-07-13
|
|
||||||
*/
|
|
||||||
const signUpBpmProjectNow = function(pid){
|
|
||||||
return ajax.get(baseURL,`/stu/project/signUpBpmProjectNow?pid=${pid}`);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* BPM项目:重新报名
|
|
||||||
* pid
|
|
||||||
* add by zhengsongbo on 2025-07-13
|
|
||||||
*/
|
|
||||||
const signUpBpmProjectAgain = function(data){
|
|
||||||
return ajax.postJson(baseURL,'/stu/project/signUpBpmProjectAgain',data);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 社招新员工
|
|
||||||
* add by zhengsongbo on 2025-07-14
|
|
||||||
*/
|
|
||||||
const getNewSocialHireProject = function(){
|
|
||||||
return ajax.get(baseURL,'/stu/project/getNewSocialHireProject');
|
|
||||||
}
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
getTaskNum,
|
getTaskNum,
|
||||||
userTaskList,
|
userTaskList,
|
||||||
userDeleteStudy,
|
userDeleteStudy,
|
||||||
userRsSginupCourse,
|
userRsSginupCourse
|
||||||
getStudntProjectInfo,
|
|
||||||
signUpBpmProjectNow,
|
|
||||||
signUpBpmProjectAgain,
|
|
||||||
getNewSocialHireProject
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,493 +1,484 @@
|
|||||||
/**
|
/**
|
||||||
* 课程的操作,课程的添加,修改,列表查询,课程的审核发布等操作。
|
* 课程的操作,课程的添加,修改,列表查询,课程的审核发布等操作。
|
||||||
* 针对于管理员,教师的功能
|
* 针对于管理员,教师的功能
|
||||||
*
|
*
|
||||||
**/
|
**/
|
||||||
import ajax from '@/utils/xajax.js'
|
import ajax from '@/utils/xajax.js'
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 保存课程基本信息,新增和更新都是此方式
|
* 保存课程基本信息,新增和更新都是此方式
|
||||||
* @param {Object} data
|
* @param {Object} data
|
||||||
*{
|
*{
|
||||||
course:{
|
course:{
|
||||||
课程的基本信息,具体字段内容另外提供
|
课程的基本信息,具体字段内容另外提供
|
||||||
name:课程名称
|
name:课程名称
|
||||||
type:课程类型,10微课,21在线课(直播);20:在线课( 录播);30:面授课;40:混合式,
|
type:课程类型,10微课,21在线课(直播);20:在线课( 录播);30:面授课;40:混合式,
|
||||||
summary:摘人
|
summary:摘人
|
||||||
overview: 课程简介
|
overview: 课程简介
|
||||||
coverImg:封面图
|
coverImg:封面图
|
||||||
sysType:系统分类,只存储最后一级,
|
sysType:系统分类,只存储最后一级,
|
||||||
resOwner1:资源归属一级的id
|
resOwner1:资源归属一级的id
|
||||||
resOwner2:资源归属二级的id
|
resOwner2:资源归属二级的id
|
||||||
resOwner3:资源归属三级的id
|
resOwner3:资源归属三级的id
|
||||||
forUsers: 目标人群
|
forUsers: 目标人群
|
||||||
forScene:应用场景
|
forScene:应用场景
|
||||||
openObject: 开放权限
|
openObject: 开放权限
|
||||||
value:课程价值
|
value:课程价值
|
||||||
tags:标签,多个使用-分隔
|
tags:标签,多个使用-分隔
|
||||||
keywords:关键字
|
keywords:关键字
|
||||||
device: 1:PC端可见;2:移动端可见;3:多端可见
|
device: 1:PC端可见;2:移动端可见;3:多端可见
|
||||||
status: 1:未提交(草稿);2:已提交;
|
status: 1:未提交(草稿);2:已提交;
|
||||||
published:true/false 是否发布
|
published:true/false 是否发布
|
||||||
enabled:true/false 启用、停用
|
enabled:true/false 启用、停用
|
||||||
isTop: true/false 是否置顶
|
isTop: true/false 是否置顶
|
||||||
source:整数,课程来源,1:内部;2;外部
|
source:整数,课程来源,1:内部;2;外部
|
||||||
|
|
||||||
},
|
},
|
||||||
teachers:[
|
teachers:[
|
||||||
{
|
{
|
||||||
teacherId:教师的id,
|
teacherId:教师的id,
|
||||||
teacherName:教师的名称
|
teacherName:教师的名称
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
const saveBase = function(data) {
|
const saveBase = function(data) {
|
||||||
return ajax.postJson('/xboe/m/course/manage/save', data);
|
return ajax.postJson('/xboe/m/course/manage/save', data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 仅仅是保存课程信息,不包括教师信息
|
* 仅仅是保存课程信息,不包括教师信息
|
||||||
* @param {Object} data
|
* @param {Object} data
|
||||||
*/
|
*/
|
||||||
const saveOnlyCourse = function(data) {
|
const saveOnlyCourse = function(data) {
|
||||||
return ajax.postJson('/xboe/m/course/manage/save-only-course', data);
|
return ajax.postJson('/xboe/m/course/manage/save-only-course', data);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**提交课程*/
|
/**提交课程*/
|
||||||
const submitCourse = function(data) {
|
const submitCourse = function(data) {
|
||||||
return ajax.postJson('/xboe/m/course/manage/submit', data);
|
return ajax.postJson('/xboe/m/course/manage/submit', data);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**撤销已提交审核的课程*/
|
/**撤销已提交审核的课程*/
|
||||||
const revokeSubmit = function(id) {
|
const revokeSubmit = function(id) {
|
||||||
return ajax.post('/xboe/m/course/manage/revoke', {id});
|
return ajax.post('/xboe/m/course/manage/revoke', {id});
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 复制课程
|
* 复制课程
|
||||||
* @param {Object}
|
* @param {Object}
|
||||||
*/
|
*/
|
||||||
const copyCourse = function(data) {
|
const copyCourse = function(data) {
|
||||||
return ajax.post('/xboe/m/course/manage/copy',data);
|
return ajax.post('/xboe/m/course/manage/copy',data);
|
||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
查询课程是否有重复名称
|
查询课程是否有重复名称
|
||||||
*/
|
*/
|
||||||
const isRedoName=function(){
|
const isRedoName=function(){
|
||||||
return ajax.get('/xboe/m/course/manage/isRedoName');
|
return ajax.get('/xboe/m/course/manage/isRedoName');
|
||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
查询当前添加课程是否已有
|
查询当前添加课程是否已有
|
||||||
courseName 要添加的课程姓名
|
courseName 要添加的课程姓名
|
||||||
*/
|
*/
|
||||||
const isCourseName=function(courseName,courseId){
|
const isCourseName=function(courseName,courseId){
|
||||||
return ajax.get(`/xboe/m/course/manage/isCourseName?courseName=${courseName}&courseId=${courseId}`);
|
return ajax.get(`/xboe/m/course/manage/isCourseName?courseName=${courseName}&courseId=${courseId}`);
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* 查询修改日志,列表,不分页
|
* 查询修改日志,列表,不分页
|
||||||
* @param {Object} params
|
* @param {Object} params
|
||||||
* {
|
* {
|
||||||
num:数量,可以不传,默认是10条,最新的10条
|
num:数量,可以不传,默认是10条,最新的10条
|
||||||
courseId:课程的id
|
courseId:课程的id
|
||||||
name: 修改人
|
name: 修改人
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
const findUpdateLogs = function(params) {
|
const findUpdateLogs = function(params) {
|
||||||
return ajax.post('/xboe/m/course/manage/upldate-logs',params);
|
return ajax.post('/xboe/m/course/manage/upldate-logs',params);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据id获取修改的详细信息
|
* 根据id获取修改的详细信息
|
||||||
* @param {Object} id
|
* @param {Object} id
|
||||||
*/
|
*/
|
||||||
const getUpdateLog = function(id) {
|
const getUpdateLog = function(id) {
|
||||||
return ajax.get('/xboe/m/course/manage/upldate-log-detail?id='+id);
|
return ajax.get('/xboe/m/course/manage/upldate-log-detail?id='+id);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 保存课程的一条学习内容信息,新增和更新都是此方式
|
* 保存课程的一条学习内容信息,新增和更新都是此方式
|
||||||
* @param {Object} data
|
* @param {Object} data
|
||||||
* {
|
* {
|
||||||
content:内容 {
|
content:内容 {
|
||||||
courseId,csectionId章节id(微课为空),sortIndex排序顺序(微课为空),contentType 内容类型(图文41,连接52,作业60,考试61,评估62)
|
courseId,csectionId章节id(微课为空),sortIndex排序顺序(微课为空),contentType 内容类型(图文41,连接52,作业60,考试61,评估62)
|
||||||
contentName,contentRefId无关联内容时为空(此字段内容后台会控制),content具体的内容
|
contentName,contentRefId无关联内容时为空(此字段内容后台会控制),content具体的内容
|
||||||
}
|
}
|
||||||
|
|
||||||
homework:作业信息 单个对象{
|
homework:作业信息 单个对象{
|
||||||
courseId,contentId上面对象的id(后台会控制),name,content,file,deadTime,
|
courseId,contentId上面对象的id(后台会控制),name,content,file,deadTime,
|
||||||
submitMode:1表提交附件,2直接填写,3表两者都可以
|
submitMode:1表提交附件,2直接填写,3表两者都可以
|
||||||
}
|
}
|
||||||
exam:考试信息 单个对象
|
exam:考试信息 单个对象
|
||||||
{
|
{
|
||||||
courseId,contentId上面对象的id(后台会控制),testName,testDuration考试时长,
|
courseId,contentId上面对象的id(后台会控制),testName,testDuration考试时长,
|
||||||
paperType试卷类型 1自定义,2使用已有试卷
|
paperType试卷类型 1自定义,2使用已有试卷
|
||||||
paperId试题的id,使用已有试卷时保存选择试卷的id
|
paperId试题的id,使用已有试卷时保存选择试卷的id
|
||||||
showAnalysis是否显示解析,showAnswer否显示答案,times尝试次数
|
showAnalysis是否显示解析,showAnswer否显示答案,times尝试次数
|
||||||
arrange试题排序 0表不乱序,1试题乱序,2选项乱序,3全部乱序
|
arrange试题排序 0表不乱序,1试题乱序,2选项乱序,3全部乱序
|
||||||
scoringType评分方式 1最高一次,2最后一次
|
scoringType评分方式 1最高一次,2最后一次
|
||||||
passLine及格线整数
|
passLine及格线整数
|
||||||
randomMode是否随机模式true/false
|
randomMode是否随机模式true/false
|
||||||
paperContent试卷的内容,json存储的对象{items:[]}
|
paperContent试卷的内容,json存储的对象{items:[]}
|
||||||
|
|
||||||
}
|
}
|
||||||
assess:评估信息,list 多条记录.
|
assess:评估信息,list 多条记录.
|
||||||
[
|
[
|
||||||
{ courseId,contentId,assessId评估id(一期为空),question问题,qType问题类型}
|
{ courseId,contentId,assessId评估id(一期为空),question问题,qType问题类型}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
const saveContent = function(data) {
|
const saveContent = function(data) {
|
||||||
return ajax.postJson('/xboe/m/course/content/save', data);
|
return ajax.postJson('/xboe/m/course/content/save', data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 更新课程内容的顺序
|
* 更新课程内容的顺序
|
||||||
* @param {String} cid //课程的id
|
* @param {String} cid //课程的id
|
||||||
* @param {Array} items
|
* @param {Array} items
|
||||||
* [
|
* [
|
||||||
* {
|
* {
|
||||||
* id:章的id
|
* id:章的id
|
||||||
* index:整数,顺序值
|
* index:整数,顺序值
|
||||||
* items:[
|
* items:[
|
||||||
* {id:内容的id,index:顺序值}
|
* {id:内容的id,index:顺序值}
|
||||||
* ]
|
* ]
|
||||||
* }
|
* }
|
||||||
* ]
|
* ]
|
||||||
* @returns
|
* @returns
|
||||||
*/
|
*/
|
||||||
const updateContentOrders = function(cid,items) {
|
const updateContentOrders = function(cid,items) {
|
||||||
return ajax.postJson('/xboe/m/course/content/update-orders/'+cid, items);
|
return ajax.postJson('/xboe/m/course/content/update-orders/'+cid, items);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 课程的详细信息
|
* 课程的详细信息
|
||||||
* @param {String} id
|
* @param {String} id
|
||||||
*/
|
*/
|
||||||
const detail = function(id) {
|
const detail = function(id) {
|
||||||
return ajax.get('/xboe/m/course/manage/detail?id=' + id);
|
return ajax.get('/xboe/m/course/manage/detail?id=' + id);
|
||||||
}
|
}
|
||||||
const getDictIds = function(pid,type) {
|
|
||||||
return ajax.get(`/xboe/m/course/manage/getDictIds?pid=${pid}&type=${type}`);
|
/**
|
||||||
}
|
* 更新内容的名称
|
||||||
/**
|
* @param {Object} data
|
||||||
* 更新内容的名称
|
* {
|
||||||
* @param {Object} data
|
id:'',
|
||||||
* {
|
name:''
|
||||||
id:'',
|
}
|
||||||
name:''
|
*/
|
||||||
}
|
const updateContentName = function(data) {
|
||||||
*/
|
return ajax.post('/xboe/m/course/content/update-name', data);
|
||||||
const updateContentName = function(data) {
|
}
|
||||||
return ajax.post('/xboe/m/course/content/update-name', data);
|
|
||||||
}
|
/**
|
||||||
|
* 删除一条学习内容
|
||||||
/**
|
* @param {Object} data
|
||||||
* 删除一条学习内容
|
* {
|
||||||
* @param {Object} data
|
id: 内容的id,
|
||||||
* {
|
ctype:对应内容的类型contentType
|
||||||
id: 内容的id,
|
erasable:是否物理删除,此值是课程信息中系统带过来的字段,直接使用它就可以了
|
||||||
ctype:对应内容的类型contentType
|
}
|
||||||
erasable:是否物理删除,此值是课程信息中系统带过来的字段,直接使用它就可以了
|
*/
|
||||||
}
|
const delContent = function(data) {
|
||||||
*/
|
return ajax.post('/xboe/m/course/content/delete', data);
|
||||||
const delContent = function(data) {
|
}
|
||||||
return ajax.post('/xboe/m/course/content/delete', data);
|
|
||||||
}
|
/**
|
||||||
|
* 保存课程的章信息,新增和修改保存都是一个
|
||||||
/**
|
* @param {Object} data
|
||||||
* 保存课程的章信息,新增和修改保存都是一个
|
* courseId:课程的id
|
||||||
* @param {Object} data
|
* name:章节名称
|
||||||
* courseId:课程的id
|
description:章节说明
|
||||||
* name:章节名称
|
parentId: 上级id。如果没有可以填“-1”字符串
|
||||||
description:章节说明
|
orderIndex:显示顺序,顺序索引,整数
|
||||||
parentId: 上级id。如果没有可以填“-1”字符串
|
*/
|
||||||
orderIndex:显示顺序,顺序索引,整数
|
const saveSection = function(data) {
|
||||||
*/
|
return ajax.post('/xboe/m/course/content/save-section', data);
|
||||||
const saveSection = function(data) {
|
}
|
||||||
return ajax.post('/xboe/m/course/content/save-section', data);
|
|
||||||
}
|
/**
|
||||||
|
* 删除章节目录,注意只有目录下没有学习内容时才允许删除
|
||||||
/**
|
* @param {Object} data
|
||||||
* 删除章节目录,注意只有目录下没有学习内容时才允许删除
|
*/
|
||||||
* @param {Object} data
|
const delSection = function(id) {
|
||||||
*/
|
return ajax.post('/xboe/m/course/content/delete-section?id=' + id);
|
||||||
const delSection = function(id) {
|
}
|
||||||
return ajax.post('/xboe/m/course/content/delete-section?id=' + id);
|
|
||||||
}
|
/**
|
||||||
|
* 根据课程学习内容的id。获取作业信息,只有学习内容是作业时才会有信息
|
||||||
/**
|
* @param {Object} ccid
|
||||||
* 根据课程学习内容的id。获取作业信息,只有学习内容是作业时才会有信息
|
*/
|
||||||
* @param {Object} ccid
|
const getHomework = function(ccid) {
|
||||||
*/
|
return ajax.post('/xboe/m/course/content/homework?ccid=' + ccid);
|
||||||
const getHomework = function(ccid) {
|
}
|
||||||
return ajax.post('/xboe/m/course/content/homework?ccid=' + ccid);
|
|
||||||
}
|
/**
|
||||||
|
* 根据课程学习内容的id。获取考试信息,只有学习内容是考试时才会有信息
|
||||||
/**
|
* @param {Object} ccid
|
||||||
* 根据课程学习内容的id。获取考试信息,只有学习内容是考试时才会有信息
|
*/
|
||||||
* @param {Object} ccid
|
const getExam = function(ccid) {
|
||||||
*/
|
return ajax.post('/xboe/m/course/content/exam?ccid=' + ccid);
|
||||||
const getExam = function(ccid) {
|
}
|
||||||
return ajax.post('/xboe/m/course/content/exam?ccid=' + ccid);
|
|
||||||
}
|
/**
|
||||||
|
* 根据课程学习内容的id。获取评估信息,评估内容可以获取
|
||||||
/**
|
* @param {Object} ccid
|
||||||
* 根据课程学习内容的id。获取评估信息,评估内容可以获取
|
*/
|
||||||
* @param {Object} ccid
|
const getAssess = function(ccid) {
|
||||||
*/
|
return ajax.post('/xboe/m/course/content/assess?ccid=' + ccid);
|
||||||
const getAssess = function(ccid) {
|
}
|
||||||
return ajax.post('/xboe/m/course/content/assess?ccid=' + ccid);
|
|
||||||
}
|
/**
|
||||||
|
* 管理列表查询
|
||||||
/**
|
* @param {Object} query
|
||||||
* 管理列表查询
|
* pageIndex:第几页
|
||||||
* @param {Object} query
|
* pageSize:每页多少条
|
||||||
* pageIndex:第几页
|
* resOwner1:资源归属一级的id
|
||||||
* pageSize:每页多少条
|
resOwner2:资源归属二级的id
|
||||||
* resOwner1:资源归属一级的id
|
resOwner3:资源归属三级的id
|
||||||
resOwner2:资源归属二级的id
|
types:授课方式,多个使用 - 分隔
|
||||||
resOwner3:资源归属三级的id
|
scenes:应用场景,多个使用 - 分隔
|
||||||
types:授课方式,多个使用 - 分隔
|
publish:true/false 是否发布,空值或不传就是全部
|
||||||
scenes:应用场景,多个使用 - 分隔
|
aid:创建人 aid
|
||||||
publish:true/false 是否发布,空值或不传就是全部
|
sysCreateUser: 创建人姓名
|
||||||
aid:创建人 aid
|
keyword:查询关键词
|
||||||
sysCreateUser: 创建人姓名
|
sysTypes:系统的分类,多级使用 - 分隔,注一期功能是分类的最后一级值,不支持多个的查询
|
||||||
keyword:查询关键词
|
orderField:排序字段 id s
|
||||||
sysTypes:系统的分类,多级使用 - 分隔,注一期功能是分类的最后一级值,不支持多个的查询
|
orderAsc:true/false 是否是正序,从小到大
|
||||||
orderField:排序字段 id s
|
status:状态,多个使用 - 分隔 1代表待审核 5代表已审核 1 未提交 2 已提交 5 审核完成
|
||||||
orderAsc:true/false 是否是正序,从小到大
|
type:课程类型,10微课,21在线课(直播);20:在线课( 录播);30:面授课;40:混合式,
|
||||||
status:状态,多个使用 - 分隔 1代表待审核 5代表已审核 1 未提交 2 已提交 5 审核完成
|
name 课程名称
|
||||||
type:课程类型,10微课,21在线课(直播);20:在线课( 录播);30:面授课;40:混合式,
|
|
||||||
name 课程名称
|
*/
|
||||||
|
const pageList = function(query) {
|
||||||
*/
|
return ajax.post('/xboe/m/course/manage/pagelist', query);
|
||||||
const pageList = function(query) {
|
}
|
||||||
return ajax.post('/xboe/m/course/manage/pagelist', query);
|
|
||||||
}
|
|
||||||
|
/**计算待审核课程*/
|
||||||
|
const countWaitAudit = function() {
|
||||||
/**计算待审核课程*/
|
return ajax.get('/xboe/m/course/manage/wait-audit-num');
|
||||||
const countWaitAudit = function() {
|
}
|
||||||
return ajax.get('/xboe/m/course/manage/wait-audit-num');
|
|
||||||
}
|
/**
|
||||||
|
|
||||||
/**
|
|
||||||
* [已用courseAudit中的hrbpAuditList替换]
|
* [已用courseAudit中的hrbpAuditList替换]
|
||||||
* 当前用户需要审核的课程列表
|
* 当前用户需要审核的课程列表
|
||||||
* @param {Object} query 同pageList
|
* @param {Object} query 同pageList
|
||||||
*/
|
*/
|
||||||
const auditList = function(query) {
|
const auditList = function(query) {
|
||||||
return ajax.post('/xboe/m/course/manage/audit-pagelist', query);
|
return ajax.post('/xboe/m/course/manage/audit-pagelist', query);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 【已移到courseAudit中】
|
* 【已移到courseAudit中】
|
||||||
* 教师需要审核的课程列表
|
* 教师需要审核的课程列表
|
||||||
*/
|
*/
|
||||||
const teacherAuditList = function(query) {
|
const teacherAuditList = function(query) {
|
||||||
return ajax.post('/xboe/m/course/audit/teacher-course', query);
|
return ajax.post('/xboe/m/course/audit/teacher-course', query);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 指定审核人,转审核人
|
* 指定审核人,转审核人
|
||||||
* 点击“转审” 弹出教师查询窗口,查询教师,填写备注,提交,调用此接口
|
* 点击“转审” 弹出教师查询窗口,查询教师,填写备注,提交,调用此接口
|
||||||
* @param {Object} data
|
* @param {Object} data
|
||||||
* {courseId:课程id,teacherId:指定的审核人教师的id,teacherName:教师名称,remark:备注}
|
* {courseId:课程id,teacherId:指定的审核人教师的id,teacherName:教师名称,remark:备注}
|
||||||
*/
|
*/
|
||||||
const auditAppoint = function(data) {
|
const auditAppoint = function(data) {
|
||||||
return ajax.post('/xboe/m/course/audit/appoint', data);
|
return ajax.post('/xboe/m/course/audit/appoint', data);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取审核信息,上面教师点击审核课程时,用于查询,上面“转审”时,用户填写的备注信息
|
* 获取审核信息,上面教师点击审核课程时,用于查询,上面“转审”时,用户填写的备注信息
|
||||||
* @param {courseId:'课程id',teacherId:'可以不填写,系统会查询当前人'} data
|
* @param {courseId:'课程id',teacherId:'可以不填写,系统会查询当前人'} data
|
||||||
*/
|
*/
|
||||||
const getAuditInfo = function(data) {
|
const getAuditInfo = function(data) {
|
||||||
return ajax.post('/xboe/m/course/audit/infos', data);
|
return ajax.post('/xboe/m/course/audit/infos', data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 管理员的课程审核处理
|
* 管理员的课程审核处理
|
||||||
* @param {Object} query {id:课程id,title:课程的名称, Boolean pass 是否通过,remark 备注}
|
* @param {Object} query {id:课程id,title:课程的名称, Boolean pass 是否通过,remark 备注}
|
||||||
*/
|
*/
|
||||||
const audit = function(data) {
|
const audit = function(data) {
|
||||||
return ajax.post('/xboe/m/course/manage/audit', data);
|
return ajax.post('/xboe/m/course/manage/audit', data);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 审核记录列表,分页查询
|
* 审核记录列表,分页查询
|
||||||
*/
|
*/
|
||||||
const auditPageRecords = function(data) {
|
const auditPageRecords = function(data) {
|
||||||
return ajax.post('/xboe/m/course/audit/page-records', data);
|
return ajax.post('/xboe/m/course/audit/page-records', data);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 审核记录列表,要卖课程id,查询出审核列记录信息
|
* 审核记录列表,要卖课程id,查询出审核列记录信息
|
||||||
* { courseId:必须}
|
* { courseId:必须}
|
||||||
*/
|
*/
|
||||||
const auditCourseRecords = function(data) {
|
const auditCourseRecords = function(data) {
|
||||||
return ajax.post('/xboe/m/course/audit/course-records',data);
|
return ajax.post('/xboe/m/course/audit/course-records',data);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 管理员的课程发布,当前已经不再使用了
|
* 管理员的课程发布,当前已经不再使用了
|
||||||
* @param {Object} query {ids:课程id,多个使用逗号分隔,title:课程的名称, Boolean pass 是否发布}
|
* @param {Object} query {ids:课程id,多个使用逗号分隔,title:课程的名称, Boolean pass 是否发布}
|
||||||
*/
|
*/
|
||||||
const publish = function(data) {
|
const publish = function(data) {
|
||||||
return ajax.post('/xboe/m/course/manage/publish', data);
|
return ajax.post('/xboe/m/course/manage/publish', data);
|
||||||
}
|
}
|
||||||
|
|
||||||
const auditAndPublish=function(data) {
|
const auditAndPublish=function(data) {
|
||||||
return ajax.post('/xboe/m/course/manage/audit-publish', data);
|
return ajax.post('/xboe/m/course/manage/audit-publish', data);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 设置top
|
* 设置top
|
||||||
* @param {Object} query {ids:课程id,多个使用逗号分隔,title:课程的名称,Boolean top 是否置顶}
|
* @param {Object} query {ids:课程id,多个使用逗号分隔,title:课程的名称,Boolean top 是否置顶}
|
||||||
*/
|
*/
|
||||||
const setTop = function(data) {
|
const setTop = function(data) {
|
||||||
return ajax.post('/xboe/m/course/manage/top', data);
|
return ajax.post('/xboe/m/course/manage/top', data);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 管理员的设置启用停用
|
* 管理员的设置启用停用
|
||||||
* @param {Object} query {ids:课程id,多个使用逗号分隔,title:课程的名称, Boolean enabled 是否启用}
|
* @param {Object} query {ids:课程id,多个使用逗号分隔,title:课程的名称, Boolean enabled 是否启用}
|
||||||
*/
|
*/
|
||||||
const setEnabled = function(data) {
|
const setEnabled = function(data) {
|
||||||
return ajax.post('/xboe/m/course/manage/enabled', data);
|
return ajax.post('/xboe/m/course/manage/enabled', data);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 管理员的删除课程
|
* 管理员的删除课程
|
||||||
* erasable 此值是课程信息带过来的,直接传就可以
|
* erasable 此值是课程信息带过来的,直接传就可以
|
||||||
* @param {Object} query {id:课程id,多个使用逗号分隔,Boolean erasable 是否物理删除,title:课程的名称, remark 备注}
|
* @param {Object} query {id:课程id,多个使用逗号分隔,Boolean erasable 是否物理删除,title:课程的名称, remark 备注}
|
||||||
*/
|
*/
|
||||||
const del = function(data) {
|
const del = function(data) {
|
||||||
return ajax.post('/xboe/m/course/manage/delete', data);
|
return ajax.post('/xboe/m/course/manage/delete', data);
|
||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
详情
|
详情
|
||||||
*/
|
*/
|
||||||
const detailFew=function(id){
|
const detailFew=function(id){
|
||||||
return ajax.get('/xboe/m/course/portal/detail-few?id=' + id);
|
return ajax.get('/xboe/m/course/portal/detail-few?id=' + id);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
直接审核,教师提交审核
|
直接审核,教师提交审核
|
||||||
*/
|
*/
|
||||||
const sumbits=function(data){
|
const sumbits=function(data){
|
||||||
return ajax.post('/xboe/m/course/manage/sumbits',data);
|
return ajax.post('/xboe/m/course/manage/sumbits',data);
|
||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
教师授课记录
|
教师授课记录
|
||||||
*/
|
*/
|
||||||
const teacherCourse=function(teacherId){
|
const teacherCourse=function(teacherId){
|
||||||
return ajax.get('/xboe/m/course/manage/teacher-course?teacherId='+teacherId);
|
return ajax.get('/xboe/m/course/manage/teacher-course?teacherId='+teacherId);
|
||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
教师授课记录导出
|
教师授课记录导出
|
||||||
@param teacherId 教师id
|
@param teacherId 教师id
|
||||||
*/
|
*/
|
||||||
const exportTeacherCourse=function(teacherId){
|
const exportTeacherCourse=function(teacherId){
|
||||||
return ajax.post('/xboe/m/course/manage/export-teacher-course?teacherId='+teacherId)
|
return ajax.post('/xboe/m/course/manage/export-teacher-course?teacherId='+teacherId)
|
||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
*待审核课程记录导出
|
*待审核课程记录导出
|
||||||
* resOwner1:资源归属一级的id
|
* resOwner1:资源归属一级的id
|
||||||
resOwner2:资源归属二级的id
|
resOwner2:资源归属二级的id
|
||||||
resOwner3:资源归属三级的id
|
resOwner3:资源归属三级的id
|
||||||
types:授课方式,多个使用 - 分隔
|
types:授课方式,多个使用 - 分隔
|
||||||
scenes:应用场景,多个使用 - 分隔
|
scenes:应用场景,多个使用 - 分隔
|
||||||
publish:true/false 是否发布,空值或不传就是全部
|
publish:true/false 是否发布,空值或不传就是全部
|
||||||
aid:创建人 aid
|
aid:创建人 aid
|
||||||
sysCreateUser: 创建人姓名
|
sysCreateUser: 创建人姓名
|
||||||
keyword:查询关键词
|
keyword:查询关键词
|
||||||
sysTypes:系统的分类,多级使用 - 分隔,注一期功能是分类的最后一级值,不支持多个的查询
|
sysTypes:系统的分类,多级使用 - 分隔,注一期功能是分类的最后一级值,不支持多个的查询
|
||||||
orderField:排序字段 id s
|
orderField:排序字段 id s
|
||||||
orderAsc:true/false 是否是正序,从小到大
|
orderAsc:true/false 是否是正序,从小到大
|
||||||
status:状态,多个使用 - 分隔 1代表待审核 5代表已审核 1 未提交 2 已提交 5 审核完成
|
status:状态,多个使用 - 分隔 1代表待审核 5代表已审核 1 未提交 2 已提交 5 审核完成
|
||||||
type:课程类型,10微课,21在线课(直播);20:在线课( 录播);30:面授课;40:混合式,
|
type:课程类型,10微课,21在线课(直播);20:在线课( 录播);30:面授课;40:混合式,
|
||||||
name 课程名称
|
name 课程名称
|
||||||
*/
|
*/
|
||||||
const exportCourseAudit=function(query){
|
const exportCourseAudit=function(query){
|
||||||
return ajax.post('/xboe/m/course/manage/exportCourseAudit',query);
|
return ajax.post('/xboe/m/course/manage/exportCourseAudit',query);
|
||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
参数同上待审核课程记录导出
|
参数同上待审核课程记录导出
|
||||||
课程的导出和已审核的课程导出
|
课程的导出和已审核的课程导出
|
||||||
*/
|
*/
|
||||||
const exportCourse=function(query){
|
const exportCourse=function(query){
|
||||||
return ajax.post('/xboe/m/course/manage/exportCourse',query);
|
return ajax.post('/xboe/m/course/manage/exportCourse',query);
|
||||||
}
|
}
|
||||||
|
|
||||||
//判断受众id是否有关联
|
//判断受众id是否有关联
|
||||||
const queryCrowd=function(query){
|
const queryCrowd=function(query){
|
||||||
return ajax.postJson('/xboe/m/course/manage/queryCrowd',query);
|
return ajax.postJson('/xboe/m/course/manage/queryCrowd',query);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 二次查询
|
* 二次查询
|
||||||
* @param{
|
* @param{
|
||||||
* ids
|
* ids
|
||||||
* }
|
* }
|
||||||
* */
|
* */
|
||||||
const ids=function (data){
|
const ids=function (data){
|
||||||
return ajax.postJson('/xboe/m/course/manage/ids',data);
|
return ajax.postJson('/xboe/m/course/manage/ids',data);
|
||||||
}
|
}
|
||||||
|
export default {
|
||||||
// ai播放器相关 - 批量AI设置
|
saveBase,
|
||||||
const benchAiSet=function(data){
|
submitCourse,
|
||||||
return ajax.postJson('/xboe/m/course/manage/benchAiSet',data);
|
revokeSubmit,
|
||||||
}
|
copyCourse,
|
||||||
export default {
|
findUpdateLogs,
|
||||||
saveBase,
|
getUpdateLog,
|
||||||
submitCourse,
|
detail,
|
||||||
revokeSubmit,
|
saveContent,
|
||||||
copyCourse,
|
pageList,
|
||||||
findUpdateLogs,
|
setEnabled,
|
||||||
getUpdateLog,
|
del,
|
||||||
detail,
|
publish,
|
||||||
getDictIds,
|
saveSection,
|
||||||
saveContent,
|
getHomework,
|
||||||
pageList,
|
countWaitAudit,
|
||||||
setEnabled,
|
auditList,
|
||||||
del,
|
teacherAuditList,
|
||||||
publish,
|
auditAppoint,
|
||||||
saveSection,
|
getAuditInfo,
|
||||||
getHomework,
|
audit,
|
||||||
countWaitAudit,
|
auditPageRecords,
|
||||||
auditList,
|
auditCourseRecords,
|
||||||
teacherAuditList,
|
auditAndPublish,
|
||||||
auditAppoint,
|
getAssess,
|
||||||
getAuditInfo,
|
setTop,
|
||||||
audit,
|
delSection,
|
||||||
auditPageRecords,
|
getExam,
|
||||||
auditCourseRecords,
|
delContent,
|
||||||
auditAndPublish,
|
updateContentName,
|
||||||
getAssess,
|
updateContentOrders,
|
||||||
setTop,
|
saveOnlyCourse,
|
||||||
delSection,
|
isRedoName,
|
||||||
getExam,
|
isCourseName,
|
||||||
delContent,
|
detailFew,
|
||||||
updateContentName,
|
sumbits,
|
||||||
updateContentOrders,
|
teacherCourse,
|
||||||
saveOnlyCourse,
|
exportTeacherCourse,
|
||||||
isRedoName,
|
exportCourseAudit,
|
||||||
isCourseName,
|
exportCourse,
|
||||||
detailFew,
|
queryCrowd,
|
||||||
sumbits,
|
ids
|
||||||
teacherCourse,
|
|
||||||
exportTeacherCourse,
|
}
|
||||||
exportCourseAudit,
|
|
||||||
exportCourse,
|
|
||||||
queryCrowd,
|
|
||||||
ids,
|
|
||||||
benchAiSet,
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ const pageList = function(data) {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 选择课件的查询,这里也是分页查询,只是返回的内容,字段会很少,用于课件制作那选择已有课件内容。
|
* 选择课件的查询,这里也是分页查询,只是返回的内容,字段会很少,用于课件制作那选择已有课件内容。
|
||||||
*
|
*
|
||||||
* @param {Object} data
|
* @param {Object} data
|
||||||
* 查询参数如上面pageList方法
|
* 查询参数如上面pageList方法
|
||||||
*/
|
*/
|
||||||
@@ -47,9 +47,7 @@ const findList = function(data) {
|
|||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
const saveUpload = function(data) {
|
const saveUpload = function(data) {
|
||||||
return ajax.post('/xboe/m/course/file/upload/save', data, {
|
return ajax.post('/xboe/m/course/file/upload/save', data);
|
||||||
timeout: 60000
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -90,4 +88,4 @@ export default {
|
|||||||
batchUpdate,
|
batchUpdate,
|
||||||
detail,
|
detail,
|
||||||
delFile
|
delFile
|
||||||
}
|
}
|
||||||
@@ -102,24 +102,6 @@ const courseSearch=function(query){
|
|||||||
const detailStudy = function(courseId,aid) {
|
const detailStudy = function(courseId,aid) {
|
||||||
return ajax.get(`/xboe/m/course/portal/detail-study?courseId=${courseId}&aid=${aid}`);
|
return ajax.get(`/xboe/m/course/portal/detail-study?courseId=${courseId}&aid=${aid}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 课程学习进度的详细信息-分页
|
|
||||||
* @param {Object} data
|
|
||||||
*/
|
|
||||||
const detailStudyPage = function(data) {
|
|
||||||
return ajax.get(`/xboe/m/course/portal/detail-study-page?courseId=${data.courseId}&aid=${data.aid}&pageIndex=${data.pageIndex}&pageSize=${data.pageSize}`);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 资源学习情况列列表-分页
|
|
||||||
* @param {Object} data
|
|
||||||
*/
|
|
||||||
const pageListResource=function(data){
|
|
||||||
return ajax.post('/xboe/school/study/course/pagelist-resource',data);
|
|
||||||
}
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
list,
|
list,
|
||||||
pageList,
|
pageList,
|
||||||
@@ -130,7 +112,5 @@ export default {
|
|||||||
studyCounts,
|
studyCounts,
|
||||||
courseSearch,
|
courseSearch,
|
||||||
detailStudy,
|
detailStudy,
|
||||||
detailPost,
|
detailPost
|
||||||
detailStudyPage,
|
|
||||||
pageListResource
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -165,7 +165,7 @@ const appendStudyTime = function(data) {
|
|||||||
* name: 学习人的姓名
|
* name: 学习人的姓名
|
||||||
*/
|
*/
|
||||||
const studyRecords = function(data) {
|
const studyRecords = function(data) {
|
||||||
return ajax.post('/xboe/school/study/course/pagelistEx',data);
|
return ajax.post('/xboe/school/study/course/pagelist',data);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -189,7 +189,7 @@ const studyContentRecords = function(data) {
|
|||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
const studyExport = function(data) {
|
const studyExport = function(data) {
|
||||||
return ajax.post('/xboe/school/study/course/export',data, { responseType: 'blob' });
|
return ajax.post('/xboe/school/study/course/export',data);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -402,31 +402,6 @@ const findByIds=function (ids){
|
|||||||
return ajax.postJson('/xboe/school/study/es/list-by-ids',ids);
|
return ajax.postJson('/xboe/school/study/es/list-by-ids',ids);
|
||||||
}
|
}
|
||||||
|
|
||||||
const exportSignup=function (data){
|
|
||||||
return ajax.post('/xboe/school/study/course/export-signup',data, { responseType: 'blob' });
|
|
||||||
}
|
|
||||||
|
|
||||||
// 作业导出
|
|
||||||
const exportHomework=function (data){
|
|
||||||
return ajax.post('/xboe/school/study/course/contents-homework-export',data, { responseType: 'blob' });
|
|
||||||
}
|
|
||||||
|
|
||||||
// 考试导出
|
|
||||||
const exportExam=function (data){
|
|
||||||
return ajax.post('/xboe/school/study/course/contents-exam-export',data, { responseType: 'blob' });
|
|
||||||
}
|
|
||||||
|
|
||||||
// 评估类型资源
|
|
||||||
const contentsAssess=function (data){
|
|
||||||
return ajax.post('/xboe/school/study/course/contents-assess',data);
|
|
||||||
}
|
|
||||||
|
|
||||||
// 考试类型资源
|
|
||||||
const contentsExam=function (data){
|
|
||||||
return ajax.post('/xboe/school/study/course/contents-exam',data);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
hasSignup,
|
hasSignup,
|
||||||
signup,
|
signup,
|
||||||
@@ -463,10 +438,5 @@ export default {
|
|||||||
deleteSignUp,
|
deleteSignUp,
|
||||||
ids,
|
ids,
|
||||||
followIds,
|
followIds,
|
||||||
studyIndexPost,
|
studyIndexPost
|
||||||
exportSignup,
|
|
||||||
exportHomework,
|
|
||||||
exportExam,
|
|
||||||
contentsAssess,
|
|
||||||
contentsExam
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,64 +0,0 @@
|
|||||||
/**课程标签模块的相关处理*/
|
|
||||||
import ajax from '@/utils/xajax.js'
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 分页查询:标签列表
|
|
||||||
* @param {Object} query
|
|
||||||
*/
|
|
||||||
const portalPageList = function(query) {
|
|
||||||
return ajax.post('/xboe/m/coursetag/page', query);
|
|
||||||
}
|
|
||||||
|
|
||||||
//改变标签的公共属性
|
|
||||||
const changeTagPublic = function (row){
|
|
||||||
// 返回 Promise 的 API 调用
|
|
||||||
return ajax.post('/xboe/m/coursetag/changePublicStatus', {
|
|
||||||
id: row.id,
|
|
||||||
isPublic: row.isPublic
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
//改变标签的热点属性
|
|
||||||
const changeTagHot = function (row){
|
|
||||||
// 返回 Promise 的 API 调用
|
|
||||||
return ajax.post('/xboe/m/coursetag/changeHotStatus', {
|
|
||||||
id: row.id,
|
|
||||||
isHot: row.isHot
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
//查询指定id的标签关联的所有课程
|
|
||||||
const showCourseByTag = function (query){
|
|
||||||
return ajax.post('/xboe/m/coursetag/showCourseByTag', query);
|
|
||||||
}
|
|
||||||
|
|
||||||
//解除指定id的课程和某个标签之间的关联关系
|
|
||||||
const unbindCourseTagRelation = function (params){
|
|
||||||
return ajax.post('/xboe/m/coursetag/unbind', params);
|
|
||||||
}
|
|
||||||
|
|
||||||
//编辑课程:标签模糊查询
|
|
||||||
const searchTags = function (params){
|
|
||||||
return ajax.post('/xboe/m/coursetag/searchTags', params);
|
|
||||||
}
|
|
||||||
|
|
||||||
//编辑课程:创建标签(与当前课程关联)
|
|
||||||
const createTag = function (params){
|
|
||||||
return ajax.post('/xboe/m/coursetag/createTag', params);
|
|
||||||
}
|
|
||||||
|
|
||||||
//获取最新前10个热点标签
|
|
||||||
const getHotTagList = function (params){
|
|
||||||
return ajax.post('/xboe/m/coursetag/getHotTagList', params);
|
|
||||||
}
|
|
||||||
|
|
||||||
export default {
|
|
||||||
portalPageList,
|
|
||||||
changeTagPublic,
|
|
||||||
changeTagHot,
|
|
||||||
showCourseByTag,
|
|
||||||
unbindCourseTagRelation,
|
|
||||||
searchTags,
|
|
||||||
createTag,
|
|
||||||
getHotTagList
|
|
||||||
}
|
|
||||||
@@ -1,91 +0,0 @@
|
|||||||
import ajax from '../ajax';
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取欢迎页数据
|
|
||||||
*/
|
|
||||||
export function getWelcomeData() {
|
|
||||||
return ajax.get('/manageApi/stu/project/socialRecruit/enroll/getStudentEnrollInfo')
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 报名审批
|
|
||||||
*/
|
|
||||||
export function enrollRequest() {
|
|
||||||
return ajax.get('/manageApi/stu/project/socialRecruit/enroll/socialRecruitRegistrationRequest')
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取学习列表
|
|
||||||
* @param {Object} params - 参数对象
|
|
||||||
* @param {string} params.type - 类型:''全部, 'course'在线课, 'exam'考试
|
|
||||||
* @param {string} params.status - 状态:''全部, 'completed'已完成, 'incomplete'未完成
|
|
||||||
* @param {number} params.pageIndex - 页码
|
|
||||||
* @param {number} params.pageSize - 每页条数
|
|
||||||
*/
|
|
||||||
export function getStudyList(params) {
|
|
||||||
return ajax.postJson('/boe/new-employee/study/list', params)
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取学习进度
|
|
||||||
*/
|
|
||||||
export function getStudyProgress() {
|
|
||||||
return ajax.get('/boe/new-employee/study/progress')
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 下载成绩单
|
|
||||||
*/
|
|
||||||
export function downloadScorecard() {
|
|
||||||
// 使用request方法支持responseType: 'blob'
|
|
||||||
return ajax.request({
|
|
||||||
url: '/boe/new-employee/study/scorecard/download',
|
|
||||||
method: 'get',
|
|
||||||
responseType: 'blob'
|
|
||||||
})
|
|
||||||
}
|
|
||||||
/**
|
|
||||||
* 获取社招新员工项目信息
|
|
||||||
* GET
|
|
||||||
*/
|
|
||||||
export function getSzxygProjectInfo() {
|
|
||||||
return ajax.get('/manageApi/admin/project/getSzxygProjectInfo')
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 社招新员工培训及考试列表查询
|
|
||||||
* POST
|
|
||||||
* @param {Object} params
|
|
||||||
* @param {number} params.pageNo - 页码
|
|
||||||
* @param {number} params.pageSize - 每页条数
|
|
||||||
* @param {string|number} params.studentId - 学员ID
|
|
||||||
* @param {string|number} params.projectId - 项目ID
|
|
||||||
*/
|
|
||||||
export function getStuProjectTaskList(data) {
|
|
||||||
return ajax.postJson('', '/manageApi/stu/project/getStuProjectTaskList', data)
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 学员项目进度明细查询
|
|
||||||
* POST
|
|
||||||
* @param {string|number} params.studentId - 学员ID
|
|
||||||
* @param {string|number} params.projectId - 项目ID
|
|
||||||
*/
|
|
||||||
export function getStuProjectProcess(data) {
|
|
||||||
return ajax.postJson('', `/manageApi/stu/project/getStuProjectTaskProgress`, data)
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 社招新员工培训在线课程成绩单下载
|
|
||||||
* GET
|
|
||||||
* @param {string|number} projectId - 项目ID
|
|
||||||
* @param {string|number} studentId - 学员ID
|
|
||||||
*/
|
|
||||||
export function downloadSocialRecruitReport(projectId, studentId) {
|
|
||||||
return ajax.request({
|
|
||||||
url: `/manageApi/stu/project/socialRecruit/report/download?projectId=${projectId}&studentId=${studentId}`,
|
|
||||||
method: 'get',
|
|
||||||
responseType: 'arraybuffer',
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -1,7 +1,5 @@
|
|||||||
import ajax from '@/utils/xajax.js'
|
import ajax from '@/utils/xajax.js'
|
||||||
import http from '../unionAjax'
|
import http from '../unionAjax'
|
||||||
import httpAjax from '../httpAjax'
|
|
||||||
|
|
||||||
const baseURL = process.env.VUE_APP_MANAGER_API_PATH;
|
const baseURL = process.env.VUE_APP_MANAGER_API_PATH;
|
||||||
|
|
||||||
|
|
||||||
@@ -49,18 +47,6 @@ const articlelist=function (type){
|
|||||||
const courselist=function (data){
|
const courselist=function (data){
|
||||||
return ajax.post('/xboe/portal/index/courselist',data);
|
return ajax.post('/xboe/portal/index/courselist',data);
|
||||||
}
|
}
|
||||||
// 精品课信息列表
|
|
||||||
const qualitylist=function (data){
|
|
||||||
return httpAjax.post(baseURL,'/quality/home/qualityItem',data);
|
|
||||||
}
|
|
||||||
// 精品课分页查询
|
|
||||||
export const qualityPageList=function (data){
|
|
||||||
return httpAjax.post(baseURL,'/quality/home/qualityPages',data);
|
|
||||||
}
|
|
||||||
// 课程精品课标记时间年份列表
|
|
||||||
export const qualityCourseTimeMark=function (){
|
|
||||||
return httpAjax.post(baseURL,'/quality/manage/qualityYearList',{});
|
|
||||||
}
|
|
||||||
/**
|
/**
|
||||||
* 首页新课程推荐列表
|
* 首页新课程推荐列表
|
||||||
*/
|
*/
|
||||||
@@ -75,7 +61,5 @@ export default {
|
|||||||
articlelist,
|
articlelist,
|
||||||
courselist,
|
courselist,
|
||||||
newCases,
|
newCases,
|
||||||
getRecommendList,
|
getRecommendList
|
||||||
qualitylist,
|
|
||||||
qualityPageList
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,98 +0,0 @@
|
|||||||
<?xml version="1.0" standalone="no"?>
|
|
||||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
|
|
||||||
<!--
|
|
||||||
2013-9-30: Created.
|
|
||||||
-->
|
|
||||||
<svg>
|
|
||||||
<metadata>
|
|
||||||
Created by iconfont
|
|
||||||
</metadata>
|
|
||||||
<defs>
|
|
||||||
|
|
||||||
<font id="iconfont" horiz-adv-x="1024" >
|
|
||||||
<font-face
|
|
||||||
font-family="iconfont"
|
|
||||||
font-weight="500"
|
|
||||||
font-stretch="normal"
|
|
||||||
units-per-em="1024"
|
|
||||||
ascent="896"
|
|
||||||
descent="-128"
|
|
||||||
/>
|
|
||||||
<missing-glyph />
|
|
||||||
|
|
||||||
<glyph glyph-name="lianxikefu" unicode="" d="M928 310.656c0 67.328-40.832 125.024-98.592 151.456-4.8 170.752-144.288 310.24-317.408 310.24-173.152 0-312.608-137.056-317.408-310.208C136.864 435.68 96 377.984 96 310.656a166.24 166.24 0 0 1 165.92-165.92h4.8c12.032 0 24.064 12 24.064 24.032v283.744c0 12.032-12.032 24.032-24.064 24.032h-21.632c9.6 137.056 125.024 247.68 266.912 247.68 141.92 0 257.28-110.624 269.344-250.08h-24.096c-12 0-24-12.032-24-24.032V176c-76.96-84.192-182.784-132.288-295.808-132.288-14.432 0-24.032-9.632-24.032-24.032 0-14.432 9.632-24.032 24.032-24.032 127.488 0 247.68 55.328 331.84 149.088 88.96 4.8 158.72 76.928 158.72 165.92zM240.256 195.264a116.384 116.384 0 0 0-96.16 115.392c0 57.696 40.864 105.792 98.592 115.392v-230.816h-2.432z m541.088 0v230.816c55.328-9.632 98.56-57.728 98.56-115.392 0-57.76-43.232-105.856-98.56-115.424z" horiz-adv-x="1024" />
|
|
||||||
|
|
||||||
|
|
||||||
<glyph glyph-name="huidaodingbu" unicode="" d="M866.7 800H157.3c-17.8 0-32.2-14.4-32.2-32.2 0-17.8 14.4-32.2 32.2-32.2h709.5c17.8 0 32.2 14.4 32.2 32.2 0 17.8-14.4 32.2-32.3 32.2zM512 671c-16.5 0-33-6.3-45.6-18.9L169.9 355.7c-5.8-5.8-9.4-13.9-9.4-22.8s3.6-17 9.4-22.8c5.8-5.8 13.9-9.4 22.8-9.4s17 3.6 22.8 9.4l264.2 264.2v-574c0-17.8 14.4-32.2 32.2-32.2 17.8 0 32.2 14.4 32.2 32.2v574l264.2-264.2c5.8-5.8 13.9-9.4 22.8-9.4s17 3.6 22.8 9.4c5.8 5.8 9.4 13.9 9.4 22.8s-3.6 17-9.4 22.8L557.6 652.1C545 664.7 528.5 671 512 671z" horiz-adv-x="1024" />
|
|
||||||
|
|
||||||
|
|
||||||
<glyph glyph-name="shijian" unicode="" d="M512 746.666667A362.666667 362.666667 0 1 0 149.333333 384 362.666667 362.666667 0 0 0 512 746.666667m0 42.666666a405.333333 405.333333 0 1 1 405.333333-405.333333A405.333333 405.333333 0 0 1 512 789.333333zM490.666667 597.333333h42.666666v-256h-42.666666zM490.666667 384h213.333333v-42.666667H490.666667z" horiz-adv-x="1024" />
|
|
||||||
|
|
||||||
|
|
||||||
<glyph glyph-name="SCORM" unicode="" d="M717.738667 418.474667a128.426667 128.426667 0 0 1-49.194667 4.010666c1.28 8.661333 1.877333 17.621333 1.877333 26.666667 0 100.266667-77.226667 181.546667-172.373333 181.546667s-172.416-81.237333-172.416-181.546667c0-9.045333 0.597333-18.005333 1.834667-26.666667a131.498667 131.498667 0 0 1-49.194667-3.968c-57.813333-16.341333-100.437333-71.893333-100.437333-137.856 0-74.410667 54.058667-135.594667 123.136-142.08v-0.554666h369.450666v0.512c4.053333-0.341333 8.106667-0.512 12.330667-0.512 74.794667 0 135.466667 63.872 135.466667 142.634666-0.085333 65.962667-42.666667 121.514667-100.48 137.813334z m0.896 52.949333c84.864-17.536 148.778667-96.384 148.778666-190.890667 0-103.082667-76.16-187.434667-172.373333-194.133333v-0.426667H300.970667v0.426667c-96.298667 6.698667-172.373333 91.050667-172.373334 194.133333 0 94.506667 63.957333 173.226667 148.778667 190.890667C288.042667 589.994667 382.72 682.666667 497.962667 682.666667s210.048-92.672 220.672-211.2z m-290.986667-100.010667h140.714667c15.530667 0 28.117333-11.562667 28.117333-25.984 0-14.293333-12.586667-25.941333-28.117333-25.941333h-140.714667c-15.488 0-28.074667 11.562667-28.074667 25.941333-0.085333 14.336 12.501333 26.026667 28.074667 26.026667z m0-103.808h140.714667c15.530667 0 28.117333-11.562667 28.117333-25.984 0-14.378667-12.586667-25.941333-28.117333-25.941333h-140.714667c-15.488 0-28.074667 11.562667-28.074667 25.941333 0 14.421333 12.501333 26.026667 28.074667 26.026667z" horiz-adv-x="1024" />
|
|
||||||
|
|
||||||
|
|
||||||
<glyph glyph-name="PDF" unicode="" d="M733.098667 335.146667h-170.538667v-48.682667h170.538667a24.32 24.32 0 0 1 0 48.682667z m-0.042667 97.408h-170.496v-48.725334h170.496a24.32 24.32 0 0 1 0 48.725334z m0 97.365333h-170.496V481.28h170.496a24.32 24.32 0 0 1 0 48.682667z m24.32-24.32a24.362667 24.362667 0 0 1-24.32 24.32h-170.496V481.28h170.496a24.32 24.32 0 0 1 24.32 24.32z m-24.32-73.045333h-170.496v-48.725334h170.496a24.32 24.32 0 0 1 0 48.725334z m0-97.408h-170.496v-48.682667h170.538667a24.32 24.32 0 0 1 0 48.682667zM270.378667 578.858667V651.904c0 40.277333 32.682667 73.002667 72.96 73.002667h438.4c40.277333 0 73.130667-32.725333 73.045333-73.002667v-535.765333c0-40.277333-32.768-73.045333-73.045333-73.045334H343.381333a73.088 73.088 0 0 0-73.002666 73.045334v73.045333H221.653333c-3.114667 0-6.144 0.298667-9.088 0.853333 2.304-0.341333 4.650667-0.554667 7.04-0.554666h296.362667c2.986667 0 5.930667 0.298667 8.789333 0.853333a50.048 50.048 0 0 0-10.88-1.237333H319.018667v-73.045334c0-13.44 10.965333-24.32 24.32-24.32h438.4a24.32 24.32 0 0 1 24.32 24.32V651.648a24.32 24.32 0 0 1-24.32 24.32H343.381333a24.362667 24.362667 0 0 1-24.32-24.32V578.56M433.194667 379.306667c3.242667 4.309333 4.693333 12.16 4.266666 23.594666-0.341333 9.514667-2.133333 16.554667-5.205333 21.162667-3.072 4.565333-8.405333 6.826667-15.914667 6.826667H332.074667v-58.026667h84.266666c8.021333 0 13.653333 2.176 16.853334 6.485333z m-146.133334-98.688v194.56h139.264c12.885333 0 22.613333-2.005333 29.312-6.058667a42.026667 42.026667 0 0 0 14.421334-13.269333c2.986667-4.821333 5.077333-10.197333 6.357333-16.085334 1.28-5.930667 2.048-13.525333 2.304-22.784 0.213333-9.386667 0.256-18.816 0.042667-28.202666-0.384-14.592-1.92-25.642667-4.650667-33.152a39.68 39.68 0 0 0-10.922667-17.152 34.218667 34.218667 0 0 0-14.634666-7.68 102.698667 102.698667 0 0 0-21.76-1.749334h-94.72v-48.426666H287.061333zM539.136 574.762667l-1.024 0.512a46.762667 46.762667 0 0 1-20.48 4.693333H217.898667c-10.88 0-21.376-3.754667-29.824-10.624-0.384-0.341333-0.810667-0.64-1.194667-1.066667a49.066667 49.066667 0 0 1-16.128-36.437333v-295.68a49.28 49.28 0 0 1 40.021333-48.341333c2.346667-0.341333 4.693333-0.554667 7.125334-0.554667h299.776c2.986667 0 5.973333 0.256 8.874666 0.853333 21.888 4.992 38.272 24.618667 38.272 47.957334V531.626667c0 18.602667-10.368 34.816-25.685333 43.136z m-16.426667-338.688a7.210667 7.210667 0 0 0-4.778666-6.698667 6.826667 6.826667 0 0 0-0.298667 0H217.813333a7.168 7.168 0 0 0-4.992 6.784v295.68c0 2.474667 1.152 4.096 2.133334 5.12a4.992 4.992 0 0 0 2.944 0.896h299.733333c0.682667 0 1.28-0.085333 1.834667-0.298667a6.997333 6.997333 0 0 0 3.242666-5.973333v-295.509333z" horiz-adv-x="1024" />
|
|
||||||
|
|
||||||
|
|
||||||
<glyph glyph-name="shipin" unicode="" d="M899.285333 0.469333a83.626667 83.626667 0 0 0-34.218666 8.362667l-4.266667 2.133333-3.328 3.328c-1.066667 1.024-106.112 105.386667-138.837333 136.277334-21.845333 20.608-26.026667 40.746667-25.6 54.058666 0.64 23.296 14.634667 38.229333 19.754666 42.922667l152.234667 151.850667 6.186667 2.176c10.666667 3.797333 20.053333 5.589333 28.629333 5.589333 21.674667 0 32.853333-11.477333 37.589333-18.346667a41.173333 41.173333 0 0 0 7.296-22.784v-336.682666l-4.352-7.04c-8.533333-13.866667-23.509333-21.845333-41.088-21.845334z m-147.754666 203.776c0.128 0-0.384-0.896-0.426667-1.28 0-0.64 1.237333-4.266667 7.381333-10.112a10683.306667 10683.306667 0 0 0 128.170667-125.653333v271.744l-135.125333-134.741333zM603.136 0.512H109.994667c-27.562667 0-51.882667 18.432-64.981334 49.28l-2.304 5.461333v266.624l4.352 6.997334c15.530667 25.173333 38.442667 39.594667 62.933334 39.594666h493.098666c32.725333 0 59.306667-25.898667 59.306667-57.770666v-252.458667c0.042667-31.829333-26.581333-57.728-59.306667-57.728zM100.821333 67.797333c3.541333-6.272 7.253333-9.173333 9.173334-9.173333h493.098666c1.066667 0 1.450667 0.426667 1.450667 0.426667l-0.213333 251.648-494.336-0.341334c-2.133333 0-5.632-2.218667-9.173334-6.186666v-236.373334zM510.805333 457.642667A155.392 155.392 0 0 0 355.413333 612.565333a155.349333 155.349333 0 0 0 155.434667 154.922667 155.392 155.392 0 0 0 155.477333-154.88 155.392 155.392 0 0 0-155.477333-154.965333z m0 247.168c-50.986667 0-92.501333-41.386667-92.501333-92.245334a92.501333 92.501333 0 0 1 185.045333 0 92.458667 92.458667 0 0 1-92.544 92.245334zM200.704 444.074667A116.309333 116.309333 0 0 0 84.48 560.298667a116.309333 116.309333 0 0 0 116.181333 116.181333 116.352 116.352 0 0 0 116.224-116.181333 116.352 116.352 0 0 0-116.224-116.224z m0 171.392a55.210667 55.210667 0 0 1 0-110.421334 55.253333 55.253333 0 0 1 0 110.421334z" horiz-adv-x="1024" />
|
|
||||||
|
|
||||||
|
|
||||||
<glyph glyph-name="yinpin" unicode="" d="M655.445333 725.205333H236.672c-36.053333 0-65.493333-29.44-65.493333-65.493333v-551.04c0-36.053333 29.44-65.493333 65.493333-65.493333h551.04c36.053333 0 65.493333 29.44 65.493333 65.493333V527.445333l-197.76 197.76zM217.6 660.138667c0 10.368 8.704 19.072 19.072 19.072h362.368v-127.317334c0-45.184 36.906667-82.090667 82.133333-82.090666h125.610667v-360.704a19.285333 19.285333 0 0 0-19.072-19.072H236.672a19.285333 19.285333 0 0 0-19.072 19.072V660.138667zM645.546667 551.893333v118.186667l154.24-154.24h-118.186667a36.096 36.096 0 0 0-36.053333 36.053333zM370.602667 326.357333s0.426667 0 0 0h9.941333c8.32 0 14.933333 6.613333 14.933333 14.506667v87.893333a14.122667 14.122667 0 0 1-4.565333 10.368 14.378667 14.378667 0 0 1-10.368 4.138667h-9.514667a14.762667 14.762667 0 0 1-14.933333-14.506667v-87.893333c0-7.893333 6.613333-14.506667 14.506667-14.506667z m68.394666-52.224c0.426667 0 0.426667 0 0 0h9.984c8.277333 0 14.933333 6.613333 14.933334 14.506667V481.024a14.122667 14.122667 0 0 1-4.565334 10.368 14.378667 14.378667 0 0 1-10.368 4.138667h-9.557333a14.762667 14.762667 0 0 1-14.933333-14.506667v-192.426667c0-8.277333 6.656-14.506667 14.506666-14.506666z m205.653334 52.224s0.426667 0 0 0h9.984c8.277333 0 14.933333 6.613333 14.933333 14.506667v88.32a14.122667 14.122667 0 0 1-4.565333 10.368 14.378667 14.378667 0 0 1-10.368 4.138667h-9.557334a14.762667 14.762667 0 0 1-14.933333-14.506667v-87.893333c0-8.32 6.656-14.933333 14.506667-14.933334z m-68.394667-52.224h9.941333c8.32 0 14.933333 6.613333 14.933334 14.506667V481.024a14.762667 14.762667 0 0 1-14.933334 14.506667h-9.514666a14.762667 14.762667 0 0 1-14.933334-14.506667v-192.426667c0-8.277333 6.613333-14.506667 14.506667-14.506666z m-68.394667-39.424h9.514667c8.277333 0 14.933333 6.656 14.933333 14.506667V520.448a14.762667 14.762667 0 0 1-14.933333 14.506667h-9.514667a14.762667 14.762667 0 0 1-14.933333-14.506667v-270.762667c0-8.277333 6.613333-14.933333 14.933333-14.933333z" horiz-adv-x="1024" />
|
|
||||||
|
|
||||||
|
|
||||||
<glyph glyph-name="kejian" unicode="" d="M827.989333 543.829333V591.914667c0 41.472-34.688 87.722667-81.28 87.722666h-234.069333l-9.557333 17.152a56.149333 56.149333 0 0 1-49.578667 28.288H203.776c-41.728 0-75.52-32.768-75.605333-73.386666v-449.621334c0.085333-40.533333 33.877333-73.386667 75.605333-73.386666h587.776c41.728 0 75.52 32.853333 75.605333 73.386666v276.053334a87.893333 87.893333 0 0 1-39.168 65.706666z m-81.237333 91.776c16.213333 0 34.56-23.253333 34.56-43.52v-30.549333c-0.725333 0.170667-1.536 0.170667-2.389333 0.170667h-200.064l-41.557334 73.898666h209.493334zM820.48 202.24a29.056 29.056 0 0 0-28.842667-29.354667H203.776a29.098667 29.098667 0 0 0-28.928 29.269334V651.818667a29.056 29.056 0 0 0 28.842667 29.354666h249.728a9.386667 9.386667 0 0 0 8.192-4.736l82.517333-147.2a23.594667 23.594667 0 0 1 20.650667-11.818666h214.058666c20.693333-3.754667 37.12-19.2 41.514667-39.253334l0.128-275.925333z" horiz-adv-x="1024" />
|
|
||||||
|
|
||||||
|
|
||||||
<glyph glyph-name="HTML" unicode="" d="M772.394667 406.485333v337.493334c0 36.778667-29.909333 66.688-66.730667 66.688h-267.136l-50.133333-0.512-217.045334-216.533334v-484.266666c0-36.778667 29.909333-66.688 66.730667-66.688h467.626667c36.778667 0 66.688 29.909333 66.688 66.730666v29.909334H722.346667v-13.312a33.450667 33.450667 0 0 0-33.493334-33.493334H254.677333a33.450667 33.450667 0 0 0-33.493333 33.493334V543.488h150.357333c36.778667 0 66.730667 29.909333 66.730667 66.730667V760.576h250.538667c18.389333 0 33.493333-14.848 33.493333-33.493333v-320.853334h50.090667v0.256zM394.538667 629.418667a35.882667 35.882667 0 0 0-35.797334-35.84H248.789333l145.749334 145.749333v-109.909333zM369.237333 190.165333v59.605334h-55.466666v-59.605334H279.466667V332.373333h34.218666v-53.930666h55.466667v53.930666h34.304v-142.165333h-34.261333z m124.757334 113.024v-113.024h-34.261334v113.024h-40.106666v29.397334h114.773333v-29.44h-40.405333z m184.832-113.024l0.768 100.736h-0.512l-37.077334-100.693333h-24.021333l-36.053333 100.693333h-0.512l0.768-100.693333h-32.426667v142.08h48.810667l32.426666-91.221333h0.810667l30.933333 91.264h49.578667v-142.165334h-33.493333z m62.890666 0V332.373333h34.517334v-112.213333h54.954666v-29.952h-89.472z" horiz-adv-x="1024" />
|
|
||||||
|
|
||||||
|
|
||||||
<glyph glyph-name="kaoshi" unicode="" d="M388.266667 345.941333a5.632 5.632 0 0 1-1.066667-1.92l-34.005333-128.682666a22.528 22.528 0 0 1 5.461333-21.248 20.906667 20.906667 0 0 1 20.48-5.546667l123.776 34.858667c0.213333 0 0.298667-0.170667 0.469333-0.170667a5.248 5.248 0 0 1 3.882667 1.621333l331.008 341.589334c9.856 10.197333 15.232 24.021333 15.232 39.082666 0 17.066667-6.997333 34.133333-19.285333 46.805334l-31.274667 32.298666a64 64 0 0 1-45.354667 19.925334c-14.592 0-27.989333-5.546667-37.888-15.701334l-330.88-341.76c-0.384-0.341333-0.256-0.810667-0.512-1.152z m417.706666 253.952l-32.853333-33.92-53.333333 55.893334 32.426666 33.450666c5.12 5.333333 15.018667 4.565333 20.906667-1.578666l31.274667-32.298667c3.242667-3.285333 5.077333-7.68 5.12-12.288 0-3.626667-1.237333-6.869333-3.541334-9.258667z m-358.826666-259.328l238.933333 246.528 53.333333-55.893333-238.464-246.101333-53.76 55.466666z m-43.52-99.968l17.322666 65.408 46.037334-47.530666-63.36-17.92z m405.162666 223.914667a23.936 23.936 0 0 1-23.637333-23.594667v-319.658666a29.269333 29.269333 0 0 0-29.354667-29.653334H246.613333c-16.213333 0-28.245333 12.970667-28.245333 29.653334V647.338667c0 16.725333 12.074667 29.312 28.245333 29.312h349.44c12.586667 0 22.826667 11.52 22.826667 24.533333 0 12.970667-10.24 24.149333-22.826667 24.149333H243.114667c-39.424 0-72.234667-33.706667-72.234667-74.453333v-533.205333c0-40.746667 32.768-75.008 72.277333-75.008h516.096c39.509333 0 73.088 34.261333 73.088 75.008v323.413333a23.893333 23.893333 0 0 1-23.552 23.466667v-0.042667z" horiz-adv-x="1024" />
|
|
||||||
|
|
||||||
|
|
||||||
<glyph glyph-name="zuoye" unicode="" d="M272.682667 0.554667A59.221333 59.221333 0 0 0 213.546667 59.733333V604.842667c0 32.597333 26.538667 59.136 59.136 59.136h84.48l0.085333 1.066666a43.008 43.008 0 0 0 42.666667 41.514667h32.981333l0.085333 0.981333c3.712 34.133333 32.512 59.946667 66.816 59.904 34.346667 0 63.104-25.770667 66.816-59.904l0.085334-0.981333h33.024c22.912 0 42.026667-18.602667 42.666666-41.514667v-1.024h84.565334c15.786667 0 30.634667-6.186667 41.813333-17.365333 11.136-11.093333 17.408-26.112 17.365333-41.813333V59.733333c0-32.64-26.538667-59.178667-59.178666-59.178666H272.682667z m0 612.309333a8.064 8.064 0 0 1-8.021334-8.064V59.733333c0-4.437333 3.584-8.064 8.021334-8.064h454.229333a8.064 8.064 0 0 1 8.064 8.064V604.8a8.064 8.064 0 0 1-8.064 8.064h-84.864l-0.128-0.938667c-3.157333-20.650667-21.333333-36.181333-42.154667-36.181333H399.914667c-20.906667 0-38.997333 15.573333-42.197334 36.181333l-0.085333 0.938667h-84.906667z m127.189333 53.717333a2.773333 2.773333 0 0 1-2.730667-2.730666v-45.397334c0-1.493333 1.237333-2.730667 2.730667-2.730666h199.850667a2.688 2.688 0 0 1 2.730666 2.730666V663.850667a2.773333 2.773333 0 0 1-2.730666 2.730666h-41.813334l-0.298666-0.554666a67.584 67.584 0 0 0-57.813334-33.066667 67.584 67.584 0 0 0-57.813333 33.066667l-0.341333 0.554666h-41.770667z m99.925333 60.842667a27.306667 27.306667 0 1 1 0.085334-54.570667 27.306667 27.306667 0 0 1-0.085334 54.613334zM437.461333 431.146667a12.714667 12.714667 0 0 0-12.757333 12.757333v18.133333c0 7.04 5.717333 12.714667 12.757333 12.714667h218.026667c6.997333 0 12.714667-5.674667 12.714667-12.714667v-18.133333a12.757333 12.757333 0 0 0-12.714667-12.757333h-218.026667zM333.397333 452.992a30.72 30.72 0 1 1 61.44 0 30.72 30.72 0 0 1-61.44 0zM437.461333 300.586667a12.714667 12.714667 0 0 0-12.757333 12.757333v18.133333c0 7.04 5.717333 12.714667 12.757333 12.714667h218.026667c6.997333 0 12.714667-5.674667 12.714667-12.714667v-18.133333a12.757333 12.757333 0 0 0-12.714667-12.757333h-218.026667zM333.397333 322.432a30.72 30.72 0 1 1 61.44 0 30.72 30.72 0 0 1-61.44 0zM437.461333 166.186667a12.714667 12.714667 0 0 0-12.757333 12.757333v18.133333c0 7.04 5.717333 12.714667 12.757333 12.714667h218.026667c6.997333 0 12.714667-5.674667 12.714667-12.714667v-18.133333a12.757333 12.757333 0 0 0-12.714667-12.757333h-218.026667zM333.397333 188.032a30.72 30.72 0 1 1 61.44 0 30.72 30.72 0 0 1-61.44 0z" horiz-adv-x="1024" />
|
|
||||||
|
|
||||||
|
|
||||||
<glyph glyph-name="pinggu" unicode="" d="M526.250667 725.034667v-47.957334a4.693333 4.693333 0 0 0 2.176-0.896c0.298667-0.597333 0.512-1.194667 0.810666-1.706666l81.792-166.229334c6.826667-13.781333 19.712-23.381333 34.773334-26.069333l182.826666-32 1.877334-0.256c0.341333 0 0.853333-0.426667 0.938666-0.725333a29.397333 29.397333 0 0 1 0.768-2.773334 4.266667 4.266667 0 0 0-0.853333-4.394666l-130.816-123.306667a47.914667 47.914667 0 0 1-14.250667-43.648l33.28-179.029333v-0.085334c0.256-1.792-1.237333-3.285333-2.133333-4.010666l-0.597333-0.469334a18.261333 18.261333 0 0 0-2.901334 1.109334l-166.229333 83.114666a47.786667 47.786667 0 0 1-42.752 0.085334l-167.552-83.114667c-0.469333-0.213333-0.853333-0.512-1.365333-0.725333-0.128 0-0.512-0.170667-1.109334-0.170667-0.597333 0-1.109333 0.085333-1.194666 0.170667a6.826667 6.826667 0 0 0-2.133334 3.626666v0.085334l34.56 179.114666c3.114667 16.213333-2.261333 32.853333-14.336 44.16L221.013333 440.746667a9.301333 9.301333 0 0 0-1.706666 5.717333c0.512 1.109333 0.981333 1.578667 1.194666 1.792 0.085333 0.085333 0.298667 0.213333 0.896 0.298667 0.896 0.085333 1.792 0.213333 2.56 0.426666L406.912 482.133333c14.933333 2.688 27.733333 12.373333 34.432 25.984L523.093333 674.133333c1.066667 2.133333 2.773333 2.816 3.072 2.816V725.034667h0.128z m0 0c-19.2 0-37.077333-11.52-46.08-29.354667L398.378667 529.408l-182.826667-33.28c-20.48-2.56-35.754667-16.554667-42.154667-35.712-5.12-17.92 0-39.68 14.08-53.76l131.669334-122.88-34.56-179.029333c-3.84-19.2 5.12-39.68 20.48-51.157334 8.576-6.485333 19.285333-9.685333 29.866666-9.685333 8.277333 0 16.469333 2.005333 23.765334 5.888l167.552 83.114667 166.229333-83.114667c7.68-3.797333 16.554667-6.4 24.277333-6.4 11.477333 0 21.76 3.84 29.354667 10.24 15.36 11.477333 24.277333 30.634667 20.48 51.114667l-33.28 179.029333 131.669333 124.074667c14.08 14.08 19.2 34.56 12.8 53.76-5.12 19.2-21.76 33.28-40.96 35.754666l-182.826666 32-81.792 166.186667c-7.594667 17.92-26.794667 29.44-45.952 29.44z" horiz-adv-x="1024" />
|
|
||||||
|
|
||||||
|
|
||||||
<glyph glyph-name="tiaocha" unicode="" d="M482.133333 322.133333v6.4c0 17.066667 2.133333 32 10.666667 44.8 6.4 12.8 25.6 32 55.466667 57.6l8.533333 8.533334c8.533333 10.666667 12.8 21.333333 12.8 34.133333 0 17.066667-4.266667 29.866667-14.933333 38.4-10.666667 8.533333-23.466667 14.933333-40.533334 14.933333-21.333333 0-38.4-6.4-46.933333-19.2-8.533333-10.666667-12.8-27.733333-12.8-46.933333v-2.133333c0-12.8-10.666667-25.6-25.6-25.6s-25.6 10.666667-25.6 25.6v2.133333c0 34.133333 10.666667 59.733333 29.866667 81.066667 21.333333 19.2 49.066667 29.866667 85.333333 29.866666 32 0 55.466667-8.533333 74.666667-25.6 19.2-17.066667 29.866667-38.4 29.866666-66.133333 0-23.466667-6.4-42.666667-19.2-57.6-4.266667-4.266667-17.066667-17.066667-40.533333-36.266667-8.533333-6.4-14.933333-14.933333-21.333333-23.466666-4.266667-8.533333-8.533333-19.2-8.533334-29.866667v-12.8c0-12.8-12.8-23.466667-25.6-23.466667s-25.6 10.666667-25.6 25.6c0-2.133333 0 0 0 0zM512 42.666667c-187.733333 0-341.333333 153.6-341.333333 341.333333s153.6 341.333333 341.333333 341.333333 341.333333-153.6 341.333333-341.333333-153.6-341.333333-341.333333-341.333333z m0 49.066666c162.133333 0 292.266667 130.133333 292.266667 292.266667S674.133333 676.266667 512 676.266667 219.733333 546.133333 219.733333 384 349.866667 91.733333 512 91.733333z m-4.266667 177.066667c10.666667 0 19.2-2.133333 25.6-8.533333 6.4-6.4 10.666667-14.933333 10.666667-23.466667 0-10.666667-4.266667-17.066667-10.666667-23.466667-6.4-6.4-14.933333-8.533333-25.6-8.533333s-19.2 4.266667-25.6 10.666667a34.261333 34.261333 0 0 0-10.666666 23.466666c0 10.666667 4.266667 17.066667 10.666666 23.466667 8.533333 2.133333 17.066667 6.4 25.6 6.4z" horiz-adv-x="1024" />
|
|
||||||
|
|
||||||
|
|
||||||
<glyph glyph-name="yishoucang" unicode="" d="M670.421333 725.333333a224.256 224.256 0 0 1-158.890666-65.749333A224.042667 224.042667 0 0 1 352.682667 725.333333a224.682667 224.682667 0 0 1-158.890667-383.530666l282.453333-282.410667a49.92 49.92 0 0 1 70.656 0l282.410667 282.453333A224.682667 224.682667 0 0 1 670.421333 725.333333z" horiz-adv-x="1024" />
|
|
||||||
|
|
||||||
|
|
||||||
<glyph glyph-name="shoucang" unicode="" d="M670.421333 687.872c50.048 0 96.981333-19.456 132.394667-54.784a186.026667 186.026667 0 0 0 54.826667-132.394667 186.282667 186.282667 0 0 0-54.826667-132.437333l-282.410667-282.282667a12.501333 12.501333 0 0 0-8.874666-3.626666 12.885333 12.885333 0 0 0-8.832 3.626666l-282.325334 282.453334a186.026667 186.026667 0 0 0-54.784 132.394666c0 50.048 19.456 96.981333 54.784 132.394667A186.026667 186.026667 0 0 0 352.853333 688c50.048 0 96.938667-19.456 132.394667-54.784l26.453333-26.453333 26.453334 26.453333a185.941333 185.941333 0 0 0 132.309333 54.656z m0 37.461333a224.256 224.256 0 0 1-158.890666-65.749333A224.042667 224.042667 0 0 1 352.682667 725.333333a224.682667 224.682667 0 0 1-158.890667-383.530666l282.453333-282.410667a49.92 49.92 0 0 1 70.656 0l282.410667 282.453333A224.682667 224.682667 0 0 1 670.421333 725.333333z" horiz-adv-x="1024" />
|
|
||||||
|
|
||||||
|
|
||||||
<glyph glyph-name="kecheng" unicode="" d="M256 682.666667a42.666667 42.666667 0 0 1-42.666667-42.666667v-512a42.666667 42.666667 0 0 1 42.666667-42.666667h512a42.666667 42.666667 0 0 1 42.666667 42.666667V640a42.666667 42.666667 0 0 1-42.666667 42.666667H256z m0 42.666666h512a85.333333 85.333333 0 0 0 85.333333-85.333333v-512a85.333333 85.333333 0 0 0-85.333333-85.333333H256a85.333333 85.333333 0 0 0-85.333333 85.333333V640a85.333333 85.333333 0 0 0 85.333333 85.333333zM384 682.666667v-298.666667l85.546667 82.304L552.405333 384V682.666667H384z m29.568-329.386667C386.474667 327.125333 341.333333 346.325333 341.333333 384V682.666667a42.666667 42.666667 0 0 0 42.666667 42.666666h168.405333a42.666667 42.666667 0 0 0 42.666667-42.666666v-298.666667c0-37.973333-45.781333-57.002667-72.704-30.293333l-53.333333 52.906666-55.466667-53.333333z" horiz-adv-x="1024" />
|
|
||||||
|
|
||||||
|
|
||||||
<glyph glyph-name="xunlianying" unicode="" d="M256 682.666667a42.666667 42.666667 0 0 1-42.666667-42.666667v-512a42.666667 42.666667 0 0 1 42.666667-42.666667h512a42.666667 42.666667 0 0 1 42.666667 42.666667V640a42.666667 42.666667 0 0 1-42.666667 42.666667H256z m0 42.666666h512a85.333333 85.333333 0 0 0 85.333333-85.333333v-512a85.333333 85.333333 0 0 0-85.333333-85.333333H256a85.333333 85.333333 0 0 0-85.333333 85.333333V640a85.333333 85.333333 0 0 0 85.333333 85.333333zM528.64 393.813333c19.541333 2.816 42.410667 7.082667 68.522667 12.885334l-136.533334 94.378666v-109.312a304.853333 304.853333 0 0 1 67.968 2.090667z m-68.010667-176.853333c0-28.458667-42.666667-28.458667-42.666666 0V541.738667a21.333333 21.333333 0 0 0 33.450666 17.536l209.365334-144.64a21.333333 21.333333 0 0 0-6.912-38.272c-47.445333-11.946667-87.168-20.224-119.296-24.746667a348.16 348.16 0 0 0-73.941334-2.645333v-132.010667zM384 170.666667a21.333333 21.333333 0 1 0 0 42.666666h128a21.333333 21.333333 0 1 0 0-42.666666H384z" horiz-adv-x="1024" />
|
|
||||||
|
|
||||||
|
|
||||||
<glyph glyph-name="pinggu1" unicode="" d="M873.130667 485.589333c-17.066667 17.066667-40.106667 21.333333-64 18.432a86.869333 86.869333 0 0 1-56.917334-27.050666l-281.386666-283.050667a23.04 23.04 0 0 1-6.272-11.776l-27.733334-114.005333c-1.536-7.594667-1.962667-12.544 3.413334-17.92a22.784 22.784 0 0 1 20.736-6.272l111.872 29.226666a22.784 22.784 0 0 1 11.648 6.314667l281.386666 283.093333c17.066667 17.066667 20.906667 34.944 25.6 58.666667a67.712 67.712 0 0 1-18.261333 64.341333h-0.085333z m-31.786667-33.322666c17.066667-17.066667 9.856-36.266667-7.082667-53.290667l-5.802666-5.888-47.402667 47.573333 5.802667 5.888c17.066667 17.066667 37.504 22.784 54.4 5.717334h0.085333z m-285.653333-333.738667l-69.077334-24.789333 23.210667 71.082666 238.122667 239.701334 45.866666-46.208-238.122666-239.786667z m207.616 103.424c-12.714667 0-27.050667-10.410667-27.050667-23.082667v-105.557333h-81.834667c-12.714667 0-29.013333-13.653333-29.013333-26.368s16.298667-23.082667 29.013333-23.082667h106.752a23.125333 23.125333 0 0 1 23.04 23.082667v131.925333c0 12.672-16.298667 23.082667-29.013333 23.082667h8.106667z m-387.370667-128.64H219.562667V677.12h515.413333v-141.568a24.149333 24.149333 0 0 1 24.234667-23.082667 24.917333 24.917333 0 0 1 25.002666 23.082667V701.44a23.125333 23.125333 0 0 1-23.04 23.210667H194.56a23.125333 23.125333 0 0 1-22.912-23.210667v-634.453333c0-12.672 10.24-23.04 22.954667-23.082667h181.333333a23.125333 23.125333 0 0 1 23.04 23.082667 26.026667 26.026667 0 0 1-23.04 26.368zM296.746667 329.045333l-39.808 32 112.64 140.16 121.6-99.072 176.810666 172.757334 35.712-36.608-209.493333-204.629334-116.992 95.317334-80.469333-99.925334z" horiz-adv-x="1024" />
|
|
||||||
|
|
||||||
|
|
||||||
<glyph glyph-name="renwu-wancheng" unicode="" d="M554.666667 384m-256 0a256 256 0 1 1 512 0 256 256 0 1 1-512 0Z" horiz-adv-x="1066" />
|
|
||||||
|
|
||||||
|
|
||||||
<glyph glyph-name="renwu-daiwancheng" unicode="" d="M529.655172 366.344828m-211.862069 0a211.862069 211.862069 0 1 1 423.724138 0 211.862069 211.862069 0 1 1-423.724138 0Z" horiz-adv-x="1024" />
|
|
||||||
|
|
||||||
|
|
||||||
<glyph glyph-name="renwu-jingxingzhong" unicode="" d="M532.48 363.52m-245.76 0a245.76 245.76 0 1 1 491.52 0 245.76 245.76 0 1 1-491.52 0ZM532.48 117.76a245.76 245.76 0 1 0 0 491.52 245.76 245.76 0 0 0 0-491.52z m0 28.91776a216.84224 216.84224 0 1 1 0 433.68448 216.84224 216.84224 0 0 1 0-433.68448z" horiz-adv-x="1064" />
|
|
||||||
|
|
||||||
|
|
||||||
<glyph glyph-name="zan" unicode="" d="M700.757333 79.232c31.061333 0 61.312 25.429333 66.773334 56.021333l43.008 241.621334c8.448 47.530667-22.826667 84.608-71.04 84.224l-8.618667-0.042667-44.501333-0.298667c-15.914667-0.128-31.829333-0.128-47.786667 0l-26.026667 0.341334 9.642667 24.234666c8.618667 21.589333 18.346667 80.64 18.090667 107.776-0.512 61.482667-26.368 96.682667-58.325334 96.298667-39.253333-0.426667-58.453333-19.754667-58.368-76.714667 0.213333-94.848-85.973333-190.293333-189.482666-189.482666a1021.952 1021.952 0 0 1-17.365334 0h-2.986666c-0.128 0 0.554667-344.405333 0.554666-344.405334 0 0.085333 386.432 0.426667 386.432 0.426667z m-14.549333 417.408l44.373333 0.341333 8.618667 0.042667c70.741333 0.512 119.04-56.832 106.666667-126.464l-43.008-241.621333c-8.490667-47.658667-53.589333-85.589333-102.058667-85.632l-386.304-0.341334a35.925333 35.925333 0 0 0-36.096 35.712l-0.725333 344.405334a35.84 35.84 0 0 0 35.669333 35.968l3.072 0.042666c4.992 0.085333 11.093333 0.085333 17.962667 0 82.645333-0.64 153.472 77.824 153.344 153.514667-0.170667 76.8 34.986667 112 93.824 112.725333 54.869333 0.64 93.994667-52.608 94.634666-131.925333 0.213333-23.978667-5.76-66.346667-13.226666-96.853333l23.253333 0.085333zM206.592 420.053333v-341.205333h19.754667a17.92 17.92 0 0 0 0-35.925333h-33.109334A22.485333 22.485333 0 0 0 170.666667 65.408V433.493333c0 12.416 10.154667 22.442667 22.528 22.442667h32.768a17.92 17.92 0 0 0 0-35.925333h-19.370667z" horiz-adv-x="1024" />
|
|
||||||
|
|
||||||
|
|
||||||
<glyph glyph-name="zan-click" unicode="" d="M700.757333 79.232c31.061333 0 61.312 25.429333 66.773334 56.021333l43.008 241.621334c8.448 47.530667-22.826667 84.608-71.04 84.224l-8.618667-0.042667-44.501333-0.298667c-15.914667-0.128-31.829333-0.128-47.786667 0l-26.026667 0.341334 9.642667 24.234666c8.618667 21.589333 18.346667 80.64 18.090667 107.776-0.512 61.482667-26.368 96.682667-58.325334 96.298667-39.253333-0.426667-58.453333-19.754667-58.368-76.714667 0.213333-94.848-85.973333-190.293333-189.482666-189.482666a1021.952 1021.952 0 0 1-17.365334 0h-2.986666c-0.128 0 0.554667-344.405333 0.554666-344.405334 0 0.085333 386.432 0.426667 386.432 0.426667z m-14.549333 417.408l44.373333 0.341333 8.618667 0.042667c70.741333 0.512 119.04-56.832 106.666667-126.464l-43.008-241.621333c-8.490667-47.658667-53.589333-85.589333-102.058667-85.632l-386.304-0.341334a35.925333 35.925333 0 0 0-36.096 35.712l-0.725333 344.405334a35.84 35.84 0 0 0 35.669333 35.968l3.072 0.042666c4.992 0.085333 11.093333 0.085333 17.962667 0 82.645333-0.64 153.472 77.824 153.344 153.514667-0.170667 76.8 34.986667 112 93.824 112.725333 54.869333 0.64 93.994667-52.608 94.634666-131.925333 0.213333-23.978667-5.76-66.346667-13.226666-96.853333l23.253333 0.085333zM206.592 420.053333v-341.205333h19.754667a17.92 17.92 0 0 0 0-35.925333h-33.109334A22.485333 22.485333 0 0 0 170.666667 65.408V433.493333c0 12.416 10.154667 22.442667 22.528 22.442667h32.768a17.92 17.92 0 0 0 0-35.925333h-19.370667z" horiz-adv-x="1024" />
|
|
||||||
|
|
||||||
|
|
||||||
<glyph glyph-name="settings" unicode="" d="M382.417455 608.116364a171.566545 171.566545 0 0 0-118.365091-18.338909 318.557091 318.557091 0 0 1-53.806546-85.969455c28.625455-30.114909 44.544-69.632 44.497455-110.638545a160.581818 160.581818 0 0 0-49.477818-115.665455 314.368 314.368 0 0 1 59.252363-99.374545 171.752727 171.752727 0 0 0 127.069091-16.337455 163.793455 163.793455 0 0 0 75.869091-91.415273 334.987636 334.987636 0 0 1 102.958545 2.187637 163.514182 163.514182 0 0 0 78.289455 99.514181 171.613091 171.613091 0 0 0 120.785455 17.82691 317.486545 317.486545 0 0 1 49.710545 88.250181 160.209455 160.209455 0 0 0-42.821818 108.823273c0 40.261818 15.127273 78.056727 41.285818 107.194182a314.135273 314.135273 0 0 1-45.288727 80.709818 171.752727 171.752727 0 0 0-125.486546 16.802909 163.374545 163.374545 0 0 0-79.592727 104.820364 334.615273 334.615273 0 0 1-110.08 0 163.84 163.84 0 0 0-74.798545-88.389818z m26.763636 134.516363a392.704 392.704 0 0 0 211.083636-1.396363 106.868364 106.868364 0 0 1 52.782546-100.398546c35.653818-21.085091 80.477091-20.945455 115.944727 0.372364a369.198545 369.198545 0 0 0 93.835636-164.445091 106.821818 106.821818 0 0 1-49.524363-89.739636c0-36.677818 19.083636-70.795636 50.827636-90.624a366.266182 366.266182 0 0 0-40.541091-98.21091c-15.825455-26.670545-34.909091-51.246545-56.925091-73.30909a113.524364 113.524364 0 0 1-109.474909-0.744728 107.054545 107.054545 0 0 1-55.389091-96.395636 393.262545 393.262545 0 0 0-203.264-4.421818 107.240727 107.240727 0 0 1-55.389091 90.530909 113.524364 113.524364 0 0 1-112.872727-1.163637A369.524364 369.524364 0 0 0 139.636364 298.402909a107.287273 107.287273 0 0 1 58.181818 94.766546 107.054545 107.054545 0 0 1-54.085818 92.578909 373.899636 373.899636 0 0 0 104.122181 167.842909c33.512727-16.802909 73.448727-15.872 106.123637 2.466909a107.287273 107.287273 0 0 1 55.202909 86.574545z m109.335273-444.183272c45.102545 0 81.687273 35.560727 81.687272 79.406545s-36.584727 79.406545-81.687272 79.406545c-45.149091 0-81.687273-35.560727-81.687273-79.406545s36.584727-79.406545 81.687273-79.406545z m0-55.342546c-76.567273 0-138.612364 60.322909-138.612364 134.749091s62.045091 134.749091 138.612364 134.749091c76.520727 0 138.612364-60.322909 138.612363-134.749091s-62.091636-134.749091-138.612363-134.749091z" horiz-adv-x="1024" />
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</font>
|
|
||||||
</defs></svg>
|
|
||||||
|
Before Width: | Height: | Size: 31 KiB |
|
Before Width: | Height: | Size: 799 KiB |
|
Before Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 66 KiB |
|
Before Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 105 KiB |
|
Before Width: | Height: | Size: 172 KiB |
|
Before Width: | Height: | Size: 111 KiB |
|
Before Width: | Height: | Size: 52 KiB |
|
Before Width: | Height: | Size: 23 KiB |
|
Before Width: | Height: | Size: 5.1 KiB |
|
Before Width: | Height: | Size: 5.5 KiB |
|
Before Width: | Height: | Size: 5.7 KiB |
|
Before Width: | Height: | Size: 62 KiB |
|
Before Width: | Height: | Size: 32 KiB |
|
Before Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 7.2 KiB |
|
Before Width: | Height: | Size: 86 KiB |
|
Before Width: | Height: | Size: 7.7 KiB |
|
Before Width: | Height: | Size: 109 KiB |
|
Before Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 87 KiB |
|
Before Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 61 KiB |
|
Before Width: | Height: | Size: 495 KiB |
|
Before Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 5.8 KiB |
|
Before Width: | Height: | Size: 314 KiB |
|
Before Width: | Height: | Size: 6.5 KiB |
|
Before Width: | Height: | Size: 4.5 KiB |
|
Before Width: | Height: | Size: 8.7 KiB |
|
Before Width: | Height: | Size: 1.4 MiB |
|
Before Width: | Height: | Size: 62 KiB |
|
Before Width: | Height: | Size: 23 KiB |
|
Before Width: | Height: | Size: 2.9 MiB |
|
Before Width: | Height: | Size: 90 KiB |
|
Before Width: | Height: | Size: 58 KiB |
|
Before Width: | Height: | Size: 2.3 MiB |
|
Before Width: | Height: | Size: 81 KiB |
|
Before Width: | Height: | Size: 24 KiB |
|
Before Width: | Height: | Size: 7.7 KiB |
|
Before Width: | Height: | Size: 6.6 KiB |
|
Before Width: | Height: | Size: 65 KiB |
|
Before Width: | Height: | Size: 1.1 MiB |
|
Before Width: | Height: | Size: 87 KiB |
|
Before Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 97 KiB |
|
Before Width: | Height: | Size: 42 KiB |
|
Before Width: | Height: | Size: 9.5 MiB |
|
Before Width: | Height: | Size: 102 KiB |
|
Before Width: | Height: | Size: 511 KiB |
|
Before Width: | Height: | Size: 604 KiB |
|
Before Width: | Height: | Size: 4.4 MiB |
|
Before Width: | Height: | Size: 39 KiB |
|
Before Width: | Height: | Size: 75 KiB |
|
Before Width: | Height: | Size: 250 KiB |
|
Before Width: | Height: | Size: 43 KiB |
|
Before Width: | Height: | Size: 28 KiB |
|
Before Width: | Height: | Size: 347 KiB |
|
Before Width: | Height: | Size: 112 KiB |
|
Before Width: | Height: | Size: 159 KiB |
|
Before Width: | Height: | Size: 6.1 KiB |
|
Before Width: | Height: | Size: 2.0 MiB |
|
Before Width: | Height: | Size: 7.6 KiB |
|
Before Width: | Height: | Size: 78 KiB |
|
Before Width: | Height: | Size: 249 KiB |
|
Before Width: | Height: | Size: 51 KiB |
|
Before Width: | Height: | Size: 108 KiB |