plm前端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

490 lines
17 KiB

  1. <template>
  2. <div>
  3. <el-form :inline="true" :model="dataForm" @keyup.enter.native="search()">
  4. <el-form-item>
  5. <el-input v-model="dataForm.userName" placeholder="用户账号" clearable></el-input>
  6. </el-form-item>
  7. <el-form-item>
  8. <el-input v-model="dataForm.userDisplay" placeholder="用户名" clearable></el-input>
  9. </el-form-item>
  10. <el-form-item>
  11. <el-button type="primary" @click="search()">{{buttons.search ||'查询' }}</el-button>
  12. </el-form-item>
  13. </el-form>
  14. <el-table
  15. :data="dataList"
  16. border
  17. v-loading="dataListLoading"
  18. @selection-change="selectionChangeHandle"
  19. highlight-current-row
  20. style="width: 100%;height: 731px">
  21. <el-table-column
  22. prop="userName"
  23. header-align="center"
  24. align="center"
  25. :label="buttons.userName||'用户账号'">
  26. </el-table-column>
  27. <el-table-column
  28. prop="userDisplay"
  29. header-align="center"
  30. align="center"
  31. :label="buttons.userDisplay||'用户名'">
  32. </el-table-column>
  33. <el-table-column
  34. prop="purchaser"
  35. header-align="center"
  36. align="center"
  37. width="110px"
  38. :label="buttons.purchaser||'采购员'">
  39. <!-- <template slot-scope="scope">-->
  40. <!-- &lt;!&ndash; 如果数据为Y显示勾选框否则不勾选 &ndash;&gt;-->
  41. <!-- <el-checkbox v-model="scope.row.purchaser" @change="changeCheck(scope.row,1)"></el-checkbox>-->
  42. <!-- </template>-->
  43. </el-table-column>
  44. <el-table-column
  45. prop="insideSales"
  46. header-align="center"
  47. align="center"
  48. width="110px"
  49. :label="buttons.insideSales||'内部销售'">
  50. </el-table-column>
  51. <el-table-column
  52. prop="externalSales"
  53. header-align="center"
  54. align="center"
  55. width="110px"
  56. :label="buttons.externalSales||'外部销售'">
  57. </el-table-column>
  58. <el-table-column
  59. prop="procurementApplicant"
  60. header-align="center"
  61. align="center"
  62. width="110px"
  63. :label="buttons.procurementApplicant||'采购申请人'">
  64. </el-table-column>
  65. <el-table-column
  66. prop="purchaseRequisitionApprover"
  67. header-align="center"
  68. align="center"
  69. width="110px"
  70. :label="buttons.purchaseRequisitionApprover||'采购申请单审批人'">
  71. </el-table-column>
  72. <el-table-column
  73. prop="purchaseOrderApprover"
  74. header-align="center"
  75. align="center"
  76. width="110px"
  77. :label="buttons.purchaseOrderApprover||'采购订单审批人'">
  78. </el-table-column>
  79. <el-table-column
  80. prop="salesOrderApprover"
  81. header-align="center"
  82. align="center"
  83. width="110px"
  84. :label="buttons.salesOrderApprover||'销售订单审批人'">
  85. </el-table-column>
  86. <el-table-column
  87. prop="createTime"
  88. header-align="center"
  89. align="center"
  90. width="180"
  91. :label="buttons.createTime||'创建时间'">
  92. </el-table-column>
  93. <el-table-column
  94. prop=""
  95. header-align="center"
  96. align="center"
  97. min-width="30"
  98. label="操作">
  99. <template slot-scope="scope">
  100. <a type="text" size="small" @click="UpdateHandle(scope.row)">修改</a>
  101. </template>
  102. </el-table-column>
  103. </el-table>
  104. <el-pagination
  105. @size-change="sizeChangeHandle"
  106. @current-change="currentChangeHandle"
  107. :current-page="pageIndex"
  108. :page-sizes="[20, 50, 100, 200,500]"
  109. :page-size="pageSize"
  110. :total="totalPage"
  111. layout="total, sizes, prev, pager, next, jumper">
  112. </el-pagination>
  113. <el-dialog :title="modalData.title"
  114. :close-on-click-modal="false"
  115. v-drag
  116. :visible.sync="modalFlag"
  117. width="495px">
  118. <el-form :inline="true" label-position="top" :model="modalData" :rules="rules" style="margin-left: 7px;margin-top: -5px;">
  119. <el-form-item label="用户账号" prop="userName" :rules="rules.userName">
  120. <el-input v-model="modalData.userName" style="width: 221px" readonly></el-input>
  121. </el-form-item>
  122. <el-form-item label="用户名" prop="userDisplay" :rules="rules.userDisplay">
  123. <el-input v-model="modalData.userDisplay" style="width: 221px" readonly></el-input>
  124. </el-form-item>
  125. </el-form>
  126. <el-form :inline="true" label-position="top" :model="modalData" :rules="rules" style="margin-left: 7px;margin-top: -5px;">
  127. <el-form-item label="采购员" prop="purchaser" :rules="rules.purchaser">
  128. <el-select v-model="modalData.purchaser" style="width: 221px">
  129. <el-option label="是" value="Y"></el-option>
  130. <el-option label="否" value="N"></el-option>
  131. </el-select>
  132. </el-form-item>
  133. <el-form-item label="内部销售" prop="insideSales" :rules="rules.insideSales">
  134. <el-select v-model="modalData.insideSales" style="width: 221px">
  135. <el-option label="是" value="Y"></el-option>
  136. <el-option label="否" value="N"></el-option>
  137. </el-select>
  138. </el-form-item>
  139. </el-form>
  140. <el-form :inline="true" label-position="top" :model="modalData" :rules="rules" style="margin-left: 7px;margin-top: -5px;">
  141. <el-form-item label="外部销售" prop="externalSales" :rules="rules.externalSales">
  142. <el-select v-model="modalData.externalSales" style="width: 221px">
  143. <el-option label="是" value="Y"></el-option>
  144. <el-option label="否" value="N"></el-option>
  145. </el-select>
  146. </el-form-item>
  147. <el-form-item label="采购申请人" prop="procurementApplicant" :rules="rules.procurementApplicant">
  148. <el-select v-model="modalData.procurementApplicant" style="width: 221px">
  149. <el-option label="是" value="Y"></el-option>
  150. <el-option label="否" value="N"></el-option>
  151. </el-select>
  152. </el-form-item>
  153. </el-form>
  154. <el-form :inline="true" label-position="top" :model="modalData" :rules="rules" style="margin-left: 7px;margin-top: -5px;">
  155. <el-form-item label="采购申请单审批人" prop="purchaseRequisitionApprover" :rules="rules.purchaseRequisitionApprover">
  156. <el-select v-model="modalData.purchaseRequisitionApprover" style="width: 221px">
  157. <el-option label="是" value="Y"></el-option>
  158. <el-option label="否" value="N"></el-option>
  159. </el-select>
  160. </el-form-item>
  161. <el-form-item label="采购订单审批人" prop="purchaseOrderApprover" :rules="rules.purchaseOrderApprover">
  162. <el-select v-model="modalData.purchaseOrderApprover" style="width: 221px">
  163. <el-option label="是" value="Y"></el-option>
  164. <el-option label="否" value="N"></el-option>
  165. </el-select>
  166. </el-form-item>
  167. </el-form>
  168. <el-form :inline="true" label-position="top" :model="modalData" :rules="rules" style="margin-left: 7px;margin-top: -5px;">
  169. <el-form-item label="销售订单审批人" prop="salesOrderApprover" :rules="rules.salesOrderApprover">
  170. <el-select v-model="modalData.salesOrderApprover" style="width: 221px">
  171. <el-option label="是" value="Y"></el-option>
  172. <el-option label="否" value="N"></el-option>
  173. </el-select>
  174. </el-form-item>
  175. </el-form>
  176. <el-footer style="height:30px;margin-top: 20px;text-align:center">
  177. <el-button type="primary" @click="saveData()">保存</el-button>
  178. <el-button type="primary" @click="modalFlag = false">关闭</el-button>
  179. </el-footer>
  180. </el-dialog>
  181. </div>
  182. </template>
  183. <script>
  184. import {
  185. searchFunctionButtonList,
  186. } from "@/api/sysLanguage.js"
  187. import {searchUserJobList,editUserJobInfo} from '../../../api/user'
  188. export default {
  189. watch: {
  190. dataForm:{
  191. deep:true,
  192. handler: function (val, oldVal) {
  193. this.dataForm.userId = this.dataForm.userId.toUpperCase()
  194. }
  195. },
  196. modalData:{
  197. deep:true,
  198. handler: function (val, oldVal) {
  199. this.modalData.userId = this.modalData.userId.toUpperCase()
  200. }
  201. }
  202. },
  203. data () {
  204. return {
  205. dataForm: {
  206. site: '',
  207. userId: '',
  208. userName: '',
  209. userDisplay: '',
  210. },
  211. modalData: {
  212. title: '',
  213. site: '',
  214. userId:'',
  215. userName: '',
  216. userDisplay: '',
  217. purchaser: '',
  218. insideSales: '',
  219. externalSales: '',
  220. procurementApplicant: '',
  221. purchaseRequisitionApprover: '',
  222. purchaseOrderApprover: '',
  223. salesOrderApprover: '',
  224. createTime:''
  225. },
  226. dataList: [],
  227. pageIndex: 1,
  228. pageSize: 20,
  229. totalPage: 0,
  230. height: 200,
  231. dataListLoading: false,
  232. dataListSelections: [],
  233. addOrUpdateVisible: false,
  234. buttons: {
  235. cz: '操作',
  236. search: '查询',
  237. edit: '编辑',
  238. purchaser: '采购员',
  239. insideSales: '内部销售',
  240. externalSales: '外部销售',
  241. procurementApplicant: '采购申请人',
  242. purchaseRequisitionApprover: '采购申请单审批人',
  243. purchaseOrderApprover: '采购订单审批人',
  244. salesOrderApprover: '销售订单审批人',
  245. createTime: '创建时间',
  246. },
  247. rules: {
  248. userName: [
  249. {required: true, message: '', trigger: 'blur'}
  250. ],
  251. userDisplay: [
  252. {required: true, message: '', trigger: 'blur'}
  253. ],
  254. purchaser: [
  255. {required: true, message: '', trigger: 'blur'}
  256. ],
  257. insideSales: [
  258. {required: true, message: '', trigger: 'blur'}
  259. ],
  260. externalSales: [
  261. {required: true, message: '', trigger: 'blur'}
  262. ],
  263. procurementApplicant: [
  264. {required: true, message: '', trigger: 'blur'}
  265. ],
  266. purchaseRequisitionApprover: [
  267. {required: true, message: '', trigger: 'blur'}
  268. ],
  269. purchaseOrderApprover: [
  270. {required: true, message: '', trigger: 'blur'}
  271. ],
  272. salesOrderApprover: [
  273. {required: true, message: '', trigger: 'blur'}
  274. ],
  275. },
  276. modalFlag: false,
  277. modalDisableFlag: false,
  278. }
  279. },
  280. activated () {
  281. this.search()
  282. },
  283. created () {
  284. this.getFunctionButtonList()
  285. this.search()
  286. },
  287. methods: {
  288. // for (let i = 0; i < this.dataList.length; i++) {
  289. // if(this.dataList[i].username==this.$store.state.user.name){
  290. // this.dataList[i].purchaser='Y'
  291. // this.dataList[i].insideSales='Y'
  292. // this.dataList[i].externalSales='Y'
  293. // this.dataList[i].procurementApplicant='Y'
  294. // this.dataList[i].purchaseRequisitionApprover='Y'
  295. // this.dataList[i].purchaseOrderApprover='Y'
  296. // this.dataList[i].salesOrderApprover='Y'
  297. // }
  298. // }
  299. search () {
  300. this.dataForm.limit = this.pageSize
  301. this.dataForm.page = this.pageIndex
  302. searchUserJobList(this.dataForm).then(({data}) => {
  303. if (data.code == 0) {
  304. this.dataList = data.page.list
  305. this.pageIndex = data.page.currPage
  306. this.pageSize = data.page.pageSize
  307. this.totalPage = data.page.totalCount
  308. }
  309. this.dataListLoading = false
  310. })
  311. },
  312. // changeAll(row){
  313. // if(row.checkAll){
  314. // row.purchaser='Y';
  315. // row.insideSales='Y';
  316. // row.externalSales='Y';
  317. // row.procurementApplicant='Y';
  318. // row.purchaseRequisitionApprover='Y';
  319. // row.purchaseOrderApprover='Y';
  320. // row.salesOrderApprover='Y';
  321. // }else {
  322. // row.purchaser='N';
  323. // row.insideSales='N';
  324. // row.externalSales='N';
  325. // row.procurementApplicant='N';
  326. // row.purchaseRequisitionApprover='N';
  327. // row.purchaseOrderApprover='N';
  328. // row.salesOrderApprover='N';
  329. // }
  330. // },
  331. // changeCheck(row,type){
  332. // if(type===1){
  333. // if(row.purchaser){
  334. // row.purchaserFlag='Y'
  335. // }else {
  336. // row.purchaserFlag='N'
  337. // }
  338. // }
  339. // if(type==2){
  340. // if(row.insideSales){
  341. // row.insideSalesFlag='Y'
  342. // }else {
  343. // row.insideSalesFlag='N'
  344. // }
  345. // }
  346. // if(type==3){
  347. // if(row.externalSales){
  348. // row.externalSalesFlag='Y'
  349. // }else {
  350. // row.externalSalesFlag='N'
  351. // }
  352. // }
  353. // if(type==4){
  354. // if(row.procurementApplicant){
  355. // row.procurementApplicantFlag='Y'
  356. // }else {
  357. // row.procurementApplicantFlag='N'
  358. // }
  359. // }
  360. // if(type==5){
  361. // if(row.purchaseRequisitionApprover){
  362. // row.purchaseRequisitionApproverFlag='Y'
  363. // }else {
  364. // row.purchaseRequisitionApproverFlag='N'
  365. // }
  366. // }
  367. // if(type==6){
  368. // if(row.purchaseOrderApprover){
  369. // row.purchaseOrderApproverFlag='Y'
  370. // }else {
  371. // row.purchaseOrderApproverFlag='N'
  372. // }
  373. // }
  374. // if(type==7){
  375. // if(row.salesOrderApprover){
  376. // row.salesOrderApproverFlag='Y'
  377. // }else {
  378. // row.salesOrderApproverFlag='N'
  379. // }
  380. // }
  381. // if (row.purchaserFlag=='Y'&&row.insideSalesFlag=='Y'&&row.externalSalesFlag=='Y'&&row.procurementApplicantFlag=='Y'&&row.purchaseRequisitionApproverFlag=='Y'&&row.purchaseOrderApproverFlag=='Y'&&row.salesOrderApproverFlag=='Y'){
  382. // row.checkAll=true
  383. // }else {
  384. // row.checkAll=false
  385. // }
  386. // this.$forceUpdate();
  387. // },
  388. // 角色修改模态框
  389. UpdateHandle (row) {
  390. this.modalData = {
  391. title: '角色修改',
  392. site: row.site,
  393. userId: row.userId,
  394. userName: row.userName,
  395. userDisplay: row.userDisplay,
  396. purchaser: row.purchaser,
  397. insideSales: row.insideSales,
  398. externalSales: row.externalSales,
  399. procurementApplicant: row.procurementApplicant,
  400. purchaseRequisitionApprover: row.purchaseRequisitionApprover,
  401. purchaseOrderApprover: row.purchaseOrderApprover,
  402. salesOrderApprover: row.salesOrderApprover,
  403. }
  404. this.modalDisableFlag = true
  405. this.modalFlag = true
  406. },
  407. // 保存
  408. saveData () {
  409. if (this.modalData.purchaser === '' || this.modalData.purchaser == null) {
  410. this.$message.warning('请选择采购员是否!')
  411. return
  412. }
  413. if (this.modalData.insideSales === '' || this.modalData.insideSales == null) {
  414. this.$message.warning('请选择内部销售是否!')
  415. return
  416. }
  417. if (this.modalData.externalSales === '' || this.modalData.externalSales == null) {
  418. this.$message.warning('请选择外部销售是否!')
  419. return
  420. }
  421. if (this.modalData.procurementApplicant === '' || this.modalData.procurementApplicant == null) {
  422. this.$message.warning('请选择采购申请人是否!')
  423. return
  424. }
  425. if (this.modalData.purchaseRequisitionApprover === '' || this.modalData.purchaseRequisitionApprover == null) {
  426. this.$message.warning('请选择采购申请单审批人是否!')
  427. return
  428. }
  429. if (this.modalData.purchaseOrderApprover === '' || this.modalData.purchaseOrderApprover == null) {
  430. this.$message.warning('请选择采购订单审批人是否!')
  431. return
  432. }
  433. if (this.modalData.salesOrderApprover === '' || this.modalData.salesOrderApprover == null) {
  434. this.$message.warning('请选择销售订单审批人是否!')
  435. return
  436. }
  437. //修改方法
  438. editUserJobInfo(this.modalData).then(({data}) => {
  439. if (data && data.code === 0) {
  440. this.search()
  441. this.modalFlag = false
  442. this.$message({
  443. message: '操作成功',
  444. type: 'success',
  445. duration: 1500,
  446. onClose: () => {
  447. }
  448. })
  449. } else {
  450. this.$alert(data.msg, '错误', {
  451. confirmButtonText: '确定'
  452. })
  453. }
  454. })
  455. },
  456. // 获取button的词典
  457. getFunctionButtonList () {
  458. let queryButton = {
  459. functionId: this.$route.meta.menuId,
  460. tableId: '*',
  461. languageCode: this.$i18n.locale,
  462. objectType: 'button'
  463. }
  464. searchFunctionButtonList(queryButton).then(({data}) => {
  465. if (data.code == 0 && data.data) {
  466. this.buttons = data.data
  467. }
  468. })
  469. },
  470. sizeChangeHandle (val) {
  471. this.pageSize = val
  472. this.pageIndex = 1
  473. this.search()
  474. },
  475. // 当前页
  476. currentChangeHandle (val) {
  477. this.pageIndex = val
  478. this.search()
  479. },
  480. // 多选
  481. selectionChangeHandle (val) {
  482. this.dataListSelections = val
  483. },
  484. }
  485. }
  486. </script>