添加项目文件。
This commit is contained in:
803
apihost/Tnb.API.Entry/wwwroot/Template/editorIndex.vue.vm
Normal file
803
apihost/Tnb.API.Entry/wwwroot/Template/editorIndex.vue.vm
Normal file
@@ -0,0 +1,803 @@
|
||||
<template>
|
||||
<div class="JNPF-common-layout">
|
||||
<div class="JNPF-common-layout-center">
|
||||
<el-row class="JNPF-common-search-box" :gutter="16">
|
||||
<el-form @@submit.native.prevent="">
|
||||
@foreach (var item in @Model.SearchColumnDesign)
|
||||
{
|
||||
@if(item.Index == 3)
|
||||
{
|
||||
@:<template v-if="showAll">
|
||||
}
|
||||
@:<el-col :span="6">
|
||||
@:<el-form-item label="@(@item.Label)">
|
||||
@if(item.QueryControlsKey != null)
|
||||
{
|
||||
@switch(item.QueryControlsKey)
|
||||
{
|
||||
case "inputList":
|
||||
@:<el-input v-model="query.@(@item.Name)" placeholder="@(@item.Label)" @(@item.Clearable)/>
|
||||
break;
|
||||
case "dateList":
|
||||
@:<el-date-picker v-model="query.@(@item.Name)" start-placeholder="开始日期" end-placeholder="结束日期" value-format="timestamp" format="yyyy-MM-dd" type="daterange" />
|
||||
break;
|
||||
case "selectList":
|
||||
@:<el-select v-model="query.@(@item.Name)" placeholder="@(@item.Label)" @(@item.Clearable)>
|
||||
@:<el-option v-for="(item, index) in @(@item.OriginalName)Options" :key="index" :label="item.@(@item.Props.label)" :value="item.@(item.Props.value)" />
|
||||
@:</el-select>
|
||||
break;
|
||||
case "timePickerList":
|
||||
@:<el-time-picker v-model="query.@(@item.Name)" start-placeholder="开始时间" end-placeholder="结束时间" @(@item.Clearable)value-format="@(@item.ValueFormat)" format="@(@item.Format)" is-range />
|
||||
break;
|
||||
case "numRangeList":
|
||||
@:<num-range v-model="query.@(@item.Name)"></num-range>
|
||||
break;
|
||||
case "datePickerList":
|
||||
@:<el-date-picker v-model="query.@(@item.Name)" type="@(@item.Type)range" value-format="@(@item.ValueFormat)" format="@(@item.Format)" start-placeholder="开始日期" end-placeholder="结束日期">
|
||||
@:</el-date-picker>
|
||||
break;
|
||||
case "userSelectList":
|
||||
@:<userSelect v-model="query.@(@item.Name)" placeholder="请选择@(@item.Label)" @(@item.SelectType)@(@item.IsCustomSelect ? @item.AbleDepIds + @item.AblePosIds + @item.AbleUserIds + @item.AbleRoleIds + @item.AbleGroupIds : "")/>
|
||||
break;
|
||||
case "usersSelectList":
|
||||
@:<usersSelect v-model="query.@(@item.Name)" placeholder="请选择@(@item.Label)" @(@item.SelectType)@(@item.IsCustomSelect ? @item.AbleIds : "")/>
|
||||
break;
|
||||
case "organizeList":
|
||||
@:<depSelect v-model="query.@(@item.Name)" placeholder="请选择@(@item.Label)" :lastLevel="false" />
|
||||
break;
|
||||
case "comSelectList":
|
||||
@:<comSelect v-model="query.@(@item.Name)" placeholder="请选择@(@item.Label)" />
|
||||
break;
|
||||
case "depSelectList":
|
||||
@:<depSelect v-model="query.@(@item.Name)" placeholder="请选择@(@item.Label)" @(@item.SelectType)@(@item.IsCustomSelect ? @item.AbleDepIds + @item.AblePosIds + @item.AbleUserIds + @item.AbleRoleIds + @item.AbleGroupIds : "")/>
|
||||
break;
|
||||
case "posSelectList":
|
||||
@:<posSelect v-model="query.@(@item.Name)" placeholder="请选择@(@item.Label)" @(@item.SelectType)@(@item.IsCustomSelect ? @item.AbleDepIds + @item.AblePosIds + @item.AbleUserIds + @item.AbleRoleIds + @item.AbleGroupIds : "")/>
|
||||
break;
|
||||
case "useCascaderList":
|
||||
@:<el-cascader v-model="query.@(@item.Name)" :options="@(@item.OriginalName)Options" @(@item.Clearable):show-all-levels="@(@item.ShowAllLevels)" :props="@(@item.OriginalName)Props" placeholder="请选择@(@item.Label)"></el-cascader>
|
||||
break;
|
||||
case "JNPFAddressList":
|
||||
@:<JNPFAddress v-model="query.@(@item.Name)" placeholder="请选择@(@item.Label)" :level="@(@item.Level)" @(@item.Clearable)/>
|
||||
break;
|
||||
case "treeSelectList":
|
||||
@:<JNPF-TreeSelect v-model="query.@(@item.Name)" placeholder="请选择@(@item.Label)" :options="@(@item.OriginalName)Options" :props='@(@item.OriginalName)Props' @(@item.Clearable)/>
|
||||
break;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
@:<@(@item.Tag) v-model="query.@(@item.Name)" placeholder="@(@item.Label)" @(@item.Clearable)/>
|
||||
}
|
||||
@:</el-form-item>
|
||||
@:</el-col>
|
||||
}
|
||||
@if(Model.SearchColumnDesign.Count >= 4)
|
||||
{
|
||||
@:</template>
|
||||
}
|
||||
<el-col :span="6">
|
||||
<el-form-item>
|
||||
<el-button type="primary" icon="el-icon-search" @@click="search()">查询</el-button>
|
||||
<el-button icon="el-icon-refresh-right" @@click="reset()">重置</el-button>
|
||||
@if(Model.SearchColumnDesign.Count >= 4)
|
||||
{
|
||||
@:<el-button type="text" icon="el-icon-arrow-down" @@click="showAll=true" v-if="!showAll">展开</el-button>
|
||||
@:<el-button type="text" icon="el-icon-arrow-up" @@click="showAll=false" v-else>收起</el-button>
|
||||
}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-form>
|
||||
</el-row>
|
||||
<div class="JNPF-common-layout-main JNPF-flex-main">
|
||||
<div class="JNPF-common-head">
|
||||
<div>
|
||||
@foreach (var item in @Model.TopButtonDesign)
|
||||
{
|
||||
@:<el-button type="@(@item.Type)" icon="@(@item.Icon)" @@click="@(@item.Method)"@(@Model.UseBtnPermission ? " v-has=\"'btn_" + @item.Value + "'\"":"")>@(@item.Label)</el-button>
|
||||
}
|
||||
</div>
|
||||
<div class="JNPF-common-head-right">
|
||||
@if(Model.HasSuperQuery)
|
||||
{
|
||||
@:<el-tooltip content="高级查询" placement="top" >
|
||||
@:<el-link icon="icon-ym icon-ym-filter JNPF-common-head-icon" :underline="false" @@click="openSuperQuery()" />
|
||||
@:</el-tooltip>
|
||||
}
|
||||
<el-tooltip effect="dark" content="刷新" placement="top">
|
||||
<el-link icon="icon-ym icon-ym-Refresh JNPF-common-head-icon" :underline="false" @@click="reset()" />
|
||||
</el-tooltip>
|
||||
</div>
|
||||
</div>
|
||||
<JNPF-table v-loading="listLoading" :data="list" @(@Model.IsSort ? "@sort-change='sortChange' ":"")@(@Model.IsBatchRemoveDel ? "has-c @selection-change='handleSelectionChange' ":"")>
|
||||
@{ GenerateFormControls(); }
|
||||
<el-table-column label="操作" fixed="right" width="@(@Model.ColumnButtonDesign.Count * 50)">
|
||||
<template slot-scope="scope">
|
||||
<template v-if="scope.row.rowEdit">
|
||||
<el-button size="mini" type="text" @@click="saveForRowEdit(scope.row)">保存</el-button>
|
||||
<el-button size="mini" type="text" class="JNPF-table-delBtn" @@click="cancelRowEdit(scope.row,scope.$index)">取消</el-button>
|
||||
</template>
|
||||
<template v-else>
|
||||
@foreach (var item in @Model.ColumnButtonDesign)
|
||||
{
|
||||
@:<el-button type="text" @@click="@(@item.Method)" @(@item.Type)@(@Model.UseBtnPermission ? " v-has=\"'btn_" + @item.Value + "'\"":"")>@(@item.Label)</el-button>
|
||||
}
|
||||
</template>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</JNPF-table>
|
||||
@if(Model.HasPage)
|
||||
{
|
||||
@:<pagination :total="total" :page.sync="listQuery.currentPage" :limit.sync="listQuery.pageSize" @@pagination="initData" />
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
<ExportBox v-if="exportBoxVisible" ref="ExportBox" @@download="download" />
|
||||
@if(Model.IsUpload)
|
||||
{
|
||||
@:<ImportBox v-if="uploadBoxVisible" ref="UploadBox" @@refresh="initData" />
|
||||
}
|
||||
@if(Model.IsDetail)
|
||||
{
|
||||
@:<Detail v-if="detailVisible" ref="Detail" @@refresh="detailVisible=false"/>
|
||||
}
|
||||
@if(Model.HasSuperQuery)
|
||||
{
|
||||
@:<SuperQuery v-if="superQueryVisible" ref="SuperQuery" :columnOptions="superQueryJson" @@superQuery="superQuery" />
|
||||
}
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import request from '@@/utils/request'
|
||||
import columnList from './columnList'
|
||||
import { getDictionaryDataSelector } from '@@/api/systemData/dictionary'
|
||||
import { getDataInterfaceRes } from '@@/api/systemData/dataInterface'
|
||||
@if(Model.IsDownload)
|
||||
{
|
||||
@:import ExportBox from '@@/components/ExportBox'
|
||||
}
|
||||
@if(Model.IsDetail){
|
||||
@:import Detail from './Detail'
|
||||
}
|
||||
@if(Model.HasSuperQuery)
|
||||
{
|
||||
@:import SuperQuery from '@@/components/SuperQuery'
|
||||
@:import superQueryJson from './superQueryJson'
|
||||
}
|
||||
export default {
|
||||
components: { @(@Model.IsDownload ? "ExportBox, ":"")@(@Model.IsDetail ? "Detail, ":"")@(@Model.HasSuperQuery ? "SuperQuery, " : "") },
|
||||
data() {
|
||||
return {
|
||||
columnList,
|
||||
cacheList: [],
|
||||
@if(Model.IsUpload)
|
||||
{
|
||||
@:uploadBoxVisible:false,
|
||||
}
|
||||
@if(Model.IsDetail)
|
||||
{
|
||||
@:detailVisible: false,
|
||||
}
|
||||
@if(Model.HasSuperQuery)
|
||||
{
|
||||
@:superQueryVisible: false,
|
||||
@:superQueryJson,
|
||||
}
|
||||
@if(Model.SearchColumnDesign.Count >= 3)
|
||||
{
|
||||
@:showAll: false,
|
||||
}
|
||||
query: {
|
||||
@foreach (var item in @Model.SearchColumnDesign)
|
||||
{
|
||||
@:@(@item.Name) : undefined,
|
||||
}
|
||||
},
|
||||
list: [],
|
||||
listLoading: true,
|
||||
multipleSelection: [],
|
||||
total: 0,
|
||||
listQuery: {
|
||||
@if(Model.HasPage)
|
||||
{
|
||||
@:currentPage: 1,
|
||||
@:pageSize: @(@Model.PageSize),
|
||||
}
|
||||
sort: "desc",
|
||||
sidx: "",
|
||||
@if(Model.HasSuperQuery)
|
||||
{
|
||||
@:superQueryJson: ''
|
||||
}
|
||||
},
|
||||
formVisible: false,
|
||||
exportBoxVisible: false,
|
||||
@foreach(var item in Model.OptionsList)
|
||||
{
|
||||
@switch(item.jnpfKey)
|
||||
{
|
||||
case "collapse":
|
||||
case "tab":
|
||||
break;
|
||||
default:
|
||||
@if(item.IsProps)
|
||||
{
|
||||
@:@(@item.LowerName)Props:@(item.Props),
|
||||
}
|
||||
@:@item.Content
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
menuId() {
|
||||
return this.$route.meta.modelId || ''
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.initData()
|
||||
@foreach(var item in @Model.OptionsList)
|
||||
{
|
||||
@if(!item.IsStatic && (item.IsChildren || item.IsIndex))
|
||||
{
|
||||
@:this.get@(@item.LowerName)Options();
|
||||
}
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
@if(Model.IsUpload)
|
||||
{
|
||||
@:handelUpload(){
|
||||
@:this.uploadBoxVisible = true
|
||||
@:this.$nextTick(() => {
|
||||
@:this.$refs.UploadBox.init("",'@(@Model.NameSpace)/@(@Model.ClassName)')
|
||||
@:})
|
||||
@:},
|
||||
}
|
||||
@if(Model.IsDetail)
|
||||
{
|
||||
@:goDetail(id){
|
||||
@:this.detailVisible = true
|
||||
@:this.$nextTick(() => {
|
||||
@:this.$refs.Detail.init(id)
|
||||
@:})
|
||||
@:},
|
||||
}
|
||||
@if(Model.HasSuperQuery)
|
||||
{
|
||||
@:openSuperQuery() {
|
||||
@:this.superQueryVisible = true
|
||||
@:this.$nextTick(() => {
|
||||
@:this.$refs.SuperQuery.init()
|
||||
@:})
|
||||
@:},
|
||||
@:superQuery(queryJson) {
|
||||
@:this.listQuery.superQueryJson = this.getSuperQueryJson(queryJson)
|
||||
@:this.listQuery.currentPage = 1
|
||||
@:this.initData()
|
||||
@:},
|
||||
@:getSuperQueryJson(queryJson){
|
||||
@:if (!queryJson) return ''
|
||||
@:let queryJsonObj=JSON.parse(queryJson)
|
||||
@:let conditionJsonObj=JSON.parse(queryJsonObj.conditionJson)
|
||||
@:let newConditionJsonObj=conditionJsonObj.map(o=>{
|
||||
@:o.multiple=o.attr.multiple
|
||||
@:delete o.attr
|
||||
@:return o
|
||||
@:})
|
||||
@:queryJsonObj.conditionJson=newConditionJsonObj
|
||||
@:return JSON.stringify(queryJsonObj)
|
||||
@:},
|
||||
}
|
||||
@foreach(var item in @Model.OptionsList)
|
||||
{
|
||||
@if(!item.IsStatic && item.DictionaryType != null)
|
||||
{
|
||||
@:get@(@item.LowerName)Options(){
|
||||
switch(@item.DataType)
|
||||
{
|
||||
case "dictionary":
|
||||
@:getDictionaryDataSelector('@(@item.DictionaryType)').then(res => {
|
||||
@:this.@(@item.LowerName)Options = res.data.list
|
||||
break;
|
||||
case "dynamic":
|
||||
@:getDataInterfaceRes('@(@item.DictionaryType)').then(res => {
|
||||
@:let data = res.data
|
||||
@:this.@(@item.LowerName)Options = data
|
||||
break;
|
||||
}
|
||||
@:});
|
||||
@:},
|
||||
}
|
||||
}
|
||||
@if(Model.IsSort)
|
||||
{
|
||||
@:sortChange({ column, prop, order }) {
|
||||
@:this.listQuery.sort = order == 'ascending' ? 'asc' : 'desc'
|
||||
@:this.listQuery.sidx = !order ? '' : prop
|
||||
@:this.initData()
|
||||
@:},
|
||||
}
|
||||
initData() {
|
||||
this.listLoading = true;
|
||||
let _query = {
|
||||
...this.listQuery,
|
||||
...this.query,
|
||||
menuId : this.menuId,
|
||||
};
|
||||
let query = {}
|
||||
for (let key in _query) {
|
||||
if (Array.isArray(_query[key])) {
|
||||
query[key] = _query[key].join()
|
||||
} else {
|
||||
query[key] = _query[key]
|
||||
}
|
||||
}
|
||||
request({
|
||||
url: `/api/@(@Model.NameSpace)/@(@Model.ClassName)/List`,
|
||||
method: 'POST',
|
||||
data: query
|
||||
}).then(res => {
|
||||
this.list = @(Model.HasPage ? "res.data.list" : "res.data").map(o =>({
|
||||
...o,
|
||||
rowEdit: false
|
||||
}));
|
||||
this.cacheList = JSON.parse(JSON.stringify(this.list))
|
||||
@if(Model.HasPage)
|
||||
{
|
||||
@:this.total = res.data.pagination.total
|
||||
}
|
||||
this.listLoading = false
|
||||
})
|
||||
},
|
||||
@if(Model.IsRemoveDel)
|
||||
{
|
||||
@:handleDel(id) {
|
||||
@:this.$confirm('此操作将永久删除该数据, 是否继续?', '提示', {
|
||||
@:type: 'warning'
|
||||
@:}).then(() => {
|
||||
@:request({
|
||||
@:url: `/api/@(@Model.NameSpace)/@(@Model.ClassName)/${id}`,
|
||||
@:method: 'DELETE'
|
||||
@:}).then(res => {
|
||||
@:this.$message({
|
||||
@:type: 'success',
|
||||
@:message: res.msg,
|
||||
@:onClose: () => {
|
||||
@:this.initData()
|
||||
@:}
|
||||
@:});
|
||||
@:})
|
||||
@:}).catch(() => {
|
||||
@:});
|
||||
@:},
|
||||
}
|
||||
@if(Model.IsBatchRemoveDel)
|
||||
{
|
||||
@:handleSelectionChange(val) {
|
||||
@:const res = val.map(item => item.@(@Model.PrimaryKey))
|
||||
@:this.multipleSelection = res
|
||||
@:},
|
||||
@:handleBatchRemoveDel() {
|
||||
@:if (!this.multipleSelection.length) {
|
||||
@:this.$message({
|
||||
@:type: 'error',
|
||||
@:message: '请选择一条数据',
|
||||
@:duration: 1500,
|
||||
@:})
|
||||
@:return
|
||||
@:}
|
||||
@:const ids = this.multipleSelection
|
||||
@:this.$confirm('您确定要删除这些数据吗, 是否继续?', '提示', {
|
||||
@:type: 'warning'
|
||||
@:}).then(() => {
|
||||
@:request({
|
||||
@:url: `/api/@(@Model.NameSpace)/@(@Model.ClassName)/batchRemove`,
|
||||
@:method: 'POST',
|
||||
@:data: ids ,
|
||||
@:}).then(res => {
|
||||
@:this.$message({
|
||||
@:type: 'success',
|
||||
@:message: res.msg,
|
||||
@:onClose: () => {
|
||||
@:this.initData()
|
||||
@:}
|
||||
@:});
|
||||
@:})
|
||||
@:}).catch(() => { })
|
||||
@:},
|
||||
}
|
||||
addOrUpdateHandle() {
|
||||
let item = {
|
||||
rowEdit: true,
|
||||
@foreach(var children in Model.FormList)
|
||||
{
|
||||
@switch(children.jnpfKey)
|
||||
{
|
||||
case "checkbox":
|
||||
case "cascader":
|
||||
case "uploadImg":
|
||||
case "uploadFz":
|
||||
case "address":
|
||||
case "comSelect":
|
||||
@if(children.IsInlineEditor)
|
||||
{
|
||||
@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.IsInlineEditor)
|
||||
{
|
||||
@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.IsInlineEditor)
|
||||
{
|
||||
if(@children.DefaultValue == null || @children.DefaultValue.ToString() == "")
|
||||
{
|
||||
@:@(@children.LowerName):undefined,
|
||||
}else{
|
||||
@:@(@children.LowerName):@(@children.DefaultValue),
|
||||
}
|
||||
}
|
||||
break;
|
||||
case "switch":
|
||||
@if(children.IsInlineEditor)
|
||||
{
|
||||
@:@(@children.LowerName):@(@children.DefaultValue ? "1" : "0"),
|
||||
}
|
||||
break;
|
||||
default:
|
||||
@if(children.IsInlineEditor)
|
||||
{
|
||||
if(@children.DefaultValue == null || @children.DefaultValue.ToString() == "")
|
||||
{
|
||||
@:@(@children.LowerName):undefined,
|
||||
}else{
|
||||
@:@(@children.LowerName):"@(@children.DefaultValue)",
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
this.list.unshift(item)
|
||||
},
|
||||
@if(Model.IsDownload)
|
||||
{
|
||||
@:exportData() {
|
||||
@:this.exportBoxVisible = true
|
||||
@:this.$nextTick(() => {
|
||||
@:this.$refs.ExportBox.init(this.columnList)
|
||||
@:})
|
||||
@:},
|
||||
@:download(data) {
|
||||
@:let query = {dataType:data.dataType, selectKey:data.selectKey.join(','), ...this.listQuery, ...this.query, menuId:this.menuId}
|
||||
@:request({
|
||||
@:url: `/api/@(@Model.NameSpace)/@(@Model.ClassName)/Actions/Export`,
|
||||
@:method: 'GET',
|
||||
@:data: query
|
||||
@:}).then(res => {
|
||||
@:if (!res.data.url) return
|
||||
@:this.jnpf.downloadFile(res.data.url)
|
||||
@:this.$refs.ExportBox.visible = false
|
||||
@:this.exportBoxVisible = false
|
||||
@:})
|
||||
@:},
|
||||
}
|
||||
search() {
|
||||
this.listQuery = {
|
||||
currentPage: 1,
|
||||
pageSize: @(@Model.PageSize),
|
||||
sort: "@(@Model.Sort)",
|
||||
sidx: "@(@Model.DefaultSidx)",
|
||||
}
|
||||
this.initData()
|
||||
},
|
||||
refresh(isrRefresh) {
|
||||
this.formVisible = false
|
||||
if (isrRefresh) this.reset()
|
||||
},
|
||||
reset() {
|
||||
for (let key in this.query) {
|
||||
this.query[key] = undefined
|
||||
}
|
||||
this.listQuery = {
|
||||
currentPage: 1,
|
||||
pageSize: @(@Model.PageSize),
|
||||
sort: "@(@Model.Sort)",
|
||||
sidx: "@(@Model.DefaultSidx)",
|
||||
@if(Model.HasSuperQuery)
|
||||
{
|
||||
@:superQueryJson: this.listQuery.superQueryJson
|
||||
}
|
||||
}
|
||||
this.initData()
|
||||
},
|
||||
cancelRowEdit(row, index) {
|
||||
if (!row.id) return this.list.splice(index, 1)
|
||||
row.rowEdit = false
|
||||
let item = JSON.parse(JSON.stringify(this.cacheList[index]))
|
||||
this.$set(this.list, index, item)
|
||||
},
|
||||
saveForRowEdit(row) {
|
||||
if (!row.id) {
|
||||
request({
|
||||
url: '/api/@(@Model.NameSpace)/@(@Model.ClassName)',
|
||||
method: 'post',
|
||||
data: row
|
||||
}).then((res) => {
|
||||
this.$message({
|
||||
message: res.msg,
|
||||
type: 'success',
|
||||
duration: 1000,
|
||||
onClose: () => {
|
||||
this.initData()
|
||||
}
|
||||
})
|
||||
})
|
||||
}else{
|
||||
request({
|
||||
url: '/api/@(@Model.NameSpace)/@(@Model.ClassName)/' + row.id,
|
||||
method: 'PUT',
|
||||
data: row
|
||||
}).then((res) => {
|
||||
this.$message({
|
||||
message: res.msg,
|
||||
type: 'success',
|
||||
duration: 1000,
|
||||
onClose: () => {
|
||||
this.initData()
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@{
|
||||
void GenerateFormControls()
|
||||
{
|
||||
@foreach(var item in Model.FormAllContols)
|
||||
{
|
||||
@switch(item.jnpfKey)
|
||||
{
|
||||
@*栅格布局*@
|
||||
case "row":
|
||||
@{GenerateFormChildrenControls(item.Children,item.Gutter);}
|
||||
break;
|
||||
@*卡片*@
|
||||
case "card":
|
||||
@{GenerateFormChildrenControls(item.Children,item.Gutter);}
|
||||
break;
|
||||
@*折叠面板*@
|
||||
case "collapse":
|
||||
@foreach(var collapse in item.Children)
|
||||
{
|
||||
@{GenerateFormChildrenControls(collapse.Children,item.Gutter);}
|
||||
}
|
||||
break;
|
||||
case "tab":
|
||||
@foreach(var collapse in item.Children)
|
||||
{
|
||||
@{GenerateFormChildrenControls(collapse.Children,item.Gutter);}
|
||||
}
|
||||
break;
|
||||
@*无法在行内编辑生成控件*@
|
||||
case "uploadFz":
|
||||
case "uploadImg":
|
||||
case "colorPicker":
|
||||
case "editor":
|
||||
case "table":
|
||||
case "divider":
|
||||
case "groupTitle":
|
||||
case "button":
|
||||
case "link":
|
||||
case "alert":
|
||||
case "JNPFText":
|
||||
break;
|
||||
@*系统自动生成控件*@
|
||||
case "createUser":
|
||||
case "createTime":
|
||||
case "modifyUser":
|
||||
case "modifyTime":
|
||||
case "currOrganize":
|
||||
case "currPosition":
|
||||
case "billRule":
|
||||
@if(item.IsInlineEditor){
|
||||
@:<el-table-column prop="@(@item.LowerName)" label="@(@item.Label)" width="@(@item.IndexWidth)" align="@(@item.IndexAlign)" @(@Model.UseColumnPermission ? "v-if=\"jnpf.hasP('" + item.Name + "')\" " : "")@(@item.IsSort ? "sortable='custom'":"")>
|
||||
@:<template slot-scope="scope">
|
||||
@:{{scope.row.@(@item.LowerName)_name}}
|
||||
@:</template>
|
||||
@:</el-table-column>
|
||||
}
|
||||
break;
|
||||
@*其他控件*@
|
||||
default:
|
||||
@if(item.IsInlineEditor && item.IsStorage != 1){
|
||||
@:<el-table-column prop="@(@item.LowerName)" label="@(@item.Label)" width="@(@item.IndexWidth)" align="@(@item.IndexAlign)" @(@Model.UseColumnPermission ? "v-if=\"jnpf.hasP('" + item.Name + "')\" " : "")@(@item.IsSort ? "sortable='custom'":"")>
|
||||
@:<template slot-scope="scope">
|
||||
@:<template v-if="scope.row.rowEdit">
|
||||
@switch(item.jnpfKey)
|
||||
{
|
||||
case "checkbox":
|
||||
case "radio":
|
||||
@:<el-select @(@item.jnpfKey == "checkbox" ? "multiple " : "")@(@item.vModel)@(@item.Field)@(@item.Placeholder)@(@item.Clearable)@(@item.Readonly)@(@item.MainProps)@(@item.Required)@(@item.Disabled)@(@item.ShowWordLimit)@(@item.IsRange)@(@item.Style)@(@item.Type)@(@item.Format)@(@item.ValueFormat)@(@item.AutoSize)@(@item.Size)@(@item.PrefixIcon)@(@item.SuffixIcon)@(@item.MaxLength)@(@item.Step)@(@item.StepStrictly)@(@item.ControlsPosition)@(@item.ShowChinese)@(@item.ShowPassword)@(@item.Filterable)@(@item.ShowAllLevels)@(@item.RangeSeparator)@(@item.StartPlaceholder)@(@item.EndPlaceholder)@(@item.Separator)@(@item.PickerOptions)@(@item.Max)@(@item.Min)@(@item.AllowHalf)@(@item.ShowTexts)@(@item.ShowScore)@(@item.ShowAlpha)@(@item.ColorFormat)@(@item.ActiveText)@(@item.InactiveText)@(@item.ActiveColor)@(@item.IsSwitch)@(@item.ShowStops)@(@item.Range)@(@item.Accept)@(@item.ShowTip)@(@item.FileSize)@(@item.SizeUnit)@(@item.Limit)@(@item.Contentposition)@(@item.ButtonText)@(@item.Level)@(@item.ActionText)@(@item.Shadow)@(@item.Content)@(@item.Options)@(item.ModelId != "" ? "modelId='"+ item.ModelId +"' " :"")@(@item.RelationField)@(@item.ColumnOptions)@(@item.HasPage)@(@item.PageSize)@(@item.PropsValue)@(@item.InterfaceId)@(@item.Precision)@(@item.ShowLevel)@(@item.PopupType)@(@item.PopupTitle)@(@item.PopupWidth)@(@item.SelectType != "" ? "selectType='" + item.SelectType + "' " : "")@(@item.IsCustomSelect ? @item.AbleDepIds + @item.AblePosIds + @item.AbleUserIds + @item.AbleRoleIds + @item.AbleGroupIds : "")>
|
||||
@:<el-option v-for="(item, index) in @(@item.LowerName)Options" :key="index" :label="item.@(@item.Props.label)" :value="item.@(@item.Props.value)" ></el-option>
|
||||
@:</el-select>
|
||||
break;
|
||||
case "textarea":
|
||||
@:<el-input @(@item.vModel)@(@item.Readonly)@(@item.Placeholder)@(@item.Clearable)@(@item.Disabled)@(@item.MaxLength)@(@item.Style)@(@item.ShowWordLimit)/>
|
||||
break;
|
||||
default:
|
||||
@:<@(@item.Tag) @(@item.vModel)@(@item.Field)@(@item.Placeholder)@(@item.Clearable)@(@item.Readonly)@(@item.MainProps)@(@item.Disabled)@(@item.ShowWordLimit)@(@item.IsRange)@(@item.Style)@(@item.Type)@(@item.Format)@(@item.ValueFormat)@(@item.AutoSize)@(@item.Multiple)@(@item.Size)@(@item.PrefixIcon)@(@item.SuffixIcon)@(@item.MaxLength)@(@item.Step)@(@item.StepStrictly)@(@item.ControlsPosition)@(@item.ShowChinese)@(@item.ShowPassword)@(@item.Filterable)@(@item.ShowAllLevels)@(@item.RangeSeparator)@(@item.StartPlaceholder)@(@item.EndPlaceholder)@(@item.Separator)@(@item.PickerOptions)@(@item.Max)@(@item.Min)@(@item.AllowHalf)@(@item.ShowTexts)@(@item.ShowScore)@(@item.ShowAlpha)@(@item.ColorFormat)@(@item.ActiveText)@(@item.InactiveText)@(@item.ActiveColor)@(@item.IsSwitch)@(@item.ShowStops)@(@item.Range)@(@item.Accept)@(@item.ShowTip)@(@item.FileSize)@(@item.SizeUnit)@(@item.Limit)@(@item.Contentposition)@(@item.ButtonText)@(@item.Level)@(@item.ActionText)@(@item.Shadow)@(@item.Content)@(@item.Options)@(item.ModelId != "" ? "modelId='"+ item.ModelId +"' " :"")@(@item.RelationField)@(@item.ColumnOptions)@(@item.HasPage)@(@item.PageSize)@(@item.PropsValue)@(@item.InterfaceId)@(@item.Precision)@(@item.ShowLevel)@(@item.PopupType)@(@item.PopupTitle)@(@item.PopupWidth)@(@item.SelectType != "" ? "selectType='" + item.SelectType + "' " : "")@(@item.IsCustomSelect ? @item.AbleDepIds + @item.AblePosIds + @item.AbleUserIds + @item.AbleRoleIds + @item.AbleGroupIds : "")>
|
||||
@switch(item.jnpfKey)
|
||||
{
|
||||
case "select":
|
||||
@:<el-option v-for="(item, index) in @(@item.LowerName)Options" :key="index" :label="item.@(@item.Props.label)" :value="item.@(@item.Props.value)" ></el-option>
|
||||
break;
|
||||
case "comInput":
|
||||
@if(item.Prepend != null)
|
||||
{
|
||||
@:<template slot="prepend">@(@item.Prepend)</template>
|
||||
}
|
||||
@if(item.Append != null)
|
||||
{
|
||||
@:<template slot="append">@(@item.Append)</template>
|
||||
}
|
||||
break;
|
||||
}
|
||||
@:</@(@item.Tag)>
|
||||
break;
|
||||
}
|
||||
@:</template>
|
||||
@:<template v-else>
|
||||
@:{{scope.row.@(@item.LowerName)_name}}
|
||||
@:</template>
|
||||
@:</template>
|
||||
@:</el-table-column>
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
void GenerateFormChildrenControls(ICollection<FormControlDesignModel> childrenList, int gutter)
|
||||
{
|
||||
@foreach(var item in childrenList)
|
||||
{
|
||||
@switch(item.jnpfKey)
|
||||
{
|
||||
@*栅格布局*@
|
||||
case "row":
|
||||
@{GenerateFormChildrenControls(item.Children,gutter);}
|
||||
break;
|
||||
@*卡片*@
|
||||
case "card":
|
||||
@{GenerateFormChildrenControls(item.Children,gutter);}
|
||||
break;
|
||||
@*折叠面板*@
|
||||
case "collapse":
|
||||
@foreach(var collapse in item.Children)
|
||||
{
|
||||
@{GenerateFormChildrenControls(collapse.Children,gutter);}
|
||||
}
|
||||
break;
|
||||
case "tab":
|
||||
@foreach(var collapse in item.Children)
|
||||
{
|
||||
@{GenerateFormChildrenControls(collapse.Children,gutter);}
|
||||
}
|
||||
break;
|
||||
@*无法在行内编辑控件*@
|
||||
case "uploadFz":
|
||||
case "uploadImg":
|
||||
case "colorPicker":
|
||||
case "editor":
|
||||
case "table":
|
||||
case "divider":
|
||||
case "groupTitle":
|
||||
case "button":
|
||||
case "link":
|
||||
case "alert":
|
||||
case "JNPFText":
|
||||
break;
|
||||
@*系统自动生成控件*@
|
||||
case "createUser":
|
||||
case "createTime":
|
||||
case "modifyUser":
|
||||
case "modifyTime":
|
||||
case "currOrganize":
|
||||
case "currPosition":
|
||||
case "billRule":
|
||||
@if(item.IsInlineEditor){
|
||||
@:<el-table-column prop="@(@item.LowerName)" label="@(@item.Label)" width="@(@item.IndexWidth)" align="@(@item.IndexAlign)" @(@Model.UseColumnPermission ? "v-if=\"jnpf.hasP('" + item.Name + "')\" " : "")@(@item.IsSort ? "sortable='custom'":"")>
|
||||
@:<template slot-scope="scope">
|
||||
@:{{scope.row.@(@item.LowerName)_name}}
|
||||
@:</template>
|
||||
@:</el-table-column>
|
||||
}
|
||||
break;
|
||||
@*其他控件*@
|
||||
default:
|
||||
@if(item.IsInlineEditor && item.IsStorage != 1){
|
||||
@:<el-table-column prop="@(@item.LowerName)" label="@(@item.Label)" width="@(@item.IndexWidth)" align="@(@item.IndexAlign)" @(@Model.UseColumnPermission ? "v-if=\"jnpf.hasP('" + item.Name + "')\" " : "")@(@item.IsSort ? "sortable='custom'":"")>
|
||||
@:<template slot-scope="scope">
|
||||
@:<template v-if="scope.row.rowEdit">
|
||||
@switch(item.jnpfKey)
|
||||
{
|
||||
case "checkbox":
|
||||
case "radio":
|
||||
@:<el-select @(@item.jnpfKey == "checkbox" ? "multiple " : "")@(@item.vModel)@(@item.Field)@(@item.Placeholder)@(@item.Clearable)@(@item.Readonly)@(@item.MainProps)@(@item.Required)@(@item.Disabled)@(@item.ShowWordLimit)@(@item.IsRange)@(@item.Style)@(@item.Type)@(@item.Format)@(@item.ValueFormat)@(@item.AutoSize)@(@item.Size)@(@item.PrefixIcon)@(@item.SuffixIcon)@(@item.MaxLength)@(@item.Step)@(@item.StepStrictly)@(@item.ControlsPosition)@(@item.ShowChinese)@(@item.ShowPassword)@(@item.Filterable)@(@item.ShowAllLevels)@(@item.RangeSeparator)@(@item.StartPlaceholder)@(@item.EndPlaceholder)@(@item.Separator)@(@item.PickerOptions)@(@item.Max)@(@item.Min)@(@item.AllowHalf)@(@item.ShowTexts)@(@item.ShowScore)@(@item.ShowAlpha)@(@item.ColorFormat)@(@item.ActiveText)@(@item.InactiveText)@(@item.ActiveColor)@(@item.IsSwitch)@(@item.ShowStops)@(@item.Range)@(@item.Accept)@(@item.ShowTip)@(@item.FileSize)@(@item.SizeUnit)@(@item.Limit)@(@item.Contentposition)@(@item.ButtonText)@(@item.Level)@(@item.ActionText)@(@item.Shadow)@(@item.Content)@(@item.Options)@(item.ModelId != "" ? "modelId='"+ item.ModelId +"' " :"")@(@item.RelationField)@(@item.ColumnOptions)@(@item.HasPage)@(@item.PageSize)@(@item.PropsValue)@(@item.InterfaceId)@(@item.Precision)@(@item.ShowLevel)@(@item.PopupType)@(@item.PopupTitle)@(@item.PopupWidth)@(@item.SelectType != "" ? "selectType='" + item.SelectType + "' " : "")@(@item.IsCustomSelect ? @item.AbleDepIds + @item.AblePosIds + @item.AbleUserIds + @item.AbleRoleIds + @item.AbleGroupIds : "")>
|
||||
@:<el-option v-for="(item, index) in @(@item.LowerName)Options" :key="index" :label="item.@(@item.Props.label)" :value="item.@(@item.Props.value)" ></el-option>
|
||||
@:</el-select>
|
||||
break;
|
||||
case "textarea":
|
||||
@:<el-input @(@item.vModel)@(@item.Readonly)@(@item.Placeholder)@(@item.Clearable)@(@item.Disabled)@(@item.MaxLength)@(@item.Style)@(@item.ShowWordLimit)/>
|
||||
break;
|
||||
default:
|
||||
@:<@(@item.Tag) @(@item.vModel)@(@item.Field)@(@item.Placeholder)@(@item.Clearable)@(@item.Readonly)@(@item.MainProps)@(@item.Required)@(@item.Disabled)@(@item.ShowWordLimit)@(@item.IsRange)@(@item.Style)@(@item.Type)@(@item.Format)@(@item.ValueFormat)@(@item.AutoSize)@(@item.Multiple)@(@item.Size)@(@item.PrefixIcon)@(@item.SuffixIcon)@(@item.MaxLength)@(@item.Step)@(@item.StepStrictly)@(@item.ControlsPosition)@(@item.ShowChinese)@(@item.ShowPassword)@(@item.Filterable)@(@item.ShowAllLevels)@(@item.RangeSeparator)@(@item.StartPlaceholder)@(@item.EndPlaceholder)@(@item.Separator)@(@item.PickerOptions)@(@item.Max)@(@item.Min)@(@item.AllowHalf)@(@item.ShowTexts)@(@item.ShowScore)@(@item.ShowAlpha)@(@item.ColorFormat)@(@item.ActiveText)@(@item.InactiveText)@(@item.ActiveColor)@(@item.IsSwitch)@(@item.ShowStops)@(@item.Range)@(@item.Accept)@(@item.ShowTip)@(@item.FileSize)@(@item.SizeUnit)@(@item.Limit)@(@item.Contentposition)@(@item.ButtonText)@(@item.Level)@(@item.ActionText)@(@item.Shadow)@(@item.Content)@(@item.Options)@(item.ModelId != "" ? "modelId='"+ item.ModelId +"' " :"")@(@item.RelationField)@(@item.ColumnOptions)@(@item.HasPage)@(@item.PageSize)@(@item.PropsValue)@(@item.InterfaceId)@(@item.Precision)@(@item.ShowLevel)@(@item.PopupType)@(@item.PopupTitle)@(@item.PopupWidth)@(@item.SelectType != "" ? "selectType='" + item.SelectType + "' " : "")@(@item.IsCustomSelect ? @item.AbleDepIds + @item.AblePosIds + @item.AbleUserIds + @item.AbleRoleIds + @item.AbleGroupIds : "")>
|
||||
@switch(item.jnpfKey)
|
||||
{
|
||||
case "select":
|
||||
@:<el-option v-for="(item, index) in @(@item.LowerName)Options" :key="index" :label="item.@(@item.Props.label)" :value="item.@(@item.Props.value)" ></el-option>
|
||||
break;
|
||||
case "comInput":
|
||||
@if(item.Prepend != null)
|
||||
{
|
||||
@:<template slot="prepend">@(@item.Prepend)</template>
|
||||
}
|
||||
@if(item.Append != null)
|
||||
{
|
||||
@:<template slot="append">@(@item.Append)</template>
|
||||
}
|
||||
break;
|
||||
}
|
||||
@:</@(@item.Tag)>
|
||||
break;
|
||||
}
|
||||
@:</template>
|
||||
@:<template v-else>
|
||||
@:{{scope.row.@(@item.LowerName)_name}}
|
||||
@:</template>
|
||||
@:</template>
|
||||
@:</el-table-column>
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user