|
|
@@ -243,12 +243,13 @@
|
|
|
}
|
|
|
|
|
|
.matters_item {
|
|
|
- width: 163px;
|
|
|
+ width: calc(50% - 5px);
|
|
|
height: 60px;
|
|
|
border-radius: 10px;
|
|
|
display: flex;
|
|
|
align-items: center;
|
|
|
padding: 10px;
|
|
|
+ margin-bottom: 10px;
|
|
|
box-sizing: border-box;
|
|
|
border: 1px solid #EFEFEF;
|
|
|
position: relative;
|
|
|
@@ -257,6 +258,7 @@
|
|
|
.matters_item_img {
|
|
|
width: 40px;
|
|
|
height: 40px;
|
|
|
+ flex-shrink: 0;
|
|
|
margin-right: 8px;
|
|
|
}
|
|
|
|
|
|
@@ -269,6 +271,8 @@
|
|
|
}
|
|
|
|
|
|
.matters_item_info {
|
|
|
+ flex: 1;
|
|
|
+ min-width: 0;
|
|
|
display: flex;
|
|
|
flex-direction: column;
|
|
|
font-size: 12px;
|
|
|
@@ -280,8 +284,7 @@
|
|
|
font-size: 12px;
|
|
|
color: #222222;
|
|
|
line-height: 17px;
|
|
|
- width: 96px;
|
|
|
- /* 必须设置宽度 */
|
|
|
+ /* 必须设置宽度,此处宽度继承父元素 */
|
|
|
overflow: hidden;
|
|
|
white-space: nowrap;
|
|
|
text-overflow: ellipsis;
|
|
|
@@ -290,8 +293,8 @@
|
|
|
|
|
|
.matters_list {
|
|
|
display: flex;
|
|
|
+ justify-content: space-between;
|
|
|
flex-wrap: wrap;
|
|
|
- gap: 10px;
|
|
|
}
|
|
|
|
|
|
.mem_centent {
|
|
|
@@ -960,7 +963,7 @@
|
|
|
<img class="matters_item_img" v-else-if="item.contentType === 3" src="../img/qw/file.png" alt="">
|
|
|
<img class="matters_item_img" v-else src="../img/qw/link.png" alt="">
|
|
|
<div class="matters_item_info">
|
|
|
- <div class="matters_item_title">{{item.title}}</div>
|
|
|
+ <div class="matters_item_title">{{item.name || item.title}}</div>
|
|
|
<div>{{matterTypeList.find(type => type.contentType === item.contentType)?.name || '未知类型'}}</div>
|
|
|
</div>
|
|
|
<img class="close_mater" src="../img/qw/close_mater.png" alt="" @click="handleCloseMatter(item)">
|
|
|
@@ -1609,9 +1612,10 @@
|
|
|
this.showTime = false
|
|
|
},
|
|
|
handleCloseMatter(item) {
|
|
|
- this.formValidate.matters = this.formValidate.matters.filter(matter => matter.id !== item.id)
|
|
|
- this.matterOthersList = this.matterOthersList.filter(matter => matter.id !== item.id)
|
|
|
- this.matterImgList = this.matterImgList.filter(img => img.id !== item.id)
|
|
|
+ this.formValidate.matters = this.removeItemFromArray(this.formValidate.matters, item)
|
|
|
+ this.matterOthersList = this.removeItemFromArray(this.matterOthersList, item)
|
|
|
+ this.matterImgList = this.removeItemFromArray(this.matterImgList, item)
|
|
|
+
|
|
|
this.deleteItemFromLocalStorage('selectedMaters', item.id)
|
|
|
},
|
|
|
// 从localStorage中删除指定id的对象项
|
|
|
@@ -1676,10 +1680,6 @@
|
|
|
vant.Toast.fail('请添加要发送的内容')
|
|
|
return
|
|
|
}
|
|
|
- if (this.formValidate.matters && this.formValidate.matters.length > 9) {
|
|
|
- vant.Toast.fail('发送素材最多9个')
|
|
|
- return
|
|
|
- }
|
|
|
if (this.formValidate.type === 2 && !this.formValidate.sendTime) {
|
|
|
vant.Toast.fail('请设置群发时间再提交')
|
|
|
return
|
|
|
@@ -1696,6 +1696,10 @@
|
|
|
title: matter.title || matter.name,
|
|
|
}
|
|
|
})
|
|
|
+ if (!this.validateMaterials(this.formValidate.matters).valid) {
|
|
|
+ vant.Toast.fail(this.validateMaterials(this.formValidate.matters).message)
|
|
|
+ return
|
|
|
+ }
|
|
|
}
|
|
|
fetch(this.httpUrl + '/scrm/v1/wxcp-moment/m/add', {
|
|
|
method: 'post',
|
|
|
@@ -1723,6 +1727,46 @@
|
|
|
}
|
|
|
})
|
|
|
},
|
|
|
+ validateMaterials(materials) {
|
|
|
+ // 分离 type 为 19 和不为 19 的项
|
|
|
+ const type19Items = materials.filter(item => item.type === 19);
|
|
|
+ const otherTypeItems = materials.filter(item => item.type !== 19);
|
|
|
+
|
|
|
+ // 检查条件
|
|
|
+ if (type19Items.length > 0 && otherTypeItems.length > 0) {
|
|
|
+ return {
|
|
|
+ valid: false,
|
|
|
+ message: "图片和别的素材只能传一种"
|
|
|
+ };
|
|
|
+ }
|
|
|
+
|
|
|
+ // 检查其他类型是否有多条
|
|
|
+ if (otherTypeItems.length > 1) {
|
|
|
+ return {
|
|
|
+ valid: false,
|
|
|
+ message: "同一类型的素材只能上传一条"
|
|
|
+ };
|
|
|
+ }
|
|
|
+
|
|
|
+ return {
|
|
|
+ valid: true,
|
|
|
+ };
|
|
|
+ },
|
|
|
+ // 创建删除函数生成器
|
|
|
+ removeItemFromArray (array, item) {
|
|
|
+ return array.filter(element => {
|
|
|
+ // 如果 element 有 id,则用 id 比较
|
|
|
+ if (element.id) {
|
|
|
+ return element.id !== item.id
|
|
|
+ }
|
|
|
+ // 如果 element 有 contentId,则用 contentId 比较
|
|
|
+ if (element.contentId) {
|
|
|
+ return element.contentId !== item.id
|
|
|
+ }
|
|
|
+ // 如果都没有,保留元素
|
|
|
+ return true
|
|
|
+ })
|
|
|
+ },
|
|
|
processData(data) {
|
|
|
return data.map(obj => {
|
|
|
// 过滤掉tags为空的条件项
|
|
|
@@ -1738,7 +1782,7 @@
|
|
|
handleAddMatter() {
|
|
|
if (this.materialType === 1) {
|
|
|
localStorage.setItem('clientMassData', JSON.stringify(this.formValidate))
|
|
|
- window.location.href = `material.html?memberId=${this.memberId}&bId=${this.bId}&env=${this.env}`
|
|
|
+ window.location.href = `material.html?memberId=${this.memberId}&bId=${this.bId}&env=${this.env}&hideType=3`
|
|
|
} else {
|
|
|
// 创建一个input元素,用于选择相册中的图片
|
|
|
const input = document.createElement('input');
|