Files
tnb.server/apihost/Tnb.API.Entry/wwwroot/Template/Detail.vue.vm
2023-03-13 15:00:34 +08:00

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;
}
}
}
}