index.vue 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213
  1. <template>
  2. <el-card style="margin: 15px">
  3. <a-row :gutter="15">
  4. <a-col :span="4">
  5. <leftTree @selected="getTreeData" />
  6. </a-col>
  7. <a-col :span="20">
  8. <!-- 查询区域 -->
  9. <div class="table-page-search-wrapper">
  10. <a-form layout="inline" @keyup.enter.native="searchQuery">
  11. <a-form-item>
  12. <a-input
  13. v-model="queryParam.glb"
  14. style="width: 150px"
  15. placeholder="姓名/部门/手机号"
  16. />
  17. </a-form-item>
  18. <a-form-item>
  19. <sys-list-select-tag
  20. v-model="queryParam.roleId"
  21. dict-code="role"
  22. placeholder="选择职务"
  23. style="width: 150px"
  24. />
  25. </a-form-item>
  26. <a-form-item>
  27. <j-dict-select-tag
  28. v-model="queryParam.status"
  29. style="width: 150px"
  30. placeholder="状态选项"
  31. dict-code="sys_normal_disable"
  32. />
  33. </a-form-item>
  34. <a-form-item>
  35. <a-button type="primary" @click="searchQuery">查询</a-button>
  36. <a-button style="margin-left: 8px" @click="searchReset">重置</a-button>
  37. </a-form-item>
  38. </a-form>
  39. </div>
  40. <!-- 操作按钮区域 -->
  41. <div class="table-operator" style="margin: 15px 0">
  42. <a-button v-permission="['pc:sys:worker:add']" type="primary" icon="plus" @click="handleAdd">新增</a-button>
  43. <!-- <a-button ghost type="danger" icon="download" @click="handleExportXls('角色信息')">导出</a-button>-->
  44. <!-- <a-upload-->
  45. <!-- name="file"-->
  46. <!-- :show-upload-list="false"-->
  47. <!-- :multiple="false"-->
  48. <!-- :headers="tokenHeader"-->
  49. <!-- :action="url.importExcelUrl"-->
  50. <!-- @change="handleImportExcel"-->
  51. <!-- >-->
  52. <!-- <a-button ghost type="danger" icon="import">导入</a-button>-->
  53. <!-- </a-upload>-->
  54. <a-dropdown v-if="selectedRowKeys.length > 0">
  55. <a-menu slot="overlay">
  56. <a-menu-item key="1" v-permission="['pc:sys:worker:delete']" @click="batchDel">
  57. <a-icon type="delete" />
  58. 批量删除
  59. </a-menu-item>
  60. </a-menu>
  61. <a-button style="margin-left: 8px">
  62. 批量操作
  63. <a-icon type="down" />
  64. </a-button>
  65. </a-dropdown>
  66. </div>
  67. <!-- table区域-begin -->
  68. <div>
  69. <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
  70. <i class="anticon anticon-info-circle ant-alert-icon" /> 已选择&nbsp;<a style="font-weight: 600">{{
  71. selectedRowKeys.length }}</a>项&nbsp;&nbsp;
  72. <a style="margin-left: 24px" @click="onClearSelected">清空</a>
  73. </div>
  74. <a-table
  75. ref="table"
  76. size="middle"
  77. bordered
  78. row-key="userId"
  79. :columns="columns"
  80. :data-source="dataSource"
  81. :pagination="ipagination"
  82. :loading="loading"
  83. :row-selection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
  84. @change="handleTableChange"
  85. >
  86. <template slot="dept" slot-scope="text, record">
  87. {{ record['dept'].deptName }}
  88. </template>
  89. <template slot="leader" slot-scope="text, record">
  90. {{ record['dept'].leader }}
  91. </template>
  92. <template slot="status" slot-scope="text, record">
  93. <a-switch
  94. :checked="record.status==='1'?false:true"
  95. checked-children="启用"
  96. un-checked-children="停用"
  97. @change="changeStatus({$event,record})"
  98. />
  99. </template>
  100. <span slot="action" slot-scope="text, record">
  101. <a-button v-permission="['pc:sys:worker:edit']" size="small" type="primary" @click="handleEdit(record)">
  102. 编辑
  103. </a-button>
  104. <a-divider type="vertical" />
  105. <a-dropdown>
  106. <a-button size="small" class="ant-dropdown-link" type="primary">
  107. 更多 <a-icon type="down" />
  108. </a-button>
  109. <a-menu slot="overlay">
  110. <a-menu-item>
  111. <a-popconfirm title="确认重置密码吗?重置后的密码是 123456" @confirm="() => rePwd(record)">
  112. <a href="javascript:;">重置密码</a>
  113. </a-popconfirm>
  114. </a-menu-item>
  115. <!-- <a-menu-item>-->
  116. <!-- <a href="javascript:;" @click="loginLog(record)">登录日志</a>-->
  117. <!-- </a-menu-item>-->
  118. <!-- <a-menu-item>-->
  119. <!-- <a href="javascript:;" @click="handleLog(record)">操作记录</a>-->
  120. <!-- </a-menu-item>-->
  121. </a-menu>
  122. </a-dropdown>
  123. <a-divider type="vertical" />
  124. <a-popconfirm
  125. v-permission="['pc:sys:worker:delete']"
  126. title="确定删除吗?"
  127. @confirm="() => handleDelete(record.id)"
  128. >
  129. <a-button size="small" type="danger">
  130. 删除
  131. </a-button>
  132. </a-popconfirm>
  133. </span>
  134. </a-table>
  135. <check-and-edit-model ref="modalForm" @ok="modalFormOk" />
  136. </div>
  137. <!-- table区域-end -->
  138. <!-- 表单区域 -->
  139. </a-col>
  140. </a-row>
  141. </el-card>
  142. </template>
  143. <script>
  144. import { listMixin } from '@/mixin/listMixin'
  145. import columns from './indexColumns'
  146. import CheckAndEditModel from './CheckAndEditModel'
  147. import leftTree from '@/components/leftTree'
  148. import { httpAction } from '@/api/request'
  149. export default {
  150. components: {
  151. CheckAndEditModel,
  152. leftTree
  153. },
  154. mixins: [listMixin],
  155. data() {
  156. return {
  157. // 查询条件
  158. queryParam: {},
  159. // 表头
  160. columns: columns(this),
  161. url: {
  162. list: '/system/user/list',
  163. delete: '/system/user/',
  164. exportXlsUrl: '/exportXlsUrl',
  165. importExcelUrl: `${process.env.VUE_APP_BASE_API}/importExcelUrl`
  166. }
  167. }
  168. },
  169. created() {
  170. },
  171. methods: {
  172. getTreeData(data) {
  173. this.queryParam.deptId = data.id
  174. this.loadData()
  175. },
  176. rePwd(record) {
  177. httpAction('/system/user/resetPwd', record, 'put').then((res) => {
  178. if (res.code === 200) {
  179. this.$message.success(res.msg)
  180. } else {
  181. console.log(res)
  182. }
  183. })
  184. },
  185. changeStatus({ $event, record }) {
  186. console.log($event, record)
  187. record.status = $event ? '0' : '1'
  188. httpAction('/system/user/changeStatus', record, 'put').then((res) => {
  189. if (res.code === 200) {
  190. this.$message.success(res.msg)
  191. } else {
  192. console.log(res)
  193. }
  194. })
  195. },
  196. handleLog() {
  197. },
  198. loginLog() {
  199. },
  200. updateQueryParam(data) {
  201. this.queryParam.unit = data.id
  202. this.queryParam.unitName = data.departName
  203. }
  204. }
  205. }
  206. </script>
  207. <style scoped>
  208. @import '~@/assets/less/common.less'
  209. </style>