Bladeren bron

修改样式

lex-xin 4 jaren geleden
bovenliggende
commit
5a91624806

+ 0 - 57
src/api/app.js

@@ -1,57 +0,0 @@
-
-
-const axios = require('@/common/axios').default
-import qs from 'qs'
-
-// 获取课程组详情
-const getGroupDetail = (data) => {
-    return axios({
-        url: '/api-student/courseGroup/getGroupDetail',
-        method: 'get',
-        params: data
-    })
-}
-
-// 购买课程组
-const buyCourseGroup = (data) => {
-    return axios({
-        url: '/api-student/courseGroup/buyCourseGroup',
-        method: 'post',
-        data: qs.stringify(data)
-    })
-}
-
-// 评论详情
-const getReviewInfo = (data) => {
-    return axios({
-        url: '/api-student/courseReview/getReviewInfo',
-        method: 'get',
-        params: data
-    })
-}
-
-// 评论详情
-const getStuAndTeaReviewInfo = (data) => {
-    return axios({
-        url: '/api-student/courseReview/getStuAndTeaReviewInfo',
-        method: 'get',
-        params: data
-    })
-}
-
-// 注册协议
-const queryRegisterContract = (data) => {
-    return axios({
-        url: '/api-student/contracts/queryRegisterContract',
-        method: 'get',
-        params: data
-    })
-}
-
-export {
-    getGroupDetail,
-    buyCourseGroup,
-    getReviewInfo,
-    getStuAndTeaReviewInfo,
-    queryRegisterContract
-}

+ 0 - 186
src/api/audition.js

@@ -1,186 +0,0 @@
-const axios = require('@/common/axios').default
-import qs from 'qs'
-
-// 获取陪练课预约参数
-const getPracticeApplyParams = (data) => {
-  return axios({
-    url: '/api-student/practiceGroup/getPracticeApplyParams',
-    method: 'get',
-    params: data
-  })
-}
-
-// 获取指定学员所在分部下的教师空闲时间
-const getTeacherFreeTimes = (data) => {
-  return axios({
-    url: '/api-student/practiceGroup/getTeacherFreeTimes',
-    method: 'get',
-    params: data
-  })
-}
-
-// 获取学生的陪练课
-const findUserPracticeCourses = (data) => {
-  return axios({
-    url: '/api-student/practiceGroup/findUserPracticeCourses',
-    method: 'get',
-    params: data
-  })
-}
-
-// 获取学生的陪练课
-const practiceApply = (data) => {
-  return axios({
-    url: '/api-student/practiceGroup/practiceApply',
-    method: 'post',
-    data: qs.stringify(data)
-  })
-}
-
-// 获取老师列表
-const getEnableApplyTeachers = (data) => {
-  return axios({
-    url: '/api-student/practiceGroup/getEnableApplyTeachers',
-    method: 'get',
-    params: data
-  })
-}
-
-
-// 获取陪练课预约参数——付费
-const getPayPracticeApplyParams = (data) => {
-  return axios({
-    url: '/api-student/practiceGroup/getPayPracticeApplyParams',
-    method: 'get',
-    params: data
-  })
-}
-
-// 获取可以预约的教师--付费
-const getEnableApplyTeachersWithPay = (data) => {
-  return axios({
-    url: '/api-student/practiceGroup/getEnableApplyTeachersWithPay',
-    method: 'get',
-    params: data
-  })
-}
-
-// 获取指定教师的空闲时间——付费
-const getPayPracticeTeacherFreeTimes = (data) => {
-  return axios({
-    url: '/api-student/practiceGroup/getPayPracticeTeacherFreeTimes',
-    method: 'get',
-    params: data
-  })
-}
-
-// 陪练课购买
-const buyPracticeGroup = (data) => {
-  return axios({
-    url: '/api-student/practiceGroup/buyPracticeGroup',
-    method: 'post',
-    data: data
-  })
-}
-
-// 获取用户历史购买的陪练课
-const findUserHistoryBuyPracticeGroups = (data) => {
-  return axios({
-    url: '/api-student/practiceGroup/findUserHistoryBuyPracticeGroups',
-    method: 'get',
-    params: data
-  })
-}
-
-// 获取学生上一次的购买信息--付费
-const findUserLatestPracticeGroup = (data) => {
-  return axios({
-    url: '/api-student/practiceGroup/findUserLatestPracticeGroup',
-    method: 'get',
-    params: data
-  })
-}
-
-// 查询订单信息
-const queryOrderInfo = (data) => {
-  return axios({
-    url: '/api-student/practiceGroup/queryOrderInfo',
-    method: 'get',
-    params: data
-  })
-}
-
-// 查询订单信息
-const groupRepay = (data) => {
-  return axios({
-    url: '/api-student/practiceGroup/repay',
-    method: 'post',
-    data: qs.stringify(data)
-  })
-}
-
-// 查询合同
-const queryPracticeCoursesContract = (data) => {
-  return axios({
-    url: '/api-student/contracts/queryPracticeCoursesContract',
-    method: 'get',
-    params: data
-  })
-}
-
-// 获取老师列表
-const checkCanApplyFreePracticeGroup = (data) => {
-  return axios({
-    url: '/api-student/practiceGroup/checkCanApplyFreePracticeGroup',
-    method: 'get',
-    params: data
-  })
-}
-
-// 检测用户是否存在待支付的课程组订单
-const checkExistWaitPayOrder = (data) => {
-  return axios({
-    url: '/api-student/practiceGroup/checkExistWaitPayOrder',
-    method: 'get',
-    params: data
-  })
-}
-
-// 取消待支付的订单
-const cancelWaitPayOrder = (data) => {
-  return axios({
-    url: '/api-student/practiceGroup/cancelWaitPayOrder',
-    method: 'post',
-    data: qs.stringify(data)
-  })
-}
-
-// 是否是新用户
-const isNewStudent = (data) => {
-  return axios({
-    url: '/api-student/practiceGroup/isNewStudent',
-    method: 'get',
-    params: data
-  })
-}
-
-export {
-    getPracticeApplyParams,
-    getTeacherFreeTimes,
-    findUserPracticeCourses,
-    practiceApply,
-    getEnableApplyTeachers,
-    getPayPracticeApplyParams,
-    getEnableApplyTeachersWithPay,
-    getPayPracticeTeacherFreeTimes,
-    buyPracticeGroup,
-    findUserHistoryBuyPracticeGroups,
-    findUserLatestPracticeGroup,
-    queryOrderInfo,
-    queryPracticeCoursesContract,
-    groupRepay,
-    checkCanApplyFreePracticeGroup,
-    checkExistWaitPayOrder,
-    cancelWaitPayOrder,
-    isNewStudent
-}

+ 0 - 94
src/api/login.js

@@ -1,94 +0,0 @@
-import qs from 'qs'
-const axios = require('@/common/axios').default
-const apiPrefix = '/api-auth'
-// 手机号密码方式登录
-const usernameLogin = (data) => {
-    return axios({
-        url: apiPrefix + '/usernameLogin',
-        method: 'post',
-        data: qs.stringify(data)
-    })
-}
-// 刷新token
-const refreshToken = (data) => {
-    return axios({
-        url: apiPrefix + '/refreshToken',
-        method: 'post',
-        data
-    })
-}
-
-// 发送登录短信验证码
-const sendSms = (data) => {
-    return axios({
-        url: '/api-student/code/sendSms',
-        method: 'post',
-        data: qs.stringify(data)
-    })
-}
-
-// 校验短信验证码
-const verifySmsCode = (data) => {
-    return axios({
-        url: '/api-student/code/verifySmsCode',
-        method: 'post',
-        data: qs.stringify(data)
-    })
-}
-
-// 短信验证码的方式登录
-const smsLogin = (data) => {
-    return axios({
-        url: apiPrefix + '/smsLogin',
-        method: 'post',
-        data: qs.stringify(data)
-    })
-}
-
-// 获取用户基本信息
-const queryUserInfo = (data) => {
-    return axios({
-        url: apiPrefix + '/queryUserInfo',
-        method: 'get',
-        params: data
-    })
-}
-
-// 乐团报名缴费状态查询
-const getMusicGroupStatus = (data) => {
-    return axios({
-        url: '/api-student/musicGroup/getMusicGroupStatus',
-        method: 'get',
-        params: data
-    })
-}
-
-// 修改学生信息
-const userInfoUpdate = (data) => {
-    return axios({
-        url: apiPrefix + '/user/update',
-        method: 'post',
-        data: qs.stringify(data)
-    })
-}
-
-// 检查手机号
-const queryUserByPhone = (data) => {
-    return axios({
-        url: apiPrefix + '/user/noAuth/queryUserByPhone',
-        method: 'get',
-        params: data
-    })
-  }
-
-export {
-    usernameLogin,
-    refreshToken,
-    sendSms,
-    verifySmsCode,
-    smsLogin,
-    getMusicGroupStatus,
-    queryUserInfo,
-    userInfoUpdate,
-    queryUserByPhone
-}

