From 9412cc46c7d135d29dc6bf9b7ae36a3b6b17347c Mon Sep 17 00:00:00 2001 From: 田源 <lastanimals@163.com> Date: 星期三, 07 六月 2023 18:11:21 +0800 Subject: [PATCH] 分类树组件封装,联调真实表格数据 --- Source/UBCS-WEB/src/components/Crud/Crud.vue | 323 +++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 261 insertions(+), 62 deletions(-) diff --git a/Source/UBCS-WEB/src/components/Crud/Crud.vue b/Source/UBCS-WEB/src/components/Crud/Crud.vue index 90412c5..6d66a84 100644 --- a/Source/UBCS-WEB/src/components/Crud/Crud.vue +++ b/Source/UBCS-WEB/src/components/Crud/Crud.vue @@ -1,30 +1,136 @@ <template> -<basic-container style="height: 750px"> - <avue-crud ref="crud" :data="data" :option="option" style="height: 750px" @sort-change="sortChange"></avue-crud> -</basic-container> + <basic-container> + <div class="testbox"> + <div style="margin-top: 10px;display: flex;flex-wrap: wrap;width: 100%;"> + <el-button size="small" type="primary" plain @click="addvisible=true">澧炲姞 + <FormTemplateDialog + :visible.sync="addvisible" + :type="add" + :templateOid="this.templateOids" + :codeClassifyOid="this.codeClassifyOids" + :codeRuleOid="this.codeRuleOid" + :disabledProp="disabledProp" + :rowOid="rowOid" + > + </FormTemplateDialog></el-button> + <el-button size="small" type="primary" plain @click="editvisible=true">缂栬緫 + <FormTemplateDialog + :visible.sync="editvisible" + :type="edit" + :templateOid="this.templateOids" + :codeClassifyOid="this.codeClassifyOids" + :codeRuleOid="this.codeRuleOid" + :disabledProp="disabledProp" + :rowOid="rowOid" + ></FormTemplateDialog></el-button> + <el-button size="small" type="primary" plain>鎵归噺瀵煎叆鐢宠</el-button> + <el-button size="small" type="primary" plain>鍘嗗彶鏁版嵁瀵煎叆</el-button> + <el-button size="small" type="primary" plain>鎵归噺鐢宠缂栫爜</el-button> + <el-button size="small" type="primary" plain>鎵归噺鍙戝竷</el-button> + <el-button size="small" type="primary" plain>鏌ョ湅娴佺▼鍘嗗彶</el-button> + <el-button size="small" type="primary" plain>鍒犻櫎</el-button> + <el-button size="small" type="primary" plain>鍙戝竷</el-button> + <el-button size="small" type="primary" plain>鏁版嵁鏇存敼</el-button> + <el-button size="small" type="primary" plain>鍥炴敹</el-button> + <el-button size="small" type="primary" plain>瀵煎嚭 + <transfer filter-placeholder="璇疯緭鍏ユ嫾闊冲叏鎷兼垨鑰呮嫾闊崇缉鍐�" ></transfer> + </el-button> + <el-button size="small" type="primary" plain @click="findvisible=true">鏌ヨ + <advancedQuery :visible.sync="findvisible" :options="this.options"></advancedQuery> + </el-button> + <el-button size="small" type="primary" plain>鐩镐技椤规煡璇�</el-button> + <el-button size="small" type="primary" plain style="margin-left: 1px;margin-top:10px">鍒锋柊</el-button> + <el-input placeholder="璇疯緭鍏ュ叧閿瓧鎸夊洖杞︽煡璇�" style="width: 180px;margin-left: 5px;margin-top:10px" size="small"></el-input> + </div> + <el-row style="height: 700px;width: 100%"> + <el-table :data="tableData" style="" @cell-click="handleCellClick" max-height="700" @selection-change="handleSelectionChange" @sort-change="sortChange"> + <el-table-column + type="selection" + fixed + width="55"> + </el-table-column> + <el-table-column + type="index" + fixed + label="搴忓彿" + width="55"> + </el-table-column> + <div v-for="(item,index) in this.tableHeadData" :key="index"> + <el-table-column :label="item.label" :prop="item.prop" :sortable="item.sortable" :width="item.width"> + <!-- 缂栬緫鍜屽睍绀洪�昏緫 --> + <template slot-scope="{ row }"> + <el-input v-if="editingRow === row && editShow== item.prop" v-model="row[item.prop]" @blur="saveRow"></el-input> + <span v-else>{{row[item.prop]}}</span> + <el-switch + v-if="editShow === 'true'" + v-model="row[item.prop]" + active-color="#13ce66" + inactive-color="#ff4949"> + </el-switch> + </template> + </el-table-column> + </div> + </el-table> + </el-row> + </div> + <div class="block" style="display: flex;justify-content: flex-end"> + <el-pagination + @size-change="handleSizeChange" + @current-change="handleCurrentChange" + :current-page="page.currentPage" + :page-sizes="page.pageSizes" + :page-size="page.pageSizes" + layout="total, sizes, prev, pager, next, jumper" + :total="page.total"> + </el-pagination> + </div> + </basic-container> </template> - <script> -import { MasterTable,TableData } from "@/api/GetItem"; +import {MasterTable, TableData} from "@/api/GetItem"; export default { name: "Crud.vue", - data(){ - return{ - data:[ - { - zhiliangbz:"111", - }, - { - xinghaoguige:"1121", - }, - ], - option:{ - //榛樿楂樺害, - align:'center', - menuAlign:'center', - column:[] + props:{ + page:{ + type: Object, + default: ()=>{ + return {} + } + }, + codeClassifyOid:{ + type:String, + default:"" + }, + coderuleoid:{ + type:String, + default:"" + }, + tableDataArray:{ + type:Array, + default:[] + } + }, + data() { + return { + templateOid:"", + addvisible:false, + editvisible:false, + findvisible:false, + templateOids: "78B8C7C5-A042-0B96-FE6D-65421451782A", + codeClassifyOids: "4524E801-6CC6-92E8-1AC3-2AB9604E8F96", + codeRuleOid: "B95872A6-9CEA-D490-8F1B-9D26548CAF96", + rowOid: '6EF696C3-CD87-0E7C-1EA1-8DE3913A95C9', + disabledProp: ["id"], + editingRow:null, + editShow: "", + editAttr:"", + loading: false, + data: [], + options:{}, + option: { + column: [] }, - List:[], + List: [], columnType: { text: "input", combox: "select", @@ -32,67 +138,160 @@ number: "number", datetime: "datetime", }, + tableData:[], + tableHeadData:[], + items:{}, + aaa:"" } }, + computed:{ + }, created() { - this.CrudHeaderRend(); - this.CrudRend() + this.CrudHeaderRend(); + this.$emit('tableData',this.tableData) + }, + mounted() { + }, activated() { this.doLayout() }, - methods:{ + watch:{ + codeClassifyOid:{ + handler(newval,oldval){ + this.codeClassifyOid=newval; + this.CrudHeaderRend() + }, + deep:true + }, + tableDataArray:{ + handler(newval,oldval){ + this.tableData=newval; + this.CrudRend() + } + } + }, + methods: { + rend(){ + this.tableData=this.tableHeadData + }, + handleSizeChange(val){ + this.page.pageSize=val + this.$emit('pageSize',val) + this.CrudRend() + }, + handleCurrentChange(val){ + this.page.currentPage=val + this.$emit('currentPage',val) + this.CrudRend() + }, + // 鐩戝惉鍗曞厓鏍肩偣鍑讳簨浠跺苟瀛樺偍姝e湪缂栬緫鐨勮 + handleCellClick(row, column) { + this.editingRow = row; + this.editShow = column.property; + }, + //鍒犻櫎 + enumDeleteRow(row) { + console.log(row) + this.tableData.splice(row, 1) + }, + // 灏嗘鍦ㄧ紪杈戠殑琛岀殑鐘舵�佸彉涓� null 锛屽嵆閫�鍑虹紪杈戠姸鎬� + saveRow() { + this.editingRow = null; + }, doLayout() { this.$nextTick(() => { this.$refs.crud.doLayout(); }); }, - CrudHeaderRend(){ - MasterTable({codeClassifyOid:"D9CF223F-317D-71EB-BD11-433A94CAD9F3",functionId: 5,_: 1685067339479}).then(res=>{ - this.List=res.data.tableDefineVO.cols[0]; - this.List.forEach(item=>{ - console.log(item) - let columnItem={ - label:item.title, - prop:item.field, - type:this.columnType[item.type], - sortable:item.sort, - width:item.minWidth - }; - this.option.column.push(columnItem); - + //琛ㄦ牸澶存覆鏌� + CrudHeaderRend() { + if(this.codeClassifyOid != ""){ + MasterTable({ + codeClassifyOid:this.codeClassifyOid, + functionId: 5, + }).then(res => { + this.options=res.data.tableDefineVO.seniorQueryColumns + this.List = res.data.tableDefineVO.cols[0]; + this.List.forEach(item => { + let columnItem = { + label: item.title, + prop: item.field, + type: this.columnType[item.type], + sortable: item.sort, + width: item.minWidth + }; + this.option.column.push(columnItem); + this.option.column=this.tableHeadData; + this.templateOid=res.data.tableDefineVO.oid + this.$emit('templateOid',this.templateOid) + }) }) - }) + } }, - CrudRend(){ - TableData({templateOid: "A12826E4-2B66-6D56-DE30-92BB1D7F607F", - codeClassifyOid: "D9CF223F-317D-71EB-BD11-433A94CAD9F3", - page: 1, - limit: 9, - _: 1685089123575 - }).then(res=>{ - console.log(res) - this.data=res.data.data - }) + //琛ㄦ牸鏁版嵁 + CrudRend() { + TableData({ + templateOid: this.templateOid, + codeClassifyOid: this.codeClassifyOid, + page: this.page.currentPage, + limit:this.page.pageSize, + }).then(res => { + this.page.total = res.data.total; + this.data = res.data.data; + this.tableData=res.data.data; + }) }, // 鎺掑簭 - sortChange(val){ - console.log(val) - - // TableData( { - // templateOid: "A12826E4-2B66-6D56-DE30-92BB1D7F607F", - // codeClassifyOid: "D9CF223F-317D-71EB-BD11-433A94CAD9F3", - // order:"desc", - // sort:val.prop - // }).then(res=>{ - // console.log(res.data.data) - // this.data=res.data.data - // }) + sortChange(val) { + this.loading = true; + let order = "" + if (val.order == "ascending") { + order = "asc"; + } else { + order = "desc"; + } + TableData({ + templateOid: this.templateOid, + codeClassifyOid: this.codeClassifyOid, + order: order, + sort: val.prop, + page: this.page.currentPage, + limit: this.page.pageSize, + }).then(res => { + setTimeout(() => { + this.data = res.data.data; + this.loading = false; + }, 100); + }) }, + //鍒嗛〉鍒锋柊 + async onLoad(val) { + await TableData({ + templateOid: this.templateOid, + codeClassifyOid: this.codeClassifyOid, + page: val.currentPage, + limit: val.pageSize, + }).then(res => { + this.data = res.data.data; + }) + }, + //澶氶�� + handleSelectionChange(row) { + console.log(row) + } } } </script> -<style scoped> +<style lang="scss" scoped> +.testbox { + .el-table--scrollable-x .el-table__body-wrapper { + overflow: auto !important; + } + .el-table__fixed-right-patch { + background-color: #f5f7fa !important; + } +} </style> -- Gitblit v1.9.3