From fd8a16e3f8c1b731a9840be1fc63f88e4c7ebb24 Mon Sep 17 00:00:00 2001 From: yz3456 <2753272399@qq.com> Date: 星期一, 29 四月 2024 22:11:32 +0800 Subject: [PATCH] 完善了会议申请模块 --- ruoyi-ui/src/views/meeting/index.vue | 496 +++++++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 394 insertions(+), 102 deletions(-) diff --git a/ruoyi-ui/src/views/meeting/index.vue b/ruoyi-ui/src/views/meeting/index.vue index d30da34..e67d8f6 100644 --- a/ruoyi-ui/src/views/meeting/index.vue +++ b/ruoyi-ui/src/views/meeting/index.vue @@ -21,7 +21,7 @@ <hr> - <el-form :model="queryParams1"> +<!-- <el-form :model="queryParams1"> <el-row> <el-form-item label="" prop="people"> <el-input v-model="queryParams1.people" placeholder="璇疯緭鍏ユ悳绱㈠唴瀹�" clearable style="width: 200px; @@ -33,68 +33,196 @@ </el-input> </el-form-item> </el-row> + </el-form> --> + + <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch"> + + <el-form-item label="鏃堕棿" prop="happenTime"> + <el-date-picker + v-model="dateRange" + style="width: 240px; + height: 35px; + border-radius: 16px 16px 16px 16px; + opacity: 0.5;" + value-format="yyyy-MM-dd" + type="daterange" + range-separator="-" + start-placeholder="寮�濮嬫棩鏈�" + end-placeholder="缁撴潫鏃ユ湡" + ></el-date-picker> + </el-form-item> + <el-form-item label="鍦扮偣" prop="place" > + <el-input + v-model="queryParams.place" + placeholder="璇疯緭鍏ュ湴鐐�" + clearable + style="width: 200px; + height: 35px; + border-radius: 16px 16px 16px 16px; + opacity: 0.5;" + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label="鐢宠閮ㄩ棬鎴栧搴�" prop="applyApart" > + <el-input + v-model="queryParams.applyApart" + placeholder="璇疯緭鍏ョ敵璇烽儴闂ㄦ垨瀹跺涵" + clearable + style="width: 200px; + height: 35px; + border-radius: 16px 16px 16px 16px; + opacity: 0.5;" + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <!-- <el-form-item label="鐢宠浜�" prop="applyPerson" > + <el-input + v-model="queryParams.applyPerson" + placeholder="璇疯緭鍏ョ敵璇蜂汉" + clearable + style="width: 200px; + height: 35px; + border-radius: 16px 16px 16px 16px; + opacity: 0.5;" + @keyup.enter.native="handleQuery" + /> + + </el-form-item> --> + + <el-form-item> + <el-button size="mini" @click="handleQuery" style=" width: 65px; height: 32px;background: #FFDDE3; + border-radius: 6px 6px 6px 6px;opacity:1;">鎼滅储</el-button> + <el-button size="mini" @click="resetQuery" style=" width: 65px;height: 32px; background: #FFDDE3; + border-radius: 6px 6px 6px 6px; + opacity: 1;">閲嶇疆</el-button> + </el-form-item> </el-form> - <el-table :data="tableData" border :header-cell-style="{ background: 'pink', fontSize: '13px', color: 'black' }" - :row-class-name="tableRowClassName" :row-key="getRowId"> + <el-row :gutter="10" class="mb8"> + <!-- <el-col :span="1.5"> + <el-button + type="primary" + plain + icon="el-icon-plus" + size="mini" + @click="handleAdd" + v-hasPermi="['system:role:add']" + >鏂板</el-button> + </el-col> --> + + <el-col :span="1.5"> + <el-button + type="danger" + plain + icon="el-icon-delete" + size="mini" + :disabled="multiple" + @click="handleDelete" + v-hasPermi="['system:role:remove']" + >鍒犻櫎</el-button> + + </el-col> + <el-col :span="1.5"> + <el-button + type="warning" + plain + icon="el-icon-download" + size="mini" + @click="handleExport" + v-hasPermi="['family:note:export']" + >瀵煎嚭</el-button> + </el-col> + <el-col :span="1.5"> + <el-button + type="warning" + plain + icon="el-icon-download" + size="mini" + @click="handleExportTemplate" + v-hasPermi="['family:note:export']" + >瀵煎叆妯℃澘涓嬭浇</el-button> + </el-col> + <el-col :span="1.5"> + + <el-upload + action="" + + class="upload-demo" + :show-file-list="false" + :http-request="handleEnport" + > + <el-button size="mini" type="primary" + plain + icon="el-icon-top">瀵煎叆</el-button> + + </el-upload> + </el-col> + + <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> + </el-row> + + + <el-table v-loading="loading" :data="meetingList" :row-key="getRowId" ref="multipleTable" + @selection-change="handleSelectionChange" :row-class-name="tableRowClassName"> + <el-table-column type="selection" :reserve-selection="true" width="55" align="center" /> + + <el-table-column fixed label="搴忓彿" sortable type="index" :index="(queryParams.pageNum-1)*queryParams.pageSize+1" width="80px"/> <el-table-column label="鏍囬" prop="title" sortable align="center"> <template slot-scope="scope">{{ scope.row.title ? scope.row.title : '鈥斺�斺�斺��' }}</template> </el-table-column> - <el-table-column label="鍦扮偣" prop="address" sortable align="center"> + <el-table-column label="鍦扮偣" prop="place" sortable align="center"> <template slot-scope="scope">{{ - scope.row.address ? scope.row.address : '鈥斺�斺�斺��' }}</template> + scope.row.place ? scope.row.place : '鈥斺�斺�斺��' }}</template> </el-table-column> - <el-table-column label="鍙绾充汉鏁�" prop="capacity" sortable align="center"> + <el-table-column label="鍙绾充汉鏁�" prop="conPeople" sortable align="center" min-width="150"> <template slot-scope="scope">{{ - scope.row.capacity ? scope.row.capacity : '鈥斺�斺�斺��' }}</template> + scope.row.conPeople ? scope.row.conPeople : '鈥斺�斺�斺��' }}</template> </el-table-column> - <el-table-column label="鍙備笌浜烘暟" prop="persons" sortable align="center"> + <el-table-column label="鍙備笌浜烘暟" prop="partPeople" sortable align="center" min-width="120"> <template slot-scope="scope">{{ - scope.row.persons ? scope.row.persons : '鈥斺�斺�斺��' }}</template> + scope.row.partPeople ? scope.row.partPeople : '鈥斺�斺�斺��' }}</template> </el-table-column> - <el-table-column label="鐢宠浜�" prop="applicant" sortable align="center"> + <el-table-column label="鐢宠浜�" prop="applyPerson" sortable align="center" min-width="120"> <template slot-scope="scope">{{ - scope.row.applicant ? scope.row.applicant : '鈥斺�斺�斺��' }}</template> + scope.row.applyPerson ? scope.row.applyPerson : '鈥斺�斺�斺��' }}</template> </el-table-column> - <el-table-column label="鐢宠閮ㄩ棬鎴栧搴�" prop="applyOrganization" sortable align="center"> + <el-table-column label="鐢宠閮ㄩ棬鎴栧搴�" prop="applyApart" sortable align="center" min-width="150"> <template slot-scope="scope">{{ - scope.row.applyOrganization ? scope.row.applyOrganization : '鈥斺�斺�斺��' }}</template> + scope.row.applyApart ? scope.row.applyApart : '鈥斺�斺�斺��' }}</template> </el-table-column> - <el-table-column label="寮�濮嬫椂闂�" prop="begin" sortable align="center"> - <template slot-scope="scope">{{ scope.row.begin - ? scope.row.begin : '鈥斺�斺�斺��' }}</template> + <el-table-column label="寮�濮嬫椂闂�" prop="startTime" sortable align="center"min-width="120"> + <template slot-scope="scope">{{ scope.row.startTime + ? scope.row.startTime : '鈥斺�斺�斺��' }}</template> </el-table-column> - <el-table-column label="缁撴潫鏃堕棿" prop="end" sortable align="center"> - <template slot-scope="scope">{{ scope.row.end ? - scope.row.end : '鈥斺�斺�斺��' }}</template> + <el-table-column label="缁撴潫鏃堕棿" prop="endTime" sortable align="center" min-width="120"> + <template slot-scope="scope">{{ scope.row.endTime ? + scope.row.endTime : '鈥斺�斺�斺��' }}</template> </el-table-column> - <el-table-column label="鏄惁鎽嗘斁姘寸墝" prop="card" sortable align="center"> - <template slot-scope="scope">{{ scope.row.card - ? scope.row.card : '鈥斺�斺�斺��' }}</template> + <el-table-column label="鏄惁鎽嗘斁姘寸墝" prop="isPlacebrand" sortable align="center" min-width="150"> + <template slot-scope="scope">{{scope.row.isPlacebrand===1? '鏄�': '鍚�'}}</template> </el-table-column> - <el-table-column label="鑱旂郴浜�" prop="name" sortable align="center"> - <template slot-scope="scope">{{ scope.row.name ? - scope.row.name : '鈥斺�斺�斺��' }}</template> + <el-table-column label="鑱旂郴浜�" prop="connPerson" sortable align="center" min-width="100"> + <template slot-scope="scope">{{ scope.row.connPerson ? + scope.row.connPerson : '鈥斺�斺�斺��' }}</template> </el-table-column> - <el-table-column label="鑱旂郴鐢佃瘽" prop="phone" sortable align="center"> - <template slot-scope="scope">{{ scope.row.phone - ? scope.row.phone : '鈥斺�斺�斺��' }}</template> + <el-table-column label="鑱旂郴鐢佃瘽" prop="connPhone" sortable align="center" min-width="100"> + <template slot-scope="scope">{{ scope.row.connPhone + ? scope.row.connPhone : '鈥斺�斺�斺��' }}</template> </el-table-column> - <el-table-column label="鐘舵��" prop="status" sortable align="center"> - <template slot-scope="scope">{{ scope.row.status - ? scope.row.status : '鈥斺�斺�斺��' }}</template> + <el-table-column label="鐘舵��" prop="statu" sortable align="center"> + <template slot-scope="scope">{{scope.row.statu===1? '鍚屾剰': '鎷掔粷'}}</template> </el-table-column> <el-table-column label="鎿嶄綔" align="center" width="200" class-name="small-padding fixed-width"> @@ -108,17 +236,78 @@ </el-table-column> </el-table> + <pagination + v-show="total>0" + :total="total" + :page.sync="queryParams.pageNum" + :limit.sync="queryParams.pageSize" + @pagination="getList" + style="background: #FEF7FC;" + /> - +<!-- 鏂板瀵硅瘽妗� --> <el-dialog :title="title" :visible.sync="open" width="1000px" append-to-body> - <el-form ref="elForm" :model="formData" :rules="rules" size="medium" label-width="100px"> - <el-form-item label="鏃堕棿" prop="timeSpan"> - <el-date-picker v-model="formData.timeSpan" type="datetimerange" range-separator="鑷�" start-placeholder="寮�濮嬫棩鏈�" - end-placeholder="缁撴潫鏃ユ湡" value-format="yyyy-MM-dd HH:mm:ss"> - </el-date-picker> + <el-form ref="elForm" :model="formDat" :rules="rules" size="medium" label-width="100px"> + + <el-form-item label="寮�濮嬫椂闂�" prop="startTime"> + <el-date-picker v-model="formDat.startTime" type="datetime" placeholder="璇烽�夋嫨鏃ユ湡" + :editable="false" :clearable="false" :style="{width: '100%'}" value-format="yyyy-MM-dd" + ></el-date-picker> </el-form-item> + <el-form-item label="缁撴潫鏃堕棿" prop="endTime"> + <el-date-picker v-model="formDat.endTime" type="datetime" placeholder="璇烽�夋嫨鏃ユ湡" + :editable="false" :clearable="false" :style="{width: '100%'}" value-format="yyyy-MM-dd" + ></el-date-picker> + </el-form-item> + + <el-form-item label="鏍囬" prop="title"> + <el-input v-model="formDat.title" placeholder="璇疯緭鍏ヤ細璁爣棰�" clearable :style="{width: '100%'}"> + </el-input> + </el-form-item> + <el-form-item label="鍦扮偣" prop="place"> + <el-input v-model="formDat.place" placeholder="璇疯緭鍏ヤ細璁湴鐐�" clearable :style="{width: '100%'}"> + </el-input> + </el-form-item> + <el-form-item label="鍙绾充汉鏁�" prop="conPeople"> + <el-input v-model="formDat.conPeople" placeholder="璇疯緭鍏ュ彲瀹圭撼浜烘暟" clearable :style="{width: '100%'}"> + </el-input> + </el-form-item> + + <el-form-item label="鍙備笌浜烘暟" prop="partPeople"> + <el-input v-model="formDat.partPeople" placeholder="璇疯緭鍏ュ弬涓庝汉鏁�" clearable :style="{width: '100%'}"> + </el-input> + </el-form-item> + <el-form-item label="鐢宠浜�" prop="applyPerson"> + <el-input v-model="formDat.applyPerson" placeholder="璇疯緭鍏ョ敵璇蜂汉" clearable :style="{width: '100%'}"> + </el-input> + </el-form-item> + <el-form-item label="鐢宠瀹跺涵鎴栭儴闂�" prop="applyApart"> + <el-input v-model="formDat.applyApart" placeholder="璇疯緭鍏ョ敵璇峰搴垨閮ㄩ棬" clearable :style="{width: '100%'}"> + </el-input> + </el-form-item> + <el-form-item label="鏄惁鎷滆姘寸墝" prop="isPlacebrand"> + <el-select v-model="formDat.isPlacebrand" placeholder="璇烽�夋嫨" clearable :style="{width: '100%'}"> + <el-option v-for="(item, index) in typeOptions" :key="index" :label="item.label" :value="item.value" + ></el-option> + </el-select> + </el-form-item> + <el-form-item label="鑱旂郴浜�" prop="connPerson"> + <el-input v-model="formDat.connPerson" placeholder="璇疯緭鍏ヨ仈绯讳汉" clearable :style="{width: '100%'}"> + </el-input> + </el-form-item> + <el-form-item label="鑱旂郴鐢佃瘽" prop="connPhone"> + <el-input v-model="formDat.connPhone" placeholder="璇疯緭鍏ヨ仈绯荤數璇�" clearable :style="{width: '100%'}"></el-input> + </el-form-item> + <el-form-item label="鐘舵��" prop="statu"> + <el-select v-model="formDat.statu" placeholder="璇烽�夋嫨" clearable :style="{width: '100%'}"> + <el-option v-for="(item, index) in typeOptions2" :key="index" :label="item.label" :value="item.value" + ></el-option> + </el-select> + </el-form-item> + + </el-form> </el-upload> </el-form> @@ -128,79 +317,123 @@ </div> </el-dialog> + + </div> </template> <script> + import { listRole, getRole, delRole, addRole, updateRole, dataScope, changeRoleStatus, deptTreeSelect } from "@/api/system/role"; + import { treeselect as menuTreeselect, roleMenuTreeselect } from "@/api/system/menu"; + + + import { Notification, MessageBox, Message, Loading } from 'element-ui' + + //鍦╯ystem/note/index.js涓鍏ユ帴鍙e嚱鏁� --鎺ュソ浜� + import {listMeeting,getMeetingInfo,addMeeting,enload,uploadPic,download,delMeeting,updateMeeting} from "@/api/meeting/index"; export default { + created() { + this.getList(); + }, data() { return { + // 鏄剧ず鎼滅储鏉′欢 + loading: true, + showSearch: true, open: false, title: "", - tableData: [{ - title: '1', - name: 'asasd', - address: 'asdadsdasd', - id: 1, - age: '30' - }, - { - title: '2', - name: 'qweqwqwe', - address: 'qweqweqwe', - id: 2, - age: '30' - }, - { - title: '3', - name: 'zxczxczxc', - address: 'zxczxczcx', - id: 3, - age: '30' - }, - { - title: '4', - name: 'fghfghfh', - address: 'fghfghfgh', - id: 4, - age: '30' - }, - { - title: '5', - name: 'rtyrtyrty', - address: 'rtyrtyrty', - id: 5, - age: '30' - }, - { - title: '6', - name: 'yuiyuiyui', - address: 'yuiyuiyui', - id: 6, - age: '30' - }, - { - title: '7', - name: 'hjkljkljk', - address: 'jkljklhlkjl', - id: 7, - age: '30' - }, - ], - formData:{ - timeSpan: undefined, - }, - queryParams1: { - pageNum: 1, - pageSize: 10, - happenTime: undefined, - people: undefined, - address: undefined, + // 鎬绘潯鏁� + total: 0, + meetingList: [], + formDat:{ + id: undefined, title: undefined, - remark: undefined - } + place: undefined, + conPeople: undefined, + partPeople: undefined, + applyPerson: undefined, + applyApart: undefined, + startTime: undefined, + endTime: undefined, + happenStartTime: undefined, + happenEndTime: undefined, + isPlacebrand: undefined, + connPerson: undefined, + connPhone: undefined, + statu: undefined, + createTime: undefined + }, + queryParams: { + pageNum: 1, + pageSize: 10, + place:undefined, + apply_Apart:undefined, + start_Time:undefined, + applyPerson:undefined + }, + dateRange: [], + // 琛ㄥ崟鏍¢獙 + rules: { + + }, + typeOptions: [ + { + value: '1', + label: '鏄�', + }, + { + value: '0', + label: '鍚�', + } + ], + typeOptions2: [ + { + value: '1', + label: '鍚屾剰', + }, + { + value: '0', + label: '鎷掔粷', + } + ], } }, methods: { + // 澶氶�夋閫変腑鏁版嵁 + handleSelectionChange(selection) { + this.ids = selection.map(item => item.id) + // alert(this.ids) + this.single = selection.length!=1 + this.multiple = !selection.length + }, + getList() { + this.loading = true; + // console.log(this.queryParams) + // listProperty(this.addDateRange(this.queryParams, this.dateRange)).then(response => { + this.queryParams.happenStartTime = this.dateRange.length > 0 && this.dateRange[0] + this.queryParams.happenEndTime = this.dateRange.length > 0 && this.dateRange[1] + listMeeting(this.queryParams).then(response => { + // alert(123) + console.log(response.data.data,'111111') + this.meetingList = response.data.data; + + this.total = response.data.total; + this.loading = false; + } + + ); + }, + /** 鎼滅储鎸夐挳鎿嶄綔 */ + handleQuery() { + this.queryParams.pageNum = 1; + this.getList(); + }, + /** 閲嶇疆鎸夐挳鎿嶄綔 */ + resetQuery() { + this.dateRange = []; + this.resetForm("queryForm"); + this.handleQuery(); + }, + newRequest(){ this.open = true; @@ -210,9 +443,30 @@ this.open = false; // this.reset(); }, - submitDataScope() { - console.log(this.formData.timeSpan) - }, +submitDataScope: function() { + this.$refs["elForm"].validate(valid => { + // alert(valid) + if (valid) { + addMeeting(this.formDat).then(response => { + this.$modal.msgSuccess("鏂板鎴愬姛"); + this.open = false; + // 娓呯┖formDat瀵硅薄鐨勬暟鎹� + Object.keys(this.formDat).forEach(key => { + this.formDat[key] = ''; + }); + // for(let i = 0; i <= this.fileList.length; i++) + // { + // this.handleRemove(this.fileList[0]); + // } + // for(let i = 0; i < this.fileListOther.length; i++){ + // this.handleRemoveFile(this.fileListOther[0]); + // } + this.getList(); + }); + } + }); + + }, tableRowClassName({ row, @@ -249,12 +503,50 @@ handleDelete(row) { const Ids = row.id || this.ids; this.$modal.confirm('鏄惁纭鍒犻櫎鏁版嵁椤癸紵').then(function() { - return delSelfEconomy(Ids); + return delMeeting(Ids); }).then(() => { this.getList(); this.$modal.msgSuccess("鍒犻櫎鎴愬姛"); }).catch(() => {}); }, + /** 瀵煎嚭鎸夐挳鎿嶄綔 */ + handleExport() { + const Ids = this.ids; + + if(Ids.length==0) + { + this.download('/zMeeting/export', { + ...this.queryParams + }, `zMeeting_${new Date().getTime()}.xlsx`) + } + else{ + this.download('/zMeeting/export1/'+Ids, { + }, `zMeeting_${new Date().getTime()}.xlsx`) + } + }, + /** 瀵煎叆妯℃澘涓嬭浇鎿嶄綔*/ + handleExportTemplate() + { + this.download('/zMeeting/model', { + + }, `zMeeting_${new Date().getTime()}.xlsx`) + }, + /** 瀵煎叆鎿嶄綔*/ + handleEnport(params){ + var file = params.file; + var formData = new FormData(); + formData.append('excelImport', file); + let _this = this + enload(formData).then(response => { + _this.getList(); + Message({ message: "瀵煎叆鎴愬姛", type: 'warning' }) + + }).catch(err) + { + Message({ message: "瀵煎叆澶辫触", type: 'error' }) + } + + }, } } -- Gitblit v1.9.1