Commit 5dabb33c by crushh

update: 附件样式

parent 95bbebf7
...@@ -66,12 +66,12 @@ Vue.axios.interceptors.response.use( ...@@ -66,12 +66,12 @@ Vue.axios.interceptors.response.use(
removePending(data.config); //在一个ajax响应后再执行一下取消操作,把已经完成的请求从pending中移除 removePending(data.config); //在一个ajax响应后再执行一下取消操作,把已经完成的请求从pending中移除
// console.log(data); // console.log(data);
if (data.status && data.status == 200 && data.data.errorCode != 1) { if (data.status && data.status == 200 && data.data.errorCode != 1) {
if (data.data.errorCode == 4) { // if (data.data.errorCode == 4) {
if (window.location.href.indexOf('gic-error') != -1) { // if (window.location.href.indexOf('gic-error') != -1) {
return false; // return false;
} // }
window.location.href = local + '/haoban-3/#/login'; // window.location.href = local + '/haoban-3/#/login';
} // }
if (data.data.errorCode == 10 || data.data.errorCode == 7) { if (data.data.errorCode == 10 || data.data.errorCode == 7) {
window.location.href = local + '/haoban-3/#/index'; window.location.href = local + '/haoban-3/#/index';
...@@ -81,25 +81,14 @@ Vue.axios.interceptors.response.use( ...@@ -81,25 +81,14 @@ Vue.axios.interceptors.response.use(
return data; return data;
}, },
err => { err => {
// console.log(err, typeof err, err.response); // if (err.response.status == 502) {
if (Vue.axios.isCancel(err)) { // window.location.href = local + '/haoban-3/#/login';
// console.log('请求取消'); // Message.error({ message: '服务异常⊙﹏⊙∥' });
} // }
if (err.response.status == 502) { // if (err.response.status != 403) {
window.location.href = local + '/haoban-3/#/login'; // window.location.href = local + '/haoban-3/#/login';
Message.error({ message: '服务异常⊙﹏⊙∥' }); // Message.error({ message: '登录失效!' });
} // }
// Message.error({message: err.response.message});
if (err.response.status == 504 || err.response.status == 404) {
// window.location.href= local + "/haoban-3/#/login"
// Message.error({message: '服务异常⊙﹏⊙∥'});
} else if (err.response.status == 403) {
// window.location.href= local + "/haoban-3/#/login"
// Message.error({message: '权限不足,请联系管理员!'});
} else {
window.location.href = local + '/haoban-3/#/login';
Message.error({ message: '登录失效!' });
}
return Promise.resolve(err); return Promise.resolve(err);
} }
); );
......
...@@ -17,10 +17,10 @@ export default { ...@@ -17,10 +17,10 @@ export default {
local = 'http://www.gicdev.com'; local = 'http://www.gicdev.com';
} */ } */
if (response.errorCode != 1) { if (response.errorCode != 1) {
if (response.errorCode == 4) { // if (response.errorCode == 4) {
window.location.href = local + '/haoban-3/#/login'; // window.location.href = local + '/haoban-3/#/login';
return false; // return false;
} // }
if (response.errorCode == 10) { if (response.errorCode == 10) {
window.location.href = local + '/haoban-3/#/index'; window.location.href = local + '/haoban-3/#/index';
return false; return false;
......
...@@ -224,7 +224,7 @@ export default { ...@@ -224,7 +224,7 @@ export default {
type: 'success' type: 'success'
}); });
// 跳转登录页 // 跳转登录页
window.location.href = window.location.origin + '/haoban-3/#/login'; // window.location.href = window.location.origin + '/haoban-3/#/login';
return; return;
} }
that.$message.error({ that.$message.error({
......
...@@ -363,6 +363,7 @@ export default { ...@@ -363,6 +363,7 @@ export default {
} }
return father.parentDepartmentId == 0; //返回第一层 return father.parentDepartmentId == 0; //返回第一层
}); });
console.log(tree);
return tree; return tree;
}, },
/** /**
......
...@@ -52,7 +52,7 @@ ...@@ -52,7 +52,7 @@
<el-table-column prop="suitDepartmentName" label="适用范围" width="120" show-overflow-tooltip> </el-table-column> <el-table-column prop="suitDepartmentName" label="适用范围" width="120" show-overflow-tooltip> </el-table-column>
<el-table-column label="操作" width="180"> <el-table-column label="操作" width="180">
<template slot-scope="{ row }"> <template slot-scope="{ row }">
<el-button type="text">编辑</el-button> <el-button type="text" @click="changeRoute(row)">编辑</el-button>
<el-button type="text">删除</el-button> <el-button type="text">删除</el-button>
</template> </template>
</el-table-column> </el-table-column>
...@@ -193,8 +193,8 @@ export default { ...@@ -193,8 +193,8 @@ export default {
/** /**
* 跳转 * 跳转
*/ */
changeRoute() { changeRoute(row) {
this.$router.push('/salutatorySet'); this.$router.push({ path: '/salutatorySet', query: { id: row.welcomeId } });
}, },
/** /**
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
</div> </div>
</div> </div>
<div class="salutatory-set-wrap m-t-20"> <div class="salutatory-set-wrap m-t-20">
<el-form label-width="117px" ref="form" :model="form" :rules="rules" refs="form"> <el-form label-width="117px" ref="form" :model="form" :rules="rules" refs="form" class="form">
<el-form-item label="欢迎语标题" prop="title"> <el-form-item label="欢迎语标题" prop="title">
<el-input show-word-limit placeholder="请输入欢迎语标题" type="text" v-model="form.title" maxlength="20" class="w-384"></el-input> <el-input show-word-limit placeholder="请输入欢迎语标题" type="text" v-model="form.title" maxlength="20" class="w-384"></el-input>
</el-form-item> </el-form-item>
...@@ -33,7 +33,14 @@ ...@@ -33,7 +33,14 @@
</p> </p>
</el-popover> </el-popover>
</div> </div>
<div class="addInfo"> <div class="mediaEcho" v-if="form.welcomeMediaList && form.welcomeMediaList.length">
<div class="flexBox" v-for="(item, index) in form.welcomeMediaList" :key="index">
<svg-icon :iconname="iconType[item.mediaType]" size="16" style="margin-right: 13px;"> </svg-icon>
<span class="popverText">{{ item.mediaTitle }}</span>
<i class="el-icon-close" style="margin-left: 20px;cursor: pointer;" @click="handleDelMedia(item, index)"></i>
</div>
</div>
<div class="addInfo" :style="form.welcomeMediaList && form.welcomeMediaList.length ? 'border-top: 1px dashed #dcdfe6;' : ''">
<el-popover placement="top" trigger="click"> <el-popover placement="top" trigger="click">
<ul class="flex flex-wrap"> <ul class="flex flex-wrap">
<li v-for="(item, index) in uploadList" :key="index + 'emoji'" class="uploadListBox" @click="handleUploadList(item, index)"> <li v-for="(item, index) in uploadList" :key="index + 'emoji'" class="uploadListBox" @click="handleUploadList(item, index)">
...@@ -42,34 +49,112 @@ ...@@ -42,34 +49,112 @@
<input type="file" :accept="item.fileType" @change="e => handkeFileChange(e, item)" class="upload-input" /> <input type="file" :accept="item.fileType" @change="e => handkeFileChange(e, item)" class="upload-input" />
</li> </li>
</ul> </ul>
<p slot="reference" style="display: inline-block;cursor: pointer;"><i class="iconfont-hb3 icontianjiajiahaowubiankuang"></i> <span>添加图片/视频/文件/链接/小程序</span></p> <div slot="reference" style="cursor: pointer; display: inline-block;">
<i class="iconfont-hb3 icontianjiajiahaowubiankuang"></i>
<p>添加图片/视频/文件/链接/小程序</p>
</div>
</el-popover> </el-popover>
<span style="font-size:12px;color:#909399">(附件不超过9个,单个大小不超过2M)</span> <p style="font-size:12px;color:#909399">(附件不超过9个,单个大小不超过2M)</p>
</div> </div>
</el-form-item> </el-form-item>
<el-form-item label="使用范围">
<el-form-item> <!-- <span @click="openDialog">请选择使用范围</span> -->
<mult-upload :limit="1" :imgList.sync="imglist" />
</el-form-item> </el-form-item>
<el-button type="primary" style="margin-left:117px;" @click="submit">保存</el-button> <el-button type="primary" style="margin-left:117px;" @click="submit">保存</el-button>
</el-form> </el-form>
<div class="iphone">
<div class="infoList">
<div class="infoListBox" v-if="form.welcomeContent">
<div class="infoAvatar">
<img src="@/assets/head_default.jpg" />
</div>
<div class="textInfo">
<div class="content" v-html="form.welcomeContent"></div>
</div>
</div>
<div class="infoListBox" v-for="(item, index) in form.welcomeMediaList" :key="index">
<div class="infoAvatar">
<img src="@/assets/head_default.jpg" />
</div>
<div v-if="item.mediaType == 1" class="imgInfo">
<img :src="item.mediaUrl" />
</div>
<div v-if="item.mediaType == 2" class="videoInfo" @click="blank(item.mediaUrl)">
<video :src="item.mediaUrl" />
</div>
<div v-if="item.mediaType == 3" class="docInfo">
<div class="docTitle">
<b>{{ item.mediaTitle }}</b>
<p>{{ item.mediaSize }}</p>
</div>
<svg-icon iconname="iconwenjianleixing-wenjian" size="40"> </svg-icon>
</div>
<div v-if="item.mediaType == 4" class="urlInfo">
<div class="urlTitle">{{ item.mediaTitle }}</div>
<div class="urlContent">
<b>{{ item.mediaTitle }}</b>
<svg-icon iconname="iconwenjianleixing-lianjie" size="40"> </svg-icon>
</div>
</div>
<div v-if="item.mediaType == 5" class="appletsInfo">
<div class="appletsTitle">{{ item.mediaTitle }}</div>
<img :src="item.mediaUrl" />
</div>
</div>
</div>
</div>
</div> </div>
<el-dialog title="添加公众号" width="585px" class="replay-link-dialog" :visible.sync="addReplayDialog" @closed="onClosed"> <el-dialog title="添加公众号" width="585px" class="replay-link-dialog" :visible.sync="addReplayDialog" @closed="onClosed">
<el-form label-position="right" ref="form" :model="{}" label-width="100px"> <el-form label-position="right" ref="form" :model="{}" label-width="100px" @submit.native.prevent>
<el-form-item label="公众号名称"> <el-form-item label="公众号名称">
<el-input v-model="url" @keyup.enter.native="addReplyBtn"></el-input> <el-input v-model="accountName" @keyup.enter.native="addAcountName"></el-input>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="addReplayDialog = false">取消</el-button>
<el-button type="primary" @click="addAcountName">确定</el-button>
</div>
</el-dialog>
<el-dialog title="添加链接" width="585px" class="replay-link-dialog" :visible.sync="urlDialogVisible" @closed="onClosed">
<el-form label-position="right" ref="form" :model="{}" label-width="100px" @submit.native.prevent>
<el-form-item label="链接地址">
<el-input v-model="url" @keyup.enter.native="addUrl"></el-input>
<span class="tips">以http或https开头</span>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="urlDialogVisible = false">取消</el-button>
<el-button type="primary" @click="addUrl">确认添加</el-button>
</div>
</el-dialog>
<el-dialog title="添加小程序" width="585px" class="replay-link-dialog" :visible.sync="appletsDialogVisible" @closed="onClosed">
<div role="alert" class="el-alert el-alert--info" style="width:430px;margin-bottom:20px">
<i class="el-alert__icon el-icon-info"></i>
<div class="el-alert__content">
<p class="el-alert__title">如需修改小程序信息,请前往【好办后台-企业设置】进行修改</p>
</div>
</div>
<el-form label-position="right" ref="form" :model="{}" label-width="100px">
<el-form-item label="小程序名称">
<span>京东零售</span>
</el-form-item>
<el-form-item label="标题">
<span>京东零售助力</span>
</el-form-item>
<el-form-item label="封面">
<img src="@/assets/logo.png" />
</el-form-item> </el-form-item>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button @click="addReplayDialog = false"></el-button> <el-button @click="appletsDialogVisible = false"></el-button>
<el-button type="primary" @click="addReplyBtn">确 定</el-button> <el-button type="primary" @click="addapplets">确认添加</el-button>
</div> </div>
</el-dialog> </el-dialog>
</div> </div>
</div> </div>
</template> </template>
<script> <script>
import { getRequest, postForm } from '@/api/api'; import { getRequest, postForm, postJsonRequest } from '@/api/api';
// import { _debounce } from '@/common/js/public'; // import { _debounce } from '@/common/js/public';
// import showMsg from '@/common/js/showmsg'; // import showMsg from '@/common/js/showmsg';
import limitTextarea from '@/components/limit-textarea.vue'; import limitTextarea from '@/components/limit-textarea.vue';
...@@ -84,7 +169,7 @@ export default { ...@@ -84,7 +169,7 @@ export default {
form: { form: {
title: '系统默认', title: '系统默认',
welcomeContent: '你好,<微信昵称>', welcomeContent: '你好,<微信昵称>',
welcomeImg: '' welcomeMediaList: []
}, },
uploadList: [ uploadList: [
{ {
...@@ -111,24 +196,60 @@ export default { ...@@ -111,24 +196,60 @@ export default {
icon: 'iconxiaochengxu' icon: 'iconxiaochengxu'
} }
], ],
imglist: [], iconType: {
url: '', 1: 'iconwenjianleixingtupian',
2: 'iconwenjianleixingshipin',
3: 'iconwenjianleixing-wenjian',
4: 'iconwenjianleixing-lianjie',
5: 'iconwenjianleixing-xiaochengxu'
},
accountName: '',
rules: { rules: {
title: [{ required: true, message: '请输入欢迎语标题', trigger: 'blur' }], title: [{ required: true, message: '请输入欢迎语标题', trigger: 'blur' }],
welcomeContent: [{ required: true, message: '请输入欢迎语内容', trigger: 'blur' }] welcomeContent: [{ required: true, message: '请输入欢迎语内容', trigger: 'blur' }]
}, },
wxEnterpriseId: localStorage.getItem('userInfos') ? JSON.parse(localStorage.getItem('userInfos')).wxEnterpriseId : '',
emojiList: emojiArr, emojiList: emojiArr,
addReplayDialog: false, addReplayDialog: false,
upUrl: '' url: '',
urlDialogVisible: false,
appletsDialogVisible: false
}; };
}, },
watch: {},
mounted() {
const that = this;
that.$emit('showTab', 4);
document.documentElement.style.backgroundColor = '#f0f2f5';
if (this.$route.query.id) {
that.getData();
}
},
destroyed() {
document.documentElement.style.backgroundColor = '#fff';
},
components: {
limitTextarea,
singleUpload,
multUpload
},
methods: { methods: {
blank(url) {
window.open(url);
},
handleUploadList(item, index) { handleUploadList(item, index) {
console.log(item); console.log(item);
if (['图片', '视频', '文件'].includes(item.title)) { if (['图片', '视频', '文件'].includes(item.title)) {
document.getElementsByClassName('upload-input')[index].click(); document.getElementsByClassName('upload-input')[index].click();
} else if (item.title == '链接') {
this.urlDialogVisible = true;
} else if (item.title == '小程序') {
this.appletsDialogVisible = true;
} }
}, },
handleDelMedia(row, index) {
this.form.welcomeMediaList.splice(index, 1);
},
handkeFileChange(e, item) { handkeFileChange(e, item) {
console.log(item); console.log(item);
const file = e.target.files[0]; // only use files[0] const file = e.target.files[0]; // only use files[0]
...@@ -151,12 +272,6 @@ export default { ...@@ -151,12 +272,6 @@ export default {
} else if (item.title == '文件') { } else if (item.title == '文件') {
fileType = '.doc'; fileType = '.doc';
} }
let reader = new FileReader();
reader.readAsDataURL(file);
reader.onload = e => {
console.log(e);
};
console.log(fileType);
this.handleRequest(file, fileType); this.handleRequest(file, fileType);
}, },
handleRequest(file, fileType) { handleRequest(file, fileType) {
...@@ -164,33 +279,67 @@ export default { ...@@ -164,33 +279,67 @@ export default {
files.append('file', file); files.append('file', file);
postForm(`/haoban-manage3-web/upload-file?fileType=${fileType}`, files).then(res => { postForm(`/haoban-manage3-web/upload-file?fileType=${fileType}`, files).then(res => {
const { data } = res; const { data } = res;
console.log(data); let mediaType = 1;
if (fileType == 'jpg') {
mediaType = 1;
} else if (fileType == 'mp4') {
mediaType = 2;
} else if (fileType == '.doc') {
mediaType = 3;
}
if (data.errorCode == 1 && data.result) {
const obj = {
mediaTitle: data.result.mediaName,
mediaType,
mediaUrl: data.result.url,
mediaSize: data.result.size
};
this.form.welcomeMediaList.push(obj);
}
}); });
}, },
onClosed() { onClosed() {
this.accountName = '';
this.url = ''; this.url = '';
}, },
addReplyBtn() { addAcountName() {
// 文本链接 // 文本链接
if (this.url == '') { if (this.accountName == '') {
this.$message({ this.$message({
message: '请输入公众号名称', message: '请输入公众号名称',
type: 'error' type: 'error'
}); });
return; return;
} else { } else {
if (this.url.indexOf('#公众号:') != -1) { if (this.accountName.indexOf('#公众号:') != -1) {
console.log(''); console.log('');
} else { } else {
this.url = '#公众号:' + this.url; this.accountName = '#公众号:' + this.accountName;
} }
this.addReplayDialog = false; this.addReplayDialog = false;
this.form.welcomeContent = this.form.welcomeContent + this.url; this.form.welcomeContent = this.form.welcomeContent + this.accountName;
} }
}, },
addUrl() {
this.form.welcomeMediaList.push({
mediaTitle: this.url,
mediaType: 4,
mediaUrl: this.url,
mediaSize: ''
});
this.urlDialogVisible = false;
},
addapplets() {
this.form.welcomeMediaList.push({
mediaTitle: 'GIC达摩网络',
mediaMiniTitle: 'GIC达摩网络测试',
mediaType: 5,
mediaUrl: 'http://wx.qlogo.cn/mmopen/hjm3uRjuvbpjkwJXg1ZxP3f1pHffFzVFWjiardNzjonpeLicibOw1AKicecgHIsm17zpjYWl3YYW8Rml1PCxgk3saSuP3hzUlcky/0',
mediaSize: ''
});
this.appletsDialogVisible = false;
},
addLinkDialogShow() { addLinkDialogShow() {
// 是否显示添加回复链接的dialog
// console.log(this.cancelLink);
this.addReplayDialog = true; this.addReplayDialog = true;
}, },
changeRoute() { changeRoute() {
...@@ -210,21 +359,18 @@ export default { ...@@ -210,21 +359,18 @@ export default {
that.form.welcomeContent = that.form.welcomeContent + '<微信昵称>'; that.form.welcomeContent = that.form.welcomeContent + '<微信昵称>';
}, },
getData() { getData() {
const that = this;
let para = { let para = {
wxEnterpriseId: that.wxEnterpriseId welcomeId: this.$route.query.id
}; };
getRequest('/haoban-manage3-web/get-welcome', para) getRequest('/haoban-manage3-web/welcome/get', para)
.then(res => { .then(res => {
let resData = res.data; let resData = res.data;
if (resData.errorCode == 1 && resData.result) { if (resData.code == 0 && resData.result) {
that.form = resData.result; this.form = resData.result;
this.imglist = resData.result.welcomeImg ? [{ url: resData.result.welcomeImg }] : [];
} }
errMsg.errorMsg(resData);
}) })
.catch(function(error) { .catch(error => {
that.$message.error({ this.$message.error({
duration: 1000, duration: 1000,
message: error.message message: error.message
}); });
...@@ -233,13 +379,13 @@ export default { ...@@ -233,13 +379,13 @@ export default {
submit() { submit() {
const that = this; const that = this;
that.$refs.form.validate(value => { that.$refs.form.validate(value => {
console.log(value);
if (value) { if (value) {
this.$confirm('确认保存此欢迎语?', '提示') this.$confirm('确认保存此欢迎语?', '提示')
.then(() => { .then(() => {
this.form.welcomeImg = this.imglist.length ? this.imglist[0].url : '';
const para = { ...that.form }; const para = { ...that.form };
getRequest('/haoban-manage3-web/save-welcome', para) para.wxEnterpriseId = this.wxEnterpriseId;
this.btnLoading = true;
postJsonRequest('/haoban-manage3-web/welcome/save', para)
.then(res => { .then(res => {
let resData = res.data; let resData = res.data;
if (resData.errorCode == 1) { if (resData.errorCode == 1) {
...@@ -256,27 +402,15 @@ export default { ...@@ -256,27 +402,15 @@ export default {
duration: 1000, duration: 1000,
message: error.message message: error.message
}); });
})
.finally(() => {
this.btnLoading = false;
}); });
}) })
.catch(); .catch();
} }
}); });
} }
},
watch: {},
mounted() {
const that = this;
that.$emit('showTab', 4);
document.documentElement.style.backgroundColor = '#f0f2f5';
that.getData();
},
destroyed() {
document.documentElement.style.backgroundColor = '#fff';
},
components: {
limitTextarea,
singleUpload,
multUpload
} }
}; };
</script> </script>
...@@ -288,15 +422,38 @@ export default { ...@@ -288,15 +422,38 @@ export default {
width: 555px; width: 555px;
box-sizing: border-box; box-sizing: border-box;
} }
.mediaEcho {
background: #f7f8fa;
padding-left: 20px;
padding-top: 14px;
padding-bottom: 14px;
.flexBox {
display: flex;
justify-content: flex-start;
align-items: center;
.popverText {
font-size: 12px;
line-height: 16px;
max-width: 80%;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
}
.flexBox + .flexBox {
margin-top: 14px;
}
}
.addInfo { .addInfo {
padding: 10px 20px; padding: 10px 20px;
width: 555px; width: 555px;
background: #f7f8fa; background: #f7f8fa;
border-radius: 2px; border-radius: 2px;
position: absolute;
line-height: 20px; line-height: 20px;
box-sizing: border-box; box-sizing: border-box;
span { p {
display: inline-block;
margin-left: 8px; margin-left: 8px;
} }
p:hover { p:hover {
...@@ -355,7 +512,7 @@ export default { ...@@ -355,7 +512,7 @@ export default {
box-sizing: border-box; box-sizing: border-box;
.text-bottom { .text-bottom {
position: absolute; position: absolute;
bottom: 1px; top: 180px;
left: 1px; left: 1px;
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
...@@ -378,6 +535,162 @@ export default { ...@@ -378,6 +535,162 @@ export default {
} }
} }
} }
.form {
width: 672px;
float: left;
}
.iphone {
border-radius: 4px;
position: relative;
margin-left: 117px;
display: inline-block;
font-size: 0;
line-height: 0;
background-image: url('../../assets/iphone2.png');
background-repeat: no-repeat;
width: 240px;
min-height: 495px;
background-size: 240px auto;
color: #303133;
.infoList {
padding: 0 10px;
margin-top: 80px;
border-radius: 6px;
max-height: 360px;
overflow: auto;
.infoListBox {
.infoAvatar {
display: inline-block;
vertical-align: top;
margin-right: 10px;
img {
vertical-align: top;
width: 26px;
height: 26px;
}
}
.imgInfo,
.videoInfo {
display: inline-block;
overflow: hidden;
border-radius: 4px;
position: relative;
cursor: default;
img {
min-height: 27px;
max-width: 140px;
}
}
.videoInfo {
video {
min-height: 27px;
max-width: 140px;
max-height: 250px;
cursor: pointer;
}
}
.textInfo,
.docInfo,
.urlInfo,
.appletsInfo {
min-height: 28px;
background-color: #fff;
border: 1px solid #e4e6e9;
max-width: 166px;
display: inline-block;
text-align: left;
padding: 5px 6px;
border-radius: 4px;
min-width: 24px;
box-sizing: border-box;
position: relative;
&::before {
top: 10px;
display: block;
content: ' ';
width: 0;
line-height: 0;
font-size: 0;
border-style: solid;
border-color: transparent;
position: absolute;
left: -6px;
border-width: 4px 6px;
border-left: 0;
border-right-color: #fff;
}
.content {
font-size: 12px;
word-break: break-all;
letter-spacing: 0;
line-height: 18px;
height: auto;
}
}
.docTitle {
padding-right: 10px;
max-width: 100px;
float: left;
overflow-wrap: break-word;
b {
font-size: 12px;
text-align: left;
line-height: 16px;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
overflow: hidden;
}
p {
margin-top: 5px;
font-size: 12px;
color: #787878;
text-align: left;
line-height: 14px;
}
}
.urlTitle,
.appletsTitle {
font-size: 14px;
line-height: 20px;
overflow: hidden;
text-overflow: ellipsis;
margin-bottom: 3px;
}
.urlInfo {
.urlContent {
overflow-wrap: break-word;
b {
color: #606266;
padding-right: 10px;
font-size: 12px;
text-align: left;
line-height: 17px;
display: -webkit-box;
-webkit-line-clamp: 3;
-webkit-box-orient: vertical;
overflow: hidden;
max-width: 100px;
float: left;
}
}
}
.appletsInfo {
.appletsTitle {
color: #606266;
}
img {
width: 144px;
height: 144px;
}
}
}
.infoListBox + .infoListBox {
margin-top: 15px;
}
}
}
} }
.el-alert--info { .el-alert--info {
align-items: flex-start; align-items: flex-start;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment