205 lines
		
	
	
		
			5.1 KiB
		
	
	
	
		
			Vue
		
	
	
	
	
	
			
		
		
	
	
			205 lines
		
	
	
		
			5.1 KiB
		
	
	
	
		
			Vue
		
	
	
	
	
	
| <template>
 | |
|   <section class="examination-approval">
 | |
|     <ai-list v-if="!showList">
 | |
|       <template #title>
 | |
|         <ai-title title="审批分类" :isShowBottomBorder="true" :instance="instance"></ai-title>
 | |
|       </template>
 | |
|       <template #content>
 | |
|         <ai-search-bar>
 | |
|           <template #left>
 | |
|             <el-button type="primary" icon="iconfont iconAdd" @click="showList = true">添加分类</el-button>
 | |
|           </template>
 | |
|           <template #right>
 | |
|             <el-input
 | |
|               v-model="search.name"
 | |
|               size="small"
 | |
|               placeholder="分类名称/创建人"
 | |
|               v-throttle="() => {search.current = 1, getList()}"
 | |
|               @clear="reset"
 | |
|               clearable
 | |
|               suffix-icon="iconfont iconSearch"/>
 | |
|           </template>
 | |
|         </ai-search-bar>
 | |
|         <ai-table
 | |
|           :tableData="tableData"
 | |
|           :col-configs="colConfigs"
 | |
|           :total="total"
 | |
|           :header-cell-style="{fontWeight:'bold',color:'#333'}"
 | |
|           :current.sync="search.current"
 | |
|           :size.sync="search.size"
 | |
|           @getList="getList">
 | |
| 
 | |
|           <el-table-column label="是否启用" slot="status" align="center" width="150">
 | |
|             <template v-slot="{row}">
 | |
|               <el-switch
 | |
|                 v-model="row.status"
 | |
|                 @change="onChange(row)" active-value="1" inactive-value="0"
 | |
|                 active-color="#5088FF"
 | |
|                 inactive-color="#D0D4DC">
 | |
|               </el-switch>
 | |
|             </template>
 | |
|           </el-table-column>
 | |
| 
 | |
|           <el-table-column label="操作" slot="options" align="center" width="150">
 | |
|             <template v-slot="{row}">
 | |
|               <el-button type="text" title="修改" @click="editInfo(row)">修改</el-button>
 | |
|               <el-button type="text" title="删除" @click="deleteInfo(row)">删除</el-button>
 | |
|             </template>
 | |
|           </el-table-column>
 | |
|         </ai-table>
 | |
|       </template>
 | |
|     </ai-list>
 | |
|     <addClassification v-else @back="showList=false;row={},getList()" :instance="instance"
 | |
|                        :row="row"></addClassification>
 | |
|   </section>
 | |
| </template>
 | |
| 
 | |
| <script>
 | |
| 
 | |
|   import addClassification from "./components/addClassification";
 | |
|   import day from 'dayjs'
 | |
| 
 | |
|   export default {
 | |
|     name: "AppExaminationApproval",
 | |
|     label: "审批分类",
 | |
|     components: {addClassification},
 | |
|     props: {
 | |
|       instance: Function,
 | |
|       dict: Object,
 | |
|       permissions: Function
 | |
|     },
 | |
|     data() {
 | |
|       return {
 | |
|         search: {
 | |
|           current: 1,
 | |
|           size: 10,
 | |
|           name: "",
 | |
|         },
 | |
|         total: 0,
 | |
|         tableData: [],
 | |
|         row: {},
 | |
|         showList: false
 | |
|       }
 | |
|     },
 | |
|     computed: {
 | |
|       colConfigs() {
 | |
|         return [
 | |
|           {
 | |
|             prop: 'name',
 | |
|             align: 'left',
 | |
|             label: '分类名称',
 | |
|           },
 | |
|           {
 | |
|             prop: 'desc',
 | |
|             align: 'left',
 | |
|             label: '分类描述',
 | |
|           },
 | |
|           {
 | |
|             prop: 'createUserName',
 | |
|             align: 'center',
 | |
|             label: '创建人',
 | |
|           },
 | |
|           {
 | |
|             prop: 'createTime',
 | |
|             align: 'center',
 | |
|             label: '创建日期',
 | |
|           },
 | |
|           {
 | |
|             prop: 'showIndex',
 | |
|             align: 'center',
 | |
|             label: '排序',
 | |
|           },
 | |
|           {
 | |
|             slot: 'status',
 | |
|             align: 'center',
 | |
|             label: '是否启用',
 | |
|           },
 | |
|           {
 | |
|             slot: 'options',
 | |
|             align: 'center',
 | |
|             label: '操作',
 | |
|           },
 | |
|         ]
 | |
|       },
 | |
|     },
 | |
|     methods: {
 | |
|       /**
 | |
|        * 编辑
 | |
|        * */
 | |
|       editInfo(row) {
 | |
|         this.row = row
 | |
|         this.showList = true
 | |
|       },
 | |
| 
 | |
|       /**
 | |
|        * 启用、停用
 | |
|        */
 | |
|       onChange(row) {
 | |
|         this.instance.post(`/app/zwspapprovalclassification/enable?id=${row.id}`).then(res => {
 | |
|           if (res?.code == 0) {
 | |
|             this.$message.success(+row.status ? "已启用" : '不启用')
 | |
|             this.getList()
 | |
|           }
 | |
|         })
 | |
|       },
 | |
| 
 | |
|       reset() {
 | |
|         this.search.name = ""
 | |
|         this.getList()
 | |
|       },
 | |
| 
 | |
|       getList() {
 | |
|         this.instance.post(`/app/zwspapprovalclassification/list`, null, {
 | |
|           params: {
 | |
|             ...this.search,
 | |
|           },
 | |
|         }).then(res => {
 | |
|           if (res && res.data) {
 | |
|             this.tableData = res.data.records.map(e => ({
 | |
|               ...e,
 | |
|               createTime: day(e.createTime).format("YYYY-MM-DD"),
 | |
|             }));
 | |
|             this.total = res.data.total;
 | |
|           }
 | |
|         })
 | |
|       },
 | |
| 
 | |
|       /**
 | |
|        * 删除
 | |
|        */
 | |
|       deleteInfo({id}) {
 | |
|         this.$confirm("是否删除?").then(() => {
 | |
|           this.instance.post(`/app/zwspapprovalclassification/delete?ids=${id}`).then(res => {
 | |
|             if (res.code == 0) {
 | |
|               this.$message.success("删除成功")
 | |
|               this.getList()
 | |
|             }
 | |
|           })
 | |
|         })
 | |
|       },
 | |
|     },
 | |
| 
 | |
|     mounted() {
 | |
|       this.getList()
 | |
|     }
 | |
|   }
 | |
| </script>
 | |
| 
 | |
| <style lang="scss" scoped>
 | |
|   .examination-approval {
 | |
|     height: 100%;
 | |
|     background: #f3f6f9;
 | |
|     overflow: auto;
 | |
| 
 | |
|     .iconfont {
 | |
|       user-select: none;
 | |
|       cursor: pointer;
 | |
|     }
 | |
| 
 | |
|     :deep( .ai-table ){
 | |
|       margin-top: 16px;
 | |
|     }
 | |
| 
 | |
|   }
 | |
| </style>
 |