index.vue 9.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235
  1. <template>
  2. <div>
  3. <!-- 列表 -->
  4. <el-table v-loading="loading" :data="orgList" @row-click="tableRowClick" height="50vh" v-if="type == 'comInfo'">
  5. <el-table-column label="用户编号" align="center" key="id" prop="id" v-if="columns[0].visible" />
  6. <el-table-column label="用户名称" align="center" key="username" prop="username" v-if="columns[1].visible"
  7. :show-overflow-tooltip="true" />
  8. <el-table-column label="用户昵称" align="center" key="nickname" prop="nickname" v-if="columns[2].visible"
  9. :show-overflow-tooltip="true" />
  10. <el-table-column label="部门" align="center" key="deptName" prop="dept.name" v-if="columns[3].visible"
  11. :show-overflow-tooltip="true" />
  12. <el-table-column label="手机号码" align="center" key="mobile" prop="mobile" v-if="columns[4].visible" width="120" />
  13. <el-table-column label="是否已读" width="120">
  14. <template slot-scope="scope">
  15. <span>{{ scope.row.is_read === 1?'已读':'未读' }}</span>
  16. </template>
  17. </el-table-column>
  18. </el-table>
  19. <!-- 列表 -->
  20. <el-table v-loading="loading" :data="orgList" @row-click="tableRowClick" height="50vh" v-else>
  21. <el-table-column label="ID" align="center" prop="id" />
  22. <el-table-column label="单位名称" align="center" prop="orgName" />
  23. <el-table-column label="单位地址" align="center" prop="dwdz" />
  24. <el-table-column label="监管单位类别" align="center" prop="dwlx">
  25. <template v-slot="scope">
  26. <dict-tag :type="DICT_TYPE.BACKEND_ORG_TYPE" :value="scope.row.dwlx" />
  27. </template>
  28. </el-table-column>
  29. <el-table-column label="上级消防管辖单位" align="center" prop="sjxfgxdw">
  30. <template v-slot="scope">
  31. <span>{{ deptOptionsTrans(scope.row.sjxfgxdw) }}</span>
  32. </template>
  33. </el-table-column>
  34. <!-- <el-table-column label="单位名称" align="center" prop="orgName" />
  35. <el-table-column label="单位地址" align="center" prop="dwdz" />
  36. <el-table-column label="单位拼音简称" align="center" prop="dwpyjc" />
  37. <el-table-column label="监管单位类别" align="center" prop="dwlx" />
  38. <el-table-column label="经济所有制" align="center" prop="jjsyz" />
  39. <el-table-column label="单位成立时间" align="center" prop="dwclsj">
  40. <template v-slot="scope">
  41. <span>{{ parseTime(scope.row.dwclsj) }}</span>
  42. </template>
  43. </el-table-column> -->
  44. </el-table>
  45. <!-- 分页组件 -->
  46. <!-- <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNo" :limit.sync="queryParams.pageSize"
  47. @pagination="getOrgList(userId)" /> -->
  48. </div>
  49. </template>
  50. <script>
  51. import Treeselect from "@riophae/vue-treeselect";
  52. import "@riophae/vue-treeselect/dist/vue-treeselect.css";
  53. import { listSimpleDepts } from "@/api/system/dept";
  54. import { listSimplePosts } from "@/api/system/post";
  55. import { CommonStatusEnum } from "@/utils/constants";
  56. import { DICT_TYPE, getDictDatas } from "@/utils/dict";
  57. import { assignUserRole, listUserRoles } from "@/api/system/permission";
  58. import { listSimpleRoles } from "@/api/system/role";
  59. import { addUserOrgSaveBatch, getOneUser2OrgList } from "@/api/system/org";
  60. import { getBaseHeader } from "@/utils/request";
  61. import { createOrg, updateOrg, deleteOrg, getOrg, getOrgPage, exportOrgExcel } from "@/api/backend/org"
  62. import { createMeeting, updateMeeting, deleteMeeting, getMeeting, getMeetingPage, exportMeetingExcel, getmeetingorg } from "@/api/backend/meeting"
  63. import { getTaskBroadPage } from "@/api/backend/taskBroad";
  64. import { createPoliceStation, updatePoliceStation, deletePoliceStation, getPoliceStation, getPoliceStationPage, exportPoliceStationExcel } from "@/api/backend/policeStation"
  65. import { createTaskInfo, updateTaskInfo, deleteTaskInfo, getTaskorgInfoXin, getTaskInfoPage, exportTaskInfoExcel, createTaskInfoBroad, TaskInfoSetuporg, TaskInfoSetupinspect } from "@/api/backend/taskInfo"
  66. import { getselfComuser } from "@/api/backend/comInfo"
  67. export default {
  68. components: {},
  69. data() {
  70. return {
  71. // =======单位信息==========================
  72. // 遮罩层
  73. loading: false,
  74. // 最终选择的单位信息列表
  75. orgList: [],
  76. // 最终选择的单位信息列表总条数
  77. total: 0,
  78. // 右侧查询参数
  79. queryParams: {
  80. pageNo: 1,
  81. pageSize: 10,
  82. // userId: '',
  83. },
  84. // 列信息
  85. columns: [
  86. { key: 0, label: `用户编号`, visible: true },
  87. { key: 1, label: `用户名称`, visible: true },
  88. { key: 2, label: `用户昵称`, visible: true },
  89. { key: 3, label: `部门`, visible: true },
  90. { key: 4, label: `手机号码`, visible: true },
  91. { key: 5, label: `状态`, visible: true },
  92. { key: 6, label: `创建时间`, visible: true }
  93. ],
  94. deptOptionsList: {},
  95. };
  96. },
  97. computed: {},
  98. created() {
  99. this.getTreeselect()
  100. this.Orgreset();
  101. this.getOrgList(this.userId)
  102. },
  103. mounted() {
  104. console.log(';45653443rhfudhisdv k :>> ');
  105. },
  106. props: {
  107. userId: {
  108. // type: Number
  109. },
  110. type: { // 判断类型
  111. type: String
  112. },
  113. },
  114. watch: {
  115. userId: { //深度监听,可监听到对象、数组的变化
  116. handler(newV, oldV) {
  117. console.log('userId :>> ', this.userId);
  118. this.Orgreset();
  119. this.getOrgList(this.userId)
  120. },
  121. deep: true
  122. }
  123. },
  124. methods: {
  125. /** 查询部门下拉树结构 + 岗位下拉 */
  126. getTreeselect() {
  127. listSimpleDepts().then(response => {
  128. // 处理 deptOptions 参数
  129. var list = response.data
  130. list.map(i => {
  131. this.deptOptionsList[i.id] = i.name
  132. })
  133. });
  134. },
  135. deptOptionsTrans(val) {
  136. return this.deptOptionsList[val];
  137. },
  138. // ========单位信息==============================================================
  139. // 单位信息表单重置
  140. Orgreset() {
  141. this.orgList = []
  142. this.queryParams = {
  143. pageNo: 1,
  144. pageSize: 10,
  145. };
  146. },
  147. /** 查询单位信息列表 */
  148. getOrgList(userId) {
  149. if (this.userId != undefined || this.userId != null) {
  150. // 根据父组件传的type不同,获取到的与单位站的关系也不太
  151. this.loading = true
  152. if (this.type === 'user') {
  153. this.queryParams.userId = userId
  154. getOneUser2OrgList(this.queryParams).then(response => {
  155. this.orgList = response.data ? response.data : []
  156. this.total = response.data ? response.data.length : 0
  157. this.loading = false
  158. })
  159. } else if (this.type === 'policeStation') {
  160. getPoliceStation(userId).then(response => {
  161. this.orgList = response.data ? (response.data.orgDOList ? response.data.orgDOList : []) : []
  162. this.total = response.data ? (response.data.orgDOList ? response.data.orgDOList.length : 0) : 0
  163. this.loading = false
  164. })
  165. } else if (this.type === 'meeting') {
  166. this.queryParams.meetingId = userId
  167. getmeetingorg(this.queryParams).then(response => {
  168. this.orgList = response.data ? response.data.list : []
  169. this.total = response.data ? response.data.total : 0
  170. this.loading = false
  171. })
  172. } else if (this.type === 'tackinfo') {
  173. // this.queryParams.taskId = userId
  174. getTaskorgInfoXin(userId).then(response => {
  175. // this.orgList = response.data ? (response.data.orgDOList ? response.data.orgDOList : []) : []
  176. // this.total = response.data ? (response.data.orgDOList ? response.data.orgDOList.length : 0) : 0
  177. this.orgList = response.data
  178. this.loading = false
  179. })
  180. } else if (this.type === 'comInfo') {
  181. // this.queryParams.taskId = userId
  182. getselfComuser({ comId: userId }).then(response => {
  183. this.orgList = response.data ? response.data : []
  184. this.total = response.data ? response.data.length : 0
  185. this.loading = false
  186. })
  187. } else {
  188. }
  189. }
  190. },
  191. // 分配分管单位table点击
  192. tableRowClick(row) {
  193. console.log('row, column, event :>> ', row);
  194. },
  195. confirmMSg() {
  196. return this.orgList
  197. }
  198. // =========表单添加时选单位=================================================
  199. // =================================================================
  200. },
  201. };
  202. </script>
  203. <style scoped>
  204. .icon-button {
  205. border-color: transparent;
  206. font-size: 23px;
  207. padding: 0px;
  208. }
  209. .icon-button.is-plain:hover,
  210. .icon-button.is-plain:focus {
  211. background: #FFFFFF;
  212. border-color: transparent;
  213. color: #1890ff;
  214. }
  215. </style>