branchManager.vue 8.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265
  1. <template>
  2. <div class='m-container'>
  3. <h2>合作单位</h2>
  4. <div class="m-core">
  5. <div @click="openTeaching('create')" class='newBand'>新建</div>
  6. <!-- 搜索类型 -->
  7. <!-- <el-form :inline="true"
  8. class="searchForm"
  9. v-model="searchForm">
  10. <el-form-item>
  11. <el-select v-model="searchForm.status"
  12. placeholder="工作类型">
  13. <el-option label="哈哈哈"
  14. value="1"></el-option>
  15. </el-select>
  16. </el-form-item>
  17. <el-form-item>
  18. <el-input suffix-icon="el-icon-search"
  19. placeholder="请输入搜索内容"></el-input>
  20. </el-form-item>
  21. </el-form>
  22. <div class="searchWrap">
  23. <p>查询条件:</p>
  24. <div class="searchItem"
  25. @click="closeSearch(item)"
  26. v-for="(item,index) in searchLsit">
  27. {{ item.key }}
  28. <i class="el-icon-close"></i>
  29. </div>
  30. </div> -->
  31. <!-- 列表 -->
  32. <div class="tableWrap">
  33. <el-table :data='tableList'>
  34. <el-table-column align='center' prop='id'
  35. label="单位编号">
  36. </el-table-column>
  37. <el-table-column align='center' prop='name'
  38. label="单位名称">
  39. </el-table-column>
  40. <el-table-column align='center' prop='linkman'
  41. label="联系人">
  42. </el-table-column>
  43. <el-table-column align='center' prop='job'
  44. label="职位">
  45. </el-table-column>
  46. <el-table-column align='center' prop='mobileNo'
  47. label="手机号">
  48. </el-table-column>
  49. <el-table-column align='center' prop='ownershipType'
  50. label="权属类型">
  51. <template slot-scope="scope">
  52. {{ scope.row.ownershipType | branchType }}
  53. </template>
  54. </el-table-column>
  55. <el-table-column align='center'
  56. label="操作" width='100'>
  57. <template slot-scope="scope">
  58. <el-button @click="openTeaching('update', scope.row)" type="text">修改</el-button>
  59. <el-button @click="onDelete(scope.row)" type="text">删除</el-button>
  60. </template>
  61. </el-table-column>
  62. </el-table>
  63. <pagination :total="pageInfo.total"
  64. :page.sync="pageInfo.page"
  65. :limit.sync="pageInfo.limit"
  66. :page-sizes="pageInfo.page_size"
  67. @pagination="getList" />
  68. </div>
  69. </div>
  70. <el-dialog :title="formTitle[formActionTitle]" :visible.sync="teachingStatus" @close="onFormClose('ruleForm')" width="500px">
  71. <el-form :model="form" :rules="rules" ref="ruleForm">
  72. <el-form-item label="单位名称" prop="name" :label-width="formLabelWidth">
  73. <el-input v-model="form.name" autocomplete="off"></el-input>
  74. </el-form-item>
  75. <el-form-item label="联系人" prop="linkman" :label-width="formLabelWidth">
  76. <el-input v-model="form.linkman" autocomplete="off"></el-input>
  77. </el-form-item>
  78. <el-form-item label="职位" prop="job" :label-width="formLabelWidth">
  79. <el-input v-model="form.job" autocomplete="off"></el-input>
  80. </el-form-item>
  81. <el-form-item label="手机号" prop="mobileNo" :label-width="formLabelWidth">
  82. <el-input v-model.number="form.mobileNo" autocomplete="off"></el-input>
  83. </el-form-item>
  84. <el-form-item label="权属类型" prop="ownershipType" :label-width="formLabelWidth">
  85. <el-select v-model="form.ownershipType">
  86. <el-option label="自有" value="OWN"></el-option>
  87. <el-option label="合作" value="COOPERATION"></el-option>
  88. <el-option label="租赁" value="LEASE"></el-option>
  89. </el-select>
  90. </el-form-item>
  91. </el-form>
  92. <span slot="footer" class="dialog-footer">
  93. <el-button @click="teachingStatus = false">取 消</el-button>
  94. <el-button type="primary" @click="onTeachingSubmit('ruleForm')">确 定</el-button>
  95. </span>
  96. </el-dialog>
  97. </div>
  98. </template>
  99. <script>
  100. import pagination from '@/components/Pagination/index'
  101. import { cooperationOrganAdd, cooperationOrganUpdate, cooperationOrganDel, queryPage } from '@/api/systemManage'
  102. import store from '@/store'
  103. export default {
  104. components: { pagination },
  105. name: 'adminManager',
  106. data () {
  107. return {
  108. searchForm: {
  109. status: ''
  110. },
  111. searchLsit: [],
  112. tableList: [],
  113. pageInfo: {
  114. // 分页规则
  115. limit: 10, // 限制显示条数
  116. page: 1, // 当前页
  117. total: 0, // 总条数
  118. page_size: [10, 20, 40, 50] // 选择限制显示条数
  119. },
  120. teachingStatus: false, // 添加教学点
  121. formActionTitle: 'create',
  122. formTitle: {
  123. create: '添加合作单位',
  124. update: '修改合作单位'
  125. },
  126. formLabelWidth: '100px',
  127. form: {
  128. id: null,
  129. name: null, // 教学点名称
  130. linkman: null, // 来源
  131. job: null, // 费用
  132. mobileNo: null,
  133. ownershipType: null,
  134. organId: store.getters.organ
  135. },
  136. rules: {
  137. name: [{ required: true, message: '请输入教学点名称', trigger: 'blur' }],
  138. linkman: [{required: true, message: '请输入联系人', trigger: 'blur'}],
  139. job: [{ required: true, message: '请输入职位', trigger: 'blur'}],
  140. mobileNo: [
  141. {required: true, message: '请输入手机号', trigger: 'blur'},
  142. { type: 'number', message: '手机号必须为数字'},
  143. ],
  144. ownershipType: [{ required: true, message: '请选择权属类型', trigger: 'change' }]
  145. },
  146. }
  147. },
  148. mounted() {
  149. this.getList() // 获取列表数据
  150. },
  151. methods: {
  152. onDelete(rows) {
  153. cooperationOrganDel(rows.id).then(res => {
  154. if(res.code == 200) {
  155. this.$message({
  156. message: '删除成功',
  157. type: 'success'
  158. })
  159. this.teachingStatus = false
  160. this.getList()
  161. } else {
  162. this.$message.error(res.msg)
  163. }
  164. })
  165. },
  166. onTeachingSubmit(formName) { // 添加数据
  167. this.$refs[formName].validate((valid) => {
  168. if (valid) {
  169. if(this.formActionTitle == 'create') {
  170. cooperationOrganAdd(this.form).then(res => {
  171. if(res.code == 200) {
  172. this.$message({
  173. message: '添加成功',
  174. type: 'success'
  175. })
  176. this.teachingStatus = false
  177. this.getList()
  178. } else {
  179. this.$message.error(res.msg)
  180. }
  181. })
  182. } else if(this.formActionTitle == 'update') {
  183. cooperationOrganUpdate(this.form).then(res => {
  184. // console.log(res)
  185. if(res.code == 200) {
  186. this.$message({
  187. message: '修改成功',
  188. type: 'success'
  189. })
  190. this.teachingStatus = false
  191. this.getList()
  192. } else {
  193. this.$message.error(res.msg)
  194. }
  195. })
  196. }
  197. } else {
  198. return false;
  199. }
  200. })
  201. },
  202. getList() {
  203. queryPage({
  204. organId: this.form.organId,
  205. rows: this.pageInfo.limit,
  206. page: this.pageInfo.page
  207. }).then(res => {
  208. if(res.code == 200 && res.data) {
  209. this.tableList = res.data.rows
  210. this.pageInfo.total = res.data.total
  211. }
  212. })
  213. },
  214. openTeaching(type, rows) {
  215. // 重置数据
  216. this.form = {
  217. id: null,
  218. name: null, // 教学点名称
  219. linkman: null, // 来源
  220. job: null, // 费用
  221. mobileNo: null, // 合作单位
  222. ownershipType: null,
  223. organId: store.getters.organ
  224. }
  225. this.teachingStatus = true
  226. this.formActionTitle = type
  227. // 修改的时候赋值
  228. if(type == 'update') {
  229. this.form = {
  230. id: rows.id,
  231. name: rows.name, // 教学点名称
  232. linkman: rows.linkman, // 来源
  233. job: rows.job, // 费用
  234. mobileNo: rows.mobileNo ? Number(rows.mobileNo) : null, // 合作单位
  235. ownershipType: row.ownershipType,
  236. organId: store.getters.organ
  237. }
  238. }
  239. },
  240. onFormClose(formName) { // 关闭弹窗重置验证
  241. this.$refs[formName].clearValidate()
  242. }
  243. }
  244. }
  245. </script>
  246. <style lang="scss">
  247. .el-input-group__append, .el-button--primary {
  248. background: #14928a;
  249. border-color: #14928a;
  250. color: #fff;
  251. &:hover, &:active, &:focus {
  252. background: #14928a;
  253. border-color: #14928a;
  254. color: #FFF;
  255. }
  256. }
  257. .el-vue-search-box-container {
  258. position: absolute !important;
  259. left: 10px;
  260. margin-top: 10px;
  261. z-index: 99999 !important;
  262. }
  263. </style>