Commit f92d0ce9 by tangjiale

更新代码

parent 699780c5
...@@ -2,5 +2,5 @@ ...@@ -2,5 +2,5 @@
"env": "dev", "env": "dev",
"baseUrl": "http://tgoodsadmin.xiaobentiyu.cn", "baseUrl": "http://tgoodsadmin.xiaobentiyu.cn",
"loginUrl":"http://tgoodsadminh5.xiaobentiyu.cn/login", "loginUrl":"http://tgoodsadminh5.xiaobentiyu.cn/login",
"user":"http://tbaseh5.xiaobentiyu.cn/" "imgUrl":""
} }
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
"env": "pro", "env": "pro",
"baseUrl": "http://goodsadminapi.xiaobentiyu.cn", "baseUrl": "http://goodsadminapi.xiaobentiyu.cn",
"loginUrl":"http://portal.xiaobentiyu.cn/login", "loginUrl":"http://portal.xiaobentiyu.cn/login",
"user":"http://portal.xiaobentiyu.cn/" "user":"http://portal.xiaobentiyu.cn/",
"imgUrl":""
} }
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
* @eMail: 932055106@qq.com * @eMail: 932055106@qq.com
* @Date: 2022-02-10 15:24:49 * @Date: 2022-02-10 15:24:49
* @LastEditors: tangjiale * @LastEditors: tangjiale
* @LastEditTime: 2022-02-17 14:15:51 * @LastEditTime: 2022-06-06 10:57:19
*/ */
import Vue from 'vue'; import Vue from 'vue';
import service from '../plugins/framework/core/service'; import service from '../plugins/framework/core/service';
...@@ -24,34 +24,12 @@ export default function({redirect, route, store}) { ...@@ -24,34 +24,12 @@ export default function({redirect, route, store}) {
}); });
} }
//不仅登陆还要带上其他参数赋予指定身份 if(route.query&&route.query.token){
if(route.query&&route.query.token && route.query.roleId){
let param = {
roleId:route.query.roleId || '',
token:route.query.token
}
return goLogin(param).then(res=>{
return userLogin(route.query.token).then(res=>{
res['token'] = route.query.token
store.commit('updateUserInfo', res);
//跳指定路由
redirect(route.query.url?decodeURIComponent(route.query.url):'/')
})
})
//来源外部的登录
}else if(route.query&&route.query.token){
return goLogin(route.query).then(res=>{ return goLogin(route.query).then(res=>{
res['token'] = route.query.token res['token'] = route.query.token
store.commit('updateUserInfo', res); store.commit('updateUserInfo', res);
redirect('/') redirect('/')
}) })
//人人通免密登录
}else if(route.query&&route.query.code){
return rrtLogin(route.query.code).then(res=>{
res['token'] = route.query.token
store.commit('updateUserInfo', res);
redirect('/')
})
}else if(!store.state.myUserInfo) { // 处理没登录的情况 }else if(!store.state.myUserInfo) { // 处理没登录的情况
let cache = sessionStorage.getItem('myUserInfo'); let cache = sessionStorage.getItem('myUserInfo');
if (cache) { if (cache) {
......
...@@ -3578,6 +3578,19 @@ ...@@ -3578,6 +3578,19 @@
"resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz",
"integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU="
}, },
"deep-equal": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz",
"integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==",
"requires": {
"is-arguments": "^1.0.4",
"is-date-object": "^1.0.1",
"is-regex": "^1.0.4",
"object-is": "^1.0.1",
"object-keys": "^1.1.1",
"regexp.prototype.flags": "^1.2.0"
}
},
"deepmerge": { "deepmerge": {
"version": "1.5.2", "version": "1.5.2",
"resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-1.5.2.tgz", "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-1.5.2.tgz",
...@@ -4287,6 +4300,11 @@ ...@@ -4287,6 +4300,11 @@
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
"integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
}, },
"fast-diff": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.1.2.tgz",
"integrity": "sha512-KaJUt+M9t1qaIteSvjc6P3RbMdXsNhK61GRftR6SNxqmhthcd9MGIi4T+o0jD8LUSpSnSKXE20nLtJ3fOHxQig=="
},
"fast-json-stable-stringify": { "fast-json-stable-stringify": {
"version": "2.1.0", "version": "2.1.0",
"resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
...@@ -4506,6 +4524,11 @@ ...@@ -4506,6 +4524,11 @@
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
"integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
}, },
"functions-have-names": {
"version": "1.2.3",
"resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz",
"integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ=="
},
"gensync": { "gensync": {
"version": "1.0.0-beta.2", "version": "1.0.0-beta.2",
"resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
...@@ -5125,6 +5148,15 @@ ...@@ -5125,6 +5148,15 @@
} }
} }
}, },
"is-arguments": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz",
"integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==",
"requires": {
"call-bind": "^1.0.2",
"has-tostringtag": "^1.0.0"
}
},
"is-arrayish": { "is-arrayish": {
"version": "0.2.1", "version": "0.2.1",
"resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
...@@ -6082,6 +6114,15 @@ ...@@ -6082,6 +6114,15 @@
"resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz",
"integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==" "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg=="
}, },
"object-is": {
"version": "1.1.5",
"resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz",
"integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==",
"requires": {
"call-bind": "^1.0.2",
"define-properties": "^1.1.3"
}
},
"object-keys": { "object-keys": {
"version": "1.1.1", "version": "1.1.1",
"resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
...@@ -6239,6 +6280,11 @@ ...@@ -6239,6 +6280,11 @@
"no-case": "^2.2.0" "no-case": "^2.2.0"
} }
}, },
"parchment": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/parchment/-/parchment-1.1.4.tgz",
"integrity": "sha512-J5FBQt/pM2inLzg4hEWmzQx/8h8D0CiDxaG3vyp9rKrQRSDgBlhjdP5jQGgosEajXPSQouXGHOmVdgo7QmJuOg=="
},
"parse-asn1": { "parse-asn1": {
"version": "5.1.6", "version": "5.1.6",
"resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz",
...@@ -7632,6 +7678,36 @@ ...@@ -7632,6 +7678,36 @@
"resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz",
"integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=" "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM="
}, },
"quill": {
"version": "1.3.7",
"resolved": "https://registry.npmjs.org/quill/-/quill-1.3.7.tgz",
"integrity": "sha512-hG/DVzh/TiknWtE6QmWAF/pxoZKYxfe3J/d/+ShUWkDvvkZQVTPeVmUJVu1uE6DDooC4fWTiCLh84ul89oNz5g==",
"requires": {
"clone": "^2.1.1",
"deep-equal": "^1.0.1",
"eventemitter3": "^2.0.3",
"extend": "^3.0.2",
"parchment": "^1.1.4",
"quill-delta": "^3.6.2"
},
"dependencies": {
"eventemitter3": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-2.0.3.tgz",
"integrity": "sha512-jLN68Dx5kyFHaePoXWPsCGW5qdyZQtLYHkxkg02/Mz6g0kYpDx4FyP6XfArhQdlOC4b8Mv+EMxPo/8La7Tzghg=="
}
}
},
"quill-delta": {
"version": "3.6.3",
"resolved": "https://registry.npmjs.org/quill-delta/-/quill-delta-3.6.3.tgz",
"integrity": "sha512-wdIGBlcX13tCHOXGMVnnTVFtGRLoP0imqxM696fIPwIf5ODIYUHIvHbZcyvGlZFiFhK5XzDC2lpjbxRhnM05Tg==",
"requires": {
"deep-equal": "^1.0.1",
"extend": "^3.0.2",
"fast-diff": "1.1.2"
}
},
"randombytes": { "randombytes": {
"version": "2.1.0", "version": "2.1.0",
"resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
...@@ -7744,6 +7820,16 @@ ...@@ -7744,6 +7820,16 @@
"safe-regex": "^1.1.0" "safe-regex": "^1.1.0"
} }
}, },
"regexp.prototype.flags": {
"version": "1.4.3",
"resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz",
"integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==",
"requires": {
"call-bind": "^1.0.2",
"define-properties": "^1.1.3",
"functions-have-names": "^1.2.2"
}
},
"regexpu-core": { "regexpu-core": {
"version": "4.8.0", "version": "4.8.0",
"resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.8.0.tgz", "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.8.0.tgz",
...@@ -9203,6 +9289,15 @@ ...@@ -9203,6 +9289,15 @@
"resolved": "https://registry.npmjs.org/vue-no-ssr/-/vue-no-ssr-1.1.1.tgz", "resolved": "https://registry.npmjs.org/vue-no-ssr/-/vue-no-ssr-1.1.1.tgz",
"integrity": "sha512-ZMjqRpWabMPqPc7gIrG0Nw6vRf1+itwf0Itft7LbMXs2g3Zs/NFmevjZGN1x7K3Q95GmIjWbQZTVerxiBxI+0g==" "integrity": "sha512-ZMjqRpWabMPqPc7gIrG0Nw6vRf1+itwf0Itft7LbMXs2g3Zs/NFmevjZGN1x7K3Q95GmIjWbQZTVerxiBxI+0g=="
}, },
"vue-quill-editor": {
"version": "3.0.6",
"resolved": "https://registry.npmjs.org/vue-quill-editor/-/vue-quill-editor-3.0.6.tgz",
"integrity": "sha512-g20oSZNWg8Hbu41Kinjd55e235qVWPLfg4NvsLW6d+DhgBTFbEuMpcWlUdrD6qT3+Noim6DRu18VLM9lVShXOQ==",
"requires": {
"object-assign": "^4.1.1",
"quill": "^1.3.4"
}
},
"vue-router": { "vue-router": {
"version": "3.5.3", "version": "3.5.3",
"resolved": "https://registry.npmjs.org/vue-router/-/vue-router-3.5.3.tgz", "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-3.5.3.tgz",
......
...@@ -13,21 +13,22 @@ ...@@ -13,21 +13,22 @@
"dependencies": { "dependencies": {
"@babel/preset-env": "7.12.17", "@babel/preset-env": "7.12.17",
"@nuxtjs/axios": "5.11.0", "@nuxtjs/axios": "5.11.0",
"aegis-web-sdk": "1.35.25",
"autoprefixer": "9.8.5",
"cross-env": "^5.2.0", "cross-env": "^5.2.0",
"element-ui": "2.13.2", "element-ui": "2.13.2",
"less-loader": "6.1.1", "less-loader": "6.1.1",
"mercury-wrap": "1.2.3",
"nuxt": "2.12.2", "nuxt": "2.12.2",
"pl-table": "^2.7.5",
"postcss-loader": "3.0.0",
"postcss-px2rem": "0.3.0",
"sass": "^1.26.10", "sass": "^1.26.10",
"sass-loader": "^9.0.1", "sass-loader": "^9.0.1",
"screenfull": "5.0.2", "screenfull": "5.0.2",
"spark-md5": "3.0.1", "spark-md5": "3.0.1",
"vuex": "3.4.0", "vue-quill-editor": "^3.0.6",
"postcss-loader": "3.0.0", "vuex": "3.4.0"
"autoprefixer": "9.8.5",
"postcss-px2rem": "0.3.0",
"mercury-wrap": "1.2.3",
"pl-table": "^2.7.5",
"aegis-web-sdk": "1.35.25"
}, },
"devDependencies": {} "devDependencies": {}
} }
<!--
* @Author: tangjiale
* @eMail: 932055106@qq.com
* @Date: 2022-06-06 09:28:37
* @LastEditors: tangjiale
* @LastEditTime: 2022-06-06 11:12:28
-->
<template>
<div class="add-course-bg">
<el-form ref="ruleForm" :model="param">
<el-form-item label="课程名称:" prop="name">
<el-input v-model="param.name" placeholder="最多输入30个汉字(60个字符)" ></el-input>
</el-form-item>
<el-form-item label="上课时段:" prop="name">
<el-input v-model="param.name" placeholder="如:每周三下午4:30至5:30"></el-input>
</el-form-item>
<el-form-item label="可用校区:" prop="checkList">
<el-checkbox-group v-model="checkList" @change="handCheck">
<el-checkbox v-for="(lab,index) in list" :key="index" :label="lab.value">{{lab.name}}</el-checkbox>
</el-checkbox-group>
</el-form-item>
<div class="arr-bg">
<el-form-item label="重要属性:"></el-form-item>
<div class="course-arr-flex">
<el-form-item label="课程属性:" prop="arr">
<t-select v-model="param.arr" placeholder="请选择" :ds="[{name:'小学组',value:''},{name:'初中组',value:''},{name:'高中组',value:''}]"></t-select>
</el-form-item>
<el-form-item label="课程类型:" prop="type">
<t-select v-model="param.type" placeholder="请选择" :ds="[{name:'体验课',value:''},{name:'正式班课',value:''}]"></t-select>
</el-form-item>
<el-form-item label="课时:" prop="arr">
<el-input v-model="param.name" placeholder="请输入数字"></el-input>
</el-form-item>
<el-form-item label="课程价格:" prop="arr">
<el-input v-model="param.price" placeholder="请输入数字"></el-input>
</el-form-item>
</div>
</div>
<el-form-item label="课程图片:" prop="name">
<el-upload accept="image/jpg,image/jpeg,image/png"
:before-upload="beforeUpload"
class="upload-demo" action="#"
:show-file-list="false">
<template>
<img v-if="imageUrl" :src="imageUrl" class="avatar">
<div class="upload-ctn" v-else>
<div class="tip">课程图片大小不能超过3MB。</div>
<div class="upload-bg">
<i class="el-icon-plus avatar-uploader-icon"></i>
添加上传图片
</div>
</div>
</template>
</el-upload>
</el-form-item>
<el-form-item label="课程详情:" prop="name" class="curstom-editor">
<quill-editor :options="editorOption" v-model="content"></quill-editor>
</el-form-item>
</el-form>
</div>
</template>
<script>
export default {
data(){
return{
param:{},
imageUrl:'',
checkList:[],
content:'',
editorOption: {
placeholder: "请输入正文",
},
list:[
{name:'宇腾校区',value:'4',},{name:'河西校区',value:'6',},{name:'南湖馆校区',value:'3',},
]
}
},
methods:{
handCheck(){
},
beforeUpload(file) {
//验证资源格式
var img = file.name.substring(file.name.lastIndexOf('.') + 1)
const suffix = img === 'jpg'
const suffix2 = img === 'png'
const suffix3 = img === 'jpeg'
const isLt1M = file.size / 1024 / 1024 <= 3;
if (!suffix && !suffix2 && !suffix3) {
this.$message.error("只能上传图片!");
return false
}
// 可以限制图片的大小
if (!isLt1M) {
this.$message.error('上传图片大小不能超过 1MB!');
}
// return this.getToken(file).then(res => {
// this.dataObj.token = res.token;
// this.dataObj.key = res.key;
// let url = file.type.includes('image') ? (this.$config.imgUrl + res.filePath) : (this.$config.imgUrl + res.filePath)
// this.uploadList.push({
// url: url,
// })
// })
},
getToken(file={}) {
let datas = {
busType: 1,
submitType: 0,
fname: file.type
}
return this.$service.upload.getUploadTokenForWeb(datas)
},
}
}
</script>
<style lang="less" scoped>
.add-course-bg{
padding: 20px 0px;
}
/deep/ .el-input .el-input__inner{
width: 600px;
}
.arr-bg{
background-color: #F5F5F5;
padding: 10px 15px 0px 15px;
border-radius: 10px;
margin-bottom: 20px;
}
/deep/ .el-form-item{
display: flex;
}
.course-arr-flex{
display: flex;
align-items: center;
/deep/ .el-form-item{
display: flex;
margin-right: 15px;
}
/deep/ .el-input .el-input__inner{
width: 248px;
}
}
/deep/ .el-form-item__content{
height: auto !important;
}
.upload-bg{
cursor: pointer;
height: 150px;
width: 200px;
border: 1px solid #000000;
.el-icon-plus{
margin-top: 40px;
display: block !important;
}
}
// /deep/ .curstom-editor .ql-container{
// min-height:300px;
// }
</style>
\ No newline at end of file
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
* @eMail: 932055106@qq.com * @eMail: 932055106@qq.com
* @Date: 2022-06-02 15:02:39 * @Date: 2022-06-02 15:02:39
* @LastEditors: tangjiale * @LastEditors: tangjiale
* @LastEditTime: 2022-06-02 16:28:28 * @LastEditTime: 2022-06-06 10:03:38
--> -->
<template> <template>
<div> <div>
......
...@@ -3,14 +3,13 @@ ...@@ -3,14 +3,13 @@
* @eMail: 932055106@qq.com * @eMail: 932055106@qq.com
* @Date: 2022-06-02 14:08:46 * @Date: 2022-06-02 14:08:46
* @LastEditors: tangjiale * @LastEditors: tangjiale
* @LastEditTime: 2022-06-02 17:23:17 * @LastEditTime: 2022-06-06 09:31:15
--> -->
<template> <template>
<div class="page-bg"> <div class="page-bg">
<t-table autoLoad ref="table" :options="options" :params="params" <t-table autoLoad ref="table" :options="options" :params="params"
@row-btn-click="onRowButtonClick"> @row-btn-click="onRowButtonClick">
<!-- 操作栏 --> <!-- 操作栏 -->
<template slot="form-order-search"> <template slot="form-order-search">
<div class="search-bottom"> <div class="search-bottom">
...@@ -19,12 +18,17 @@ ...@@ -19,12 +18,17 @@
</template> </template>
</t-table> </t-table>
<c-popup ref="c-popup" title="您正在新增课程信息">
<add-course></add-course>
</c-popup>
</div> </div>
</template> </template>
<script> <script>
import addCourse from './components/add-course.vue'
export default { export default {
services:['order','base'], services:['order','base'],
components:{addCourse},
data(){ data(){
return{ return{
params:{ params:{
...@@ -88,6 +92,9 @@ export default { ...@@ -88,6 +92,9 @@ export default {
}, },
} }
}, },
mounted(){
this.$refs['c-popup'].change()
},
methods:{ methods:{
onRowButtonClick(data, i) { onRowButtonClick(data, i) {
let self = this let self = this
...@@ -97,6 +104,9 @@ export default { ...@@ -97,6 +104,9 @@ export default {
case 'emit': //修改 case 'emit': //修改
break break
} }
},
exportOrder(){
} }
} }
} }
......
<!--
* @Author: tangjiale
* @eMail: 932055106@qq.com
* @Date: 2022-02-11 16:58:50
* @LastEditors: tangjiale
* @LastEditTime: 2022-02-18 16:10:14
-->
<template>
<!-- 订单统计页面 -->
<div class="page-bg">
<t-table
ref="table"
:options="options"
:params="params"
autoLoad
@reload="reloadParam"
@row-btn-click="onRowButtonClick"
>
<!-- 自定义懒加载联级地区组件 -->
<template slot="slot-area">
<el-cascader
placeholder="请选择区域" :show-all-levels="false"
v-model="params.regionCode"
:props="adressProps"
></el-cascader>
</template>
<!-- 自定义模糊搜索组件 -->
<template slot="slot-school">
<el-autocomplete
v-model="params.schName"
:fetch-suggestions="querySearchAsync"
placeholder="请输入内容"
></el-autocomplete>
</template>
<template slot="form-order-search">
<div class="search-bottom">
<el-button size="mini" @click="exportOrderAnalysis"
><i class="el-icon-download"></i> 导出</el-button
>
</div>
</template>
</t-table>
</div>
</template>
<script>
export default {
services: ["order", "base", "analysis"],
head:{title:'中小学生智慧体育运营平台'},
data() {
return {
adressProps: {
lazy: true, //可以理解为开关,什么时候结束
checkStrictly: true,
expandTrigger: "hover",
lazyLoad: this.cascaderLazyLoad,
emitPath: false,
},
params: {
regionCode: "",
schName: "",
},
options: {
title: "订单统计",
search: [
{
field: "startDate,endDate",
type: "daterange",
label: "统计时间",
},
{ type: "slot", slotName: "slot-area", label: "区域:",field:'regionCode'},
//自定义筛选组件插槽
{ type: "slot", slotName: "slot-school", label: "学校:",field:'schName'},
// 选择器值从接口获取
{
label: "学年学期:",
autoSelect: true,
field: "inYearAndTerm",
type: "select",
ds: { service: "analysis", func: "getInYearAndTermList" },
},
{
field: "productId",
autoSelect: true,
label: "商品:",
type: "select",
ds: { service: "analysis", func: "getGoodsList" },
}
],
table: {
service: "analysis",
func: "getOrderAnalysisList",
selectable: false,
customRow: true,
columns: [
{ title: "机构名称", field: "schName"},
{
title: "总人数",type: "customField",
fieldFunction: (row) =>
row.totalPeople > 0 ? row.totalPeople : "-",
},
{
title: "学生人数",type: "customField",
fieldFunction: (row) => (row.totalStu > 0 ? row.totalStu : "-"),
},
{
title: "教师人数",type: "customField",
fieldFunction: (row) => (row.totalTea > 0 ? row.totalTea : "-"),
},
{
title: "订单数",type: "customField",
fieldFunction: (row) =>
row.orderPeople > 0 ? row.orderPeople : "-",
},
{
title: "商品数量",type: "customField",
fieldFunction: (row) => (row.goodsNum > 0 ? row.goodsNum : "-"),
},
{
title: "学生订单数",
type: "customField",
fieldFunction: (row) => (row.orderStu > 0 ? row.orderStu : "-"),
},
{
title: "教师订单数",
type: "customField",
fieldFunction: (row) => (row.orderTea > 0 ? row.orderTea : "-"),
},
{
title: "机构订单数",
type: "customField",
fieldFunction: (row) =>
row.orderMember > 0 ? row.orderMember : "-",
},
{
title: "转化率",
showDisable: true,
type: "customField",
fieldFunction: (row) => row.changePercent + "%",
},
],
},
},
};
},
methods: {
onRowButtonClick(data, i) {
let { event, row } = data;
},
//模糊搜索学校
querySearchAsync(queryString, cb) {
console.log(queryString);
this.$service.base.getUserAllSchList(queryString).then((res) => {
cb(res);
});
},
reloadParam(){
this.params = {
regionCode:'',schName:''
}
},
//导出订单列表
exportOrderAnalysis() {
let param = {
...this.$refs["table"].searchForm,
...this.params,
};
if (
param["startDate,endDate"] &&
param["startDate,endDate"].length
) {
param.startDate = param["startDate,endDate"][0];
param.endDate = param["startDate,endDate"][1];
}
delete param["startDate,endDate"];
delete param.undefined
let failName = `订单统计列表${
param.startDate ? "-" + param.endDate : ""
}`;
this.$service.analysis
.exportOrderAnalysisList(param, failName)
.then((res) => {
this.$notifySuccess();
});
},
cascaderLazyLoad(node, resolve) {
if (!node) {
return false;
}
const { level } = node;
let code = node.value || "";
this.$service.order
.getUserOrganList(
level == 0
? {}
: {
code,
regionLevel: level == 1 ? 2 : 4, //2省 4市 6区
}
)
.then((res) => {
let list = [];
if (res && res.length) {
list = res.map((val) => {
return {
value: val.code,
label: val.shortName,
leaf: level >= 2, //因为省市区三项,所以第三次点击就不用在加载了,所以 >=2
};
});
}
if(level == 0){
list.unshift({
value:'all',label:'全国',leaf: level >= 0,
})
}
resolve(list);
});
},
},
};
</script>
<style lang="less" scoped>
.search-bottom {
width: calc(100% - 2px);
background-color: #fff;
padding: 10px;
border-top: 1px solid #e4e7ed;
margin-bottom: 16px;
}
</style>
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
* @eMail: 932055106@qq.com * @eMail: 932055106@qq.com
* @Date: 2022-06-02 14:08:46 * @Date: 2022-06-02 14:08:46
* @LastEditors: tangjiale * @LastEditors: tangjiale
* @LastEditTime: 2022-06-02 17:23:22 * @LastEditTime: 2022-06-06 08:41:26
--> -->
<template> <template>
<div class="page-bg"> <div class="page-bg">
...@@ -22,13 +22,19 @@ ...@@ -22,13 +22,19 @@
<!-- 新增学校 --> <!-- 新增学校 -->
<add-student ref="add-student"></add-student> <add-student ref="add-student"></add-student>
<!-- 导入学生 -->
<c-popup ref="i-popup" title="您正在导入学生数据">
<import-student @close="$refs['i-popup'].change()" @updateData="init()"></import-student>
</c-popup>
</div> </div>
</template> </template>
<script> <script>
import addStudent from './components/add-student.vue' import addStudent from './components/add-student.vue'
import importStudent from './components/import-student.vue'
export default { export default {
components:{addStudent}, components:{addStudent,importStudent},
services:['order','base'], services:['order','base'],
data(){ data(){
return{ return{
...@@ -76,7 +82,7 @@ export default { ...@@ -76,7 +82,7 @@ export default {
} }
}, },
mounted(){ mounted(){
this.$refs['i-popup'].change()
}, },
methods:{ methods:{
onRowButtonClick(data, i) { onRowButtonClick(data, i) {
...@@ -94,7 +100,7 @@ export default { ...@@ -94,7 +100,7 @@ export default {
this.$refs['add-student'].change() this.$refs['add-student'].change()
break break
case 'import': //导入学生 case 'import': //导入学生
// this.$refs['add-student'].change() this.$refs['i-popup'].change()
break break
} }
} }
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
* @eMail: 932055106@qq.com * @eMail: 932055106@qq.com
* @Date: 2022-02-11 09:41:38 * @Date: 2022-02-11 09:41:38
* @LastEditors: tangjiale * @LastEditors: tangjiale
* @LastEditTime: 2022-05-26 16:47:20 * @LastEditTime: 2022-06-06 10:26:31
*/ */
import Vue from 'vue'; import Vue from 'vue';
import Aegis from 'aegis-web-sdk' import Aegis from 'aegis-web-sdk'
...@@ -13,55 +13,55 @@ import framework from './framework'; ...@@ -13,55 +13,55 @@ import framework from './framework';
let config = require(`@/config/${process.env.ENV_CONFIG||'pro'}.config.json`); let config = require(`@/config/${process.env.ENV_CONFIG||'pro'}.config.json`);
//监控调试 //监控调试
const aegis = new Aegis({ // const aegis = new Aegis({
id: 'JjmvzClOovrjreQrQv', // 上报 id // id: 'JjmvzClOovrjreQrQv', // 上报 id
reportApiSpeed: true, // 接口测速 // reportApiSpeed: true, // 接口测速
reportAssetSpeed: true, // 静态资源测速 // reportAssetSpeed: true, // 静态资源测速
spa: true, // spa 应用页面跳转的时候开启 pv 计算 // spa: true, // spa 应用页面跳转的时候开启 pv 计算
api: { // api: {
apiDetail: true, // apiDetail: true,
retCodeHandler:(data,url,xhr) => { // retCodeHandler:(data,url,xhr) => {
try { // try {
data = JSON.parse(data) // data = JSON.parse(data)
} catch(e) {} // } catch(e) {}
return { // return {
// isErr 如果是 true 的话,会上报一条 retcode 异常的日志。 // // isErr 如果是 true 的话,会上报一条 retcode 异常的日志。
isErr: data.code && data.code != 200, // isErr: data.code && data.code != 200,
code: data.code // code: data.code
} // }
} // }
}, // },
//计算公式 = (PV + API 统计次数 + 静态资源统计次数 + 错误日志次数 + 自定义上报次数) - 50万 // //计算公式 = (PV + API 统计次数 + 静态资源统计次数 + 错误日志次数 + 自定义上报次数) - 50万
beforeRequest:log =>{ // beforeRequest:log =>{
if(log.logType == 'speed') return false // if(log.logType == 'speed') return false
if(log.logType == 'pv'){ // if(log.logType == 'pv'){
return false // return false
} // }
let msg = log.logs?.msg // let msg = log.logs?.msg
if(msg){ // if(msg){
for (let i in ignoreMsgs){ // for (let i in ignoreMsgs){
if(msg.indexOf(ignoreMsgs[i]) !== -1){ // if(msg.indexOf(ignoreMsgs[i]) !== -1){
return false // return false
} // }
} // }
} // }
if(log.logType == 'log' && log.logs && log.logs.level == 8) return false // if(log.logType == 'log' && log.logs && log.logs.level == 8) return false
return log // return log
} // }
}); // });
//全局js捕获异常上报 // //全局js捕获异常上报
Vue.config.errorHandler = function(err,vm,info) { // Vue.config.errorHandler = function(err,vm,info) {
//页面全路径 // //页面全路径
let fullUrl = window.location.href // let fullUrl = window.location.href
aegis.error({ // aegis.error({
msg:err, // msg:err,
ext1:`报错页面:${fullUrl}`, // ext1:`报错页面:${fullUrl}`,
trace: 'trace', // trace: 'trace',
}) // })
} // }
export default ({store}) => { export default ({store}) => {
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
* @eMail: 932055106@qq.com * @eMail: 932055106@qq.com
* @Date: 2022-02-10 15:24:49 * @Date: 2022-02-10 15:24:49
* @LastEditors: tangjiale * @LastEditors: tangjiale
* @LastEditTime: 2022-06-02 15:11:42 * @LastEditTime: 2022-06-06 11:08:14
*/ */
import Vue from 'vue'; import Vue from 'vue';
require('./flexiable'); require('./flexiable');
...@@ -16,6 +16,16 @@ Vue.component(cDialog.name, cDialog) ...@@ -16,6 +16,16 @@ Vue.component(cDialog.name, cDialog)
Vue.component(cPopup.name, cPopup) Vue.component(cPopup.name, cPopup)
//引用富文本编辑器
import VueQuillEditor from 'vue-quill-editor'
//引入富文本css
import 'quill/dist/quill.core.css'
import 'quill/dist/quill.snow.css'
import 'quill/dist/quill.bubble.css'
//富文本编辑器添加实例
Vue.use(VueQuillEditor)
Vue.prototype.$showConfirm = msg => Vue.prototype.$confirm(msg || '是否确定删除对应的记录?', '提示', {type: 'warning'}); Vue.prototype.$showConfirm = msg => Vue.prototype.$confirm(msg || '是否确定删除对应的记录?', '提示', {type: 'warning'});
Vue.prototype.$notifySuccess = msg => Vue.prototype.$notify.success({ Vue.prototype.$notifySuccess = msg => Vue.prototype.$notify.success({
title: '提示', title: '提示',
...@@ -25,13 +35,13 @@ Vue.prototype.$notifySuccess = msg => Vue.prototype.$notify.success({ ...@@ -25,13 +35,13 @@ Vue.prototype.$notifySuccess = msg => Vue.prototype.$notify.success({
Vue.prototype.$px2rem = Number(document.documentElement.style.fontSize.replace('px', '')) / 75 * (window.dpr || 1); Vue.prototype.$px2rem = Number(document.documentElement.style.fontSize.replace('px', '')) / 75 * (window.dpr || 1);
export default ({store}) => { export default ({store}) => {
Vue.directive('auth', { // Vue.directive('auth', {
bind: function(el, binding) { // bind: function(el, binding) {
let authCode = binding.value; // let authCode = binding.value;
if (!authCode) return; // if (!authCode) return;
if (store.state.buttonAuthList.indexOf(authCode) === -1) { // 没有那个权限则隐藏按钮 // if (store.state.buttonAuthList.indexOf(authCode) === -1) { // 没有那个权限则隐藏按钮
el.style.display = 'none'; // el.style.display = 'none';
} // }
} // }
}); // });
} }
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
* @eMail: 932055106@qq.com * @eMail: 932055106@qq.com
* @Date: 2022-02-11 15:54:33 * @Date: 2022-02-11 15:54:33
* @LastEditors: tangjiale * @LastEditors: tangjiale
* @LastEditTime: 2022-02-22 09:07:41 * @LastEditTime: 2022-06-06 10:26:07
*/ */
import Vue from 'vue' import Vue from 'vue'
//配置对象 //配置对象
...@@ -21,10 +21,6 @@ export default { ...@@ -21,10 +21,6 @@ export default {
historyRoute:[ historyRoute:[
{name:'首页',url:'/'} {name:'首页',url:'/'}
], ],
//登陆来源 老板要求从哪里登陆过来,退出登陆后回哪里去
//已知: 1/用户中心 2/智慧体育 3/人人通
tbase:'',
sourceOption:['','loginUrl','zhtyLoginUrl','rrtLoginUrl','','']
}), }),
mutations: { mutations: {
updateUserInfo(state, userInfo) { updateUserInfo(state, userInfo) {
...@@ -33,10 +29,9 @@ export default { ...@@ -33,10 +29,9 @@ export default {
sessionStorage.setItem('myUserInfo', JSON.stringify(info)); sessionStorage.setItem('myUserInfo', JSON.stringify(info));
}, },
logout(state) { logout(state) {
const source = state.tbase || ''
state.myUserInfo = null; state.myUserInfo = null;
sessionStorage.removeItem('myUserInfo'); sessionStorage.removeItem('myUserInfo');
location.href = source ? config[state.sourceOption[source]] : '/login'; location.href = '/login';
}, },
//更新理由 //更新理由
updateRoute(state,list){ updateRoute(state,list){
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment