From 958233d0bb26417d5b51e68ecc1cfb9410fcdccc Mon Sep 17 00:00:00 2001
From: “linengliang” <vanSuperEnergy@163.com>
Date: 星期二, 21 十一月 2023 20:30:02 +0800
Subject: [PATCH] ABC评分签审

---
 src/views/eam/ABC/ABCAssessmentList.vue            |  216 ++++++++
 src/views/eam/ABC/modules/StreamModal.vue          |   65 ++
 src/views/eam/ABC/StreamList.vue                   |  269 +++++++++
 src/views/eam/ABC/StreamOperationList.vue          |  171 ++++++
 src/views/eam/ABC/modules/StreamForm.vue           |  572 +++++++++++++++++++++
 src/views/eam/ABC/modules/EquipmentSelectModel.vue |  303 +++++++++++
 6 files changed, 1,596 insertions(+), 0 deletions(-)

diff --git a/src/views/eam/ABC/ABCAssessmentList.vue b/src/views/eam/ABC/ABCAssessmentList.vue
new file mode 100644
index 0000000..d3bd7a6
--- /dev/null
+++ b/src/views/eam/ABC/ABCAssessmentList.vue
@@ -0,0 +1,216 @@
+<template>
+  <a-card :bordered="false" :class="'cust-erp-sub-tab'">
+    <!-- 鏌ヨ鍖哄煙 -->
+    <div class="table-page-search-wrapper">
+      <a-form layout="inline" @keyup.enter.native="searchQuery">
+        <a-row :gutter="24">
+        </a-row>
+      </a-form>
+    </div>
+    <!-- 鏌ヨ鍖哄煙-END -->
+
+    <!-- 鎿嶄綔鎸夐挳鍖哄煙 -->
+    <div class="table-operator" v-if="mainId">
+      <a-dropdown v-if="selectedRowKeys.length > 0">
+        <a-menu slot="overlay">
+          <a-menu-item key="1" @click="batchDel"><a-icon type="delete"/>鍒犻櫎</a-menu-item>
+        </a-menu>
+        <a-button style="margin-left: 8px"> 鎵归噺鎿嶄綔 <a-icon type="down" /></a-button>
+      </a-dropdown>
+    </div>
+
+    <!-- table鍖哄煙-begin -->
+    <div>
+      <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>
+      </div>
+
+      <a-table
+        ref="table"
+        size="middle"
+        bordered
+        rowKey="id"
+        :scroll="{x:true}"
+        :columns="columns"
+        :dataSource="dataSource"
+        :pagination="ipagination"
+        :loading="loading"
+        :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
+        @change="handleTableChange">
+
+        <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>
+        <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)">
+            涓嬭浇
+          </a-button>
+        </template>
+
+        <span slot="action" slot-scope="text, record">
+          <a @click="handleEdit(record)">缂栬緫</a>
+          <a-divider type="vertical" />
+          <a-popconfirm title="纭畾鍒犻櫎鍚�?" @confirm="() => handleDelete(record.id)">
+            <a>鍒犻櫎</a>
+          </a-popconfirm>
+        </span>
+
+      </a-table>
+    </div>
+  </a-card>
+</template>
+
+<script>
+
+  import { JeecgListMixin } from '@/mixins/JeecgListMixin'
+
+  export default {
+    name: "ABCAssessmentList",
+    mixins:[JeecgListMixin],
+    components: { },
+    props:{
+      mainId:{
+        type:String,
+        default:'',
+        required:false
+      }
+    },
+    watch:{
+      mainId:{
+        immediate: true,
+        handler(val) {
+          if(!this.mainId){
+            this.clearList()
+          }else{
+            this.queryParam['streamId'] = val
+            this.loadData(1);
+          }
+        }
+      }
+    },
+    data () {
+      return {
+        description: '璁惧ABC璇勪环绠$悊椤甸潰',
+        disableMixinCreated:true,
+        // 琛ㄥご
+        columns: [
+          {
+            title: '#',
+            dataIndex: '',
+            key:'rowIndex',
+            width:60,
+            align:"center",
+            customRender:function (t,r,index) {
+              return parseInt(index)+1;
+            }
+          },
+          {
+            title:'缁熶竴缂栧彿',
+            align:"center",
+            dataIndex: 'num',
+            width:200
+          },
+          {
+            title:'璁惧鍚嶇О',
+            align:"center",
+            dataIndex: 'name',
+            width:200
+          },
+          {
+            title:'璁惧鍨嬪彿',
+            align:"center",
+            dataIndex: 'model',
+            width:200
+          },
+          {
+            title:'骞冲潎浣跨敤鐜�',
+            align:"center",
+            dataIndex: 'standardA_dictText',
+            width:200
+          },
+          {
+            title:'鍙浛鎹㈡��',
+            align:"center",
+            dataIndex: 'standardB_dictText',
+            width:200
+          },
+          {
+            title:'鏁呴殰褰卞搷搴�',
+            align:"center",
+            dataIndex: 'standardC_dictText',
+            width:200
+          },
+          {
+            title:'鐢熶骇瓒呭樊搴�',
+            align:"center",
+            dataIndex: 'standardD_dictText',
+            width:200
+          },
+          {
+            title:'鏁呴殰棰戠巼',
+            align:"center",
+            dataIndex: 'standardE_dictText',
+            width:200
+          },
+          {
+            title:'璁惧浠峰��',
+            align:"center",
+            dataIndex: 'standardF_dictText',
+            width:200
+          },
+          {
+            title:'鏃ф爣璇�',
+            align:"center",
+            dataIndex: 'equipmentImportanceId_dictText',
+            width:200
+          },
+          {
+            title:'鏂版爣璇�',
+            align:"center",
+            dataIndex: 'finalStandard_dictText',
+            width:200
+          },
+        ],
+        url: {
+          list: "/eam/stream/listABCAssessmentByMainId",
+          delete: "/eam/stream/deleteABCAssessment",
+          deleteBatch: "/eam/stream/deleteBatchABCAssessment",
+          exportXlsUrl: "/eam/stream/exportABCAssessment",
+          importUrl: "/eam/stream/importABCAssessment",
+        },
+        dictOptions:{
+        }
+      }
+    },
+    created() {
+    },
+    computed: {
+      importExcelUrl(){
+        return `${window._CONFIG['domianURL']}/${this.url.importUrl}/${this.mainId}`;
+      }
+    },
+    methods: {
+      clearList(){
+        this.dataSource=[]
+        this.selectedRowKeys=[]
+        this.ipagination.current = 1
+      }
+
+    }
+  }
+</script>
+<style scoped>
+  @import '~@assets/less/common.less'
+</style>
diff --git a/src/views/eam/ABC/StreamList.vue b/src/views/eam/ABC/StreamList.vue
new file mode 100644
index 0000000..d626a2f
--- /dev/null
+++ b/src/views/eam/ABC/StreamList.vue
@@ -0,0 +1,269 @@
+<template>
+  <a-card :bordered="false">
+    <!-- 鏌ヨ鍖哄煙 -->
+    <div class="table-page-search-wrapper">
+      <a-form layout="inline" @keyup.enter.native="searchQuery">
+        <a-row :gutter="24">
+        </a-row>
+      </a-form>
+    </div>
+    <!-- 鏌ヨ鍖哄煙-END -->
+
+    <!-- 鎿嶄綔鎸夐挳鍖哄煙 -->
+    <div class="table-operator">
+      <a-button @click="handleAdd" type="primary" icon="plus">鏂板</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>
+      </a-upload> -->
+      <!-- 楂樼骇鏌ヨ鍖哄煙 -->
+      <!-- <j-super-query :fieldList="superFieldList" ref="superQueryModal" @handleSuperQuery="handleSuperQuery"></j-super-query> -->
+    </div>
+
+    <!-- table鍖哄煙-begin -->
+    <div>
+      <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>
+      </div>
+
+      <a-table
+        ref="table"
+        size="middle"
+        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">
+
+        <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>
+        <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)">
+            涓嬭浇
+          </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>
+
+      </a-table>
+    </div>
+
+    <a-tabs defaultActiveKey="1">
+      <a-tab-pane tab="鎿嶄綔璁板綍" key="1" >
+        <StreamOperationList :mainId="streamOperationMainId" />
+      </a-tab-pane>
+      <a-tab-pane tab="ABC璇勫垎" key="2" forceRender>
+        <ABCAssessmentList :mainId="aBCAssessmentMainId" />
+      </a-tab-pane>
+    </a-tabs>
+
+    <stream-modal ref="modalForm" @ok="modalFormOk"></stream-modal>
+  </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'
+
+  export default {
+    name: "StreamList",
+    mixins:[JeecgListMixin],
+    components: {
+      StreamOperationList,
+      ABCAssessmentList,
+      StreamModal
+    },
+    data () {
+      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' },
+          }
+        ],
+        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}`;
+      }
+    },
+    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
+      }
+    }
+  }
+</script>
+<style scoped>
+  @import '~@assets/less/common.less'
+</style>
\ No newline at end of file
diff --git a/src/views/eam/ABC/StreamOperationList.vue b/src/views/eam/ABC/StreamOperationList.vue
new file mode 100644
index 0000000..7538b72
--- /dev/null
+++ b/src/views/eam/ABC/StreamOperationList.vue
@@ -0,0 +1,171 @@
+<template>
+  <a-card :bordered="false" :class="'cust-erp-sub-tab'">
+    <!-- 鏌ヨ鍖哄煙 -->
+    <div class="table-page-search-wrapper">
+      <a-form layout="inline" @keyup.enter.native="searchQuery">
+        <a-row :gutter="24">
+        </a-row>
+      </a-form>
+    </div>
+    <!-- 鏌ヨ鍖哄煙-END -->
+
+    <!-- 鎿嶄綔鎸夐挳鍖哄煙 -->
+    <div class="table-operator" v-if="mainId">
+      <a-dropdown v-if="selectedRowKeys.length > 0">
+        <a-menu slot="overlay">
+          <a-menu-item key="1" @click="batchDel"><a-icon type="delete"/>鍒犻櫎</a-menu-item>
+        </a-menu>
+        <a-button style="margin-left: 8px"> 鎵归噺鎿嶄綔 <a-icon type="down" /></a-button>
+      </a-dropdown>
+    </div>
+
+    <!-- table鍖哄煙-begin -->
+    <div>
+      <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>
+      </div>
+
+      <a-table
+        ref="table"
+        size="middle"
+        bordered
+        rowKey="id"
+        :scroll="{x:true}"
+        :columns="columns"
+        :dataSource="dataSource"
+        :pagination="ipagination"
+        :loading="loading"
+        :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
+        @change="handleTableChange">
+
+        <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>
+        <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)">
+            涓嬭浇
+          </a-button>
+        </template>
+
+        <span slot="action" slot-scope="text, record">
+          <a @click="handleEdit(record)">缂栬緫</a>
+          <a-divider type="vertical" />
+          <a-popconfirm title="纭畾鍒犻櫎鍚�?" @confirm="() => handleDelete(record.id)">
+            <a>鍒犻櫎</a>
+          </a-popconfirm>
+        </span>
+
+      </a-table>
+    </div>
+  </a-card>
+</template>
+
+<script>
+
+  import { JeecgListMixin } from '@/mixins/JeecgListMixin'
+
+  export default {
+    name: "StreamOperationList",
+    mixins:[JeecgListMixin],
+    components: { },
+    props:{
+      mainId:{
+        type:String,
+        default:'',
+        required:false
+      }
+    },
+    watch:{
+      mainId:{
+        immediate: true,
+        handler(val) {
+          if(!this.mainId){
+            this.clearList()
+          }else{
+            this.queryParam['streamId'] = val
+            this.loadData(1);
+          }
+        }
+      }
+    },
+    data () {
+      return {
+        description: '璁惧ABC璇勪环绠$悊椤甸潰',
+        disableMixinCreated:true,
+        // 琛ㄥご
+        columns: [
+          {
+            title:'鎺掑簭',
+            align:"center",
+            dataIndex: 'sort',
+            width:60
+          },
+          {
+            title:'鎿嶄綔',
+            align:"center",
+            dataIndex: 'operation',
+            width:400
+          },
+          {
+            title:'鎿嶄綔鑺傜偣',
+            align:"center",
+            dataIndex: 'streamId',
+            width:400
+          },
+          
+          {
+            title:'鎿嶄綔浜�',
+            align:"center",
+            dataIndex: 'userId_dictText',
+            width:400
+          },
+          {
+            title:'鎿嶄綔浜烘剰瑙�',
+            align:"center",
+            dataIndex: 'remark',
+            width:500
+          },
+        ],
+        url: {
+          list: "/eam/stream/listStreamOperationByMainId",
+          delete: "/eam/stream/deleteStreamOperation",
+          deleteBatch: "/eam/stream/deleteBatchStreamOperation",
+          exportXlsUrl: "/eam/stream/exportStreamOperation",
+          importUrl: "/eam/stream/importStreamOperation",
+        },
+        dictOptions:{
+        }
+      }
+    },
+    created() {
+    },
+    computed: {
+      importExcelUrl(){
+        return `${window._CONFIG['domianURL']}/${this.url.importUrl}/${this.mainId}`;
+      }
+    },
+    methods: {
+      clearList(){
+        this.dataSource=[]
+        this.selectedRowKeys=[]
+        this.ipagination.current = 1
+      }
+
+    }
+  }
+</script>
+<style scoped>
+  @import '~@assets/less/common.less'
+</style>
diff --git a/src/views/eam/ABC/modules/EquipmentSelectModel.vue b/src/views/eam/ABC/modules/EquipmentSelectModel.vue
new file mode 100644
index 0000000..fbbcb6d
--- /dev/null
+++ b/src/views/eam/ABC/modules/EquipmentSelectModel.vue
@@ -0,0 +1,303 @@
+<template>
+  <!--鏀寔鍏ㄥ睆缂╂斁-->
+  <a-modal
+    :visible="visible"
+    :title="title"
+    switchFullscreen
+    @ok="handleSubmit"
+    @cancel="close"
+    style="top:50px"
+    cancelText="鍏抽棴"
+    :width="1400"
+  >
+    <a-card :bordered="false">
+      <div class="table-page-search-wrapper">
+        <a-form
+          layout="inline"
+          @keyup.enter.native="searchQuery"
+        >
+          <a-row :gutter="24">
+            <a-col
+              :md="8"
+              :sm="6"
+            >
+              <a-form-item label="缁熶竴缂栫爜">
+                <a-input
+                  placeholder="璇疯緭鍏ョ粺涓�缂栫爜"
+                  v-model="queryParam.num"
+                />
+              </a-form-item>
+            </a-col>
+            <a-col
+              :md="8"
+              :sm="6"
+            >
+              <a-form-item label="璁惧鍚嶇О">
+                <a-input
+                  placeholder="璁惧鍚嶇О"
+                  v-model="queryParam.name"
+                />
+              </a-form-item>
+            </a-col>
+            <a-col :md="3">
+              <span
+                style="float: left;overflow: hidden;"
+                class="table-page-search-submitButtons"
+              >
+                <a-button
+                  type="primary"
+                  @click="searchQuery"
+                  icon="search"
+                >鏌ヨ</a-button>
+                <a-button
+                  @click="searchReset"
+                  icon="reload"
+                  style="margin-left: 10px"
+                >閲嶇疆</a-button>
+              </span>
+            </a-col>
+          </a-row>
+        </a-form>
+      </div>
+      <a-table
+        ref="table"
+        :scroll="scrollTrigger"
+        size="middle"
+        rowKey="id"
+        bordered
+        :columns="columns"
+        :dataSource="dataSource"
+        :pagination="ipagination"
+        :rowSelection="rowSelection"
+        :loading="loading"
+        @change="handleTableChange"
+      >
+       <template slot="equipmentPhoto" 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>
+      </a-table>
+    </a-card>
+  </a-modal>
+</template>
+
+<script>
+import { filterObj } from '@/utils/util'
+import { getAction } from '@/api/manage'
+import { JeecgListMixin } from '@/mixins/JeecgListMixin'
+
+export default {
+  name: 'EquipmentSelectModel',
+  mixins: [JeecgListMixin],
+  components: {},
+  props: {},
+  data() {
+    return {
+      queryParam: {},
+      columns: [
+        {
+          title: '#',
+          dataIndex: 'id',
+          key: 'rowIndex',
+          width: 50,
+          align: 'center',
+          customRender: function(t, r, index) {
+            return parseInt(index) + 1
+          }
+        },
+        {
+          title: '缁熶竴缂栫爜',
+          align: 'center',
+          dataIndex: 'num',
+          width:200
+        },
+        {
+          title: '璁惧鍚嶇О',
+          align: 'center',
+          dataIndex: 'name',
+          width:200
+        },
+        {
+          title: '璁惧鍨嬪彿',
+          align: 'center',
+          dataIndex: 'model',
+          width:200
+        },
+        {
+          title: '璁惧瑙勬牸',
+          align: 'center',
+          dataIndex: 'specification',
+          width:200
+        },
+        {
+          title: 'ABC鏍囪瘑',
+          align: "center",
+          dataIndex: 'equipmentImportanceId',
+          width:100
+        },
+        {
+          title: '鍏抽敭璁惧鏍囪瘑',
+          align: "center",
+          dataIndex: 'specificEquipment_dictText',
+          width:100
+        },
+        {
+          title: '璁惧鐘舵��',
+          align: 'center',
+          dataIndex: 'equipmentStatus_dictText',
+          width:100
+        },
+        {
+          title: '鎶�鏈姸鎬�',
+          align: 'center',
+          dataIndex: 'technologyStatus_dictText',
+          width:100
+        },
+      ],
+      selectedRowKeys: [],
+      oldSelectRows: [],
+      scrollTrigger: {},
+      dataSource: [],
+      selectionRows: [],
+      title: '閫夋嫨璁惧',
+      ipagination: {
+        current: 1,
+        pageSize: 10,
+        pageSizeOptions: ['5', '10', '30', '50', '100'],
+        showTotal: (total, range) => {
+          return range[0] + '-' + range[1] + ' 鍏�' + total + '鏉�'
+        },
+        showQuickJumper: true,
+        showSizeChanger: true,
+        total: 0
+      },
+      isorter: {
+        column: 'num',
+        order: 'desc'
+      },
+      visible: false,
+      loading: false,
+      url: {
+        list: '/eam/equipment/list'
+      }
+    }
+  },
+  computed: {
+    rowSelection() {
+      return {
+        type: 'checkbox',
+        onChange: (selectedRowKeys, selectedRows) => {
+          this.selectedRowKeys = selectedRowKeys
+          this.onSelectChange(selectedRows)
+        },
+        getCheckboxProps: record => ({
+          props: {
+            disabled: record.distable
+          }
+        }),
+        selectedRowKeys: this.selectedRowKeys
+      }
+    }
+  },
+
+  methods: {
+
+    async loadData(arg) {
+      if (arg === 1) {
+        this.ipagination.current = 1
+      }
+      let that = this
+      this.loading = true
+      let params = this.getQueryParams()//鏌ヨ鏉′欢
+      // params.equipmentStatus = '1'
+      await getAction(this.url.list, params).then((res) => {
+        if (res.success) {
+          for (let i = 0; i < res.result.records.length; i++) {
+            if (that.oldSelectRows.indexOf(res.result.records[i].id) > -1) {
+              res.result.records[i].distable = true
+            } else {
+              res.result.records[i].distable = false
+            }
+          }
+          this.dataSource = res.result.records
+          this.ipagination.total = res.result.total
+        }
+        if (res.code === 510) {
+          this.$message.warning(res.message)
+        }
+        this.loading = false
+      })
+    },
+
+    showModals(oldSelectRows) {
+      this.oldSelectRows = oldSelectRows
+      this.visible = true
+      this.loadData(1)
+    },
+    getQueryParams() {
+      let param = Object.assign({}, this.queryParam, this.isorter)
+      param.field = this.getQueryField()
+      param.pageNo = this.ipagination.current
+      param.pageSize = this.ipagination.pageSize
+      return filterObj(param)
+    },
+    //鏌ヨ鏉′欢澶勭悊
+    getQueryField() {
+      let str = 'id,'
+      for (let a = 0; a < this.columns.length; a++) {
+        str += ',' + this.columns[a].dataIndex
+      }
+      return str
+    },
+    searchReset(num) {
+      let that = this
+      this.queryParam = []
+      if (num !== 0) {
+        that.loadData(1)
+      }
+      that.selectborrowIds = []
+    },
+    close() {
+      this.searchReset(0)
+      this.selectedRowKeys = []
+      this.visible = false
+    },
+    handleTableChange(pagination, filters, sorter) {
+      //TODO 绛涢��
+
+      if (Object.keys(sorter).length > 0) {
+        this.isorter.column = sorter.field
+        this.isorter.order = 'ascend' === sorter.order ? 'asc' : 'desc'
+      }
+      this.ipagination = pagination
+      this.loadData()
+    },
+    handleSubmit() {
+      this.$emit('selectionRows', this.selectionRows)
+      this.searchReset(0)
+      this.close()
+    },
+    onSelectChange(selectionRows) {
+      this.selectionRows = selectionRows
+    },
+    searchQuery() {
+      this.loadData(1)
+    }
+  }
+}
+</script>
+
+<style scoped>
+.ant-table-tbody .ant-table-row td {
+  padding-top: 10px;
+  padding-bottom: 10px;
+}
+
+#components-layout-demo-custom-trigger .trigger {
+  font-size: 18px;
+  line-height: 64px;
+  padding: 0 24px;
+  cursor: pointer;
+  transition: color 0.3s;
+}
+</style>
\ No newline at end of file
diff --git a/src/views/eam/ABC/modules/StreamForm.vue b/src/views/eam/ABC/modules/StreamForm.vue
new file mode 100644
index 0000000..7f32450
--- /dev/null
+++ b/src/views/eam/ABC/modules/StreamForm.vue
@@ -0,0 +1,572 @@
+<template>
+  <a-spin :spinning="confirmLoading">
+    <j-form-container :disabled="formDisabled">
+      <!-- 涓昏〃鍗曞尯鍩� -->
+      <a-form-model ref="form" :model="model" :rules="validatorRules" slot="detail">
+        <a-row :gutter="24">
+          <a-col :span="12" >
+            <a-form-model-item label="鍗曟嵁鍙�" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="num">
+              <a-input v-model="model.num" placeholder="绯荤粺鑷姩鐢熸垚" :disabled="true" ></a-input>
+            </a-form-model-item>
+          </a-col>
+          <a-col :span="12">
+            <a-form-model-item
+              label="鏂癆BC鏍囪瘑"
+              :labelCol="labelCol"
+              :wrapperCol="wrapperCol"
+              prop="finalStandard"
+              :disabled="true"
+            >
+              <j-dict-select-tag
+                allow-clear
+                :disabled="true"
+                placeholder="璇烽�夋嫨ABC鏍囪瘑"
+                :triggerChange="true"
+                dictCode="ABC-standard-result"
+                v-model="model.finalStandard"
+              />
+            </a-form-model-item>
+          </a-col>
+        </a-row>
+        <a-row :gutter="24">
+          <a-col :span="12">
+            <a-form-model-item
+              label="骞冲潎浣跨敤鐜�"
+              :labelCol="labelCol"
+              :wrapperCol="wrapperCol"
+              prop="standardA"
+            >
+              <j-dict-select-tag
+                allow-clear
+                placeholder="璇烽�夋嫨骞冲潎浣跨敤鐜�"
+                :disabled="formDisabled"
+                :triggerChange="true"
+                dictCode="ABC-standardA"
+                v-model="model.standardA"
+                @change="(e) =>standardResultCompute(e,'A')"
+              />
+            </a-form-model-item>
+          </a-col>
+          <a-col :span="12">
+            <a-form-model-item
+              label="鍙浛鎹㈡��"
+              :labelCol="labelCol"
+              :wrapperCol="wrapperCol"
+              prop="standardB"
+            >
+              <j-dict-select-tag
+                allow-clear
+                placeholder="璇烽�夋嫨鍙浛鎹㈡��"
+                :disabled="formDisabled"
+                :triggerChange="true"
+                dictCode="ABC-standardB"
+                v-model="model.standardB"
+                @change="(e) =>standardResultCompute(e,'B')"
+              />
+            </a-form-model-item>
+          </a-col>
+        </a-row>
+        <a-row :gutter="24">
+          <a-col :span="12">
+            <a-form-model-item
+              label="鏁呴殰褰卞搷搴�"
+              :labelCol="labelCol"
+              :wrapperCol="wrapperCol"
+              prop="standardC"
+            >
+              <j-dict-select-tag
+                allow-clear
+                placeholder="璇烽�夋嫨鏁呴殰褰卞搷搴�"
+                :disabled="formDisabled"
+                :triggerChange="true"
+                dictCode="ABC-standardC"
+                v-model="model.standardC"
+                @change="(e) =>standardResultCompute(e,'C')"
+              />
+            </a-form-model-item>
+          </a-col>
+          <a-col :span="12">
+            <a-form-model-item
+              label="鐢熶骇瓒呭樊搴�"
+              :labelCol="labelCol"
+              :wrapperCol="wrapperCol"
+              prop="standardD"
+            >
+              <j-dict-select-tag
+                allow-clear
+                placeholder="璇烽�夋嫨鐢熶骇瓒呭樊搴�"
+                :disabled="formDisabled"
+                :triggerChange="true"
+                dictCode="ABC-standardD"
+                v-model="model.standardD"
+                @change="(e) =>standardResultCompute(e,'D')"
+              />
+            </a-form-model-item>
+          </a-col>
+        </a-row>
+        <a-row :gutter="24">
+          <a-col :span="12">
+            <a-form-model-item
+              label="鏁呴殰棰戠巼"
+              :labelCol="labelCol"
+              :wrapperCol="wrapperCol"
+              prop="standardE"
+            >
+              <j-dict-select-tag
+                allow-clear
+                placeholder="璇烽�夋嫨鏁呴殰棰戠巼"
+                :disabled="formDisabled"
+                :triggerChange="true"
+                dictCode="ABC-standardE"
+                v-model="model.standardE"
+                @change="(e) =>standardResultCompute(e,'E')"
+              />
+            </a-form-model-item>
+          </a-col>
+          <a-col :span="12">
+            <a-form-model-item
+              label="璁惧浠峰��"
+              :labelCol="labelCol"
+              :wrapperCol="wrapperCol"
+              prop="standardF"
+            >
+              <j-dict-select-tag
+                allow-clear
+                placeholder="璇烽�夋嫨璁惧浠峰��"
+                :disabled="formDisabled"
+                :triggerChange="true"
+                dictCode="ABC-standardF"
+                v-model="model.standardF"
+                @change="(e) =>standardResultCompute(e,'F')"
+              />
+            </a-form-model-item>
+          </a-col>
+        </a-row>
+      </a-form-model>
+    </j-form-container>
+      <!-- 瀛愯〃鍗曞尯鍩� -->
+    <a-tabs v-model="activeKey" @change="handleChangeTabs">
+      <a-tab-pane tab="ABC璇勪环" :key="refKeys[0]" :forceRender="true">
+        <j-vxe-table
+          keep-source
+          :ref="refKeys[0]"
+          :loading="aBCAssessmentTable.loading"
+          :columns="aBCAssessmentTable.columns"
+          :dataSource="aBCAssessmentTable.dataSource"
+          :maxHeight="300"
+          :disabled="formDisabled"
+          :rowNumber="true"
+          :rowSelection="true"
+          :toolbar="true"
+          :alwaysEdit="true"
+          @valueChange="changeDate"
+          :toolbarConfig="toolbarConfig"
+          >
+              <template slot="toolbarPrefix">
+                <a-button type="primary" @click="selectEquipmentList" :disabled="formDisabled">閫夋嫨璁惧
+                </a-button>
+              </template>
+        </j-vxe-table>
+      </a-tab-pane>
+    </a-tabs>
+    <equipment-select-model ref="EquipmentSelectModal" @selectionRows="addSelectedEquipments"></equipment-select-model>
+  </a-spin>
+</template>
+
+<script>
+
+  import { getAction } from '@/api/manage'
+  import { JVxeTableModelMixin } from '@/mixins/JVxeTableModelMixin.js'
+  import { JVXETypes } from '@/components/jeecg/JVxeTable'
+  import { getRefPromise,VALIDATE_FAILED} from '@/components/jeecg/JVxeTable/utils/vxeUtils.js'
+  import { validateDuplicateValue } from '@/utils/util'
+  import JFormContainer from '@/components/jeecg/JFormContainer'
+  import EquipmentSelectModel from './EquipmentSelectModel'
+
+  export default {
+    name: 'StreamForm',
+    mixins: [JVxeTableModelMixin],
+    components: {
+      JFormContainer,
+      EquipmentSelectModel
+    },
+    data() {
+      return {
+        toolbarConfig: {
+        // prefix 鍓嶇紑锛泂uffix 鍚庣紑
+        slot: ['prefix', 'suffix'],
+        // add 鏂板鎸夐挳锛況emove 鍒犻櫎鎸夐挳锛沜learSelection 娓呯┖閫夋嫨鎸夐挳
+        btn: ['remove', 'clearSelection']
+        },
+        labelCol: {
+          xs: { span: 24 },
+          sm: { span: 5 },
+        },
+        wrapperCol: {
+          xs: { span: 24 },
+          sm: { span: 16 },
+        },
+        model:{
+         },
+        // 鏂板鏃跺瓙琛ㄩ粯璁ゆ坊鍔犲嚑琛岀┖鏁版嵁
+        addDefaultRowNum: 0,
+        validatorRules: {
+        },
+        refKeys: ['aBCAssessment' ],
+        tableKeys:[ 'aBCAssessment' ],
+        activeKey: 'streamOperation',
+        // ABC璇勪环
+        aBCAssessmentTable: {
+          loading: false,
+          dataSource: [],
+          columns: [
+             {
+              title: '缁熶竴缂栫爜',
+              key: 'num',
+               type: JVXETypes.normal,
+              width:"250px",
+              placeholder: '璇疯緭鍏�${title}',
+              disabled:true,
+              align:'center',
+              defaultValue:'',
+            },
+            {
+              title: '璁惧鍚嶇О',
+              key: 'name',
+               type: JVXETypes.normal,
+              width:"250px",
+              placeholder: '璇疯緭鍏�${title}',
+              disabled:true,
+              align:'center',
+              defaultValue:'',
+            },
+            {
+              title: '璁惧鍨嬪彿',
+              key: 'model',
+               type: JVXETypes.normal,
+              width:"250px",
+              placeholder: '璇疯緭鍏�${title}',
+              disabled:true,
+              align:'center',
+              defaultValue:'',
+            },
+            {
+              title: '璁惧ID',
+              key: 'equipmentId',
+               type: JVXETypes.hidden,
+              width:"250px",
+              placeholder: '璇疯緭鍏�${title}',
+              defaultValue:'',
+              align:'center',
+            },
+            {
+              title: '骞冲潎浣跨敤鐜�',
+              key: 'standardA',
+              type: JVXETypes.select,
+              width:"250px",
+              placeholder: '璇疯緭鍏�${title}',
+              defaultValue:'',
+              dictCode:'ABC-standardA',
+              options:[],
+              align:'center',
+              validateRules: [
+                  {
+                    required: true, // 蹇呭~
+                    message: '璇疯緭鍏�${title}' // 鏄剧ず鐨勬枃鏈�
+                  },
+              ]
+            },
+            {
+              title: '鍙浛鎹㈡��',
+              key: 'standardB',
+              type: JVXETypes.select,
+              width:"250px",
+              placeholder: '璇疯緭鍏�${title}',
+              defaultValue:'',
+              dictCode:'ABC-standardB',
+              options:[],
+              align:'center',
+              validateRules: [
+                  {
+                    required: true, // 蹇呭~
+                    message: '璇疯緭鍏�${title}' // 鏄剧ず鐨勬枃鏈�
+                  },
+              ]
+            },
+            {
+              title: '鏁呴殰褰卞搷搴�',
+              key: 'standardC',
+              type: JVXETypes.select,
+              width:"250px",
+              placeholder: '璇疯緭鍏�${title}',
+              defaultValue:'',
+              dictCode:'ABC-standardC',
+              options:[],
+              align:'center',
+              validateRules: [
+                  {
+                    required: true, // 蹇呭~
+                    message: '璇疯緭鍏�${title}' // 鏄剧ず鐨勬枃鏈�
+                  },
+              ]
+            },
+            {
+              title: '鐢熶骇瓒呭樊搴�',
+              key: 'standardD',
+              type: JVXETypes.select,
+              width:"250px",
+              placeholder: '璇疯緭鍏�${title}',
+              defaultValue:'',
+              dictCode:'ABC-standardD',
+              options:[],
+              align:'center',
+              validateRules: [
+                  {
+                    required: true, // 蹇呭~
+                    message: '璇疯緭鍏�${title}' // 鏄剧ず鐨勬枃鏈�
+                  },
+              ]
+            },
+            {
+              title: '鏁呴殰棰戠巼',
+              key: 'standardE',
+              type: JVXETypes.select,
+              width:"250px",
+              placeholder: '璇疯緭鍏�${title}',
+              defaultValue:'',
+              dictCode:'ABC-standardE',
+              options:[],
+              align:'center',
+              validateRules: [
+                  {
+                    required: true, // 蹇呭~
+                    message: '璇疯緭鍏�${title}' // 鏄剧ず鐨勬枃鏈�
+                  },
+              ]
+            },
+            {
+              title: '璁惧浠峰��',
+              key: 'standardF',
+              type: JVXETypes.select,
+              width:"250px",
+              placeholder: '璇疯緭鍏�${title}',
+              defaultValue:'',
+              dictCode:'ABC-standardF',
+              options:[],
+              align:'center',
+              validateRules: [
+                  {
+                    required: true, // 蹇呭~
+                    message: '璇疯緭鍏�${title}' // 鏄剧ず鐨勬枃鏈�
+                  },
+              ]
+            },
+            {
+              title: '鏃ф爣璇�',
+              key: 'equipmentImportanceId',
+              type: JVXETypes.select,
+              width:"250px",
+              disabled:true,
+              placeholder: '璇疯緭鍏�${title}',
+              defaultValue:'',
+              dictCode:'ABC-standard-result',
+              options:[],
+              align:'center',
+            },
+            {
+              title: '鏂版爣璇�',
+              key: 'finalStandard',
+              type: JVXETypes.select,
+              width:"250px",
+              placeholder: '璇疯緭鍏�${title}',
+              defaultValue:'',
+              dictCode:'ABC-standard-result',
+              options:[],
+              align:'center',
+              validateRules: [
+                  {
+                    required: true, // 蹇呭~
+                    message: '璇疯緭鍏�${title}' // 鏄剧ず鐨勬枃鏈�
+                  },
+              ]
+            },
+          ]
+        },
+        url: {
+          add: "/eam/stream/add",
+          edit: "/eam/stream/edit",
+          queryById: "/eam/stream/queryById",
+          getNum:'/eam/sysIdentity/getNumNew',
+          aBCAssessment: {
+            list: '/eam/stream/queryABCAssessmentByMainId'
+          },
+        }
+      }
+    },
+    props: {
+      //琛ㄥ崟绂佺敤
+      disabled: {
+        type: Boolean,
+        default: false,
+        required: false
+      }
+    },
+    computed: {
+      formDisabled(){
+        return this.disabled
+      },
+    },
+    created () {
+    },
+    methods: {
+      addBefore(){
+          let that = this;
+          let param = {
+              type: 'ABCAssement',
+              length: 4
+          };
+          getAction(this.url.getNum,param).then(res=>{
+              if(res.success){
+                that.model.num = res.result;
+              }
+          })
+          this.aBCAssessmentTable.dataSource=[]
+      },
+      getAllTable() {
+        let values = this.tableKeys.map(key => getRefPromise(this, key))
+        return Promise.all(values)
+      },
+      /** 璋冪敤瀹宔dit()鏂规硶涔嬪悗浼氳嚜鍔ㄨ皟鐢ㄦ鏂规硶 */
+      editAfter() {
+        this.$nextTick(() => {
+        })
+        // 鍔犺浇瀛愯〃鏁版嵁
+        if (this.model.id) {
+          let params = { id: this.model.id }
+          this.requestSubTableData(this.url.aBCAssessment.list, params, this.aBCAssessmentTable)
+        }
+      },
+      //鏍¢獙鎵�鏈変竴瀵逛竴瀛愯〃琛ㄥ崟
+        validateSubForm(allValues){
+            return new Promise((resolve,reject)=>{
+              Promise.all([
+              ]).then(() => {
+                resolve(allValues)
+              }).catch(e => {
+                if (e.error === VALIDATE_FAILED) {
+                  // 濡傛灉鏈夋湭閫氳繃琛ㄥ崟楠岃瘉鐨勫瓙琛紝灏辫嚜鍔ㄨ烦杞埌瀹冩墍鍦ㄧ殑tab
+                  this.activeKey = e.index == null ? this.activeKey : this.refKeys[e.index]
+                } else {
+                  console.error(e)
+                }
+              })
+            })
+        },
+      /** 鏁寸悊鎴恌ormData */
+      classifyIntoFormData(allValues) {
+        let main = Object.assign(this.model, allValues.formValue)
+        return {
+          ...main, // 灞曞紑
+          assessmentList: allValues.tablesValue[0].tableData
+        }
+      },
+      validateError(msg){
+        this.$message.error(msg)
+      },
+      standardResultCompute(e,index) {
+      let keyIndex = 'standard'+index;
+      let tableData =this.$refs.aBCAssessment.getTableData();
+      for(var i = 0;i<tableData.length;i++){
+            let row = this.$refs.aBCAssessment.getRowById(tableData[i].equipmentId);
+            row[keyIndex]=e
+            this.changeDateByRow(row);
+      }
+      var standardA = this.model.standardA == null || this.model.standardA == undefined || this.model.standardA == '' ? 0 : parseInt(this.model.standardA);
+      var standardB = this.model.standardB == null || this.model.standardB == undefined || this.model.standardB == '' ? 0 : parseInt(this.model.standardB);
+      var standardC = this.model.standardA == null || this.model.standardC == undefined || this.model.standardC == '' ? 0 : parseInt(this.model.standardC);
+      var standardD = this.model.standardD == null || this.model.standardD == undefined || this.model.standardD == '' ? 0 : parseInt(this.model.standardD);
+      var standardE = this.model.standardE == null || this.model.standardE == undefined || this.model.standardE == '' ? 0 : parseInt(this.model.standardE);
+      var standardF = this.model.standardF == null || this.model.standardF == undefined || this.model.standardF == '' ? 0 : parseInt(this.model.standardF);
+      var sum = standardA + standardB + standardC + standardD + standardE + standardF;
+      console.log(sum)
+      if (sum >= 18) {
+        this.model.finalStandard = 'A'
+      } else if (sum >= 10 && sum <= 17) {
+        this.model.finalStandard = 'B'
+      } else {
+        this.model.finalStandard = 'C'
+      }
+      this.model = Object.assign({}, this.model); 
+      },
+        //閫夋嫨璁惧
+        selectEquipmentList() {
+        let ids = []
+        let tableData = this.$refs.aBCAssessment.getTableData()
+        let deleteData = this.$refs.aBCAssessment.getDeleteData()
+        for (let i = 0; i < tableData.length; i++) {
+          ids.push(tableData[i].equipmentId)
+        }
+        this.$refs.EquipmentSelectModal.showModals(ids)
+        this.$refs.EquipmentSelectModal.title = '閫夋嫨璁惧'
+        this.$refs.EquipmentSelectModal.disableSubmit = false
+      },
+      addSelectedEquipments(data) {
+        let tableData = this.$refs.aBCAssessment.getTableData()
+        // const seletedEquipmentIds = tableData.
+        var tableStr = JSON.stringify(tableData)
+        const addRows = []
+        for (let i = 0; i < data.length; i++) {
+          var equipment = {}
+          if (tableStr.indexOf(data[i].id)==-1) {
+            equipment = {
+              id:data[i].id,
+              equipmentId: data[i].id,
+              num: data[i].num,
+              name: data[i].name,
+              model:data[i].model,
+              equipmentImportanceId:data[i].equipmentImportanceId,
+            }
+          }
+          addRows.push(equipment)
+        }
+        this.$refs.aBCAssessment.pushRows(addRows)
+      },
+      changeDate(target){
+            var standardA = target.row.standardA == null || target.row.standardA == undefined || target.row.standardA == '' ? 0 : parseInt(target.row.standardA);
+            var standardB = target.row.standardB == null || target.row.standardB == undefined || target.row.standardB == '' ? 0 : parseInt(target.row.standardB);
+            var standardC = target.row.standardA == null || target.row.standardC == undefined || target.row.standardC == '' ? 0 : parseInt(target.row.standardC);
+            var standardD = target.row.standardD == null || target.row.standardD == undefined || target.row.standardD == '' ? 0 : parseInt(target.row.standardD);
+            var standardE = target.row.standardE == null || target.row.standardE == undefined || target.row.standardE == '' ? 0 : parseInt(target.row.standardE);
+            var standardF = target.row.standardF == null || target.row.standardF == undefined || target.row.standardF == '' ? 0 : parseInt(target.row.standardF);
+            var sum = standardA + standardB + standardC + standardD + standardE + standardF;
+            console.log(sum)
+            if (sum >= 18) {
+              target.row.finalStandard = 'A'
+            } else if (sum >= 10 && sum <= 17) {
+              target.row.finalStandard = 'B'
+            } else {
+              target.row.finalStandard = 'C'
+            }
+        },
+        changeDateByRow(row){
+            var standardA = row.standardA == null || row.standardA == undefined || row.standardA == '' ? 0 : parseInt(row.standardA);
+            var standardB = row.standardB == null || row.standardB == undefined || row.standardB == '' ? 0 : parseInt(row.standardB);
+            var standardC = row.standardA == null || row.standardC == undefined || row.standardC == '' ? 0 : parseInt(row.standardC);
+            var standardD = row.standardD == null || row.standardD == undefined || row.standardD == '' ? 0 : parseInt(row.standardD);
+            var standardE = row.standardE == null || row.standardE == undefined || row.standardE == '' ? 0 : parseInt(row.standardE);
+            var standardF = row.standardF == null || row.standardF == undefined || row.standardF == '' ? 0 : parseInt(row.standardF);
+            var sum = standardA + standardB + standardC + standardD + standardE + standardF;
+            if (sum >= 18) {
+              row.finalStandard = 'A'
+            } else if (sum >= 10 && sum <= 17) {
+              row.finalStandard = 'B'
+            } else {
+              row.finalStandard = 'C'
+            }
+        },
+    }
+  }
+</script>
+
+<style scoped>
+</style>
\ No newline at end of file
diff --git a/src/views/eam/ABC/modules/StreamModal.vue b/src/views/eam/ABC/modules/StreamModal.vue
new file mode 100644
index 0000000..4c1d193
--- /dev/null
+++ b/src/views/eam/ABC/modules/StreamModal.vue
@@ -0,0 +1,65 @@
+<template>
+  <j-modal
+    :title="title"
+    :width="1200"
+    :visible="visible"
+    :maskClosable="false"
+    switchFullscreen
+    :fullscreen="true"
+    @ok="handleOk"
+    :okButtonProps="{ class:{'jee-hidden': disableSubmit} }"
+    @cancel="handleCancel">
+    <stream-form ref="realForm" @ok="submitCallback" :disabled="disableSubmit"/>
+  </j-modal>
+</template>
+
+<script>
+
+  import StreamForm from './StreamForm'
+
+  export default {
+    name: 'StreamModal',
+    components: {
+      StreamForm
+    },
+    data() {
+      return {
+        title:'',
+        width:800,
+        visible: false,
+        disableSubmit: false
+      }
+    },
+    methods:{
+      add () {
+        this.visible=true
+        this.$nextTick(()=>{
+          this.$refs.realForm.add();
+        })
+      },
+      edit (record) {
+        this.visible=true
+        this.$nextTick(()=>{
+          this.$refs.realForm.edit(record);
+        })
+      },
+      close () {
+        this.$emit('close');
+        this.visible = false;
+      },
+      handleOk () {
+        this.$refs.realForm.handleOk();
+      },
+      submitCallback(){
+        this.$emit('ok');
+        this.visible = false;
+      },
+      handleCancel () {
+        this.close()
+      }
+    }
+  }
+</script>
+
+<style scoped>
+</style>
\ No newline at end of file

--
Gitblit v1.9.3