985 lines
31 KiB
Plaintext
985 lines
31 KiB
Plaintext
<template>
|
|
@switch(Model.PopupType)
|
|
{
|
|
case "fullScreen":
|
|
@if(Model.WebType != 1)
|
|
{
|
|
@:<transition name="el-zoom-in-center">
|
|
}else if(Model.WebType == 1){
|
|
@:<transition name="JNPF-common-layout">
|
|
}
|
|
@:<div class="JNPF-preview-main">
|
|
@:<div class="JNPF-common-page-header">
|
|
@if(Model.WebType != 1)
|
|
{
|
|
@:<el-page-header @@back="goBack" content="详情"/>
|
|
}
|
|
@:<div class="options">
|
|
@if(Model.HasPrintBtn)
|
|
{
|
|
@:<el-button type="primary" @@click="printBrowseVisible=true">{{ '@(@Model.PrintButtonText)' }}</el-button>
|
|
}
|
|
@:<el-button @@click="goBack">@(@Model.CancelButtonText)</el-button>
|
|
@:</div>
|
|
@:</div>
|
|
@:<div :style="{margin: '0 auto',width:'@(@Model.FullScreenWidth)'}">
|
|
@:<el-row :gutter="15" class="@(@Model.FormStyle) main">
|
|
@{ GenerateFormControls(); }
|
|
@:</el-row>
|
|
@:</div>
|
|
@if(Model.HasPrintBtn)
|
|
{
|
|
@:<print-browse :visible.sync="printBrowseVisible" :id="printId" :formId="dataForm.id" />
|
|
}
|
|
@if(Model.IsRelationForm)
|
|
{
|
|
@:<Detail v-if="detailVisible" ref="Detail" @@close="detailVisible = false" />
|
|
}
|
|
@:</div>
|
|
@:</transition>
|
|
break;
|
|
case "general":
|
|
@:<el-dialog title="详情" :close-on-click-modal="false" :visible.sync="visible" class="JNPF-dialog JNPF-dialog_center" lock-scroll width="@(@Model.GeneralWidth)">
|
|
@:<el-row :gutter="15" class="@(@Model.FormStyle)" >
|
|
@{ GenerateFormControls(); }
|
|
@:</el-row>
|
|
@:<span slot="footer" class="dialog-footer">
|
|
@:<el-button @@click="visible=false">@(@Model.CancelButtonText)</el-button>
|
|
@if(Model.HasPrintBtn)
|
|
{
|
|
@:<el-button type="primary" @@click="printBrowseVisible=true">@(@Model.PrintButtonText)</el-button>
|
|
}
|
|
@:</span>
|
|
@if(Model.HasPrintBtn)
|
|
{
|
|
@:<print-browse :visible.sync="printBrowseVisible" :id="printId" :formId="dataForm.id" />
|
|
}
|
|
@if(Model.IsRelationForm)
|
|
{
|
|
@:<Detail v-if="detailVisible" ref="Detail" @@close="detailVisible = false" />
|
|
}
|
|
@:</el-dialog>
|
|
break;
|
|
case "drawer":
|
|
@:<el-drawer title="详情" :visible.sync="visible" :wrapperClosable="false" size="@(@Model.DrawerWidth)" append-to-body class="JNPF-common-drawer">
|
|
@:<div class="JNPF-flex-main">
|
|
@:<div class="dynamicForm dynamicDetail">
|
|
@{ GenerateFormControls(); }
|
|
@:</div>
|
|
@:<div class="drawer-footer">
|
|
@if(Model.HasPrintBtn)
|
|
{
|
|
@:<el-button type="primary" @@click="printBrowseVisible=true">@(@Model.PrintButtonText)</el-button>
|
|
}
|
|
@if(Model.IsRelationForm)
|
|
{
|
|
@:<Detail v-if="detailVisible" ref="Detail" @@close="detailVisible = false" />
|
|
}
|
|
@:<el-button @@click="visible = false">@(@Model.CancelButtonText)</el-button>
|
|
@:</div>
|
|
@:</div>
|
|
@:</el-drawer>
|
|
break;
|
|
}
|
|
</template>
|
|
<script>
|
|
import request from '@@/utils/request'
|
|
@if(Model.HasPrintBtn)
|
|
{
|
|
@:import PrintBrowse from '@@/components/PrintBrowse'
|
|
}
|
|
@if(Model.IsRelationForm)
|
|
{
|
|
@:import { getConfigData } from '@@/api/onlineDev/visualDev'
|
|
@:import Detail from '@@/views/basic/dynamicModel/list/detail'
|
|
}
|
|
export default {
|
|
@if(Model.HasPrintBtn)
|
|
{
|
|
@:components: { PrintBrowse },
|
|
}
|
|
props: [],
|
|
components: { @(Model.IsRelationForm ? "Detail" : "") },
|
|
data() {
|
|
return {
|
|
@if(Model.HasPrintBtn)
|
|
{
|
|
@:printBrowseVisible: false,
|
|
@:printId: '@(@Model.PrintId)',
|
|
}
|
|
loading: false,
|
|
visible: false,
|
|
dataForm: {
|
|
id:'',
|
|
@foreach(var children in Model.FormList)
|
|
{
|
|
@switch(children.jnpfKey)
|
|
{
|
|
case "checkbox":
|
|
case "cascader":
|
|
case "uploadImg":
|
|
case "uploadFz":
|
|
case "address":
|
|
case "comSelect":
|
|
@if(children.DefaultValue == null || children.DefaultValue.ToString() == "")
|
|
{
|
|
@:@(@children.LowerName):[],
|
|
}else{
|
|
@:@(@children.LowerName):@(@children.DefaultValue),
|
|
}
|
|
break;
|
|
case "select":
|
|
case "userSelect":
|
|
case "treeSelect":
|
|
case "depSelect":
|
|
case "posSelect":
|
|
case "popupTableSelect":
|
|
case "roleSelect":
|
|
case "groupSelect":
|
|
@if(children.Multiple)
|
|
{
|
|
if(@children.DefaultValue == null || @children.DefaultValue.ToString() == "")
|
|
{
|
|
@:@(@children.LowerName):[],
|
|
}else{
|
|
@:@(@children.LowerName):@(@children.DefaultValue),
|
|
}
|
|
}else{
|
|
if(@children.DefaultValue == null || @children.DefaultValue.ToString() == "")
|
|
{
|
|
@:@(@children.LowerName):undefined,
|
|
}else{
|
|
@:@(@children.LowerName):"@(@children.DefaultValue)",
|
|
}
|
|
}
|
|
break;
|
|
case "numInput":
|
|
case "date":
|
|
case "rate":
|
|
case "slider":
|
|
if(@children.DefaultValue == null || @children.DefaultValue.ToString() == "")
|
|
{
|
|
@:@(@children.LowerName):undefined,
|
|
}else{
|
|
@:@(@children.LowerName):@(@children.DefaultValue),
|
|
}
|
|
break;
|
|
case "switch":
|
|
@:@(@children.LowerName):@(@children.DefaultValue ? "1" : "0"),
|
|
break;
|
|
case "table":
|
|
@:@(@children.OriginalName):[],
|
|
break;
|
|
default:
|
|
if(@children.DefaultValue == null || @children.DefaultValue.ToString() == "")
|
|
{
|
|
@:@(@children.LowerName):undefined,
|
|
}else{
|
|
@:@(@children.LowerName):"@(@children.DefaultValue)",
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
},
|
|
@foreach(var item in Model.OptionsList)
|
|
{
|
|
@if(item.jnpfKey == "collapse")
|
|
{
|
|
@:@(@item.Name):@(@item.Content),
|
|
}else if(item.jnpfKey == "tab")
|
|
{
|
|
@:@(@item.Name):"@(@item.Content)",
|
|
}
|
|
else{
|
|
@if(item.IsProps)
|
|
{
|
|
@:@(@item.LowerName)Props:@(item.Props),
|
|
}
|
|
@:@item.Content
|
|
}
|
|
}
|
|
@if(Model.IsRelationForm)
|
|
{
|
|
@:detailVisible: false
|
|
}
|
|
}
|
|
},
|
|
methods: {
|
|
goBack() {
|
|
this.$emit('refresh')
|
|
},
|
|
init(id) {
|
|
this.dataForm.id = id || 0;
|
|
this.visible = true;
|
|
this.$nextTick(() => {
|
|
this.$refs['@(@Model.FormRef)'].resetFields();
|
|
if (this.dataForm.id) {
|
|
request({
|
|
url: '/api/@(@Model.NameSpace)/@(@Model.ClassName)/Detail/' + this.dataForm.id,
|
|
method: 'get'
|
|
}).then(res =>{
|
|
this.dataForm = res.data;
|
|
@foreach(var item in Model.FormList)
|
|
{
|
|
@if(item.jnpfKey == "checkbox" || item.jnpfKey == "cascader" || item.jnpfKey == "uploadImg" || item.jnpfKey == "uploadFz" || item.jnpfKey == "address" || item.jnpfKey == "comSelect")
|
|
{
|
|
@:if(!this.dataForm.@(@item.LowerName))this.dataForm.@(@item.LowerName)=[];
|
|
}
|
|
}
|
|
})
|
|
}
|
|
})
|
|
},
|
|
@if(Model.IsRelationForm)
|
|
{
|
|
@:toDetail(modelId, id) {
|
|
@:if (!id) return
|
|
@:getConfigData(modelId).then(res => {
|
|
@:if (!res.data) return
|
|
@:if (!res.data.formData) return
|
|
@:let formData = JSON.parse(res.data.formData)
|
|
@:console.log(formData)
|
|
@:formData.popupType = 'fullScreen'
|
|
@:this.detailVisible = true
|
|
@:this.$nextTick(() => {
|
|
@:console.log(this.$refs)
|
|
@:this.$refs.Detail.init(formData, modelId, id)
|
|
@:})
|
|
@:})
|
|
@:},
|
|
}
|
|
@foreach(var item in Model.FormList)
|
|
{
|
|
@if(item.ShowSummary)
|
|
{
|
|
@:get@(@item.Name)(param) {
|
|
@:const summaryField = @(@item.SummaryField)
|
|
@:const { columns, data } = param;
|
|
@:const sums = [];
|
|
@:columns.forEach((column, index) => {
|
|
@:if (index === 0) {
|
|
@:sums[index] = '合计';
|
|
@:return;
|
|
@:}
|
|
@:if (!summaryField.includes(column.property)) {
|
|
@:sums[index] = '';
|
|
@:return;
|
|
@:}
|
|
@:const values = data.map(item => Number(item[column.property]));
|
|
@:if (!values.every(value => isNaN(value))) {
|
|
@:sums[index] = values.reduce((prev, curr) => {
|
|
@:const value = Number(curr);
|
|
@:if (!isNaN(value)) {
|
|
@:return prev + curr;
|
|
@:} else {
|
|
@:return prev;
|
|
@:}
|
|
@:}, 0);
|
|
@:} else {
|
|
@:sums[index] = '';
|
|
@:}
|
|
@:});
|
|
@:return sums
|
|
@:},
|
|
}
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
@{
|
|
void GenerateFormControls()
|
|
{
|
|
<el-form ref="@(@Model.FormRef)" :model="@(@Model.FormModel)" size="@(@Model.Size)" label-width="@(@Model.LabelWidth)px" label-position="@(@Model.LabelPosition)">
|
|
@foreach(var item in Model.FormAllContols)
|
|
{
|
|
@switch(item.jnpfKey)
|
|
{
|
|
@*栅格布局*@
|
|
case "row":
|
|
@:<el-col :span="@(@item.Span)">
|
|
@:<el-row :gutter="@(@item.Gutter)">
|
|
@{GenerateFormChildrenControls(item.Children,item.Gutter);}
|
|
@:</el-row>
|
|
@:</el-col>
|
|
break;
|
|
case "table":
|
|
@if(Model.UseFormPermission)
|
|
{
|
|
@:<el-col :span="@(@item.Span)" v-if="jnpf.hasFormP('@(@item.Name)')">
|
|
}else{
|
|
@:<el-col :span="@(@item.Span)">
|
|
}
|
|
@:<el-form-item label-width="0px">
|
|
@if(item.ShowTitle)
|
|
{
|
|
@:<div class="JNPF-common-title">
|
|
@:<h2>@(@item.Label)</h2>
|
|
@:</div>
|
|
}
|
|
@:<el-table :data="dataForm.@(@item.Name)" size='mini' @(@item.ShowSummary ? "show-summary :summary-method='get" + @item.ChildTableName + "'" : "")>
|
|
@:<el-table-column type="index" width="50" label="序号" align="center" />
|
|
@foreach (var childrens in item.Children)
|
|
{
|
|
@switch(childrens.jnpfKey)
|
|
{
|
|
case "uploadFz":
|
|
@:<el-table-column @(@childrens.ColumnWidth)label="@(@childrens.Label)" @(Model.UseFormPermission ? "v-if=\"jnpf.hasFormP('" + @item.Name + "-" + @childrens.LowerName + "')\"" : "")>
|
|
@:<template slot-scope="scope">
|
|
@:<@(@childrens.Tag) v-model="scope.row.@(@childrens.LowerName)" @(@childrens.FileSize)@(@childrens.SizeUnit)@(@childrens.Limit)@(@childrens.ButtonText)disabled detailed></@(@childrens.Tag)>
|
|
@:</template>
|
|
@:</el-table-column>
|
|
break;
|
|
case "uploadImg":
|
|
@:<el-table-column @(@childrens.ColumnWidth)label="@(@childrens.Label)" @(Model.UseFormPermission ? "v-if=\"jnpf.hasFormP('" + @item.Name + "-" + @childrens.LowerName + "')\"" : "")>
|
|
@:<template slot-scope="scope">
|
|
@:<@(@childrens.Tag) v-model="scope.row.@(@childrens.LowerName)" @(@childrens.FileSize)@(@childrens.SizeUnit)@(@childrens.Limit)disabled detailed></@(@childrens.Tag)>
|
|
@:</template>
|
|
@:</el-table-column>
|
|
break;
|
|
case "relationFormAttr":
|
|
case "popupAttr":
|
|
@:<el-table-column prop="@(@childrens.LowerName)" @(@childrens.ColumnWidth)label="@(@childrens.Label)" @(Model.UseFormPermission ? "v-if=\"jnpf.hasFormP('" + @item.Name + "-" + @childrens.LowerName + "')\"" : "")>
|
|
@:<template slot-scope="scope">
|
|
@:<p>{{scope.row.@(childrens.IsStorage == 2 ? childrens.LowerName : childrens.RelationField + "_" + @childrens.ShowField)}}</p>
|
|
@:</template>
|
|
@:</el-table-column>
|
|
break;
|
|
case "date":
|
|
@:<el-table-column prop="@(@childrens.LowerName)" @(@childrens.ColumnWidth)label="@(@childrens.Label)" @(Model.UseFormPermission ? "v-if=\"jnpf.hasFormP('" + @item.Name + "-" + @childrens.LowerName + "')\"" : "")>
|
|
@:<template slot-scope="scope">
|
|
@:<p>{{scope.row.@(@childrens.LowerName) | toDate}}</p>
|
|
@:</template>
|
|
@:</el-table-column>
|
|
break;
|
|
case "relationForm":
|
|
@:<el-table-column prop="@(@childrens.LowerName)" @(@childrens.ColumnWidth)label="@(@childrens.Label)" @(Model.UseFormPermission ? "v-if=\"jnpf.hasFormP('" + @item.Name + "-" + @childrens.LowerName + "')\"" : "")>
|
|
@:<template slot-scope="scope">
|
|
@:<el-link :underline="false" @@click.native="toDetail('@(@childrens.ModelId)',scope.row.@(@childrens.LowerName))" type="primary">
|
|
@:{{ scope.row.@(@childrens.LowerName) }}
|
|
@:</el-link>
|
|
@:</template>
|
|
@:</el-table-column>
|
|
break;
|
|
default:
|
|
@:<el-table-column prop="@(@childrens.LowerName)" @(@childrens.ColumnWidth)label="@(@childrens.Label)" @(Model.UseFormPermission ? "v-if=\"jnpf.hasFormP('" + @item.Name + "-" + @childrens.LowerName + "')\"" : "")>
|
|
@:<template slot-scope="scope">
|
|
@:<p>{{scope.row.@(@childrens.LowerName)}}</p>
|
|
@:</template>
|
|
@:</el-table-column>
|
|
break;
|
|
}
|
|
}
|
|
@:</el-table>
|
|
@:</el-form-item>
|
|
@:</el-col>
|
|
break;
|
|
case "card":
|
|
@:<el-col :span="@(@item.Span)">
|
|
@:<el-card class="mb-20" shadow="@(@item.Shadow)">
|
|
@{GenerateFormChildrenControls(item.Children,item.Gutter);}
|
|
@:</el-card>
|
|
@:</el-col>
|
|
break;
|
|
case "collapse":
|
|
@:<el-col :span="@(@item.Span)">
|
|
@:<el-collapse :accordion="@(@item.Accordion)" v-model="@(@item.Name)" class="mb-20">
|
|
@foreach(var collapse in item.Children)
|
|
{
|
|
@:<el-collapse-item title="@(@collapse.Title)" name="@(@collapse.Name)">
|
|
@{GenerateFormChildrenControls(collapse.Children,item.Gutter);}
|
|
@:</el-collapse-item>
|
|
}
|
|
@:</el-collapse>
|
|
@:</el-col>
|
|
break;
|
|
case "tab":
|
|
@:<el-col :span="@(@item.Span)">
|
|
@:<el-tabs type="@(@item.Type)" tab-position="@(@item.TabPosition)" v-model="@(@item.Name)" class="mb-10">
|
|
@foreach(var collapse in item.Children)
|
|
{
|
|
@:<el-tab-pane label="@(@collapse.Title)">
|
|
@{GenerateFormChildrenControls(collapse.Children,item.Gutter);}
|
|
@:</el-tab-pane>
|
|
}
|
|
@:</el-tabs>
|
|
@:</el-col>
|
|
break;
|
|
case "divider":
|
|
@:<el-col :span="@(@item.Span)">
|
|
@:<el-form-item label-width="@(@item.LabelWidth)px">
|
|
@:<el-divider content-position="@(@item.Contentposition)">@(@item.Default)</el-divider>
|
|
@:</el-form-item>
|
|
@:</el-col>
|
|
break;
|
|
case "groupTitle":
|
|
@:<el-col :span="@(@item.Span)">
|
|
@:<el-form-item label-width="@(@item.LabelWidth)px">
|
|
@:<groupTitle content-position="@(@item.Contentposition)" content="@(@item.Content)"></groupTitle>
|
|
@:</el-form-item>
|
|
@:</el-col>
|
|
break;
|
|
case "JNPFText":
|
|
@:<el-col :span="@(@item.Span)">
|
|
@:<el-form-item label-width="@(@item.LabelWidth)px">
|
|
@:<JNPF-Text value="@(@item.DefaultValue)" :textStyle='@(@item.TextStyle)' :style='@(@item.Style)'></JNPF-Text>
|
|
@:</el-form-item>
|
|
@:</el-col>
|
|
break;
|
|
case "button":
|
|
@:<el-col :span="@(@item.Span)">
|
|
@:<el-form-item>
|
|
@:<jnpf-button align="@(@item.Align)" buttonText="@(@item.ButtonText)" type="@(@item.Type)"></jnpf-button>
|
|
@:</el-form-item>
|
|
@:</el-col>
|
|
break;
|
|
case "link":
|
|
@:<el-col :span="@(@item.Span)">
|
|
@:<el-form-item label-width="0">
|
|
@:<jnpf-link content="@(@item.Content)" href="@(@item.Href)" target="@(@item.Target)" :textStyle='@(@item.TextStyle)'></jnpf-link>
|
|
@:</el-form-item>
|
|
@:</el-col>
|
|
break;
|
|
case "alert":
|
|
@:<el-col :span="@(@item.Span)">
|
|
@:<el-form-item label-width="0">
|
|
@:<el-alert title="@(@item.Title)" type="@(@item.Type)" :closable="false" :show-icon="@(@item.ShowIcon)"></el-alert>
|
|
@:</el-form-item>
|
|
@:</el-col>
|
|
break;
|
|
case "date":
|
|
@if(Model.UseFormPermission)
|
|
{
|
|
@:<el-col :span="@(@item.Span)" v-if="jnpf.hasFormP('@(@item.OriginalName)')">
|
|
}else{
|
|
@:<el-col :span="@(@item.Span)">
|
|
}
|
|
@:<el-form-item label="@(@item.Label)" label-width="@(@item.LabelWidth)px">
|
|
@:<p>{{dataForm.@(@item.LowerName)}}</p>
|
|
@:</el-form-item>
|
|
@:</el-col>
|
|
break;
|
|
case "createTime":
|
|
case "modifyTime":
|
|
@if(item.NoShow == "")
|
|
{
|
|
@if(Model.UseFormPermission)
|
|
{
|
|
@:<el-col :span="@(@item.Span)" v-if="jnpf.hasFormP('@(@item.OriginalName)')">
|
|
}else{
|
|
@:<el-col :span="@(@item.Span)">
|
|
}
|
|
}else{
|
|
@:<el-col :span="@(@item.Span)" @(@item.NoShow)>
|
|
}
|
|
@:<el-form-item label="@(@item.Label)" label-width="@(@item.LabelWidth)px">
|
|
@:<p>{{dataForm.@(@item.LowerName)}}</p>
|
|
@:</el-form-item>
|
|
@:</el-col>
|
|
break;
|
|
case "uploadFz":
|
|
@if(item.NoShow == "")
|
|
{
|
|
@if(Model.UseFormPermission)
|
|
{
|
|
@:<el-col :span="@(@item.Span)" v-if="jnpf.hasFormP('@(@item.OriginalName)')">
|
|
}else{
|
|
@:<el-col :span="@(@item.Span)">
|
|
}
|
|
}else{
|
|
@:<el-col :span="@(@item.Span)" @(@item.NoShow)>
|
|
}
|
|
@:<el-form-item label="@(@item.Label)" label-width="@(@item.LabelWidth)px">
|
|
@:<@(@item.Tag) v-model="dataForm.@(@item.LowerName)" @(@item.FileSize)@(@item.SizeUnit)@(@item.Limit)@(@item.ButtonText)disabled detailed></@(@item.Tag)>
|
|
@:</el-form-item>
|
|
@:</el-col>
|
|
break;
|
|
case "uploadImg":
|
|
@if(item.NoShow == "")
|
|
{
|
|
@if(Model.UseFormPermission)
|
|
{
|
|
@:<el-col :span="@(@item.Span)" v-if="jnpf.hasFormP('@(@item.OriginalName)')">
|
|
}else{
|
|
@:<el-col :span="@(@item.Span)">
|
|
}
|
|
}else{
|
|
@:<el-col :span="@(@item.Span)" @(@item.NoShow)>
|
|
}
|
|
@:<el-form-item label="@(@item.Label)" label-width="@(@item.LabelWidth)px">
|
|
@:<@(@item.Tag) v-model="dataForm.@(@item.LowerName)" @(@item.FileSize)@(@item.SizeUnit)@(@item.Limit)disabled detailed></@(@item.Tag)>
|
|
@:</el-form-item>
|
|
@:</el-col>
|
|
break;
|
|
@*颜色选择器*@
|
|
case "colorPicker":
|
|
@if(item.NoShow == "")
|
|
{
|
|
@if(Model.UseFormPermission)
|
|
{
|
|
@:<el-col :span="@(@item.Span)" v-if="jnpf.hasFormP('@(@item.OriginalName)')">
|
|
}else{
|
|
@:<el-col :span="@(@item.Span)">
|
|
}
|
|
}else{
|
|
@:<el-col :span="@(@item.Span)" @(@item.NoShow)>
|
|
}
|
|
@:<el-form-item label="@(@item.Label)" label-width="@(@item.LabelWidth)px">
|
|
@:<@(@item.Tag) v-model="dataForm.@(@item.LowerName)" disabled></@(@item.Tag)>
|
|
@:</el-form-item>
|
|
@:</el-col>
|
|
break;
|
|
@*评分*@
|
|
case "rate":
|
|
@if(item.NoShow == "")
|
|
{
|
|
@if(Model.UseFormPermission)
|
|
{
|
|
@:<el-col :span="@(@item.Span)" v-if="jnpf.hasFormP('@(@item.OriginalName)')">
|
|
}else{
|
|
@:<el-col :span="@(@item.Span)">
|
|
}
|
|
}else{
|
|
@:<el-col :span="@(@item.Span)" @(@item.NoShow)>
|
|
}
|
|
@:<el-form-item label="@(@item.Label)" label-width="@(@item.LabelWidth)px">
|
|
@:<@(@item.Tag) v-model="dataForm.@(@item.LowerName)" @(@item.Style)@(@item.Max)disabled></@(@item.Tag)>
|
|
@:</el-form-item>
|
|
@:</el-col>
|
|
break;
|
|
@*滑块*@
|
|
case "slider":
|
|
@if(item.NoShow == "")
|
|
{
|
|
@if(Model.UseFormPermission)
|
|
{
|
|
@:<el-col :span="@(@item.Span)" v-if="jnpf.hasFormP('@(@item.OriginalName)')">
|
|
}else{
|
|
@:<el-col :span="@(@item.Span)">
|
|
}
|
|
}else{
|
|
@:<el-col :span="@(@item.Span)" @(@item.NoShow)>
|
|
}
|
|
@:<el-form-item label="@(@item.Label)" label-width="@(@item.LabelWidth)px">
|
|
@:<@(@item.Tag) v-model="dataForm.@(@item.LowerName)" @(@item.Step)@(@item.Max)disabled></@(@item.Tag)>
|
|
@:</el-form-item>
|
|
@:</el-col>
|
|
break;
|
|
case "editor":
|
|
@if(item.NoShow == "")
|
|
{
|
|
@if(Model.UseFormPermission)
|
|
{
|
|
@:<el-col :span="@(@item.Span)" v-if="jnpf.hasFormP('@(@item.OriginalName)')">
|
|
}else{
|
|
@:<el-col :span="@(@item.Span)">
|
|
}
|
|
}else{
|
|
@:<el-col :span="@(@item.Span)" @(@item.NoShow)>
|
|
}
|
|
@:<el-form-item label="@(@item.Label)" label-width="@(@item.LabelWidth)px">
|
|
@:<div v-html="dataForm.@(@item.LowerName)" disabled></div>
|
|
@:</el-form-item>
|
|
@:</el-col>
|
|
break;
|
|
case "relationForm":
|
|
@if(item.NoShow == "")
|
|
{
|
|
@if(Model.UseFormPermission)
|
|
{
|
|
@:<el-col :span="@(@item.Span)" v-if="jnpf.hasFormP('@(@item.OriginalName)')">
|
|
}else{
|
|
@:<el-col :span="@(@item.Span)">
|
|
}
|
|
}else{
|
|
@:<el-col :span="@(@item.Span)" @(@item.NoShow)>
|
|
}
|
|
@:<el-form-item label="@(@item.Label)" label-width="@(@item.LabelWidth)px">
|
|
@:<el-link :underline="false" @@click.native="toDetail('@(item.ModelId)', dataForm.@(@item.LowerName))" type="primary">{{ dataForm.@(@item.LowerName) }}</el-link>
|
|
@:</el-form-item>
|
|
@:</el-col>
|
|
break;
|
|
case "relationFormAttr":
|
|
case "popupAttr":
|
|
@if(item.NoShow == "")
|
|
{
|
|
@if(Model.UseFormPermission)
|
|
{
|
|
@:<el-col :span="@(@item.Span)" v-if="jnpf.hasFormP('@(@item.OriginalName)')">
|
|
}else{
|
|
@:<el-col :span="@(@item.Span)">
|
|
}
|
|
}else{
|
|
@:<el-col :span="@(@item.Span)" @(@item.NoShow)>
|
|
}
|
|
@:<el-form-item label="@(@item.Label)" label-width="@(@item.LabelWidth)px">
|
|
@:<p>{{dataForm.@(item.IsStorage == 2 ? item.LowerName : item.RelationField + "_" + @item.ShowField)}}</p>
|
|
@:</el-form-item>
|
|
@:</el-col>
|
|
break;
|
|
default:
|
|
@if(item.NoShow == "")
|
|
{
|
|
@if(Model.UseFormPermission)
|
|
{
|
|
@:<el-col :span="@(@item.Span)" v-if="jnpf.hasFormP('@(@item.OriginalName)')">
|
|
}else{
|
|
@:<el-col :span="@(@item.Span)">
|
|
}
|
|
}else{
|
|
@:<el-col :span="@(@item.Span)" @(@item.NoShow)>
|
|
}
|
|
@:<el-form-item label="@(@item.Label)" label-width="@(@item.LabelWidth)px">
|
|
@:<p>{{dataForm.@(@item.LowerName)}}</p>
|
|
@:</el-form-item>
|
|
@:</el-col>
|
|
break;
|
|
}
|
|
}
|
|
</el-form>
|
|
}
|
|
}
|
|
@{
|
|
void GenerateFormChildrenControls(ICollection<FormControlDesignModel> childrenList, int gutter)
|
|
{
|
|
@foreach(var item in childrenList)
|
|
{
|
|
@switch(item.jnpfKey)
|
|
{
|
|
@*栅格布局*@
|
|
case "row":
|
|
@:<el-col :span="@(@item.Span)">
|
|
@:<el-row :gutter="@(@gutter)">
|
|
@{GenerateFormChildrenControls(item.Children, gutter);}
|
|
@:</el-row>
|
|
@:</el-col>
|
|
break;
|
|
case "table":
|
|
@if(Model.UseFormPermission)
|
|
{
|
|
@:<el-col :span="@(@item.Span)" v-if="jnpf.hasFormP('@(@item.Name)')">
|
|
}else{
|
|
@:<el-col :span="@(@item.Span)">
|
|
}
|
|
@:<el-form-item label-width="0px">
|
|
@if(item.ShowTitle)
|
|
{
|
|
@:<div class="JNPF-common-title">
|
|
@:<h2>@(@item.Label)</h2>
|
|
@:</div>
|
|
}
|
|
@:<el-table :data="dataForm.@(@item.Name)" size='mini' @(@item.ShowSummary ? "show-summary :summary-method='get" + @item.ChildTableName + "'" : "")>
|
|
@:<el-table-column type="index" width="50" label="序号" align="center" />
|
|
@foreach (var childrens in item.Children)
|
|
{
|
|
@switch(childrens.jnpfKey)
|
|
{
|
|
case "uploadFz":
|
|
@:<el-table-column @(@childrens.ColumnWidth)label="@(@childrens.Label)" @(Model.UseFormPermission ? "v-if=\"jnpf.hasFormP('" + @item.Name + "-" + @childrens.LowerName + "')\"" : "")>
|
|
@:<template slot-scope="scope">
|
|
@:<@(@childrens.Tag) v-model="scope.row.@(@childrens.LowerName)" @(@childrens.FileSize)@(@childrens.SizeUnit)@(@childrens.Limit)@(@childrens.ButtonText)disabled detailed></@(@childrens.Tag)>
|
|
@:</template>
|
|
@:</el-table-column>
|
|
break;
|
|
case "uploadImg":
|
|
@:<el-table-column @(@childrens.ColumnWidth)label="@(@childrens.Label)" @(Model.UseFormPermission ? "v-if=\"jnpf.hasFormP('" + @item.Name + "-" + @childrens.LowerName + "')\"" : "")>
|
|
@:<template slot-scope="scope">
|
|
@:<@(@childrens.Tag) v-model="scope.row.@(@childrens.LowerName)" @(@childrens.FileSize)@(@childrens.SizeUnit)@(@childrens.Limit)></@(@childrens.Tag)>
|
|
@:</template>
|
|
@:</el-table-column>
|
|
break;
|
|
case "relationFormAttr":
|
|
case "popupAttr":
|
|
@:<el-table-column prop="@(@childrens.LowerName)" @(@childrens.ColumnWidth)label="@(@childrens.Label)" @(Model.UseFormPermission ? "v-if=\"jnpf.hasFormP('" + @item.Name + "-" + @childrens.LowerName + "')\"" : "")>
|
|
@:<template slot-scope="scope">
|
|
@:<p>{{scope.row.@(childrens.IsStorage == 2 ? childrens.LowerName : childrens.RelationField + "_" + @childrens.ShowField)}}</p>
|
|
@:</template>
|
|
@:</el-table-column>
|
|
break;
|
|
case "relationForm":
|
|
@:<el-table-column prop="@(@childrens.LowerName)" @(@childrens.ColumnWidth)label="@(@childrens.Label)" @(Model.UseFormPermission ? "v-if=\"jnpf.hasFormP('" + @item.Name + "-" + @childrens.LowerName + "')\"" : "")>
|
|
@:<template slot-scope="scope">
|
|
@:<el-link :underline="false" @@click.native="toDetail('@(@childrens.ModelId)',scope.row.@(@childrens.LowerName))" type="primary">
|
|
@:{{ scope.row.@(@childrens.LowerName) }}
|
|
@:</el-link>
|
|
@:</template>
|
|
@:</el-table-column>
|
|
break;
|
|
case "date":
|
|
@:<el-table-column prop="@(@childrens.LowerName)" @(@childrens.ColumnWidth)label="@(@childrens.Label)" @(Model.UseFormPermission ? "v-if=\"jnpf.hasFormP('" + @item.Name + "-" + @childrens.LowerName + "')\"" : "")>
|
|
@:<template slot-scope="scope">
|
|
@:<p>{{scope.row.@(@childrens.LowerName) | toDate}}</p>
|
|
@:</template>
|
|
@:</el-table-column>
|
|
break;
|
|
default:
|
|
@:<el-table-column prop="@(@childrens.LowerName)" @(@childrens.ColumnWidth)label="@(@childrens.Label)" @(Model.UseFormPermission ? "v-if=\"jnpf.hasFormP('" + @item.Name + "-" + @childrens.LowerName + "')\"" : "")>
|
|
@:<template slot-scope="scope">
|
|
@:<p>{{scope.row.@(@childrens.LowerName)}}</p>
|
|
@:</template>
|
|
@:</el-table-column>
|
|
break;
|
|
}
|
|
}
|
|
@:</el-table>
|
|
@:</el-form-item>
|
|
@:</el-col>
|
|
break;
|
|
case "card":
|
|
@:<el-col :span="@(@item.Span)">
|
|
@:<el-card class="mb-20" shadow="@(@item.Shadow)">
|
|
@{GenerateFormChildrenControls(item.Children,gutter);}
|
|
@:</el-card>
|
|
@:</el-col>
|
|
break;
|
|
case "collapse":
|
|
@:<el-col :span="@(@item.Span)">
|
|
@:<el-collapse :accordion="@(@item.Accordion)" v-model="@(@item.Name)" class="mb-20">
|
|
@foreach(var collapse in item.Children)
|
|
{
|
|
@:<el-collapse-item title="@(@collapse.Title)" name="@(@collapse.Name)">
|
|
@{GenerateFormChildrenControls(collapse.Children,gutter);}
|
|
@:</el-collapse-item>
|
|
}
|
|
@:</el-collapse>
|
|
@:</el-col>
|
|
break;
|
|
case "tab":
|
|
@:<el-col :span="@(@item.Span)">
|
|
@:<el-tabs type="@(@item.Type)" tab-position="@(@item.TabPosition)" v-model="@(@item.Name)" class="mb-10">
|
|
@foreach(var collapse in item.Children)
|
|
{
|
|
@:<el-tab-pane label="@(@collapse.Title)">
|
|
@{GenerateFormChildrenControls(collapse.Children,gutter);}
|
|
@:</el-tab-pane>
|
|
}
|
|
@:</el-tabs>
|
|
@:</el-col>
|
|
break;
|
|
case "divider":
|
|
@:<el-col :span="@(@item.Span)">
|
|
@:<el-form-item label-width="@(@item.LabelWidth)px">
|
|
@:<el-divider content-position="@(@item.Contentposition)">@(@item.Default)</el-divider>
|
|
@:</el-form-item>
|
|
@:</el-col>
|
|
break;
|
|
case "groupTitle":
|
|
@:<el-col :span="@(@item.Span)">
|
|
@:<el-form-item label-width="@(@item.LabelWidth)px">
|
|
@:<groupTitle content-position="@(@item.Contentposition)" content="@(@item.Content)"></groupTitle>
|
|
@:</el-form-item>
|
|
@:</el-col>
|
|
break;
|
|
case "JNPFText":
|
|
@:<el-col :span="@(@item.Span)">
|
|
@:<el-form-item label-width="@(@item.LabelWidth)px">
|
|
@:<JNPF-Text value="@(@item.DefaultValue)" :textStyle='@(@item.TextStyle)' :style='@(@item.Style)'></JNPF-Text>
|
|
@:</el-form-item>
|
|
@:</el-col>
|
|
break;
|
|
case "button":
|
|
@:<el-col :span="@(@item.Span)">
|
|
@:<el-form-item>
|
|
@:<jnpf-button align="@(@item.Align)" buttonText="@(@item.ButtonText)" type="@(@item.Type)"></jnpf-button>
|
|
@:</el-form-item>
|
|
@:</el-col>
|
|
break;
|
|
case "link":
|
|
@:<el-col :span="@(@item.Span)">
|
|
@:<el-form-item label-width="0">
|
|
@:<jnpf-link content="@(@item.Content)" href="@(@item.Href)" target="@(@item.Target)" :textStyle='@(@item.TextStyle)'></jnpf-link>
|
|
@:</el-form-item>
|
|
@:</el-col>
|
|
break;
|
|
case "alert":
|
|
@:<el-col :span="@(@item.Span)">
|
|
@:<el-form-item label-width="0">
|
|
@:<el-alert title="@(@item.Title)" type="@(@item.Type)" :closable="false" :show-icon="@(@item.ShowIcon)"></el-alert>
|
|
@:</el-form-item>
|
|
@:</el-col>
|
|
break;
|
|
case "date":
|
|
@if(Model.UseFormPermission)
|
|
{
|
|
@:<el-col :span="@(@item.Span)" v-if="jnpf.hasFormP('@(@item.OriginalName)')">
|
|
}else{
|
|
@:<el-col :span="@(@item.Span)">
|
|
}
|
|
@:<el-form-item label="@(@item.Label)" label-width="@(@item.LabelWidth)px">
|
|
@:<p>{{dataForm.@(@item.LowerName)}}</p>
|
|
@:</el-form-item>
|
|
@:</el-col>
|
|
break;
|
|
case "createTime":
|
|
case "modifyTime":
|
|
@if(item.NoShow == "")
|
|
{
|
|
@:<el-col :span="@(@item.Span)">
|
|
}else{
|
|
@:<el-col :span="@(@item.Span)" @(@item.NoShow)>
|
|
}
|
|
@:<el-form-item label="@(@item.Label)" label-width="@(@item.LabelWidth)px">
|
|
@:<p>{{dataForm.@(@item.LowerName)}}</p>
|
|
@:</el-form-item>
|
|
@:</el-col>
|
|
break;
|
|
case "uploadFz":
|
|
@if(item.NoShow == "")
|
|
{
|
|
@if(Model.UseFormPermission)
|
|
{
|
|
@:<el-col :span="@(@item.Span)" v-if="jnpf.hasFormP('@(@item.OriginalName)')">
|
|
}else{
|
|
@:<el-col :span="@(@item.Span)">
|
|
}
|
|
}else{
|
|
@:<el-col :span="@(@item.Span)" @(@item.NoShow)>
|
|
}
|
|
@:<el-form-item label="@(@item.Label)" label-width="@(@item.LabelWidth)px">
|
|
@:<@(@item.Tag) v-model="dataForm.@(@item.LowerName)" @(@item.FileSize)@(@item.SizeUnit)@(@item.Limit)@(@item.ButtonText)disabled detailed></@(@item.Tag)>
|
|
@:</el-form-item>
|
|
@:</el-col>
|
|
break;
|
|
case "uploadImg":
|
|
@if(item.NoShow == "")
|
|
{
|
|
@if(Model.UseFormPermission)
|
|
{
|
|
@:<el-col :span="@(@item.Span)" v-if="jnpf.hasFormP('@(@item.OriginalName)')">
|
|
}else{
|
|
@:<el-col :span="@(@item.Span)">
|
|
}
|
|
}else{
|
|
@:<el-col :span="@(@item.Span)" @(@item.NoShow)>
|
|
}
|
|
@:<el-form-item label="@(@item.Label)" label-width="@(@item.LabelWidth)px">
|
|
@:<@(@item.Tag) v-model="dataForm.@(@item.LowerName)" @(@item.FileSize)@(@item.SizeUnit)@(@item.Limit)disabled detailed></@(@item.Tag)>
|
|
@:</el-form-item>
|
|
@:</el-col>
|
|
break;
|
|
@*颜色选择器*@
|
|
case "colorPicker":
|
|
@if(item.NoShow == "")
|
|
{
|
|
@if(Model.UseFormPermission)
|
|
{
|
|
@:<el-col :span="@(@item.Span)" v-if="jnpf.hasFormP('@(@item.OriginalName)')">
|
|
}else{
|
|
@:<el-col :span="@(@item.Span)">
|
|
}
|
|
}else{
|
|
@:<el-col :span="@(@item.Span)" @(@item.NoShow)>
|
|
}
|
|
@:<el-form-item label="@(@item.Label)" label-width="@(@item.LabelWidth)px">
|
|
@:<@(@item.Tag) v-model="dataForm.@(@item.LowerName)"></@(@item.Tag)>
|
|
@:</el-form-item>
|
|
@:</el-col>
|
|
break;
|
|
@*评分*@
|
|
case "rate":
|
|
@if(item.NoShow == "")
|
|
{
|
|
@if(Model.UseFormPermission)
|
|
{
|
|
@:<el-col :span="@(@item.Span)" v-if="jnpf.hasFormP('@(@item.OriginalName)')">
|
|
}else{
|
|
@:<el-col :span="@(@item.Span)">
|
|
}
|
|
}else{
|
|
@:<el-col :span="@(@item.Span)" @(@item.NoShow)>
|
|
}
|
|
@:<el-form-item label="@(@item.Label)" label-width="@(@item.LabelWidth)px">
|
|
@:<@(@item.Tag) v-model="dataForm.@(@item.LowerName)" @(@item.Style)@(@item.Max)></@(@item.Tag)>
|
|
@:</el-form-item>
|
|
@:</el-col>
|
|
break;
|
|
@*滑块*@
|
|
case "slider":
|
|
@if(item.NoShow == "")
|
|
{
|
|
@if(Model.UseFormPermission)
|
|
{
|
|
@:<el-col :span="@(@item.Span)" v-if="jnpf.hasFormP('@(@item.OriginalName)')">
|
|
}else{
|
|
@:<el-col :span="@(@item.Span)">
|
|
}
|
|
}else{
|
|
@:<el-col :span="@(@item.Span)" @(@item.NoShow)>
|
|
}
|
|
@:<el-form-item label="@(@item.Label)" label-width="@(@item.LabelWidth)px">
|
|
@:<@(@item.Tag) v-model="dataForm.@(@item.LowerName)" @(@item.Step)@(@item.Max)></@(@item.Tag)>
|
|
@:</el-form-item>
|
|
@:</el-col>
|
|
break;
|
|
case "editor":
|
|
@if(item.NoShow == "")
|
|
{
|
|
@if(Model.UseFormPermission)
|
|
{
|
|
@:<el-col :span="@(@item.Span)" v-if="jnpf.hasFormP('@(@item.OriginalName)')">
|
|
}else{
|
|
@:<el-col :span="@(@item.Span)">
|
|
}
|
|
}else{
|
|
@:<el-col :span="@(@item.Span)" @(@item.NoShow)>
|
|
}
|
|
@:<el-form-item label="@(@item.Label)" label-width="@(@item.LabelWidth)px">
|
|
@:<div v-html="dataForm.@(@item.LowerName)"></div>
|
|
@:</el-form-item>
|
|
@:</el-col>
|
|
break;
|
|
case "relationFormAttr":
|
|
case "popupAttr":
|
|
@if(item.NoShow == "")
|
|
{
|
|
@if(Model.UseFormPermission)
|
|
{
|
|
@:<el-col :span="@(@item.Span)" v-if="jnpf.hasFormP('@(@item.OriginalName)')">
|
|
}else{
|
|
@:<el-col :span="@(@item.Span)">
|
|
}
|
|
}else{
|
|
@:<el-col :span="@(@item.Span)" @(@item.NoShow)>
|
|
}
|
|
@:<el-form-item label="@(@item.Label)" label-width="@(@item.LabelWidth)px">
|
|
@:<p>{{dataForm.@(item.IsStorage == 2 ? item.LowerName : item.RelationField + "_" + @item.ShowField)}}</p>
|
|
@:</el-form-item>
|
|
@:</el-col>
|
|
break;
|
|
case "relationForm":
|
|
@if(item.NoShow == "")
|
|
{
|
|
@if(Model.UseFormPermission)
|
|
{
|
|
@:<el-col :span="@(@item.Span)" v-if="jnpf.hasFormP('@(@item.OriginalName)')">
|
|
}else{
|
|
@:<el-col :span="@(@item.Span)">
|
|
}
|
|
}else{
|
|
@:<el-col :span="@(@item.Span)" @(@item.NoShow)>
|
|
}
|
|
@:<el-form-item label="@(@item.Label)" label-width="@(@item.LabelWidth)px">
|
|
@:<el-link :underline="false" @@click.native="toDetail('@(item.ModelId)', dataForm.@(@item.LowerName))" type="primary">{{ dataForm.@(@item.LowerName) }}</el-link>
|
|
@:</el-form-item>
|
|
@:</el-col>
|
|
break;
|
|
default:
|
|
@if(item.NoShow == "")
|
|
{
|
|
@if(Model.UseFormPermission)
|
|
{
|
|
@:<el-col :span="@(@item.Span)" v-if="jnpf.hasFormP('@(@item.OriginalName)')">
|
|
}else{
|
|
@:<el-col :span="@(@item.Span)">
|
|
}
|
|
}else{
|
|
@:<el-col :span="@(@item.Span)" @(@item.NoShow)>
|
|
}
|
|
@:<el-form-item label="@(@item.Label)" label-width="@(@item.LabelWidth)px">
|
|
@:<p>{{dataForm.@(@item.LowerName)}}</p>
|
|
@:</el-form-item>
|
|
@:</el-col>
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
} |