+ 0 - 15
src/api/monitor.js

@@ -1,15 +0,0 @@
-const axios = require('@/common/axios').default
-import qs from 'qs'
-
-// 修改学生信息
-const pageMonitor = (data) => {
-    return axios({
-        url: '/api-student/pageMonitor/add',
-        method: 'post',
-        data: qs.stringify(data)
-    })
-}
-
-export {
-    pageMonitor
-}

+ 0 - 65
src/api/service.js

@@ -1,65 +0,0 @@
-const axios = require('@/common/axios').default
-import qs from 'qs'
-
-// 帮助中心分类
-const helpCenterCatalogList = (data) => {
-    return axios({
-        url: '/api-cms/helpCenterCatalog/list',
-        method: 'get',
-        params: data
-    })
-}
-
-// 帮助中心
-const helpCenterContentList = (data) => {
-    return axios({
-        url: '/api-cms/helpCenterContent/list',
-        method: 'get',
-        params: data
-    })
-}
-
-// 获取维修记录详情
-const getRepairInfo = (data) => {
-    return axios({
-        url: '/api-student/repair/getRepairInfo',
-        method: 'get',
-        params: data
-    })
-}
-
-// 获取维修技师信息
-const getRepairer = (data) => {
-    return axios({
-        url: '/api-student/repair/getRepairer',
-        method: 'post',
-        data: qs.stringify(data)
-    })
-}
-
-// 获取维修记录
-const getStudentRepairList = (data) => {
-    return axios({
-        url: '/api-student/repair/getStudentRepairList',
-        method: 'get',
-        params: data
-    })
-}
-
-// 支付维修单
-const payRepair = (data) => {
-    return axios({
-        url: '/api-student/repair/payRepair',
-        method: 'post',
-        data: qs.stringify(data)
-    })
-}
-
-export {
-    helpCenterCatalogList,
-    helpCenterContentList,
-    getRepairInfo,
-    getRepairer,
-    getStudentRepairList,
-    payRepair
-}

+ 0 - 301
src/api/student.js

@@ -1,301 +0,0 @@
-const axios = require('@/common/axios').default
-import qs from 'qs'
-// import axios from '@/common/axios'
-// console.log(axios)
-
-// 获取乐团报名所需信息
-const getMusicGroupRegInfo = (data) => {
-  return axios({
-    url: '/api-student/register/getMusicGroupRegInfo',
-    method: 'get',
-    params: data
-  })
-}
-
-// 获取乐团报名所需信息
-const registerAdd = (data) => {
-  return axios({
-    url: '/api-student/register/add',
-    method: 'post',
-    data: data
-  })
-}
-
-// 获取乐团声部费用信息及乐器和辅件
-const getSubjectGoodsAndInfo = (data) => {
-  return axios({
-    url: '/api-student/musicGroup/getSubjectGoodsAndInfo',
-    method: 'get',
-    params: data
-  })
-}
-
-// 乐团报名支付
-const musicGroupPay = (data) => {
-  return axios({
-    url: '/api-student/musicGroup/pay',
-    method: 'post',
-    data: data
-  })
-}
-
-// 乐团报名重新支付
-const musicGroupRePay = (data) => {
-  return axios({
-    url: '/api-student/musicGroup/rePay',
-    method: 'post',
-    data: data
-  })
-}
-
-// 资讯列表分页查询
-const newsList = (data) => {
-  return axios({
-    url: '/api-cms/news/list',
-    method: 'get',
-    params: data
-  })
-}
-
-// 查询资讯详情
-const newsQuery = (data) => {
-  return axios({
-    url: '/api-cms/news/query',
-    method: 'get',
-    params: data
-  })
-}
-
-// 订单状态查询
-const getOrderStatus = (data) => {
-  return axios({
-    url: '/api-student/musicGroup/getOrderStatus',
-    method: 'get',
-    params: data
-  })
-}
-
-// 订单状态查询
-const checkOrderStatus = (data) => {
-  return axios({
-    url: '/api-student/studentOrder/checkOrderStatus',
-    method: 'post',
-    data: qs.stringify(data)
-  })
-}
-
-// 查询合同
-const queryGoodsContract = (data) => {
-  return axios({
-    url: '/api-student/contracts/queryGoodsContract',
-    method: 'get',
-    params: data
-  })
-}
-
-// 查询乐团课程协议
-const queryMusicGroupCoursesContract = (data) => {
-  return axios({
-    url: '/api-student/contracts/queryMusicGroupCoursesContract',
-    method: 'get',
-    params: data
-  })
-}
-
-// 查询VIP课程协议
-const queryVipGroupCoursesContract = (data) => {
-  return axios({
-    url: '/api-student/contracts/queryVipGroupCoursesContract',
-    method: 'get',
-    params: data
-  })
-}
-
-// 查询续费信息
-const queryRenewInfo = (data) => {
-  return axios({
-    url: '/api-student/musicGroup/queryRenewInfo',
-    method: 'get',
-    params: data
-  })
-}
-
-// 续费
-const musicGroupReNew = (data) => {
-  return axios({
-    url: '/api-student/musicGroup/renew',
-    method: 'get',
-    params: data
-  })
-}
-
-// 小班课报名
-const highReg = (data) => {
-  return axios({
-    url: '/api-student/classGroup/highReg',
-    method: 'post',
-    data: qs.stringify(data)
-  })
-}
-
-// 小班课列表
-const highClassGroups = (data) => {
-  return axios({
-    url: '/api-student/classGroup/highClassGroups',
-    method: 'get',
-    params: data
-  })
-}
-
-// vip基本信息
-const getVipGroupPayInfo = (data) => {
-  return axios({
-    url: '/api-student/studentVipGroup/getVipGroupPayInfo',
-    method: 'post',
-    data: qs.stringify(data)
-  })
-}
-
-// vip购买
-const buyVipGroup = (data) => {
-  return axios({
-    url: '/api-student/studentVipGroup/buyVipGroup',
-    method: 'post',
-    data: qs.stringify(data)
-  })
-}
-
-// 零星购买
-const sporadicPay = (data) => {
-  return axios({
-    url: '/api-student/sporadicChargeInfo/sporadicPay',
-    method: 'post',
-    data: data
-  })
-}
-
-// 零星购买详情
-const sporadicChargeInfo = (data) => {
-  return axios({
-    url: '/api-student/sporadicChargeInfo/get',
-    method: 'get',
-    params: data
-  })
-}
-
-// 学生是否激活
-const queryStudentPer = (data) => {
-  return axios({
-    url: '/api-student/studentManage/queryStudentPer',
-    method: 'get',
-    params: data
-  })
-}
-
-// 福袋信息获取
-const activityInfo = (data) => {
-  return axios({
-    url: '/api-student/sporadicChargeInfo/activityInfo',
-    method: 'get',
-    params: data
-  })
-}
-
-// 获取用户是否预约试听课
-const findPracticeByUser = (data) => {
-  return axios({
-    url: '/api-student/practiceLessonApply/findPracticeByUser',
-    method: 'get',
-    params: data
-  })
-}
-
-// 新增预约学生 Practice
-const addPractice = (data) => {
-  return axios({
-    url: '/api-student/practiceLessonApply/add',
-    method: 'post',
-    data: data
-  })
-}
-// 查看学习报告
-const studyReport = (data) => {
-  return axios({
-    url: '/api-student/studyReport/info',
-    method: 'get',
-    params: data
-
-  })
-}
-// 查看学习报告新
-const getReviewsInfo = (data) => {
-  return axios({
-    url: '/api-student/studyReport/getReviewsInfo',
-    method: 'get',
-    params: data
-
-  })
-}
-
-// 查看学习报告列表
-const getGroupReviews = (data) => {
-  return axios({
-    url: '/api-student/studyReport/getGroupReviews',
-    method: 'get',
-    params: data
-
-  })
-}
-
-// 统计网管课信息
-const getPracticeGroupStatis = (data) => {
-  return axios({
-    url: '/api-student/studentOrder/getPracticeGroupStatis',
-    method: 'get',
-    params: data
-
-  })
-}
-
-// 统计网管课信息
-const getPracticeStatis = (data) => {
-  return axios({
-    url: '/api-student/studentOrder/getPracticeStatis',
-    method: 'get',
-    params: data
-
-  })
-}
-
-
-export {
-  getMusicGroupRegInfo,
-  registerAdd,
-  getSubjectGoodsAndInfo,
-  musicGroupPay,
-  musicGroupRePay,
-  newsList,
-  newsQuery,
-  getOrderStatus,
-  checkOrderStatus,
-  queryGoodsContract,
-  queryVipGroupCoursesContract,
-  queryRenewInfo,
-  musicGroupReNew,
-  queryMusicGroupCoursesContract,
-  highReg,
-  highClassGroups,
-  getVipGroupPayInfo,
-  buyVipGroup,
-  sporadicPay,
-  sporadicChargeInfo,
-  queryStudentPer,
-  activityInfo,
-  findPracticeByUser,
-  addPractice,
-  studyReport,
-  getPracticeGroupStatis,
-  getPracticeStatis,
-  getGroupReviews,
-  getReviewsInfo
-}

