From c606a7210097ca126fcf9fdb123cebf2a964f51d Mon Sep 17 00:00:00 2001
From: xiejun <xiejun@vci-tech.com>
Date: 星期四, 26 十二月 2024 16:51:44 +0800
Subject: [PATCH] 集成获取mdm分发通用数据格式接口集成 日志输出到日志文件中
---
Source/BladeX-Tool/blade-starter-develop/src/main/resources/templates/element/tree/crud.vue.btl | 360 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 360 insertions(+), 0 deletions(-)
diff --git a/Source/BladeX-Tool/blade-starter-develop/src/main/resources/templates/element/tree/crud.vue.btl b/Source/BladeX-Tool/blade-starter-develop/src/main/resources/templates/element/tree/crud.vue.btl
new file mode 100644
index 0000000..59ff4b9
--- /dev/null
+++ b/Source/BladeX-Tool/blade-starter-develop/src/main/resources/templates/element/tree/crud.vue.btl
@@ -0,0 +1,360 @@
+<template>
+ <basic-container>
+ <div class="avue-crud">
+ <el-row :hidden="!search" style="padding:5px">
+ <!-- 鏌ヨ妯″潡 -->
+ <el-form :inline="true" :size="option.size" :model="query">
+ <template>
+#for(x in prototypes) {
+ #if(x.isQuery==1){
+ <el-form-item label="瀛楁">
+ <el-input v-model="query.${x.propertyName!}" placeholder="璇疯緭鍏�${x.comment!}"></el-input>
+ </el-form-item>
+ #}
+#}
+ </template>
+ <!-- 鏌ヨ鎸夐挳 -->
+ <el-form-item>
+ <el-button type="primary" icon="el-icon-search" @click="searchChange">鎼滅储</el-button>
+ <el-button icon="el-icon-delete" @click="searchReset()">娓呯┖</el-button>
+ </el-form-item>
+ </el-form>
+ </el-row>
+ <el-row>
+ <div class="avue-crud__menu">
+ <!-- 澶撮儴宸︿晶鎸夐挳妯″潡 -->
+ <div class="avue-crud__left">
+ <el-button :size="option.size" type="primary" icon="el-icon-plus" @click="handleAdd">鏂板</el-button>
+ <el-button :size="option.size" type="danger" icon="el-icon-delete" @click="handleDelete" plain>鍒犻櫎
+ </el-button>
+ </div>
+ <!-- 澶撮儴鍙充晶鎸夐挳妯″潡 -->
+ <div class="avue-crud__right">
+ <el-button :size="option.size" icon="el-icon-refresh" @click="searchChange" circle></el-button>
+ <el-button :size="option.size" icon="el-icon-search" @click="searchHide" circle></el-button>
+ </div>
+ </div>
+ </el-row>
+ <el-row>
+ <!-- 鍒楄〃妯″潡 -->
+ <el-table ref="table" v-loading="loading" :size="option.size" @selection-change="selectionChange" :data="data"
+ row-key="id"
+ :tree-props="{children: 'children', hasChildren: 'hasChildren'}"
+ style="width: 100%"
+ :border="option.border">
+ <el-table-column type="selection" v-if="option.selection" width="55" align="center"></el-table-column>
+ <el-table-column type="expand" v-if="option.expand" align="center"></el-table-column>
+ <el-table-column v-if="option.index" label="\#" type="index" width="50" align="center">
+ </el-table-column>
+ <template v-for="(item,index) in option.column">
+ <!-- table瀛楁 -->
+ <el-table-column v-if="item.hide!==true"
+ :prop="item.prop"
+ :label="item.label"
+ :width="item.width"
+ :key="index">
+ </el-table-column>
+ </template>
+ <!-- 鎿嶄綔鏍忔ā鍧� -->
+ <el-table-column prop="menu" label="鎿嶄綔" :width="180" align="center">
+ <template slot-scope="{row}">
+ <el-button :size="option.size" type="text" icon="el-icon-view" @click="handleView(row)">鏌ョ湅</el-button>
+ <el-button :size="option.size" type="text" icon="el-icon-edit" @click="handleEdit(row)">缂栬緫</el-button>
+ <el-button :size="option.size" type="text" icon="el-icon-delete" @click="rowDel(row)">鍒犻櫎</el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+ </el-row>
+ <!-- 琛ㄥ崟妯″潡 -->
+ <el-dialog :title="title" :visible.sync="box" width="50%" :before-close="beforeClose" append-to-body>
+ <el-form :disabled="view" :size="option.size" ref="form" :model="form" label-width="80px">
+ <!-- 琛ㄥ崟瀛楁 -->
+#for(x in prototypes) {
+ #if(x.isForm!=0){
+ #if(x.componentType=="input"){
+ <el-form-item label="${x.comment!}" prop="title">
+ <el-input v-model="form.${x.propertyName!}" placeholder="璇疯緭鍏�${x.comment!}"/>
+ </el-form-item>
+ #}else if(x.componentType=="textarea"){
+ <el-form-item label="${x.comment!}" prop="title">
+ <el-input type="textarea" :rows="5" v-model="form.${x.propertyName!}" placeholder="璇疯緭鍏�${x.comment!}"/>
+ </el-form-item>
+ #}else if(x.componentType=="select"){
+ <el-form-item label="${x.comment!}" prop="${x.propertyName!}">
+ <el-select v-model="form.${x.propertyName!}" clearable placeholder="璇烽�夋嫨${x.comment!}">
+ <el-option
+ v-for="item in ${x.propertyName!}Data"
+ :key="item.dictKey"
+ :label="item.dictValue"
+ :value="item.dictKey">
+ </el-option>
+ </el-select>
+ </el-form-item>
+ #}else if(templateType=="tree"&&x.propertyName==treePidHump){
+ <el-form-item label="${x.comment!}" prop="${x.propertyName!}">
+ <el-tree
+ :data="treeData"
+ v-model="form.${treePidHump!}"
+ placeholder="璇烽�夋嫨${x.comment!}"
+ :props="defaultProps"
+ @node-click="handleNodeClick">
+ </el-tree>
+ </el-form-item>
+ #}else if(x.componentType=="tree"&&x.propertyName!=treePidHump){
+ <el-form-item label="${x.comment!}" prop="${x.propertyName!}">
+ <el-select v-model="form.${x.propertyName!}" clearable placeholder="璇烽�夋嫨${x.comment!}">
+ <el-option
+ v-for="item in ${x.propertyName!}Data"
+ :key="item.id"
+ :label="item.${treeName}"
+ :value="item.id">
+ </el-option>
+ </el-select>
+ </el-form-item>
+ #}else if(x.componentType=="radio"){
+ <el-form-item label="${x.comment!}" prop="${x.propertyName!}">
+ <el-radio-group v-model="form.${x.propertyName!}">
+ <el-radio v-for="(item,index) in ${x.propertyName!}Data" :key="index" :label="item.dictKey">
+ {{item.dictValue}}
+ </el-radio>
+ </el-radio-group>
+ </el-form-item>
+ #}else if(x.componentType=="checkbox"){
+ <el-form-item label="${x.comment!}" prop="${x.propertyName!}">
+ <el-checkbox-group v-model="form.${x.propertyName!}">
+ <el-checkbox v-for="(item,index) in ${x.propertyName!}Data" :label="item.dictValue" :key="index">{{item.dictValue}}</el-checkbox>
+ </el-checkbox-group>
+ </el-form-item>
+ #}else if(x.componentType=="switch"){
+ <el-form-item label="${x.comment!}" prop="${x.propertyName!}">
+ <el-switch v-model="form.${x.propertyName!}" </el-switch>
+ </el-form-item>
+ #}else if(x.componentType=="date"){
+ <el-form-item label="${x.comment!}" prop="${x.propertyName!}">
+ <el-date-picker v-model="form.${x.propertyName!}" type="datetime" value-format="yyyy-MM-dd HH:mm:ss" placeholder="璇烽�夋嫨${x.comment!}"></el-date-picker>
+ </el-form-item>
+ #}
+ #}
+#}
+ </el-form>
+ <!-- 琛ㄥ崟鎸夐挳 -->
+ <span v-if="!view" slot="footer" class="dialog-footer">
+ <el-button type="primary" icon="el-icon-circle-check" :size="option.size" @click="handleSubmit">鎻� 浜�</el-button>
+ <el-button icon="el-icon-circle-close" :size="option.size" @click="box = false">鍙� 娑�</el-button>
+ </span>
+ </el-dialog>
+ </div>
+ </basic-container>
+</template>
+
+<script>
+ import {getList, getDetail, getTree, add, update, remove} from "@/api/${serviceCode!}/${modelCode!}";
+ import option from "@/const/${serviceCode!}/${modelCode!}";
+ import {getDictionary} from '@/api/system/dict';
+ import {mapGetters} from "vuex";
+ import {validatenull} from "@/util/validate";
+
+export default {
+ data() {
+ return {
+ // 寮规鏍囬
+ title: '',
+ // 鏄惁灞曠ず寮规
+ box: false,
+ // 鏄惁鏄剧ず鏌ヨ
+ search: true,
+ // 鍔犺浇涓�
+ loading: true,
+ // 鏄惁涓烘煡鐪嬫ā寮�
+ view: false,
+ // 鏌ヨ淇℃伅
+ query: {},
+ // 鍒嗛〉淇℃伅
+ page: {
+ currentPage: 1,
+ pageSize: 10,
+ total: 40
+ },
+ // 鏍戝瀷榛樿閰嶇疆
+ defaultProps: {
+ children: 'children',
+ label: '${treeName}'
+ },
+ // 琛ㄥ崟鏁版嵁
+ form: {},
+ // 閫夋嫨琛�
+ selectionList: [],
+ // 琛ㄥ崟閰嶇疆
+ option: option,
+ // 琛ㄥ崟鍒楄〃
+ data: [],
+ // 鐖惰妭鐐瑰垪琛�
+ treeData: [],
+#for(x in prototypes) {
+ #if(isNotEmpty(x.dictCode)){
+ // ${x.comment!}瀛楀吀鏁版嵁
+ ${x.propertyName!}Data: [],
+ #}
+#}
+ }
+ },
+ mounted() {
+ this.init();
+ this.onLoad(this.page);
+ },
+ computed: {
+ ...mapGetters(["permission"]),
+ ids() {
+ let ids = [];
+ this.selectionList.forEach(ele => {
+ ids.push(ele.id);
+ });
+ return ids.join(",");
+ }
+ },
+ methods: {
+ init() {
+#for(x in prototypes) {
+ #if(isNotEmpty(x.dictCode)){
+ getDictionary({code: '${x.dictCode!}'}).then(res => {
+ this.${x.propertyName!}Data = res.data.data;
+ });
+ #}
+#}
+ },
+ handleNodeClick(data) {
+ this.form.${treePidHump!} = data.${treeIdHump!};
+ },
+ searchHide() {
+ this.search = !this.search;
+ },
+ searchChange() {
+ this.onLoad(this.page);
+ },
+ searchReset() {
+ this.query = {};
+ this.page.currentPage = 1;
+ this.onLoad(this.page);
+ },
+ handleSubmit() {
+ if (validatenull(this.form.${treePidHump!})) {
+ this.form.${treePidHump!} = 0;
+ }
+ if (!this.form.id) {
+ add(this.form).then(() => {
+ this.box = false;
+ this.onLoad(this.page);
+ this.$message({
+ type: "success",
+ message: "鎿嶄綔鎴愬姛!"
+ });
+ });
+ } else {
+ update(this.form).then(() => {
+ this.box = false;
+ this.onLoad(this.page);
+ this.$message({
+ type: "success",
+ message: "鎿嶄綔鎴愬姛!"
+ });
+ })
+ }
+ },
+ handleAdd() {
+ this.title = '鏂板'
+ this.form = {}
+ this.box = true
+ },
+ handleEdit(row) {
+ this.title = '缂栬緫'
+ this.box = true
+ getDetail(row.id).then(res => {
+ this.form = res.data.data;
+ });
+ },
+ handleView(row) {
+ this.title = '鏌ョ湅'
+ this.view = true;
+ this.box = true;
+ getDetail(row.id).then(res => {
+ this.form = res.data.data;
+ });
+ },
+ handleDelete() {
+ if (this.selectionList.length === 0) {
+ this.$message.warning("璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹�");
+ return;
+ }
+ this.$confirm("纭畾灏嗛�夋嫨鏁版嵁鍒犻櫎?", {
+ confirmButtonText: "纭畾",
+ cancelButtonText: "鍙栨秷",
+ type: "warning"
+ })
+ .then(() => {
+ return remove(this.ids);
+ })
+ .then(() => {
+ this.selectionClear();
+ this.onLoad(this.page);
+ this.$message({
+ type: "success",
+ message: "鎿嶄綔鎴愬姛!"
+ });
+ });
+ },
+ rowDel(row) {
+ this.$confirm("纭畾灏嗛�夋嫨鏁版嵁鍒犻櫎?", {
+ confirmButtonText: "纭畾",
+ cancelButtonText: "鍙栨秷",
+ type: "warning"
+ })
+ .then(() => {
+ return remove(row.id);
+ })
+ .then(() => {
+ this.onLoad(this.page);
+ this.$message({
+ type: "success",
+ message: "鎿嶄綔鎴愬姛!"
+ });
+ });
+ },
+ beforeClose(done) {
+ done()
+ this.form = {};
+ this.view = false;
+ },
+ selectionChange(list) {
+ this.selectionList = list;
+ },
+ selectionClear() {
+ this.selectionList = [];
+ this.$refs.table.clearSelection();
+ },
+ currentChange(currentPage) {
+ this.page.currentPage = currentPage;
+ this.onLoad(this.page);
+ },
+ sizeChange(pageSize) {
+ this.page.pageSize = pageSize;
+ this.onLoad(this.page);
+ },
+ onLoad(page, params = {}) {
+ this.loading = true;
+ getList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => {
+ this.data = res.data.data;
+ this.loading = false;
+ getTree().then(res => {
+ this.treeData = res.data.data;
+ });
+ });
+ }
+ }
+};
+</script>
+
+<style lang="scss" scoped>
+.el-pagination {
+ margin-top: 20px;
+}
+</style>
--
Gitblit v1.10.0