@ -0,0 +1,121 @@ |
|||
// 开发环境配置文件
|
|||
let developUrl = '' |
|||
if (process.env.NODE_ENV === 'development') { |
|||
// 开发环境
|
|||
// developUrl = 'http://192.168.1.144:8080/mz-api'
|
|||
developUrl = 'http://219.146.91.110:30801/mz-api' |
|||
} else if (process.env.NODE_ENV === 'buildQd') { |
|||
// 打包环境
|
|||
// developUrl = 'http://172.16.31.169:80/mz-api'
|
|||
// developUrl = 'http://120.221.95.60:8080/mz-api' // 正式环境
|
|||
// developUrl = 'https://hrss.qingdao.gov.cn/mzjapi'
|
|||
developUrl = 'https://hrsswb.qingdao.gov.cn:8080/mz-api' |
|||
} else { |
|||
developUrl = 'http://219.146.91.110:30801/mz-api' // 外网环境
|
|||
} |
|||
const api = { |
|||
Login: '/user/login', |
|||
UserInfo: '/user/userinfo', |
|||
UserName: '/user/name', |
|||
|
|||
listHouseWithCount: developUrl + '/mz/choose/list-house-with-count', // 区域-黄岛区房型-地图上统计数据
|
|||
listHouseTypeWithCount: developUrl + '/mz/choose/list-house-type-with-count', // 区域-黄岛区房型-房型统计列表
|
|||
areasList: developUrl + '/system/dept/listForH5', // 获取区域下拉框
|
|||
apartmentList: developUrl + '/system/dept/apartmentsForH5', // 获取公寓下拉框
|
|||
// houseTypeList: developUrl + '/mz/housetype/listForH5', // 获取房型下拉框
|
|||
houseTypeList: developUrl + '/asdh5/chooseRoom/selectMzHouseTypeListForH5Special', // 获取房型下拉框
|
|||
getInfoForH5: developUrl + '/mz/housetype/h5/getInfoForH5', // 房型详情
|
|||
estateSurrounding: developUrl + '/system/dept/query/getInfoForH5', // 小区及周边
|
|||
listBookHouse: developUrl + '/mz/choose/list-book-house', // 楼栋+单元
|
|||
// listHouseByUnitId: developUrl + '/mz/choose/listHouseByUnitId', // 楼层-房屋
|
|||
listHouseByUnitId: developUrl + '/mz/choose/getHouseInfoByRedis', // 楼层-房屋更换接口
|
|||
getRoomInfoByHouseId: developUrl + '/mz/room/getRoomInfoByHouseId', // 选择房间
|
|||
|
|||
leftQuota: developUrl + '/asdh5/chooseRoom/leftQuota', // 【选房】查询天数余额
|
|||
chooseRoomChoose: developUrl + '/asdh5/chooseRoom/choose', // 【H5】锁定房源
|
|||
supplementOfChooseRoom: developUrl + '/asdh5/chooseRoom/supplementOfChooseRoom', // 【H5选房】补充选房信息
|
|||
|
|||
|
|||
userLogin: developUrl + '/asdh5/user/login', // 【H5】登录
|
|||
userDetail: developUrl + '/asdh5/user/detail', // 【H5】查询当前用户信息
|
|||
|
|||
chooseRoomRecPage: developUrl + '/chooseRoomRec/page', // 查询选房记录
|
|||
chooseRoomRecCancel: developUrl + '/chooseRoomRec/cancel', // 取消预约
|
|||
|
|||
|
|||
pageForAsd: developUrl + '/asdh5/mzPolicy/pageForAsd', // 爱山东分页查询所有数据新闻
|
|||
mzPolicy: developUrl + '/asdh5/mzPolicy/', // 爱山东查询单挑资讯和详情
|
|||
queryTop5: developUrl + '/asdh5/mzPolicy/queryTop5', // 查询置顶的最新的5条数据
|
|||
|
|||
supplementary: developUrl + '/mz/graduate/supplementary', // 补充材料
|
|||
upload: developUrl + '/common/upload', // 文件上传
|
|||
|
|||
selectMzGraduateInfo: developUrl + '/mz/graduate/selectMzGraduateInfo', // 获取毕业生详细信息
|
|||
graduate: developUrl + '/mz/graduate/', // 获取毕业生详细信息
|
|||
graduateEdit: developUrl + '/asdh5/graduate/edit', // 修改毕业生
|
|||
|
|||
// selectMzGraduateInfoH5: developUrl + '/asdh5/graduate/selectMzGraduateInfo', //【h5】获取毕业生详细信息
|
|||
selectMzGraduateInfoH5: developUrl + '/asdh5/user/detail', //从redis里获取毕业生信息
|
|||
|
|||
renewalApplication: developUrl + '/asdh5/renewal/renewalApplication/', // 续期申请查询
|
|||
submit: developUrl + '/asdh5/renewal/submit', // 续期申请提交
|
|||
|
|||
systemDept: developUrl + '/asdh5/chooseRoom/getApartmentInfo/', // 公寓电话
|
|||
|
|||
blacklist: developUrl + '/asdh5/user/isInBlackList', // 黑名单查询
|
|||
|
|||
selectBlackGraduateDetail: developUrl + '/asdh5/user/selectBlackGraduateDetail', // 返回当前登录的毕业生的黑名单详情
|
|||
|
|||
dictDataList: developUrl + '/system/dict/data/list', // 字典列表
|
|||
|
|||
queryRenewalRecord: developUrl + '/asdh5/renewal/queryRenewalRecord', // 查询毕业生续期记录
|
|||
|
|||
checkLatestStateByGraduateId: developUrl + '/asdh5/user/checkLatestStateByGraduateId', // 【H5】登录选房确认
|
|||
|
|||
getDict: developUrl + '/system/dict/data/getDict', // 字典lable
|
|||
|
|||
messagePage: developUrl + '/asdh5/message/page', // 分页查询消息
|
|||
|
|||
technical: developUrl + '/mz/rec/technical', // 技工学生填写毕业证编号验证
|
|||
|
|||
chooseRoomRecs: developUrl + '/asdh5/graduate/chooseRoomRecs', // 技工学生填写毕业证编号验证
|
|||
|
|||
selectMzHouseTypesByApartMentId: developUrl + '/mz/housetype/selectMzHouseTypesByApartMentId', // 根据公寓id获取房型
|
|||
|
|||
cancelApply: developUrl + '/asdh5/renewal/cancelApply/', // 取消申请
|
|||
|
|||
deptQuery: developUrl + '/asdh5/dept/query', // 查询社区信息
|
|||
roomQuery: developUrl + '/asdh5/room/query', // 根据单元查询房间信息
|
|||
|
|||
staticInfoByApartmentId: developUrl + '/mz/choose/staticInfoByApartmentIdSpecial', // 公寓统计列表
|
|||
|
|||
graduateInfoCollectionList: developUrl + '/mz/graduateInfoCollection/list', // 查询毕业生列表
|
|||
graduateInfoCollection: developUrl + '/mz/graduateInfoCollection', // 新增
|
|||
|
|||
sm4Encryption: developUrl + '/asdh5/graduate/relayXLH', // SM4加密
|
|||
//获取毕业生信息
|
|||
graduateInfoCollectionNEW: developUrl + '/mz/graduateInfoCollection/getInfoByGraduateId', |
|||
// 7.8==========
|
|||
getMessageCount: developUrl + '/asdh5/message/getMessageCount', //【h5】获取未读站内信的数量
|
|||
// 查询毕业生是否可以选房
|
|||
checkChooseRoomZG: developUrl + '/asdh5/chooseRoom/checkChooseRoomZG/', //111 查询毕业生是否可以选房
|
|||
auditPage: developUrl + '/asdh5/audit/page', // 选房审核记录
|
|||
registerSubmit: developUrl + '/asdh5/register/submit', //111就业创业提交选房
|
|||
// 7.14
|
|||
insertEmploymentMzChooseRoomRec: developUrl + '/asdh5/chooseRoom/insertEmploymentMzChooseRoomRec', // 就业创业新增选房记录
|
|||
getSubmitMessage: developUrl + '/asdh5/message/getSubmitMessage', // 提交成功的站内信
|
|||
// 7.19
|
|||
cancelRegister: developUrl + '/asdh5/register/cancelRegister', // 取消登记
|
|||
appointmentDetail: developUrl + '/chooseRoomRec/appointmentDetail', // 查询预约详情
|
|||
checkInfoCollection: developUrl + '/mz/graduateInfoCollection/checkInfoCollection/', // 查询预约详情
|
|||
sendVerificationCode: developUrl + '/asdh5/graduate/sendVerificationCode', // 验证码
|
|||
|
|||
mzAdviceAdd: developUrl + '/asdh5/mzAdvice/add', // 添加意见反馈
|
|||
chooseRoomRecDetail: developUrl + '/asdh5/chooseRoom/chooseRoomRecDetail', // 【选房记录】详情
|
|||
checkInRecDetail: developUrl + '/asdh5/chooseRoom/checkInRecDetail', //【入住记录】详情
|
|||
getCheckInRecInfo: developUrl + '/asdh5/chooseRoom/getCheckInRecInfo', //【入住办理】毕业生入住记录回显
|
|||
getRenewalRecordByChooseRecId: developUrl + '/asdh5/renewal/getRenewalRecordByChooseRecId/', // 查询选房记录的延租记录
|
|||
checkOut: developUrl + '/asdh5/checkOut/page', // 退房记录
|
|||
} |
|||
|
|||
export default api |
After Width: | Height: | Size: 512 KiB |
After Width: | Height: | Size: 36 KiB |
After Width: | Height: | Size: 210 KiB |
After Width: | Height: | Size: 726 KiB |
After Width: | Height: | Size: 960 B |
After Width: | Height: | Size: 1002 B |
After Width: | Height: | Size: 187 KiB |
After Width: | Height: | Size: 12 KiB |
@ -0,0 +1,952 @@ |
|||
/*! |
|||
* Quill Editor v1.3.7 |
|||
* https://quilljs.com/ |
|||
* Copyright (c) 2014, Jason Chen |
|||
* Copyright (c) 2013, salesforce.com |
|||
*/ |
|||
.ql-container { |
|||
box-sizing: border-box; |
|||
font-family: Helvetica, Arial, sans-serif; |
|||
font-size: 13px; |
|||
height: 100%; |
|||
margin: 0px; |
|||
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 { |
|||
box-sizing: border-box; |
|||
line-height: 1.42; |
|||
height: 100%; |
|||
outline: none; |
|||
overflow-y: auto; |
|||
padding: 12px 15px; |
|||
tab-size: 4; |
|||
-moz-tab-size: 4; |
|||
text-align: left; |
|||
white-space: pre-wrap; |
|||
word-wrap: break-word; |
|||
} |
|||
.ql-editor > * { |
|||
cursor: text; |
|||
} |
|||
.ql-editor p, |
|||
.ql-editor ol, |
|||
.ql-editor ul, |
|||
.ql-editor pre, |
|||
.ql-editor blockquote, |
|||
.ql-editor h1, |
|||
.ql-editor h2, |
|||
.ql-editor h3, |
|||
.ql-editor h4, |
|||
.ql-editor h5, |
|||
.ql-editor h6 { |
|||
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=true], |
|||
.ql-editor ul[data-checked=false] { |
|||
pointer-events: none; |
|||
} |
|||
.ql-editor ul[data-checked=true] > li *, |
|||
.ql-editor ul[data-checked=false] > li * { |
|||
pointer-events: all; |
|||
} |
|||
.ql-editor ul[data-checked=true] > li::before, |
|||
.ql-editor ul[data-checked=false] > 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: 0.3em; |
|||
text-align: right; |
|||
} |
|||
.ql-editor li.ql-direction-rtl::before { |
|||
margin-left: 0.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: 0.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,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 button:hover, |
|||
.ql-bubble .ql-toolbar button:hover, |
|||
.ql-bubble.ql-toolbar button:focus, |
|||
.ql-bubble .ql-toolbar button:focus, |
|||
.ql-bubble.ql-toolbar button.ql-active, |
|||
.ql-bubble .ql-toolbar button.ql-active, |
|||
.ql-bubble.ql-toolbar .ql-picker-label:hover, |
|||
.ql-bubble .ql-toolbar .ql-picker-label: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-item:hover, |
|||
.ql-bubble .ql-toolbar .ql-picker-item:hover, |
|||
.ql-bubble.ql-toolbar .ql-picker-item.ql-selected, |
|||
.ql-bubble .ql-toolbar .ql-picker-item.ql-selected { |
|||
color: #fff; |
|||
} |
|||
.ql-bubble.ql-toolbar button:hover .ql-fill, |
|||
.ql-bubble .ql-toolbar button:hover .ql-fill, |
|||
.ql-bubble.ql-toolbar button:focus .ql-fill, |
|||
.ql-bubble .ql-toolbar button:focus .ql-fill, |
|||
.ql-bubble.ql-toolbar button.ql-active .ql-fill, |
|||
.ql-bubble .ql-toolbar button.ql-active .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.ql-active .ql-fill, |
|||
.ql-bubble .ql-toolbar .ql-picker-label.ql-active .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.ql-selected .ql-fill, |
|||
.ql-bubble .ql-toolbar .ql-picker-item.ql-selected .ql-fill, |
|||
.ql-bubble.ql-toolbar button:hover .ql-stroke.ql-fill, |
|||
.ql-bubble .ql-toolbar button:hover .ql-stroke.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.ql-active .ql-stroke.ql-fill, |
|||
.ql-bubble .ql-toolbar button.ql-active .ql-stroke.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 .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-item:hover .ql-stroke.ql-fill, |
|||
.ql-bubble .ql-toolbar .ql-picker-item:hover .ql-stroke.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 { |
|||
fill: #fff; |
|||
} |
|||
.ql-bubble.ql-toolbar button:hover .ql-stroke, |
|||
.ql-bubble .ql-toolbar button:hover .ql-stroke, |
|||
.ql-bubble.ql-toolbar button:focus .ql-stroke, |
|||
.ql-bubble .ql-toolbar button:focus .ql-stroke, |
|||
.ql-bubble.ql-toolbar button.ql-active .ql-stroke, |
|||
.ql-bubble .ql-toolbar button.ql-active .ql-stroke, |
|||
.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.ql-active .ql-stroke, |
|||
.ql-bubble .ql-toolbar .ql-picker-label.ql-active .ql-stroke, |
|||
.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.ql-selected .ql-stroke, |
|||
.ql-bubble .ql-toolbar .ql-picker-item.ql-selected .ql-stroke, |
|||
.ql-bubble.ql-toolbar button:hover .ql-stroke-miter, |
|||
.ql-bubble .ql-toolbar button:hover .ql-stroke-miter, |
|||
.ql-bubble.ql-toolbar button:focus .ql-stroke-miter, |
|||
.ql-bubble .ql-toolbar button:focus .ql-stroke-miter, |
|||
.ql-bubble.ql-toolbar button.ql-active .ql-stroke-miter, |
|||
.ql-bubble .ql-toolbar button.ql-active .ql-stroke-miter, |
|||
.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 .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-item:hover .ql-stroke-miter, |
|||
.ql-bubble .ql-toolbar .ql-picker-item:hover .ql-stroke-miter, |
|||
.ql-bubble.ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter, |
|||
.ql-bubble .ql-toolbar .ql-picker-item.ql-selected .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 { |
|||
box-sizing: border-box; |
|||
} |
|||
.ql-bubble * { |
|||
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; |
|||
transform: translateY(10px); |
|||
} |
|||
.ql-bubble .ql-tooltip a { |
|||
cursor: pointer; |
|||
text-decoration: none; |
|||
} |
|||
.ql-bubble .ql-tooltip.ql-flip { |
|||
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-thin, |
|||
.ql-bubble .ql-stroke.ql-thin { |
|||
stroke-width: 1; |
|||
} |
|||
.ql-bubble .ql-transparent { |
|||
opacity: 0.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: 0.83em; |
|||
} |
|||
.ql-bubble .ql-editor h6 { |
|||
font-size: 0.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 0px; |
|||
} |
|||
.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: 0px; |
|||
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-header .ql-picker-label[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-size .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-font .ql-picker-item[data-label]:not([data-label=''])::before, |
|||
.ql-bubble .ql-picker.ql-size .ql-picker-item[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-label::before, |
|||
.ql-bubble .ql-picker.ql-header .ql-picker-item::before { |
|||
content: 'Normal'; |
|||
} |
|||
.ql-bubble .ql-picker.ql-header .ql-picker-label[data-value="1"]::before, |
|||
.ql-bubble .ql-picker.ql-header .ql-picker-item[data-value="1"]::before { |
|||
content: 'Heading 1'; |
|||
} |
|||
.ql-bubble .ql-picker.ql-header .ql-picker-label[data-value="2"]::before, |
|||
.ql-bubble .ql-picker.ql-header .ql-picker-item[data-value="2"]::before { |
|||
content: 'Heading 2'; |
|||
} |
|||
.ql-bubble .ql-picker.ql-header .ql-picker-label[data-value="3"]::before, |
|||
.ql-bubble .ql-picker.ql-header .ql-picker-item[data-value="3"]::before { |
|||
content: 'Heading 3'; |
|||
} |
|||
.ql-bubble .ql-picker.ql-header .ql-picker-label[data-value="4"]::before, |
|||
.ql-bubble .ql-picker.ql-header .ql-picker-item[data-value="4"]::before { |
|||
content: 'Heading 4'; |
|||
} |
|||
.ql-bubble .ql-picker.ql-header .ql-picker-label[data-value="5"]::before, |
|||
.ql-bubble .ql-picker.ql-header .ql-picker-item[data-value="5"]::before { |
|||
content: 'Heading 5'; |
|||
} |
|||
.ql-bubble .ql-picker.ql-header .ql-picker-label[data-value="6"]::before, |
|||
.ql-bubble .ql-picker.ql-header .ql-picker-item[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: 0.83em; |
|||
} |
|||
.ql-bubble .ql-picker.ql-header .ql-picker-item[data-value="6"]::before { |
|||
font-size: 0.67em; |
|||
} |
|||
.ql-bubble .ql-picker.ql-font { |
|||
width: 108px; |
|||
} |
|||
.ql-bubble .ql-picker.ql-font .ql-picker-label::before, |
|||
.ql-bubble .ql-picker.ql-font .ql-picker-item::before { |
|||
content: 'Sans Serif'; |
|||
} |
|||
.ql-bubble .ql-picker.ql-font .ql-picker-label[data-value=serif]::before, |
|||
.ql-bubble .ql-picker.ql-font .ql-picker-item[data-value=serif]::before { |
|||
content: 'Serif'; |
|||
} |
|||
.ql-bubble .ql-picker.ql-font .ql-picker-label[data-value=monospace]::before, |
|||
.ql-bubble .ql-picker.ql-font .ql-picker-item[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-label::before, |
|||
.ql-bubble .ql-picker.ql-size .ql-picker-item::before { |
|||
content: 'Normal'; |
|||
} |
|||
.ql-bubble .ql-picker.ql-size .ql-picker-label[data-value=small]::before, |
|||
.ql-bubble .ql-picker.ql-size .ql-picker-item[data-value=small]::before { |
|||
content: 'Small'; |
|||
} |
|||
.ql-bubble .ql-picker.ql-size .ql-picker-label[data-value=large]::before, |
|||
.ql-bubble .ql-picker.ql-size .ql-picker-item[data-value=large]::before { |
|||
content: 'Large'; |
|||
} |
|||
.ql-bubble .ql-picker.ql-size .ql-picker-label[data-value=huge]::before, |
|||
.ql-bubble .ql-picker.ql-size .ql-picker-item[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 0px; |
|||
} |
|||
.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: bold; |
|||
} |
|||
.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: normal; |
|||
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::before, |
|||
.ql-container.ql-bubble:not(.ql-disabled) a::after { |
|||
left: 0; |
|||
margin-left: 50%; |
|||
position: absolute; |
|||
transform: translate(-50%, -100%); |
|||
transition: visibility 0s ease 200ms; |
|||
visibility: hidden; |
|||
} |
|||
.ql-container.ql-bubble:not(.ql-disabled) a:hover::before, |
|||
.ql-container.ql-bubble:not(.ql-disabled) a:hover::after { |
|||
visibility: visible; |
|||
} |
@ -0,0 +1,397 @@ |
|||
/*! |
|||
* Quill Editor v1.3.7 |
|||
* https://quilljs.com/ |
|||
* Copyright (c) 2014, Jason Chen |
|||
* Copyright (c) 2013, salesforce.com |
|||
*/ |
|||
.ql-container { |
|||
box-sizing: border-box; |
|||
font-family: Helvetica, Arial, sans-serif; |
|||
font-size: 13px; |
|||
height: 100%; |
|||
margin: 0px; |
|||
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 { |
|||
box-sizing: border-box; |
|||
line-height: 1.42; |
|||
height: 100%; |
|||
outline: none; |
|||
overflow-y: auto; |
|||
padding: 12px 15px; |
|||
tab-size: 4; |
|||
-moz-tab-size: 4; |
|||
text-align: left; |
|||
white-space: pre-wrap; |
|||
word-wrap: break-word; |
|||
} |
|||
.ql-editor > * { |
|||
cursor: text; |
|||
} |
|||
.ql-editor p, |
|||
.ql-editor ol, |
|||
.ql-editor ul, |
|||
.ql-editor pre, |
|||
.ql-editor blockquote, |
|||
.ql-editor h1, |
|||
.ql-editor h2, |
|||
.ql-editor h3, |
|||
.ql-editor h4, |
|||
.ql-editor h5, |
|||
.ql-editor h6 { |
|||
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=true], |
|||
.ql-editor ul[data-checked=false] { |
|||
pointer-events: none; |
|||
} |
|||
.ql-editor ul[data-checked=true] > li *, |
|||
.ql-editor ul[data-checked=false] > li * { |
|||
pointer-events: all; |
|||
} |
|||
.ql-editor ul[data-checked=true] > li::before, |
|||
.ql-editor ul[data-checked=false] > 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: 0.3em; |
|||
text-align: right; |
|||
} |
|||
.ql-editor li.ql-direction-rtl::before { |
|||
margin-left: 0.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: 0.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,0.6); |
|||
content: attr(data-placeholder); |
|||
font-style: italic; |
|||
left: 15px; |
|||
pointer-events: none; |
|||
position: absolute; |
|||
right: 15px; |
|||
} |
@ -0,0 +1,945 @@ |
|||
/*! |
|||
* Quill Editor v1.3.7 |
|||
* https://quilljs.com/ |
|||
* Copyright (c) 2014, Jason Chen |
|||
* Copyright (c) 2013, salesforce.com |
|||
*/ |
|||
.ql-container { |
|||
box-sizing: border-box; |
|||
font-family: Helvetica, Arial, sans-serif; |
|||
font-size: 13px; |
|||
height: 100%; |
|||
margin: 0px; |
|||
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 { |
|||
box-sizing: border-box; |
|||
line-height: 1.42; |
|||
height: 100%; |
|||
outline: none; |
|||
overflow-y: auto; |
|||
padding: 12px 15px; |
|||
tab-size: 4; |
|||
-moz-tab-size: 4; |
|||
text-align: left; |
|||
white-space: pre-wrap; |
|||
word-wrap: break-word; |
|||
} |
|||
.ql-editor > * { |
|||
cursor: text; |
|||
} |
|||
.ql-editor p, |
|||
.ql-editor ol, |
|||
.ql-editor ul, |
|||
.ql-editor pre, |
|||
.ql-editor blockquote, |
|||
.ql-editor h1, |
|||
.ql-editor h2, |
|||
.ql-editor h3, |
|||
.ql-editor h4, |
|||
.ql-editor h5, |
|||
.ql-editor h6 { |
|||
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=true], |
|||
.ql-editor ul[data-checked=false] { |
|||
pointer-events: none; |
|||
} |
|||
.ql-editor ul[data-checked=true] > li *, |
|||
.ql-editor ul[data-checked=false] > li * { |
|||
pointer-events: all; |
|||
} |
|||
.ql-editor ul[data-checked=true] > li::before, |
|||
.ql-editor ul[data-checked=false] > 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: 0.3em; |
|||
text-align: right; |
|||
} |
|||
.ql-editor li.ql-direction-rtl::before { |
|||
margin-left: 0.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: 0.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,0.6); |
|||
content: attr(data-placeholder); |
|||
font-style: italic; |
|||
left: 15px; |
|||
pointer-events: none; |
|||
position: absolute; |
|||
right: 15px; |
|||
} |
|||
.ql-snow.ql-toolbar:after, |
|||
.ql-snow .ql-toolbar:after { |
|||
clear: both; |
|||
content: ''; |
|||
display: table; |
|||
} |
|||
.ql-snow.ql-toolbar button, |
|||
.ql-snow .ql-toolbar button { |
|||
background: none; |
|||
border: none; |
|||
cursor: pointer; |
|||
display: inline-block; |
|||
float: left; |
|||
height: 24px; |
|||
padding: 3px 5px; |
|||
width: 28px; |
|||
} |
|||
.ql-snow.ql-toolbar button svg, |
|||
.ql-snow .ql-toolbar button svg { |
|||
float: left; |
|||
height: 100%; |
|||
} |
|||
.ql-snow.ql-toolbar button:active:hover, |
|||
.ql-snow .ql-toolbar button:active:hover { |
|||
outline: none; |
|||
} |
|||
.ql-snow.ql-toolbar input.ql-image[type=file], |
|||
.ql-snow .ql-toolbar input.ql-image[type=file] { |
|||
display: none; |
|||
} |
|||
.ql-snow.ql-toolbar button:hover, |
|||
.ql-snow .ql-toolbar button:hover, |
|||
.ql-snow.ql-toolbar button:focus, |
|||
.ql-snow .ql-toolbar button:focus, |
|||
.ql-snow.ql-toolbar button.ql-active, |
|||
.ql-snow .ql-toolbar button.ql-active, |
|||
.ql-snow.ql-toolbar .ql-picker-label:hover, |
|||
.ql-snow .ql-toolbar .ql-picker-label:hover, |
|||
.ql-snow.ql-toolbar .ql-picker-label.ql-active, |
|||
.ql-snow .ql-toolbar .ql-picker-label.ql-active, |
|||
.ql-snow.ql-toolbar .ql-picker-item:hover, |
|||
.ql-snow .ql-toolbar .ql-picker-item:hover, |
|||
.ql-snow.ql-toolbar .ql-picker-item.ql-selected, |
|||
.ql-snow .ql-toolbar .ql-picker-item.ql-selected { |
|||
color: #06c; |
|||
} |
|||
.ql-snow.ql-toolbar button:hover .ql-fill, |
|||
.ql-snow .ql-toolbar button:hover .ql-fill, |
|||
.ql-snow.ql-toolbar button:focus .ql-fill, |
|||
.ql-snow .ql-toolbar button:focus .ql-fill, |
|||
.ql-snow.ql-toolbar button.ql-active .ql-fill, |
|||
.ql-snow .ql-toolbar button.ql-active .ql-fill, |
|||
.ql-snow.ql-toolbar .ql-picker-label:hover .ql-fill, |
|||
.ql-snow .ql-toolbar .ql-picker-label:hover .ql-fill, |
|||
.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-fill, |
|||
.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-fill, |
|||
.ql-snow.ql-toolbar .ql-picker-item:hover .ql-fill, |
|||
.ql-snow .ql-toolbar .ql-picker-item:hover .ql-fill, |
|||
.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-fill, |
|||
.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-fill, |
|||
.ql-snow.ql-toolbar button:hover .ql-stroke.ql-fill, |
|||
.ql-snow .ql-toolbar button:hover .ql-stroke.ql-fill, |
|||
.ql-snow.ql-toolbar button:focus .ql-stroke.ql-fill, |
|||
.ql-snow .ql-toolbar button:focus .ql-stroke.ql-fill, |
|||
.ql-snow.ql-toolbar button.ql-active .ql-stroke.ql-fill, |
|||
.ql-snow .ql-toolbar button.ql-active .ql-stroke.ql-fill, |
|||
.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill, |
|||
.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill, |
|||
.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill, |
|||
.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill, |
|||
.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill, |
|||
.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill, |
|||
.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill, |
|||
.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill { |
|||
fill: #06c; |
|||
} |
|||
.ql-snow.ql-toolbar button:hover .ql-stroke, |
|||
.ql-snow .ql-toolbar button:hover .ql-stroke, |
|||
.ql-snow.ql-toolbar button:focus .ql-stroke, |
|||
.ql-snow .ql-toolbar button:focus .ql-stroke, |
|||
.ql-snow.ql-toolbar button.ql-active .ql-stroke, |
|||
.ql-snow .ql-toolbar button.ql-active .ql-stroke, |
|||
.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke, |
|||
.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke, |
|||
.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke, |
|||
.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke, |
|||
.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke, |
|||
.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke, |
|||
.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke, |
|||
.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke, |
|||
.ql-snow.ql-toolbar button:hover .ql-stroke-miter, |
|||
.ql-snow .ql-toolbar button:hover .ql-stroke-miter, |
|||
.ql-snow.ql-toolbar button:focus .ql-stroke-miter, |
|||
.ql-snow .ql-toolbar button:focus .ql-stroke-miter, |
|||
.ql-snow.ql-toolbar button.ql-active .ql-stroke-miter, |
|||
.ql-snow .ql-toolbar button.ql-active .ql-stroke-miter, |
|||
.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke-miter, |
|||
.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke-miter, |
|||
.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter, |
|||
.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter, |
|||
.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke-miter, |
|||
.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke-miter, |
|||
.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter, |
|||
.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter { |
|||
stroke: #06c; |
|||
} |
|||
@media (pointer: coarse) { |
|||
.ql-snow.ql-toolbar button:hover:not(.ql-active), |
|||
.ql-snow .ql-toolbar button:hover:not(.ql-active) { |
|||
color: #444; |
|||
} |
|||
.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-fill, |
|||
.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-fill, |
|||
.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill, |
|||
.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill { |
|||
fill: #444; |
|||
} |
|||
.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke, |
|||
.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke, |
|||
.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter, |
|||
.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter { |
|||
stroke: #444; |
|||
} |
|||
} |
|||
.ql-snow { |
|||
box-sizing: border-box; |
|||
} |
|||
.ql-snow * { |
|||
box-sizing: border-box; |
|||
} |
|||
.ql-snow .ql-hidden { |
|||
display: none; |
|||
} |
|||
.ql-snow .ql-out-bottom, |
|||
.ql-snow .ql-out-top { |
|||
visibility: hidden; |
|||
} |
|||
.ql-snow .ql-tooltip { |
|||
position: absolute; |
|||
transform: translateY(10px); |
|||
} |
|||
.ql-snow .ql-tooltip a { |
|||
cursor: pointer; |
|||
text-decoration: none; |
|||
} |
|||
.ql-snow .ql-tooltip.ql-flip { |
|||
transform: translateY(-10px); |
|||
} |
|||
.ql-snow .ql-formats { |
|||
display: inline-block; |
|||
vertical-align: middle; |
|||
} |
|||
.ql-snow .ql-formats:after { |
|||
clear: both; |
|||
content: ''; |
|||
display: table; |
|||
} |
|||
.ql-snow .ql-stroke { |
|||
fill: none; |
|||
stroke: #444; |
|||
stroke-linecap: round; |
|||
stroke-linejoin: round; |
|||
stroke-width: 2; |
|||
} |
|||
.ql-snow .ql-stroke-miter { |
|||
fill: none; |
|||
stroke: #444; |
|||
stroke-miterlimit: 10; |
|||
stroke-width: 2; |
|||
} |
|||
.ql-snow .ql-fill, |
|||
.ql-snow .ql-stroke.ql-fill { |
|||
fill: #444; |
|||
} |
|||
.ql-snow .ql-empty { |
|||
fill: none; |
|||
} |
|||
.ql-snow .ql-even { |
|||
fill-rule: evenodd; |
|||
} |
|||
.ql-snow .ql-thin, |
|||
.ql-snow .ql-stroke.ql-thin { |
|||
stroke-width: 1; |
|||
} |
|||
.ql-snow .ql-transparent { |
|||
opacity: 0.4; |
|||
} |
|||
.ql-snow .ql-direction svg:last-child { |
|||
display: none; |
|||
} |
|||
.ql-snow .ql-direction.ql-active svg:last-child { |
|||
display: inline; |
|||
} |
|||
.ql-snow .ql-direction.ql-active svg:first-child { |
|||
display: none; |
|||
} |
|||
.ql-snow .ql-editor h1 { |
|||
font-size: 2em; |
|||
} |
|||
.ql-snow .ql-editor h2 { |
|||
font-size: 1.5em; |
|||
} |
|||
.ql-snow .ql-editor h3 { |
|||
font-size: 1.17em; |
|||
} |
|||
.ql-snow .ql-editor h4 { |
|||
font-size: 1em; |
|||
} |
|||
.ql-snow .ql-editor h5 { |
|||
font-size: 0.83em; |
|||
} |
|||
.ql-snow .ql-editor h6 { |
|||
font-size: 0.67em; |
|||
} |
|||
.ql-snow .ql-editor a { |
|||
text-decoration: underline; |
|||
} |
|||
.ql-snow .ql-editor blockquote { |
|||
border-left: 4px solid #ccc; |
|||
margin-bottom: 5px; |
|||
margin-top: 5px; |
|||
padding-left: 16px; |
|||
} |
|||
.ql-snow .ql-editor code, |
|||
.ql-snow .ql-editor pre { |
|||
background-color: #f0f0f0; |
|||
border-radius: 3px; |
|||
} |
|||
.ql-snow .ql-editor pre { |
|||
white-space: pre-wrap; |
|||
margin-bottom: 5px; |
|||
margin-top: 5px; |
|||
padding: 5px 10px; |
|||
} |
|||
.ql-snow .ql-editor code { |
|||
font-size: 85%; |
|||
padding: 2px 4px; |
|||
} |
|||
.ql-snow .ql-editor pre.ql-syntax { |
|||
background-color: #23241f; |
|||
color: #f8f8f2; |
|||
overflow: visible; |
|||
} |
|||
.ql-snow .ql-editor img { |
|||
max-width: 100%; |
|||
} |
|||
.ql-snow .ql-picker { |
|||
color: #444; |
|||
display: inline-block; |
|||
float: left; |
|||
font-size: 14px; |
|||
font-weight: 500; |
|||
height: 24px; |
|||
position: relative; |
|||
vertical-align: middle; |
|||
} |
|||
.ql-snow .ql-picker-label { |
|||
cursor: pointer; |
|||
display: inline-block; |
|||
height: 100%; |
|||
padding-left: 8px; |
|||
padding-right: 2px; |
|||
position: relative; |
|||
width: 100%; |
|||
} |
|||
.ql-snow .ql-picker-label::before { |
|||
display: inline-block; |
|||
line-height: 22px; |
|||
} |
|||
.ql-snow .ql-picker-options { |
|||
background-color: #fff; |
|||
display: none; |
|||
min-width: 100%; |
|||
padding: 4px 8px; |
|||
position: absolute; |
|||
white-space: nowrap; |
|||
} |
|||
.ql-snow .ql-picker-options .ql-picker-item { |
|||
cursor: pointer; |
|||
display: block; |
|||
padding-bottom: 5px; |
|||
padding-top: 5px; |
|||
} |
|||
.ql-snow .ql-picker.ql-expanded .ql-picker-label { |
|||
color: #ccc; |
|||
z-index: 2; |
|||
} |
|||
.ql-snow .ql-picker.ql-expanded .ql-picker-label .ql-fill { |
|||
fill: #ccc; |
|||
} |
|||
.ql-snow .ql-picker.ql-expanded .ql-picker-label .ql-stroke { |
|||
stroke: #ccc; |
|||
} |
|||
.ql-snow .ql-picker.ql-expanded .ql-picker-options { |
|||
display: block; |
|||
margin-top: -1px; |
|||
top: 100%; |
|||
z-index: 1; |
|||
} |
|||
.ql-snow .ql-color-picker, |
|||
.ql-snow .ql-icon-picker { |
|||
width: 28px; |
|||
} |
|||
.ql-snow .ql-color-picker .ql-picker-label, |
|||
.ql-snow .ql-icon-picker .ql-picker-label { |
|||
padding: 2px 4px; |
|||
} |
|||
.ql-snow .ql-color-picker .ql-picker-label svg, |
|||
.ql-snow .ql-icon-picker .ql-picker-label svg { |
|||
right: 4px; |
|||
} |
|||
.ql-snow .ql-icon-picker .ql-picker-options { |
|||
padding: 4px 0px; |
|||
} |
|||
.ql-snow .ql-icon-picker .ql-picker-item { |
|||
height: 24px; |
|||
width: 24px; |
|||
padding: 2px 4px; |
|||
} |
|||
.ql-snow .ql-color-picker .ql-picker-options { |
|||
padding: 3px 5px; |
|||
width: 152px; |
|||
} |
|||
.ql-snow .ql-color-picker .ql-picker-item { |
|||
border: 1px solid transparent; |
|||
float: left; |
|||
height: 16px; |
|||
margin: 2px; |
|||
padding: 0px; |
|||
width: 16px; |
|||
} |
|||
.ql-snow .ql-picker:not(.ql-color-picker):not(.ql-icon-picker) svg { |
|||
position: absolute; |
|||
margin-top: -9px; |
|||
right: 0; |
|||
top: 50%; |
|||
width: 18px; |
|||
} |
|||
.ql-snow .ql-picker.ql-header .ql-picker-label[data-label]:not([data-label=''])::before, |
|||
.ql-snow .ql-picker.ql-font .ql-picker-label[data-label]:not([data-label=''])::before, |
|||
.ql-snow .ql-picker.ql-size .ql-picker-label[data-label]:not([data-label=''])::before, |
|||
.ql-snow .ql-picker.ql-header .ql-picker-item[data-label]:not([data-label=''])::before, |
|||
.ql-snow .ql-picker.ql-font .ql-picker-item[data-label]:not([data-label=''])::before, |
|||
.ql-snow .ql-picker.ql-size .ql-picker-item[data-label]:not([data-label=''])::before { |
|||
content: attr(data-label); |
|||
} |
|||
.ql-snow .ql-picker.ql-header { |
|||
width: 98px; |
|||
} |
|||
.ql-snow .ql-picker.ql-header .ql-picker-label::before, |
|||
.ql-snow .ql-picker.ql-header .ql-picker-item::before { |
|||
content: 'Normal'; |
|||
} |
|||
.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="1"]::before, |
|||
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="1"]::before { |
|||
content: 'Heading 1'; |
|||
} |
|||
.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="2"]::before, |
|||
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="2"]::before { |
|||
content: 'Heading 2'; |
|||
} |
|||
.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="3"]::before, |
|||
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="3"]::before { |
|||
content: 'Heading 3'; |
|||
} |
|||
.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="4"]::before, |
|||
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="4"]::before { |
|||
content: 'Heading 4'; |
|||
} |
|||
.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="5"]::before, |
|||
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="5"]::before { |
|||
content: 'Heading 5'; |
|||
} |
|||
.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="6"]::before, |
|||
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="6"]::before { |
|||
content: 'Heading 6'; |
|||
} |
|||
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="1"]::before { |
|||
font-size: 2em; |
|||
} |
|||
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="2"]::before { |
|||
font-size: 1.5em; |
|||
} |
|||
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="3"]::before { |
|||
font-size: 1.17em; |
|||
} |
|||
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="4"]::before { |
|||
font-size: 1em; |
|||
} |
|||
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="5"]::before { |
|||
font-size: 0.83em; |
|||
} |
|||
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="6"]::before { |
|||
font-size: 0.67em; |
|||
} |
|||
.ql-snow .ql-picker.ql-font { |
|||
width: 108px; |
|||
} |
|||
.ql-snow .ql-picker.ql-font .ql-picker-label::before, |
|||
.ql-snow .ql-picker.ql-font .ql-picker-item::before { |
|||
content: 'Sans Serif'; |
|||
} |
|||
.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=serif]::before, |
|||
.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=serif]::before { |
|||
content: 'Serif'; |
|||
} |
|||
.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=monospace]::before, |
|||
.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=monospace]::before { |
|||
content: 'Monospace'; |
|||
} |
|||
.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=serif]::before { |
|||
font-family: Georgia, Times New Roman, serif; |
|||
} |
|||
.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=monospace]::before { |
|||
font-family: Monaco, Courier New, monospace; |
|||
} |
|||
.ql-snow .ql-picker.ql-size { |
|||
width: 98px; |
|||
} |
|||
.ql-snow .ql-picker.ql-size .ql-picker-label::before, |
|||
.ql-snow .ql-picker.ql-size .ql-picker-item::before { |
|||
content: 'Normal'; |
|||
} |
|||
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=small]::before, |
|||
.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=small]::before { |
|||
content: 'Small'; |
|||
} |
|||
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=large]::before, |
|||
.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=large]::before { |
|||
content: 'Large'; |
|||
} |
|||
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=huge]::before, |
|||
.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=huge]::before { |
|||
content: 'Huge'; |
|||
} |
|||
.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=small]::before { |
|||
font-size: 10px; |
|||
} |
|||
.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=large]::before { |
|||
font-size: 18px; |
|||
} |
|||
.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=huge]::before { |
|||
font-size: 32px; |
|||
} |
|||
.ql-snow .ql-color-picker.ql-background .ql-picker-item { |
|||
background-color: #fff; |
|||
} |
|||
.ql-snow .ql-color-picker.ql-color .ql-picker-item { |
|||
background-color: #000; |
|||
} |
|||
.ql-toolbar.ql-snow { |
|||
border: 1px solid #ccc; |
|||
box-sizing: border-box; |
|||
font-family: 'Helvetica Neue', 'Helvetica', 'Arial', sans-serif; |
|||
padding: 8px; |
|||
} |
|||
.ql-toolbar.ql-snow .ql-formats { |
|||
margin-right: 15px; |
|||
} |
|||
.ql-toolbar.ql-snow .ql-picker-label { |
|||
border: 1px solid transparent; |
|||
} |
|||
.ql-toolbar.ql-snow .ql-picker-options { |
|||
border: 1px solid transparent; |
|||
box-shadow: rgba(0,0,0,0.2) 0 2px 8px; |
|||
} |
|||
.ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-label { |
|||
border-color: #ccc; |
|||
} |
|||
.ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-options { |
|||
border-color: #ccc; |
|||
} |
|||
.ql-toolbar.ql-snow .ql-color-picker .ql-picker-item.ql-selected, |
|||
.ql-toolbar.ql-snow .ql-color-picker .ql-picker-item:hover { |
|||
border-color: #000; |
|||
} |
|||
.ql-toolbar.ql-snow + .ql-container.ql-snow { |
|||
border-top: 0px; |
|||
} |
|||
.ql-snow .ql-tooltip { |
|||
background-color: #fff; |
|||
border: 1px solid #ccc; |
|||
box-shadow: 0px 0px 5px #ddd; |
|||
color: #444; |
|||
padding: 5px 12px; |
|||
white-space: nowrap; |
|||
} |
|||
.ql-snow .ql-tooltip::before { |
|||
content: "Visit URL:"; |
|||
line-height: 26px; |
|||
margin-right: 8px; |
|||
} |
|||
.ql-snow .ql-tooltip input[type=text] { |
|||
display: none; |
|||
border: 1px solid #ccc; |
|||
font-size: 13px; |
|||
height: 26px; |
|||
margin: 0px; |
|||
padding: 3px 5px; |
|||
width: 170px; |
|||
} |
|||
.ql-snow .ql-tooltip a.ql-preview { |
|||
display: inline-block; |
|||
max-width: 200px; |
|||
overflow-x: hidden; |
|||
text-overflow: ellipsis; |
|||
vertical-align: top; |
|||
} |
|||
.ql-snow .ql-tooltip a.ql-action::after { |
|||
border-right: 1px solid #ccc; |
|||
content: 'Edit'; |
|||
margin-left: 16px; |
|||
padding-right: 8px; |
|||
} |
|||
.ql-snow .ql-tooltip a.ql-remove::before { |
|||
content: 'Remove'; |
|||
margin-left: 8px; |
|||
} |
|||
.ql-snow .ql-tooltip a { |
|||
line-height: 26px; |
|||
} |
|||
.ql-snow .ql-tooltip.ql-editing a.ql-preview, |
|||
.ql-snow .ql-tooltip.ql-editing a.ql-remove { |
|||
display: none; |
|||
} |
|||
.ql-snow .ql-tooltip.ql-editing input[type=text] { |
|||
display: inline-block; |
|||
} |
|||
.ql-snow .ql-tooltip.ql-editing a.ql-action::after { |
|||
border-right: 0px; |
|||
content: 'Save'; |
|||
padding-right: 0px; |
|||
} |
|||
.ql-snow .ql-tooltip[data-mode=link]::before { |
|||
content: "Enter link:"; |
|||
} |
|||
.ql-snow .ql-tooltip[data-mode=formula]::before { |
|||
content: "Enter formula:"; |
|||
} |
|||
.ql-snow .ql-tooltip[data-mode=video]::before { |
|||
content: "Enter video:"; |
|||
} |
|||
.ql-snow a { |
|||
color: #06c; |
|||
} |
|||
.ql-container.ql-snow { |
|||
border: 1px solid #ccc; |
|||
} |
@ -0,0 +1,86 @@ |
|||
// 使用require语法引入gm-crypt
|
|||
import { sm4 } from 'gm-crypt' |
|||
|
|||
// SM4默认配置
|
|||
const sm4Config = { |
|||
key: "0F2U3wabvOMfs2Y1", |
|||
mode: "ecb", // 加密的方式有两种,ecb和cbc两种,这里使用的是cbc,cbc模式还要加一个iv的参数,ecb不用
|
|||
// cipherType: "base64", //
|
|||
// iv: "1234567890abcdef", // 16字符,符合要求
|
|||
} |
|||
|
|||
// 创建全局SM4实例
|
|||
const sm4Instance = new sm4(sm4Config) |
|||
|
|||
/** |
|||
* SM4加密 |
|||
* @param {string} data - 要加密的数据 |
|||
* @param {object} config - 可选的配置参数,会覆盖默认配置 |
|||
* @returns {string} - 加密后的数据 |
|||
*/ |
|||
export function encrypt(data, config = {}) { |
|||
if (!data) { |
|||
console.warn('SM4加密:数据为空') |
|||
return '' |
|||
} |
|||
console.log(data, 666); |
|||
|
|||
try { |
|||
const finalConfig = { ...sm4Config, ...config } |
|||
const sm4Cipher = new sm4(finalConfig) |
|||
console.log(sm4Cipher.encrypt(data), '加密'); |
|||
return sm4Cipher.encrypt(data) |
|||
} catch (error) { |
|||
console.error('SM4加密失败:', error) |
|||
return '' |
|||
} |
|||
} |
|||
|
|||
/** |
|||
* SM4解密 |
|||
* @param {string} data - 要解密的数据 |
|||
* @param {object} config - 可选的配置参数,会覆盖默认配置 |
|||
* @returns {string} - 解密后的数据 |
|||
*/ |
|||
export function decrypt(data, config = {}) { |
|||
if (!data) { |
|||
console.warn('SM4解密:数据为空') |
|||
return '' |
|||
} |
|||
|
|||
try { |
|||
const finalConfig = { ...sm4Config, ...config } |
|||
const sm4Cipher = new sm4(finalConfig) |
|||
console.log(sm4Cipher.decrypt(data), '解密'); |
|||
|
|||
return sm4Cipher.decrypt(data) |
|||
} catch (error) { |
|||
console.error('SM4解密失败:', error) |
|||
return '' |
|||
} |
|||
} |
|||
|
|||
/** |
|||
* 获取默认SM4实例 |
|||
* @returns {object} - SM4实例 |
|||
*/ |
|||
export function getSm4Instance() { |
|||
return sm4Instance |
|||
} |
|||
|
|||
/** |
|||
* 获取默认配置 |
|||
* @returns {object} - 默认配置 |
|||
*/ |
|||
export function getDefaultConfig() { |
|||
return { ...sm4Config } |
|||
} |
|||
|
|||
// 导出所有方法
|
|||
export default { |
|||
encrypt, |
|||
decrypt, |
|||
getSm4Instance, |
|||
getDefaultConfig, |
|||
sm4Config |
|||
} |
@ -0,0 +1,749 @@ |
|||
<template> |
|||
<div class="H5_messageCss mt-20"> |
|||
<div class="H5_titleBacBox"> |
|||
<span style="color: rgba(244,89,2,1);font-size: 14px;font-weight: bold;">温馨提示</span> |
|||
<p style="color: rgba(244,89,2,1);font-size: 13px;line-height: 19px;margin-top: 8px;"> |
|||
<span>已就业:</span>申请人应完成就业登记或按规定正在我市缴纳城镇企业职工基本养老保险(基本医疗保险);灵活就业的申请人应完成灵活就业登记或按规定正在我市缴纳城镇企业职工基本养老保险(基本医疗保险)。 |
|||
</p> |
|||
<p style="color: rgba(244,89,2,1);font-size: 13px;line-height: 19px;margin-top: 8px;"> |
|||
<span>已创业:</span>申请人创办企业、个体工商户及民办非企业单位、社会团体、事务所等创业实体。可以是法定代表人,可以是股东,且对股东占股比例没有要求,需在工商登记或相应登记(统一社会信用代码证)中能查到担任法定代表人、占股等信息。 |
|||
</p> |
|||
<!-- <p style="color: rgba(244,89,2,1);font-size: 13px;line-height: 19px;margin-top: 8px;"> |
|||
系统已自动获取"爱山东"绑定手机号用于接收平台信息,如需变更,请及时前往"爱山东"我的—编辑资料—手机号功能模块更新。 |
|||
</p> --> |
|||
<span style="color: rgba(244,89,2,1);font-size: 13px;font-weight: bold;">请如实填写您的信息,以免影响审核。</span> |
|||
</div> |
|||
<div class="H5_titleBac" style="padding-bottom: 70px;"> |
|||
<el-form> |
|||
<span |
|||
style="color: rgba(16,16,16,1);font-size: 16px;font-weight:bold;width: 100%;text-align: left;margin-top: 10px;"> |
|||
请先选择您的申请条件: |
|||
</span> |
|||
<p style="width:100%;text-align:left;color: rgba(16,16,16,1);font-size: 16px;margin: 20px 0;">1、您的院校类型</p> |
|||
<div class="H5_radioCss"> |
|||
<el-radio-group v-model="schoolType" class="radio-group"> |
|||
<el-radio label="0">普通高等学校</el-radio> |
|||
<el-radio label="1">技工学校</el-radio> |
|||
</el-radio-group> |
|||
</div> |
|||
<p style="width:100%;text-align:left;color: rgba(16,16,16,1);font-size: 16px;margin: 20px 0;">2、您当前的学业状态</p> |
|||
<div class="H5_radioCss"> |
|||
<el-radio-group v-model="studyState" class="radio-group"> |
|||
<el-radio label="1">已毕业</el-radio> |
|||
<el-radio label="0">毕业学年内</el-radio> |
|||
</el-radio-group> |
|||
</div> |
|||
<p style="width:100%;text-align:left;color: rgba(16,16,16,1);font-size: 16px;margin: 20px 0;">3、您当前的工作状态</p> |
|||
<div class="H5_radioCss"> |
|||
<el-radio-group v-model="employState" class="radio-group"> |
|||
<el-radio label="0">求职中</el-radio> |
|||
<el-radio label="1">已就业</el-radio> |
|||
<el-radio label="2">已创业</el-radio> |
|||
</el-radio-group> |
|||
</div> |
|||
<div v-if="!employState || employState == '0'" class="w-full"> |
|||
<p style="width:100%;text-align:left;color: rgba(16,16,16,1);font-size: 16px;margin: 20px 0;">4、您是否是低保家庭毕业生</p> |
|||
<p style="color:#fa9629;font-size: 13px;"> |
|||
按政策要求,低保家庭须求职中的毕业生可选。 |
|||
</p> |
|||
<div class="H5_radioCss"> |
|||
<el-radio-group v-model="greenChannelState" class="radio-group" @change="handleChangePoor"> |
|||
<el-radio label="1">是</el-radio> |
|||
<el-radio label="0">否</el-radio> |
|||
</el-radio-group> |
|||
</div> |
|||
<div v-show="greenChannelState == '1'"> |
|||
<p style="width:100%;text-align:left;color: rgba(16,16,16,1);font-size: 16px;margin: 20px 0;"> |
|||
请填写低保家庭申请人信息 |
|||
</p> |
|||
<div class="form-group"> |
|||
<el-form-item label="申请人姓名" required> |
|||
<el-input v-model="dibaoApplicationName" placeholder="请输入" /> |
|||
</el-form-item> |
|||
<el-form-item label="身份证号" required> |
|||
<el-input v-model="dibaoApplicationIdCard" placeholder="请输入" /> |
|||
</el-form-item> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<el-divider class="H5_divider" /> |
|||
<p |
|||
style="width:100%;text-align:left;color: rgba(16,16,16,1);font-size: 16px;margin-top: 20px;display: flex;align-items: center;justify-content: space-between;"> |
|||
联系电话:{{ desensitizePhoneNumber(telephone || userInfo.mobile) }} |
|||
<img src="@/assets/images/eyeOpen.png" alt="" class="H5_eye" @click="eyeData = !eyeData" v-if="!eyeData"> |
|||
<img src="@/assets/images/eyeClose.png" alt="" class="H5_eye" @click="eyeData = !eyeData" v-if="eyeData"> |
|||
</p> |
|||
<p style="width:100%;text-align:left;color: rgba(16,16,16,1);font-size: 16px;margin: 20px 0;"> |
|||
是否更换联系电话(用于接收短信通知)</p> |
|||
<div class="H5_radioCss" style="margin-top: 0px;"> |
|||
<el-radio-group v-model="isUpdatePhone" class="radio-group" @change="handleIsUpPhone"> |
|||
<el-radio label="0">否</el-radio> |
|||
<el-radio label="1">是</el-radio> |
|||
</el-radio-group> |
|||
</div> |
|||
<el-form-item label="新的联系电话" required v-if="isUpdatePhone == 1"> |
|||
<el-input v-model="updatePhone" placeholder="请输入" @blur="handlePhoneNumber" /> |
|||
</el-form-item> |
|||
<!-- <div class="H5_yzmCss" v-if="isUpdatePhone == 1"> |
|||
<el-form-item label="验证码" required> |
|||
<el-input v-model="verificationCode" placeholder="请输入" /> |
|||
</el-form-item> |
|||
<div class="H5_yzmItem"> |
|||
<span v-if="SendYzmFlagShow" @click="handleSendYzm">发送验证码</span> |
|||
<span class="timeRemider " v-else>{{ countDownTime }}s后重发</span> |
|||
</div> |
|||
</div> --> |
|||
<p style="font-size: 14px;line-height: 23px;text-indent: 0.5em;margin-top: 10px;" class="H5_checkbox"> |
|||
<label style="font-size: 20px;"> |
|||
<input type="checkbox" v-model="checked" style="width:18px; height:18px;"> |
|||
</label> |
|||
我承诺所填信息均为本人当前真实有效信息,若与事实不符造成未获得入住资格等后果均由本人自行承担。 |
|||
</p> |
|||
</el-form> |
|||
</div> |
|||
<div class="H5_btn" :class="!checked ? 'H5_btnDisable' : ''" @click="handleImOk" v-if="employState == 0">下一步</div> |
|||
<div class="H5_btn" :class="!checked ? 'H5_btnDisable' : ''" @click="checkInfoCollection" v-else>同意并提交</div> |
|||
|
|||
<el-dialog v-model="isPoor" title="温馨提示" width="90%" :close-on-click-modal="false" class="H5_popup1"> |
|||
<img src="@/assets/images/changeTimeBac.png" alt="" style="width: 100%;position: absolute;top: 0;height: 80px;"> |
|||
<img src="@/assets/images/changeTimeBac2.png" alt="" |
|||
style="width: 100%;position: absolute;height: calc(100% - 80px);bottom: 0;"> |
|||
<img src="@/assets/images/changeTime.png" alt="" |
|||
style="width: 109px;height: 66px;position: absolute;top: 8px;right: 14px;"> |
|||
<div class="H5_popupTitle"> |
|||
<span>温馨提示</span> |
|||
</div> |
|||
<p class="H5_popupText" style="font-size: 14px;"> |
|||
如果您是绿色通道人员,需要补充相关证明材料并由工作人员审核。 |
|||
</p> |
|||
|
|||
<template #footer> |
|||
<div class="H5_popupBottom"> |
|||
<el-button type="primary" round class="H5_sureButton" style="height:35px;width:100px;" @click="isPoor = false"> |
|||
知道了 |
|||
</el-button> |
|||
</div> |
|||
</template> |
|||
</el-dialog> |
|||
|
|||
<el-dialog v-model="changeSure" title="温馨提醒" width="80%" :close-on-click-modal="false" class="H5_popup2"> |
|||
<img src="@/assets/images/changeRoomOkBac.png" alt="" |
|||
style="width: 100%;height: 100%;position: absolute;top: 0;z-index: -1;"> |
|||
<img src="@/assets/images/shibai.png" style="width: 118.49px;height: 101px;margin: auto;"> |
|||
<div class="H5_popup2Title" style="padding: 0 20px;width: 100%;"> |
|||
<span style="font-size: 24px;font-weight: bold;">温馨提醒</span> |
|||
<p style="font-size: 17px;margin-top: 8px;">{{ changeMsg }}</p> |
|||
</div> |
|||
<template #footer> |
|||
<div class="H5_popupBottom" style="margin: 20px 0;"> |
|||
<el-button type="danger" round style="height:35px;" @click="handleSure" v-show="codeData == 1003"> |
|||
确认取消 |
|||
</el-button> |
|||
<el-button type="primary" round class="H5_sureButton" style="height:35px;" @click="handleThink" |
|||
v-show="codeData == 1003"> |
|||
我再想想 |
|||
</el-button> |
|||
<el-button type="primary" round class="H5_sureButton" style="height:35px;" |
|||
v-show="codeData == 1002 || codeData == 1001" @click="changeSure = false; router.push('/home')"> |
|||
我知道了 |
|||
</el-button> |
|||
</div> |
|||
</template> |
|||
</el-dialog> |
|||
</div> |
|||
</template> |
|||
<script setup> |
|||
import { ref, reactive, watch, onMounted, onBeforeUnmount } from 'vue' |
|||
|
|||
import { useRouter } from 'vue-router' |
|||
import { ElMessage } from 'element-plus' |
|||
import api from '@/api/indexH5' // 接口文件 |
|||
import request from '@/utils/http' // 导入 HTTP 客户端 |
|||
import { encrypt, decrypt } from '@/utils/sm4' // 导入 SM4 加密解密 |
|||
|
|||
const router = useRouter() |
|||
|
|||
// 响应式数据 |
|||
const countDownTime = ref(60) |
|||
const SendYzmFlagShow = ref(true) |
|||
const verificationCode = ref('') |
|||
const eyeData = ref(true) |
|||
const changeSure = ref(false) |
|||
const changeMsg = ref('') |
|||
const codeData = ref('') |
|||
const checked = ref(false) |
|||
const isPoor = ref(false) |
|||
const isDisabled = ref(false) |
|||
const schoolType = ref('') |
|||
const studyState = ref('') |
|||
const employState = ref('') |
|||
const updatePhone = ref('') |
|||
const isUpdatePhone = ref('0') |
|||
const greenChannelState = ref('0') |
|||
const type = ref('') |
|||
const queryData = ref({}) |
|||
const userInfo = ref(JSON.parse('{"name":"马魁","papersnumber":"371102199406042213","sex":"1","mobile":"17637262081","uuid":"2de928f4c75da51a6e5d1dd3ced7b6c9","paperstype":"1"}')) |
|||
const dibaoApplicationName = ref('') |
|||
const dibaoApplicationIdCard = ref('') |
|||
const graduateId = ref('') |
|||
const telephone = ref('') |
|||
const initialFormData = ref({}) |
|||
|
|||
// 方法 |
|||
const handleSendYzm = () => { |
|||
if (!updatePhone.value) { |
|||
ElMessage.error('请先填写手机号码!') |
|||
return |
|||
} |
|||
let timer = null |
|||
|
|||
request.get(api.sendVerificationCode, { |
|||
params: { |
|||
mobile: encrypt(updatePhone.value), |
|||
}, |
|||
}).then(function (data) { |
|||
if (data.code == 200) { |
|||
SendYzmFlagShow.value = false |
|||
clearInterval(timer) |
|||
timer = setInterval(function () { |
|||
if (countDownTime.value > 1) { |
|||
countDownTime.value-- |
|||
} else { |
|||
countDownTime.value = 60 |
|||
SendYzmFlagShow.value = true |
|||
clearInterval(timer) |
|||
} |
|||
}, 1000) |
|||
} |
|||
}).catch(error => { |
|||
console.error('出错:', error) |
|||
}) |
|||
} |
|||
|
|||
const desensitizePhoneNumber = (phone) => { |
|||
return eyeData.value ? phone.replace(/^(\d{3})\d{4}(\d{4})$/, "$1****$2") : phone |
|||
} |
|||
|
|||
const handleThink = () => { |
|||
changeSure.value = false |
|||
} |
|||
|
|||
const handleSure = () => { |
|||
request.post(api.cancelRegister, {}).then(function (data) { |
|||
if (data.code == 200) { |
|||
ElMessage.success(data.msg) |
|||
changeSure.value = false |
|||
handleImOk() |
|||
} |
|||
}).catch(error => { |
|||
console.error('出错:', error) |
|||
}) |
|||
} |
|||
|
|||
const restoreFormData = () => { |
|||
const savedData = localStorage.getItem('sqtjNew_formData') |
|||
console.log('尝试恢复本地数据:', savedData) |
|||
if (savedData) { |
|||
try { |
|||
const formData = JSON.parse(savedData) |
|||
console.log('解析的本地数据:', formData) |
|||
// 检查数据是否在24小时内(可选,防止数据过期) |
|||
const isExpired = Date.now() - formData.timestamp > 24 * 60 * 60 * 1000 |
|||
console.log('数据是否过期:', isExpired) |
|||
if (!isExpired) { |
|||
schoolType.value = formData.schoolType || '' |
|||
studyState.value = formData.studyState || '' |
|||
employState.value = formData.employState || '' |
|||
greenChannelState.value = formData.greenChannelState || '0' |
|||
dibaoApplicationName.value = formData.dibaoApplicationName || '' |
|||
dibaoApplicationIdCard.value = formData.dibaoApplicationIdCard || '' |
|||
console.log('恢复后的数据:', { |
|||
schoolType: schoolType.value, |
|||
studyState: studyState.value, |
|||
employState: employState.value, |
|||
greenChannelState: greenChannelState.value, |
|||
dibaoApplicationName: dibaoApplicationName.value, |
|||
dibaoApplicationIdCard: dibaoApplicationIdCard.value |
|||
}) |
|||
} |
|||
} catch (error) { |
|||
console.error('恢复表单数据失败:', error) |
|||
} |
|||
} |
|||
} |
|||
|
|||
// 清除本地存储的表单数据 |
|||
const clearFormData = () => { |
|||
localStorage.removeItem('sqtjNew_formData') |
|||
} |
|||
|
|||
// 保存表单数据到localStorage |
|||
const saveFormData = () => { |
|||
const formData = { |
|||
schoolType: schoolType.value, |
|||
studyState: studyState.value, |
|||
employState: employState.value, |
|||
greenChannelState: greenChannelState.value, |
|||
dibaoApplicationName: dibaoApplicationName.value, |
|||
dibaoApplicationIdCard: dibaoApplicationIdCard.value, |
|||
timestamp: Date.now() |
|||
} |
|||
localStorage.setItem('sqtjNew_formData', JSON.stringify(formData)) |
|||
} |
|||
|
|||
const selectMzGraduateInfoH5 = () => { |
|||
request.get(api.selectMzGraduateInfoH5, { |
|||
params: { |
|||
// idCard: userInfo.value.papersnumber, |
|||
}, |
|||
}).then(function (data) { |
|||
if (data.code == 200) { |
|||
// console.log('毕业生信息', data.data) |
|||
graduateId.value = data.data.id |
|||
// telephone.value = data.data.telephone//接口不返回手机号改用爱山东实时获取的 |
|||
graduateInfoCollectionList(data.data.id) |
|||
} |
|||
}).catch(error => { |
|||
console.error('出错:', error) |
|||
}) |
|||
} |
|||
|
|||
const handleIsUpPhone = () => { |
|||
verificationCode.value = '' |
|||
updatePhone.value = '' |
|||
} |
|||
|
|||
const handlePhoneNumber = () => { |
|||
const phonePattern = /^1[3-9]\d{9}$/ // 常用的手机号码正则(中国手机号示例) |
|||
if (!phonePattern.test(updatePhone.value) && updatePhone.value != '') { |
|||
ElMessage.error('手机号码输入不规范') |
|||
updatePhone.value = '' |
|||
} else { |
|||
|
|||
} |
|||
} |
|||
|
|||
const graduateInfoCollectionList = (id) => { |
|||
request.get(api.graduateInfoCollectionNEW, { |
|||
params: { |
|||
graduateId: id, |
|||
}, |
|||
}).then(function (data) { |
|||
// console.log('chaxun', data.rows) |
|||
initialFormData.value = { |
|||
schoolType: data.data.schoolType.toString(), |
|||
studyState: data.data.studyState.toString(), |
|||
employState: data.data.employState.toString(), |
|||
greenChannelState: data.data.greenChannelState.toString(), |
|||
dibaoApplicationName: data.data.dibaoApplicationName, |
|||
dibaoApplicationIdCard: data.data.dibaoApplicationIdCard, |
|||
telephone: decrypt(data.data.telephone).toString() |
|||
} |
|||
dibaoApplicationName.value = decrypt((data.data.dibaoApplicationName)).toString() |
|||
dibaoApplicationIdCard.value = decrypt((data.data.dibaoApplicationIdCard).toString()) |
|||
schoolType.value = (data.data.schoolType).toString() |
|||
studyState.value = (data.data.studyState).toString() |
|||
employState.value = (data.data.employState).toString() |
|||
greenChannelState.value = (data.data.greenChannelState).toString() |
|||
telephone.value = decrypt(data.data.telephone).toString() |
|||
// 如果服务器数据为空,则恢复本地保存的数据 |
|||
if (!telephone.value || !dibaoApplicationName.value || !dibaoApplicationIdCard.value || |
|||
dibaoApplicationName.value === 'null' || dibaoApplicationIdCard.value === 'null' || |
|||
dibaoApplicationName.value === 'undefined' || dibaoApplicationIdCard.value === 'undefined' || |
|||
!schoolType.value || !studyState.value || !employState.value) { |
|||
console.log('服务器数据为空,尝试恢复本地数据') |
|||
restoreFormData() |
|||
} |
|||
|
|||
}).catch(error => { |
|||
console.error('出错:', error) |
|||
// 如果请求失败,也尝试恢复本地数据 |
|||
console.log('请求失败,尝试恢复本地数据') |
|||
}) |
|||
} |
|||
|
|||
const validator = (val) => { |
|||
const card15 = /^[1-9]\d{5}\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{2}[0-9Xx]$/ |
|||
const card18 = /^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/ |
|||
return card15.test(val) || card18.test(val) |
|||
} |
|||
|
|||
const handleChangePoor = (val) => { |
|||
console.log(val) |
|||
if (val == '1') { |
|||
// isPoor.value = true |
|||
} |
|||
} |
|||
|
|||
const checkInfoCollection = () => { |
|||
if (!checked.value) { |
|||
ElMessage.warning('请先确认"我承诺所填信息均为本人当前真实有效信息,若与事实不符造成未获得入住资格等后果均由本人自行承担。"的全部内容') |
|||
return |
|||
} |
|||
if (updatePhone.value == '' && isUpdatePhone.value == 1) { |
|||
ElMessage.error('请输入正确的手机号码!') |
|||
return |
|||
} |
|||
// if (verificationCode.value == '' && isUpdatePhone.value == 1) { |
|||
// showToast('输入验证码!') |
|||
// return |
|||
// } |
|||
request.get(api.checkInfoCollection + employState.value).then(function (data) { |
|||
codeData.value = data.code |
|||
if (data.code == 200) { |
|||
handleImOk() |
|||
} else if (data.code == 1001) { |
|||
// router.push({ path: '/xfjl' }) |
|||
changeMsg.value = data.msg |
|||
changeSure.value = true |
|||
} else if (data.code == 1002) { |
|||
changeSure.value = true |
|||
changeMsg.value = data.msg |
|||
} else if (data.code == 1003) { |
|||
changeSure.value = true |
|||
changeMsg.value = data.msg |
|||
} |
|||
}).catch(error => { |
|||
console.error('出错:', error) |
|||
}) |
|||
} |
|||
|
|||
// 编辑毕业生信息(更新) |
|||
const graduateEdit = () => { |
|||
// 新增:对比表单和初始数据 |
|||
const currentFormData = { |
|||
schoolType: schoolType.value, |
|||
studyState: studyState.value, |
|||
employState: employState.value, |
|||
greenChannelState: greenChannelState.value, |
|||
dibaoApplicationName: dibaoApplicationName.value, |
|||
dibaoApplicationIdCard: dibaoApplicationIdCard.value, |
|||
telephone: updatePhone.value ? updatePhone.value : telephone.value, |
|||
// verificationCode: verificationCode.value |
|||
} |
|||
if (JSON.stringify(currentFormData) == JSON.stringify(initialFormData.value)) { |
|||
ElMessage.info('您提交的信息未更新,无需提交。') |
|||
return |
|||
} |
|||
let data = { |
|||
contactPhone: encrypt(userInfo.value.mobile), |
|||
hopeCareer: '', |
|||
hopeSalary: '', |
|||
hopeWorkAddress: '', |
|||
uuid: userInfo.value.uuid, |
|||
gender: userInfo.value.sex == 1 ? 1 : 2, |
|||
telephone: isUpdatePhone.value == '1' ? encrypt(updatePhone.value) : (encrypt(telephone.value) || encrypt(userInfo.value.mobile)), |
|||
graduateName: encrypt(userInfo.value.name), |
|||
graduateId: graduateId.value, |
|||
idCard: encrypt(userInfo.value.papersnumber), |
|||
schoolType: Number(schoolType.value), // 0高等院校,1技术院校 |
|||
studyState: Number(studyState.value), // 0未毕业,1已毕业 |
|||
employState: Number(employState.value), // 毕业生状态 0求职 1在职 2创业 |
|||
greenChannelState: (employState.value == '0' && studyState.value == '0') ? Number(greenChannelState.value) : 0, // 是否属于以下绿色通道人员 0否,1是 |
|||
dibaoApplicationName: (greenChannelState.value == '1' && employState.value == '0' && studyState.value == '0') ? encrypt(dibaoApplicationName.value) : '', // 申请人姓名 |
|||
dibaoApplicationIdCard: (greenChannelState.value == '1' && employState.value == '0' && studyState.value == '0') ? encrypt(dibaoApplicationIdCard.value) : '', // 申请人身份证号 |
|||
verificationCode: verificationCode.value, |
|||
} |
|||
request.post(api.graduateInfoCollection, data).then(function (data) { |
|||
console.log('更新成功与否', data) |
|||
if (data.code == 200) { |
|||
// 清除本地存储的表单数据 |
|||
clearFormData() |
|||
router.push('/yycg2') |
|||
} else { |
|||
ElMessage.error(data.msg) |
|||
} |
|||
}).catch(error => { |
|||
console.error('出错:', error) |
|||
}) |
|||
} |
|||
|
|||
const handleImOk = () => { |
|||
if (!checked.value) { |
|||
ElMessage.warning('请先确认"我承诺所填信息均为本人当前真实有效信息,若与事实不符造成未获得入住资格等后果均由本人自行承担。"的全部内容') |
|||
return |
|||
} |
|||
if (employState.value == '0' && greenChannelState.value == '1') { |
|||
if (dibaoApplicationName.value == '' || dibaoApplicationIdCard.value == '') { |
|||
ElMessage.warning('请完善信息') |
|||
return false |
|||
} |
|||
if (validator(dibaoApplicationIdCard.value)) { |
|||
|
|||
} else { |
|||
ElMessage.error('格式不正确,请重新输入!') |
|||
dibaoApplicationIdCard.value = '' |
|||
return |
|||
} |
|||
} else { |
|||
// dibaoApplicationName.value = '' |
|||
// dibaoApplicationIdCard.value = '' |
|||
} |
|||
if (updatePhone.value == '' && isUpdatePhone.value == 1) { |
|||
ElMessage.error('请输入正确的手机号码!') |
|||
return |
|||
} |
|||
// if (verificationCode.value == '' && isUpdatePhone.value == 1) { |
|||
// showToast('输入验证码!') |
|||
// return |
|||
// } |
|||
if (schoolType.value != '' && studyState.value != '' && employState.value != '' && greenChannelState.value != '') { |
|||
if (employState.value == 0) { |
|||
const sqtjInfo = { |
|||
contactPhone: encrypt(userInfo.value.mobile), |
|||
uuid: userInfo.value.uuid, |
|||
gender: userInfo.value.sex == 1 ? 1 : 2, |
|||
telephone: isUpdatePhone.value == '1' ? encrypt(updatePhone.value) : (encrypt(telephone.value) || encrypt(userInfo.value.mobile)), |
|||
graduateName: encrypt(userInfo.value.name), |
|||
graduateId: graduateId.value, |
|||
idCard: encrypt(userInfo.value.papersnumber), |
|||
schoolType: Number(schoolType.value), // 0高等院校,1技术院校 |
|||
studyState: Number(studyState.value), // 0未毕业,1已毕业 |
|||
employState: Number(employState.value), // 毕业生状态 0求职 1在职 2创业 |
|||
greenChannelState: employState.value == '0' ? Number(greenChannelState.value) : 0, // 是否属于以下绿色通道人员 0否,1是 |
|||
dibaoApplicationName: (greenChannelState.value == '1' && employState.value == '0') ? encrypt(dibaoApplicationName.value) : '', // 申请人姓名 |
|||
dibaoApplicationIdCard: (greenChannelState.value == '1' && employState.value == '0') ? encrypt(dibaoApplicationIdCard.value) : '', // 申请人身份证号 |
|||
verificationCode: verificationCode.value |
|||
} |
|||
router.push({ |
|||
path: '/qzxxNew', |
|||
query: { |
|||
data: JSON.stringify(sqtjInfo) |
|||
} |
|||
}) |
|||
// 清除本地存储的表单数据,因为数据已经传递到下一个页面 |
|||
clearFormData() |
|||
} else { |
|||
graduateEdit() |
|||
} |
|||
} else { |
|||
ElMessage.warning('请完善信息') |
|||
} |
|||
} |
|||
|
|||
// 监听表单数据变化,自动保存到localStorage |
|||
watch(schoolType, () => { |
|||
saveFormData() |
|||
}) |
|||
|
|||
watch(studyState, () => { |
|||
saveFormData() |
|||
}) |
|||
|
|||
watch(employState, () => { |
|||
saveFormData() |
|||
}) |
|||
|
|||
watch(greenChannelState, () => { |
|||
saveFormData() |
|||
}) |
|||
|
|||
watch(dibaoApplicationName, () => { |
|||
saveFormData() |
|||
}) |
|||
|
|||
watch(dibaoApplicationIdCard, () => { |
|||
saveFormData() |
|||
}) |
|||
|
|||
// 生命周期钩子 |
|||
onMounted(() => { |
|||
restoreFormData() |
|||
// userInfo.value = JSON.parse() |
|||
console.log('userInfo', userInfo.value) |
|||
|
|||
// const paramsStr = route.query |
|||
// queryData.value = paramsStr |
|||
selectMzGraduateInfoH5() |
|||
}) |
|||
|
|||
// 组件销毁前保存当前表单数据 |
|||
onBeforeUnmount(() => { |
|||
saveFormData() |
|||
}) |
|||
</script> |
|||
<style lang="scss" scoped> |
|||
.H5_messageCss { |
|||
width: 100%; |
|||
height: 100vh; |
|||
z-index: 2; |
|||
position: absolute; |
|||
top: 0px; |
|||
left: 0px; |
|||
background-color: rgb(255, 255, 255); |
|||
} |
|||
|
|||
.H5_titleBac { |
|||
width: 100%; |
|||
background: url('@/assets/images/resultBac.png') no-repeat center/100% 100%; |
|||
display: flex; |
|||
flex-direction: column; |
|||
align-items: center; |
|||
padding: 10px 25px 0px 25px; |
|||
} |
|||
|
|||
.H5_btn { |
|||
position: fixed; |
|||
bottom: 20px; |
|||
left: 0; |
|||
right: 0; |
|||
width: 414px; |
|||
height: 80px; |
|||
line-height: 70px; |
|||
border-radius: 600px; |
|||
background: linear-gradient(86.25deg, rgba(13, 198, 198, 1) 3.03%, rgba(19, 194, 194, 1) 3.03%, rgba(70, 219, 213, 1) 96.43%); |
|||
color: rgba(255, 255, 255, 1); |
|||
font-size: 34px; |
|||
text-align: center; |
|||
margin: auto; |
|||
margin-top: 80px; |
|||
font-family: AlibabaPuHui-regular; |
|||
} |
|||
|
|||
.H5_btnDisable { |
|||
background: #9F9F9F; |
|||
color: #FFFFFF; |
|||
} |
|||
|
|||
.H5_radioCss { |
|||
height: 70px; |
|||
margin-top: 20px; |
|||
width: 100%; |
|||
display: flex; |
|||
justify-content: space-evenly; |
|||
|
|||
.radio-group { |
|||
width: 100%; |
|||
display: flex; |
|||
justify-content: space-around; |
|||
} |
|||
|
|||
:deep(.el-radio) { |
|||
font-size: 30px; |
|||
} |
|||
} |
|||
|
|||
.form-group { |
|||
margin: 20px 0; |
|||
|
|||
:deep(.el-form-item) { |
|||
margin-bottom: 15px; |
|||
} |
|||
|
|||
:deep(.el-form-item__label) { |
|||
font-size: 16px; |
|||
color: rgba(16,16,16,1); |
|||
} |
|||
|
|||
:deep(.el-input) { |
|||
width: 100%; |
|||
} |
|||
} |
|||
|
|||
.H5_titleBacBox { |
|||
width: 100%; |
|||
background-color: rgba(255, 240, 217, 1); |
|||
padding: 10px 20px; |
|||
} |
|||
|
|||
// 弹窗样式 |
|||
.H5_popup1 { |
|||
:deep(.el-dialog) { |
|||
border-radius: 20px; |
|||
} |
|||
|
|||
.H5_popupText { |
|||
width: calc(100% - 40px); |
|||
position: absolute; |
|||
top: 150px; |
|||
left: 20px; |
|||
border-radius: 12px; |
|||
padding: 20px 30px; |
|||
color: rgba(16, 16, 16, 1); |
|||
} |
|||
|
|||
.H5_popupTitle { |
|||
position: absolute; |
|||
display: flex; |
|||
flex-direction: column; |
|||
color: rgba(0, 0, 0, 1); |
|||
font-size: 32px; |
|||
font-weight: bold; |
|||
left: 20px; |
|||
top: 50px; |
|||
} |
|||
|
|||
.H5_popupBottom { |
|||
text-align: center; |
|||
width: 100%; |
|||
|
|||
.H5_sureButton { |
|||
background: linear-gradient(86.25deg, rgba(13, 198, 198, 1) 3.03%, rgba(19, 194, 194, 1) 3.03%, rgba(70, 219, 213, 1) 96.43%); |
|||
border: none; |
|||
} |
|||
} |
|||
} |
|||
|
|||
.H5_checkbox :deep().el-checkbox__inner { |
|||
width: 30px; |
|||
height: 30px; |
|||
border: 2px solid black; |
|||
} |
|||
|
|||
.H5_checkbox :deep().el-checkbox__inner::after { |
|||
width: 10px !important; |
|||
height: 15px !important; |
|||
} |
|||
|
|||
.H5_popup2 { |
|||
:deep(.el-dialog) { |
|||
border-radius: 20px; |
|||
} |
|||
|
|||
.H5_popup2Title { |
|||
display: flex; |
|||
flex-direction: column; |
|||
align-items: center; |
|||
width: 100%; |
|||
color: rgba(0, 0, 0, 1); |
|||
} |
|||
|
|||
.H5_popupBottom { |
|||
display: flex; |
|||
justify-content: space-evenly; |
|||
width: 100%; |
|||
|
|||
.H5_sureButton { |
|||
background: linear-gradient(86.25deg, rgba(13, 198, 198, 1) 3.03%, rgba(19, 194, 194, 1) 3.03%, rgba(70, 219, 213, 1) 96.43%); |
|||
border: none; |
|||
} |
|||
} |
|||
} |
|||
|
|||
.H5_divider { |
|||
width: 100%; |
|||
border-color: #000; |
|||
} |
|||
|
|||
.H5_eye { |
|||
width: 40px; |
|||
height: 35px; |
|||
} |
|||
|
|||
.H5_yzmCss { |
|||
width: 100%; |
|||
display: flex; |
|||
align-items: center; |
|||
} |
|||
|
|||
.H5_yzmItem { |
|||
width: 40%; |
|||
border: gray solid 1px; |
|||
border-radius: 10px; |
|||
display: flex; |
|||
align-items: center; |
|||
justify-content: center; |
|||
height: 80px; |
|||
font-size: 28px; |
|||
} |
|||
</style> |