|
|
@@ -19,32 +19,36 @@ |
|
|
|
:placeholder="getPlaceholder(n, c)" |
|
|
|
v-model="dataForm[configs.fields[(n - 1) * COLUMN_PER_ROW + (c - 1)].name]" |
|
|
|
clearable |
|
|
|
:disabled="isDetail" |
|
|
|
/> |
|
|
|
<el-radio v-if="getType(n, c) === 'radio'" v-model="dataForm[configs.fields[(n - 1) * COLUMN_PER_ROW + (c - 1)].name]"></el-radio> |
|
|
|
<el-checkbox v-if="getType(n, c) === 'check'" v-model="dataForm[configs.fields[(n - 1) * COLUMN_PER_ROW + (c - 1)].name]"></el-checkbox> |
|
|
|
<el-radio v-if="getType(n, c) === 'radio'" v-model="dataForm[configs.fields[(n - 1) * COLUMN_PER_ROW + (c - 1)].name]" :disabled="isDetail" /> |
|
|
|
<el-checkbox v-if="getType(n, c) === 'check'" v-model="dataForm[configs.fields[(n - 1) * COLUMN_PER_ROW + (c - 1)].name]" :disabled="isDetail" /> |
|
|
|
<el-select |
|
|
|
v-if="getType(n, c) === 'select'" |
|
|
|
:placeholder="getPlaceholder(n, c)" |
|
|
|
v-model="dataForm[configs.fields[(n - 1) * COLUMN_PER_ROW + (c - 1)].name]" |
|
|
|
clearable |
|
|
|
:disabled="isDetail" |
|
|
|
@change="emitSelectChange(configs.fields[(n - 1) * COLUMN_PER_ROW + (c - 1)].name, $event)" |
|
|
|
> |
|
|
|
<el-option v-for="opt in configs.fields[(n - 1) * COLUMN_PER_ROW + (c - 1)].options" :key="opt.label" :label="opt.label" :value="opt.value" /> |
|
|
|
</el-select> |
|
|
|
<el-switch v-if="getType(n, c) === 'switch'" v-model="dataForm[configs.fields[(n - 1) * COLUMN_PER_ROW + (c - 1)].name]"></el-switch> |
|
|
|
<el-switch v-if="getType(n, c) === 'switch'" v-model="dataForm[configs.fields[(n - 1) * COLUMN_PER_ROW + (c - 1)].name]" :disabled="isDetail" /> |
|
|
|
<el-cascader |
|
|
|
v-if="getType(n, c) === 'cascader'" |
|
|
|
v-model="dataForm[configs.fields[(n - 1) * COLUMN_PER_ROW + (c - 1)].name]" |
|
|
|
:options="configs.fields[(n - 1) * COLUMN_PER_ROW + (c - 1)].options" |
|
|
|
:props="configs.fields[(n - 1) * COLUMN_PER_ROW + (c - 1)].props" |
|
|
|
></el-cascader> |
|
|
|
<el-time-select v-if="getType(n, c) === 'time'" v-model="dataForm[configs.fields[(n - 1) * COLUMN_PER_ROW + (c - 1)].name]"></el-time-select> |
|
|
|
:disabled="isDetail" |
|
|
|
/> |
|
|
|
<el-time-select v-if="getType(n, c) === 'time'" v-model="dataForm[configs.fields[(n - 1) * COLUMN_PER_ROW + (c - 1)].name]" :disabled="isDetail" /> |
|
|
|
<el-date-picker |
|
|
|
v-if="getType(n, c) === 'date'" |
|
|
|
v-bind="configs.fields[(n - 1) * COLUMN_PER_ROW + (c - 1)].props" |
|
|
|
:placeholder="getPlaceholder(n, c)" |
|
|
|
v-model="dataForm[configs.fields[(n - 1) * COLUMN_PER_ROW + (c - 1)].name]" |
|
|
|
></el-date-picker> |
|
|
|
:disabled="isDetail" |
|
|
|
/> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
</el-row> |
|
|
@@ -52,7 +56,15 @@ |
|
|
|
<!-- extra components , like Markdown or RichEdit --> |
|
|
|
<template v-if="configs.extraComponents && configs.extraComponents.length > 0"> |
|
|
|
<el-form-item v-for="(ec, index) in configs.extraComponents" :key="ec.name + index" :label="ec.label" class="extra-components"> |
|
|
|
<component style="margin-top: 40px;" v-if="ec.hasModel" :is="ec.component" v-bind="ec.props" v-model="dataForm[ec.name]" @ready="handleEditorReady" /> |
|
|
|
<component |
|
|
|
style="margin-top: 40px;" |
|
|
|
v-if="ec.hasModel" |
|
|
|
:is="ec.component" |
|
|
|
v-bind="ec.props" |
|
|
|
v-model="dataForm[ec.name]" |
|
|
|
@ready="handleEditorReady" |
|
|
|
:read-only="isDetail" |
|
|
|
/> |
|
|
|
<!-- <component v-if="ec.hasModel" :is="ec.component" v-bind="ec.props" v-model="dataForm[ec.name]" /> --> |
|
|
|
<component |
|
|
|
v-else |
|
|
@@ -60,13 +72,14 @@ |
|
|
|
v-bind="ec.props" |
|
|
|
@uploader-update-filelist="handleUploadListUpdate($event, ec.props.extraParams.typeCode)" |
|
|
|
:uploader-inject-file-list="/*用于设备分流的*/ fileList[ec.props.extraParams.typeCode]" |
|
|
|
:read-only="isDetail" |
|
|
|
/> |
|
|
|
</el-form-item> |
|
|
|
</template> |
|
|
|
</el-form> |
|
|
|
|
|
|
|
<template v-if="dataForm.id && configs.subtable"> |
|
|
|
<attr-form :related-id="dataForm.id" v-bind="configs.subtable" /> |
|
|
|
<attr-form :related-id="dataForm.id" v-bind="configs.subtable" :is-detail="isDetail" /> |
|
|
|
</template> |
|
|
|
</div> |
|
|
|
<span slot="footer" class="dialog-footer"> |
|
|
@@ -74,8 +87,9 @@ |
|
|
|
<!-- {{ operate.name | btnNameFilter }} --> |
|
|
|
<el-button |
|
|
|
v-if=" |
|
|
|
operate.showAlways || |
|
|
|
(((dataForm.id && operate.showOnEdit) || (!dataForm.id && !operate.showOnEdit)) && (operate.permission ? $hasPermission(operate.permission) : true)) |
|
|
|
!isDetail && |
|
|
|
(operate.showAlways || |
|
|
|
(((dataForm.id && operate.showOnEdit) || (!dataForm.id && !operate.showOnEdit)) && (operate.permission ? $hasPermission(operate.permission) : true))) |
|
|
|
" |
|
|
|
:key="`operate-${index}`" |
|
|
|
:type="btnType[operate.name]" |
|
|
@@ -83,6 +97,7 @@ |
|
|
|
>{{ btnName[operate.name] }}</el-button |
|
|
|
> |
|
|
|
</template> |
|
|
|
<el-button v-if="isDetail" @click="handleClick({ name: 'cancel' })">返回</el-button> |
|
|
|
</span> |
|
|
|
</el-dialog> |
|
|
|
</template> |
|
|
@@ -347,7 +362,8 @@ export default { |
|
|
|
} |
|
|
|
}, |
|
|
|
|
|
|
|
init(id) { |
|
|
|
init(id, isdetail = false) { |
|
|
|
this.isDetail = isdetail |
|
|
|
this.visible = true |
|
|
|
this.$nextTick(() => { |
|
|
|
this.$refs['dataForm'].resetFields() |
|
|
|