+ 0 - 1173
src/assets/commonLess/Quill.less

@@ -1,1173 +0,0 @@
-.ql-container {
-    -webkit-box-sizing: border-box;
-    box-sizing: border-box;
-    font-family: Helvetica, Arial, sans-serif;
-    font-size: 13px;
-    height: 100%;
-    margin: 0;
-    position: relative
-}
-
-.ql-container.ql-disabled .ql-tooltip {
-    visibility: hidden
-}
-
-.ql-container.ql-disabled .ql-editor ul[data-checked]>li:before {
-    pointer-events: none
-}
-
-.ql-clipboard {
-    left: -100000px;
-    height: 1px;
-    overflow-y: hidden;
-    position: absolute;
-    top: 50%
-}
-
-.ql-clipboard p {
-    margin: 0;
-    padding: 0
-}
-
-.ql-editor {
-    // -webkit-box-sizing: border-box;
-    // box-sizing: border-box;
-    // line-height: 1.42;
-    // height: 100%;
-    // outline: none;
-    // overflow-y: auto;
-    // padding: 12px 15px;
-    // -o-tab-size: 4;
-    // tab-size: 4;
-    // -moz-tab-size: 4;
-    // text-align: left;
-    // white-space: pre-wrap;
-    // word-wrap: break-word
-}
-
-.ql-editor>* {
-    cursor: text
-}
-
-.ql-editor blockquote,
-.ql-editor h1,
-.ql-editor h2,
-.ql-editor h3,
-.ql-editor h4,
-.ql-editor h5,
-.ql-editor h6,
-.ql-editor ol,
-.ql-editor p,
-.ql-editor pre,
-.ql-editor ul {
-    margin: 0;
-    padding: 0;
-    counter-reset: list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9
-}
-
-.ql-editor ol,
-.ql-editor ul {
-    padding-left: 1.5em
-}
-
-.ql-editor ol>li,
-.ql-editor ul>li {
-    list-style-type: none
-}
-
-.ql-editor ul>li:before {
-    content: "\2022"
-}
-
-.ql-editor ul[data-checked=false],
-.ql-editor ul[data-checked=true] {
-    pointer-events: none
-}
-
-.ql-editor ul[data-checked=false]>li *,
-.ql-editor ul[data-checked=true]>li * {
-    pointer-events: all
-}
-
-.ql-editor ul[data-checked=false]>li:before,
-.ql-editor ul[data-checked=true]>li:before {
-    color: #777;
-    cursor: pointer;
-    pointer-events: all
-}
-
-.ql-editor ul[data-checked=true]>li:before {
-    content: "\2611"
-}
-
-.ql-editor ul[data-checked=false]>li:before {
-    content: "\2610"
-}
-
-.ql-editor li:before {
-    display: inline-block;
-    white-space: nowrap;
-    width: 1.2em
-}
-
-.ql-editor li:not(.ql-direction-rtl):before {
-    margin-left: -1.5em;
-    margin-right: .3em;
-    text-align: right
-}
-
-.ql-editor li.ql-direction-rtl:before {
-    margin-left: .3em;
-    margin-right: -1.5em
-}
-
-.ql-editor ol li:not(.ql-direction-rtl),
-.ql-editor ul li:not(.ql-direction-rtl) {
-    padding-left: 1.5em
-}
-
-.ql-editor ol li.ql-direction-rtl,
-.ql-editor ul li.ql-direction-rtl {
-    padding-right: 1.5em
-}
-
-.ql-editor ol li {
-    counter-reset: list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;
-    counter-increment: list-0
-}
-
-.ql-editor ol li:before {
-    content: counter(list-0, decimal) ". "
-}
-
-.ql-editor ol li.ql-indent-1 {
-    counter-increment: list-1
-}
-
-.ql-editor ol li.ql-indent-1:before {
-    content: counter(list-1, lower-alpha) ". "
-}
-
-.ql-editor ol li.ql-indent-1 {
-    counter-reset: list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9
-}
-
-.ql-editor ol li.ql-indent-2 {
-    counter-increment: list-2
-}
-
-.ql-editor ol li.ql-indent-2:before {
-    content: counter(list-2, lower-roman) ". "
-}
-
-.ql-editor ol li.ql-indent-2 {
-    counter-reset: list-3 list-4 list-5 list-6 list-7 list-8 list-9
-}
-
-.ql-editor ol li.ql-indent-3 {
-    counter-increment: list-3
-}
-
-.ql-editor ol li.ql-indent-3:before {
-    content: counter(list-3, decimal) ". "
-}
-
-.ql-editor ol li.ql-indent-3 {
-    counter-reset: list-4 list-5 list-6 list-7 list-8 list-9
-}
-
-.ql-editor ol li.ql-indent-4 {
-    counter-increment: list-4
-}
-
-.ql-editor ol li.ql-indent-4:before {
-    content: counter(list-4, lower-alpha) ". "
-}
-
-.ql-editor ol li.ql-indent-4 {
-    counter-reset: list-5 list-6 list-7 list-8 list-9
-}
-
-.ql-editor ol li.ql-indent-5 {
-    counter-increment: list-5
-}
-
-.ql-editor ol li.ql-indent-5:before {
-    content: counter(list-5, lower-roman) ". "
-}
-
-.ql-editor ol li.ql-indent-5 {
-    counter-reset: list-6 list-7 list-8 list-9
-}
-
-.ql-editor ol li.ql-indent-6 {
-    counter-increment: list-6
-}
-
-.ql-editor ol li.ql-indent-6:before {
-    content: counter(list-6, decimal) ". "
-}
-
-.ql-editor ol li.ql-indent-6 {
-    counter-reset: list-7 list-8 list-9
-}
-
-.ql-editor ol li.ql-indent-7 {
-    counter-increment: list-7
-}
-
-.ql-editor ol li.ql-indent-7:before {
-    content: counter(list-7, lower-alpha) ". "
-}
-
-.ql-editor ol li.ql-indent-7 {
-    counter-reset: list-8 list-9
-}
-
-.ql-editor ol li.ql-indent-8 {
-    counter-increment: list-8
-}
-
-.ql-editor ol li.ql-indent-8:before {
-    content: counter(list-8, lower-roman) ". "
-}
-
-.ql-editor ol li.ql-indent-8 {
-    counter-reset: list-9
-}
-
-.ql-editor ol li.ql-indent-9 {
-    counter-increment: list-9
-}
-
-.ql-editor ol li.ql-indent-9:before {
-    content: counter(list-9, decimal) ". "
-}
-
-.ql-editor .ql-indent-1:not(.ql-direction-rtl) {
-    padding-left: 3em
-}
-
-.ql-editor li.ql-indent-1:not(.ql-direction-rtl) {
-    padding-left: 4.5em
-}
-
-.ql-editor .ql-indent-1.ql-direction-rtl.ql-align-right {
-    padding-right: 3em
-}
-
-.ql-editor li.ql-indent-1.ql-direction-rtl.ql-align-right {
-    padding-right: 4.5em
-}
-
-.ql-editor .ql-indent-2:not(.ql-direction-rtl) {
-    padding-left: 6em
-}
-
-.ql-editor li.ql-indent-2:not(.ql-direction-rtl) {
-    padding-left: 7.5em
-}
-
-.ql-editor .ql-indent-2.ql-direction-rtl.ql-align-right {
-    padding-right: 6em
-}
-
-.ql-editor li.ql-indent-2.ql-direction-rtl.ql-align-right {
-    padding-right: 7.5em
-}
-
-.ql-editor .ql-indent-3:not(.ql-direction-rtl) {
-    padding-left: 9em
-}
-
-.ql-editor li.ql-indent-3:not(.ql-direction-rtl) {
-    padding-left: 10.5em
-}
-
-.ql-editor .ql-indent-3.ql-direction-rtl.ql-align-right {
-    padding-right: 9em
-}
-
-.ql-editor li.ql-indent-3.ql-direction-rtl.ql-align-right {
-    padding-right: 10.5em
-}
-
-.ql-editor .ql-indent-4:not(.ql-direction-rtl) {
-    padding-left: 12em
-}
-
-.ql-editor li.ql-indent-4:not(.ql-direction-rtl) {
-    padding-left: 13.5em
-}
-
-.ql-editor .ql-indent-4.ql-direction-rtl.ql-align-right {
-    padding-right: 12em
-}
-
-.ql-editor li.ql-indent-4.ql-direction-rtl.ql-align-right {
-    padding-right: 13.5em
-}
-
-.ql-editor .ql-indent-5:not(.ql-direction-rtl) {
-    padding-left: 15em
-}
-
-.ql-editor li.ql-indent-5:not(.ql-direction-rtl) {
-    padding-left: 16.5em
-}
-
-.ql-editor .ql-indent-5.ql-direction-rtl.ql-align-right {
-    padding-right: 15em
-}
-
-.ql-editor li.ql-indent-5.ql-direction-rtl.ql-align-right {
-    padding-right: 16.5em
-}
-
-.ql-editor .ql-indent-6:not(.ql-direction-rtl) {
-    padding-left: 18em
-}
-
-.ql-editor li.ql-indent-6:not(.ql-direction-rtl) {
-    padding-left: 19.5em
-}
-
-.ql-editor .ql-indent-6.ql-direction-rtl.ql-align-right {
-    padding-right: 18em
-}
-
-.ql-editor li.ql-indent-6.ql-direction-rtl.ql-align-right {
-    padding-right: 19.5em
-}
-
-.ql-editor .ql-indent-7:not(.ql-direction-rtl) {
-    padding-left: 21em
-}
-
-.ql-editor li.ql-indent-7:not(.ql-direction-rtl) {
-    padding-left: 22.5em
-}
-
-.ql-editor .ql-indent-7.ql-direction-rtl.ql-align-right {
-    padding-right: 21em
-}
-
-.ql-editor li.ql-indent-7.ql-direction-rtl.ql-align-right {
-    padding-right: 22.5em
-}
-
-.ql-editor .ql-indent-8:not(.ql-direction-rtl) {
-    padding-left: 24em
-}
-
-.ql-editor li.ql-indent-8:not(.ql-direction-rtl) {
-    padding-left: 25.5em
-}
-
-.ql-editor .ql-indent-8.ql-direction-rtl.ql-align-right {
-    padding-right: 24em
-}
-
-.ql-editor li.ql-indent-8.ql-direction-rtl.ql-align-right {
-    padding-right: 25.5em
-}
-
-.ql-editor .ql-indent-9:not(.ql-direction-rtl) {
-    padding-left: 27em
-}
-
-.ql-editor li.ql-indent-9:not(.ql-direction-rtl) {
-    padding-left: 28.5em
-}
-
-.ql-editor .ql-indent-9.ql-direction-rtl.ql-align-right {
-    padding-right: 27em
-}
-
-.ql-editor li.ql-indent-9.ql-direction-rtl.ql-align-right {
-    padding-right: 28.5em
-}
-
-.ql-editor .ql-video {
-    display: block;
-    max-width: 100%
-}
-
-.ql-editor .ql-video.ql-align-center {
-    margin: 0 auto
-}
-
-.ql-editor .ql-video.ql-align-right {
-    margin: 0 0 0 auto
-}
-
-.ql-editor .ql-bg-black {
-    background-color: #000
-}
-
-.ql-editor .ql-bg-red {
-    background-color: #e60000
-}
-
-.ql-editor .ql-bg-orange {
-    background-color: #f90
-}
-
-.ql-editor .ql-bg-yellow {
-    background-color: #ff0
-}
-
-.ql-editor .ql-bg-green {
-    background-color: #008a00
-}
-
-.ql-editor .ql-bg-blue {
-    background-color: #06c
-}
-
-.ql-editor .ql-bg-purple {
-    background-color: #93f
-}
-
-.ql-editor .ql-color-white {
-    color: #fff
-}
-
-.ql-editor .ql-color-red {
-    color: #e60000
-}
-
-.ql-editor .ql-color-orange {
-    color: #f90
-}
-
-.ql-editor .ql-color-yellow {
-    color: #ff0
-}
-
-.ql-editor .ql-color-green {
-    color: #008a00
-}
-
-.ql-editor .ql-color-blue {
-    color: #06c
-}
-
-.ql-editor .ql-color-purple {
-    color: #93f
-}
-
-.ql-editor .ql-font-serif {
-    font-family: Georgia, Times New Roman, serif
-}
-
-.ql-editor .ql-font-monospace {
-    font-family: Monaco, Courier New, monospace
-}
-
-.ql-editor .ql-size-small {
-    font-size: .75em
-}
-
-.ql-editor .ql-size-large {
-    font-size: 1.5em
-}
-
-.ql-editor .ql-size-huge {
-    font-size: 2.5em
-}
-
-.ql-editor .ql-direction-rtl {
-    direction: rtl;
-    text-align: inherit
-}
-
-.ql-editor .ql-align-center {
-    text-align: center
-}
-
-.ql-editor .ql-align-justify {
-    text-align: justify
-}
-
-.ql-editor .ql-align-right {
-    text-align: right
-}
-
-.ql-editor.ql-blank:before {
-    color: rgba(0, 0, 0, .6);
-    content: attr(data-placeholder);
-    font-style: italic;
-    left: 15px;
-    pointer-events: none;
-    position: absolute;
-    right: 15px
-}
-
-.ql-bubble.ql-toolbar:after,
-.ql-bubble .ql-toolbar:after {
-    clear: both;
-    content: "";
-    display: table
-}
-
-.ql-bubble.ql-toolbar button,
-.ql-bubble .ql-toolbar button {
-    background: none;
-    border: none;
-    cursor: pointer;
-    display: inline-block;
-    float: left;
-    height: 24px;
-    padding: 3px 5px;
-    width: 28px
-}
-
-.ql-bubble.ql-toolbar button svg,
-.ql-bubble .ql-toolbar button svg {
-    float: left;
-    height: 100%
-}
-
-.ql-bubble.ql-toolbar button:active:hover,
-.ql-bubble .ql-toolbar button:active:hover {
-    outline: none
-}
-
-.ql-bubble.ql-toolbar input.ql-image[type=file],
-.ql-bubble .ql-toolbar input.ql-image[type=file] {
-    display: none
-}
-
-.ql-bubble.ql-toolbar .ql-picker-item.ql-selected,
-.ql-bubble .ql-toolbar .ql-picker-item.ql-selected,
-.ql-bubble.ql-toolbar .ql-picker-item:hover,
-.ql-bubble .ql-toolbar .ql-picker-item:hover,
-.ql-bubble.ql-toolbar .ql-picker-label.ql-active,
-.ql-bubble .ql-toolbar .ql-picker-label.ql-active,
-.ql-bubble.ql-toolbar .ql-picker-label:hover,
-.ql-bubble .ql-toolbar .ql-picker-label:hover,
-.ql-bubble.ql-toolbar button.ql-active,
-.ql-bubble .ql-toolbar button.ql-active,
-.ql-bubble.ql-toolbar button:focus,
-.ql-bubble .ql-toolbar button:focus,
-.ql-bubble.ql-toolbar button:hover,
-.ql-bubble .ql-toolbar button:hover {
-    color: #fff
-}
-
-.ql-bubble.ql-toolbar .ql-picker-item.ql-selected .ql-fill,
-.ql-bubble .ql-toolbar .ql-picker-item.ql-selected .ql-fill,
-.ql-bubble.ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill,
-.ql-bubble .ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill,
-.ql-bubble.ql-toolbar .ql-picker-item:hover .ql-fill,
-.ql-bubble .ql-toolbar .ql-picker-item:hover .ql-fill,
-.ql-bubble.ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill,
-.ql-bubble .ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill,
-.ql-bubble.ql-toolbar .ql-picker-label.ql-active .ql-fill,
-.ql-bubble .ql-toolbar .ql-picker-label.ql-active .ql-fill,
-.ql-bubble.ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill,
-.ql-bubble .ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill,
-.ql-bubble.ql-toolbar .ql-picker-label:hover .ql-fill,
-.ql-bubble .ql-toolbar .ql-picker-label:hover .ql-fill,
-.ql-bubble.ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill,
-.ql-bubble .ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill,
-.ql-bubble.ql-toolbar button.ql-active .ql-fill,
-.ql-bubble .ql-toolbar button.ql-active .ql-fill,
-.ql-bubble.ql-toolbar button.ql-active .ql-stroke.ql-fill,
-.ql-bubble .ql-toolbar button.ql-active .ql-stroke.ql-fill,
-.ql-bubble.ql-toolbar button:focus .ql-fill,
-.ql-bubble .ql-toolbar button:focus .ql-fill,
-.ql-bubble.ql-toolbar button:focus .ql-stroke.ql-fill,
-.ql-bubble .ql-toolbar button:focus .ql-stroke.ql-fill,
-.ql-bubble.ql-toolbar button:hover .ql-fill,
-.ql-bubble .ql-toolbar button:hover .ql-fill,
-.ql-bubble.ql-toolbar button:hover .ql-stroke.ql-fill,
-.ql-bubble .ql-toolbar button:hover .ql-stroke.ql-fill {
-    fill: #fff
-}
-
-.ql-bubble.ql-toolbar .ql-picker-item.ql-selected .ql-stroke,
-.ql-bubble .ql-toolbar .ql-picker-item.ql-selected .ql-stroke,
-.ql-bubble.ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter,
-.ql-bubble .ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter,
-.ql-bubble.ql-toolbar .ql-picker-item:hover .ql-stroke,
-.ql-bubble .ql-toolbar .ql-picker-item:hover .ql-stroke,
-.ql-bubble.ql-toolbar .ql-picker-item:hover .ql-stroke-miter,
-.ql-bubble .ql-toolbar .ql-picker-item:hover .ql-stroke-miter,
-.ql-bubble.ql-toolbar .ql-picker-label.ql-active .ql-stroke,
-.ql-bubble .ql-toolbar .ql-picker-label.ql-active .ql-stroke,
-.ql-bubble.ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter,
-.ql-bubble .ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter,
-.ql-bubble.ql-toolbar .ql-picker-label:hover .ql-stroke,
-.ql-bubble .ql-toolbar .ql-picker-label:hover .ql-stroke,
-.ql-bubble.ql-toolbar .ql-picker-label:hover .ql-stroke-miter,
-.ql-bubble .ql-toolbar .ql-picker-label:hover .ql-stroke-miter,
-.ql-bubble.ql-toolbar button.ql-active .ql-stroke,
-.ql-bubble .ql-toolbar button.ql-active .ql-stroke,
-.ql-bubble.ql-toolbar button.ql-active .ql-stroke-miter,
-.ql-bubble .ql-toolbar button.ql-active .ql-stroke-miter,
-.ql-bubble.ql-toolbar button:focus .ql-stroke,
-.ql-bubble .ql-toolbar button:focus .ql-stroke,
-.ql-bubble.ql-toolbar button:focus .ql-stroke-miter,
-.ql-bubble .ql-toolbar button:focus .ql-stroke-miter,
-.ql-bubble.ql-toolbar button:hover .ql-stroke,
-.ql-bubble .ql-toolbar button:hover .ql-stroke,
-.ql-bubble.ql-toolbar button:hover .ql-stroke-miter,
-.ql-bubble .ql-toolbar button:hover .ql-stroke-miter {
-    stroke: #fff
-}
-
-@media (pointer:coarse) {
-
-    .ql-bubble.ql-toolbar button:hover:not(.ql-active),
-    .ql-bubble .ql-toolbar button:hover:not(.ql-active) {
-        color: #ccc
-    }
-
-    .ql-bubble.ql-toolbar button:hover:not(.ql-active) .ql-fill,
-    .ql-bubble .ql-toolbar button:hover:not(.ql-active) .ql-fill,
-    .ql-bubble.ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill,
-    .ql-bubble .ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill {
-        fill: #ccc
-    }
-
-    .ql-bubble.ql-toolbar button:hover:not(.ql-active) .ql-stroke,
-    .ql-bubble .ql-toolbar button:hover:not(.ql-active) .ql-stroke,
-    .ql-bubble.ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter,
-    .ql-bubble .ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter {
-        stroke: #ccc
-    }
-}
-
-.ql-bubble,
-.ql-bubble * {
-    -webkit-box-sizing: border-box;
-    box-sizing: border-box
-}
-
-.ql-bubble .ql-hidden {
-    display: none
-}
-
-.ql-bubble .ql-out-bottom,
-.ql-bubble .ql-out-top {
-    visibility: hidden
-}
-
-.ql-bubble .ql-tooltip {
-    position: absolute;
-    -webkit-transform: translateY(10px);
-    transform: translateY(10px)
-}
-
-.ql-bubble .ql-tooltip a {
-    cursor: pointer;
-    text-decoration: none
-}
-
-.ql-bubble .ql-tooltip.ql-flip {
-    -webkit-transform: translateY(-10px);
-    transform: translateY(-10px)
-}
-
-.ql-bubble .ql-formats {
-    display: inline-block;
-    vertical-align: middle
-}
-
-.ql-bubble .ql-formats:after {
-    clear: both;
-    content: "";
-    display: table
-}
-
-.ql-bubble .ql-stroke {
-    fill: none;
-    stroke: #ccc;
-    stroke-linecap: round;
-    stroke-linejoin: round;
-    stroke-width: 2
-}
-
-.ql-bubble .ql-stroke-miter {
-    fill: none;
-    stroke: #ccc;
-    stroke-miterlimit: 10;
-    stroke-width: 2
-}
-
-.ql-bubble .ql-fill,
-.ql-bubble .ql-stroke.ql-fill {
-    fill: #ccc
-}
-
-.ql-bubble .ql-empty {
-    fill: none
-}
-
-.ql-bubble .ql-even {
-    fill-rule: evenodd
-}
-
-.ql-bubble .ql-stroke.ql-thin,
-.ql-bubble .ql-thin {
-    stroke-width: 1
-}
-
-.ql-bubble .ql-transparent {
-    opacity: .4
-}
-
-.ql-bubble .ql-direction svg:last-child {
-    display: none
-}
-
-.ql-bubble .ql-direction.ql-active svg:last-child {
-    display: inline
-}
-
-.ql-bubble .ql-direction.ql-active svg:first-child {
-    display: none
-}
-
-.ql-bubble .ql-editor h1 {
-    font-size: 2em
-}
-
-.ql-bubble .ql-editor h2 {
-    font-size: 1.5em
-}
-
-.ql-bubble .ql-editor h3 {
-    font-size: 1.17em
-}
-
-.ql-bubble .ql-editor h4 {
-    font-size: 1em
-}
-
-.ql-bubble .ql-editor h5 {
-    font-size: .83em
-}
-
-.ql-bubble .ql-editor h6 {
-    font-size: .67em
-}
-
-.ql-bubble .ql-editor a {
-    text-decoration: underline
-}
-
-.ql-bubble .ql-editor blockquote {
-    border-left: 4px solid #ccc;
-    margin-bottom: 5px;
-    margin-top: 5px;
-    padding-left: 16px
-}
-
-.ql-bubble .ql-editor code,
-.ql-bubble .ql-editor pre {
-    background-color: #f0f0f0;
-    border-radius: 3px
-}
-
-.ql-bubble .ql-editor pre {
-    white-space: pre-wrap;
-    margin-bottom: 5px;
-    margin-top: 5px;
-    padding: 5px 10px
-}
-
-.ql-bubble .ql-editor code {
-    font-size: 85%;
-    padding: 2px 4px
-}
-
-.ql-bubble .ql-editor pre.ql-syntax {
-    background-color: #23241f;
-    color: #f8f8f2;
-    overflow: visible
-}
-
-.ql-bubble .ql-editor img {
-    max-width: 100%
-}
-
-.ql-bubble .ql-picker {
-    color: #ccc;
-    display: inline-block;
-    float: left;
-    font-size: 14px;
-    font-weight: 500;
-    height: 24px;
-    position: relative;
-    vertical-align: middle
-}
-
-.ql-bubble .ql-picker-label {
-    cursor: pointer;
-    display: inline-block;
-    height: 100%;
-    padding-left: 8px;
-    padding-right: 2px;
-    position: relative;
-    width: 100%
-}
-
-.ql-bubble .ql-picker-label:before {
-    display: inline-block;
-    line-height: 22px
-}
-
-.ql-bubble .ql-picker-options {
-    background-color: #444;
-    display: none;
-    min-width: 100%;
-    padding: 4px 8px;
-    position: absolute;
-    white-space: nowrap
-}
-
-.ql-bubble .ql-picker-options .ql-picker-item {
-    cursor: pointer;
-    display: block;
-    padding-bottom: 5px;
-    padding-top: 5px
-}
-
-.ql-bubble .ql-picker.ql-expanded .ql-picker-label {
-    color: #777;
-    z-index: 2
-}
-
-.ql-bubble .ql-picker.ql-expanded .ql-picker-label .ql-fill {
-    fill: #777
-}
-
-.ql-bubble .ql-picker.ql-expanded .ql-picker-label .ql-stroke {
-    stroke: #777
-}
-
-.ql-bubble .ql-picker.ql-expanded .ql-picker-options {
-    display: block;
-    margin-top: -1px;
-    top: 100%;
-    z-index: 1
-}
-
-.ql-bubble .ql-color-picker,
-.ql-bubble .ql-icon-picker {
-    width: 28px
-}
-
-.ql-bubble .ql-color-picker .ql-picker-label,
-.ql-bubble .ql-icon-picker .ql-picker-label {
-    padding: 2px 4px
-}
-
-.ql-bubble .ql-color-picker .ql-picker-label svg,
-.ql-bubble .ql-icon-picker .ql-picker-label svg {
-    right: 4px
-}
-
-.ql-bubble .ql-icon-picker .ql-picker-options {
-    padding: 4px 0
-}
-
-.ql-bubble .ql-icon-picker .ql-picker-item {
-    height: 24px;
-    width: 24px;
-    padding: 2px 4px
-}
-
-.ql-bubble .ql-color-picker .ql-picker-options {
-    padding: 3px 5px;
-    width: 152px
-}
-
-.ql-bubble .ql-color-picker .ql-picker-item {
-    border: 1px solid transparent;
-    float: left;
-    height: 16px;
-    margin: 2px;
-    padding: 0;
-    width: 16px
-}
-
-.ql-bubble .ql-picker:not(.ql-color-picker):not(.ql-icon-picker) svg {
-    position: absolute;
-    margin-top: -9px;
-    right: 0;
-    top: 50%;
-    width: 18px
-}
-
-.ql-bubble .ql-picker.ql-font .ql-picker-item[data-label]:not([data-label=""]):before,
-.ql-bubble .ql-picker.ql-font .ql-picker-label[data-label]:not([data-label=""]):before,
-.ql-bubble .ql-picker.ql-header .ql-picker-item[data-label]:not([data-label=""]):before,
-.ql-bubble .ql-picker.ql-header .ql-picker-label[data-label]:not([data-label=""]):before,
-.ql-bubble .ql-picker.ql-size .ql-picker-item[data-label]:not([data-label=""]):before,
-.ql-bubble .ql-picker.ql-size .ql-picker-label[data-label]:not([data-label=""]):before {
-    content: attr(data-label)
-}
-
-.ql-bubble .ql-picker.ql-header {
-    width: 98px
-}
-
-.ql-bubble .ql-picker.ql-header .ql-picker-item:before,
-.ql-bubble .ql-picker.ql-header .ql-picker-label:before {
-    content: "Normal"
-}
-
-.ql-bubble .ql-picker.ql-header .ql-picker-item[data-value="1"]:before,
-.ql-bubble .ql-picker.ql-header .ql-picker-label[data-value="1"]:before {
-    content: "Heading 1"
-}
-
-.ql-bubble .ql-picker.ql-header .ql-picker-item[data-value="2"]:before,
-.ql-bubble .ql-picker.ql-header .ql-picker-label[data-value="2"]:before {
-    content: "Heading 2"
-}
-
-.ql-bubble .ql-picker.ql-header .ql-picker-item[data-value="3"]:before,
-.ql-bubble .ql-picker.ql-header .ql-picker-label[data-value="3"]:before {
-    content: "Heading 3"
-}
-
-.ql-bubble .ql-picker.ql-header .ql-picker-item[data-value="4"]:before,
-.ql-bubble .ql-picker.ql-header .ql-picker-label[data-value="4"]:before {
-    content: "Heading 4"
-}
-
-.ql-bubble .ql-picker.ql-header .ql-picker-item[data-value="5"]:before,
-.ql-bubble .ql-picker.ql-header .ql-picker-label[data-value="5"]:before {
-    content: "Heading 5"
-}
-
-.ql-bubble .ql-picker.ql-header .ql-picker-item[data-value="6"]:before,
-.ql-bubble .ql-picker.ql-header .ql-picker-label[data-value="6"]:before {
-    content: "Heading 6"
-}
-
-.ql-bubble .ql-picker.ql-header .ql-picker-item[data-value="1"]:before {
-    font-size: 2em
-}
-
-.ql-bubble .ql-picker.ql-header .ql-picker-item[data-value="2"]:before {
-    font-size: 1.5em
-}
-
-.ql-bubble .ql-picker.ql-header .ql-picker-item[data-value="3"]:before {
-    font-size: 1.17em
-}
-
-.ql-bubble .ql-picker.ql-header .ql-picker-item[data-value="4"]:before {
-    font-size: 1em
-}
-
-.ql-bubble .ql-picker.ql-header .ql-picker-item[data-value="5"]:before {
-    font-size: .83em
-}
-
-.ql-bubble .ql-picker.ql-header .ql-picker-item[data-value="6"]:before {
-    font-size: .67em
-}
-
-.ql-bubble .ql-picker.ql-font {
-    width: 108px
-}
-
-.ql-bubble .ql-picker.ql-font .ql-picker-item:before,
-.ql-bubble .ql-picker.ql-font .ql-picker-label:before {
-    content: "Sans Serif"
-}
-
-.ql-bubble .ql-picker.ql-font .ql-picker-item[data-value=serif]:before,
-.ql-bubble .ql-picker.ql-font .ql-picker-label[data-value=serif]:before {
-    content: "Serif"
-}
-
-.ql-bubble .ql-picker.ql-font .ql-picker-item[data-value=monospace]:before,
-.ql-bubble .ql-picker.ql-font .ql-picker-label[data-value=monospace]:before {
-    content: "Monospace"
-}
-
-.ql-bubble .ql-picker.ql-font .ql-picker-item[data-value=serif]:before {
-    font-family: Georgia, Times New Roman, serif
-}
-
-.ql-bubble .ql-picker.ql-font .ql-picker-item[data-value=monospace]:before {
-    font-family: Monaco, Courier New, monospace
-}
-
-.ql-bubble .ql-picker.ql-size {
-    width: 98px
-}
-
-.ql-bubble .ql-picker.ql-size .ql-picker-item:before,
-.ql-bubble .ql-picker.ql-size .ql-picker-label:before {
-    content: "Normal"
-}
-
-.ql-bubble .ql-picker.ql-size .ql-picker-item[data-value=small]:before,
-.ql-bubble .ql-picker.ql-size .ql-picker-label[data-value=small]:before {
-    content: "Small"
-}
-
-.ql-bubble .ql-picker.ql-size .ql-picker-item[data-value=large]:before,
-.ql-bubble .ql-picker.ql-size .ql-picker-label[data-value=large]:before {
-    content: "Large"
-}
-
-.ql-bubble .ql-picker.ql-size .ql-picker-item[data-value=huge]:before,
-.ql-bubble .ql-picker.ql-size .ql-picker-label[data-value=huge]:before {
-    content: "Huge"
-}
-
-.ql-bubble .ql-picker.ql-size .ql-picker-item[data-value=small]:before {
-    font-size: 10px
-}
-
-.ql-bubble .ql-picker.ql-size .ql-picker-item[data-value=large]:before {
-    font-size: 18px
-}
-
-.ql-bubble .ql-picker.ql-size .ql-picker-item[data-value=huge]:before {
-    font-size: 32px
-}
-
-.ql-bubble .ql-color-picker.ql-background .ql-picker-item {
-    background-color: #fff
-}
-
-.ql-bubble .ql-color-picker.ql-color .ql-picker-item {
-    background-color: #000
-}
-
-.ql-bubble .ql-toolbar .ql-formats {
-    margin: 8px 12px 8px 0
-}
-
-.ql-bubble .ql-toolbar .ql-formats:first-child {
-    margin-left: 12px
-}
-
-.ql-bubble .ql-color-picker svg {
-    margin: 1px
-}
-
-.ql-bubble .ql-color-picker .ql-picker-item.ql-selected,
-.ql-bubble .ql-color-picker .ql-picker-item:hover {
-    border-color: #fff
-}
-
-.ql-bubble .ql-tooltip {
-    background-color: #444;
-    border-radius: 25px;
-    color: #fff
-}
-
-.ql-bubble .ql-tooltip-arrow {
-    border-left: 6px solid transparent;
-    border-right: 6px solid transparent;
-    content: " ";
-    display: block;
-    left: 50%;
-    margin-left: -6px;
-    position: absolute
-}
-
-.ql-bubble .ql-tooltip:not(.ql-flip) .ql-tooltip-arrow {
-    border-bottom: 6px solid #444;
-    top: -6px
-}
-
-.ql-bubble .ql-tooltip.ql-flip .ql-tooltip-arrow {
-    border-top: 6px solid #444;
-    bottom: -6px
-}
-
-.ql-bubble .ql-tooltip.ql-editing .ql-tooltip-editor {
-    display: block
-}
-
-.ql-bubble .ql-tooltip.ql-editing .ql-formats {
-    visibility: hidden
-}
-
-.ql-bubble .ql-tooltip-editor {
-    display: none
-}
-
-.ql-bubble .ql-tooltip-editor input[type=text] {
-    background: transparent;
-    border: none;
-    color: #fff;
-    font-size: 13px;
-    height: 100%;
-    outline: none;
-    padding: 10px 20px;
-    position: absolute;
-    width: 100%
-}
-
-.ql-bubble .ql-tooltip-editor a {
-    top: 10px;
-    position: absolute;
-    right: 20px
-}
-
-.ql-bubble .ql-tooltip-editor a:before {
-    color: #ccc;
-    content: "\D7";
-    font-size: 16px;
-    font-weight: 700
-}
-
-.ql-container.ql-bubble:not(.ql-disabled) a {
-    position: relative;
-    white-space: nowrap
-}
-
-.ql-container.ql-bubble:not(.ql-disabled) a:before {
-    background-color: #444;
-    border-radius: 15px;
-    top: -5px;
-    font-size: 12px;
-    color: #fff;
-    content: attr(href);
-    font-weight: 400;
-    overflow: hidden;
-    padding: 5px 15px;
-    text-decoration: none;
-    z-index: 1
-}
-
-.ql-container.ql-bubble:not(.ql-disabled) a:after {
-    border-top: 6px solid #444;
-    border-left: 6px solid transparent;
-    border-right: 6px solid transparent;
-    top: 0;
-    content: " ";
-    height: 0;
-    width: 0
-}
-
-.ql-container.ql-bubble:not(.ql-disabled) a:after,
-.ql-container.ql-bubble:not(.ql-disabled) a:before {
-    left: 0;
-    margin-left: 50%;
-    position: absolute;
-    -webkit-transform: translate(-50%, -100%);
-    transform: translate(-50%, -100%);
-    -webkit-transition: visibility 0s ease .2s;
-    transition: visibility 0s ease .2s;
-    visibility: hidden
-}
-
-.ql-container.ql-bubble:not(.ql-disabled) a:hover:after,
-.ql-container.ql-bubble:not(.ql-disabled) a:hover:before {
-    visibility: visible
-}

