2ea105f25f2b6ffea80663fdd088c491fbce7917.svn-base 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361
  1. <template>
  2. <div>
  3. <el-card>
  4. <el-row class="mb15">
  5. <el-col :span="24">
  6. <el-form
  7. :inline="true"
  8. size="mini"
  9. class="demo-form-inline"
  10. >
  11. <el-form-item label="原库别">
  12. <el-select v-model="form.groupType" clearable placeholder="请选择" multiple>
  13. <el-option :label="item.label" :value="item.value" v-for="(item,index) in groupTypeData" :key="index"></el-option>
  14. </el-select>
  15. </el-form-item>
  16. <!--<el-form-item label="入库时间">-->
  17. <!--<el-date-picker-->
  18. <!--style="width: 20vw;"-->
  19. <!--v-model="valueSt"-->
  20. <!--type="daterange"-->
  21. <!--value-format="yyyy-MM-dd"-->
  22. <!--range-separator="至"-->
  23. <!--start-placeholder="开始日期"-->
  24. <!--end-placeholder="结束日期"-->
  25. <!--&gt;</el-date-picker>-->
  26. <!--</el-form-item>-->
  27. <el-form-item label="角色分类">
  28. <el-select v-model="form.roleType" clearable placeholder="请选择" multiple>
  29. <el-option :label="item.label" :value="item.value" v-for="(item,index) in roleTypeData" :key="index"></el-option>
  30. </el-select>
  31. </el-form-item>
  32. <el-form-item label="是否培训">
  33. <el-select v-model="form.isTraining" clearable>
  34. <el-option v-for="item in sfType" :key="item.value" :label="item.label" :value="item.value"></el-option>
  35. </el-select>
  36. </el-form-item>
  37. <el-input v-model="form.name" placeholder="请输入姓名" style="width: 15vw" clearable></el-input>
  38. <el-button type="primary" icon="el-icon-search" @click="searchJcXxData">查询</el-button>
  39. </el-form>
  40. </el-col>
  41. </el-row>
  42. <div>
  43. <div>
  44. <el-table
  45. v-loading="loading"
  46. border
  47. ref="multipleTable"
  48. :height="tableHeight1"
  49. :data="peiXunStateData"
  50. tooltip-effect="dark"
  51. style="width: 100%"
  52. @selection-change="handleSelectionChange">
  53. <el-table-column
  54. type="selection"
  55. width="55">
  56. </el-table-column>
  57. <el-table-column align="center" type="index" label="序号" min-width="25">
  58. <template slot-scope="scope">{{ (form.pageNum - 1) * form.pageSize + (scope.$index + 1) }}</template>
  59. </el-table-column>
  60. <el-table-column
  61. header-align="center"
  62. align="center"
  63. min-width="100"
  64. prop="name"
  65. label="姓名"
  66. show-overflow-tooltip
  67. ></el-table-column>
  68. <el-table-column
  69. header-align="center"
  70. align="center"
  71. min-width="120"
  72. prop="sex"
  73. label="性别"
  74. show-overflow-tooltip
  75. ></el-table-column>
  76. <el-table-column
  77. header-align="center"
  78. align="center"
  79. min-width="80"
  80. show-overflow-tooltip
  81. prop="age"
  82. label="年龄"
  83. ></el-table-column>
  84. <el-table-column
  85. header-align="center"
  86. align="center"
  87. min-width="200"
  88. label="工作单位"
  89. show-overflow-tooltip
  90. prop="workDpNm"
  91. ></el-table-column>
  92. <el-table-column
  93. header-align="center"
  94. align="center"
  95. min-width="150"
  96. prop="telnumb"
  97. label="电话"
  98. show-overflow-tooltip
  99. ></el-table-column>
  100. <el-table-column
  101. header-align="center"
  102. align="center"
  103. min-width="120"
  104. prop="recommendedUnits"
  105. label="推荐单位"
  106. show-overflow-tooltip
  107. ></el-table-column>
  108. <el-table-column
  109. header-align="center"
  110. align="center"
  111. min-width="120"
  112. label="库别"
  113. show-overflow-tooltip
  114. >
  115. <template slot-scope="scope">
  116. {{groupType(scope.row.groupType)}}
  117. </template>
  118. </el-table-column>
  119. <el-table-column
  120. header-align="center"
  121. align="center"
  122. min-width="120"
  123. prop="inTm"
  124. label="入库时间"
  125. show-overflow-tooltip
  126. ></el-table-column>
  127. <el-table-column
  128. header-align="center"
  129. align="center"
  130. min-width="80"
  131. prop="orgNm"
  132. label="流域机构"
  133. show-overflow-tooltip
  134. ></el-table-column>
  135. <el-table-column
  136. header-align="center"
  137. align="center"
  138. min-width="80"
  139. prop="oe"
  140. label="体检结果"
  141. show-overflow-tooltip
  142. ></el-table-column>
  143. <el-table-column
  144. header-align="center"
  145. align="center"
  146. min-width="80"
  147. prop="isTraining"
  148. label="培训情况"
  149. show-overflow-tooltip
  150. >
  151. <template slot-scope="scope">
  152. <span v-if="scope.row.isTraining == '1'">是</span>
  153. <span v-if="scope.row.isTraining == '2'">否</span>
  154. </template>
  155. </el-table-column>
  156. <el-table-column
  157. header-align="center"
  158. align="center"
  159. min-width="100"
  160. label="角色"
  161. show-overflow-tooltip
  162. >
  163. <template slot-scope="scope" v-if="scope.row.roleTypeList">
  164. <span v-for="(item,index) in scope.row.roleTypeList" :key="index">
  165. {{roleTypeFy(item.value) + ' '}}
  166. </span>
  167. </template>
  168. </el-table-column>
  169. </el-table>
  170. <el-pagination
  171. style="margin: 10px auto"
  172. background
  173. :pager-count="5"
  174. :current-page="form.pageIndex"
  175. :page-size="form.pageSize"
  176. :page-sizes="[10, 20, 30, 40, 50, 100]"
  177. layout="sizes, total, prev, pager, next"
  178. :total="total"
  179. @current-change="pageIndexChange"
  180. @size-change="handleSizeChange"
  181. ></el-pagination>
  182. <div slot="footer" class="dialog-footer" style="text-align: right;">
  183. <span>将选中人员移入</span>
  184. <el-select v-model="moveKb" clearable placeholder="请选择">
  185. <el-option :label="item.label" :value="item.value" v-for="(item,index) in groupTypeData" :key="index"></el-option>
  186. </el-select>
  187. <!--</el-form-item>-->
  188. <el-button type="primary" @click="changeState">确 定</el-button>
  189. </div>
  190. </div>
  191. </div>
  192. </el-card>
  193. </div>
  194. </template>
  195. <script>
  196. import request from '@util/gw_ajax_request'
  197. export default {
  198. name: "peiXunState",
  199. props: ['groupTypeData'],
  200. data(){
  201. return {
  202. tableHeight1: window.innerHeight - 300,
  203. pageSize: 20,
  204. pageNum: 1,
  205. total: 0,
  206. form: {
  207. groupType: [],
  208. roleType: [],
  209. workAd: "",
  210. orgCode: [],
  211. isOffice: "",
  212. education: [],
  213. titles: [],
  214. unitRanks: [],
  215. // sttm: "",
  216. isTraining: "",
  217. isAll: [],
  218. kbType: '',
  219. pageSize: 20,
  220. pageNum: 1,
  221. name: "",
  222. ageLimits: []
  223. },
  224. valueSt:[],
  225. sfType: [
  226. {
  227. label: '是',
  228. value: "1"
  229. },
  230. {
  231. label: '否',
  232. value: "2"
  233. }
  234. ],
  235. peiXunStateData:[],
  236. multipleSelection:[],
  237. moveKb:"",
  238. loading: false
  239. }
  240. },
  241. computed: {
  242. // groupTypeData(){
  243. // return this.$store.state.jcState.groupTypeData;
  244. // },
  245. roleTypeData(){
  246. return this.$store.state.jcState.roleTypeData;
  247. }
  248. },
  249. mounted(){
  250. this.$nextTick(()=>{
  251. this.getRyXxData();
  252. })
  253. },
  254. methods:{
  255. getTj(val,isExport){
  256. let obj = {};
  257. obj.groupType = this.form.groupType.toString();
  258. obj.roleType = this.form.roleType.toString();
  259. // obj.adName = this.form.adName;
  260. obj.workAd = this.form.workAd;
  261. obj.orgCode = this.form.orgCode.toString();
  262. obj.isOffice = this.form.isOffice;
  263. obj.education = this.form.education.toString();
  264. obj.titles = this.form.titles.toString();
  265. obj.unitRanks = this.form.unitRanks.toString();
  266. obj.sttm = this.valueSt && this.valueSt.length > 0 ? this.valueSt[0]:'';
  267. obj.entm = this.valueSt && this.valueSt.length > 0 ? this.valueSt[1]:'';
  268. obj.isTraining = this.form.isTraining;
  269. obj.pageSize = this.form.pageSize;
  270. obj.pageNum = this.form.pageNum;
  271. obj.name = this.form.name;
  272. obj.ageLimits = this.form.ageLimits.toString();
  273. obj.isAll = this.form.isAll.toString();
  274. obj.columns = val;
  275. obj.isExport = isExport;
  276. return obj;
  277. },
  278. getRyXxData(){
  279. this.loading = true;
  280. let obj = this.getTj();
  281. request.post(`/tac/worker/b/getWorkerbsPage`,obj).then(res =>{
  282. if(res.success){
  283. this.$nextTick(()=>{
  284. this.loading = false;
  285. this.peiXunStateData = res.data.list;
  286. this.total = res.data.total;
  287. })
  288. }
  289. })
  290. },
  291. //角色
  292. roleTypeFy(row){
  293. if(row){
  294. this.roleTypeData.forEach(ele => {
  295. if (ele.value == row) {
  296. row = ele.label;
  297. }
  298. });
  299. return row;
  300. }else{
  301. return '';
  302. }
  303. },
  304. //库别
  305. groupType(row){
  306. if(row){
  307. this.groupTypeData.forEach(ele => {
  308. if (ele.value == row) {
  309. row = ele.label;
  310. }
  311. });
  312. return row;
  313. }else{
  314. return '';
  315. }
  316. },
  317. //查询
  318. searchJcXxData(){
  319. this.getRyXxData();
  320. },
  321. //全选
  322. handleSelectionChange(val) {
  323. this.multipleSelection = val;
  324. },
  325. //确定
  326. changeState(){
  327. if(this.multipleSelection.length > 0 && this.moveKb){
  328. request.post(`/tac/worker/b/updateWorkerbList`,{
  329. "groupType": this.moveKb,
  330. "workerBList":this.multipleSelection
  331. }).then(res =>{
  332. if(res.success){
  333. this.$message.success("更改成功");
  334. this.getRyXxData();
  335. }
  336. })
  337. }else{
  338. this.$message.warning("请选择人员或要移入的库别");
  339. }
  340. },
  341. //分页
  342. pageIndexChange(val) {
  343. this.form.pageNum = val;
  344. this.getRyXxData();
  345. },
  346. handleSizeChange(val) {
  347. this.form.pageSize = val;
  348. this.getRyXxData();
  349. },
  350. }
  351. }
  352. </script>
  353. <style scoped>
  354. .mb15{
  355. }
  356. </style>