添加项目文件。
This commit is contained in:
765
apihost/Tnb.API.Entry/wwwroot/Template/appDetail.vue.vm
Normal file
765
apihost/Tnb.API.Entry/wwwroot/Template/appDetail.vue.vm
Normal file
@@ -0,0 +1,765 @@
|
||||
<template>
|
||||
<view class="jnpf-wrap jnpf-wrap-form">
|
||||
<u-form :model="@(@Model.FormModel)" ref="@(@Model.FormModel)" :errorType="['toast']" label-position="@(@Model.LabelPosition)" label-width="@(@Model.LabelWidth)" label-align="left" class="jnpf-form">
|
||||
@{var collapseArray = new List<string>(); }
|
||||
@{GenCodeAppFormControls();}
|
||||
</u-form>
|
||||
<view class="buttom-actions">
|
||||
<u-button class="buttom-btn" @@click="jnpf.goBack()">@(@Model.CancelButtonText)</u-button>
|
||||
@switch(Model.UseBtnPermission)
|
||||
{
|
||||
case true:
|
||||
@switch(Model.IsEdit)
|
||||
{
|
||||
case true:
|
||||
@:<u-button class="buttom-btn" type="primary" @@click.stop="handleEdit" v-if="">@(@Model.EditTitleName)</u-button>
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case false:
|
||||
@switch(Model.IsEdit)
|
||||
{
|
||||
case true:
|
||||
@:<u-button class="buttom-btn" type="primary" @@click.stop="handleEdit" v-if="">@(@Model.EditTitleName)</u-button>
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
<script>
|
||||
import request from '@@/utils/request'
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
menuIds:'',
|
||||
setting: {},
|
||||
@foreach(var item in @Model.OptionsList)
|
||||
{
|
||||
@if(item.jnpfKey == "tab")
|
||||
{
|
||||
@:@(@item.LowerName)Current:@(@item.Content),
|
||||
}
|
||||
}
|
||||
@(@Model.FormModel): {
|
||||
@(@Model.PrimaryKey):'',
|
||||
@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 "usersSelect":
|
||||
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":
|
||||
if(@children.DefaultValue == null || @children.DefaultValue.ToString() == "")
|
||||
{
|
||||
@:@(@children.LowerName):0,
|
||||
}else{
|
||||
@:@(@children.LowerName):@(@children.DefaultValue),
|
||||
}
|
||||
break;
|
||||
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;
|
||||
}
|
||||
}
|
||||
},
|
||||
@if(Model.UseFormPermission)
|
||||
{
|
||||
@:menuIds:'',
|
||||
}
|
||||
jurisdictionType:'',
|
||||
@foreach(var item in Model.OptionsList)
|
||||
{
|
||||
@switch(item.jnpfKey)
|
||||
{
|
||||
case "collapse":
|
||||
@:@(@item.Name):@(@item.Content),
|
||||
break;
|
||||
case "tab":
|
||||
@:@(@item.Name)Title:@(@item.Title),
|
||||
@:@(@item.Name):"@(@item.Content)",
|
||||
break;
|
||||
}
|
||||
}
|
||||
};
|
||||
},
|
||||
watch: {
|
||||
@if(Model.IsSummary)
|
||||
{
|
||||
@:dataForm: {
|
||||
@:handler(val, oldVal) {
|
||||
@foreach(var item in Model.FormList)
|
||||
{
|
||||
@switch(item.jnpfKey)
|
||||
{
|
||||
case "table":
|
||||
@if(item.ShowSummary)
|
||||
{
|
||||
@:this.@(@item.LowerName)();
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
@:},
|
||||
@:deep: true
|
||||
@:}
|
||||
}
|
||||
},
|
||||
onLoad(option) {
|
||||
this.menuIds = option.menuIds
|
||||
this.jurisdictionType = option.jurisdictionType
|
||||
this.@(@Model.FormModel).@(@Model.PrimaryKey) = option.id || ''
|
||||
uni.setNavigationBarTitle({
|
||||
title: '详情'
|
||||
})
|
||||
this.initData()
|
||||
uni.$on('refresh', () => {
|
||||
this.initData()
|
||||
})
|
||||
},
|
||||
methods: {
|
||||
@foreach(var item in @Model.OptionsList)
|
||||
{
|
||||
@if(item.jnpfKey == "tab")
|
||||
{
|
||||
@:@(@item.LowerName)Change(index)
|
||||
@:{
|
||||
@:this.@(@item.LowerName)Current = index;
|
||||
@:},
|
||||
}
|
||||
}
|
||||
initData() {
|
||||
this.$store.commit('base/UPDATE_RELATION_DATA', {})
|
||||
if (this.@(@Model.FormModel).@(@Model.PrimaryKey)) {
|
||||
request({
|
||||
url: '/api/@(@Model.NameSpace)/@(@Model.ClassName)/Detail/' + this.@(@Model.FormModel).@(@Model.PrimaryKey),
|
||||
method: 'get',
|
||||
}).then(res => {
|
||||
this.@(@Model.FormModel) = res.data;
|
||||
@foreach(var item in Model.FormList)
|
||||
{
|
||||
@switch(item.jnpfKey)
|
||||
{
|
||||
case "cascader":
|
||||
case "checkbox":
|
||||
case "uploadImg":
|
||||
case "uploadFz":
|
||||
case "address":
|
||||
case "comSelect":
|
||||
@:if(!this.@(@Model.FormModel).@(@item.LowerName))this.@(@Model.FormModel).@(@item.LowerName)=[];
|
||||
break;
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
@foreach(var item in collapseArray)
|
||||
{
|
||||
@:@(item)Change(){
|
||||
@:this.$nextTick(()=>{
|
||||
@:this.$refs.@(item)Ref && this.$refs.@(item)Ref.init()
|
||||
@:})
|
||||
@:},
|
||||
}
|
||||
doPreviewImage(url,list) {
|
||||
const images = list.map(item => this.define.baseURL + item.url);
|
||||
uni.previewImage({
|
||||
urls: images,
|
||||
current: url,
|
||||
success: () => {},
|
||||
fail: () => {
|
||||
uni.showToast({
|
||||
title: '预览图片失败',
|
||||
icon: 'none'
|
||||
});
|
||||
}
|
||||
});
|
||||
},
|
||||
toDetail(id, modelId) {
|
||||
if (!id) return
|
||||
this.$nextTick(() => {
|
||||
const url =
|
||||
`/pages/apply/dynamicModel/detail?modelId=${modelId}&id=${id}&formTitle=详情&noShowBtn=1`
|
||||
uni.navigateTo({
|
||||
url: url
|
||||
})
|
||||
})
|
||||
},
|
||||
handleEdit() {
|
||||
let btnType = 'btn_edit';
|
||||
if(!btnType) return
|
||||
this.jumPage(this.dataForm.id,btnType)
|
||||
},
|
||||
jumPage(id,btnType){
|
||||
if (!id) btnType = 'btn_add'
|
||||
let query = id ? id : ''
|
||||
uni.navigateTo({
|
||||
url: './form?id='+ query+'&jurisdictionType='+btnType+'&menuIds='+this.menuIds
|
||||
})
|
||||
},
|
||||
@foreach(var item in Model.FormList)
|
||||
{
|
||||
@if(item.jnpfKey == "table")
|
||||
{
|
||||
@if(item.ShowSummary)
|
||||
{
|
||||
@:@(@item.LowerName)(){
|
||||
@:let table = this.@(@Model.FormModel).@(@item.OriginalName)
|
||||
@:let summaryField = @(@item.SummaryField)
|
||||
@:let summaryFieldName = {
|
||||
@foreach(var items in item.ChildrenList)
|
||||
{
|
||||
@if(items.IsSummary)
|
||||
{
|
||||
@:"@(@items.Name)":"@(@items.Placeholder)",
|
||||
}
|
||||
}
|
||||
@:}
|
||||
@:let data = {}
|
||||
@:for (let i in summaryField) {
|
||||
@:let map = {}
|
||||
@:let val = 0
|
||||
@:for (let j = 0; j < table.length; j++) {
|
||||
@:let summary = table[j][summaryField[i]];
|
||||
@:if (summary) {
|
||||
@:let data = isNaN(summary) ? 0 : Number(summary)
|
||||
@:val += data
|
||||
@:}
|
||||
@:}
|
||||
@:map.id = summaryField[i];
|
||||
@:map.name = summaryFieldName[summaryField[i]];
|
||||
@:map.val = val;
|
||||
@:data[summaryField[i]] = map;
|
||||
@:}
|
||||
@:return data;
|
||||
@:},
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
@{
|
||||
void GenCodeAppFormControls()
|
||||
{
|
||||
@foreach(var item in Model.FormAllContols)
|
||||
{
|
||||
@switch(item.jnpfKey)
|
||||
{
|
||||
@*现将表单内有特殊样式的控件循环出来*@
|
||||
case "groupTitle":
|
||||
@:<jnpf-group content="@(@item.Content)" content-position="@(@item.Contentposition)"></jnpf-group>
|
||||
break;
|
||||
case "divider":
|
||||
@:<u-divider half-width="200" height="80">@(@item.Default)</u-divider>
|
||||
break;
|
||||
case "card":
|
||||
case "row":
|
||||
@:<view class="jnpf-card">
|
||||
@:<view class="jnpf-card-cap u-line-1">@(@item.Content)</view>
|
||||
@{GenCodeAppFormChildrenControls(item.Children);}
|
||||
@:</view>
|
||||
break;
|
||||
@*标签面板*@
|
||||
case "tab":
|
||||
@:<view prop="@(@item.LowerName)">
|
||||
@:<u-tabs :is-scroll="false" :list="@(@item.LowerName)Title" name="title" :current="@(@item.LowerName)Current" @@change="@(@item.LowerName)Change"></u-tabs>
|
||||
@:<view>
|
||||
@{ int n = 0;}
|
||||
@foreach(var tab in item.Children)
|
||||
{
|
||||
@:<view v-if="@(@n) == @(@item.LowerName)Current">
|
||||
@{GenCodeAppFormChildrenControls(tab.Children);}
|
||||
@:</view>
|
||||
@{n++;}
|
||||
}
|
||||
@:</view>
|
||||
@:</view>
|
||||
break;
|
||||
@*折叠面板*@
|
||||
case "collapse":
|
||||
@:<view prop="@(@item.LowerName)">
|
||||
@:<template>
|
||||
@:<view class="collapse">
|
||||
@:<u-collapse v-model="@(@item.Name)" :accordion="@(@item.Accordion)" @@change="@(@item.Name)Change" ref="@(@item.Name)Ref">
|
||||
@foreach(var collapse in item.Children)
|
||||
{
|
||||
@:<u-collapse-item class="collapse-item" name="@(@collapse.Name)" title="@(@collapse.Title)">
|
||||
@{GenCodeAppFormChildrenControls(collapse.Children);}
|
||||
@:</u-collapse-item>
|
||||
}
|
||||
@:</u-collapse>
|
||||
@:</view>
|
||||
@:</template>
|
||||
@:</view>
|
||||
@{collapseArray.Add(item.Name);}
|
||||
break;
|
||||
@*文本*@
|
||||
case "JNPFText":
|
||||
@:<jnpf-text value="@(@item.DefaultValue)" :textStyle='@(@item.TextStyle)'/>
|
||||
break;
|
||||
@*子表*@
|
||||
case "table":
|
||||
@if(Model.UseFormPermission)
|
||||
{
|
||||
@:<view class="jnpf-table" v-if="$setPermission.hasFormP('@(@item.Name)',menuIds)">
|
||||
}else{
|
||||
@:<view class="jnpf-table">
|
||||
}
|
||||
@:<view class="jnpf-table-item" v-for="(item,i) in @(@Model.FormModel).@(@item.Name)" :key="i">
|
||||
@:<view class="jnpf-table-item-title u-flex u-row-between">
|
||||
@:<text class="jnpf-table-item-title-num">@(@item.Label)({{i+1}})</text>
|
||||
@:<view class="jnpf-table-item-title-action" v-if="@(@Model.FormModel).@(@item.Name).length > 1 && @(@item.AddType) == 0" @@click="del@(@item.ChildTableName)(i)">删除</view>
|
||||
@:</view>
|
||||
@foreach(var children in item.Children)
|
||||
{
|
||||
@switch(children.jnpfKey)
|
||||
{
|
||||
case "relationFormAttr":
|
||||
case "popupAttr":
|
||||
@if(Model.UseFormPermission)
|
||||
{
|
||||
@:<u-form-item label="@(@children.Label)" prop="@(@children.RelationField)" v-if="$setPermission.hasFormP('@(@item.Name + "-" +@children.LowerName)', menuIds)">
|
||||
}else{
|
||||
@:<u-form-item label="@(@children.Label)" prop="@(@children.RelationField)">
|
||||
}
|
||||
break;
|
||||
default:
|
||||
@if(Model.UseFormPermission)
|
||||
{
|
||||
@:<u-form-item label="@(@children.Label)" prop="@(@children.LowerName)" @(children.jnpfKey == "uploadImg"? "class=\"preview-image-box\" " : "")@(@children.Required)v-if="$setPermission.hasFormP('@(@item.Name + "-" +@children.LowerName)', menuIds)">
|
||||
}else{
|
||||
@:<u-form-item label="@(@children.Label)" prop="@(@children.LowerName)" @(children.jnpfKey == "uploadImg"? "class=\"preview-image-box\" " : "")@(@children.Required)>
|
||||
}
|
||||
break;
|
||||
}
|
||||
@switch(children.jnpfKey)
|
||||
{
|
||||
case "uploadFz":
|
||||
@:<jnpf-file v-model="@(@Model.FormModel).@(@item.Name)[i].@(@children.LowerName)" :noShowBtn="false" disabled @(@children.Limit)@(@children.SizeUnit)@(@children.FileSize)@(@children.Accept)/>
|
||||
break;
|
||||
case "uploadImg":
|
||||
@:<image class="u-preview-image" v-for="(cItem,ci) in @(@Model.FormModel).@(@item.Name)[i].@(@children.LowerName)" :key="ci" :src="define.baseURL+cItem.url" mode="aspectFill" @@tap.stop="doPreviewImage(define.baseURL+cItem.url,@(@Model.FormModel).@(@item.Name)[i].@(@children.LowerName))"></image>
|
||||
break;
|
||||
@*关联表单*@
|
||||
case "relationForm":
|
||||
@:<view class="jnpf-detail-text" style="color:rgb(41, 121, 255)" @@click.native="toDetail(@(Model.FormModel).@(item.Name)[i].@(children.LowerName),'@(children.ModelId)')">{{@(@Model.FormModel).@(@item.Name)[i].@(@children.LowerName)}}</view>
|
||||
break;
|
||||
default:
|
||||
@:<view class="jnpf-detail-text">{{@(@Model.FormModel).@(@item.Name)[i].@(@children.LowerName)}}</view>
|
||||
break;
|
||||
}
|
||||
@:</u-form-item>
|
||||
}
|
||||
@:</view>
|
||||
@if(item.ShowSummary)
|
||||
{
|
||||
@:<view class="jnpf-table-item">
|
||||
@:<view class="jnpf-table-item-title u-flex u-row-between">
|
||||
@:<text class="jnpf-table-item-title-num">@(@item.Label)合计</text>
|
||||
@:</view>
|
||||
@:<u-form-item v-for="(item,i) in @(@item.LowerChildTableName)()" :key="i" :label="item.name">
|
||||
@:<p>{{item.val}}</p>
|
||||
@:</u-form-item>
|
||||
@:</view>
|
||||
}
|
||||
@:</view>
|
||||
break;
|
||||
@*按钮*@
|
||||
case "button":
|
||||
@:<u-form-item>
|
||||
@:<jnpf-button buttonText="@(@item.ButtonText)" align="@(@item.Align)" type="@(@item.Type)"></jnpf-button>
|
||||
@:</u-form-item>
|
||||
break;
|
||||
@*提示*@
|
||||
case "alert":
|
||||
@:<u-form-item>
|
||||
@:<jnpf-alert-tips type="@(@item.Type)" title="@(@item.Title)" tagIcon='icon-ym icon-ym-generator-alert' :showIcon="@(@item.ShowIcon)" :closable="false"></jnpf-alert-tips>
|
||||
@:</u-form-item>
|
||||
break;
|
||||
@*链接*@
|
||||
case "link":
|
||||
@:<u-form-item>
|
||||
@:<jnpf-link content="@(@item.Content)" href="@(@item.Href)" target='@(@item.Target)' :textStyle='@(@item.TextStyle)' />
|
||||
@:</u-form-item>
|
||||
break;
|
||||
default:
|
||||
@switch(item.jnpfKey)
|
||||
{
|
||||
@*关联表单属性*@
|
||||
case "relationFormAttr":
|
||||
@*弹窗选择属性*@
|
||||
case "popupAttr":
|
||||
@*富文本框*@
|
||||
case "editor":
|
||||
@if(Model.UseFormPermission)
|
||||
{
|
||||
@:<u-form-item label="@(@item.Label)" prop="@(@item.RelationField)" v-if="$setPermission.hasFormP('@(@item.LowerName)',menuIds)">
|
||||
}else{
|
||||
@:<u-form-item label="@(@item.Label)" prop="@(@item.RelationField)">
|
||||
}
|
||||
break;
|
||||
case "comInput":
|
||||
case "textarea":
|
||||
case "numInput":
|
||||
case "switch":
|
||||
case "radio":
|
||||
case "checkbox":
|
||||
case "select":
|
||||
case "cascader":
|
||||
case "address":
|
||||
case "treeSelect":
|
||||
case "uploadImg":
|
||||
case "uploadFz":
|
||||
case "rate":
|
||||
case "slider":
|
||||
case "time":
|
||||
case "date":
|
||||
case "comSelect":
|
||||
case "depSelect":
|
||||
case "posSelect":
|
||||
case "userSelect":
|
||||
case "groupSelect":
|
||||
case "roleSelect":
|
||||
case "relationForm":
|
||||
case "popupSelect":
|
||||
case "popupTableSelect":
|
||||
case "colorPicker":
|
||||
@if(Model.UseFormPermission)
|
||||
{
|
||||
@:<u-form-item label="@(@item.Label)" prop="@(@item.LowerName)" @(item.jnpfKey == "uploadImg"? "class=\"preview-image-box\" " : "")@(@item.Required) v-if="$setPermission.hasFormP('@(@item.LowerName)',menuIds)">
|
||||
}else{
|
||||
@:<u-form-item label="@(@item.Label)" prop="@(@item.LowerName)" @(item.jnpfKey == "uploadImg"? "class=\"preview-image-box\" " : "")@(@item.Required)>
|
||||
}
|
||||
break;
|
||||
default:
|
||||
@if(Model.UseFormPermission)
|
||||
{
|
||||
@:<u-form-item label="@(@item.Label)" prop="@(@item.LowerName)" @(@item.NoShow) v-if="$setPermission.hasFormP('@(@item.LowerName)',menuIds)">
|
||||
}else{
|
||||
@:<u-form-item label="@(@item.Label)" prop="@(@item.LowerName)" @(@item.NoShow)>
|
||||
}
|
||||
break;
|
||||
}
|
||||
@switch(item.jnpfKey)
|
||||
{
|
||||
case "colorPicker":
|
||||
@:<jnpf-colorPicker v-model="@(@Model.FormModel).@(@item.LowerName)" disabled @(item.ColorFormat)></jnpf-colorPicker>
|
||||
break;
|
||||
@*富文本框*@
|
||||
case "editor":
|
||||
@:<view class="editor-box" v-html="" @(@item.vModel)></view>
|
||||
break;
|
||||
case "uploadImg":
|
||||
@:<image class="u-preview-image" v-for="(cItem,ci) in @(@Model.FormModel).@(@item.LowerName)" :key="ci" :src="define.baseURL+cItem.url" mode="aspectFill" @@tap.stop="doPreviewImage(define.baseURL+cItem.url,@(@Model.FormModel).@(@item.LowerName))"></image>
|
||||
break;
|
||||
case "uploadFz":
|
||||
@:<jnpf-file v-model="@(@Model.FormModel).@(@item.LowerName)" :noShowBtn="false" disabled @(@item.Limit)@(@item.SizeUnit)@(@item.FileSize)@(@item.Accept)/>
|
||||
break;
|
||||
case "rate":
|
||||
@:<u-rate v-model="@(@Model.FormModel).@(@item.LowerName)" size="40" :count="@(@item.Count)" @(@item.Readonly)@(@item.AllowHalf)@(@item.Disabled)></u-rate>
|
||||
break;
|
||||
case "slider":
|
||||
@:<u-slider v-model="@(@Model.FormModel).@(@item.LowerName)" @(@item.Step)@(@item.Min)@(@item.Max)@(@item.Disabled)style="width: 100%;" disabled>
|
||||
@:<view class="slider-badge-button">{{@(@Model.FormModel).@(@item.LowerName)}}</view>
|
||||
@:</u-slider>
|
||||
break;
|
||||
case "relationForm":
|
||||
@:<view class="jnpf-detail-text" style="color:rgb(41, 121, 255)" @@click.native="toDetail(@(Model.FormModel).@(item.LowerName),'@(item.ModelId)')">{{@(Model.FormModel).@(item.LowerName)}}</view>
|
||||
break;
|
||||
default:
|
||||
@:<view class="jnpf-detail-text">{{@(@Model.FormModel).@(@item.LowerName)}}</view>
|
||||
break;
|
||||
}
|
||||
@:</u-form-item>
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@{
|
||||
void GenCodeAppFormChildrenControls(ICollection<FormControlDesignModel> childrenList)
|
||||
{
|
||||
|
||||
@foreach(var item in childrenList)
|
||||
{
|
||||
@switch(item.jnpfKey)
|
||||
{
|
||||
case "groupTitle":
|
||||
@:<jnpf-group content="@(@item.Content)" content-position="@(@item.Contentposition)"></jnpf-group>
|
||||
break;
|
||||
case "divider":
|
||||
@:<u-divider half-width="200" height="80">@(@item.Default)</u-divider>
|
||||
break;
|
||||
case "card":
|
||||
case "row":
|
||||
@:<view class="jnpf-card">
|
||||
@:<view class="jnpf-card-cap u-line-1">@(@item.Content)</view>
|
||||
@{GenCodeAppFormChildrenControls(item.Children);}
|
||||
@:</view>
|
||||
break;
|
||||
case "tab":
|
||||
@:<view prop="@(@item.LowerName)">
|
||||
@:<u-tabs :is-scroll="false" :list="@(@item.LowerName)Title" name="title" :current="@(@item.LowerName)Current" @@change="@(@item.LowerName)Change"></u-tabs>
|
||||
@:<view>
|
||||
@{ int m = 0;}
|
||||
@foreach(var collapse in item.Children)
|
||||
{
|
||||
@:<view v-if="@(@m) == @(@item.LowerName)Current">
|
||||
@{GenCodeAppFormChildrenControls(collapse.Children);}
|
||||
@:</view>
|
||||
@{m++;}
|
||||
}
|
||||
@:</view>
|
||||
@:</view>
|
||||
break;
|
||||
case "collapse":
|
||||
@:<view prop="@(@item.LowerName)">
|
||||
@:<template>
|
||||
@:<view class="collapse">
|
||||
@:<u-collapse v-model="@(@item.Name)" :accordion="@(@item.Accordion)" @@change="@(item.Name)Change" ref="@(item.Name)Ref">
|
||||
@foreach(var collapse in item.Children)
|
||||
{
|
||||
@:<u-collapse-item class="collapse-item" name="@(@collapse.Name)" title="@(@collapse.Title)">
|
||||
@{GenCodeAppFormChildrenControls(collapse.Children);}
|
||||
@:</u-collapse-item>
|
||||
}
|
||||
@:</u-collapse>
|
||||
@:</view>
|
||||
@:</template>
|
||||
@:</view>
|
||||
@{collapseArray.Add(item.Name);}
|
||||
break;
|
||||
case "button":
|
||||
@:<u-form-item>
|
||||
@:<jnpf-button buttonText="@(@item.ButtonText)" align="@(@item.Align)" type="@(@item.Type)"></jnpf-button>
|
||||
@:</u-form-item>
|
||||
break;
|
||||
case "alert":
|
||||
@:<u-form-item>
|
||||
@:<jnpf-alert-tips type="@(@item.Type)" title="@(@item.Title)" tagIcon='icon-ym icon-ym-generator-alert' :showIcon="@(@item.ShowIcon)" :closable="false"></jnpf-alert-tips>
|
||||
@:</u-form-item>
|
||||
break;
|
||||
case "link":
|
||||
@:<u-form-item>
|
||||
@:<jnpf-link content="@(@item.Content)" href="@(@item.Href)" target='@(@item.Target)' :textStyle='@(@item.TextStyle)' />
|
||||
@:</u-form-item>
|
||||
break;
|
||||
case "table":
|
||||
@if(Model.UseFormPermission)
|
||||
{
|
||||
@:<view class="jnpf-table" v-if="$setPermission.hasFormP('@(@item.Name)',menuIds)">
|
||||
}else{
|
||||
@:<view class="jnpf-table">
|
||||
}
|
||||
@:<view class="jnpf-table-item" v-for="(item,i) in @(@Model.FormModel).@(@item.Name)" :key="i">
|
||||
@:<view class="jnpf-table-item-title u-flex u-row-between">
|
||||
@:<text class="jnpf-table-item-title-num">@(@item.Label)({{i+1}})</text>
|
||||
@:<view class="jnpf-table-item-title-action" v-if="@(@Model.FormModel).@(@item.Name).length > 1 && @(@item.AddType) == 0" @@click="del@(@item.ChildTableName)(i)">删除</view>
|
||||
@:</view>
|
||||
@foreach(var children in item.Children)
|
||||
{
|
||||
@switch(children.jnpfKey)
|
||||
{
|
||||
case "relationFormAttr":
|
||||
case "popupAttr":
|
||||
@if(Model.UseFormPermission)
|
||||
{
|
||||
@:<u-form-item label="@(@children.Label)" prop="@(@children.RelationField)" v-if="$setPermission.hasFormP('@(@item.Name + "-" +@children.LowerName)', menuIds)">
|
||||
}else{
|
||||
@:<u-form-item label="@(@children.Label)" prop="@(@children.RelationField)">
|
||||
}
|
||||
break;
|
||||
default:
|
||||
@if(Model.UseFormPermission)
|
||||
{
|
||||
@:<u-form-item label="@(@children.Label)" prop="@(@children.LowerName)" @(children.jnpfKey == "uploadImg"? "class=\"preview-image-box\" " : "")@(@children.Required)v-if="$setPermission.hasFormP('@(@item.Name + "-" +@children.LowerName)', menuIds)">
|
||||
}else{
|
||||
@:<u-form-item label="@(@children.Label)" prop="@(@children.LowerName)" @(children.jnpfKey == "uploadImg"? "class=\"preview-image-box\" " : "")@(@children.Required)>
|
||||
}
|
||||
break;
|
||||
}
|
||||
@switch(children.jnpfKey)
|
||||
{
|
||||
case "uploadFz":
|
||||
@:<jnpf-file v-model="@(@Model.FormModel).@(@item.Name)[i].@(@children.LowerName)" :noShowBtn="false" disabled @(@children.Limit)@(@children.SizeUnit)@(@children.FileSize)@(@children.Accept)/>
|
||||
break;
|
||||
case "uploadImg":
|
||||
@:<image class="u-preview-image" v-for="(cItem,ci) in @(@Model.FormModel).@(@item.Name)[i].@(@children.LowerName)" :key="ci" :src="define.baseURL+cItem.url" mode="aspectFill" @@tap.stop="doPreviewImage(define.baseURL+cItem.url,@(@Model.FormModel).@(@item.Name)[i].@(@children.LowerName))"></image>
|
||||
break;
|
||||
@*关联表单*@
|
||||
case "relationForm":
|
||||
@:<view class="jnpf-detail-text" style="color:rgb(41, 121, 255)" @@click.native="toDetail(@(Model.FormModel).@(item.Name)[i].@(children.LowerName),'@(children.ModelId)')">{{@(@Model.FormModel).@(@item.Name)[i].@(@children.LowerName)}}</view>
|
||||
break;
|
||||
default:
|
||||
@:<view class="jnpf-detail-text">{{@(@Model.FormModel).@(@item.Name)[i].@(@children.LowerName)}}</view>
|
||||
break;
|
||||
}
|
||||
@:</u-form-item>
|
||||
}
|
||||
@:</view>
|
||||
@if(item.ShowSummary)
|
||||
{
|
||||
@:<view class="jnpf-table-item">
|
||||
@:<view class="jnpf-table-item-title u-flex u-row-between">
|
||||
@:<text class="jnpf-table-item-title-num">@(@item.Label)合计</text>
|
||||
@:</view>
|
||||
@:<u-form-item v-for="(item,i) in @(@item.LowerChildTableName)()" :key="i" :label="item.name">
|
||||
@:<p>{{item.val}}</p>
|
||||
@:</u-form-item>
|
||||
@:</view>
|
||||
}
|
||||
@:</view>
|
||||
break;
|
||||
default:
|
||||
@switch(item.jnpfKey)
|
||||
{
|
||||
@*关联表单属性*@
|
||||
case "relationFormAttr":
|
||||
@*弹窗选择属性*@
|
||||
case "popupAttr":
|
||||
@*富文本框*@
|
||||
case "editor":
|
||||
@if(Model.UseFormPermission)
|
||||
{
|
||||
@:<u-form-item label="@(@item.Label)" prop="@(@item.RelationField)" v-if="$setPermission.hasFormP('@(@item.LowerName)',menuIds)">
|
||||
}else{
|
||||
@:<u-form-item label="@(@item.Label)" prop="@(@item.RelationField)">
|
||||
}
|
||||
break;
|
||||
case "comInput":
|
||||
case "textarea":
|
||||
case "numInput":
|
||||
case "switch":
|
||||
case "radio":
|
||||
case "checkbox":
|
||||
case "select":
|
||||
case "cascader":
|
||||
case "address":
|
||||
case "treeSelect":
|
||||
case "uploadImg":
|
||||
case "uploadFz":
|
||||
case "rate":
|
||||
case "slider":
|
||||
case "time":
|
||||
case "date":
|
||||
case "comSelect":
|
||||
case "depSelect":
|
||||
case "posSelect":
|
||||
case "userSelect":
|
||||
case "groupSelect":
|
||||
case "roleSelect":
|
||||
case "relationForm":
|
||||
case "popupSelect":
|
||||
case "popupTableSelect":
|
||||
case "colorPicker":
|
||||
@if(Model.UseFormPermission)
|
||||
{
|
||||
@:<u-form-item label="@(@item.Label)" prop="@(@item.LowerName)" @(item.jnpfKey == "uploadImg"? "class=\"preview-image-box\" " : "")@(@item.Required) v-if="$setPermission.hasFormP('@(@item.LowerName)',menuIds)">
|
||||
}else{
|
||||
@:<u-form-item label="@(@item.Label)" prop="@(@item.LowerName)" @(item.jnpfKey == "uploadImg"? "class=\"preview-image-box\" " : "")@(@item.Required)>
|
||||
}
|
||||
break;
|
||||
default:
|
||||
@if(Model.UseFormPermission)
|
||||
{
|
||||
@:<u-form-item label="@(@item.Label)" prop="@(@item.LowerName)" @(@item.NoShow) v-if="$setPermission.hasFormP('@(@item.LowerName)',menuIds)">
|
||||
}else{
|
||||
@:<u-form-item label="@(@item.Label)" prop="@(@item.LowerName)" @(@item.NoShow)>
|
||||
}
|
||||
break;
|
||||
}
|
||||
@switch(item.jnpfKey)
|
||||
{
|
||||
case "colorPicker":
|
||||
@:<jnpf-colorPicker v-model="@(@Model.FormModel).@(@item.LowerName)" disabled @(item.ColorFormat)></jnpf-colorPicker>
|
||||
break;
|
||||
@*富文本框*@
|
||||
case "editor":
|
||||
@:<view class="editor-box" v-html="" @(@item.vModel)></view>
|
||||
break;
|
||||
case "uploadImg":
|
||||
@:<image class="u-preview-image" v-for="(cItem,ci) in @(@Model.FormModel).@(@item.LowerName)" :key="ci" :src="define.baseURL+cItem.url" mode="aspectFill" @@tap.stop="doPreviewImage(define.baseURL+cItem.url,@(@Model.FormModel).@(@item.LowerName))"></image>
|
||||
break;
|
||||
case "uploadFz":
|
||||
@:<jnpf-file v-model="@(@Model.FormModel).@(@item.LowerName)" :noShowBtn="false" disabled @(@item.Limit)@(@item.SizeUnit)@(@item.FileSize)@(@item.Accept)/>
|
||||
break;
|
||||
case "rate":
|
||||
@:<u-rate v-model="@(@Model.FormModel).@(@item.LowerName)" size="40" :count="@(@item.Count)" @(@item.Readonly)@(@item.AllowHalf)@(@item.Disabled)></u-rate>
|
||||
break;
|
||||
case "slider":
|
||||
@:<u-slider v-model="@(@Model.FormModel).@(@item.LowerName)" @(@item.Step)@(@item.Min)@(@item.Max)@(@item.Disabled)style="width: 100%;" disabled>
|
||||
@:<view class="slider-badge-button">{{@(@Model.FormModel).@(@item.LowerName)}}</view>
|
||||
@:</u-slider>
|
||||
break;
|
||||
case "relationForm":
|
||||
@:<view class="jnpf-detail-text" style="color:rgb(41, 121, 255)" @@click.native="toDetail(@(Model.FormModel).@(item.LowerName),'@(item.ModelId)')">{{@(Model.FormModel).@(item.LowerName)}}</view>
|
||||
break;
|
||||
default:
|
||||
@:<view class="jnpf-detail-text">{{@(@Model.FormModel).@(@item.LowerName)}}</view>
|
||||
break;
|
||||
}
|
||||
@:</u-form-item>
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user