|
@@ -14,7 +14,16 @@
|
14
|
14
|
<div class="flex titleBox">
|
15
|
15
|
<div>文案 <span v-if="getRows()>0" class="c-theme">{{getRows()}}</span></div>
|
16
|
16
|
<div class="lMarauto">
|
17
|
|
- <V3Emoji size="mid" :custom-size="customSize" :fulldata="true" @click-emoji="appendText" :disableGroup="disableGroupArr"/>
|
|
17
|
+ <el-popover trigger="hover" width="400">
|
|
18
|
+ <div class="emojiBox">
|
|
19
|
+ <img class="pointer" v-for="(i,idx) in emojiList" @click="appendText(i)" :alt="i" :title="i"
|
|
20
|
+ style="width: 28px;height: 28px;margin-right: 6px;margin-bottom: 6px;display: inline-block"
|
|
21
|
+ :src="'https://wxa.wxs.qq.com/wxad-design/emojis/smiley_'+idx+'.png'" />
|
|
22
|
+ </div>
|
|
23
|
+ <template #reference>
|
|
24
|
+ <img class="pointer" src="@/assets/img/icon.png" alt="" width="20">
|
|
25
|
+ </template>
|
|
26
|
+ </el-popover>
|
18
|
27
|
</div>
|
19
|
28
|
</div>
|
20
|
29
|
<div class="tips">系统会根据您填写的文案长度,自动设配不同要求的创意形式,添加多个文案请换行</div>
|
|
@@ -31,17 +40,8 @@ import TypeSelect from './type.vue'
|
31
|
40
|
import {getCurrentInstance, nextTick, onMounted, reactive, ref} from "vue";
|
32
|
41
|
import {textParam} from "@/api/ApiModel";
|
33
|
42
|
import {Api} from "@/api/api";
|
|
43
|
+import {emojiList} from "@/common/emoji";
|
34
|
44
|
import {ElMessage} from "element-plus";
|
35
|
|
-import V3Emoji from 'vue3-emoji'
|
36
|
|
-import 'vue3-emoji/dist/style.css'
|
37
|
|
-
|
38
|
|
-const customSize= {
|
39
|
|
- 'V3Emoji-width': '500px',
|
40
|
|
- 'V3Emoji-height': '250px',
|
41
|
|
- 'V3Emoji-fontSize': '1rem',
|
42
|
|
- 'V3Emoji-itemSize': '20px'
|
43
|
|
-};
|
44
|
|
-const disableGroupArr= ['People & Body','Animals & Nature','Food & Drink','Travel & Places','Activities','Objects','Symbols','Flags']
|
45
|
45
|
|
46
|
46
|
const emit = defineEmits<{
|
47
|
47
|
(event: "init"): void;
|
|
@@ -70,12 +70,12 @@ const appendText = (val:any) => {
|
70
|
70
|
if (startPos === undefined || endPos === undefined) return
|
71
|
71
|
var txt = elInput.value;
|
72
|
72
|
// 将表情添加到选中的光标位置
|
73
|
|
- var result = txt.substring(0, startPos) + val.emoji + txt.substring(endPos)
|
|
73
|
+ var result = txt.substring(0, startPos) + val + txt.substring(endPos)
|
74
|
74
|
elInput.value = result;// 赋值给input的value
|
75
|
75
|
// 重新定义光标位置
|
76
|
76
|
elInput.focus();
|
77
|
|
- elInput.selectionStart = startPos + val.name.length;
|
78
|
|
- // elInput.selectionEnd = endPos + val.name.length;
|
|
77
|
+ elInput.selectionStart = startPos + val.length;
|
|
78
|
+ elInput.selectionEnd = endPos + val.length;
|
79
|
79
|
text_textarea.value = result// 赋值给表单中的的字段
|
80
|
80
|
}
|
81
|
81
|
|
|
@@ -84,31 +84,23 @@ const appendText = (val:any) => {
|
84
|
84
|
const loading = ref<boolean>(false)
|
85
|
85
|
const text_textarea = ref<string>('')
|
86
|
86
|
// 提交前判断是否为空
|
87
|
|
-const checkValEvent = () => {
|
88
|
|
- nextTick(()=>{
|
89
|
|
- return new Promise(async (resolve:any, reject:any) => {
|
90
|
|
- if (!typeRef.value!.textVal) {
|
91
|
|
- ElMessage.error('请选择分类')
|
92
|
|
- reject()
|
93
|
|
- } else if(text_textarea.value == ''){
|
94
|
|
- ElMessage.error('请输入文案')
|
95
|
|
- reject()
|
96
|
|
- } else {
|
97
|
|
- if(typeof typeRef.value!.textVal == 'number'){}else{
|
98
|
|
- await typeRef.value!.add_type()
|
99
|
|
- }
|
100
|
|
- resolve()
|
101
|
|
- }
|
102
|
|
- })
|
103
|
|
- })
|
104
|
|
-}
|
105
|
87
|
//关闭
|
106
|
88
|
const closeEvent = () => {
|
107
|
89
|
dialogShow.value = false
|
108
|
90
|
emit('initType')
|
109
|
91
|
}
|
110
|
92
|
const confirmEvent = async ()=>{
|
111
|
|
- await checkValEvent()
|
|
93
|
+ if (!typeRef.value!.textVal) {
|
|
94
|
+ ElMessage.error('请选择分类')
|
|
95
|
+ return
|
|
96
|
+ } else if(text_textarea.value == ''){
|
|
97
|
+ ElMessage.error('请输入文案')
|
|
98
|
+ return
|
|
99
|
+ } else {
|
|
100
|
+ if(typeof typeRef.value!.textVal == 'number'){}else{
|
|
101
|
+ await typeRef.value!.add_type()
|
|
102
|
+ }
|
|
103
|
+ }
|
112
|
104
|
loading.value = true
|
113
|
105
|
const paramsModel = reactive<textParam>({
|
114
|
106
|
classify_id:Number(typeRef.value!.textVal),
|
|
@@ -180,16 +172,6 @@ onMounted(()=>{
|
180
|
172
|
})
|
181
|
173
|
</script>
|
182
|
174
|
<style lang="scss" scoped>
|
183
|
|
-:deep(.pollup .tab-name){
|
184
|
|
- display: none;
|
185
|
|
-}
|
186
|
|
-:deep(.pollup .emoji-container){
|
187
|
|
- max-height: calc(var(--V3Emoji-height) * 2 - 50px);
|
188
|
|
-}
|
189
|
|
-:deep(.pollup){
|
190
|
|
- z-index: 999;
|
191
|
|
- top: 30px;
|
192
|
|
-}
|
193
|
175
|
.addTextSelect{
|
194
|
176
|
:deep(.el-select-dropdown__item){
|
195
|
177
|
padding: 0 10px;
|