update amis
parent
30cbecbd72
commit
67ca036ca9
File diff suppressed because one or more lines are too long
|
|
@ -1,17 +1,15 @@
|
||||||
<template>
|
<template>
|
||||||
<div ref="boxRef"></div>
|
<div id="amisid" ref="boxRef"></div>
|
||||||
</template>
|
</template>
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import {defineProps,onMounted,watch,toRaw,ref} from "vue"
|
import {defineProps,onMounted,watch,toRaw,ref} from "vue"
|
||||||
import {ElMessage} from 'element-plus'
|
import {ElMessage} from 'element-plus'
|
||||||
import 'amis/sdk/sdk.js';
|
import 'amis/sdk/sdk.js'
|
||||||
import 'amis/lib/themes/default.css';
|
import 'amis/lib/themes/default.css'
|
||||||
import axios from 'axios'
|
import axios from 'axios'
|
||||||
import copy from 'copy-to-clipboard'
|
import copy from 'copy-to-clipboard'
|
||||||
import {getPagesInfo} from '@/api/lowcode/lcPages'
|
|
||||||
import {getToken} from '@/api/auth'
|
import {getToken} from '@/api/auth'
|
||||||
|
|
||||||
const boxRef = ref()
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
formid: {
|
formid: {
|
||||||
type: String,
|
type: String,
|
||||||
|
|
@ -27,22 +25,22 @@
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
watch(props.formjson, (newValue, oldValue) =>{
|
// @ts-ignore
|
||||||
onRendering(newValue)
|
const amis = amisRequire('amis/embed');
|
||||||
})
|
const boxRef = ref(null)
|
||||||
|
|
||||||
onMounted(()=>{
|
|
||||||
onRendering(props.formjson)
|
|
||||||
})
|
|
||||||
|
|
||||||
|
watch(()=> props.formjson, (data)=>{
|
||||||
|
onRendering(data)
|
||||||
|
},
|
||||||
|
{immediate: true,deep: true}
|
||||||
|
)
|
||||||
|
|
||||||
function onRendering(data:any){
|
function onRendering(data:any){
|
||||||
// @ts-ignore
|
// let amisScoped = amis.embed('#amisid', data);
|
||||||
let amis = amisRequire('amis/embed')
|
|
||||||
let theme = 'cxd'
|
let theme = 'cxd'
|
||||||
let amisScoped = amis.embed(
|
let amisScoped = amis.embed(
|
||||||
boxRef.value,
|
'#amisid',
|
||||||
toRaw(data),
|
data,
|
||||||
{
|
{
|
||||||
updateLocation: (to, replace) => {},
|
updateLocation: (to, replace) => {},
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -1,26 +1,26 @@
|
||||||
<template>
|
<template>
|
||||||
<amisComponent :formid="state.formid" :formjson="state.formjson"></amisComponent>
|
<amisComponent :formid="formid" :formjson="formjson"></amisComponent>
|
||||||
</template>
|
</template>
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import {reactive,onMounted} from "vue"
|
import {reactive, ref} from "vue"
|
||||||
import amisComponent from "../amis/AmisComponent.vue"
|
import amisComponent from "../amis/AmisComponent.vue"
|
||||||
import {getPagesInfo} from '@/api/lowcode/lcPages'
|
import {getPagesInfo} from '@/api/lowcode/lcPages'
|
||||||
import {useRoute} from 'vue-router'
|
import {useRoute} from 'vue-router'
|
||||||
|
|
||||||
const route = useRoute()
|
const route = useRoute()
|
||||||
const state = reactive({
|
const formid = ref('')
|
||||||
formid: '',
|
const formjson = ref({})
|
||||||
formjson: {}
|
|
||||||
})
|
|
||||||
|
|
||||||
onMounted(()=>{
|
const init = () =>{
|
||||||
getPagesInfo(route.meta.id).then((res:any) => {
|
getPagesInfo(route.meta.id).then((res:any) => {
|
||||||
if(res){
|
if(res){
|
||||||
state.formid = res.result.id
|
formid.value = res.result.id
|
||||||
state.formjson = JSON.parse(res.result.pageschema)
|
formjson.value = JSON.parse(res.result.pageschema)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
})
|
}
|
||||||
|
|
||||||
|
init()
|
||||||
</script>
|
</script>
|
||||||
<style scoped>
|
<style scoped>
|
||||||
</style>
|
</style>
|
||||||
|
|
|
||||||
|
|
@ -19,6 +19,7 @@
|
||||||
chineseName: '',
|
chineseName: '',
|
||||||
englishName: '',
|
englishName: '',
|
||||||
sort: 0,
|
sort: 0,
|
||||||
|
componentType: 0,
|
||||||
component: null,
|
component: null,
|
||||||
openMode: 0,
|
openMode: 0,
|
||||||
isDel: 0,
|
isDel: 0,
|
||||||
|
|
@ -60,6 +61,7 @@
|
||||||
chineseName: data.chineseName,
|
chineseName: data.chineseName,
|
||||||
englishName: data.englishName,
|
englishName: data.englishName,
|
||||||
sort: data.sort,
|
sort: data.sort,
|
||||||
|
componentType: data.componentType,
|
||||||
component: data.component,
|
component: data.component,
|
||||||
openMode: data.openMode,
|
openMode: data.openMode,
|
||||||
isDel: data.isDel,
|
isDel: data.isDel,
|
||||||
|
|
@ -88,6 +90,7 @@
|
||||||
chineseName: '',
|
chineseName: '',
|
||||||
englishName: '',
|
englishName: '',
|
||||||
sort: 0,
|
sort: 0,
|
||||||
|
componentType: 0,
|
||||||
component: null,
|
component: null,
|
||||||
openMode: 0,
|
openMode: 0,
|
||||||
isDel: 0,
|
isDel: 0,
|
||||||
|
|
@ -122,6 +125,7 @@
|
||||||
chineseName: '',
|
chineseName: '',
|
||||||
englishName: '',
|
englishName: '',
|
||||||
sort: 0,
|
sort: 0,
|
||||||
|
componentType: 0,
|
||||||
component: '',
|
component: '',
|
||||||
openMode: 0,
|
openMode: 0,
|
||||||
isDel: 0,
|
isDel: 0,
|
||||||
|
|
@ -173,6 +177,7 @@
|
||||||
chineseName: '',
|
chineseName: '',
|
||||||
englishName: '',
|
englishName: '',
|
||||||
sort: 0,
|
sort: 0,
|
||||||
|
componentType: 0,
|
||||||
component: null,
|
component: null,
|
||||||
openMode: 0,
|
openMode: 0,
|
||||||
isDel: 0,
|
isDel: 0,
|
||||||
|
|
@ -240,6 +245,12 @@
|
||||||
<el-form-item label="菜单顺序" prop="sort" :rules="[{required: true, message: '菜单顺序不能为空', trigger: 'blur'}]">
|
<el-form-item label="菜单顺序" prop="sort" :rules="[{required: true, message: '菜单顺序不能为空', trigger: 'blur'}]">
|
||||||
<el-input-number v-model="state.menuForm.sort" :min="0" :max="999" style="width:50%"></el-input-number>
|
<el-input-number v-model="state.menuForm.sort" :min="0" :max="999" style="width:50%"></el-input-number>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
<el-form-item v-if="state.type == 1" label="组件类型" prop="componentType" :rules="[{required: true, message: '请选择组件类型', trigger: 'change'}]">
|
||||||
|
<el-radio-group v-model="state.menuForm.componentType">
|
||||||
|
<el-radio :label="0">默认</el-radio>
|
||||||
|
<el-radio :label="1">amis</el-radio>
|
||||||
|
</el-radio-group>
|
||||||
|
</el-form-item>
|
||||||
<el-form-item v-if="state.type == 1" label="组件名称" prop="component">
|
<el-form-item v-if="state.type == 1" label="组件名称" prop="component">
|
||||||
<el-input v-model="state.menuForm.component" placeholder="请输入组件名称" style="width:50%"></el-input>
|
<el-input v-model="state.menuForm.component" placeholder="请输入组件名称" style="width:50%"></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue