订单处理冲突,添加验证,host统一,课程部分组件冲突解决

dev
e 3 years ago
parent 0a36bda121
commit 944f2113c8
  1. 5
      src/assets/css/main.css
  2. 10
      src/components/Sidebar.vue
  3. 71
      src/utils/api.js
  4. 6
      src/utils/core.js
  5. 97
      src/views/course/AddCurriculum.vue
  6. 41
      src/views/course/Curriculum.vue
  7. 2
      src/views/course/assetConfig.vue
  8. 150
      src/views/course/courseconfig.vue
  9. 37
      src/views/order/AddOrder.vue
  10. 17
      src/views/order/Order.vue
  11. 15
      src/views/order/selectClient.vue

@ -247,6 +247,11 @@ li {
display: flex;
align-items: center;
}
.flex-c-c{
display: flex;
align-items: center;
justify-content: center;
}
.flex-between{
display: flex;
align-items: center;

@ -70,11 +70,11 @@ export default {
index: 'order',
title: '订单管理'
},
{
icon: 'el-icon-lx-emoji',
index: 'configure',
title: '服务配置'
},
// {
// icon: 'el-icon-lx-emoji',
// index: 'configure',
// title: ''
// },
{
icon: 'el-icon-lx-emoji',
index: 'curriculum',

@ -39,20 +39,21 @@ export default {
queryPlatform: `${host}/liuwanr/userInfo/queryPlatform`,
// 用户管理
delUserAccounts: `${host3}/users/users/userAccount/delUserAccounts`,
queryUserInfoDetails: `${host3}/users/userAccount/queryUserInfoDetails`,
queryUserInfoList: `${host3}/users/users/userAccount/queryUserInfoList`,
resetPwd: `${host3}/users/users/userAccount/resetPwd`,
selectAccountDetail: `${host3}/users/users/userAccount/selectAccountDetail`,
selectUserSysBind: `${host3}/users/users/userAccount/selectUserSysBind`,
updatePersonCenter: `${host3}/users/users/userAccount/updatePersonCenter`,
updateUserAvatars: `${host2}/users/users/userAccount/updateUserAvatars`,
userInfo: `${host3}/users/users/userAccount/userInfo`,
bindPhoneOrEmail: `${host3}/users/users/userAccount/bindPhoneOrEmail`,
sendPhoneOrEmailCode: `${host3}/users/users/userAccount/sendPhoneOrEmailCode`,
updateAccountEnable: `${host3}/users/users/userAccount/updateAccountEnable`,
updateAccountAllEnable: `${host3}/users/users/userAccount/updateAccountAllEnable`,
examinePassword: `${host3}/users/users/userAccount/examinePassword`,
delUserAccounts: `${host}/users/users/userAccount/delUserAccounts`,
queryUserInfoDetails: `${host}/users/users/userAccount/queryUserInfoDetails`,
queryUserInfoList: `${host}/users/users/userAccount/queryUserInfoList`,
resetPwd: `${host}/users/users/userAccount/resetPwd`,
selectAccountDetail: `${host}/users/users/userAccount/selectAccountDetail`,
selectUserSysBind: `${host}/users/users/userAccount/selectUserSysBind`,
updatePersonCenter: `${host}/users/users/userAccount/updatePersonCenter`,
updateUserAvatars: `${host}/users/users/userAccount/updateUserAvatars`,
userInfo: `${host}/users/u3sers/userAccount/userInfo`,
bindPhoneOrEmail: `${host}/users/users/userAccount/bindPhoneOrEmail`,
sendPhoneOrEmailCode: `${host}/users/users/userAccount/sendPhoneOrEmailCode`,
updateAccountEnable: `${host}/users/users/userAccount/updateAccountEnable`,
updateAccountAllEnable: `${host}/users/users/userAccount/updateAccountAllEnable`,
examinePassword: `${host}/users/users/userAccount/examinePassword`,
queryOrder: `${host}/liuwanr/order/queryOrder`, //查询订单
queryOrderDetails: `${host}/liuwanr/order/queryOrderDetails`, //查询订单详情
@ -85,9 +86,9 @@ export default {
queryProvince: `${host}/nakadai/nakadai/province/queryProvince`, //查询省份
queryCity: `${host}/nakadai/nakadai/city/queryCity`, //查询城市
queryCourseDiscipline: `${host3}/nakadai/nakadai/discipline/queryDiscipline`, //查询课程学科
queryCourseProfessionalClass: `${host3}/nakadai/nakadai/professionalClass/queryProfessionalClass`, //查询专业类
queryCourseProfessional: `${host3}/nakadai/nakadai/professional/queryProfessional`, //查询专业
queryCourseDiscipline: `${host}/nakadai/nakadai/discipline/queryDiscipline`, //查询课程学科
queryCourseProfessionalClass: `${host}/nakadai/nakadai/professionalClass/queryProfessionalClass`, //查询专业类
queryCourseProfessional: `${host}/nakadai/nakadai/professional/queryProfessional`, //查询专业
queryAppConfig: `${host}/liuwanr/course/queryAppConfig`, //查询应用配置
queryTrainingConfig: `${host}/liuwanr/course/queryConfig`, //查询实训配置
deleteTrainingConfig: `${host}/liuwanr/course/deleteTrainingConfig`, //删除实训配置
@ -102,24 +103,24 @@ export default {
downloadFiles: `${host}/liuwanr/aliyun/downloadFiles`, //下载文件
// 数据管理
getIdQueryTable:`${host1}/data/data/table/getIdQueryTable`,
getTableByClassification:`${host1}/data/data/table/getTableByClassification`,
getTableByCondition:`${host1}/data/data/table/getTableByCondition`,
originalList:`${host1}/data/data/table/originalList`,
originalListById:`${host1}/data/data/table/originalListById`,
saveCategory:`${host1}/data/data/table/saveCategory`,
saveTable:`${host1}/data/data/table/saveTable`,
updateCategory:`${host1}/data/data/table/updateCategory`,
deleteCategory:`${host1}/data/data/table/deleteCategory`,
deleteTable:`${host1}/data/data/table/deleteTable`,
previewData:`${host1}/data/data/preview`,
getIdQueryTable:`${host}/data/data/table/getIdQueryTable`,
getTableByClassification:`${host}/data/data/table/getTableByClassification`,
getTableByCondition:`${host}/data/data/table/getTableByCondition`,
originalList:`${host}/data/data/table/originalList`,
originalListById:`${host}/data/data/table/originalListById`,
saveCategory:`${host}/data/data/table/saveCategory`,
saveTable:`${host}/data/data/table/saveTable`,
updateCategory:`${host}/data/data/table/updateCategory`,
deleteCategory:`${host}/data/data/table/deleteCategory`,
deleteTable:`${host}/data/data/table/deleteTable`,
previewData:`${host}/data/data/preview`,
// 产品管理
deleteProduct:`${host2}/data/data/product/delete`,
findById:`${host2}/data/data/product/findById`,
listByEntity:`${host2}/data/data/product/listByEntity`,
saveProduct:`${host2}/data/data/product/save`,
updateProduct:`${host2}/data/data/product/update`,
saveRecord:`${host2}/data/data/dataRecord/saveRecord`,
deleteProduct:`${host}/data/data/product/delete`,
findById:`${host}/da3ta/data/product/findById`,
listByEntity:`${host}/data/data/product/listByEntity`,
saveProduct:`${host}/data/data/product/save`,
updateProduct:`${host}/data/data/product/update`,
saveRecord:`${host}/3data/data/dataRecord/saveRecord`,
}

@ -100,9 +100,9 @@ function orderTypeFn (sts) {
function orderStatusFn (sts) {
const status = {
'1': '待发货',
'2': '已完成',
'3': '已取消'
'0': '待发货',
'1': '已完成',
'2': '已取消'
}
return status[sts] || '未知状态'
}

@ -87,7 +87,7 @@
<p class="addhr_tag"></p>
<span>练习配置</span>
</div>
<el-button icon="el-icon-plus" circle></el-button>
<el-button @click="curVisible=true" icon="el-icon-plus" circle></el-button>
</div>
<div class="border-b-dashed"></div>
<div>
@ -127,7 +127,7 @@
<p class="addhr_tag"></p>
<span>考核配置</span>
</div>
<el-button icon="el-icon-plus" circle></el-button>
<el-button @click="showAssess=true" icon="el-icon-plus" circle></el-button>
</div>
<div class="border-b-dashed"></div>
<!-- 实训配置 -->
@ -161,6 +161,7 @@
</el-table>
</div>
</el-card>
<!-- 资源配置 -->
<!-- <el-card shadow="hover" class="mgb20">
<div class="mgb20 flex-between">
@ -209,6 +210,35 @@
<el-button type="primary" v-preventReClick @click="addSystem()"> </el-button>
</span>
</el-dialog>
<!-- 考核配置弹框 -->
<el-dialog :visible.sync="showAssess" width="50%" center>
<div class="flex-between mgb20">
<div class="flex-center">
<p class="addhr_tag"></p>
<span>应用列表</span>
</div>
<div>
<el-input placeholder="请输入系统名称" prefix-icon="el-icon-search" v-model="configSearch" clearable></el-input>
</div>
</div>
<el-table :data="permissionData" class="table" stripe header-align="center" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center"></el-table-column>
<el-table-column type="index" width="100" label="序号" align="center">
</el-table-column>
<el-table-column prop="systemName" label="系统名称" align="center">
</el-table-column>
<el-table-column prop="systemAttribution" label="系统类型" align="center">
</el-table-column>
<el-table-column prop="systemType" label="系统归属" align="center">
</el-table-column>
<el-table-column prop="systemStatus" label="系统状态" align="center">
</el-table-column>
</el-table>
<span slot="footer" class="dialog-footer">
<el-button @click="showAssess = false"> </el-button>
<el-button type="primary" v-preventReClick > </el-button>
</span>
</el-dialog>
</el-row>
</div>
</template>
@ -265,7 +295,8 @@ import courseconfig from './courseconfig.vue'
]
},
permissionData: [],
curVisible: false,
curVisible: false,//
showAssess:false,//
curData: [
{name:'项目名称',appName:'应用',asset:false,switch:false,contral:false}
],
@ -299,36 +330,36 @@ import courseconfig from './courseconfig.vue'
}
},
mounted() {
if(this.form.courseId){
let data = {
courseId: this.form.courseId
}
this.$get(this.api.queryCourseDetails,data).then((res) => {
this.form = {
courseName: res.message[0].course.courseName,
courseType: res.message[0].course.courseType,
disciplineId: res.message[0].course.disciplineId,
professionalClassId: res.message[0].course.professionalClassId,
professionalId: res.message[0].course.professionalId,
courseHours: res.message[0].course.courseHours,
marketPrice: res.message[0].course.marketPrice,
courseIntroduction: res.message[0].course.courseIntroduction,
teachingGoal: res.message[0].course.teachingGoal,
courseId : res.message[0].course.courseId,
systemId: res.message[0].course.systemId
}
this.getProfessionalClassData()
this.getProfessionalData()
this.curData = res.message[0].serviceConfigList
// let arr1 = this.curData
// let result1 = arr1.map(e => e.systemId)
// const set = new Set(result1);
// let set1 = [...set].join()
// this.form.systemId = this.form.systemId.concat(set1)
}).catch((res) => {
})
}
this.getSubject()
// if(this.form.courseId){
// let data = {
// courseId: this.form.courseId
// }
// this.$get(this.api.queryCourseDetails,data).then((res) => {
// this.form = {
// courseName: res.message[0].course.courseName,
// courseType: res.message[0].course.courseType,
// disciplineId: res.message[0].course.disciplineId,
// professionalClassId: res.message[0].course.professionalClassId,
// professionalId: res.message[0].course.professionalId,
// courseHours: res.message[0].course.courseHours,
// marketPrice: res.message[0].course.marketPrice,
// courseIntroduction: res.message[0].course.courseIntroduction,
// teachingGoal: res.message[0].course.teachingGoal,
// courseId : res.message[0].course.courseId,
// systemId: res.message[0].course.systemId
// }
// this.getProfessionalClassData()
// this.getProfessionalData()
// this.curData = res.message[0].serviceConfigList
// // let arr1 = this.curData
// // let result1 = arr1.map(e => e.systemId)
// // const set = new Set(result1);
// // let set1 = [...set].join()
// // this.form.systemId = this.form.systemId.concat(set1)
// }).catch((res) => {
// })
// }
// this.getSubject()
},
methods: {
saveAdd(form){

@ -113,7 +113,9 @@ export default {
data() {
return {
name: localStorage.getItem('ms_username'),
courseData:[],
courseData:[
{}
],
form: {
courseType: '',
subjectType: '',
@ -136,7 +138,7 @@ export default {
name: '理论课程',
value: 2
}],
loading: true
loading: false
};
},
mounted() {
@ -154,21 +156,21 @@ export default {
pageNo: this.pageNo,
pageSize: this.pageSize,
}
this.$get(this.api.queryCourse,data).then(res => {
res.message.rows.forEach(e => {
e.courseType = this.courseTypeStatus(e.courseType)
e.courseHours = this.hoursStatus(e.courseHours)
})
this.courseData = res.message.rows
this.totals = res.message.total
this.loading = false
}).catch(res => {});
// this.$get(this.api.queryCourse,data).then(res => {
// res.message.rows.forEach(e => {
// e.courseType = this.courseTypeStatus(e.courseType)
// e.courseHours = this.hoursStatus(e.courseHours)
// })
// this.courseData = res.message.rows
// this.totals = res.message.total
// this.loading = false
// }).catch(res => {});
},
//
getSubject(){
this.$get(this.api.queryCourseDiscipline).then(res => {
this.subjectList = res.message
}).catch(res => {});
// this.$get(this.api.queryCourseDiscipline).then(res => {
// this.subjectList = res.message
// }).catch(res => {});
},
//
clearClass(){
@ -266,16 +268,17 @@ export default {
this.pageNo = 1
this.getData()
},
//
changeSwitch (row) {
let data = {
courseId: row.courseId,
isShelves: row.isShelves
}
this.$post(this.api.isShelves,data).then((res) => {
this.getData();
this.$message.success("修改成功!");
}).catch((res) => {
})
// this.$post(this.api.isShelves,data).then((res) => {
// this.getData();
// this.$message.success("");
// }).catch((res) => {
// })
},
}
};

@ -1,3 +1,4 @@
//
<template>
<div>
<div class="page">
@ -621,6 +622,7 @@ export default {
</script>
<style scoped lang="scss">
.btns{
position: absolute;
top: 12px;

@ -17,9 +17,9 @@
<div class="page-content">
<div class="m-b-20" v-for="(chapter,index) in chapters" :key="chapter.id">
<div class="flex j-between a-center m-b-10">
<div>{{chapter.name}}</div>
<div>
<div class="flex j-between a-center">
<div style="margin-top:10px">{{chapter.name}}</div>
<div style="margin:10px 0">
<template v-if="!sorting">
<el-button class="action-btn" type="primary" size="small" round @click="editChapter(chapter)">修改章节名称</el-button>
<el-button class="action-btn" type="primary" size="small" round @click="addSection(chapter.id)">添加小节</el-button>
@ -180,7 +180,14 @@ export default {
return {
id: '',
userId: this.$store.state.userLoginId,
chapters: [],
chapters: [
{
name:'123'
},
{
name:'23123'
}
],//
sorting: false,
uploading: false,
uploadList: [],
@ -292,7 +299,7 @@ export default {
this.fileType = file.name.substring(file.name.lastIndexOf('.')+1)
},
handleExceed(files, fileList) {
this.warningMsg(
this.$message.error(
`当前限制选择 1 个文件,如需更换,请删除上一个文件再重新选择!`
);
},
@ -370,7 +377,7 @@ export default {
})
.then(() => {
this.$del(`${this.api.deleteChapter}/${id}`).then(res => {
this.successMsg('删除成功');
this.$message.success('删除成功');
this.getData()
}).catch(res => {});
})
@ -388,35 +395,36 @@ export default {
this.isAddSection = true
this.sectionVisible = true
},
//
chapterSubmit(){
if(!this.chapterName) return this.warningMsg('请填写章节名称')
if(!this.chapterName) return this.$message.error('请填写章节名称')
let data = {
courseId: this.id,
name: this.chapterName
}
if(this.chapterId){
data.id = this.chapterId
this.$put(this.api.editChapter, data).then(res => {
this.successMsg('修改成功');
this.chapterVisible = false
this.getData()
})
.catch(err => {
});
}else{
this.$post(this.api.addChapter, data).then(res => {
this.successMsg('添加成功');
this.chapterVisible = false
this.getData()
})
.catch(err => {
});
}
// if(this.chapterId){
// data.id = this.chapterId
// this.$put(this.api.editChapter, data).then(res => {
// this.$message.success('');
// this.chapterVisible = false
// this.getData()
// })
// .catch(err => {
// });
// }else{
// this.$post(this.api.addChapter, data).then(res => {
// this.$message.success('');
// this.chapterVisible = false
// this.getData()
// })
// .catch(err => {
// });
// }
},
sectionSubmit(){
if(!this.sectionName) return this.warningMsg('请填写小节名称')
if(this.uploading) return this.warningMsg('资源正在上传中,请稍候')
if(!this.fileUrl && !this.fileId) return this.warningMsg('请上传资源')
if(!this.sectionName) return this.$message.error('请填写小节名称')
if(this.uploading) return this.$message.error('资源正在上传中,请稍候')
if(!this.fileUrl && !this.fileId) return this.$message.error('请上传资源')
let data = {
id: this.sectionId,
courseId: this.id,
@ -429,7 +437,7 @@ export default {
originalFileName: this.originalFileName
}
this.$post(this.api.addSubsection, data).then(res => {
this.successMsg('添加成功');
this.$message.success('添加成功');
this.sectionVisible = false
this.getData()
})
@ -529,7 +537,7 @@ export default {
originalFileName: this.originalFileName
}
this.$put(this.api.editSubsection, data).then(res => {
this.successMsg('更换成功');
this.$message.success('更换成功');
this.switchVisible = false
this.getData()
})
@ -537,8 +545,8 @@ export default {
});
},
switchSubmit(){
if(this.uploading) return this.warningMsg('资源正在上传中,请稍候')
if(!this.fileUrl && !this.fileId) return this.warningMsg('请上传资源')
if(this.uploading) return this.$message.error('资源正在上传中,请稍候')
if(!this.fileUrl && !this.fileId) return this.$message.error('请上传资源')
if(this.transferType(this.curFile.fileType) == '视频'){
let data = {
videoIdList: [this.sectionId]
@ -558,7 +566,7 @@ export default {
})
.then(() => {
this.$del(`${this.api.deleteSubsection}/${row.id}`).then(res => {
this.successMsg('删除成功');
this.$message.success('删除成功');
this.getData()
}).catch(res => {});
})
@ -590,7 +598,7 @@ export default {
}
},
sectionNameSubmit(){
if(!this.sectionName) return this.warningMsg('请填写小节名称')
if(!this.sectionName) return this.$message.error('请填写小节名称')
let data = {
id: this.sectionId,
courseId: this.id,
@ -598,7 +606,7 @@ export default {
name: this.sectionName
}
this.$put(this.api.editSubsection, data).then(res => {
this.successMsg('修改成功');
this.$message.success('修改成功');
this.sectionNameVisible = false
this.getData()
})
@ -621,6 +629,78 @@ export default {
</script>
<style scoped lang="scss">
.page{
position: relative;
background-color: #fff;
.p-title{
padding-left: 24px;
line-height: 56px;
font-size: 16px;
color: rgba(0, 0, 0, 0.85);
border-bottom: 1px solid rgba(0,0,0,.06);
}
.page-content{
padding:14px 24px 24px;
.tool{
display: flex;
justify-content: space-between;
margin-bottom: 24px;
.filter{
display: inline-flex;
align-items: center;
flex: 1;
li{
display: inline-flex;
align-items: center;
margin-right: 30px;
label{
font-size: 14px;
line-height: 14px;
color: rgba(0,0,0,.65);
white-space: nowrap;
}
}
}
.single-choice{
dl {
display: flex;
line-height: 30px;
dt {
color: rgba(0,0,0,.65);
font-size: 14px;
white-space: nowrap;
}
dd {
display: inline-flex;
align-items: center;
flex-wrap: wrap;
span {
padding: 0 10px;
margin: 0 10px;
color: #333;
font-size: 14px;
line-height: 1.8;
white-space: nowrap;
cursor: pointer;
&:hover {
color: #CC221C;
}
&.active {
border-radius: 4px;
color: #fff;
background-color: #CC221C;
}
}
}
}
}
.el-button--primary{
// @extend .action-btn;
}
}
}
}
.btns{
position: absolute;
top: 12px;

@ -86,7 +86,7 @@
</div>
</el-card>
<!-- 课程 -->
<el-card shadow="hover" class="mgb20">
<!-- <el-card shadow="hover" class="mgb20">
<div>
<div class="flex-between mgb20 user_header">
<div class="flex-center">
@ -166,7 +166,7 @@
</el-table-column>
</el-table>
</div>
</el-card>
</el-card> -->
<!-- 数据平台权限 -->
<el-card shadow="hover" class="mgb20">
<div>
@ -667,7 +667,7 @@ export default {
this.$get(this.api.orderDetail,{orderId:+id}).then(res=>{
console.log(res,'请求详情');
let form = res.orderDetails.order,//
contract = res.orderDetails.contractInformation,//
contract = res.orderDetails.contractInformation?res.orderDetails.contractInformation:{},//
list = res.orderDetails.orderOther//
list.map(e=>{
e.ship?e.ship=true:e.ship = false
@ -694,22 +694,38 @@ export default {
orderAmount: form.orderAmount,
orderId:form.orderId
}
if(contract.startTime&&contract.endTime){
this.contractTime = [contract.startTime,contract.endTime]
}
this.contract = {
contractName:contract.contractName,
contractMoney:contract.contractMoney,
contractNumber:contract.contractNumber,
startTime:contract.startTime?contract.startTime:'',
endTime:contract.endTime?contract.endTime:'',
contractId:contract.contractId,
uploadList:{name:contract.contractFile?contract.contractFile.split().pop():'',url:contract.contractFile}
}
if(contract.startTime&&contract.endTime){
this.contractTime = [contract.startTime,contract.endTime]
}
this.dataPlatform = dataArr
})
},
//
addOrder(){
let verify =
this.dataPlatform.some(e=>{
if(!e.periodOfUse||!e.finalPrice||!e.accountNum||!totalAmount){
return false
}else{
return true
}
})
if(!verify){
return this.$message.error('请把产品参数输入完整!')
}
if(this.dataPlatform){
}
this.dataPlatform.map(e=>{
e.ship?e.ship=1:e.ship=0
e.isEnable?e.isEnable=0:e.isEnable=1
@ -940,8 +956,13 @@ export default {
//0
let nowYear = year + char + completeDate(month) + char +completeDate(day);
//
console.log('取余',year,parseInt((+month+(+e))%12),+month+(+e));
let endYear = +year + parseInt((+month+(+e))/12) + char + completeDate((+month+(+e))%12) + char +completeDate(day);
console.log('取余',year+parseInt((+month+(+e))%12));
console.log(year,'当前年');
console.log(+year + parseInt((+month+(+e))/12) ,'处理过的年',parseInt((+month+(+e))%12)===0,'处理的值');
console.log((+month+(+e))%12,'月份%12');
let endYear = year + (parseInt((+month+(+e))/12)?0:parseInt((+month+(+e))/12)) + char + completeDate((+month+(+e))%12) + char +completeDate(day);
console.log(endYear,'endYear');
//
row.startTime = nowYear
row.endTime = endYear

@ -125,21 +125,30 @@ export default {
}],
orderStatusList: [{
name: '待发货',
value: 1
value: 0
},
{
name: '已完成',
value: 2
value: 1
},
{
name: '已取消',
value: 3
value: 2
}],
pageNo: 1,
pageSize: 10,
totals: 1
totals: 1,
setTime:'',
};
},
watch: {
keyword: function(val) {
clearTimeout(this.setTime)
this.setTime = setTimeout(()=>{
this.onSearch()
},500)
},
},
created() {
this.getData()
},

@ -251,8 +251,8 @@ export default {
}
/deep/ .el-checkbox__inner{
border-radius: 50%;
width: 17px;
height: 17px;
width: 19px;
height: 19px;
}
/deep/ .el-checkbox__input.is-checked .el-checkbox__inner, .el-checkbox__input.is-indeterminate .el-checkbox__inner{
background: #FFF;
@ -266,6 +266,7 @@ export default {
position: relative;
top: 50%;
left: 50%;
transform: translate(-46%, -48%);
border-radius: 50%;
}
/deep/ .el-checkbox__input.is-checked .el-checkbox__inner::after{
@ -273,13 +274,15 @@ export default {
height: 13px;
background: #9278FF;
position: relative;
top: 10%;
left: 10%;
transform: none;
top: 50%;
left: 50%;
transform: translate(-46%, -48%);
display: block;
border-radius: 50%;
transition: all .3s ease-in;
border: 0;
}
/deep/ .el-checkbox__input{
line-height: 0;
}
</style>
Loading…
Cancel
Save