| | |
| | | v-model="form" |
| | | :data="tableList" |
| | | :option="option" |
| | | :page.sync="pageType" |
| | | :page.sync="componentVO.uiComponentType == 'TreeTable'?{}:pageType" |
| | | :table-loading="loading" |
| | | @on-load="onLoad" |
| | | @search-reset="searchReset" |
| | | @search-change='searchChange' |
| | | @refresh-change="handleRefresh" |
| | | @current-change="currentChange" |
| | | @size-change="sizeChange" |
| | | @row-click="rowClickChange" |
| | | @search-change='searchChange' |
| | | @filter="filterChange" |
| | | @selection-change="selectChange"> |
| | | <!--top区域按钮--> |
| | |
| | | <el-button icon="el-icon-refresh" circle @click="$refs.dataTable.refreshChange()" |
| | | :size="scope.size"></el-button> |
| | | </el-tooltip> |
| | | </template> |
| | | <template #icon="{ row }"> |
| | | <span class="avue-icon avue-icon--small"> |
| | | <svg v-if="row.icon && row.icon.indexOf('#')==0" aria-hidden="true"> |
| | | <use :xlink:href="row.icon"></use> |
| | | </svg> |
| | | <i v-else :class="row.icon"></i> |
| | | </span> |
| | | </template> |
| | | </avue-crud> |
| | | </div> |
| | |
| | | isShow: { |
| | | handler(newval) { |
| | | if (newval && this.$el.clientHeight > 50) { |
| | | this.parentHeight = this.$el.clientHeight - this.$children[0].$children[1].$children[0].$el.clientHeight - this.$children[0].$children[2].$el.clientHeight - 5; |
| | | this.parentHeight = this.$el.clientHeight - this.$children[0].$children[1].$children[0].$el.clientHeight - (this.$children[0].$children[2].$el.clientHeight || 57) - 5; |
| | | } |
| | | if(newval){ |
| | | this.handleRefresh(); |
| | |
| | | }, |
| | | 'sourceData':{ |
| | | handler(newval) { |
| | | if(newval) { |
| | | if(newval && Object.keys(newval).length>0) { |
| | | this.sourceDataMapParams=this.sourceDataMap(); |
| | | this.getParams(); |
| | | // this.handleRefresh(); |
| | | this.handleRefresh(); |
| | | } |
| | | }, |
| | | deep: true, |
| | |
| | | const queryFields = !validatenull(this.currentDefineVO.queryColumns) ? this.currentDefineVO.queryColumns.map(item => item.field) : []; |
| | | return this.currentDefineVO.cols[0].map(item => { |
| | | const search = queryFields.includes(item.field); // 判断 field 是否在 queryColumns 里 |
| | | item.type = this.columnType[item.fieldType] || item.fieldType; |
| | | if (this.currentDefineVO.btmType == 'fileobject' && item.field == 'name') { |
| | | //是文件 |
| | | item.formatter = function (d) { |
| | |
| | | if (typeof formatter == "string" && formatter != '') { |
| | | formatter = eval("(" + formatter + ")"); |
| | | } |
| | | item.type = this.columnType[item.fieldType] || item.fieldType; |
| | | if (['date', 'datetime', 'time'].includes(item.type)) { |
| | | item.valueFormat = item.dateFormate; |
| | | item.format = item.dateFormate; |
| | | } |
| | | return { |
| | | ...item, |
| | | prop: item.field, |
| | | label: item.title, |
| | | search: search, |
| | | formatter: formatter |
| | | formatter: formatter, |
| | | overHidden: true |
| | | }; |
| | | }); |
| | | }, |
| | | sourceDataMap: function () { |
| | | const sourceDataMap = {}; |
| | | if (Object.keys(this.sourceData).length>0) { |
| | | if(this.sourceData.oid ) { |
| | | if (this.sourceData.oid.indexOf('@vcitreesep@') > -1) { |
| | | this.sourceData.oid = this.sourceData.oid.split('@vcitreesep@')[1]; |
| | | if(this.sourceData.part && Object.keys(this.sourceData.part).length>0){ |
| | | //说明源数据是树节点 |
| | | if(this.sourceData.part.oid ) { |
| | | if (this.sourceData.part.oid.indexOf('@vcitreesep@') > -1) { |
| | | this.sourceData.part.oid = this.sourceData.oid.split('@vcitreesep@')[1]; |
| | | } |
| | | sourceDataMap.sourceBtmName = this.sourceBtmType; |
| | | sourceDataMap.sourceOid = this.sourceData.part.oid; |
| | | } |
| | | sourceDataMap.sourceBtmName = this.sourceBtmType;; |
| | | sourceDataMap.sourceOid = this.sourceData.oid; |
| | | }else { |
| | | if(this.sourceData.oid ) { |
| | | if (this.sourceData.oid.indexOf('@vcitreesep@') > -1) { |
| | | this.sourceData.oid = this.sourceData.oid.split('@vcitreesep@')[1]; |
| | | } |
| | | sourceDataMap.sourceBtmName = this.sourceBtmType; |
| | | sourceDataMap.sourceOid = this.sourceData.oid; |
| | | } |
| | | } |
| | | |
| | | for (let i in this.sourceData) { |
| | | const item = this.sourceData[i] |
| | | if (item && item.constructor === Object) continue; |
| | | if (i == 'type' || i == 'context' || i == 'content') continue; |
| | | sourceDataMap['sourceData["' + i + '"]'] = item |
| | | if (['type', 'context', 'content', 'querytemplate', 'querytype'].includes(i)) continue; |
| | | if (item && item.constructor === Object) { |
| | | sourceDataMap['sourceData["' + i + '"]'] = JSON.stringify(item) |
| | | }else { |
| | | sourceDataMap['sourceData["' + i + '"]'] = item |
| | | } |
| | | } |
| | | } |
| | | |
| | | if (Object.keys(this.paramVOS).length>0) { |
| | | for (let j in this.paramVOS) { |
| | | if (this.paramVOS[j] && this.paramVOS[j].constructor === Object) continue; |
| | | if (j == 'type' || j == 'context' || j == 'content' || j == "getdataurl" || j == "getdatamethod" || j == "url" || j == "method" || j == "uploadfileurl" || j == "title") continue; |
| | | if (['type', 'context', 'content', "getdataurl", "getdatamethod", "url", "method", "uploadfileurl", "title", 'querytemplate', 'querytype', 'usesourcedata','component'].includes(j)) continue; |
| | | sourceDataMap['sourceData["' + j + '"]'] = this.paramVOS[j] |
| | | } |
| | | } |
| | |
| | | }, |
| | | getParams: function () { |
| | | const tableParams = { |
| | | btmname: this.currentDefineVO.btmType, |
| | | btmName: this.currentDefineVO.btmType, |
| | | btmType:this.currentDefineVO.btmType, |
| | | tableDefineId: this.currentDefineVO.id, |
| | | componentOid: this.componentVO.oid, |
| | |
| | | if (Object.keys(this.sourceData).length>0 && this.isShow) { |
| | | this.tableList = []; |
| | | this.loading = true; |
| | | getList(page.currentPage, page.pageSize, Object.assign({},this.params,this.query,params)).then(res => { |
| | | let url=''; |
| | | if(this.componentVO.bsCustQueryCLsOrUrl && this.componentVO.bsCustQueryCLsOrUrl.indexOf('/')!=-1){ |
| | | url=this.componentVO.bsCustQueryCLsOrUrl; |
| | | } |
| | | getList(page.currentPage, page.pageSize, Object.assign({},this.params,this.query,params),url).then(res => { |
| | | let data = []; |
| | | if (res.data && res.data.data) { |
| | | data = res.data.data; |