From fdaad68c0715d6f7858b956071e3b01cd543a5cd Mon Sep 17 00:00:00 2001 From: ludc Date: 星期一, 19 六月 2023 20:32:18 +0800 Subject: [PATCH] 高级查询组件增加refer类型条件框 --- Source/UBCS-WEB/src/components/Crud/Crud.vue | 421 ++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 293 insertions(+), 128 deletions(-) diff --git a/Source/UBCS-WEB/src/components/Crud/Crud.vue b/Source/UBCS-WEB/src/components/Crud/Crud.vue index 6d66a84..f76a5d2 100644 --- a/Source/UBCS-WEB/src/components/Crud/Crud.vue +++ b/Source/UBCS-WEB/src/components/Crud/Crud.vue @@ -2,131 +2,185 @@ <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 plain size="small" type="primary" @click="addvisible=true">澧炲姞 </el-button> - <el-button size="small" type="primary" plain @click="findvisible=true">鏌ヨ - <advancedQuery :visible.sync="findvisible" :options="this.options"></advancedQuery> + <FormTemplateDialog + :codeClassifyOid="this.codeClassifyOid" + :codeRuleOid="this.codeRuleOid" + :disabledProp="disabledProp" + :templateOid="templateOid" + :type="add" + :visible.sync="addvisible" + > + </FormTemplateDialog> + <el-button plain size="small" type="primary" @click="editHandler">缂栬緫 </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> + <FormTemplateDialog + :codeClassifyOid="this.codeClassifyOid" + :codeRuleOid="this.codeRuleOid" + :disabledProp="disabledProp" + :rowOid="rowOid" + :templateOid="templateOid" + :type="edit" + :title="'淇敼缂栫爜淇℃伅'" + :visible.sync="editvisible" + ></FormTemplateDialog> + <el-button plain size="small" type="primary">鎵归噺瀵煎叆鐢宠</el-button> + <el-button plain size="small" type="primary">鍘嗗彶鏁版嵁瀵煎叆</el-button> + <el-button plain size="small" type="primary">鎵归噺鐢宠缂栫爜</el-button> + <el-button plain size="small" type="primary">鎵归噺鍙戝竷</el-button> + <el-button plain size="small" type="primary">鏌ョ湅娴佺▼鍘嗗彶</el-button> + <el-button plain size="small" type="primary">鍒犻櫎</el-button> + <el-button plain size="small" type="primary" @click="setHandler">鍙戝竷</el-button> + <set-personnel :visible.sync="visibleFlow" :parameter="parameter" + type="PUBLIC"></set-personnel> + <el-button plain size="small" type="primary" @click="DataChange">鏁版嵁鏇存敼</el-button> + <FormTemplateDialog + :codeClassifyOid="this.codeClassifyOid" + :codeRuleOid="this.codeRuleOid" + :disabledProp="disabledProp" + :rowOid="rowOid" + :templateOid="templateOid" + :type="edit" + :title="'宸插彂甯冩暟鎹洿鏀�'" + :visible.sync="DataVisible" + ></FormTemplateDialog> + <el-button plain size="small" type="primary" @click="huishouHandler">鍥炴敹</el-button> + <el-button plain size="small" type="primary" @click="openD">瀵煎嚭 + <integration-transfer :data="transferData" :props="transferProps" + :visible.sync="dialogPush" @save="handelTransferSave"></integration-transfer> + </el-button> + <el-button plain size="small" type="primary" @click="findHandler">鏌ヨ + <advanced-query :options="this.options" :visible.sync="findvisible" + @echoContion="echoContion"></advanced-query> + </el-button> + <el-button plain size="small" type="primary">鐩镐技椤规煡璇�</el-button> + <el-button plain size="small" style="margin-left: 1px;margin-top:10px" type="primary">鍒锋柊</el-button> + <el-input placeholder="璇疯緭鍏ュ叧閿瓧鎸夊洖杞︽煡璇�" size="small" + style="width: 180px;margin-left: 5px;margin-top:10px"></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 v-loading="isLoading" :data="tableData" max-height="700" style="" @cell-click="handleCellClick" + @selection-change="handleSelectionChange" @sort-change="sortChange"> <el-table-column - type="selection" fixed + type="selection" width="55"> </el-table-column> <el-table-column - type="index" fixed label="搴忓彿" + type="index" 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"> +<!-- <div>--> + <el-table-column v-for="(item,index) in this.tableHeadFindData" :key="item.id" :label="item.label" :prop="item.prop" :sortable="item.sortable" > <!-- 缂栬緫鍜屽睍绀洪�昏緫 --> - <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> + <!-- <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> +<!-- </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" + :page-sizes="page.pageSizes" + :total="page.total" layout="total, sizes, prev, pager, next, jumper" - :total="page.total"> + @size-change="handleSizeChange" + @current-change="handleCurrentChange"> </el-pagination> </div> </basic-container> </template> <script> -import {MasterTable, TableData} from "@/api/GetItem"; +import {MasterTable, TableData,FindData} from "@/api/GetItem"; +import {listCodeAttributeByClassId} from '@/api/integration/integration.js' +import integrationTransfer from '@/views/integration/integrationTransfer' +import SetPersonnel from '@/components/template/SetPersonnel' + export default { + components: { + integrationTransfer, + SetPersonnel + }, name: "Crud.vue", - props:{ - page:{ + props: { + page: { type: Object, - default: ()=>{ + default: () => { return {} } }, - codeClassifyOid:{ - type:String, - default:"" + codeClassifyOid: { + type: String, + default: "" }, - coderuleoid:{ - type:String, - default:"" + coderuleoid: { + type: String, + default: "" }, - tableDataArray:{ + tableDataArray: { + type: Array, + }, + total: { + type: String, + default: "" + }, + templateOid: { + type: String, + }, + tableHeadDataFateher: { + type: Array, + }, + isLoading: { + type: Boolean, + default: false + }, + tableHeadFindData:{ 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', + //鍙戝竷 + parameter:{ + ids:['0000','22222222'], + code:'8b5e2017-990f-454a-9c39-4c4eeeb57553', + type:'PUBLIC', + name:'妯℃澘name', + template:'妯℃澘template' + }, + visibleFlow: false, + transferData: [], + transferProps: { + key: 'oid', + label: 'name' + }, + tableHeadFindDatas:[], + templateOid: "", + addvisible: false, + editvisible: false, + findvisible: false, + dialogPush: false, + rowOid: '', disabledProp: ["id"], - editingRow:null, + editingRow: null, editShow: "", - editAttr:"", - loading: false, + editAttr: "", data: [], - options:{}, + options: {}, option: { column: [] }, @@ -138,17 +192,18 @@ number: "number", datetime: "datetime", }, - tableData:[], - tableHeadData:[], - items:{}, - aaa:"" + tableData: [], + DataVisible:false, + tableHeadData: [], + items: {}, + seniorQueryColumns: [], + selectRow: [] } }, - computed:{ - }, + computed: {}, created() { - this.CrudHeaderRend(); - this.$emit('tableData',this.tableData) + // this.CrudHeaderRend(); + // this.tableHeadHandle() }, mounted() { @@ -156,43 +211,96 @@ activated() { this.doLayout() }, - watch:{ - codeClassifyOid:{ - handler(newval,oldval){ - this.codeClassifyOid=newval; + watch: { + codeClassifyOid: { + handler(newval, oldval) { + this.codeClassifyOid = newval; this.CrudHeaderRend() }, - deep:true + deep: true }, - tableDataArray:{ - handler(newval,oldval){ - this.tableData=newval; - this.CrudRend() + tableDataArray: { + handler(newval, oldval) { + this.tableData = newval; } - } + }, + tableHeadFindData:{ + handler(newval, oldval) { + this.tableHeadFindDatas = newval; + } + }, + total: { + handler(newval, oldval) { + this.page.total = newval; + } + }, + // tableHeadDataFateher: { + // handler(newval, oldval) { + // let List = newval.tableDefineVO.cols[0]; + // List.forEach(item => { + // let columnItem = { + // label: item.title, + // prop: item.field, + // type: this.columnType[item.type], + // sortable: item.sort, + // width: item.minWidth + // }; + // this.tableHeadData.push(columnItem); + // console.log('table',this.tableHeadData) + // }) + // } + // } }, methods: { - rend(){ - this.tableData=this.tableHeadData + setHandler() { + this.visibleFlow = true }, - handleSizeChange(val){ - this.page.pageSize=val - this.$emit('pageSize',val) - this.CrudRend() + huishouHandler() { + console.log('tem', this.templateOid) + console.log('table', this.tableData) + console.log('tabheadle', this.tableHeadData) + console.log('tableFather', this.tableHeadDataFateher) }, - handleCurrentChange(val){ - this.page.currentPage=val - this.$emit('currentPage',val) - this.CrudRend() + openD() { + this.dialogPush = true; + this.getListCodeByClassId() + }, + async getListCodeByClassId() { + this.transferData = [] + const response = await listCodeAttributeByClassId({codeClassifyId: this.codeClassifyOid}) + if (response.status === 200) { + const data = response.data.data + this.transferData = data + } + }, + rend() { + this.tableData = this.tableHeadData + }, + handleSizeChange(val) { + this.isLoading = true; + setTimeout(() => { + this.page.pageSize = val + this.$emit('pageSize', val) + this.CrudRend() + }, 3000); + + }, + handleCurrentChange(val) { + this.isLoading = true; + setTimeout(() => { + this.page.currentPage = val + this.$emit('currentPage', val) + this.CrudRend() + }, 3000); }, // 鐩戝惉鍗曞厓鏍肩偣鍑讳簨浠跺苟瀛樺偍姝e湪缂栬緫鐨勮 handleCellClick(row, column) { this.editingRow = row; this.editShow = column.property; + this.rowOid = row.oid }, //鍒犻櫎 enumDeleteRow(row) { - console.log(row) this.tableData.splice(row, 1) }, // 灏嗘鍦ㄧ紪杈戠殑琛岀殑鐘舵�佸彉涓� null 锛屽嵆閫�鍑虹紪杈戠姸鎬� @@ -204,14 +312,29 @@ this.$refs.crud.doLayout(); }); }, + tableHeadHandle() { + this.options = this.tableHeadDataFateher.tableDefineVO.seniorQueryColumns + this.List = this.tableHeadDataFateher.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; + }) + }, //琛ㄦ牸澶存覆鏌� CrudHeaderRend() { - if(this.codeClassifyOid != ""){ + if (this.codeClassifyOid != "") { MasterTable({ - codeClassifyOid:this.codeClassifyOid, + codeClassifyOid: this.codeClassifyOid, functionId: 5, }).then(res => { - this.options=res.data.tableDefineVO.seniorQueryColumns + this.options = res.data.tableDefineVO.seniorQueryColumns this.List = res.data.tableDefineVO.cols[0]; this.List.forEach(item => { let columnItem = { @@ -222,29 +345,29 @@ width: item.minWidth }; this.option.column.push(columnItem); - this.option.column=this.tableHeadData; - this.templateOid=res.data.tableDefineVO.oid - this.$emit('templateOid',this.templateOid) + this.option.column = this.tableHeadData; + this.templateOid = res.data.tableDefineVO.oid + this.$emit('templateOid', this.templateOid) }) }) } }, //琛ㄦ牸鏁版嵁 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; - }) + 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) { - this.loading = true; + this.isLoading = true; let order = "" if (val.order == "ascending") { order = "asc"; @@ -261,12 +384,13 @@ }).then(res => { setTimeout(() => { this.data = res.data.data; - this.loading = false; + this.isLoading = false; }, 100); }) }, //鍒嗛〉鍒锋柊 async onLoad(val) { + console.log('鍒嗛〉', this.templateOid) await TableData({ templateOid: this.templateOid, codeClassifyOid: this.codeClassifyOid, @@ -279,6 +403,47 @@ //澶氶�� handleSelectionChange(row) { console.log(row) + this.rowOid = row.oid + this.selectRow = row + }, + //缂栬緫 + editHandler() { + if (this.selectRow.length <= 0) { + this.$message.warning('璇烽�夋嫨涓�鏉℃暟鎹�') + } else if (this.selectRow.length > 1) { + this.$message.warning('鍙兘閫夋嫨涓�鏉℃暟鎹�') + } else if (this.selectRow[0].lcstatus != 'Editing') { + this.$message.warning('缂栫爜鐘舵�佷笉鏄�滅紪杈戜腑鈥�,涓嶅彲缂栬緫') + } else { + this.editvisible = true + } + }, + //楂樼骇鏌ヨ鎸夐挳 + findHandler(){ + this.findvisible=true; + console.log(this.options) + }, + // 楂樼骇鏌ヨ + echoContion(val) { + console.log(val) + FindData({templateOid:this.templateOid, + codeClassifyOid: this.codeClassifyOid, + ...val + }).then(res=>{ + console.log(res) + }) + }, + //鏁版嵁鏇存敼 + DataChange(){ + if (this.selectRow.length <= 0) { + this.$message.warning('璇烽�夋嫨涓�鏉℃暟鎹�') + } else if (this.selectRow.length > 1) { + this.$message.warning('鍙兘閫夋嫨涓�鏉℃暟鎹�') + } else if (this.selectRow[0].lcstatus != 'Released') { + this.$message.warning('鍙湁鐘舵�佷负宸插彂甯冪殑鏁版嵁鎵嶈兘杩涜鏁版嵁鏇存敼') + } else { + this.DataVisible = true + } } } } -- Gitblit v1.9.3