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.

453 lines
14 KiB

  1. <script>
  2. import {queryUserDefaultOperationList,
  3. saveUserDefaultOperation,
  4. queryUserDefaultOperationListByUsername,
  5. queytOperationList,
  6. deleteUserDefaultOperation,
  7. getSiteAndBuByUserName,
  8. getAllUserList
  9. } from "@/api/qc/qc.js"
  10. import {getAllBuList} from "../../../api/factory/site";
  11. export default {
  12. name: 'userDefaultOpetation',
  13. data () {
  14. return {
  15. queryParams: {
  16. page: 1,
  17. pageCount: 50,
  18. username: '',
  19. operation: '',
  20. bu: ''
  21. },
  22. operationList:[],
  23. dataList: [],
  24. userBuList: [],
  25. total: 0,
  26. modalFlag: false,
  27. modalData: {
  28. username: '',
  29. operation:'',
  30. bu: '',
  31. },
  32. userFlag:false,
  33. userData:{
  34. username:'',
  35. userDisplay:''
  36. },
  37. userDataList:[],
  38. ifUsernameExist: 0,
  39. columns: [
  40. {
  41. userId: this.$store.state.user.name,
  42. functionId: 200101107,
  43. serialNumber: '200101107Table1Bu',
  44. tableId: '200101107Table1',
  45. tableName: '用户默认工序设置表',
  46. columnProp: 'buDesc',
  47. headerAlign: 'center',
  48. align: 'center',
  49. columnLabel: 'BU',
  50. columnHidden: false,
  51. columnImage: false,
  52. columnSortable: false,
  53. sortLv: 0,
  54. status: true,
  55. fixed: '',
  56. columnWidth: 80
  57. },
  58. {
  59. userId: this.$store.state.user.name,
  60. functionId: 200101106,
  61. serialNumber: '200101106Table1Username',
  62. tableId: '200101106Table1',
  63. tableName: '用户默认工序设置表',
  64. columnProp: 'username',
  65. headerAlign: 'center',
  66. align: 'center',
  67. columnLabel: '用户名',
  68. columnHidden: false,
  69. columnImage: false,
  70. columnSortable: false,
  71. sortLv: 0,
  72. status: true,
  73. fixed: '',
  74. columnWidth: 80
  75. },
  76. {
  77. userId: this.$store.state.user.name,
  78. functionId: 200101106,
  79. serialNumber: '200101106Table1Username',
  80. tableId: '200101106Table1',
  81. tableName: '用户默认工序设置表',
  82. columnProp: 'userDisplay',
  83. headerAlign: 'center',
  84. align: 'center',
  85. columnLabel: '名称',
  86. columnHidden: false,
  87. columnImage: false,
  88. columnSortable: false,
  89. sortLv: 0,
  90. status: true,
  91. fixed: '',
  92. columnWidth: 80
  93. },
  94. {
  95. userId: this.$store.state.user.name,
  96. functionId: 200101107,
  97. serialNumber: '200101107Table1Operation',
  98. tableId: '200101107Table1',
  99. tableName: '用户默认工序设置表',
  100. columnProp: 'operation',
  101. headerAlign: 'center',
  102. align: 'center',
  103. columnLabel: '工序编码',
  104. columnHidden: false,
  105. columnImage: false,
  106. columnSortable: false,
  107. sortLv: 0,
  108. status: true,
  109. fixed: '',
  110. columnWidth: 80
  111. },
  112. {
  113. userId: this.$store.state.user.name,
  114. functionId: 200101107,
  115. serialNumber: '200101107Table1Operation',
  116. tableId: '200101107Table1',
  117. tableName: '用户默认工序设置表',
  118. columnProp: 'operationDesc',
  119. headerAlign: 'center',
  120. align: 'center',
  121. columnLabel: '工序名称',
  122. columnHidden: false,
  123. columnImage: false,
  124. columnSortable: false,
  125. sortLv: 0,
  126. status: true,
  127. fixed: '',
  128. columnWidth: 80
  129. }
  130. ],
  131. userColomn: [
  132. {
  133. userId: this.$store.state.user.name,
  134. functionId: 200101107,
  135. serialNumber: '200101107Table1Bu',
  136. tableId: '200101107Table1',
  137. tableName: '用户默认工序设置表',
  138. columnProp: 'username',
  139. headerAlign: 'center',
  140. align: 'center',
  141. columnLabel: '用户名',
  142. columnHidden: false,
  143. columnImage: false,
  144. columnSortable: false,
  145. sortLv: 0,
  146. status: true,
  147. fixed: '',
  148. columnWidth: 80
  149. },
  150. {
  151. userId: this.$store.state.user.name,
  152. functionId: 200101106,
  153. serialNumber: '200101106Table1Username',
  154. tableId: '200101106Table1',
  155. tableName: '用户默认工序设置表',
  156. columnProp: 'userDisplay',
  157. headerAlign: 'center',
  158. align: 'center',
  159. columnLabel: '描述',
  160. columnHidden: false,
  161. columnImage: false,
  162. columnSortable: false,
  163. sortLv: 0,
  164. status: true,
  165. fixed: '',
  166. columnWidth: 80
  167. }
  168. ]
  169. }
  170. },
  171. methods: {
  172. handleQuery () {
  173. queryUserDefaultOperationList(this.queryParams).then(({data}) => {
  174. if (data.code == 0) {
  175. this.dataList = data.rows
  176. this.total = data.total
  177. }
  178. }).catch((errer) => {
  179. this.$message.error(errer)
  180. })
  181. },
  182. async handleQueryByUsername () {
  183. let json = {
  184. username: this.modalData.username
  185. }
  186. await queryUserDefaultOperationListByUsername(json).then(({data})=>{
  187. this.ifUsernameExist = data.code
  188. })
  189. },
  190. // 获取用户的bu
  191. getSiteAndBuByUserName () {
  192. let tempData = {
  193. username: this.$store.state.user.name,
  194. }
  195. getSiteAndBuByUserName(tempData).then(({data}) => {
  196. if (data.code === 0) {
  197. this.userBuList = data.rows
  198. }
  199. })
  200. },
  201. async saveModalData(){
  202. let data = this.modalData
  203. if (data.username==null||data.username==''){
  204. this.$message.warning("用户名不能为空!")
  205. return
  206. }else {
  207. await this.handleQueryByUsername()
  208. if (this.ifUsernameExist==2){
  209. this.$message.warning("此用户名已经存在记录")
  210. return
  211. }
  212. }
  213. if (data.operation==null||data.operation==''){
  214. this.$message.warning("工序类型不能为空!")
  215. return
  216. }
  217. if (data.bu==null||data.bu==''){
  218. this.$message.warning("BU不能为空!")
  219. return
  220. }
  221. saveUserDefaultOperation(data).then(({data})=>{
  222. if (data.code == 0){
  223. this.$message.success("保存成功")
  224. this.handleQuery()
  225. }
  226. this.modalFlag = false
  227. }).catch((error)=>{
  228. this.$message.error(error)
  229. })
  230. },
  231. queryOperationList(){
  232. queytOperationList().then(({data})=>{
  233. if (data && data.code === 0) {
  234. this.operationList = data.rows
  235. }
  236. }).catch((error)=>{
  237. console.log("失败")
  238. console.log(error)
  239. })
  240. },
  241. deleteData(row){
  242. this.$confirm(`确认删除?`, '提示', {
  243. confirmButtonText: '确定',
  244. cancelButtonText: '取消',
  245. type: 'warning'
  246. }).then(()=>{
  247. deleteUserDefaultOperation(row).then(({data})=>{
  248. if (data.code==0){
  249. this.$message.success("删除成功")
  250. this.handleQuery()
  251. }
  252. }).catch()
  253. })
  254. },
  255. // 获取用户选择列表
  256. queryUserList () {
  257. getAllUserList(this.userData).then(({data}) => {
  258. if (data && data.code === 0) {
  259. this.userDataList = data.rows
  260. this.userFlag = true
  261. }else {
  262. this.$alert(data.msg, '错误', {
  263. confirmButtonText: '确定'
  264. })
  265. }
  266. })
  267. },
  268. addmoadl(){
  269. this.modalData = {
  270. username: '',
  271. operation:'',
  272. bu: '',
  273. }
  274. this.ifUsernameExist = 0
  275. this.modalFlag = true
  276. },
  277. getRowData (row) {
  278. this.modalData.username = row.username
  279. this.modalData.userDisplay = row.userDisplay
  280. this.userFlag = false
  281. },
  282. },
  283. created () {
  284. // 查询主列表
  285. this.handleQuery()
  286. // 获取bu列表
  287. this.getSiteAndBuByUserName()
  288. this.queryOperationList()
  289. }
  290. }
  291. </script>
  292. <template>
  293. <div class="box-container">
  294. <!-- 查询条件-->
  295. <el-form :inline="true" label-position="top" :model="queryParams">
  296. <el-form-item :label="'BU'">
  297. <el-select v-model="queryParams.bu" placeholder="请选择" clearable>
  298. <el-option
  299. v-for = "i in userBuList"
  300. :key = "i.buNo"
  301. :label = "i.buDesc"
  302. :value = "i.buNo">
  303. </el-option>
  304. </el-select>
  305. </el-form-item>
  306. <el-form-item :label="'用户名'">
  307. <el-input v-model="queryParams.username" clearable style="width: 120px"></el-input>
  308. </el-form-item>
  309. <el-form-item :label="'工序类型'">
  310. <!-- <el-input v-model="queryParams.operation" clearable style="width: 120px"></el-input>-->
  311. <el-select v-model="queryParams.operation" clearable style="width: 120px">
  312. <el-option
  313. v-for = "i in operationList"
  314. :key = "i.code"
  315. :label = "i.description"
  316. :value = "i.code">
  317. </el-option>
  318. </el-select>
  319. </el-form-item>
  320. <el-form-item label=" ">
  321. <el-button type="primary" @click="handleQuery">查询</el-button>
  322. <el-button type="primary" @click="addmoadl()">新增</el-button>
  323. </el-form-item>
  324. </el-form>
  325. <!-- 主表信息-->
  326. <div style="height: 90%">
  327. <el-table :data="dataList" border
  328. highlight-current-row
  329. height="100%" ref="table">
  330. <el-table-column label="操作" align="center" width="100">
  331. <template slot-scope="scope">
  332. <a @click="deleteData(scope.row)" type="primary" style="margin-left: 2px">{{'删除'}}</a>
  333. </template>
  334. </el-table-column>
  335. <el-table-column
  336. v-for="(item,index) in columns" :key="index"
  337. :sortable="item.columnSortable"
  338. :prop="item.columnProp"
  339. :header-align="item.headerAlign"
  340. :show-overflow-tooltip="item.showOverflowTooltip"
  341. :align="item.align"
  342. :fixed="item.fixed===''?false:item.fixed"
  343. :min-width="item.columnWidth"
  344. :label="item.columnLabel">
  345. </el-table-column>
  346. </el-table>
  347. </div>
  348. <!-- 分页信息-->
  349. <el-pagination
  350. style="margin-top: 5px"
  351. :current-page="queryParams.page"
  352. :page-sizes="[50, 100, 500, 1000]"
  353. :page-size="queryParams.pageCount"
  354. :total="total"
  355. layout="total, sizes, prev, pager, next, jumper">
  356. </el-pagination>
  357. <!-- 新增数据dialog-->
  358. <el-dialog title="新增记录" :visible.sync="modalFlag" width="495px">
  359. <el-form :inline="true" label-position="top" :model="modalData" style="margin-left: 7px;margin-top: -5px;">
  360. <el-form-item label="BU" prop="bu">
  361. <el-select v-model="modalData.bu" placeholder="请选择" style="width: 221px">
  362. <el-option
  363. v-for = "i in userBuList"
  364. :key = "i.buNo"
  365. :label = "i.sitename"
  366. :value = "i.buNo">
  367. <span style="float: left;width: 100px">{{ i.sitename }}</span>
  368. <span style="float: right; color: #8492a6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis; font-size: 11px;width: 60px">
  369. {{ i.buDesc }}
  370. </span>
  371. </el-option>
  372. </el-select>
  373. </el-form-item>
  374. <el-form-item :label="'工序类型'">
  375. <el-select v-model="modalData.operation" style="width: 221px">
  376. <el-option
  377. v-for = "i in operationList"
  378. :key = "i.code"
  379. :label = "i.description"
  380. :value = "i.code">
  381. </el-option>
  382. </el-select>
  383. </el-form-item>
  384. <el-form-item :label="'用户名'">
  385. <span style="cursor: pointer" slot="label" @click="queryUserList"><a>用户名</a></span>
  386. <el-input v-model="modalData.username" readonly style="width: 221px"></el-input>
  387. </el-form-item>
  388. <el-form-item :label="'名称'">
  389. <el-input v-model="modalData.userDisplay" disabled style="width: 221px"></el-input>
  390. </el-form-item>
  391. </el-form>
  392. <el-footer style="height:40px;margin-top: 10px;text-align:center">
  393. <el-button type="primary" @click="saveModalData()"> </el-button>
  394. <el-button @click="modalFlag = false"> </el-button>
  395. </el-footer>
  396. </el-dialog>
  397. <!-- 用户选择dialog-->
  398. <el-dialog title="用户" :close-on-click-modal="false" v-drag :visible.sync="userFlag" width="520px">
  399. <div class="rq">
  400. <el-form :inline="true" label-position="top" :model="userData">
  401. <el-form-item :label="'用户名'">
  402. <el-input v-model="userData.username" clearable style="width: 120px"></el-input>
  403. </el-form-item>
  404. <el-form-item :label="'描述'">
  405. <el-input v-model="userData.userDisplay" clearable style="width: 120px"></el-input>
  406. </el-form-item>
  407. <el-form-item :label="' '">
  408. <el-button type="primary" @click="queryUserList">查询</el-button>
  409. </el-form-item>
  410. </el-form>
  411. <el-table
  412. :height="300"
  413. :data="userDataList"
  414. @row-dblclick="getRowData"
  415. border
  416. style="width: 100%;">
  417. <el-table-column
  418. v-for="(item,index) in userColomn" :key="index"
  419. :sortable="item.columnSortable"
  420. :prop="item.columnProp"
  421. :header-align="item.headerAlign"
  422. :show-overflow-tooltip="item.showOverflowTooltip"
  423. :align="item.align"
  424. :fixed="item.fixed==''?false:item.fixed"
  425. :min-width="item.columnWidth"
  426. :label="item.columnLabel">
  427. <template slot-scope="scope">
  428. <span v-if="!item.columnHidden">{{scope.row[item.columnProp]}}</span>
  429. <span v-if="item.columnImage"><img :src="scope.row[item.columnProp]" style="width: 100px; height: 80px"/></span>
  430. </template>
  431. </el-table-column>
  432. </el-table>
  433. </div>
  434. <el-footer style="height:40px;margin-top: 20px;text-align:center">
  435. <el-button type="primary" @click="userFlag=false">关闭</el-button>
  436. </el-footer>
  437. </el-dialog>
  438. </div>
  439. </template>
  440. <style scoped>
  441. </style>