From 2754bbbb64181393f1d290ef75d990041c9362d6 Mon Sep 17 00:00:00 2001
From: zhuzhuanzhuan
Date: 星期二, 14 五月 2024 16:52:28 +0800
Subject: [PATCH] 设备利用率、设备开动率、班次利用率以及设备综合效率分析页面选择器内部循环增加key唯一标识
---
src/views/eam/ABC/StreamList.vue | 529 +++++++++++++++++++++++++++++++++++++---------------------
1 files changed, 340 insertions(+), 189 deletions(-)
diff --git a/src/views/eam/ABC/StreamList.vue b/src/views/eam/ABC/StreamList.vue
index d626a2f..cbe2fbf 100644
--- a/src/views/eam/ABC/StreamList.vue
+++ b/src/views/eam/ABC/StreamList.vue
@@ -1,9 +1,27 @@
<template>
- <a-card :bordered="false">
+ <a-card
+ title='ABC璇勫垎'
+ :bordered="false"
+ >
<!-- 鏌ヨ鍖哄煙 -->
<div class="table-page-search-wrapper">
- <a-form layout="inline" @keyup.enter.native="searchQuery">
+ <a-form
+ layout="inline"
+ @keyup.enter.native="searchQuery"
+ >
<a-row :gutter="24">
+ <a-col :span="6">
+ <a-form-item
+ :labelCol="labelCol"
+ :wrapperCol="wrapperCol"
+ label="鍗曟嵁鍙�"
+ >
+ <a-input
+ placeholder="璇疯緭鍏ュ崟鎹彿鏌ヨ"
+ v-model="queryParam.num"
+ ></a-input>
+ </a-form-item>
+ </a-col>
</a-row>
</a-form>
</div>
@@ -11,7 +29,21 @@
<!-- 鎿嶄綔鎸夐挳鍖哄煙 -->
<div class="table-operator">
- <a-button @click="handleAdd" type="primary" icon="plus">鏂板</a-button>
+ <a-button
+ type="primary"
+ @click="searchQuery"
+ icon="search"
+ >鏌ヨ</a-button>
+ <a-button
+ @click="searchReset"
+ icon="reload"
+ >閲嶇疆</a-button>
+ <a-button
+ @click="handleAdd"
+ type="primary"
+ icon="plus"
+ v-if="nodeSort===1"
+ >鏂板</a-button>
<!-- <a-button type="primary" icon="download" @click="handleExportXls('璁惧ABC璇勪环')">瀵煎嚭</a-button>
<a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel">
<a-button type="primary" icon="import">瀵煎叆</a-button>
@@ -22,9 +54,15 @@
<!-- table鍖哄煙-begin -->
<div>
- <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
+ <div
+ class="ant-alert ant-alert-info"
+ style="margin-bottom: 16px;"
+ >
<i class="anticon anticon-info-circle ant-alert-icon"></i> 宸查�夋嫨 <a style="font-weight: 600">{{ selectedRowKeys.length }}</a>椤�
- <a style="margin-left: 24px" @click="onClearSelected">娓呯┖</a>
+ <a
+ style="margin-left: 24px"
+ @click="onClearSelected"
+ >娓呯┖</a>
</div>
<a-table
@@ -33,237 +71,350 @@
bordered
rowKey="id"
class="j-table-force-nowrap"
- :scroll="{x:true}"
:columns="columns"
:dataSource="dataSource"
:pagination="ipagination"
:loading="loading"
:rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange, type:'radio'}"
:customRow="clickThenSelect"
- @change="handleTableChange">
+ @change="handleTableChange"
+ >
+ <!-- :scroll="{x:true}" -->
- <template slot="htmlSlot" slot-scope="text">
+ <template
+ slot="htmlSlot"
+ slot-scope="text"
+ >
<div v-html="text"></div>
</template>
- <template slot="imgSlot" slot-scope="text,record">
- <span v-if="!text" style="font-size: 12px;font-style: italic;">鏃犲浘鐗�</span>
- <img v-else :src="getImgView(text)" :preview="record.id" height="25px" alt="" style="max-width:80px;font-size: 12px;font-style: italic;"/>
+ <template
+ slot="imgSlot"
+ slot-scope="text,record"
+ >
+ <span
+ v-if="!text"
+ style="font-size: 12px;font-style: italic;"
+ >鏃犲浘鐗�</span>
+ <img
+ v-else
+ :src="getImgView(text)"
+ :preview="record.id"
+ height="25px"
+ alt=""
+ style="max-width:80px;font-size: 12px;font-style: italic;"
+ />
</template>
- <template slot="fileSlot" slot-scope="text">
- <span v-if="!text" style="font-size: 12px;font-style: italic;">鏃犳枃浠�</span>
+ <template
+ slot="fileSlot"
+ slot-scope="text"
+ >
+ <span
+ v-if="!text"
+ style="font-size: 12px;font-style: italic;"
+ >鏃犳枃浠�</span>
<a-button
v-else
:ghost="true"
type="primary"
icon="download"
size="small"
- @click="downloadFile(text)">
+ @click="downloadFile(text)"
+ >
涓嬭浇
</a-button>
</template>
-
- <span slot="action" slot-scope="text, record">
- <a @click="handleEdit(record)">缂栬緫</a>
-
- <a-divider type="vertical" />
- <a-dropdown>
- <a class="ant-dropdown-link">鏇村 <a-icon type="down" /></a>
- <a-menu slot="overlay">
- <a-menu-item>
- <a-popconfirm title="纭畾鍒犻櫎鍚�?" @confirm="() => handleDelete(record.id)">
- <a>鍒犻櫎</a>
- </a-popconfirm>
- </a-menu-item>
- </a-menu>
- </a-dropdown>
+ <span
+ slot="action"
+ slot-scope="text, record"
+ >
+ <div v-if="nodeValue===record.status">
+ <a
+ @click="handleStreamNext(record)"
+ :disabled="nodeSort===1&&nodeValue!==record.status"
+ v-if="button1!={}"
+ >{{button1.name}}</a>
+ <a-divider
+ type="vertical"
+ v-if="button2!={}"
+ />
+ <a
+ @click="handleStreamLast(record)"
+ :disabled="nodeSort===1"
+ v-if="button2!={}"
+ >{{button2.name}}</a>
+ </div>
+ <div v-if="nodeSort===1&&nodeValue===record.status">
+ <a-divider type="vertical" />
+ <a-dropdown>
+ <a class="ant-dropdown-link">鏇村 <a-icon type="down" /></a>
+ <a-menu slot="overlay">
+ <a-menu-item>
+ <a-popconfirm
+ title="纭畾鍒犻櫎鍚�?"
+ @confirm="() => handleDelete(record.id)"
+ >
+ <a>鍒犻櫎</a>
+ </a-popconfirm>
+ </a-menu-item>
+ <a-menu-item>
+ <a @click="handleEdit(record)">缂栬緫</a>
+ </a-menu-item>
+ </a-menu>
+ </a-dropdown>
+ </div>
</span>
</a-table>
</div>
<a-tabs defaultActiveKey="1">
- <a-tab-pane tab="鎿嶄綔璁板綍" key="1" >
+ <a-tab-pane
+ tab="鎿嶄綔璁板綍"
+ key="1"
+ >
<StreamOperationList :mainId="streamOperationMainId" />
</a-tab-pane>
- <a-tab-pane tab="ABC璇勫垎" key="2" forceRender>
+ <a-tab-pane
+ tab="ABC璇勫垎"
+ key="2"
+ forceRender
+ >
<ABCAssessmentList :mainId="aBCAssessmentMainId" />
</a-tab-pane>
</a-tabs>
- <stream-modal ref="modalForm" @ok="modalFormOk"></stream-modal>
+ <stream-modal
+ ref="modalForm"
+ @ok="modalFormOk"
+ ></stream-modal>
+ <node-model
+ ref="nodeModel"
+ @ok="modalFormOk"
+ ></node-model>
</a-card>
</template>
<script>
- import { JeecgListMixin } from '@/mixins/JeecgListMixin'
- import StreamModal from './modules/StreamModal'
- import { getAction } from '@/api/manage'
- import StreamOperationList from './StreamOperationList'
- import ABCAssessmentList from './ABCAssessmentList'
- import '@/assets/less/TableExpand.less'
+import { JeecgListMixin } from '@/mixins/JeecgListMixin'
+import StreamModal from './modules/StreamModal'
+import { getAction } from '@/api/manage'
+import StreamOperationList from './StreamOperationList'
+import ABCAssessmentList from './ABCAssessmentList'
+import '@/assets/less/TableExpand.less'
+import NodeModel from './modules/NodeModel.vue'
- export default {
- name: "StreamList",
- mixins:[JeecgListMixin],
- components: {
- StreamOperationList,
- ABCAssessmentList,
- StreamModal
+
+export default {
+ name: "StreamList",
+ mixins: [JeecgListMixin],
+ components: {
+ StreamOperationList,
+ ABCAssessmentList,
+ StreamModal,
+ NodeModel
+ },
+ data() {
+ return {
+ description: '璁惧ABC璇勪环绠$悊椤甸潰',
+ // 琛ㄥご
+ labelCol: {
+ xs: { span: 24 },
+ sm: { span: 5 },
+ },
+ wrapperCol: {
+ xs: { span: 24 },
+ sm: { span: 16 },
+ },
+ columns: [
+ {
+ title: '#',
+ dataIndex: '',
+ key: 'rowIndex',
+ width: 60,
+ align: "center",
+ customRender: function (t, r, index) {
+ return parseInt(index) + 1;
+ }
+ },
+ {
+ title: '鍗曟嵁鍙�',
+ align: "center",
+ dataIndex: 'num',
+ },
+ {
+ title: '褰撳墠鑺傜偣',
+ align: "center",
+ dataIndex: 'status_dictText',
+ },
+ {
+ title: '鍗曟嵁绫诲瀷',
+ align: "center",
+ dataIndex: 'type_dictText',
+ },
+ {
+ title: '鍙戣捣鏃堕棿',
+ align: "center",
+ dataIndex: 'createTime',
+ },
+ // width: 300
+ {
+ title: '鍙戣捣浜�',
+ align: "center",
+ dataIndex: 'createBy_dictText'
+ },
+ {
+ title: '鎿嶄綔',
+ dataIndex: 'action',
+ align: "center",
+ scopedSlots: { customRender: 'action' },
+ }
+ // fixed: "right",
+ ],
+ url: {
+ list: "/eam/stream/list",
+ delete: "/eam/stream/delete",
+ deleteBatch: "/eam/stream/deleteBatch",
+ exportXlsUrl: "/eam/stream/exportXls",
+ importExcelUrl: "eam/stream/importExcel",
+ getPreInfo: "eam/stream/getPreInfo"
+ },
+ dictOptions: {
+ },
+ /* 鍒嗛〉鍙傛暟 */
+ ipagination: {
+ current: 1,
+ pageSize: 20,
+ pageSizeOptions: ['5', '10', '20', '50'],
+ showTotal: (total, range) => {
+ return range[0] + "-" + range[1] + " 鍏�" + total + "鏉�"
+ },
+ showQuickJumper: true,
+ showSizeChanger: true,
+ total: 0
+ },
+ selectedMainId: '',
+ superFieldList: [],
+ streamOperationMainId: '',
+ aBCAssessmentMainId: '',
+ button1: {},
+ button2: {},
+ nodeSort: 0,
+ nodeValue: ''
+ }
+ },
+ created() {
+ this.getSuperFieldList();
+ },
+ mounted() {
+ this.getPreInfo();
+ },
+ computed: {
+ importExcelUrl: function () {
+ return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
+ }
+ },
+ methods: {
+ initDictConfig() {
},
- data () {
+ clickThenSelect(record) {
return {
- description: '璁惧ABC璇勪环绠$悊椤甸潰',
- // 琛ㄥご
- columns: [
- {
- title: '#',
- dataIndex: '',
- key:'rowIndex',
- width:60,
- align:"center",
- customRender:function (t,r,index) {
- return parseInt(index)+1;
- }
- },
- {
- title:'鍗曟嵁鍙�',
- align:"center",
- dataIndex: 'num',
- width:400
- },
- {
- title:'褰撳墠鑺傜偣',
- align:"center",
- dataIndex: 'status',
- width:300
- },
- {
- title:'鍗曟嵁绫诲瀷',
- align:"center",
- dataIndex: 'type',
- width:300
- },
- {
- title:'鍙戣捣鏃堕棿',
- align:"center",
- dataIndex: 'createTime',
- width:300
- },
- {
- title:'鍙戣捣浜�',
- align:"center",
- dataIndex: 'createBy_dictText'
- },
- {
- title: '鎿嶄綔',
- dataIndex: 'action',
- align:"center",
- fixed:"right",
- width:200,
- scopedSlots: { customRender: 'action' },
+ on: {
+ click: () => {
+ this.onSelectChange(record.id.split(","), [record]);
}
- ],
- url: {
- list: "/eam/stream/list",
- delete: "/eam/stream/delete",
- deleteBatch: "/eam/stream/deleteBatch",
- exportXlsUrl: "/eam/stream/exportXls",
- importExcelUrl: "eam/stream/importExcel",
- },
- dictOptions:{
- },
- /* 鍒嗛〉鍙傛暟 */
- ipagination:{
- current: 1,
- pageSize: 5,
- pageSizeOptions: ['5', '10', '50'],
- showTotal: (total, range) => {
- return range[0] + "-" + range[1] + " 鍏�" + total + "鏉�"
- },
- showQuickJumper: true,
- showSizeChanger: true,
- total: 0
- },
- selectedMainId:'',
- superFieldList:[],
- streamOperationMainId: '',
- aBCAssessmentMainId: '',
+ }
}
},
- created() {
- this.getSuperFieldList();
- },
- computed: {
- importExcelUrl: function(){
- return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
+ handleStreamNext(record) {
+ var step = {
+ name: this.button1.name,
+ value: this.button1.value,
+ opType: 'next',
+ nodeSort: this.nodeSort,
+ node: this.nodeValue,
+ streamId: record.id
}
+ this.$refs.nodeModel.title = this.button1.name + "鎿嶄綔";
+ this.$refs.nodeModel.edit(step);
},
- methods: {
- initDictConfig(){
- },
- clickThenSelect(record) {
- return {
- on: {
- click: () => {
- this.onSelectChange(record.id.split(","), [record]);
- }
- }
- }
- },
- onClearSelected() {
- this.selectedRowKeys = [];
- this.selectionRows = [];
- this.selectedMainId=''
- },
- onSelectChange(selectedRowKeys, selectionRows) {
- if(selectedRowKeys.length===1){
- this.selectedMainId=selectedRowKeys[0]
- this.streamOperationMainId = selectionRows[0]['id']
- this.aBCAssessmentMainId = selectionRows[0]['id']
- }else{
- this.selectedMainId=''
- this.streamOperationMainId = ''
- this.aBCAssessmentMainId = ''
- }
-
- this.selectedRowKeys = selectedRowKeys;
- this.selectionRows = selectionRows;
-
- },
- loadData(arg) {
- if(!this.url.list){
- this.$message.error("璇疯缃畊rl.list灞炴��!")
- return
- }
- //鍔犺浇鏁版嵁 鑻ヤ紶鍏ュ弬鏁�1鍒欏姞杞界涓�椤电殑鍐呭
- if (arg === 1) {
- this.ipagination.current = 1;
- }
- this.onClearSelected()
- var params = this.getQueryParams();//鏌ヨ鏉′欢
- this.loading = true;
- getAction(this.url.list, params).then((res) => {
- if (res.success) {
- this.dataSource = res.result.records;
- this.ipagination.total = res.result.total;
- }
- if(res.code===510){
- this.$message.warning(res.message)
- }
- this.loading = false;
- })
- },
- getSuperFieldList(){
- let fieldList=[];
- fieldList.push({type:'string',value:'num',text:'num',dictCode:''})
- fieldList.push({type:'string',value:'status',text:'status',dictCode:''})
- fieldList.push({type:'string',value:'type',text:'鍗曟嵁绫诲瀷',dictCode:''})
- this.superFieldList = fieldList
+ handleStreamLast(record) {
+ var step = {
+ name: this.button2.name,
+ value: this.button2.value,
+ opType: 'last',
+ nodeSort: this.nodeSort,
+ node: this.nodeValue,
+ streamId: record.id
}
+ this.$refs.nodeModel.title = this.button2.name + "鎿嶄綔";
+ this.$refs.nodeModel.edit(step);
+ },
+ onClearSelected() {
+ this.selectedRowKeys = [];
+ this.selectionRows = [];
+ this.selectedMainId = ''
+ },
+ onSelectChange(selectedRowKeys, selectionRows) {
+ if (selectedRowKeys.length === 1) {
+ this.selectedMainId = selectedRowKeys[0]
+ this.streamOperationMainId = selectionRows[0]['id']
+ this.aBCAssessmentMainId = selectionRows[0]['id']
+ } else {
+ this.selectedMainId = ''
+ this.streamOperationMainId = ''
+ this.aBCAssessmentMainId = ''
+ }
+
+ this.selectedRowKeys = selectedRowKeys;
+ this.selectionRows = selectionRows;
+
+ },
+ loadData(arg) {
+ if (!this.url.list) {
+ this.$message.error("璇疯缃畊rl.list灞炴��!")
+ return
+ }
+ //鍔犺浇鏁版嵁 鑻ヤ紶鍏ュ弬鏁�1鍒欏姞杞界涓�椤电殑鍐呭
+ if (arg === 1) {
+ this.ipagination.current = 1;
+ }
+ this.onClearSelected()
+ var params = this.getQueryParams();//鏌ヨ鏉′欢
+ this.loading = true;
+ getAction(this.url.list, params).then((res) => {
+ if (res.success) {
+ this.dataSource = res.result.records;
+ this.ipagination.total = res.result.total;
+ }
+ if (res.code === 510) {
+ this.$message.warning(res.message)
+ }
+ this.loading = false;
+ })
+ },
+ getSuperFieldList() {
+ let fieldList = [];
+ fieldList.push({ type: 'string', value: 'num', text: 'num', dictCode: '' })
+ fieldList.push({ type: 'string', value: 'status', text: 'status', dictCode: '' })
+ fieldList.push({ type: 'string', value: 'type', text: '鍗曟嵁绫诲瀷', dictCode: '' })
+ this.superFieldList = fieldList
+ },
+ getPreInfo() {
+ getAction(this.url.getPreInfo).then(res => {
+ if (res.result.msg === 'ok') {
+ this.button1 = res.result.buttons[0];
+ if (res.result.buttons.length === 2) {
+ this.button2 = res.result.buttons[1];
+ }
+ this.nodeSort = res.result.nodeSort;
+ this.nodeValue = res.result.nodeValue;
+ }
+ })
}
}
+}
</script>
<style scoped>
- @import '~@assets/less/common.less'
+@import '~@assets/less/common.less';
</style>
\ No newline at end of file
--
Gitblit v1.9.3