<template>
<view>
<!--<button @click="request">调用 RenderJS 方法</button>-->
<view v-show="false" :data="data" :change:data="requestModule.realRequest"></view>
</view>
</template>
<script>
import config from '@/config'
import {
getToken
} from '@/utils/auth'
export default {
data() {
return {
data: {
url: '',
formData: "",
randomValue: ''
}
}
},
methods: {
request(url, formData) {
this.data = {
url: config.baseUrl+url,
formData: formData,
authorization: getToken(),
randomValue: Math.floor(1000 + Math.random() * 9000)
}
},
response(resp) {
console.log("resp", resp);
this.$emit('response', resp);
}
}
}
</script>
<script module="requestModule" lang="renderjs">
import axios from 'axios';
export default {
methods: {
realRequest(newValue, oldValue) {
//const obj = JSON.parse(newValue);
if(!newValue.url) {
return
}
const formData = new FormData();
formData.append('form', JSON.stringify(newValue.formData));
axios.post(newValue.url, formData, {
headers: {
'Content-Type': 'multipart/form-data', // 确保设置正确的 Content-Type
'Authorization': newValue.authorization
}
})
.then(response => {
//console.log('文件上传成功:', response.data);
this.$ownerInstance.callMethod("response", response);
})
.catch(error => {
console.error('文件上传失败:', error);
//this.$ownerInstance.callMethod("response", error);
});
}
}
};
</script>
<style>
</style>
调用
<template>
<view>
<button @click="request">调用 RenderJS 方法</button>
<requestFormData ref="requestFormData" @response="response"></requestFormData>
</view>
</template>
<script>
import requestFormData from '@/components/requestFormData/requestFormData.vue';
export default {
components: {
requestFormData,
},
data() {
return {
}
},
methods: {
request() {
this.$refs.requestFormData.request('/foundation/api/mingmenDailyMiss/edit',{'businessData':JSON.stringify({'id':'1879451746490097665','name':'蓝颜来','birth':'1888-15-12','demiseTime':'2000-11-01','buriedIn':'南阳市','introduction':'我是简介','motto':'我是座右铭'}),'continuedUseFileIds':''});
},
response(e){
console.log("父组件拿到响应", e);
}
}
}
</script>
<style>
</style>