Index.vue 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445
  1. <template>
  2. <div class="app-container space">
  3. <el-card class="box-card">
  4. <div slot="header" class="clearfix">查询业务节点状态</div>
  5. <el-form ref="form2" :model="form2" label-width="80px">
  6. <el-row :gutter="12" >
  7. <el-form-item label="超时天数:" prop="timeSpan">
  8. <el-input-number v-model="form2.timeSpan" :min="0" :max="30"></el-input-number>
  9. </el-form-item>
  10. </el-row>
  11. <el-form-item>
  12. <el-button type="primary" @click="getBizStatusList" >发送</el-button>
  13. </el-form-item>
  14. <!--
  15. <el-row :gutter="20">
  16. <el-col :span="4">
  17. <div>
  18. <el-form-item label="进行中:">
  19. 456/2
  20. </el-form-item>
  21. </div>
  22. </el-col>
  23. <el-col :span="4">
  24. <div>
  25. <el-form-item label="暂停中:">
  26. 456/2
  27. </el-form-item>
  28. </div>
  29. </el-col>
  30. <el-col :span="6">
  31. <div>
  32. <el-form-item label="线边库中:">
  33. 456/2
  34. </el-form-item>
  35. </div>
  36. </el-col>
  37. </el-row>
  38. -->
  39. <el-row :gutter="10" v-for="(item, index) in bizStatuList" :key="item.id">
  40. <el-col :span="4">
  41. <el-form-item label="ID:">
  42. {{bizStatuList[index].id}}
  43. </el-form-item>
  44. </el-col>
  45. <el-col :span="6">
  46. <el-form-item label="名称:">
  47. {{bizStatuList[index].nodeName}}
  48. </el-form-item>
  49. </el-col>
  50. <el-col :span="6">
  51. <el-form-item label="批次号:">
  52. {{bizStatuList[index].completeBatchNo}}
  53. </el-form-item>
  54. </el-col>
  55. <el-col :span="6">
  56. <el-form-item label="状态:">
  57. {{bizStatuList[index].exeStatus=="2"?"进行中":(bizStatuList[index].exeStatus=="4"? "暂存中":"线边库暂存中")}}
  58. </el-form-item>
  59. </el-col>
  60. </el-row>
  61. </el-form>
  62. </el-card>
  63. <el-card class="box-card">
  64. <div slot="header" class="clearfix">查询点库位锁定状态</div>
  65. <el-form label-width="80px">
  66. <el-row :gutter="10" v-for="storgeLock in storgeLockList" :key="storgeLock.id">
  67. <el-col :span="6">
  68. <el-form-item label="名称:">
  69. {{storgeLock.name}}
  70. </el-form-item>
  71. </el-col>
  72. <el-col :span="3">
  73. <el-form-item label="启用状态:">
  74. {{storgeLock.status=="0"?"不可用":"可用"}}
  75. </el-form-item>
  76. </el-col>
  77. <el-col :span="3">
  78. <el-form-item label="锁定状态:">
  79. {{storgeLock.lockStatus=="0"?"已锁定":"未锁定"}}
  80. </el-form-item>
  81. </el-col>
  82. <el-col :span="6">
  83. <el-form-item label="锁定节点:">
  84. {{storgeLock.campId}}
  85. </el-form-item>
  86. </el-col>
  87. <el-col :span="6">
  88. <el-form-item label="锁定批次:">
  89. {{storgeLock.completeBatchNo}}
  90. </el-form-item>
  91. </el-col>
  92. </el-row>
  93. </el-form>
  94. </el-card>
  95. <el-card class="box-card">
  96. <div slot="header" class="clearfix">查询不在线设备</div>
  97. <el-form label-width="80px">
  98. <el-row :gutter="10" v-for="offline in offlineList" :key="offline.id">
  99. <el-col :span="6">
  100. <el-form-item label="名称:">
  101. {{offline.name}}
  102. </el-form-item>
  103. </el-col>
  104. <el-col :span="6">
  105. <el-form-item label="在线状态:">
  106. {{offline.onlineStatus=='0'?"下线":"上线"}}
  107. </el-form-item>
  108. </el-col>
  109. <el-col :span="6">
  110. <el-form-item label="掉线状态:">
  111. {{offline.status=='0'?"掉线":"上线"}}
  112. </el-form-item>
  113. </el-col>
  114. <el-col :span="6">
  115. <el-form-item label="IP:">
  116. {{offline.ip}}
  117. </el-form-item>
  118. </el-col>
  119. </el-row>
  120. </el-form>
  121. </el-card>
  122. <el-card class="box-card">
  123. <div slot="header" class="clearfix">查询零件流程</div>
  124. <el-form ref="form3" :model="form3" label-width="120px">
  125. <el-row :gutter="12" >
  126. <el-col :span="8">
  127. <el-form-item label="零件批次号:" prop="completeBatchNo">
  128. <el-input v-model="form3.completeBatchNo" placeholder="零件批次号"></el-input>
  129. </el-form-item>
  130. </el-col>
  131. <el-col :span="8">
  132. <el-form-item>
  133. <el-button type="primary" @click="getWorkflowList" >发送</el-button>
  134. </el-form-item>
  135. </el-col>
  136. </el-row>
  137. <el-row :gutter="10" v-if="workflowList.task">
  138. <el-col :span="4">
  139. <el-form-item label="零件名称" label-width="100px">
  140. {{workflowList.task? workflowList.task.bomDesc:'任务已结束'}}
  141. </el-form-item>
  142. </el-col>
  143. <el-col :span="5">
  144. <el-form-item label="任务名称" label-width="100px">
  145. {{workflowList.task? workflowList.task.procedureName:'任务已结束'}}
  146. </el-form-item>
  147. </el-col>
  148. <el-col :span="5">
  149. <el-form-item label="任务开始" label-width="100px">
  150. {{workflowList.task? workflowList.task.startTime:'任务已结束'}}
  151. </el-form-item>
  152. </el-col>
  153. <el-col :span="7">
  154. <el-form-item label="节点名称" label-width="100px">
  155. {{workflowList.taskNode? workflowList.taskNode.nodeName:'节点已结束'}}
  156. </el-form-item>
  157. </el-col>
  158. <el-col :span="5">
  159. <el-form-item label="节点开始" label-width="100px">
  160. {{workflowList.taskNode? workflowList.taskNode.startTime:'节点已结束'}}
  161. </el-form-item>
  162. </el-col>
  163. <el-col :span="6">
  164. <el-form-item>
  165. <el-button type="primary" @click="getWorkflowDetail" >查看详情</el-button>
  166. </el-form-item>
  167. </el-col>
  168. </el-row>
  169. </el-form>
  170. </el-card>
  171. <el-card class="box-card">
  172. <div slot="header" class="clearfix">查询缓存关键字</div>
  173. <el-form label-width="100px">
  174. <el-row :gutter="10">
  175. <el-col :span="6">
  176. <el-form-item label="是否排产">
  177. {{cacheKeyList.YUNJIAN_SHEDULE_FLAG==1? "排产进行中":"无排产"}}
  178. </el-form-item>
  179. </el-col>
  180. <el-col :span="6">
  181. <el-form-item label="线边库调度">
  182. {{cacheKeyList.YUNJIAN_XBK_SHEDULE==1? "自动调度中":"无调度"}}
  183. </el-form-item>
  184. </el-col>
  185. <el-col :span="9">
  186. <el-form-item label="是否优先级" label-width="100px">
  187. {{cacheKeyList.PRIORITY_LOCK==1? "禁用":"启用"}}
  188. </el-form-item>
  189. </el-col>
  190. </el-row>
  191. </el-form>
  192. </el-card>
  193. <tenant-view
  194. ref="view"
  195. :dialog-visible="tenantViewVisible"
  196. @close="viewClose"
  197. />
  198. </div>
  199. </template>
  200. <script>
  201. // 【锁定记录、出入库记录】-API
  202. import toolQueryApi from "@/api/systemMgr/toolQuery"
  203. import elDragDialog from '@/directive/el-drag-dialog'
  204. // 【查看】组件
  205. import TenantView from "./components/View"
  206. import { convertEnum, initDicts, initQueryParams } from '@/utils/commons'
  207. export default {
  208. name: "ToolQuery",
  209. directives: {elDragDialog},
  210. components: {TenantView},
  211. props: {
  212. },
  213. data () {
  214. return {
  215. form:{
  216. zoneCode: "KT"
  217. },
  218. form2:{
  219. timeSpan: "2",
  220. },
  221. form3:{
  222. completeBatchNo: "",
  223. },
  224. workflowList:[],
  225. zoneRateList:[],
  226. orderTaskList: [],
  227. bizStatuList: [],
  228. agvLockList: [],
  229. cacheCallbackList: [],
  230. xbkDyTaskList:[],
  231. zcwDyTaskList:[],
  232. storgeLockList: [],
  233. cacheKeyList: [],
  234. offlineList:[],
  235. lineList: [{"name":"框体","value":"KT"},{"name":"舱体","value":"CT"},{"name":"保障中心","value":"BZ"},{"name":"翼片","value":"YP"},{"name":"中舱","value":"ZC"}],
  236. typeList: [{"name":"全部","value":"0"},{"name":"FANUC","value":"1"},{"name":"HEIDENHAIN","value":"2"},{"name":"DMG","value":"3"},{"name":"HELLER","value":"4"}],
  237. tenantViewVisible: false,
  238. tableKey: 0,
  239. queryParams: initQueryParams({}),
  240. selection: [],
  241. loading: false
  242. }
  243. },
  244. // 实例已经在内存中创建好,此时data和methods已将ok,如果要操作data中的数据或是调用methods中的方法,最早只能在created中操作
  245. created() {
  246. // 调用常量-审核状态
  247. this.audioStatus = this.$constWKS.OPTTYPE
  248. // 加载【字典】
  249. initDicts(['NATION'], this.dicts);
  250. // 加载列表数据
  251. this.fetch()
  252. },
  253. computed: {
  254. currentUser () {
  255. return this.$store.state.account.user
  256. },
  257. nationList() {
  258. return convertEnum(this.dicts.NATION)
  259. }
  260. },
  261. mounted () {
  262. },
  263. methods: {
  264. getWorkflowList(){
  265. let completeBatchNo = this.form3.completeBatchNo? {"completeBatchNo" : this.form3.completeBatchNo.toString()}: null;
  266. if(completeBatchNo==null){
  267. this.$message({
  268. message: '输入数据不能为空',
  269. type: 'warning'
  270. });
  271. return false
  272. }
  273. toolQueryApi.getWorkflowList(completeBatchNo).then(response=>{
  274. const res = response.data
  275. if(res.isSuccess){
  276. this.workflowList = res.data
  277. console.log(this.workflowList)
  278. }else{
  279. this.$message({
  280. message: res.msg,
  281. type: 'warning'
  282. })
  283. }
  284. }).finally(()=>{
  285. return true
  286. })
  287. },
  288. getWorkflowDetail(){
  289. this.$refs.view.setTenant({"completeBatchNo":this.form3.completeBatchNo.toString()})
  290. this.tenantViewVisible = true
  291. },
  292. viewClose() {
  293. this.tenantViewVisible = false
  294. },
  295. getBizStatusList () {
  296. let query = this.form2.timeSpan ? {"timeSpan" : this.form2.timeSpan.toString()} : {}
  297. toolQueryApi.getBizStatusList(query).then(response=>{
  298. const res = response.data
  299. if(res.isSuccess){
  300. this.bizStatuList = res.data.data
  301. //console.log(this.bizStatuList)
  302. }else{
  303. this.$message({
  304. message: res.msg,
  305. type: 'warning'
  306. })
  307. }
  308. }).finally(()=>{
  309. return true
  310. })
  311. },
  312. getCacheCallbackList () {
  313. toolQueryApi.getCacheCallbackList({}).then(response=>{
  314. const res = response.data
  315. if(res.isSuccess){
  316. this.cacheCallbackList = res.data.data
  317. //console.log(this.cacheCallbackList)
  318. }else{
  319. this.$message({
  320. message: res.msg,
  321. type: 'warning'
  322. })
  323. }
  324. }).finally(()=>{
  325. return true
  326. })
  327. },
  328. getStorgeLockList () {
  329. toolQueryApi.getStorgeLockList({}).then(response=>{
  330. const res = response.data
  331. if(res.isSuccess){
  332. this.storgeLockList = res.data.data
  333. }else{
  334. this.$message({
  335. message: res.msg,
  336. type: 'warning'
  337. })
  338. }
  339. }).finally(()=>{
  340. return true
  341. })
  342. },
  343. getCacheKeyList () {
  344. toolQueryApi.getCacheKeyList({}).then(response=>{
  345. const res = response.data
  346. if(res.isSuccess){
  347. this.cacheKeyList = res.data
  348. }else{
  349. this.$message({
  350. message: res.msg,
  351. type: 'warning'
  352. })
  353. }
  354. }).finally(()=>{
  355. return true
  356. })
  357. },
  358. getOfflineList () {
  359. toolQueryApi.getOfflineList({}).then(response=>{
  360. const res = response.data
  361. if(res.isSuccess){
  362. this.offlineList = res.data.data
  363. }else{
  364. this.$message({
  365. message: res.msg,
  366. type: 'warning'
  367. })
  368. }
  369. }).finally(()=>{
  370. return true
  371. })
  372. },
  373. getOrderTaskList(){
  374. toolQueryApi.getOrderTaskList({}).then(response=>{
  375. const res = response.data
  376. console.log(res)
  377. if(res.isSuccess){
  378. this.orderTaskList = res.data.data.records
  379. }else{
  380. this.$message({
  381. message: res.msg,
  382. type: 'warning'
  383. })
  384. }
  385. }).finally(()=>{
  386. return true
  387. })
  388. },
  389. getXbkDyTaskList(){
  390. toolQueryApi.getXbkDyTaskList({}).then(response=>{
  391. const res = response.data
  392. if(res.isSuccess){
  393. this.xbkDyTaskList = res.data.data
  394. }else{
  395. this.$message({
  396. message: res.msg,
  397. type: 'warning'
  398. })
  399. }
  400. }).finally(()=>{
  401. return true
  402. })
  403. },
  404. getZcwDyTaskList(){
  405. toolQueryApi.getZcwDyTaskList({}).then(response=>{
  406. const res = response.data
  407. if(res.isSuccess){
  408. this.zcwDyTaskList = res.data.data
  409. }else{
  410. this.$message({
  411. message: res.msg,
  412. type: 'warning'
  413. })
  414. }
  415. }).finally(()=>{
  416. return true
  417. })
  418. },
  419. fetch () {
  420. this.getBizStatusList()
  421. this.getStorgeLockList()
  422. this.getCacheKeyList()
  423. this.getOfflineList()
  424. }
  425. }
  426. }
  427. </script>
  428. <style lang="scss" scoped>
  429. .space .box-card {
  430. margin: 10px 0;
  431. }
  432. </style>