| <template> | 
|   <TableLayout v-permissions="['ext:unitext:query']"> | 
|     <!-- 搜索表单 --> | 
|     <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="120px" label-suffix=":" 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="type"> | 
|           <el-select v-model="searchForm.type" filterable clearable placeholder="请选择"> | 
|             <el-option | 
|               v-for="(item, index) in unitTypes" | 
|               :key="index" | 
|               :label="item.name" | 
|               :value="item.id"> | 
|             </el-option> | 
|           </el-select>  | 
|         </el-form-item> --> | 
|       <section> | 
|         <el-button type="primary" @click="search">搜索</el-button> | 
|         <el-button @click="reset">重置</el-button> | 
|       </section> | 
|     </el-form> | 
|     <!-- 表格和分页 --> | 
|     <template v-slot:table-wrap> | 
|       <ul class="toolbar" v-permissions="['ext:unitext:create', 'ext:unitext:delete']"> | 
|         <!-- <ul class="toolbar" v-permissions="['ext:unitext:create', 'ext:unitext:delete']"> | 
|         <li><el-button type="primary" @click="$refs.operaUnitExtWindow.open('新建计量单位信息')" icon="el-icon-plus" v-permissions="['ext:unitext:create']">新建</el-button></li> | 
|       </ul> --> | 
|         <li> | 
|           <el-button | 
|             type="primary" | 
|             @click="$refs.operaUnitExtWindow.open('新增单位')" | 
|             v-permissions="['ext:unitext:create']" | 
|             >新增</el-button></li> | 
|         <li><el-button type="danger" plain @click="unvalidWithArray" v-permissions="['ext:unitext:delete']">失效</el-button></li> | 
|       </ul> | 
|       <el-table | 
|         v-loading="isWorking.search" | 
|         :data="tableData.list" | 
|         stripe | 
|         border | 
|         @selection-change="handleSelectionChange" | 
|       > | 
|         <el-table-column type="selection" fixed="left" width="55"></el-table-column> | 
|         <el-table-column prop="name" label="单位名称" min-width="100px"></el-table-column> | 
|         <el-table-column prop="name" label="单位属性" min-width="100px"> | 
|           <template slot-scope="{row}"> | 
|             {{ row.attributeData == 0 ? '整数' : '小数' }} | 
|           </template> | 
|         </el-table-column> | 
|         <!-- <el-table-column prop="type" label="单位类型" min-width="100px"> | 
|           <template slot-scope="{row}"> | 
|             {{ getTypes(row.type) }} | 
|           </template> | 
|         </el-table-column> --> | 
|         <el-table-column prop="createTime" label="创建时间" min-width="140px"></el-table-column> | 
|         <el-table-column prop="status" label="状态" min-width="100px"> | 
|           <!-- 0禁用 1启用 --> | 
|           <template slot-scope="{row}"> | 
|             <!-- {{ row.status == 0 ? '失效' : '有效' }} --> | 
|             <el-tag v-if="row.status == 1" type="success">启用</el-tag> | 
|             <el-tag v-if="row.status == 0" type="danger">失效</el-tag> | 
|           </template> | 
|         </el-table-column> | 
|         <el-table-column | 
|           label="操作" | 
|           min-width="120" | 
|           fixed="right" | 
|         > | 
|           <template slot-scope="{row}"> | 
|             <div v-if="row.status == 1"> | 
|               <el-button type="text" @click="$refs.operaUnitExtWindow.open('编辑物料单位分配信息', row)" v-permissions="['ext:unitext:update']">编辑</el-button> | 
|               <span style="margin: 8px;" v-permissions="['ext:unitext:delete']"> | 
|                 <el-button type="text" @click="unvalid(row)">失效</el-button> | 
|               </span> | 
|             </div> | 
|           </template> | 
|         </el-table-column> | 
|       </el-table> | 
|       <pagination | 
|         @size-change="handleSizeChange" | 
|         @current-change="handlePageChange" | 
|         :pagination="tableData.pagination" | 
|       ></pagination> | 
|     </template> | 
|     <!-- 新建/修改 --> | 
|     <OperaUnitExtWindow ref="operaUnitExtWindow" @success="handlePageChange"/> | 
|   </TableLayout> | 
| </template> | 
|   | 
| <script> | 
| import BaseTable from '@/components/base/BaseTable' | 
| import TableLayout from '@/layouts/TableLayout' | 
| import Pagination from '@/components/common/Pagination' | 
| import OperaUnitExtWindow from '@/components/ext/OperaUnitExtWindow' | 
| import { updateUnitStatus } from '@/api/ext/unitExt' | 
| export default { | 
|   name: 'UnitExt', | 
|   extends: BaseTable, | 
|   components: { TableLayout, Pagination, OperaUnitExtWindow }, | 
|   data () { | 
|     return { | 
|       // 搜索 | 
|       searchForm: { | 
|         name: '', | 
|         type: 0 | 
|       }, | 
|       unitTypes: [ | 
|         { name: '主单位', id: 0 }, | 
|         { name: '采购单位', id: 1 }, | 
|         { name: '库存单位', id: 2 }, | 
|         { name: '销售单位', id: 3 } | 
|       ] | 
|     } | 
|   }, | 
|   created () { | 
|     this.config({ | 
|       module: '计量单位信息', | 
|       api: '/ext/unitExt', | 
|       'field.id': 'id', | 
|       'field.main': 'name', | 
|       sorts: [{ direction: 'DESC', property: 'CREATE_TIME' }] | 
|     }) | 
|     this.search() | 
|   }, | 
|   methods: { | 
|     getTypes (v) { | 
|       for (const item of this.unitTypes) { | 
|         if (item.id === v) { | 
|           return item.name | 
|         } | 
|       } | 
|     }, | 
|     unvalid (row) { | 
|       this.$confirm('是否将该条物料单位设置为失效?', '提示', { | 
|         confirmButtonText: '失效', | 
|         cancelButtonText: '取消', | 
|         type: 'warning' | 
|       }).then(() => { | 
|         // const query = '?status=0&ids=' + row.id | 
|         this.updateStatus(row.id) | 
|       }).catch(() => {}) | 
|     }, | 
|     unvalidWithArray () { | 
|       if (this.tableData.selectedRows.length === 0) { | 
|         this.$tip.warning('请至少选择一条数据') | 
|         return | 
|       } | 
|       this.$confirm(`是否将${this.tableData.selectedRows.length}条物料单位设置为失效?`, '提示', { | 
|         confirmButtonText: '失效', | 
|         cancelButtonText: '取消', | 
|         type: 'warning' | 
|       }).then(() => { | 
|         // const query = '?status=0&ids=' + row.id | 
|         this.updateStatus(this.tableData.selectedRows.map(row => row.id).join(',')) | 
|       }).catch(() => {}) | 
|     }, | 
|     updateStatus (ids) { | 
|       updateUnitStatus(ids) | 
|         .then(() => { | 
|           this.$tip.success('失效成功') | 
|           this.handlePageChange() | 
|         }) | 
|         .catch(err => { | 
|           this.$tip.error(err) | 
|         }) | 
|     } | 
|   } | 
| } | 
| </script> |