代码调整

This commit is contained in:
joylink_cuiweidong 2021-04-08 11:15:39 +08:00
parent dcefdfab33
commit c9b5c908a0
4 changed files with 425 additions and 335 deletions

View File

@ -231,7 +231,31 @@ export const elementConst = {
} }
], ],
shape: [ shape: [
{
prop: 'points',
label: '坐标集合',
type: types.Points,
precision: 0, step:1,
rules:[
{ required: true, message:'请输入坐标集合', trigger: 'blur' }
],
value: [[0, 0], [100, 100], [100, 200]],
description: '每个元素是一个横纵坐标的数组'
},
{
prop: 'smooth',
label: '圆滑程度',
type: types.Number,
min: 0,
max: 1,
step: 0.05,
precision: 2,
rules:[
{ required: true, message:'请输入坐标集合', trigger: 'blur' }
],
value: 10,
description: '取值范围为 0 到 1 之间的数字0 表示不圆滑'
}
] ]
} }
}, },
@ -255,7 +279,31 @@ export const elementConst = {
...form2ShapeStyle ...form2ShapeStyle
], ],
shape: [ shape: [
{
prop: 'points',
label: '坐标集合',
type: types.Points,
precision: 0, step:1,
rules:[
{ required: true, message:'请输入坐标集合', trigger: 'blur' }
],
value: [[0, 0], [100, 100], [100, 200]],
description: '每个元素是一个横纵坐标的数组'
},
{
prop: 'smooth',
label: '圆滑程度',
type: types.Number,
min: 0,
max: 1,
step: 0.05,
precision: 2,
rules:[
{ required: true, message:'请输入坐标集合', trigger: 'blur' }
],
value: 10,
description: '取值范围为 0 到 1 之间的数字0 表示不圆滑'
}
] ]
} }
}, },
@ -448,7 +496,7 @@ export const elementConst = {
precision: 0, precision: 0,
step:1, step:1,
min: 0, min: 0,
max: Math.PI*2, max: Math.PI * 2,
rules:[ rules:[
{ required: true, message:'请输入起始弧度', trigger: 'blur' } { required: true, message:'请输入起始弧度', trigger: 'blur' }
], ],
@ -462,7 +510,7 @@ export const elementConst = {
precision: 0, precision: 0,
step:1, step:1,
min: 0, min: 0,
max: Math.PI*2, max: Math.PI * 2,
rules:[ rules:[
{ required: true, message:'请输入终止弧度', trigger: 'blur' } { required: true, message:'请输入终止弧度', trigger: 'blur' }
], ],
@ -555,7 +603,7 @@ export const elementConst = {
precision: 0, precision: 0,
step:1, step:1,
min: 0, min: 0,
max: Math.PI*2, max: Math.PI * 2,
rules:[ rules:[
{ required: true, message:'请输入起始弧度', trigger: 'blur' } { required: true, message:'请输入起始弧度', trigger: 'blur' }
], ],
@ -569,7 +617,7 @@ export const elementConst = {
precision: 0, precision: 0,
step:1, step:1,
min: 0, min: 0,
max: Math.PI*2, max: Math.PI * 2,
rules:[ rules:[
{ required: true, message:'请输入终止弧度', trigger: 'blur' } { required: true, message:'请输入终止弧度', trigger: 'blur' }
], ],

View File

@ -7,4 +7,4 @@ export default {
Point: 'Point', Point: 'Point',
Points: 'Points', Points: 'Points',
NumberArray: 'NumberArray' NumberArray: 'NumberArray'
} };

View File

@ -1,5 +1,5 @@
<template> <template>
<el-form ref="form" :model="formModel" class="composeForm" label-width="180px"> <el-form ref="form" :model="formModel" class="composeForm" label-width="110px">
<div v-for="(styleGroup,index) in form.formGroup" :key="index" class="styleGroup"> <div v-for="(styleGroup,index) in form.formGroup" :key="index" class="styleGroup">
<div class="styleGroupName"> <div class="styleGroupName">
{{ styleGroup.name }} {{ styleGroup.name }}
@ -45,6 +45,7 @@
v-for="count in item.length" v-for="count in item.length"
:key="count" :key="count"
v-model="formModel[styleGroup.code][item.prop][count-1]" v-model="formModel[styleGroup.code][item.prop][count-1]"
style="margin-left:5px"
size="small" size="small"
:min="isNaN(item.min) ? -Infinity : item.min" :min="isNaN(item.min) ? -Infinity : item.min"
:max="isNaN(item.max)? Infinity : item.max" :max="isNaN(item.max)? Infinity : item.max"
@ -52,12 +53,31 @@
:precision="item.precision" :precision="item.precision"
/> />
</template> </template>
<!-- <template v-else-if="checkFieldType(item, 'Color')"> <template v-else-if="checkFieldType(item, 'Points')">
<el-color-picker <div class="point-section">
v-model="formModel[styleGroup.code][item.prop]" <template v-for="(point, j) in formModel[styleGroup.code][item.prop]">
size="small" <div :key="j" style="overflow: hidden;">
<el-input-number v-model="point[0]" size="mini" @blur="changeNumber(0,j,formModel[styleGroup.code],item.prop)" />
<span class="pointSplice">, </span>
<el-input-number v-model="point[1]" size="mini" @blur="changeNumber(1,j,formModel[styleGroup.code],item.prop)" />
<el-button
icon="el-icon-plus"
circle
class="point-button"
@click="addPoint(j,formModel[styleGroup.code],item.prop)"
/> />
</template> --> <el-button
icon="el-icon-minus"
:disabled="j <3"
circle
class="point-button"
style="margin-left: 4px;"
@click="delPoint(j,formModel[styleGroup.code],item.prop)"
/>
</div>
</template>
</div>
</template>
</el-form-item> </el-form-item>
</template> </template>
</div> </div>
@ -92,6 +112,20 @@ export default {
methods: { methods: {
checkFieldType(field, type) { checkFieldType(field, type) {
return field.type === type; return field.type === type;
},
changeNumber(type, index, form, prop) {
if (form[prop][index][type] == undefined || parseFloat(form[prop][index][type])) {
const newForm = Object.assign([], form[prop]);
newForm[index][type] = parseFloat(form[prop][index][type]) || 0;
this.$set(form, prop, newForm);
}
},
addPoint(index, form, prop) {
const data = [0, 0];
form[prop].splice(index + 1, 0, data);
},
delPoint(index, form, prop) {
form[prop].splice(index, 1);
} }
} }
}; };
@ -101,5 +135,13 @@ export default {
.styleGroup{border: 1px #ccc solid;padding:25px 20px 20px 20px;position: relative;margin-bottom: 30px;} .styleGroup{border: 1px #ccc solid;padding:25px 20px 20px 20px;position: relative;margin-bottom: 30px;}
.formName .el-form-item__label {font-size:14px;} .formName .el-form-item__label {font-size:14px;}
.formName.el-form-item {margin-bottom:25px} .formName.el-form-item {margin-bottom:25px}
.point-section {float:left;display: inline-block;}
.pointSplice{display: inline-block;margin-left: 4px;margin-right:4px;line-height: 28px;font-size:14px}
.styleGroupName{font-size: 14px;position: absolute;max-width: 100px;height: 20px;background: #fff;left: 10px;top: -9px;text-align: center;padding: 0px 10px;} .styleGroupName{font-size: 14px;position: absolute;max-width: 100px;height: 20px;background: #fff;left: 10px;top: -9px;text-align: center;padding: 0px 10px;}
.point-button {width:28px;height:28px;display:inline-block;margin-left:5px;text-align:center;padding:0px;}
// align-items: center;justify-content: center;
</style>
<style lang="scss">
.composeForm .el-form-item__label{line-height:20px;}
.composeForm .el-form-item__content{font-size: 0px;}
</style> </style>

View File

@ -116,43 +116,43 @@ export default {
handleTabClick() { handleTabClick() {
}, },
onSubmit(){ onSubmit() {
let that=this; const that = this;
that.$refs['dataform'+that.enabledTab][0].$refs['form'].validate((valid) => { that.$refs['dataform' + that.enabledTab][0].$refs['form'].validate((valid) => {
if (valid) { if (valid) {
let formModel=that.$refs['dataform'+that.enabledTab][0].formModel; const formModel = that.$refs['dataform' + that.enabledTab][0].formModel;
let newModel=Object.assign({},formModel.base); const newModel = Object.assign({}, formModel.base);
newModel.type = that.enabledTab; newModel.type = that.enabledTab;
newModel.code = utils.getUID() newModel.code = utils.getUID();
newModel.position = [0, 0]; newModel.position = [0, 0];
newModel.scale = [1, 1]; newModel.scale = [1, 1];
newModel.style=Object.assign({},formModel.style); newModel.style = Object.assign({}, formModel.style);
newModel.shape=Object.assign({},formModel.shape); newModel.shape = Object.assign({}, formModel.shape);
this.$refs.iscsCanvas.doAction([{model: newModel, action: {shapeType: shapeType.Element, order: orders.ADD}}]); this.$refs.iscsCanvas.doAction([{model: newModel, action: {shapeType: shapeType.Element, order: orders.ADD}}]);
} }
}); });
}, },
onModify() { onModify() {
let that=this; const that = this;
that.$refs['dataform'+that.enabledTab][0].$refs['form'].validate((valid) => { that.$refs['dataform' + that.enabledTab][0].$refs['form'].validate((valid) => {
if (valid) { if (valid) {
let model = that.$refs['dataform'+that.enabledTab][0].formModel; const model = that.$refs['dataform' + that.enabledTab][0].formModel;
this.$refs.iscsCanvas.doAction([{model, action: {shapeType: shapeType.Element, order: orders.UPDATE}}]); this.$refs.iscsCanvas.doAction([{model, action: {shapeType: shapeType.Element, order: orders.UPDATE}}]);
} }
}); });
}, },
onDelete(){ onDelete() {
let that=this; const that = this;
that.$refs['dataform'+that.enabledTab][0].$refs['form'].validate((valid) => { that.$refs['dataform' + that.enabledTab][0].$refs['form'].validate((valid) => {
if (valid) { if (valid) {
let model = that.$refs['dataform'+that.enabledTab][0].formModel; const model = that.$refs['dataform' + that.enabledTab][0].formModel;
this.$refs.iscsCanvas.doAction([{model, action: {shapeType: shapeType.Element, order: orders.DELETE}}]); this.$refs.iscsCanvas.doAction([{model, action: {shapeType: shapeType.Element, order: orders.DELETE}}]);
} }
}); });
}, },
initPage(){ initPage() {
}, }
} }
}; };
</script> </script>
@ -182,11 +182,11 @@ export default {
} }
.right-card{ .right-card{
width: 470px; width: 550px;
height: 100%; height: 100%;
position: absolute; position: absolute;
right: 0; right: 0;
transform: translateX(470px); transform: translateX(550px);
transition: all 0.5s; transition: all 0.5s;
background: #fff; background: #fff;
z-index: 9; z-index: 9;