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.

449 lines
14 KiB

1 year ago
  1. <script>
  2. import {queryOperationForResourceList,
  3. saveOperationForResource,
  4. queytOperationList,
  5. queryResourceList,
  6. deleteOperationForResource,
  7. getSiteAndBuByUserName,
  8. queryResourceList2
  9. } from "@/api/qc/qc.js"
  10. export default {
  11. name: 'OperationForResource',
  12. data () {
  13. return {
  14. queryParams: {
  15. page: 1,
  16. pageCount: 50,
  17. bu:'',
  18. operation: '',
  19. resource: ''
  20. },
  21. dataList: [],
  22. total: 0,
  23. modalFlag: false,
  24. resourceFlag:false,
  25. ifexist:0,
  26. resourData:{
  27. resourceId:'',
  28. resourceDesc:''
  29. },
  30. operationList:[],
  31. resourceList:[],
  32. userBuList: [],
  33. modalData: {
  34. page: 1,
  35. pageCount: 50,
  36. operation: '',
  37. resource:''
  38. },
  39. columns: [
  40. {
  41. userId: this.$store.state.user.name,
  42. functionId: 200101106,
  43. serialNumber: '200101106Table1Operation',
  44. tableId: '200101106Table1',
  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: '200101106Table1Operation',
  62. tableId: '200101106Table1',
  63. tableName: '用户默认工序设置表',
  64. columnProp: 'operation',
  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: '200101106Table1Operation',
  80. tableId: '200101106Table1',
  81. tableName: '用户默认工序设置表',
  82. columnProp: 'operationDesc',
  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: '200101107Table1Resource',
  98. tableId: '200101107Table1',
  99. tableName: '用户默认工序设置表',
  100. columnProp: 'resource',
  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: '200101107Table1Resource',
  116. tableId: '200101107Table1',
  117. tableName: '用户默认工序设置表',
  118. columnProp: 'resourceDesc',
  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. resourceColomn: [
  132. {
  133. userId: this.$store.state.user.name,
  134. functionId: 200101106,
  135. serialNumber: '200101106Table1Operation',
  136. tableId: '200101106Table1',
  137. tableName: '机台基础信息表',
  138. columnProp: 'resourceId',
  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: '200101106Table1Operation',
  154. tableId: '200101106Table1',
  155. tableName: '机台基础信息表',
  156. columnProp: 'resourceDesc',
  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. queryOperationForResourceList(this.queryParams).then(({data}) => {
  174. if (data.code==0||data.code==3) {
  175. this.dataList = data.rows
  176. this.total = data.total
  177. }
  178. }).catch((errer) => {
  179. this.$message.error(errer)
  180. })
  181. },
  182. // 获取用户的bu
  183. getSiteAndBuByUserName () {
  184. let tempData = {
  185. username: this.$store.state.user.name,
  186. }
  187. getSiteAndBuByUserName(tempData).then(({data}) => {
  188. if (data.code === 0) {
  189. this.userBuList = data.rows
  190. }
  191. })
  192. },
  193. addDialog () {
  194. this.modalData = {
  195. page: 1,
  196. pageCount: 50,
  197. resource: '',
  198. operation:''
  199. }
  200. this.modalFlag = true
  201. },
  202. async saveModalData(){
  203. this.ifexist=0
  204. if (this.modalData.operation==null ||this.modalData.operation==''){
  205. this.$message.warning("工序类别不能为空!")
  206. return
  207. }
  208. if (this.modalData.resource==null ||this.modalData.resource==''){
  209. this.$message.warning("机台编码不能为空!")
  210. return
  211. }
  212. await queryOperationForResourceList(this.modalData).then(({data})=>{
  213. if (data.code==3){
  214. this.$message.warning("该工序和机台存在记录")
  215. this.ifexist = data.code
  216. }
  217. }).catch()
  218. if (this.ifexist==3){
  219. return
  220. }
  221. saveOperationForResource(this.modalData).then(({data})=>{
  222. if (data.code==0){
  223. this.$message.success("保存成功")
  224. }
  225. }).catch()
  226. this.modalFlag = false
  227. this.handleQuery()
  228. },
  229. queryOperationList(){
  230. queytOperationList().then(({data})=>{
  231. if (data && data.code === 0) {
  232. this.operationList = data.rows
  233. }
  234. }).catch((error)=>{
  235. console.log("失败")
  236. console.log(error)
  237. })
  238. },
  239. queryResourceList(){
  240. // 原下拉列表查询
  241. // queryResourceList().then(({data})=>{
  242. // if (data.code==0){
  243. // this.resourceList = data.rows
  244. // }
  245. // }).catch()
  246. this.resourceFlag = true
  247. queryResourceList2(this.resourData).then(({data}) => {
  248. if (data.code == 0) {
  249. this.resourceList = data.rows
  250. }
  251. }).catch()
  252. },
  253. getRowData (row) {
  254. this.modalData.resource = row.resourceId
  255. this.modalData.resourceDesc = row.resourceDesc
  256. this.resourceFlag = false
  257. },
  258. deleteData(row){
  259. this.$confirm(`确认删除?`, '提示', {
  260. confirmButtonText: '确定',
  261. cancelButtonText: '取消',
  262. type: 'warning'
  263. }).then(()=>{
  264. deleteOperationForResource(row).then(({data})=>{
  265. if (data.code==0){
  266. this.$message.success("删除成功")
  267. this.handleQuery()
  268. }
  269. }).catch()
  270. })
  271. }
  272. },
  273. created () {
  274. // 查询主列表
  275. this.handleQuery()
  276. //查询工序类别信息
  277. this.queryOperationList()
  278. // 获取用户的 site 和 bu
  279. this.getSiteAndBuByUserName()
  280. }
  281. }
  282. </script>
  283. <template>
  284. <div class="box-container">
  285. <!-- 查询条件-->
  286. <el-form :inline="true" label-position="top" :model="queryParams">
  287. <el-form-item :label="'BU'">
  288. <el-select v-model="queryParams.bu" placeholder="请选择" clearable style="width: 80px">
  289. <el-option
  290. v-for = "i in userBuList"
  291. :key = "i.buNo"
  292. :label = "i.buDesc"
  293. :value = "i.buNo">
  294. </el-option>
  295. </el-select>
  296. </el-form-item>
  297. <el-form-item :label="'工序类型'">
  298. <!-- <el-input v-model="queryParams.operation" clearable style="width: 120px"></el-input>-->
  299. <el-select v-model="queryParams.operation" clearable style="width: 120px">
  300. <el-option
  301. v-for = "i in operationList"
  302. :key = "i.code"
  303. :label = "i.description"
  304. :value = "i.code">
  305. </el-option>
  306. </el-select>
  307. </el-form-item>
  308. <el-form-item :label="'机台'">
  309. <el-input v-model="queryParams.resource" clearable style="width: 120px"></el-input>
  310. </el-form-item>
  311. <el-form-item label=" ">
  312. <el-button type="primary" @click="handleQuery">查询</el-button>
  313. <el-button type="primary" @click="addDialog()">新增</el-button>
  314. </el-form-item>
  315. </el-form>
  316. <!-- 主表信息-->
  317. <div style="height: 90%">
  318. <el-table :data="dataList" border
  319. highlight-current-row
  320. height="100%" ref="table">
  321. <el-table-column label="操作" align="center" width="100">
  322. <template slot-scope="scope">
  323. <a @click="deleteData(scope.row)" type="primary" style="margin-left: 2px">{{'删除'}}</a>
  324. </template>
  325. </el-table-column>
  326. <el-table-column
  327. v-for="(item,index) in columns" :key="index"
  328. :sortable="item.columnSortable"
  329. :prop="item.columnProp"
  330. :header-align="item.headerAlign"
  331. :show-overflow-tooltip="item.showOverflowTooltip"
  332. :align="item.align"
  333. :fixed="item.fixed===''?false:item.fixed"
  334. :min-width="item.columnWidth"
  335. :label="item.columnLabel">
  336. </el-table-column>
  337. </el-table>
  338. </div>
  339. <!-- 分页信息-->
  340. <el-pagination
  341. style="margin-top: 5px"
  342. :current-page="queryParams.page"
  343. :page-sizes="[50, 100, 500, 1000]"
  344. :page-size="queryParams.pageCount"
  345. :total="total"
  346. layout="total, sizes, prev, pager, next, jumper">
  347. </el-pagination>
  348. <!-- 新增数据dialog-->
  349. <el-dialog title="新增记录" :visible.sync="modalFlag" width="495px">
  350. <el-form :inline="true" label-position="top" :model="modalData" style="margin-left: 7px;margin-top: -5px;">
  351. <el-form-item label="BU" prop="bu">
  352. <el-select v-model="modalData.bu" placeholder="请选择" style="width: 221px">
  353. <el-option
  354. v-for = "i in userBuList"
  355. :key = "i.buNo"
  356. :label = "i.sitename"
  357. :value = "i.buNo">
  358. <span style="float: left;width: 100px">{{ i.sitename }}</span>
  359. <span style="float: right; color: #8492a6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis; font-size: 11px;width: 60px">
  360. {{ i.buDesc }}
  361. </span>
  362. </el-option>
  363. </el-select>
  364. </el-form-item>
  365. <el-form-item :label="'工序类型'">
  366. <el-select v-model="modalData.operation" style="width: 221px">
  367. <el-option
  368. v-for = "i in operationList"
  369. :key = "i.code"
  370. :label = "i.description"
  371. :value = "i.code">
  372. </el-option>
  373. </el-select>
  374. </el-form-item>
  375. <el-form-item :label="'机台编码'">
  376. <span style="cursor: pointer" slot="label" @click="queryResourceList"><a>机台编码</a></span>
  377. <el-input v-model="modalData.resource" readonly style="width: 100px"></el-input>
  378. <!-- <el-select v-model="modalData.resource" filterable style="width: 100px">-->
  379. <!-- <el-option-->
  380. <!-- v-for = "i in resourceList"-->
  381. <!-- :key = "i.resourceId"-->
  382. <!-- :label = "i.resourceDesc"-->
  383. <!-- :value = "i.resourceId">-->
  384. <!-- </el-option>-->
  385. <!-- </el-select>-->
  386. </el-form-item>
  387. <el-form-item :label="'机台名称'">
  388. <el-input v-model="modalData.resourceDesc" disabled style="width: 342px"></el-input>
  389. </el-form-item>
  390. </el-form>
  391. <el-footer style="height:40px;margin-top: 10px;text-align:center">
  392. <el-button type="primary" @click="saveModalData()"> </el-button>
  393. <el-button @click="modalFlag = false"> </el-button>
  394. </el-footer>
  395. </el-dialog>
  396. <!-- 新增时机台选择dialog-->
  397. <el-dialog title="用户" :close-on-click-modal="false" v-drag :visible.sync="resourceFlag" width="520px">
  398. <div class="rq">
  399. <el-form :inline="true" label-position="top" :model="resourData">
  400. <el-form-item :label="'机台编码'">
  401. <el-input v-model="resourData.resourceId" clearable style="width: 120px"></el-input>
  402. </el-form-item>
  403. <el-form-item :label="'机台名称'">
  404. <el-input v-model="resourData.resourceDesc" clearable style="width: 120px"></el-input>
  405. </el-form-item>
  406. <el-form-item :label="' '">
  407. <el-button type="primary" @click="queryResourceList">查询</el-button>
  408. </el-form-item>
  409. </el-form>
  410. <el-table
  411. :height="300"
  412. :data="resourceList"
  413. @row-dblclick="getRowData"
  414. border
  415. style="width: 100%;">
  416. <el-table-column
  417. v-for="(item,index) in resourceColomn" :key="index"
  418. :sortable="item.columnSortable"
  419. :prop="item.columnProp"
  420. :header-align="item.headerAlign"
  421. :show-overflow-tooltip="item.showOverflowTooltip"
  422. :align="item.align"
  423. :fixed="item.fixed==''?false:item.fixed"
  424. :min-width="item.columnWidth"
  425. :label="item.columnLabel">
  426. <template slot-scope="scope">
  427. <span v-if="!item.columnHidden">{{scope.row[item.columnProp]}}</span>
  428. <span v-if="item.columnImage"><img :src="scope.row[item.columnProp]" style="width: 100px; height: 80px"/></span>
  429. </template>
  430. </el-table-column>
  431. </el-table>
  432. </div>
  433. <el-footer style="height:40px;margin-top: 20px;text-align:center">
  434. <el-button type="primary" @click="resourceFlag=false">关闭</el-button>
  435. </el-footer>
  436. </el-dialog>
  437. </div>
  438. </template>
  439. <style scoped>
  440. </style>