|
|
@ -2,7 +2,7 @@ |
|
|
|
<div class="preview-content right-preview"> |
|
|
|
<el-form ref="addOrUpdateForm" :model="addOrUpdateForm" :rules="rules" :validate-on-rule-change="false" label-width="120px"> |
|
|
|
<el-row :gutter="4" style="padding:0 20px"> |
|
|
|
<draggable v-bind="{draggable:'.drag-item',animation:500}" :disabled="!isDisabled" @update="datadragEnd"> |
|
|
|
<draggable v-bind="{draggable:'.drag-item',animation:500}" :disabled="!isDraggable" @update="datadragEnd"> |
|
|
|
<el-col v-for="(item,index) in formPreviewData" v-show="item.fieldName !== 'barcode'" :key="index" :class="['drag-item',item.fieldName === 'barcode'? 'barcode-input':'']" :span="item.isLine || item.fieldName === 'barcode' ? 24 : 12"> |
|
|
|
<el-form-item :label="item.fieldCnName" :prop="item.fieldName"> |
|
|
|
<!-- select :load-options="loadOptions"--> |
|
|
@ -21,33 +21,11 @@ |
|
|
|
/> |
|
|
|
<!-- text / number / textarea / popover --> |
|
|
|
<!-- :validate-event="isDisabled" --> |
|
|
|
<el-input |
|
|
|
v-if="item.isInputClass !== 'select' && item.isInputClass !== 'date' && item.fieldName !== 'barcode' " |
|
|
|
v-model="addOrUpdateForm[item.fieldName]" |
|
|
|
:type="item.isInputClass === 'popover'? 'text' : item.isInputClass" |
|
|
|
:rows="item.isInputClass === 'textarea' ? 3 : ''" |
|
|
|
:class="{'input-popover':(item.isInputClass === 'popover')}" |
|
|
|
:style="{ width: item.editLength+'px'}" |
|
|
|
:disabled="isDisabled" |
|
|
|
:validate-event="!isDisabled" |
|
|
|
@keyup.enter.native="isRepeatHandle(item)" |
|
|
|
@blur="isRepeatHandle(item)" |
|
|
|
> |
|
|
|
<el-input v-if="item.isInputClass !== 'select' && item.isInputClass !== 'date' && item.fieldName !== 'barcode' " v-model="addOrUpdateForm[item.fieldName]" :type="item.isInputClass === 'popover'? 'text' : item.isInputClass" :rows="item.isInputClass === 'textarea' ? 3 : ''" :class="{'input-popover':(item.isInputClass === 'popover')}" :style="{ width: item.editLength+'px'}" :disabled="isDisabled" :validate-event="!isDisabled" @keyup.enter.native="isRepeatHandle(item)" @blur="isRepeatHandle(item)"> |
|
|
|
<i v-if="item.isInputClass === 'popover'" slot="suffix" class="el-input__icon iconfont icon-weibiaoti-2" @click="handleCurrentFieldName(item)" /> |
|
|
|
</el-input> |
|
|
|
<!-- date --> |
|
|
|
<el-date-picker |
|
|
|
v-if="item.isInputClass === 'date'" |
|
|
|
v-model="addOrUpdateForm[item.fieldName]" |
|
|
|
type="date" |
|
|
|
align="right" |
|
|
|
format="yyyy-MM-dd" |
|
|
|
placeholder="" |
|
|
|
:clearable="false" |
|
|
|
:style="{ width: item.editLength+'px'}" |
|
|
|
:disabled="isDisabled" |
|
|
|
:validate-event="!isDisabled" |
|
|
|
/> |
|
|
|
<el-date-picker v-if="item.isInputClass === 'date'" v-model="addOrUpdateForm[item.fieldName]" type="date" align="right" format="yyyy-MM-dd" placeholder="" :clearable="false" :style="{ width: item.editLength+'px'}" :disabled="isDisabled" :validate-event="!isDisabled" /> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
</draggable> |
|
|
@ -55,15 +33,7 @@ |
|
|
|
<el-row v-if="!isHasCode" style="border-top: 1px solid #339cff; padding: 20px 20px 0 20px;"> |
|
|
|
<el-col v-for="(item,index) in formPreviewData.slice(formPreviewData.length-1,formPreviewData.length)" :key="'barcode'+index"> |
|
|
|
<el-form-item :label="item.fieldCnName" :prop="item.fieldName"> |
|
|
|
<el-input |
|
|
|
v-model="addOrUpdateForm[item.fieldName]" |
|
|
|
type="text" |
|
|
|
style="width: 510px" |
|
|
|
:disabled="isDisabled" |
|
|
|
:validate-event="!isDisabled" |
|
|
|
@keyup.enter.native="isRepeatHandle(item)" |
|
|
|
@blur="isRepeatHandle(item)" |
|
|
|
/> |
|
|
|
<el-input v-model="addOrUpdateForm[item.fieldName]" type="text" style="width: 510px" :disabled="isDisabled" :validate-event="!isDisabled" @keyup.enter.native="isRepeatHandle(item)" @blur="isRepeatHandle(item)" /> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
</el-row> |
|
|
@ -125,6 +95,10 @@ export default { |
|
|
|
isHasCode: { |
|
|
|
type: Boolean, |
|
|
|
required: true |
|
|
|
}, |
|
|
|
isDraggable: { |
|
|
|
type: Boolean, |
|
|
|
default: false |
|
|
|
} |
|
|
|
}, |
|
|
|
data() { |
|
|
@ -272,10 +246,30 @@ export default { |
|
|
|
}) |
|
|
|
}, |
|
|
|
// 预览界面排序 |
|
|
|
datadragEnd(evt) { |
|
|
|
evt.preventDefault() |
|
|
|
console.log('拖动前的索引 :' + evt.oldIndex) |
|
|
|
console.log('拖动后的索引 :' + evt.newIndex) |
|
|
|
// datadragEnd(evt) { |
|
|
|
// evt.preventDefault() |
|
|
|
// console.log('拖动前的索引 :' + evt.oldIndex) |
|
|
|
// console.log('拖动后的索引 :' + evt.newIndex) |
|
|
|
// console.log(this.formPreviewData) |
|
|
|
// }, |
|
|
|
datadragEnd(event) { |
|
|
|
// 调换顺序 |
|
|
|
const oldIndex = event.oldIndex // 移动初始位置 |
|
|
|
const newIndex = event.newIndex // 运动终止位置 |
|
|
|
const diff = Math.abs(newIndex - oldIndex) // 插值绝对值 |
|
|
|
const index = this.formPreviewData[oldIndex] |
|
|
|
if (oldIndex > newIndex) { |
|
|
|
for (let i = 0; i < diff; i++) { |
|
|
|
this.formPreviewData[oldIndex - i] = this.formPreviewData[oldIndex - i - 1] |
|
|
|
} |
|
|
|
this.formPreviewData[newIndex] = index |
|
|
|
} else { |
|
|
|
for (let i = 0; i < diff; i++) { |
|
|
|
this.formPreviewData[oldIndex + i] = this.formPreviewData[oldIndex + i + 1] |
|
|
|
} |
|
|
|
this.formPreviewData[newIndex] = index |
|
|
|
} |
|
|
|
console.log(this.formPreviewData) |
|
|
|
}, |
|
|
|
submitForm(formName, categoryId) { |
|
|
|
// 时间格式化 |
|
|
@ -341,11 +335,11 @@ export default { |
|
|
|
border: 1px solid #3a99fd; |
|
|
|
margin: 0 auto; |
|
|
|
|
|
|
|
.el-row{ |
|
|
|
.el-row { |
|
|
|
margin-left: 0 !important; |
|
|
|
margin-right: 0 !important; |
|
|
|
} |
|
|
|
.el-col{ |
|
|
|
.el-col { |
|
|
|
padding-left: 0 !important; |
|
|
|
padding-right: 0 !important; |
|
|
|
} |
|
|
|