blob: cd8511e4805dd08e5eb0bf42b1a76866daf41d20 [file] [log] [blame]
huibing.xie1f1606f2018-08-20 15:46:55 +08001<template>
2 <div class="app-container">
3 <div class="filter-container">
huibing.xiec95b6a22018-08-29 14:15:43 +08004 <el-input @keyup.enter.native="handleFilter" style="width: 200px;" class="filter-item" placeholder="代码" v-model="listQuery.code">
huibing.xie1f1606f2018-08-20 15:46:55 +08005 </el-input>
huibing.xiec95b6a22018-08-29 14:15:43 +08006 <el-input @keyup.enter.native="handleFilter" style="width: 200px;" class="filter-item" placeholder="名称" v-model="listQuery.name">
huibing.xie1f1606f2018-08-20 15:46:55 +08007 </el-input>
huibing.xiec95b6a22018-08-29 14:15:43 +08008 <el-input @keyup.enter.native="handleFilter" style="width: 200px;" class="filter-item" placeholder="条件" v-model="listQuery.sql">
huibing.xie1f1606f2018-08-20 15:46:55 +08009 </el-input>
huibing.xiec95b6a22018-08-29 14:15:43 +080010 <el-input @keyup.enter.native="handleFilter" style="width: 200px;" class="filter-item" placeholder="排序" v-model="listQuery.sort">
huibing.xie1f1606f2018-08-20 15:46:55 +080011 </el-input>
12 <el-button class="filter-item" type="primary" v-waves icon="el-icon-search" @click="handleFilter">查询</el-button>
13 <el-button class="filter-item" style="margin-left: 10px;" @click="handleCreate(null, 'create')" type="primary" icon="el-icon-edit">添加</el-button>
14 <el-button class="filter-item" style="margin-left: 10px;" @click="handleReset" type="primary" icon="el-icon-edit">重置</el-button>
15 </div>
16 <el-table :height="height" :data="items" v-loading="listLoading" element-loading-text="Loading" border fit highlight-current-row>
17 <el-table-column align="center" label='代码' width="195">
18 <template slot-scope="scope">
huibing.xiec95b6a22018-08-29 14:15:43 +080019 {{scope.row.code}}
huibing.xie1f1606f2018-08-20 15:46:55 +080020 </template>
21 </el-table-column>
22 <el-table-column label="名称" align="center">
23 <template slot-scope="scope">
huibing.xiec95b6a22018-08-29 14:15:43 +080024 {{scope.row.name}}
huibing.xie1f1606f2018-08-20 15:46:55 +080025 </template>
26 </el-table-column>
huibing.xiec95b6a22018-08-29 14:15:43 +080027 <el-table-column label="同步条件(SQL)" align="center">
huibing.xie1f1606f2018-08-20 15:46:55 +080028 <template slot-scope="scope">
huibing.xiec95b6a22018-08-29 14:15:43 +080029 <span>{{scope.row.sql}}</span>
huibing.xie1f1606f2018-08-20 15:46:55 +080030 </template>
31 </el-table-column>
32 <el-table-column label="排序" align="center">
33 <template slot-scope="scope">
huibing.xiec95b6a22018-08-29 14:15:43 +080034 <span>{{scope.row.sort}}</span>
huibing.xie1f1606f2018-08-20 15:46:55 +080035 </template>
36 </el-table-column>
37 <el-table-column
38 fixed="right"
39 header-align="center"
40 align="center"
41 width="150"
42 label="操作">
43 <template slot-scope="scope">
44 <el-button type="text" size="small" @click="handleCreate(scope.row.id, 'update')">修改</el-button>
45 <el-button type="text" size="small" @click="handleDelete(scope.row.id)">删除</el-button>
46 </template>
47 </el-table-column>
48 </el-table>
49 <div class="pagination-container">
50 <el-pagination background @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="listQuery.pageIndex" :page-sizes="[10,20,30, 50]" :page-size="listQuery.pageSize" layout="total, sizes, prev, pager, next, jumper" :total="recordCount">
51 </el-pagination>
52 </div>
53
54 <el-dialog :title="textMap[dialogStatus]" :visible.sync="dialogFormVisible">
55 <el-form :rules="rules" ref="dataForm" :model="temp" label-position="left" label-width="150px" style='width: 400px; margin-left:50px;'>
huibing.xiec95b6a22018-08-29 14:15:43 +080056 <el-form-item label="代码" prop="code">
57 <el-input v-model="temp.code"></el-input>
huibing.xie1f1606f2018-08-20 15:46:55 +080058 <input type="hidden" v-model="temp.id" />
59 </el-form-item>
huibing.xiec95b6a22018-08-29 14:15:43 +080060 <el-form-item label="名称" prop="name">
61 <el-input v-model="temp.name"></el-input>
huibing.xie1f1606f2018-08-20 15:46:55 +080062 </el-form-item>
huibing.xiec95b6a22018-08-29 14:15:43 +080063 <el-form-item label="同步条件(SQL)" prop="sql">
64 <el-input type="textarea" :rows="2" v-model="temp.sql"></el-input>
huibing.xie1f1606f2018-08-20 15:46:55 +080065 </el-form-item>
huibing.xiec95b6a22018-08-29 14:15:43 +080066 <el-form-item label="排序">
67 <el-input v-model="temp.sort"></el-input>
huibing.xie1f1606f2018-08-20 15:46:55 +080068 </el-form-item>
69 </el-form>
70 <div slot="footer" class="dialog-footer">
71 <el-button @click="dialogFormVisible = false">返回</el-button>
72 <el-button type="primary" @click="createData">提交</el-button>
73 </div>
74 </el-dialog>
75 </div>
76</template>
77
78<script>
huibing.xiec95b6a22018-08-29 14:15:43 +080079import { getPage, getItem, createRosterSyncInterface, deleteRosterSyncInterface } from '@/api/rostersyncinterface-api'
huibing.xie1f1606f2018-08-20 15:46:55 +080080import waves from '@/directive/waves' // 水波纹指令
81import { resetForm } from '@/utils'
82import { crudPageList, crudGetItem, crudCreate, crudDelete } from '@/utils/crud'
83import mixindata from '@/utils/crud'
84
huibing.xiec95b6a22018-08-29 14:15:43 +080085const initData = { }
huibing.xie1f1606f2018-08-20 15:46:55 +080086export default {
87 name: 'rostersyncinterface',
88 directives: {
89 waves
90 },
91 mixins: [mixindata],
92 data() {
93 return {
huibing.xie1f1606f2018-08-20 15:46:55 +080094 rules: {
huibing.xiec95b6a22018-08-29 14:15:43 +080095 code: [{ required: true, message: '代码必填', trigger: 'blur' }],
96 name: [{ required: true, message: '名称必填', trigger: 'blur' }],
97 sql: [{ required: true, message: '同步条件(SQL)必填', trigger: 'blur' }]
huibing.xie1f1606f2018-08-20 15:46:55 +080098 }
99 }
100 },
101 filters: {
102 statusFilter(status) {
103 const statusMap = {
104 '1': 'success',
105 '0': 'danger'
106 }
107 return statusMap[status]
108 }
109 },
110 created() {
111 this.handlePageList()
112 this.height = window.innerHeight - 216
113 },
114 methods: {
115 handlePageList() {
huibing.xiec95b6a22018-08-29 14:15:43 +0800116 crudPageList(this, getPage)
huibing.xie1f1606f2018-08-20 15:46:55 +0800117 },
118 handleCreate(rowid, dialogStatus) {
119 this.dialogStatus = dialogStatus
120 crudGetItem(this, getItem, rowid, initData)
121 },
122 handleReset() {
123 resetForm(this.listQuery)
124 },
125 handleFilter() {
126 this.listQuery.pageIndex = 1
127 this.handlePageList()
128 },
129 handleSizeChange(val) {
130 this.listQuery.pageSize = val
131 this.handlePageList()
132 },
133 handleCurrentChange(val) {
134 this.listQuery.pageIndex = val
135 this.handlePageList()
136 },
137 createData() {
138 crudCreate(this, createRosterSyncInterface, this.handlePageList)
139 },
140 handleDelete(rowid) {
141 crudDelete(this, deleteRosterSyncInterface, rowid, this.handlePageList)
142 }
143 }
144}
145</script>