| ¶Ô±ÈÐÂÎļþ | 
 |  |  | 
 |  |  | <template> | 
 |  |  |   <TableLayout :permissions="['business:category: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> | 
 |  |  |       <section> | 
 |  |  |         <el-button type="primary" @click="search">æç´¢</el-button> | 
 |  |  |         <!-- <el-button type="primary" :loading="isWorking.export" v-permissions="['business:category: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:category:create']"> | 
 |  |  |         <li><el-button type="primary" @click="$refs.operaCategoryWindow.open('æ°å»ºç±»å«')" icon="el-icon-plus" | 
 |  |  |             v-permissions="['business:category:create']">æ°å»º</el-button></li> | 
 |  |  |       </ul> | 
 |  |  |       <el-table v-loading="isWorking.search" :data="tableData.list" stripe border :header-cell-style="rowStyle" | 
 |  |  |         :cell-style="rowStyle"> | 
 |  |  |         <el-table-column prop="imgurl" label="徿 " min-width="100px"> | 
 |  |  |           <template slot-scope="{row}"> | 
 |  |  |             <el-image v-if="row.imgurl" style="width: 70px; height: 70px" :src="row.imgfullurl" | 
 |  |  |               :preview-src-list="[row.imgfullurl]" fit="cover"></el-image> | 
 |  |  |           </template> | 
 |  |  |         </el-table-column> | 
 |  |  |         <el-table-column prop="name" label="ç±»å«åç§°" min-width="100px"></el-table-column> | 
 |  |  |         <el-table-column prop="priceRate" label="å ä»·ç³»æ°" min-width="100px"></el-table-column> | 
 |  |  |         <el-table-column prop="sortnum" label="æåºç (ååº)" min-width="100px"></el-table-column> | 
 |  |  |         <el-table-column prop="createDate" label="å建æ¶é´" min-width="100px"></el-table-column> | 
 |  |  |         <el-table-column v-if="containPermissions(['business:category:update'])" prop="status" label="ç¶æ" min-width="100px"> | 
 |  |  |           <template slot-scope="{row}"> | 
 |  |  |             <el-switch v-model="row.status" @change="changeStatus(row)" :active-value="0" :inactive-value="1"> | 
 |  |  |             </el-switch> | 
 |  |  |           </template> | 
 |  |  |         </el-table-column> | 
 |  |  |         <el-table-column v-if="containPermissions(['business:category:update', 'business:category:delete'])" label="æä½" | 
 |  |  |           min-width="120" fixed="right"> | 
 |  |  |           <template slot-scope="{row}"> | 
 |  |  |             <el-button type="text" @click="edit(row.id)" v-permissions="['business:category:update']">ç¼è¾</el-button> | 
 |  |  |             <el-button type="text" @click="deleteById(row)" v-permissions="['business:category:delete']">å é¤</el-button> | 
 |  |  |           </template> | 
 |  |  |         </el-table-column> | 
 |  |  |       </el-table> | 
 |  |  |       <pagination @size-change="handleSizeChange" @current-change="handlePageChange" :pagination="tableData.pagination"> | 
 |  |  |       </pagination> | 
 |  |  |     </template> | 
 |  |  |     <!-- æ°å»º/修湠--> | 
 |  |  |     <OperaCategoryWindow ref="operaCategoryWindow" @success="handlePageChange" /> | 
 |  |  |   </TableLayout> | 
 |  |  | </template> | 
 |  |  |    | 
 |  |  | <script> | 
 |  |  | import BaseTable from '@/components/base/BaseTable' | 
 |  |  | import TableLayout from '@/layouts/TableLayout' | 
 |  |  | import Pagination from '@/components/common/Pagination' | 
 |  |  | import OperaCategoryWindow from '@/components/business/OperaCategoryWindow' | 
 |  |  | import { queryById, updateDisableById } from '@/api/business/category.js' | 
 |  |  | export default { | 
 |  |  |   name: 'Category', | 
 |  |  |   extends: BaseTable, | 
 |  |  |   components: { TableLayout, Pagination, OperaCategoryWindow }, | 
 |  |  |   data() { | 
 |  |  |     return { | 
 |  |  |       // æç´¢ | 
 |  |  |       searchForm: { | 
 |  |  |         name: '' | 
 |  |  |       } | 
 |  |  |     } | 
 |  |  |   }, | 
 |  |  |   created() { | 
 |  |  |     this.config({ | 
 |  |  |       module: 'ç±»å«', | 
 |  |  |       api: '/business/category', | 
 |  |  |       'field.id': 'id', | 
 |  |  |       'field.main': 'name' | 
 |  |  |     }) | 
 |  |  |     this.search() | 
 |  |  |   }, | 
 |  |  |   methods: { | 
 |  |  |     rowStyle() { | 
 |  |  |       return "text-align:center"; | 
 |  |  |     }, | 
 |  |  |     changeStatus(item) { | 
 |  |  |       updateDisableById({ | 
 |  |  |         id: item.id, | 
 |  |  |         status: item.status | 
 |  |  |       }).then(res => { | 
 |  |  |         this.$tip.apiSuccess('æ´æ°æå') | 
 |  |  |       }).catch (err => { | 
 |  |  |           this.$message.error(err) | 
 |  |  |         }) | 
 |  |  |         .finally(() => { | 
 |  |  |         this.handlePageChange() | 
 |  |  |       }) | 
 |  |  |     }, | 
 |  |  |     edit(id) { | 
 |  |  |       queryById(id) | 
 |  |  |         .then(res => { | 
 |  |  |           let obj = { | 
 |  |  |             id, | 
 |  |  |             name: res.name, | 
 |  |  |             attrFirst: res.attrFirst, | 
 |  |  |             attrFirstList: res.attrFirstList, | 
 |  |  |             attrSecond: res.attrSecond, | 
 |  |  |             attrSecondList: res.attrSecondList, | 
 |  |  |             sortnum: res.sortnum, | 
 |  |  |             paramList: res.paramList, | 
 |  |  |             imgurl: res.imgurl, | 
 |  |  |             budgetList: res.budgetList, | 
 |  |  |             fileList: res.imgurl ? [{ url: res.prefixUrl + res.imgurl }] : [] | 
 |  |  |           } | 
 |  |  |           this.$refs.operaCategoryWindow.open('ç¼è¾ç±»å«', res) | 
 |  |  |         }) | 
 |  |  |     } | 
 |  |  |   } | 
 |  |  | } | 
 |  |  | </script> | 
 |  |  |    |