+ 6 - 0
src/assets/commonLess/common.less

@@ -1,3 +1,9 @@
+:root {
+    --main-color: #2DC7AA; // 主色
+    --main-bg-color: #F3F4F8; // 主背景色
+    --font-main-color: #333333; //
+    --font-second-color: #999999; //
+}
 
 // 阴影
 .m-shadow {

+ 18 - 18
src/assets/commonLess/variable.less

@@ -1,21 +1,21 @@
-// 主色
-@mColor: #14928A;
-// 字体主色
-@mFontColor: #444444;
-// 字体次色
-@sFontColor: #AAAAAA;
-// 字体颜色
-@tFontColor: #777777;
-// 白色
-@whiteColor: #FFFFFF;
-// 黑色
-@blackColor: #000000;
-// 橙色
-@orangeColor: #F97215;
-// 红色
-@redColor: #F85043;
-// 基本背景色
-@bgColor: #F3F4F8;
+// // 主色
+// @mColor: #14928A;
+// // 字体主色
+// @mFontColor: #444444;
+// // 字体次色
+// @sFontColor: #AAAAAA;
+// // 字体颜色
+// @tFontColor: #777777;
+// // 白色
+// @whiteColor: #FFFFFF;
+// // 黑色
+// @blackColor: #000000;
+// // 橙色
+// @orangeColor: #F97215;
+// // 红色
+// @redColor: #F85043;
+// // 基本背景色
+// @bgColor: #F3F4F8;
 
 
 

+ 3 - 3
src/components/MButton.vue

@@ -6,7 +6,7 @@
 
 <script>
 export default {
-    name: "mstep",
+    name: "mbutton",
     props: {
         text: String
     },
@@ -27,8 +27,8 @@ export default {
     margin: .35rem 0 .2rem;
 }
 .van-button--primary {
-    background-color: #2DC7AA;
-    border: 1px solid #2DC7AA;
+    background-color: var(--main-color);
+    border: 1px solid var(--main-color);
     color: #FFFFFF;
     font-size: .18rem;
     height: .5rem;

+ 4 - 4
src/components/MHeader.vue

@@ -93,16 +93,16 @@ export default {
     text-align: center;
     user-select: none;
     color: #1A1A1A;
-	background: @whiteColor;
+	background: #ffffff;
     &.fixed {
         position: fixed;
         z-index: 99;
     }
 	&.headerColor {
-        background-color: @mColor;
-        color: @whiteColor;
+        background-color: #14928A;
+        color: #ffffff;
 		.m-nav-bar__title {
-			color: @whiteColor;
+			color: #ffffff;
 			font-size: .18rem;
 		}
 	}

+ 1 - 1
src/components/MStep.vue

@@ -129,7 +129,7 @@ export default {
             color: #808080;
             text-align: center;
             &.active {
-                color: #2DC7AA;
+                color: var(--main-color);
             }
         }
     }

+ 3 - 5
src/views/LevelMusic.vue

@@ -40,13 +40,11 @@ export default {
 }
 </script>
 <style lang="less" scoped>
-@import url("../assets/commonLess/variable.less");
-
 .level-music {
     height: 100vh;
     overflow-y: auto;
     overflow-x: hidden;
-    background-color: #F3F4F8;
+    background-color: var(--main-bg-color);
 }
 
 .level-banner {
@@ -73,14 +71,14 @@ export default {
 		}
 
 		h3 {
-			color: #333;
+			color: var(--font-main-color);
 			font-size: .18rem;
 			padding-bottom: .05rem;
 		}
 		p {
 			display: flex;
 			align-items: center;
-			color: #999;
+			color: var(--font-second-color);
 			font-size: .14rem;
 		}
 	}

+ 1 - 2
src/views/signup/SignUp.vue

@@ -32,12 +32,11 @@ export default {
 }
 </script>
 <style lang="less" scoped>
-@import url("../../assets/commonLess/variable.less");
 .SignUp {
     height: 100vh;
     overflow-y: auto;
     overflow-x: hidden;
-    background-color: @whiteColor;
+    background-color: #fff;
 }
 .container {
 	min-height: calc(100vh - .44rem);

+ 7 - 9
src/views/signup/SignUpAccount.vue

@@ -1,5 +1,5 @@
 <template>
-    <div class="signupAccount">
+    <div class="signUpAccount">
         <m-header />
         <m-step />
 
@@ -27,7 +27,7 @@ import MStep from '@/components/MStep'
 import MButton from '@/components/MButton'
 // import { browser } from '@/common/common'
 export default {
-    name: 'signupAccount',
+    name: 'signUpAccount',
 	components: { MHeader, MStep, MButton },
     data () {
         return {
@@ -65,16 +65,14 @@ export default {
 }
 </script>
 <style lang="less" scoped>
-@import url("../../assets/commonLess/variable.less");
-
-.signupAccount {
+.signUpAccount {
     height: 100vh;
     overflow-y: auto;
     overflow-x: hidden;
-    background-color: #F3F4F8;
+    background-color: var(--main-bg-color);
     .title {
         font-size: .16rem;
-        color: #999999;
+        color: var(--font-second-color);
         padding: .12rem .16rem;
     }
     /deep/.van-cell {
@@ -82,7 +80,7 @@ export default {
     }
     /deep/.van-field__label {
         font-size: .17rem;
-        color: #333;
+        color: var(--font-main-color);
         width: 1.15rem;
     }
     /deep/.van-field__body {
@@ -91,7 +89,7 @@ export default {
 
     .codeText {
         font-size: .16rem;
-        color: #2DC7AA;
+        color: var(--main-color);
     }
 }
 

+ 8 - 10
src/views/signup/SignUpBaseInfo.vue

@@ -12,8 +12,8 @@
             <van-field name="radio" label="性别">
                 <template #input>
                     <van-radio-group v-model="form.sex" direction="horizontal">
-                        <van-radio checked-color="#2DC7AA" :name="1">男</van-radio>
-                        <van-radio checked-color="#2DC7AA" :name="0">女</van-radio>
+                        <van-radio checked-color="var(--main-color)" :name="1">男</van-radio>
+                        <van-radio checked-color="var(--main-color)" :name="0">女</van-radio>
                     </van-radio-group>
                 </template>
             </van-field>
@@ -88,16 +88,14 @@ export default {
 }
 </script>
 <style lang="less" scoped>
-@import url("../../assets/commonLess/variable.less");
-
 .signupBaseInfo {
     height: 100vh;
     overflow-y: auto;
     overflow-x: hidden;
-    background-color: #F3F4F8;
+    background-color: var(--main-bg-color);
     .title {
         font-size: .16rem;
-        color: #999999;
+        color: var(--font-second-color);
         padding: .12rem .16rem;
     }
     /deep/.van-cell {
@@ -105,7 +103,7 @@ export default {
     }
     /deep/.van-field__label {
         font-size: .17rem;
-        color: #333;
+        color: var(--font-main-color);
         width: 1.15rem;
     }
     /deep/.van-field__body {
@@ -114,7 +112,7 @@ export default {
 
     .codeText {
         font-size: .16rem;
-        color: #2DC7AA;
+        color: var(--main-color);
     }
 }
 
@@ -135,7 +133,7 @@ export default {
     .upload-tips {
         padding-top: .18rem;
         font-size: .14rem;
-        color: #999999;
+        color: var(--font-second-color);
     }
     .icon-upload-add {
         display: inline-block;
@@ -147,7 +145,7 @@ export default {
     p {
         margin-top: -.04rem;
         font-size: .16rem;
-        color: #2DC7AA;
+        color: var(--main-color);
     }
 }
 /deep/.van-uploader__preview {

+ 5 - 7
src/views/signup/SignUpCard.vue

@@ -33,7 +33,7 @@
         </div>
 
         <div class="btn-group">
-            <van-button color="#2DC7AA" size="large" block round>下载APP</van-button>
+            <van-button color="var(--main-color)" size="large" block round>下载APP</van-button>
         </div>
     </div>
 </template>
@@ -65,24 +65,22 @@ export default {
 }
 </script>
 <style lang="less" scoped>
-@import url("../../assets/commonLess/variable.less");
-
 .signupCard {
     height: 100vh;
     overflow-y: auto;
     overflow-x: hidden;
-    background-color: #F3F4F8;
+    background-color: var(--main-bg-color);
     /deep/.van-cell {
         padding: .04rem 0;
         font-size: .14rem;
-        color: #1A1A1A;
+        color: var(--font-main-color);
     }
     /deep/.van-cell__title {
         width: .7rem;
         flex: none;
     }
     /deep/.van-cell__value {
-        color: #1A1A1A;
+        color: var(--font-main-color);
         text-align: left;
         p {
             padding-bottom: .15rem;
@@ -119,7 +117,7 @@ export default {
             content: ' ';
             width: 96%;
             border-radius: .04rem;
-            border: 1px solid #2DC7AA;
+            border: 1px solid var(--main-color);
             height: 96%;
         }
     }

+ 5 - 7
src/views/signup/SignUpCertificate.vue

@@ -7,8 +7,8 @@
             <van-field name="radio" label="邮寄证书">
                 <template #input>
                     <van-radio-group v-model="form.sex" direction="horizontal">
-                        <van-radio checked-color="#2DC7AA" :name="1">是</van-radio>
-                        <van-radio checked-color="#2DC7AA" :name="0">否</van-radio>
+                        <van-radio checked-color="var(--main-color)" :name="1">是</van-radio>
+                        <van-radio checked-color="var(--main-color)" :name="0">否</van-radio>
                     </van-radio-group>
                 </template>
             </van-field>
@@ -67,13 +67,11 @@ export default {
 }
 </script>
 <style lang="less" scoped>
-@import url("../../assets/commonLess/variable.less");
-
 .signupCertificate {
     height: 100vh;
     overflow-y: auto;
     overflow-x: hidden;
-    background-color: #F3F4F8;
+    background-color: var(--main-bg-color);
     /deep/.van-form {
         margin-top: .15rem;
     }
@@ -82,7 +80,7 @@ export default {
     }
     /deep/.van-field__label {
         font-size: .17rem;
-        color: #333;
+        color: var(--font-main-color);
         width: 1.15rem;
     }
     /deep/.van-field__body {
@@ -90,7 +88,7 @@ export default {
     }
     .notice {
         font-size: .13rem;
-        color: #999999;
+        color: var(--font-second-color);
         padding: .1rem .16rem;
         line-height: .18rem;
     }

+ 9 - 11
src/views/signup/SignUpLevel.vue

@@ -31,8 +31,8 @@
             <van-field name="phone" label="联系方式" placeholder="请输入联系方式" />
             <!-- <m-button class="stepBtn" text="下一步" native-type="submit" /> -->
             <div class="m-btn-group">
-                <van-button round color="#2DC7AA" style="background-color: transparent" plain>上一步</van-button>
-                <van-button round color="#2DC7AA">确认报名</van-button>
+                <van-button round color="var(--main-color)" style="background-color: transparent" plain>上一步</van-button>
+                <van-button round color="var(--main-color)">确认报名</van-button>
             </div>
         </van-form>
 
@@ -108,16 +108,14 @@ export default {
 }
 </script>
 <style lang="less" scoped>
-@import url("../../assets/commonLess/variable.less");
-
 .signupLevel {
     height: 100vh;
     overflow-y: auto;
     overflow-x: hidden;
-    background-color: #F3F4F8;
+    background-color: var(--main-bg-color);
     .title {
         font-size: .16rem;
-        color: #999999;
+        color: var(--font-second-color);
         padding: .12rem .16rem;
     }
     /deep/.van-cell {
@@ -125,7 +123,7 @@ export default {
     }
     /deep/.van-field__label {
         font-size: .17rem;
-        color: #333;
+        color: var(--font-main-color);
         width: 1.15rem;
     }
     /deep/.van-field__body {
@@ -134,7 +132,7 @@ export default {
 
     .codeText {
         font-size: .16rem;
-        color: #2DC7AA;
+        color: var(--main-color);
     }
 }
 
@@ -147,7 +145,7 @@ export default {
     .title {
         font-size: 18px;
         font-weight: 500;
-        color: #333333;
+        color: var(--font-main-color);
         padding: .2rem 0 .24rem;
     }
     .song-upload {
@@ -175,7 +173,7 @@ export default {
     .popup-group {
         width: 100%;
         display: flex;
-        color: #2DC7AA;
+        color: var(--main-color);
         background-color: #F0F0F0;
         font-size: .18rem;
         span {
@@ -184,7 +182,7 @@ export default {
         }
         .popup-sure {
             color: #ffffff;
-            background-color: #2DC7AA;
+            background-color: var(--main-color);
         }
     }
 }

+ 8 - 10
src/views/signup/SignUpPayment.vue

@@ -41,7 +41,7 @@
                 <span>¥</span>480.00
             </div>
             <div class="pay-btn">
-                <van-button color="#2DC7AA" round>确认并支付</van-button>
+                <van-button color="var(--main-color)" round>确认并支付</van-button>
             </div>
         </div>
     </div>
@@ -90,30 +90,28 @@ export default {
 }
 </script>
 <style lang="less" scoped>
-@import url("../../assets/commonLess/variable.less");
-
 .signupPayment {
     height: 100vh;
     overflow-y: auto;
     overflow-x: hidden;
-    background-color: #F3F4F8;
+    background-color: var(--main-bg-color);
     .title {
         font-size: .16rem;
-        color: #999999;
+        color: var(--font-second-color);
         padding: .12rem .16rem;
     }
     /deep/.van-cell {
         padding: .1rem .16rem;
         font-size: .15rem;
-        color: #333333;
+        color: var(--font-main-color);
     }
     /deep/.van-cell__title {
-        color: #1A1A1A;
         width: .9rem;
         flex: none;
     }
     /deep/.van-cell__value {
         text-align: left;
+        color: var(--font-main-color);
         p {
             padding-bottom: .15rem;
             &:last-child{
@@ -131,7 +129,7 @@ export default {
 
     .notice {
         font-size: .13rem;
-        color: #999999;
+        color: var(--font-second-color);
         padding: .2rem .16rem;
         line-height: .18rem;
         margin-bottom: .55rem;
@@ -191,7 +189,7 @@ export default {
     .popup-group {
         width: 100%;
         display: flex;
-        color: #2DC7AA;
+        color: var(--main-color);
         background-color: #F0F0F0;
         font-size: .18rem;
         span {
@@ -200,7 +198,7 @@ export default {
         }
         .popup-sure {
             color: #ffffff;
-            background-color: #2DC7AA;
+            background-color: var(--main-color);
         }
     }
 }