From da6cc144cc4d60805e4693e4adc5ebdf78b5b37d Mon Sep 17 00:00:00 2001 From: 田源 <lastanimals@163.com> Date: 星期一, 18 九月 2023 16:44:50 +0800 Subject: [PATCH] 集成系统-查询字段修改 --- Source/UBCS-WEB/src/components/file/main.vue | 375 ++++++++++++++++++++++++++++++++++++++++------------- 1 files changed, 284 insertions(+), 91 deletions(-) diff --git a/Source/UBCS-WEB/src/components/file/main.vue b/Source/UBCS-WEB/src/components/file/main.vue index 04d3498..8444c92 100644 --- a/Source/UBCS-WEB/src/components/file/main.vue +++ b/Source/UBCS-WEB/src/components/file/main.vue @@ -1,35 +1,42 @@ <template> <basic-container> <avue-crud :option="option" - :table-loading="loading" - :data="data" - :page.sync="page" - :permission="permissionList" - :before-open="beforeOpen" - v-model="form" - ref="crud" - @row-del="rowDel" - @search-change="searchChange" - @search-reset="searchReset" - @selection-change="selectionChange" - @current-change="currentChange" - @size-change="sizeChange" - @refresh-change="refreshChange" - @on-load="onLoad"> + :table-loading="loading" + :data="data" + :page.sync="page" + :before-open="beforeOpen" + :permission="permissionList" + v-model="form" + ref="crud" + @row-del="rowDel" + @search-change="searchChange" + @search-reset="searchReset" + @selection-change="selectionChange" + @row-click="selectedRowClick" + @current-change="currentChange" + @size-change="sizeChange" + @refresh-change="refreshChange" + @on-load="onLoad"> <template slot="menuLeft"> - <el-button type="primary" + <el-button v-if="hasUpload" type="primary" size="small" plain icon="el-icon-upload2" @click="handleUpload">涓� 浼� </el-button> - <el-button type="primary" + <el-button v-if="hasEdit" type="primary" size="small" plain icon="el-icon-edit" @click="handleEdit">淇� 鏀� </el-button> - <el-button type="danger" + <el-button v-if="hasDownload" type="primary" + size="small" + icon="el-icon-download" + plain + @click="handleDownload">涓� 杞� + </el-button> + <el-button v-if="hasDel" type="danger" size="small" icon="el-icon-delete" plain @@ -37,18 +44,18 @@ </el-button> </template> <template slot-scope="scope" slot="menu"> - <el-button type="text" + <el-button v-if="hasDownload" type="text" icon="el-icon-download" size="small" @click="handleDownload(scope.row)">涓嬭浇 </el-button> </template> </avue-crud> - <el-dialog title="涓婁紶闄勪欢鍒楄〃" + <el-dialog title="闄勪欢绠$悊" append-to-body :visible.sync="attachBox" width="555px"> - <avue-form ref="form" :option="attachOption" v-model="attachForm" :upload-before="uploadBefore" :upload-after="uploadAfter" :upload-error="uploadError"> + <avue-form ref="form" :option="attachOption" v-model="attachForm" :upload-before="uploadBefore" :upload-after="uploadAfter" :upload-error="uploadError"> </avue-form> </el-dialog> </basic-container> @@ -57,16 +64,18 @@ <script> import {getList, getFile,upload,update, remove,download} from "@/api/resource/file"; import {mapGetters} from "vuex"; -import {dateFormat} from "@/util/date"; +import {validatenull} from "@/util/validate"; +import func from "@/util/func"; export default { - props: ["options","visible"], + props: ["options","visible","ownbizOid"], data() { return { form: {}, query: {}, params:{}, loading: false, + hasPage:this.options.hasPage||false, page: { pageSize: 10, currentPage: 1, @@ -74,11 +83,15 @@ }, attachBox: false, selectionList: [], + hasUpload:validatenull(this.options.hasUpload) ? true :this.options.hasUpload, + hasEdit:validatenull(this.options.hasEdit) ? true :this.options.hasEdit, + hasDel:validatenull(this.options.hasDel) ? true :this.options.hasDel, + hasDownload:validatenull(this.options.hasDownload) ? true :this.options.hasDownload, option: { - height: 'auto', + height:(this.options.tableHeight?this.options.tableHeight:'400'), calcHeight: 30, tip: false, - searchShow: true, + searchShow: false, searchMenuSpan: 6, border: true, index: true, @@ -140,98 +153,251 @@ }, ] }, - data: [{ - btmname: "fileobject", - createTime: "2023-06-14 16:08:50.002", - creator: "1", - fileDocClassify: "undefined", - fileDocClassifyName: null, - fileExtension: "png", - filePath: "VolumnFactoryService:/f87a4c92-ce6e-458b-aad0-0c76bd5eeb35\\54120082-76aa-4092-abbf-b13cb40606c5", - fileSize: 858, - id: "assignRole", - name: "assignRole", - nameOid: "9FF4C05D-4EFA-F00B-0080-5ABB50257D4E", - oid: "54120082-76aa-4092-abbf-b13cb40606c5", - ownBtmname: "wupin", - ownbizOid: "6EF696C3-CD87-0E7C-1EA1-8DE3913A95C9", - owner: "1", - secretGrade: null, - secretGradeText: null - }], + columnType: { + text: "input", + combox: "select", + truefalse: "switch", + number: "number", + textarea: "textarea", + datetime: "datetime", + date: "date", + refer: "refer", + }, + data: [], attachForm: {}, attachOption: { - submitBtn: true, - emptyBtn: true, - column: [ - { - label: '闄勪欢涓婁紶', - prop: 'attachFile', - type: 'upload', - dragFile: true, - loadText: '鏂囦欢涓婁紶涓紝璇风◢绛�', - span: 24, - propsHttp: { - res: 'data' - }, - action: "/api/ubcs-resource/fileController/uploadFile" - } + submitBtn: false, + emptyBtn: false, + column: [{ + prop: 'fileDocClassify', + label: '鏂囦欢绫诲瀷', + props: { + label: 'value', + value: 'key' + }, + change: () => { + (!!this.options.fileDocClassifyCombox) && this.changeFun('fileDocClassify'); + }, + blur: () => { + (!this.options.fileDocClassifyCombox) && this.changeFun('fileDocClassify'); + }, + value: this.options.fileDocClassify || "ADMIN_SHARE", + type: (!this.options.fileDocClassifyCombox) ? 'input' : 'select', + dicData: (this.options.fileDocClassifyCombox || []),//[{key: 'text', value: '鏂囨湰妗�'}] + display: (!!this.options.fileDocClassifyCombox) + }, { + label: '闄勪欢涓婁紶', + prop: 'attachFile', + type: 'upload', + dragFile: true, + showFileList:false, + accept: this.options.uploadAccept || 'file', + loadText: '鏂囦欢涓婁紶涓紝璇风◢绛�', + span: 24, + propsHttp: { + res: 'data' + }, + data: { + ownbizOid:this.options.ownbizOid || "share", + ownBtmName:this.options.ownbizBtm || "share", + fileDocClassify:this.options.fileDocClassify || "ADMIN_SHARE", + fileDocClassifyName:this.options.fileDocClassifyName || "绠$悊鍛樺叡浜枃浠�" + }, + action: "/api/ubcs-resource/fileController/uploadFile" + } ] } }; }, computed: { - ...mapGetters(["permission"]), + ...mapGetters([ "permission"]), permissionList() { return { addBtn: false, - editBtn: false, viewBtn: false, - delBtn: this.vaildData(this.permission.attach_delete, false) + delBtn: this.vaildData(this.permission.attach_delete, false), + editBtn: false }; }, - ids() { - let ids = []; + oids() { + let oids = []; this.selectionList.forEach(ele => { - ids.push(ele.id); + oids.push(ele.oid); }); - return ids.join(","); + return oids.join(","); + } + }, + created() { + this.setFormItem(); + this.setParams() + }, + mounted() { + + }, + watch:{ + ownbizOid(val){ + this.setParams() + this.refreshChange() } }, methods: { - setParams(){ - var params={ - ownbizOid:options.ownbizOid || '6EF696C3-CD87-0E7C-1EA1-8DE3913A95C9', - ownbizBtm:options.ownbizBtm || 'wupin', - fileDocClassify:options.fileDocClassify || '!=processAuditSuggest' + setFormItem(){ + /*this.options.formItems=[{ + field: 'fileDocClassify11', + title: '鏂囦欢绫诲瀷', + type: 'combox', + data: [{key: 'text', value: '鏂囨湰妗�'},{key: 'number', value: '鏁板瓧妗�'}] + }]*/ + if(this.options && this.options.formItems){ + this.options.formItems.forEach(item => { + // 璁剧疆琛ㄥ崟鏍¢獙鐨勮鍒欙紝鏂囨湰 + let message = "璇烽�夋嫨"; + let trigger = "change"; + if (item.type === "text") { + message = "璇疯緭鍏�"; + trigger = "blur"; + } + this.attachOption.column.push( { + ...item, + label: item.title, + prop: item.field, + display: !item.hidden, + value: item.defaultValue, + disabled: item.readOnly, + type: this.columnType[item.type], + dicData: this.getDataList(item.type, item.data), + change: () => { + if(item.type !== "text" && item.type !== "number" && item.type !== "textarea"){ + this.changeFun(item.field); + } + }, + blur: () => { + if(item.type == "text" || item.type == "number" || item.type == "textarea"){ + this.changeFun(item.field); + } + }, + rules: [ + { + required: item.required, + message: `璇�${message}${item.title}`, + trigger, + }, + { + // 濡傛灉娌℃湁姝e垯鍒欏尮閰嶄换浣曞瓧绗� + pattern: item.verify ? item.verify : /[\s\S.]*/g, + message: item.tooltips, + trigger, + }, + ], + props: { + label: 'value', + value: 'key' + } + }) + }) } - this.params=params; + }, + changeFun( prop) { + this.attachOption.column[1].data[prop]=this.attachForm[prop] + }, + getDataList(type, dicData) { + if (type === "truefalse") { + return [ + { + key: false, + value: "鍚�", + }, + { + key: true, + value: "鏄�", + }, + ]; + } else if (type === "combox") { + return dicData; + } + return []; + }, + setParams() { + var queryMap = { + currentButtonKey: 'VIEW', + ownbizOid: this.options.ownbizOid || "share", + ownBtmName: this.options.ownbizBtm || "share", + fileDocClassify: this.options.fileDocClassify || "ADMIN_SHARE", + fileDocClassifyName: this.options.fileDocClassifyName || "绠$悊鍛樺叡浜枃浠�" + }; + if (this.options.where) { + Object.assign(queryMap, this.options.where); + } + this.params = queryMap; + + if (!this.options.pageObject) { + this.options.pageObject = { + limit: 10, + page: 1 + }; + } + this.page.pageSize = this.options.pageObject.limit; + this.page.currentPage = this.options.pageObject.page; + + this.attachOption.column[1].data.ownbizOid = this.options.ownbizOid || "share"; + this.attachOption.column[1].data.ownBtmName = this.options.ownbizBtm || "share"; + this.attachOption.column[1].data.fileDocClassify = this.options.fileDocClassify || "ADMIN_SHARE"; + this.attachOption.column[1].data.fileDocClassifyName = this.options.fileDocClassifyName || "绠$悊鍛樺叡浜枃浠�" + }, handleUpload() { + this.attachOption.column[1].data.fileOid=''; + delete this.attachOption.column[1].data.oid; + delete this.attachOption.column[1].data.updateFileFlag; this.attachBox = true; }, handleEdit() { + if(this.selectionList.length==0){ + this.$message.warning('璇烽�夋嫨闇�瑕佷慨鏀圭殑鏂囦欢') + return false; + }else if(this.selectionList.length>1){ + this.$message.warning('璇烽�夋嫨涓�鏉℃暟鎹�') + return false; + } + this.attachOption.column[1].data.fileOid=this.oids; + this.attachOption.column[1].data.oid=this.oids; + this.attachOption.column[1].data.updateFileFlag=true this.attachBox = true; }, uploadBefore(file, done, loading,column) { - console.log(file,column) - //濡傛灉浣犳兂淇敼file鏂囦欢,鐢变簬涓婁紶鐨刦ile鏄彧璇绘枃浠讹紝蹇呴』澶嶅埗鏂扮殑file鎵嶅彲浠ヤ慨鏀瑰悕瀛楋紝瀹屽悗璧嬪�煎埌done鍑芥暟閲�,濡傛灉涓嶄慨鏀圭殑璇濈洿鎺ュ啓done()鍗冲彲 - var newFile = new File([file], '1234', { type: file.type }); - done(newFile) - this.$message.success('涓婁紶鍓嶇殑鏂规硶') + done(); }, uploadAfter(res, done, loading, column) { - window.console.log(column); this.attachBox = false; + this.$message.success('鏂囦欢涓婁紶鎴愬姛') this.refreshChange(); done(); }, uploadError(error, column) { - this.$message.success('涓婁紶澶辫触鍥炶皟') - console.log(error, column) + this.$message.error(error || '涓婁紶鏂囦欢鍑虹幇浜嗗紓甯�') }, handleDownload(row) { - window.open(`${row.link}`); + //window.open(`${row.link}`); + let data=new FormData(); + if(row && row.oid){ + data.append('fileOids',row.oid) + this.downloadFile(data); + }else{ + if (this.selectionList.length === 0) { + this.$message.warning("璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹�"); + return; + } + data.append('fileOids',this.oids) + this.downloadFile(data); + } + }, + downloadFile(data){ + download(data).then(res=>{ + // console.log(res); + if(res){ + func.downloadFileByBlobHandler(res); + } + }); }, rowDel(row) { this.$confirm("纭畾灏嗛�夋嫨鏂囦欢鍒犻櫎?", { @@ -240,7 +406,7 @@ type: "warning" }) .then(() => { - return remove(row.id); + return remove([row.oid]); }) .then(() => { this.onLoad(this.page); @@ -261,7 +427,7 @@ type: "warning" }) .then(() => { - return remove(this.ids); + return remove(this.oids.split(',')); }) .then(() => { this.onLoad(this.page); @@ -287,11 +453,18 @@ searchChange(params, done) { this.query = params; this.page.currentPage = 1; - this.onLoad(this.page, params); + this.onLoad(this.page); done(); }, selectionChange(list) { this.selectionList = list; + this.$refs.crud.setCurrentRow(this.selectionList[list.length-1]); + }, + selectedRowClick(row){ + this.selectionList = row; + this.$refs.crud.toggleSelection(); + this.$refs.crud.setCurrentRow(row); + this.$refs.crud.toggleRowSelection(row); //閫変腑褰撳墠琛� }, selectionClear() { this.selectionList = []; @@ -304,18 +477,38 @@ this.page.pageSize = pageSize; }, refreshChange() { - this.onLoad(this.page, this.query); + this.onLoad(this.page); }, - onLoad(page, params) { - //this.loading = true; - params=this.params || {} - /*getList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => { + onLoad(page, params={}) { + this.loading = true; + var query={} + if (this.query) { + for (var key in this.query) { + query['conditionMap["' + key + '"]'] = this.query[key]; + } + } + getList(page.currentPage, page.pageSize, Object.assign(params,this.params, query,this.query)).then(res => { const data = res.data.data; this.page.total = data.total; - this.data = data.records; + if(this.options.fileDocClassifyCombox){ + this.data = data.records.map(item => { + if(validatenull(item.fileDocClassifyName)&& !validatenull(item.fileDocClassify)){ + item.fileDocClassifyName = this.options.fileDocClassifyCombox[item.fileDocClassify] || ''; + } + return { + ...item + } + }) + }else{ + this.data = data.records; + } + this.loading = false; this.selectionClear(); - });*/ + }).catch(error=>{ + this.$message.error(error); + this.loading = false; + }); } } }; -- Gitblit v1.9.3