Staff.vue 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229
  1. <template>
  2. <ContainerQuery>
  3. <el-form slot="more" size="small" :inline="true">
  4. <el-form-item>
  5. <el-input
  6. v-model="search_key"
  7. placeholder="员工姓名"
  8. clearable
  9. style="width: 220px"
  10. @keyup.enter.native="pageChange(1)"
  11. @clear="pageChange(1)"
  12. >
  13. <el-button
  14. slot="append"
  15. icon="el-icon-search"
  16. @click="pageChange(1)"
  17. ></el-button>
  18. </el-input>
  19. </el-form-item>
  20. <el-form-item>
  21. <DepartmentSel
  22. v-model="departmentPidPath"
  23. width="150"
  24. clearable
  25. @change="departmentChange"
  26. />
  27. </el-form-item>
  28. <el-form-item>
  29. <RoleSelect
  30. v-model="rolePidPath"
  31. width="150"
  32. clearable
  33. @change="roleChange"
  34. />
  35. </el-form-item>
  36. </el-form>
  37. <el-button
  38. v-if="$accessCheck($Access.StaffAddStaff)"
  39. slot="left"
  40. size="small"
  41. type="primary"
  42. @click="openModel"
  43. >
  44. 新增成员
  45. </el-button>
  46. <el-table size="small" :data="tableData">
  47. <el-table-column prop="id" label="工号" min-width="100"></el-table-column>
  48. <el-table-column
  49. prop="staffCode"
  50. label="员工编码"
  51. min-width="100"
  52. ></el-table-column>
  53. <el-table-column
  54. prop="staffName"
  55. label="姓名"
  56. min-width="180"
  57. ></el-table-column>
  58. <el-table-column
  59. prop="mobile"
  60. label="电话"
  61. min-width="180"
  62. ></el-table-column>
  63. <el-table-column
  64. prop="departmentName"
  65. label="所属部门"
  66. min-width="180"
  67. ></el-table-column>
  68. <el-table-column
  69. prop="roleName"
  70. label="角色"
  71. min-width="180"
  72. ></el-table-column>
  73. <el-table-column
  74. prop="shopName"
  75. label="归属商铺"
  76. min-width="180"
  77. ></el-table-column>
  78. <el-table-column label="操作" min-width="130" fixed="right" header->
  79. <template slot-scope="scope">
  80. <el-button
  81. v-if="$accessCheck($Access.DepartmentUpdateDepartment)"
  82. type="text"
  83. @click="openEditModel(scope.row.id)"
  84. >
  85. 编辑
  86. </el-button>
  87. <el-button
  88. v-if="$accessCheck($Access.DepartmentDeleteDepartment)"
  89. type="text"
  90. @click="del(scope.row.id)"
  91. >
  92. 删除
  93. </el-button>
  94. </template>
  95. </el-table-column>
  96. </el-table>
  97. <FooterPage
  98. :page-size="page_size"
  99. :total-page="total_count"
  100. :current-page="page"
  101. @pageChange="pageChange"
  102. @sizeChange="sizeChange"
  103. />
  104. <!-- 新增员工-->
  105. <AddStaff
  106. v-if="add_staff"
  107. :id="staff_id"
  108. :is-edit="isEdit"
  109. :visible="add_staff"
  110. @close="add_staff = false"
  111. @confirm="staffConfirm"
  112. ></AddStaff>
  113. </ContainerQuery>
  114. </template>
  115. <script>
  116. import { getAllStaff, deleteStaff } from "@/api/Department";
  117. import AddStaff from "@/component/SystemSettings/AddStaff.vue";
  118. import DepartmentSel from "@/component/common/DepartmentSel";
  119. import RoleSelect from "../../../component/common/RoleSelect";
  120. export default {
  121. name: "Department",
  122. components: {
  123. RoleSelect,
  124. DepartmentSel,
  125. AddStaff,
  126. },
  127. data() {
  128. return {
  129. roleId: "",
  130. search_key: "",
  131. departmentId: "",
  132. staff_id: 0,
  133. total_count: 0,
  134. page: 1,
  135. page_size: 10,
  136. pageTotal: 0,
  137. add_staff: false,
  138. id: "",
  139. isEdit: false,
  140. tableData: [],
  141. departmentPidPath: [],
  142. rolePidPath: [],
  143. searchForm: {
  144. region: "",
  145. role: "",
  146. },
  147. };
  148. },
  149. created() {
  150. this.getAllStaff();
  151. },
  152. activated() {
  153. if (this.$_isInit()) return;
  154. this.getAllStaff();
  155. },
  156. methods: {
  157. // 选择角色
  158. roleChange(val) {
  159. this.roleId = val[val.length - 1];
  160. this.departmentPidPath = val.join(",");
  161. console.log( this.departmentPidPath,'ar');
  162. this.page = 1;
  163. this.getAllStaff();
  164. },
  165. // 选择部门
  166. departmentChange(val) {
  167. this.departmentId = val[val.length - 1];
  168. this.departmentPidPath = val.join(",");
  169. this.pageChange(1);
  170. },
  171. staffConfirm() {
  172. this.getAllStaff();
  173. },
  174. // 获取列表
  175. async getAllStaff() {
  176. const data = await getAllStaff({
  177. page: this.page,
  178. pageSize: this.page_size,
  179. departmentId: this.departmentId,
  180. keyword: this.search_key,
  181. roleId: this.roleId,
  182. });
  183. this.tableData = data.data;
  184. this.total_count = data.pageTotal;
  185. },
  186. // 删除用户
  187. del(id) {
  188. this.$confirm("你确定删除此员工吗?", {
  189. confirmButtonText: "确定",
  190. cancelButtonText: "取消",
  191. type: "warning",
  192. }).then(async () => {
  193. const data = await deleteStaff({ id: [id] });
  194. this.getAllStaff();
  195. this.$message({
  196. type: "success",
  197. message: "删除成功!",
  198. });
  199. });
  200. },
  201. pageChange(page) {
  202. this.page = page;
  203. this.getAllStaff();
  204. },
  205. sizeChange(size) {
  206. this.page_size = size;
  207. this.pageChange(1);
  208. },
  209. // 编辑员工
  210. openEditModel(id) {
  211. this.staff_id = id;
  212. this.isEdit = true;
  213. this.add_staff = true;
  214. },
  215. openModel() {
  216. this.staff_id = 0;
  217. this.isEdit = false;
  218. this.add_staff = true;
  219. },
  220. },
  221. };
  222. </script>
  223. <style scoped></style>