|
@@ -19,10 +19,12 @@
|
|
|
</div>
|
|
|
</template>
|
|
|
<script>
|
|
|
+import axios from 'axios'
|
|
|
import tinymce from 'tinymce/tinymce'
|
|
|
import Editor from '@tinymce/tinymce-vue'
|
|
|
import 'tinymce/themes/silver/theme'
|
|
|
import 'tinymce/icons/default/icons'
|
|
|
+// import { uploadImage } from '@/api/common.js'
|
|
|
// import textEditor from './editor'
|
|
|
export default {
|
|
|
components: {
|
|
@@ -106,7 +108,9 @@ export default {
|
|
|
watch: {
|
|
|
value: {
|
|
|
handler(newV, oldV) {
|
|
|
- this.inputValue = newV
|
|
|
+ console.log('new', newV, 'old', oldV)
|
|
|
+ // resetImgSrc
|
|
|
+ this.inputValue = this.resetImgSrc(newV)
|
|
|
},
|
|
|
immediate: true
|
|
|
}
|
|
@@ -115,6 +119,57 @@ export default {
|
|
|
tinymce.init({ selector: `#tinymce_${this.id}` })
|
|
|
},
|
|
|
methods: {
|
|
|
+ async resetImgSrc(str) {
|
|
|
+ let newStr = str
|
|
|
+ const imgReg = /<img.*?(?:>|\/>)/gi
|
|
|
+ const srcReg = /src=[\'\"]?([^\'\"]*)[\'\"]?/i
|
|
|
+ const imgArr = newStr.match(imgReg)
|
|
|
+ console.log(imgArr)
|
|
|
+ imgArr && imgArr.map(async t => {
|
|
|
+ var src = t.match(srcReg)
|
|
|
+ console.log(src)
|
|
|
+ if (src[1]) {
|
|
|
+ // var t = src[0].replace(/src/i, "href");
|
|
|
+ // alert(t);
|
|
|
+ // const res = await uploadImage({
|
|
|
+ // 'imgData': src[1],
|
|
|
+ // 'innerPublic': true
|
|
|
+ // })
|
|
|
+ const newImgUrl = await this.uploadImg(src[1])
|
|
|
+ newStr = newStr.replace(src[1], newImgUrl)
|
|
|
+ console.log(newStr)
|
|
|
+ console.log(src[1])
|
|
|
+ }
|
|
|
+ })
|
|
|
+ console.log('newStr', newStr)
|
|
|
+ console.log('str', str)
|
|
|
+ return newStr
|
|
|
+ },
|
|
|
+ uploadImg(imgData) {
|
|
|
+ const config = {
|
|
|
+ headers: {
|
|
|
+ 'Content-Type': 'multipart/form-data'
|
|
|
+ },
|
|
|
+ withCredentials: false
|
|
|
+ } // 添加请求头
|
|
|
+ return new Promise((resolve, reject) => {
|
|
|
+ axios.post(
|
|
|
+ 'http://star.xiaojukeji.com/upload/img.node',
|
|
|
+ {
|
|
|
+ 'imgData': imgData,
|
|
|
+ 'innerPublic': true
|
|
|
+ },
|
|
|
+ config
|
|
|
+ )
|
|
|
+ .then(res => {
|
|
|
+ console.log(res)
|
|
|
+ // newStr = newStr.replace(imgData, res.url)
|
|
|
+ resolve(res.url)
|
|
|
+ }).catch(err => {
|
|
|
+ reject(err)
|
|
|
+ })
|
|
|
+ })
|
|
|
+ },
|
|
|
changeText(e) { // 富文本内容改变
|
|
|
this.inputValue = e
|
|
|
this.$emit('update:value', this.inputValue)
|