| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <TableLayout :permissions="['business:rooms:query']"> |
| | | <!-- æç´¢è¡¨å --> |
| | | <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline> |
| | | <el-form-item label="ä¼è®®å®¤åç§°" prop="name"> |
| | | <el-input v-model="searchForm.name" placeholder="请è¾å
¥åç§°" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="管çå" prop="sysList"> |
| | | <el-select |
| | | v-model="searchForm.sysList" |
| | | filterable |
| | | clearable |
| | | multiple |
| | | placeholder="éæ©é¨é¨æå" |
| | | > |
| | | <el-option |
| | | v-for="item in userList" |
| | | :key="item.id" |
| | | :value="item.id" |
| | | :label="item.department?`${item.department.name}-${item.realname}`:item.realname" |
| | | ></el-option> |
| | | <!-- :label="`${item.department.name}-${item.realname}`" --> |
| | | <!-- <el-option :key="1" :value="1" label="ç¦ç¨" /> --> |
| | | </el-select> |
| | | </el-form-item> |
| | | |
| | | <section> |
| | | <el-button type="primary" @click="search">æç´¢</el-button> |
| | | <!-- <el-button type="primary" :loading="isWorking.export" v-permissions="['business:rooms:exportExcel']" @click="exportExcel">导åº</el-button> --> |
| | | <el-button @click="reset">éç½®</el-button> |
| | | </section> |
| | | </el-form> |
| | | <!-- è¡¨æ ¼åå页 --> |
| | | <template v-slot:table-wrap> |
| | | <ul class="toolbar" v-permissions="['business:rooms:create']"> |
| | | <li><el-button type="primary" @click="$refs.operaRoomsWindow.open('æ°å»ºä¼è®®å®¤')" v-permissions="['business:rooms:create']">æ°å»º</el-button></li> |
| | | <!-- <li><el-button @click="deleteByIdInBatch" v-permissions="['business:rooms:delete']">å é¤</el-button></li> --> |
| | | </ul> |
| | | <el-table |
| | | v-loading="isWorking.search" |
| | | :data="tableData.list" |
| | | stripe |
| | | border |
| | | @selection-change="handleSelectionChange" |
| | | > |
| | | <!-- <el-table-column type="selection" width="55"></el-table-column> --> |
| | | <el-table-column prop="name" label="ä¼è®®å®¤åç§°" align="center" min-width="120px" show-overflow-tooltip> |
| | | <template slot-scope="{row}"> |
| | | <span class="long-title-style">{{ row.name }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="startTime" label="弿¾æ¶é´" align="center" min-width="120px"> |
| | | <template slot-scope="{row}"> |
| | | {{ `${row.startTime}-${row.endTime}` }} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="intervalTime" label="ç²åº¦ï¼åéï¼" align="center" min-width="100px"></el-table-column> |
| | | <el-table-column prop="limitNum" label="容纳人æ°" align="center" min-width="100px"></el-table-column> |
| | | <el-table-column prop="limitNum" label="管çå" min-width="140px" align="center" show-overflow-tooltip> |
| | | <template slot-scope="{row}"> |
| | | <span class="long-title-style">{{ row.sysList.map(item => item.realName).join(',') }}</span> |
| | | |
| | | <!-- <ul> |
| | | <li v-for="sys in row.sysList" :key="sys.id">{{sys.realName}}</li> |
| | | </ul> --> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="limitNum" label="å¯éæå¡é¡¹" align="center" min-width="140px" show-overflow-tooltip> |
| | | <template slot-scope="{row}"> |
| | | <div class="long-title-style">{{ row.projectList.map(item => item.projectName).join('|') }}</div> |
| | | |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="status" label="ç¶æ" align="center" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <el-switch |
| | | v-model="row.status" |
| | | active-color="#13ce66" |
| | | inactive-color="#999" |
| | | :active-value="0" |
| | | :inactive-value="1" |
| | | @change="changeStatus(row)" |
| | | ></el-switch> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="createDate" label="å建æ¶é´" align="center" min-width="140px"></el-table-column> |
| | | <!-- <el-table-column prop="editor" label="æ´æ°äººç¼ç " min-width="100px"></el-table-column> |
| | | <el-table-column prop="editDate" label="æ´æ°æ¶é´" min-width="100px"></el-table-column> |
| | | <el-table-column prop="isdeleted" label="æ¯å¦å é¤0å¦ 1æ¯" min-width="100px"></el-table-column> |
| | | <el-table-column prop="remark" label="夿³¨" min-width="100px"></el-table-column> |
| | | <el-table-column prop="imgurl" label="ä¼è®®å®¤å¾ç" min-width="100px"></el-table-column> |
| | | <el-table-column prop="tips" label="使ç¨é¡»ç¥" min-width="100px"></el-table-column> |
| | | <el-table-column prop="status" label="ç¶æ 0å¯ç¨ 1ç¦ç¨" min-width="100px"></el-table-column> --> |
| | | <el-table-column |
| | | v-if="containPermissions(['business:rooms:update', 'business:rooms:delete'])" |
| | | label="æä½" |
| | | min-width="120" |
| | | fixed="right" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <el-button type="text" @click="$refs.operaRoomsWindow.open('ç¼è¾ä¼è®®å®¤', row)" v-permissions="['business:rooms:update']">ç¼è¾</el-button> |
| | | <el-button type="text" @click="deleteById(row)" v-permissions="['business:rooms:delete']">å é¤</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <pagination |
| | | @size-change="handleSizeChange" |
| | | @current-change="handlePageChange" |
| | | :pagination="tableData.pagination" |
| | | ></pagination> |
| | | </template> |
| | | <!-- æ°å»º/ä¿®æ¹ --> |
| | | <OperaRoomsWindow ref="operaRoomsWindow" @success="handlePageChange"/> |
| | | <!-- <selectMember ref="selectMember" @done=""/> --> |
| | | </TableLayout> |
| | | </template> |
| | | |
| | | <script> |
| | | import BaseTable from '@/components/base/BaseTable' |
| | | import TableLayout from '@/layouts/TableLayout' |
| | | import Pagination from '@/components/common/Pagination' |
| | | import OperaRoomsWindow from '@/views/meeting/components/OperaRoomsWindow' |
| | | import { fetchList as userList } from '@/api/system/user' |
| | | // import selectMember from '@/components/meeting/selectMember' |
| | | import { updateStatusById } from '@/api/meeting/rooms' |
| | | export default { |
| | | name: 'Rooms', |
| | | extends: BaseTable, |
| | | components: { TableLayout, Pagination, OperaRoomsWindow }, |
| | | data () { |
| | | return { |
| | | userList: [], |
| | | // æç´¢ |
| | | searchForm: { |
| | | id: '', |
| | | creator: '', |
| | | createDate: '', |
| | | editor: '', |
| | | editDate: '', |
| | | isdeleted: '', |
| | | name: '', |
| | | remark: '', |
| | | startTime: '', |
| | | endTime: '', |
| | | limitNum: '', |
| | | imgurl: '', |
| | | tips: '', |
| | | status: '', |
| | | intervalTime: '', |
| | | sysList: [] |
| | | } |
| | | } |
| | | }, |
| | | provide() { |
| | | return { |
| | | userList: () => this.userList |
| | | } |
| | | }, |
| | | created () { |
| | | this.config({ |
| | | module: 'ä¼è®®å®¤ä¿¡æ¯è¡¨', |
| | | api: '/meeting/rooms', |
| | | 'field.id': 'id', |
| | | 'field.main': 'id' |
| | | }) |
| | | userList({ |
| | | page: 1, |
| | | capacity: 9999, |
| | | model: { realname: this.filterText }, |
| | | }) |
| | | .then(res => { |
| | | this.userList = res.records |
| | | }) |
| | | this.search() |
| | | }, |
| | | methods: { |
| | | // 页ç åæ´å¤ç |
| | | handlePageChange (pageIndex) { |
| | | this.__checkApi() |
| | | this.tableData.pagination.pageIndex = pageIndex || this.tableData.pagination.pageIndex |
| | | this.isWorking.search = true |
| | | let sysList = [...this.searchForm.sysList] |
| | | sysList = sysList.map(item => { |
| | | return {userId: item} |
| | | }) |
| | | console.log(sysList); |
| | | this.api.fetchList({ |
| | | page: this.tableData.pagination.pageIndex, |
| | | capacity: this.tableData.pagination.pageSize, |
| | | model: { |
| | | ...this.searchForm, |
| | | sysList |
| | | }, |
| | | sorts: this.tableData.sorts |
| | | }) |
| | | .then(data => { |
| | | this.tableData.list = data.records |
| | | this.tableData.pagination.total = data.total |
| | | }) |
| | | .catch(e => { |
| | | this.$tip.apiFailed(e) |
| | | }) |
| | | .finally(() => { |
| | | this.isWorking.search = false |
| | | }) |
| | | }, |
| | | // selectMemberAction() { |
| | | // console.log('21212'); |
| | | // this.$refs.selectMember.open('éæ©ç®¡çå') |
| | | // }, |
| | | changeStatus(item) { |
| | | updateStatusById({ |
| | | id: item.id, |
| | | status: item.status |
| | | }) |
| | | .then(() => { |
| | | this.$message.success('ä¿®æ¹æå') |
| | | |
| | | }) |
| | | .catch(e => { |
| | | this.$message.error(e) |
| | | }) |
| | | .finally(() => { |
| | | this.handlePageChange() |
| | | }) |
| | | } |
| | | }, |
| | | } |
| | | </script> |
| | | |
| | | <style scoped> |
| | | ::v-deep .el-input.is-disabled .el-input__inner { |
| | | background-color: #fff !important; |
| | | cursor: pointer; |
| | | } |
| | | </style> |