提交 5ba2a1df authored 作者: FC's avatar FC

合并分支 'fc' 到 'master'

Fc 查看合并请求 !11
......@@ -457,7 +457,7 @@ td.el-table__cell,
border-radius: 4px;
}
.el-message-box{
width: 460px !important;
min-width: 460px !important;
}
.el-message-box__message{
height: 100px;
......
......@@ -23,8 +23,8 @@ const env = {
// API_TEST_ORIGIN: 'http://172.18.27.190:8080/confhd',
// API_BASE_ORIGIN: 'http://192.168.102.146:6888', //越越
// API_TEST_ORIGIN: 'http://192.168.102.146:6888',
API_BASE_ORIGIN: 'http://192.168.102.53:6888', //赵璐
API_TEST_ORIGIN: 'http://192.168.102.53:6888',
API_BASE_ORIGIN: 'http://192.168.102.19:6888', //赵璐
API_TEST_ORIGIN: 'http://192.168.102.19:6888',
},
development_ssj: {
// API_BASE_ORIGIN: 'http://192.168.100.248:6888',
......
......@@ -1332,7 +1332,8 @@ saveScheduleAddress(data){
//三合一
fingAllPeopleByDing() {
return axios('/ding/threeAndOne', {
method: 'get'
method: 'get',
})
},
addPerson(data) { //人员库新增、修改人员
......@@ -1677,10 +1678,22 @@ findUnitByCustomOrgId(data){
})
},
// 会议配置-查询通知结果
findNoticeResult(data){
findNoticeResult(data){
return axios('/conferenceProcess/findNoticeResult?sendNoticeId=' + data,{
method:'get',
})
},
//人员库-是否可以同步(获取累计人数和同步时间)
findIsSync(){
return axios('/ding/findIsSync',{
method:'get',
})
},
//更新同步状态为正在同步人员
updateStatus(){
return axios('/ding/updateStatus',{
method:'get'
})
}
}
......
......@@ -7,51 +7,32 @@
</span>
</div>
</div>
<div
class="meeting_item item"
:class="[
<div class="meeting_item item" :class="[
{ green_item: item.processStatus === 1 },
{ orange_item: item.processStatus === 2 },
{ blue_item: item.processStatus === 3 },
]"
v-for="(item, index) of meetingLists"
:key="index"
@click="enterConf(item)"
>
]" v-for="(item, index) of meetingLists" :key="index" @click="enterConf(item)">
<div class="meeting_item_part1">
<div class="meeting_item_text" v-if="flash">
<el-tooltip
:content="item.processName"
effect="light"
placement="bottom"
v-if="item.processName !== item.showName"
>
<el-tooltip :content="item.processName" effect="light" placement="bottom"
v-if="item.processName !== item.showName">
<span class="text_name">{{ item.showName }}</span>
</el-tooltip>
<span class="text_name" v-else>{{ item.showName }}</span>
<div class="time_record" @click.stop v-if="item.processStatus === 3">
<time-record :startTime="item.processDate" :tagFlag="true"></time-record>
</div>
<div
class="time_record"
:class="
<div class="time_record" :class="
new Date(item.processDate).getTime() - new Date().getTime() < 0
? 'overdue'
: ''
"
@click.stop
v-else
>
<time-count-down
:endTime="item.processDate"
@modifyDate="modifyDate"
:item="item"
" @click.stop v-else>
<time-count-down :endTime="item.processDate" @modifyDate="modifyDate" :item="item"
:tagFlag="
new Date(item.processDate).getTime() - new Date().getTime() < 0
? false
: true
"
></time-count-down>
"></time-count-down>
</div>
</div>
<div class="publish_tag">
......@@ -73,12 +54,9 @@
<div class="meeting_item_text" v-for="(msg, index) of item.data" :key="index">
<span class="text_key" v-if="msg.key !=='来源' & msg.key !=='联系人'">{{ msg.key }}</span>
<span class="text_value" v-if="msg.key !=='来源' & msg.key !=='联系人'">{{ msg.value }}</span>
<span
class="address_des"
v-if="
<span class="address_des" v-if="
msg.key === '地址' && (msg.value === '' || msg.value === null)
"
>请在排座时选厅</span>
">请在排座时选厅</span>
</div>
</div>
<div class="foot_but">
......@@ -162,7 +140,7 @@ export default {
})
this.$emit('getMeetingLists')
})
.catch((err) => {})
.catch((err) => { })
},
editMeeting(data) {
this.$emit('editM', data.processId)
......@@ -193,7 +171,7 @@ export default {
})
}
})
.catch((err) => {})
.catch((err) => { })
})
.catch(() => {
this.$message({
......@@ -224,7 +202,7 @@ export default {
this.$emit('getData')
}
})
.catch((err) => {})
.catch((err) => { })
})
.catch((action) => {
// if (action === "cancel") {
......@@ -254,7 +232,7 @@ export default {
</script>
<style scoped lang="less">
.wrap {
font-family: 'Regular';
font-family: "Regular";
height: 100%;
padding: 0px 32px 34px 32px;
overflow: auto;
......@@ -265,7 +243,7 @@ export default {
position: relative;
&:after {
//实现flex布局space-between最后一行左对齐
content: ' ';
content: " ";
flex: auto;
}
.before_none {
......@@ -415,11 +393,11 @@ export default {
height: 47px;
font-size: 18px;
color: #3a3c4b;
font-family: 'Medium';
font-family: "Medium";
font-weight: 500;
line-height: 30px;
.time_record {
font-family: 'Regular';
font-family: "Regular";
height: 24px;
line-height: 24px;
padding: 0 10px;
......
......@@ -118,9 +118,9 @@
<div class="box" v-if="trueList.length==0"></div>
<time-list
class="time_list"
v-if="trueList.length>0"
ref="timeList"
class="time_list"
:canClick="canClick"
:conferenceProcessReservationRecordList="conferenceProcessReservationRecordList"
:isHover="false
......@@ -168,8 +168,9 @@
<div></div>
</div>
</div>
<div class="you" @click="showModuleRight()"></div>
<!-- :class="{ showYou: moduleIndex + 3 < originModuleList.length }" -->
<div class="you" @click="showModuleRight()"
:class="{ showYou: moduleIndex + 3 < originModuleList.length }" ></div>
<!-- -->
</div>
</div>
</div>
......@@ -343,6 +344,7 @@ export default {
// console.log();
// console.log(new Date().toDateString())
this.getDate()
},
methods: {
......@@ -356,7 +358,7 @@ export default {
lastSet() {
this.isActive = 1
this.$emit('getPredetermine', this.isActive)
this.getConferenceList(this.ruleForm)
this.getConferenceList(this.ruleForm,this.currentConfenrence)
},
//下一步
nextSet() {
......@@ -396,13 +398,14 @@ export default {
},
selectConfence() {
console.log('ruleFom', this.ruleForm)
this.getConferenceList(this.ruleForm)
this.getConferenceList(this.ruleForm,this.currentConfenrence)
},
//获取布局
getCvans(data) {
this.$axios.findConferenceLayOut(data).then((res) => {
console.log(res)
if (res.data.code == 200) {
this.originModuleList = res.data.data.confLayoutList
this.moduleList = res.data.data.confLayoutList
this.moduleId = res.data.data.confLayoutList[0].id
this.confenceObj = {
......@@ -423,12 +426,14 @@ export default {
if (d < 10) {
d = '0' + d
}
console.log(y + '-' + m + '-' + d)
// console.log(y + '-' + m + '-' + d)
return y + '-' + m + '-' + d
},
//查询会议室
getConferenceList(data) {
getConferenceList(data,currentConfenrence) {
console.log('curr',this.currentConfenrence);
// console.log();
this.$axios.findReservationConference(data).then((res) => {
if (res.data.code == 200) {
console.log('resresresres', res)
......@@ -439,17 +444,24 @@ export default {
if (res.data.data.conferenceName) {
for (let i in this.trueList) {
if (res.data.data.conferenceName == this.trueList[i].conferenceName) {
this.chooseConfs(this.trueList[i])
this.chooseConfs(this.trueList[i],currentConfenrence)
this.$nextTick(()=>{
this.$refs.timeList.selectRange(res.data.data.reservationStartTime.split(' ')[1])
this.$refs.timeList.selectRange(res.data.data.reservationEndTime.split(' ')[1])
})
}
}
} else {
this.choosePei(this.radio)
// this.choosePei(this.radio)
}
this.choosePei(this.radio,currentConfenrence)
}
})
// this.$forceUpdate()
},
setCurrentConference(){
},
//子组件返回选中的时间段
getTimeRange(value) {
......@@ -461,7 +473,7 @@ export default {
},
switchOperation(val) {
console.log(val)
console.log('currentConfenrence', this.currentConfenrence)
// console.log('currentConfenrence', this.currentConfenrence)
if (val === 1) {
this.isActive = 1
this.getConferenceList(this.ruleForm)
......@@ -481,28 +493,34 @@ export default {
// console.log('radio', this.radio)
this.choosePei(this.radio)
},
choosePei(val) {
console.log('val', val)
choosePei(val,currentConfenrence) {
// console.log('val', val)
// console.log('currentConfenrence',currentConfenrence);
if (val == 2) {
console.log('dataLists', this.dataLists)
// console.log('dataLists', this.dataLists)
this.confList = this.dataLists.conferenceAndUseInfoVoList
console.log('confList', this.confList)
// let obj = [...this.confList[0].conferenceProcessReservationRecordList]
if (this.confList.length > 0) {
this.conferenceProcessReservationRecordList = this.confList[0].conferenceProcessReservationRecordList
this.conferenceId = this.confList[0].conferenceId
this.moduleId = this.confList[0].conferenceId
if(currentConfenrence){
this.conferenceId = currentConfenrence.conferenceId
console.log(2313232);
this.conferenceProcessReservationRecordList = currentConfenrence.conferenceProcessReservationRecordList
}else {
this.currentConfenrence = this.confList[0]
this.conferenceProcessReservationRecordList = this.confList[0].conferenceProcessReservationRecordList
}
} else {
this.currentConfenrence = {}
}
if (this.confList.length > 7) {
if (this.confList.length > 7) {;
this.trueList = this.confList.slice(this.listIndex, 7)
this.originModuleList = this.trueList[0].confLayoutVoList
console.log(this.trueList);
// this.originModuleList = this.trueList[0].confLayoutVoList
this.originModuleList = this.trueList
//
// if (this.trueList[0].confLayoutVoList.length > 3) {
// this.moduleList = this.trueList[0].confLayoutVoList.slice(this.moduleIndex, 3)
// } else {
......@@ -510,7 +528,8 @@ export default {
// }
} else {
this.trueList = this.confList
this.originModuleList = this.trueList[0].confLayoutVoList
// this.originModuleList = this.trueList[0].confLayoutVoList
this.originModuleList = this.trueList
// if (this.trueList[0].confLayoutVoList.length > 3) {
// this.moduleList = this.trueList[0].confLayoutVoList.slice(this.moduleIndex, 3)
// } else {
......@@ -568,13 +587,20 @@ export default {
if (this.moduleIndex > 0) {
this.moduleIndex--
this.moduleList = this.originModuleList.slice(this.moduleIndex, this.moduleIndex + 3)
// this.moduleList = this.moduleList.slice(this.moduleIndex, this.moduleIndex + 3)
}
},
showModuleRight() {
console.log(222);
console.log('moduleIndex',this.moduleIndex);
console.log('originModuleList',this.originModuleList);
if (this.moduleIndex + 3 < this.originModuleList.length) {
this.moduleIndex++
this.moduleList = this.originModuleList.slice(this.moduleIndex, this.moduleIndex + 3)
// this.moduleList = this.moduleList.slice(this.moduleIndex, this.moduleIndex + 3)
}
console.log(this.moduleList);
},
showConfLeft() {
if (this.listIndex > 0) {
......@@ -583,6 +609,8 @@ export default {
}
},
showConfRight() {
console.log(this.listIndex);
console.log(this.confList);
if (this.listIndex + 7 < this.confList.length) {
this.listIndex++
this.trueList = this.confList.slice(this.listIndex, this.listIndex + 7)
......@@ -624,12 +652,30 @@ export default {
return `${this.GLOBAL}/conf/img/${i}`
},
chooseConfs(item) {
chooseConfs(item,currentConfenrence) {
console.log('item', item)
// this.originModuleList = item.confLayoutVoList
console.log(this.currentConfenrence);
console.log(currentConfenrence);
this.moduleIndex = 0
// if(this.currentConfenrence){
// this.conferenceId = item.conferenceId
// }else {
// this.conferenceId = item.conferenceId
// }
this.conferenceId = item.conferenceId
this.conferenceProcessReservationRecordList = item.conferenceProcessReservationRecordList
this.currentConfenrence = item
let {reservationEndTime,reservationStartTime} = this.currentConfenrence
this.currentConfenrence = {...item,reservationEndTime,reservationStartTime}
// this.currentConfenrence = item
console.log(this.currentConfenrence);
// if (item.confLayoutVoList.length > 3) {
// this.moduleList = item.confLayoutVoList.slice(this.moduleIndex, 3)
// } else {
// this.moduleList = item.confLayoutVoList
// }
// if (this.radio == 1) {
// this.originModuleList = item.conferenceTemplateList
// console.log(this.conferenceTemplateList)
......@@ -890,7 +936,7 @@ export default {
}
.modules {
width: 90%;
width: 88%;
margin: 0 auto;
border-bottom: 1px solid #e5ebef;
min-height: 300px;
......@@ -986,7 +1032,7 @@ export default {
//选择会议室
.confs {
width: 90%;
width: 89%;
margin: 0 auto;
margin-top: -20px;
border-bottom: 1px solid #e5ebef;
......@@ -995,11 +1041,11 @@ export default {
align-items: center;
.showZuo {
background-image: url('../../../../assets/meetingPalce/paiwei/left.png') !important;
cursor: pointer;
cursor: pointer !important;
}
.showYou {
background-image: url('../../../../assets/meetingPalce/paiwei/right.png') !important;
cursor: pointer;
cursor: pointer !important;
}
.zuo {
width: 14px;
......
......@@ -35,6 +35,7 @@
<script>
export default {
name:'timeList',
props: ['conferenceProcessReservationRecordList', 'canClick', 'isHover'],
data() {
return {
......@@ -144,7 +145,7 @@ export default {
//比较时间
timeStape(time) {
// console.log('time', time)
if (time !== null) {
if (time !== null && time) {
let s = ''
let hour = time.split(':')[0]
let min = time.split(':')[1]
......
......@@ -7,65 +7,65 @@
<template>
<!-- 缓存三级嵌套路由 使用keep-alive -->
<!--  <keep-alive> -->
<router-view ref="lib" />
<router-view v-bind="$attrs" ref="lib" />
<!-- </keep-alive> -->
</template>
<script>
export default {
name: 'bankMangager',
data() {
data () {
return {}
},
components: {},
methods: {
managesLei() {
managesLei () {
this.$refs['lib'].managesLei()
},
importData() {
importData () {
this.$refs['lib'].importData()
},
callPush() {
callPush () {
this.$refs['lib'].callPush()
},
abbunit() {
abbunit () {
console.log(2)
this.$refs['lib'].abbunit()
},
callImport() {
callImport () {
this.$refs['lib'].importData()
},
callUpdate() {
callUpdate () {
this.$refs['lib'].openUpdateDialog()
},
outData() {
outData () {
this.$refs['lib'].outData()
},
areaName() {
areaName () {
this.$refs['lib'].areaName()
},
importAbbrevia() {
console.log(2)
importAbbrevia () {
this.$refs['lib'].importAbbrevia()
},
syncUnit() {
syncUnit () {
this.$refs['lib'].syncUnit()
},
personLabel() {
personLabel () {
console.log(1);
// console.log(this.titleForm);
this.$refs['lib'].personLabel()
},
manageTags() {
manageTags () {
this.$refs['lib'].manageTags()
},
importLabel() {
importLabel () {
this.$refs['lib'].importLabel()
},
exportLabel() {
exportLabel () {
this.$refs['lib'].exportLabel()
},
},
}
</script>
<style>
</style>
<style></style>
......@@ -6,54 +6,57 @@
-->
<template>
<div class="confindex">
<router-view ref="middleChange"></router-view>
<router-view v-bind="$attrs" ref="middleChange"></router-view>
</div>
</template>
<script>
export default {
name: '',
data() {
data () {
return {}
},
created () {
},
components: {},
methods: {
areaName() {
areaName () {
this.$refs['middleChange'].areaName()
},
managesLei() {
managesLei () {
this.$refs['middleChange'].managesLei()
},
callPush() {
callPush () {
this.$refs['middleChange'].callPush()
},
abbunit() {
abbunit () {
console.log(3)
this.$refs['middleChange'].abbunit()
},
importData() {
importData () {
this.$refs['middleChange'].importData()
},
outData() {
outData () {
this.$refs['middleChange'].outData()
},
importAbbrevia() {
console.log(3)
importAbbrevia () {
this.$refs['middleChange'].importAbbrevia()
},
syncUnit() {
syncUnit () {
this.$refs['middleChange'].syncUnit()
},
personLabel() {
personLabel () {
console.log(2);
this.$refs['middleChange'].personLabel()
},
manageTags() {
manageTags () {
this.$refs['middleChange'].manageTags()
},
importLabel() {
importLabel () {
this.$refs['middleChange'].importLabel()
},
exportLabel() {
exportLabel () {
this.$refs['middleChange'].exportLabel()
},
......
......@@ -7,10 +7,8 @@
<div class="system_main_wrap">
<div class="header_wrap">
<el-breadcrumb separator-class="el-icon-arrow-right">
<el-breadcrumb-item
v-for="(item, index) of path.slice(1)"
:key="index"
>{{ item.meta.title }}</el-breadcrumb-item>
<el-breadcrumb-item v-for="(item, index) of path.slice(1)" :key="index">{{ item.meta.title
}}</el-breadcrumb-item>
</el-breadcrumb>
<div class="but_wrap" v-if="$route.name === 'userLibrary'">
<!-- <div class="but" @click="callLibs()">会议数据{{confNum}}条--更新</div>
......@@ -18,8 +16,10 @@
<!-- <div class="but" @click="areaName()">分区名称模板配置</div> -->
<!-- <div class="but" @click="abbLib()">单位简称管理</div> -->
<!-- <div class="but" @click="callLibs()">管理自定义人员库</div> -->
<div class="but" @click="personLabel()">人员标签库</div>
<div class="but" @click="autoPerson()">同步人员信息</div>
<div class="but" :class="titleForm.syncType == 0 ? '' : 'notAsyc'"
@click="titleForm.syncType == 0 ? personLabel() : ''">人员标签库</div>
<div class="but" :class="titleForm.syncType == 0 ? '' : 'notAsyc'"
@click="titleForm.syncType == 0 ? autoPerson() : ''">同步人员信息</div>
</div>
<div class="but_wrap" v-if="$route.name === 'customizeUser'">
<!-- <div class="but" @click="callLibs()">会议数据{{confNum}}条--更新</div>
......@@ -60,7 +60,7 @@
</div>
</div>
</div>
<router-view ref="sysRouter"></router-view>
<router-view ref="sysRouter" :titleForm="titleForm"></router-view>
</div>
</div>
<el-dialog title="提示" :visible.sync="dialogVisible" width="30%" :before-close="handleClose">
......@@ -80,7 +80,7 @@ export default {
components: {
MenuList,
},
data() {
data () {
return {
confNum: 0,
dialogVisible: false,
......@@ -161,16 +161,27 @@ export default {
},
],
path: '',
titleForm: {
id: "",
personNum: 0, //累计人数
syncInfo: "", //同步信息
syncSuccess: 0, //是否同步成功(2-同步成功,3同步失败)
syncTime: "",//同步时间
syncType: 0,//同步状态(0-可以同步,1-正在同步)
}
}
},
computed: {},
created() {
created () {
this.getIsSync()
// this.fetchConf();
this.path = this.$route.matched
this.path = this.path.filter((item, index) => item.meta.title !== '')
// console.log(this.path)
let sysRoles = sessionStorage.getItem('sysRoles')
switch (sysRoles) {
switch (sysRoles)
{
case 'ROLE_SUPERADMIN':
break
case 'ROLE_XITONGADMIN':
......@@ -196,13 +207,14 @@ export default {
this.$router.push({ path: '/login' })
}
},
beforeRouteUpdate(to, from, next) {
beforeRouteUpdate (to, from, next) {
let sysRoles = sessionStorage.getItem('sysRoles')
/*****路由跳转时更新面包屑********/
this.path = to.matched
this.path = this.path.filter((item, index) => item.meta.title !== '')
/****************************/
switch (sysRoles) {
switch (sysRoles)
{
case 'ROLE_SUPERADMIN':
next()
break
......@@ -212,9 +224,11 @@ export default {
to.path == '/system/bankMangager/confLibrary' ||
to.path == '/system/bankMangager/confLibrary/second' ||
to.path == '/system/bankMangager/confLibrary/HallSeat'
) {
)
{
next()
} else {
} else
{
next({ path: '/' })
}
break
......@@ -223,90 +237,116 @@ export default {
to.path == '/system/bankMangager/confLibrary' ||
to.path == '/system/bankMangager/confLibrary/second' ||
to.path == '/system/bankMangager/confLibrary/HallSeat'
) {
)
{
next()
} else {
} else
{
next({ path: '/' })
}
break
default:
this.$router.push({ path: '/login' })
}
},
methods: {
sureTongbu() {
if (this.diaoyongFlag) {
//能否更新人员
getIsSync () {
this.$axios.findIsSync().then(res => {
console.log('能否更新人员', res);
if (res.data.code == 200) {
this.titleForm = res.data.data
}
})
},
sureTongbu () {
if (this.diaoyongFlag)
{
this.diaoyongFlag = false
this.handleClose()
this.$axios.updateStatus().then(response => {
if (response.data.code == 200){
this.titleForm.syncType = 1
} else{
this.$message.error(response.data.data)
}
})
this.$axios.fingAllPeopleByDing().then((res) => {
this.diaoyongFlag = true
if (res.data.code != 200) {
if (res.data.code != 200){
this.$message.error(res.data.data)
}
})
}
},
handleClose() {
handleClose () {
this.dialogVisible = false
},
fetchConf() {
fetchConf () {
this.$axios.getConfEnd().then((res) => {
console.log(res)
this.confNum = res.data.data.length
})
},
autoPerson() {
autoPerson () {
this.dialogVisible = true
},
areaName() {
areaName () {
this.$refs['sysRouter'].areaName()
},
managesLei() {
managesLei () {
this.$refs['sysRouter'].managesLei()
},
callLibs() {
callLibs () {
this.$refs['sysRouter'].callPush()
},
abbLib() {
abbLib () {
this.$refs['sysRouter'].abbunit()
},
importData() {
importData () {
this.$refs['sysRouter'].importData()
},
callUnitLib() {
callUnitLib () {
this.$refs['sysRouter'].callImport()
},
outData() {
outData () {
this.$refs['sysRouter'].outData()
},
importAbbrevia() {
importAbbrevia () {
this.$refs['sysRouter'].importAbbrevia()
},
syncUnit() {
syncUnit () {
this.$refs['sysRouter'].syncUnit()
},
unitLibrary() {
unitLibrary () {
console.log(1)
this.$refs['sysRouter'].unitLibrary()
},
authorityUnit() {
authorityUnit () {
this.$refs['sysRouter'].authorityUnit()
},
personLabel() {
personLabel () {
console.log(0);
this.$refs['sysRouter'].personLabel()
},
manageTags() {
manageTags () {
this.$refs['sysRouter'].manageTags()
},
importLabel() {
importLabel () {
this.$refs['sysRouter'].importLabel()
},
exportLabel() {
exportLabel () {
this.$refs['sysRouter'].exportLabel()
},
goback() {
goback () {
this.$router.go(-1)
},
callExport() {},
callExport () { },
},
}
</script>
......@@ -315,23 +355,28 @@ export default {
width: 100%;
height: 100%;
display: flex;
.system_router {
padding-top: 20px;
width: 200px;
}
.system_mian {
width: calc(100% - 200px);
padding: 0px 20px 20px 20px;
.system_main_wrap {
height: 100%;
/*background: #fff;*/
border-radius: 4px;
.header_wrap {
height: 66px;
width: 100%;
padding: 13px 0;
display: flex;
justify-content: space-between;
/deep/ .el-breadcrumb {
line-height: 40px;
font-size: 18px;
......@@ -339,8 +384,10 @@ export default {
font-weight: 400;
color: #3a3c4b;
}
.but_wrap {
display: flex;
.back {
height: 40px;
display: flex;
......@@ -348,6 +395,7 @@ export default {
margin-left: 15px;
cursor: pointer;
}
.but {
cursor: pointer;
height: 40px;
......@@ -359,11 +407,19 @@ export default {
color: #ffffff;
margin-left: 20px;
}
.notAsyc {
cursor: not-allowed;
color: #fff;
background-color: #c8c9cc;
border-color: #c8c9cc;
}
}
}
}
}
}
a {
text-decoration: none;
color: black;
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论