UNIVPLMDataIntegration/Admin.NET/Admin.NET.Web.Entry/wwwroot/template/web_views_LeftTree.vue.vm

83 lines
2.7 KiB
Plaintext

@{
string LowerFirstLetter(string text)
{
return text.ToString()[..1].ToLower() + text[1..]; // 首字母小写
}
var pkField = Model.TableField.Where(c => c.ColumnKey == "True").FirstOrDefault();
string pkFieldName = null;
if(pkField != null && !string.IsNullOrEmpty(pkField.PropertyName))
{
pkFieldName = LowerFirstLetter(pkField.PropertyName);
}
Dictionary<string, int> definedObjects = new Dictionary<string, int>();
bool haveLikeCdt = false;
foreach (var column in Model.TableField){
if (column.QueryWhether == "Y" && column.QueryType == "like"){
haveLikeCdt = true;
}
}
}
<template>
<div class="@(@Model.LowerClassName)-container">
<splitpanes class="default-theme">
<pane size="15" style="display: flex">
<@(@Model.LeftTab)Tree ref="@(@Model.LowerLeftTab)TreeRef" @@node-click="handleNodeChange" />
</pane>
<pane size="85" style="display: flex; flex-direction: column">
<IndexList ref="indexListRef" @@list-click="handleIndexChange" />
</pane>
</splitpanes>
</div>
</template>
<script lang="ts" setup name="@(@Model.LowerClassName)">
import { onMounted, reactive, ref } from 'vue';
import { ElMessageBox, ElMessage } from "element-plus";
import { Splitpanes, Pane } from 'splitpanes';
import 'splitpanes/dist/splitpanes.css';
import @(@Model.LeftTab)Tree from '/@@/views/@(@Model.PagePath)/@(@Model.LowerLeftTab)/component/@(@Model.LowerLeftTab)Tree.vue';
import IndexList from '/@@/views/@(@Model.PagePath)/@(@Model.LowerClassName)/component/@(@Model.LowerClassName)List.vue';
const indexListRef = ref<InstanceType<typeof IndexList>>();
// 变量
const state = reactive({
queryParams: {
searchKey: undefined,
@if(Model.QueryWhetherList.Count > 0) {
@foreach (var column in Model.QueryWhetherList) {
@:@(@column.LowerPropertyName): undefined,
}
}
}
});
// 页面初始化
onMounted(() => {
indexListRef.value?.listhandleQuery(state.queryParams);//列表控件初始化不请求数据,这里要请求一下
});
// 树组件点击
const handleNodeChange = async (node: any) => {
console.log('handleNodeChange--', JSON.stringify(node));
state.queryParams["@(@Model.LowerLeftPrimaryKey)"] = node.data.@(@Model.LowerLeftKey);//树主表关联字段=树关联字段
console.log('handleNodeChange--', state.queryParams.@(@Model.LowerLeftPrimaryKey));
await indexListRef.value?.listhandleQuery(state.queryParams);
};
// 主表List组件点击
const handleIndexChange = async (row: any,column: any) => {
console.log('handleIndexChange--', JSON.stringify(row));
console.log('handleIndexChange--', JSON.stringify(column));
};
</script>
<style lang="scss" scoped>
:deep(.el-input),
:deep(.el-select),
:deep(.el-input-number) {
width: 100%;
}
:deep(.el-slider .el-input-number){
width: auto;
}
</style>