From 80b6cbfc9c861469146318d0b3dd5f8b8b525b8a Mon Sep 17 00:00:00 2001 From: xiejun <xiejun@vci-tech.com> Date: 星期五, 01 十一月 2024 15:11:19 +0800 Subject: [PATCH] Revert "集成获取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.9.3