|
@@ -2,104 +2,110 @@
|
|
|
<section class="yvan-simple-text-props">
|
|
|
<el-form ref="form" label-position="top">
|
|
|
<el-form-item label="宽度">
|
|
|
- <el-input-number controls-position="right"/>
|
|
|
+ <el-input-number v-model="activeComponent.style.width" :min="0" controls-position="right"/>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="高度">
|
|
|
- <el-input-number controls-position="right"/>
|
|
|
+ <el-input-number v-model="activeComponent.style.height" :min="0" controls-position="right"/>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="字体">
|
|
|
- <el-select placeholder="请选择字体">
|
|
|
+ <el-select v-model="activeComponent.style.fontFamily" placeholder="请选择字体" filterable>
|
|
|
<el-option v-for="font in fontList" :label="font.name" :value="font.code"/>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="字体颜色">
|
|
|
- <el-color-picker show-alpha/>
|
|
|
+ <el-color-picker v-model="activeComponent.style.color"/>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="字体大小(pt)">
|
|
|
- <el-input-number controls-position="right"/>
|
|
|
+ <el-input-number v-model="activeComponent.style.fontSize" :min="0" controls-position="right"/>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="行高">
|
|
|
- <el-input-number controls-position="right"/>
|
|
|
+ <el-input-number v-model="activeComponent.style.lineHeight" :min="0" controls-position="right"/>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="排列">
|
|
|
- <el-radio-group size="small">
|
|
|
- <el-radio-button>
|
|
|
+ <el-form-item label="水平布局">
|
|
|
+ <el-radio-group v-model="activeComponent.style.justifyContent" size="small">
|
|
|
+ <el-radio-button label="flex-start">
|
|
|
<component is="align-left-outlined"/>
|
|
|
</el-radio-button>
|
|
|
- <el-radio-button>
|
|
|
+ <el-radio-button label="center">
|
|
|
<component is="align-center-outlined"/>
|
|
|
</el-radio-button>
|
|
|
- <el-radio-button>
|
|
|
+ <el-radio-button label="flex-end">
|
|
|
<component is="align-right-outlined"/>
|
|
|
</el-radio-button>
|
|
|
- <el-radio-button>
|
|
|
+ </el-radio-group>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="垂直布局">
|
|
|
+ <el-radio-group v-model="activeComponent.style.alignItems" size="small">
|
|
|
+ <el-radio-button label="flex-start">
|
|
|
<component is="vertical-align-top-outlined"/>
|
|
|
</el-radio-button>
|
|
|
- <el-radio-button>
|
|
|
+ <el-radio-button label="center">
|
|
|
<component is="vertical-align-middle-outlined"/>
|
|
|
</el-radio-button>
|
|
|
- <el-radio-button>
|
|
|
+ <el-radio-button label="flex-end">
|
|
|
<component is="vertical-align-bottom-outlined"/>
|
|
|
</el-radio-button>
|
|
|
</el-radio-group>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="文字样式">
|
|
|
- <el-radio-group size="small">
|
|
|
- <el-radio-button>
|
|
|
+ <el-checkbox-group v-model="activeComponent.style.textStyle" size="small">
|
|
|
+ <el-checkbox-button label="bold">
|
|
|
<i class="fa fa-bold"/>
|
|
|
- </el-radio-button>
|
|
|
- <el-radio-button>
|
|
|
+ </el-checkbox-button>
|
|
|
+ <el-checkbox-button label="italic">
|
|
|
<i class="fa fa-italic"/>
|
|
|
- </el-radio-button>
|
|
|
- <el-radio-button>
|
|
|
+ </el-checkbox-button>
|
|
|
+ <el-checkbox-button label="underline">
|
|
|
<i class="fa fa-underline"/>
|
|
|
- </el-radio-button>
|
|
|
- <el-radio-button>
|
|
|
+ </el-checkbox-button>
|
|
|
+ <el-checkbox-button label="strikethrough">
|
|
|
<i class="fa fa-strikethrough"/>
|
|
|
- </el-radio-button>
|
|
|
- </el-radio-group>
|
|
|
+ </el-checkbox-button>
|
|
|
+ </el-checkbox-group>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="背景颜色">
|
|
|
- <el-color-picker show-alpha/>
|
|
|
+ <el-color-picker v-model="activeComponent.style.background"/>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="边框样式">
|
|
|
- <el-checkbox-group size="small">
|
|
|
- <el-checkbox-button label="全">
|
|
|
- <component is="border-outer-outlined"/>
|
|
|
- </el-checkbox-button>
|
|
|
- <el-checkbox-button label="上">
|
|
|
+ <el-checkbox-group v-model="activeComponent.style.borderPosition" size="small">
|
|
|
+ <el-checkbox-button label="top">
|
|
|
<component is="border-top-outlined"/>
|
|
|
</el-checkbox-button>
|
|
|
- <el-checkbox-button label="右">
|
|
|
+ <el-checkbox-button label="right">
|
|
|
<component is="border-right-outlined"/>
|
|
|
</el-checkbox-button>
|
|
|
- <el-checkbox-button label="下">
|
|
|
+ <el-checkbox-button label="bottom">
|
|
|
<component is="border-bottom-outlined"/>
|
|
|
</el-checkbox-button>
|
|
|
- <el-checkbox-button label="左">
|
|
|
+ <el-checkbox-button label="left">
|
|
|
<component is="border-left-outlined"/>
|
|
|
</el-checkbox-button>
|
|
|
</el-checkbox-group>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="边框类型">
|
|
|
- <el-select placeholder="请选择行高">
|
|
|
+ <el-select v-model="activeComponent.style.borderType" placeholder="请选择边框类型" filterable>
|
|
|
<el-option v-for="borderStyle in borderStyleList" :label="borderStyle.label" :value="borderStyle.code"/>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="边框颜色">
|
|
|
- <el-color-picker show-alpha/>
|
|
|
+ <el-color-picker v-model="activeComponent.style.borderColor"/>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="边框宽度">
|
|
|
- <el-input-number controls-position="right"/>
|
|
|
+ <el-input-number v-model="activeComponent.style.borderWidth" :min="0" controls-position="right"/>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="边框圆角">
|
|
|
+ <el-input-number v-model="activeComponent.style.borderRadius" :min="0" controls-position="right"/>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="旋转角度(°)">
|
|
|
- <el-input-number controls-position="right"/>
|
|
|
+ <el-input-number v-model="activeComponent.style.rotate" controls-position="right"/>
|
|
|
</el-form-item>
|
|
|
</el-form>
|
|
|
</section>
|
|
|
</template>
|
|
|
|
|
|
<script lang="ts">
|
|
|
+import {mapState} from "pinia";
|
|
|
+import {globalStore} from "@/store";
|
|
|
import {fontList, borderStyleList} from "@/components/config/globalConfig";
|
|
|
|
|
|
export default {
|
|
@@ -109,7 +115,15 @@ export default {
|
|
|
fontList,
|
|
|
borderStyleList
|
|
|
}
|
|
|
- }
|
|
|
+ },
|
|
|
+ computed: {
|
|
|
+ ...mapState(globalStore, {
|
|
|
+ activeComponent: (state) => {
|
|
|
+ console.log("activeComponent => ", state.curComponent)
|
|
|
+ return state.curComponent
|
|
|
+ }
|
|
|
+ }),
|
|
|
+ },
|
|
|
}
|
|
|
|
|
|
</script>
|