blob: 648e4f2f7648df300f55016a79d1ef6c8ead7de7 [file] [log] [blame]
Horacecc758592018-08-23 17:40:39 +08001<template>
2 <div class="app-container">
3 <div class="filter-container">
4 <el-row :gutter="20">
5 <el-col :span="5">
6 <el-input @keyup.enter.native="handleFilter" style="width: 200px;" class="filter-item" placeholder="审核环节名称" v-model="listQuery.name">
7 </el-input>
8 </el-col>
9 <el-col :span="5">
10 <el-select class="filter-item" v-model="listQuery.auditType" placeholder="审核方式">
11 <el-option v-for="item in auditTypeList" :key="item.id" :label="item.name" :value="item.id">
12 </el-option>
13 </el-select>
14 </el-col>
15 <el-col :span="9">
16 <el-button class="filter-item" type="primary" v-waves icon="el-icon-search" @click="handleFilter">查询</el-button>
17 <el-button class="filter-item" style="margin-left: 10px;" @click="handleCreate(null, 'create')" type="primary" icon="el-icon-edit">添加</el-button>
18 <el-button class="filter-item" style="margin-left: 10px;" @click="handleReset" type="primary" icon="el-icon-edit">重置</el-button>
19 </el-col>
20 </el-row>
21 </div>
22 <el-table :height="height" :data="items" v-loading="listLoading" element-loading-text="Loading" border fit highlight-current-row>
23 <el-table-column align="center" type="index" label='序号' width="95">
24 </el-table-column>
25 <el-table-column label="审核环节名称" align="center">
26 <template slot-scope="scope">
27 {{scope.row.name}}
28 </template>
29 </el-table-column>
30 <el-table-column label="所属部门" align="center">
31 <template slot-scope="scope">
32 <span>{{scope.row.department.dwmc}}</span>
33 </template>
34 </el-table-column>
35 <el-table-column label="联系人" align="center">
36 <template slot-scope="scope">
37 {{scope.row.contact}}
38 </template>
39 </el-table-column>
40 <el-table-column label="联系电话" align="center">
41 <template slot-scope="scope">
42 {{scope.row.phoneNumber}}
43 </template>
44 </el-table-column>
45 <el-table-column label="审核环节地址" align="center">
46 <template slot-scope="scope">
47 {{scope.row.auditNodeAddress}}
48 </template>
49 </el-table-column>
50 <el-table-column label="审核环节职责" align="center">
51 <template slot-scope="scope">
52 {{scope.row.auditNodeDuty}}
53 </template>
54 </el-table-column>
55 <el-table-column label="审核方式" align="center">
56 <template slot-scope="scope">
57 {{scope.row.auditType.name}}
58 </template>
59 </el-table-column>
60 <el-table-column label="范围控制" align="center">
61 <template slot-scope="scope">
62 {{scope.row.scope.name}}
63 </template>
64 </el-table-column>
65 <el-table-column label="默认审核状态" align="center">
66 <template slot-scope="scope">
67 {{scope.row.defaultAuditStatus.name}}
68 </template>
69 </el-table-column>
70 <el-table-column
71 fixed="right"
72 header-align="center"
73 align="center"
74 width="150"
75 label="操作">
76 <template slot-scope="scope">
77 <el-button type="text" size="small" @click="handleCreate(scope.row.id, 'update')">修改</el-button>
78 <el-button type="text" size="small" @click="handleDelete(scope.row.id)">删除</el-button>
79 </template>
80 </el-table-column>
81 </el-table>
82 <div class="pagination-container">
83 <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">
84 </el-pagination>
85 </div>
86
87 <el-dialog :title="textMap[dialogStatus]" :visible.sync="dialogFormVisible" width="80%" top="10vh">
88 <el-form :rules="rules" ref="dataForm" :model="temp" label-position="left" label-width="150px" style='margin-left:50px;'>
89 <el-form-item label="审核环节名称" prop="name">
90 <el-input v-model="temp.name"></el-input>
91 <input type="hidden" v-model="temp.id" />
92 </el-form-item>
93 <el-form-item label="所属部门" prop="department">
94 <el-select class="filter-item" v-model="temp.department" placeholder="所属部门">
95 <el-option v-for="item in departmentList" :key="item.id" :label="item.dwmc" :value="item.id">
96 </el-option>
97 </el-select>
98 </el-form-item>
99 <el-form-item label="联系人" prop="contact">
100 <el-input v-model="temp.contact"></el-input>
101 </el-form-item>
102 <el-form-item label="联系电话" prop="phoneNumber">
103 <el-input v-model="temp.phoneNumber"></el-input>
104 </el-form-item>
105 <el-form-item label="审核方式" prop="auditType">
106 <el-select class="filter-item" v-model="temp.auditType" placeholder="请选择">
107 <el-option v-for="item in auditTypeList" :key="item.id" :label="item.name" :value="item.id">
108 </el-option>
109 </el-select>
110 </el-form-item>
111 <el-form-item label="控制范围" prop="scope">
112 <el-select class="filter-item" v-model="temp.scope" placeholder="请选择">
113 <el-option v-for="item in scopeList" :key="item.id" :label="item.name" :value="item.id">
114 </el-option>
115 </el-select>
116 </el-form-item>
117 <el-form-item label="默认审核状态" prop="defaultAuditStatus">
118 <el-select class="filter-item" v-model="temp.defaultAuditStatus" placeholder="请选择">
119 <el-option v-for="item in statusList" :key="item.id" :label="item.name" :value="item.id">
120 </el-option>
121 </el-select>
122 </el-form-item>
123 <el-form-item label="审核环节职责" prop="auditNodeDuty">
124 <el-input type="textarea" :rows="4" v-model="temp.auditNodeDuty"></el-input>
125 </el-form-item>
126 <el-form-item label="审核环节地址" prop="auditNodeAddress">
127 <el-input type="textarea" :rows="4" v-model="temp.auditNodeAddress"></el-input>
128 </el-form-item>
129 </el-form>
130 <div slot="footer" class="dialog-footer">
131 <el-button @click="dialogFormVisible = false">返回</el-button>
132 <el-button type="primary" @click="createData">提交</el-button>
133 </div>
134 </el-dialog>
135 </div>
136</template>
137
138<script>
139import { getList, getItem, createNode, deleteNode } from '@/api/leaveschoolnode-api'
140import { getDicList } from '@/api/dictionary-api'
huibing.xieb87f03b2018-08-27 11:18:30 +0800141import { getDeptList } from '@/api/department-api'
Horacecc758592018-08-23 17:40:39 +0800142import waves from '@/directive/waves' // 水波纹指令
143import { resetForm } from '@/utils'
144import { crudPageList, crudGetItem, crudCreate, crudDelete } from '@/utils/crud'
145import mixindata from '@/utils/crud'
146
147const initData = { auditType: '25', defaultAuditStatus: '22' }
148export default {
149 name: 'node',
150 directives: {
151 waves
152 },
153 mixins: [mixindata],
154 data() {
155 return {
156 config: {
157 initialFrameWidth: null,
158 initialFrameHeight: 350
159 },
160 departmentList: [],
161 auditTypeList: [],
162 scopeList: [],
163 statusList: [],
164 rules: {
165 name: [{ required: true, message: '环节名称', trigger: 'blur' }],
166 scope: [{ required: true, message: '范围控制', trigger: 'change' }],
167 department: [{ required: true, message: '所属部门', trigger: 'change' }]
168 }
169 }
170 },
171 created() {
huibing.xieb87f03b2018-08-27 11:18:30 +0800172 this.getDepartmentList()
173 this.getAuditTypeList()
174 this.getStatusList()
175 this.getScopeList()
176 this.handlePageList()
Horacecc758592018-08-23 17:40:39 +0800177 this.height = window.innerHeight - 266
178 },
179 methods: {
180 getDepartmentList() {
huibing.xieb87f03b2018-08-27 11:18:30 +0800181 getDeptList().then(response => {
Horacecc758592018-08-23 17:40:39 +0800182 this.departmentList = response.items
183 })
184 },
185 getAuditTypeList() {
186 getDicList({ type: 'auditType' }).then(response => {
187 this.auditTypeList = response.items
188 })
189 },
huibing.xieb87f03b2018-08-27 11:18:30 +0800190 getScopeList() {
Horacecc758592018-08-23 17:40:39 +0800191 getDicList({ type: 'scope' }).then(response => {
192 this.scopeList = response.items
193 })
194 },
195 getStatusList() {
196 getDicList({ type: 'defaultAuditStatus' }).then(response => {
197 this.statusList = response.items
198 })
199 },
200 handlePageList() {
201 crudPageList(this, getList)
202 },
203 handleCreate(rowid, dialogStatus) {
204 this.dialogStatus = dialogStatus
205 crudGetItem(this, getItem, rowid, initData)
206 },
207 handleReset() {
208 resetForm(this.listQuery)
209 },
210 handleFilter() {
211 this.listQuery.pageIndex = 1
212 this.handlePageList()
213 },
214 handleSizeChange(val) {
215 this.listQuery.pageSize = val
216 this.handlePageList()
217 },
218 handleCurrentChange(val) {
219 this.listQuery.pageIndex = val
220 this.handlePageList()
221 },
222 createData() {
huibing.xieb87f03b2018-08-27 11:18:30 +0800223 // this.temp.ggnr = this.$refs.ue.getUEContent()
Horacecc758592018-08-23 17:40:39 +0800224 crudCreate(this, createNode, this.handlePageList)
225 },
226 handleDelete(rowid) {
227 crudDelete(this, deleteNode, rowid, this.handlePageList)
228 }
229 }
230}
231</script>