1、标准加工时间页面取消设备层面字段展示以及取消选择左侧设备树
2、加工数量管理页面新增添加表格记录时的设备选择功能
已修改9个文件
1086 ■■■■ 文件已修改
src/views/mdc/base/MdcStandardProcessTime.vue 770 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mdc/base/modules/mdcProcessQuantity/mdcProcessQuantityList.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mdc/base/modules/mdcProcessQuantity/mdcProcessQuantityModal.vue 216 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mdc/base/modules/mdcProcessQuantity/mdcProcessQuantityModalList.vue 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mdc/base/modules/mdcProcessQuantity/mdcProcessQuantityModelEdit.vue 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mdc/base/modules/mdcStandardProcessDuration/MdcStandardProcessDurationEdit.vue 28 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mdc/base/modules/mdcStandardProcessDuration/MdcStandardProcessDurationList.vue 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mdc/base/modules/mdcStandardProcessDuration/MdcStandardProcessDurationModal.vue 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/system/modules/SelectDeviceDrawer.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mdc/base/MdcStandardProcessTime.vue
@@ -1,139 +1,709 @@
<template>
  <div style="width: 100%; height: 100%;">
    <a-card :bordered="false">
      <a-row type="flex" :gutter="16">
        <a-col :md="5">
          <a-tabs :activeKey="activeKey"  @change="tabChange">
            <a-tab-pane key="1" tab="车间层级" force-render>
              <base-tree @getCurrSelected="changeSelectionNode"></base-tree>
            </a-tab-pane>
            <a-tab-pane v-if="isDepartType == 0" key="2" tab="部门层级">,
              <depart-tree  @getCurrSelectedDD="changeSelectionNodedd"></depart-tree>
            </a-tab-pane>
          </a-tabs>
        </a-col>
        <a-col :md="19">
          <mdc-standard-process-duration-list   ref="MdcStandardProcessDurationList" :nodePeople='selectPeople' :nodeTree = 'selectEquement' :Type="slectTypeTree"></mdc-standard-process-duration-list>
        </a-col>
      </a-row>
    </a-card>
  </div>
  <a-card :bordered="false" class="device_list">
    <!-- 查询区域 -->
    <div style="width: 100%; background-color: #fff" class="table-page-search-wrapper">
      <a-form layout="inline" @keyup.enter.native="searchQuery">
        <a-row :gutter="24" style="width: 100%;">
          <a-col :md="5" :sm="5">
            <a-form-item label="零件号">
              <a-input placeholder="输入零件号查询" v-model="queryParams.partsCode"></a-input>
            </a-form-item>
          </a-col>
          <a-col :md="5" :sm="5" :xs="5">
            <a-form-item label="程序号">
              <a-input placeholder="输入程序号查询" v-model="queryParams.sequenceNumber"></a-input>
            </a-form-item>
          </a-col>
          <a-col :md="2" :sm="2" :xs="2">
            <a-space>
              <a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
              <a-button type="primary" @click="searchReset" icon="reload">重置</a-button>
            </a-space>
          </a-col>
        </a-row>
      </a-form>
    </div>
    <!-- 操作按钮区域 -->
    <div class="table-operator" style="display: inline;">
      <a-button @click="handleAdd" type="primary" icon="plus">新增
      </a-button>
      <a-button type="primary" icon="download" @click="importTemplate('标准加工时间模板')">导入模板</a-button>
      <a-button type="primary" icon="download" @click="handleExportXls('标准加工时间')">导出</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>
      <a-button type="primary" icon="printer" v-print="'#DeviceList'" v-has="'standardProcessDuration:print'">打印
      </a-button>
      <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 id="DeviceList" style="flex: 1;overflow: hidden">
      <a-table ref="table" bordered size="middle" rowKey="id" :columns="columns"
               :scroll="{x:'max-content',y:465}" :dataSource="dataSource" :pagination="ipagination"
               :loading="loading"
               :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
               @change="handleTableChange">
        <span slot="action" slot-scope="text, record">
        <a @click="handleEdit(record)">编辑</a>
            <a-divider type="vertical"/>
          <a @click="handleDelete(record.id)">删除</a>
        </span>
        <!--字符串超长截取省略号显示-->
        <span slot="num" slot-scope="text" style="font-weight: bold">
          <j-ellipsis :value="text" :length="8"/>
        </span>
        <span slot="name" slot-scope="text" style="font-weight: bold">
          <j-ellipsis :value="text" :length="8"/>
        </span>
        <span slot="model" slot-scope="text" style="font-weight: bold">
          <j-ellipsis :value="text" :length="8"/>
        </span>
      </a-table>
    </div>
    <!-- table区域-end -->
    <!--<device-repair-model></device-repair-model>-->
    <mdc-standard-process-duration-modal ref="modalForm" @ok="modalFormOk"></mdc-standard-process-duration-modal>
    <mdc-standard-process-duration-edit ref="modalFormedit" @ok="modalFormOk"></mdc-standard-process-duration-edit>
  </a-card>
</template>
<script>
  import { putAction, getAction } from '@/api/manage'
  import { frozenBatch } from '@/api/api'
  import { JeecgListMixin } from '@/mixins/JeecgListMixin'
  import $ from 'jquery'
  import JDictSelectTag from '@/components/dict/JDictSelectTag'
  import {
    requestPut,
    deleteAction,
    downFile,
    getAction
  } from '@/api/manage'
  import MdcStandardProcessDurationModal from './modules/mdcStandardProcessDuration/MdcStandardProcessDurationModal'
  import MdcStandardProcessDurationEdit from './modules/mdcStandardProcessDuration/MdcStandardProcessDurationEdit'
  import '@/components/table2excel/table2excel'
  import {
    JeecgListMixin
  } from '@/mixins/JeecgListMixin'
  import JInput from '@/components/jeecg/JInput'
  import BaseTree from '../common/BaseTree'
  import MdcStandardProcessDurationList from './modules/mdcStandardProcessDuration/MdcStandardProcessDurationList'
  import JSuperQuery from '@/components/jeecg/JSuperQuery'
  import JThirdAppButton from '@/components/jeecgbiz/thirdApp/JThirdAppButton'
  import DepartTree from './modules/DepartList/DepartListTree/DepartTree'
  import {mapActions} from 'vuex'
  import JEllipsis from '@/components/jeecg/JEllipsis'
  import Tooltip from 'ant-design-vue/es/tooltip'
  import { ajaxGetDictItems, getDictItemsFromCache, duplicateCheck } from '@/api/api'
  export default {
    name: 'mdcStandardProcessDuration',
    name: 'MdcStandardProcessDurationList',
    mixins: [JeecgListMixin],
    components: {
      JThirdAppButton,
      Tooltip,
      MdcStandardProcessDurationModal,
      MdcStandardProcessDurationEdit,
      JDictSelectTag,
      JInput,
      BaseTree,
      JSuperQuery,
      DepartTree,
      MdcStandardProcessDurationList
      JEllipsis
    },
    props: { nodeTree: '', Type: '', nodePeople: '' },
    data() {
      return {
        activeKey: '1',
        description: '设备信息',
        selectEquementId: '',
        selectEquement: {},
        selectPeople:{},
        slectTypeTree:"",
        url: {
          equipmentStatistics: '/mdc/equipment/equipmentStatistics'
        typeTree: '',
        typeParent: 1,
        typeEquipment: 1,
        xianshi: '',
        readOnly: true,
        queryParam: {},
        queryParams: {},
        queryParamEquip: {},
        queryParamPeople: {},
        dataStartsoucre: [],
        scrollY: 465,
        /* 分页参数 */
        ipagination: {
          current: 1,
          pageSize: 30,
          pageSizeOptions: ['30', '50', '100'],
          showTotal: (total, range) => {
            return range[0] + '-' + range[1] + ' 共' + total + '条'
          },
          showQuickJumper: true,
          showSizeChanger: true,
          total: 0
        },
        isDepartType:'',
        columns: [
          {
            title: '零件号',
            align: 'center',
            dataIndex: 'partsCode',
            width: 300
          },
          {
            title: '批次号',
            align: 'center',
            dataIndex: 'batchCode',
            width: 300
          },
          {
            title: '程序号',
            align: 'center',
            dataIndex: 'sequenceNumber',
            width: 300
          },
          {
            title: '时长(分钟)',
            align: 'center',
            dataIndex: 'duration',
            width: 300
          },
          {
            title: '备注',
            align: 'center',
            dataIndex: 'remark',
            width: 420
          },
          {
            title: '操作',
            dataIndex: 'action',
            scopedSlots: { customRender: 'action' },
            align: 'center',
            fixed: 'right',
            width: 150
          }
        ],
        url: {
          list: '/mdc/mdcStandardProcessDuration/list',
          delete: '/mdc/mdcStandardProcessDuration/delete',
          deleteBatch: '/mdc/mdcStandardProcessDuration/deleteBatch',
          getEquipmentByPid: '/mdc/mdcequipment/getEquipmentByPid',
          exportXlsUrl: '/mdc/mdcStandardProcessDuration/exportXls',
          importExcelUrl: '/mdc/mdcStandardProcessDuration/importExcel'
        }
      }
    },
    created() {
      this.queryTreeData()
    watch: {
      Type(valmath) {
        this.dataList = []
        this.queryParams.typeTree = valmath
      },
      nodeTree(val) { //监听currSelected 变化,将变化后的数值传递给 getCurrSelected 事件
        if (JSON.stringify(val) != '{}') {
          if (val.equipmentId) {
            this.queryParamEquip.parentId = ''
            this.queryParams.equipmentId = val.equipmentId
            this.queryParamEquip.equipmentId = val.equipmentId
          } else {
            this.queryParamEquip.parentId = val.key
            this.queryParams.equipmentId = ''
          }
          this.searchQuery()
        }
      },
      nodePeople(val) {
        if (JSON.stringify(val) != '{}') {
          if (val.equipmentId) {
            this.queryParamEquip.parentId = ''
            this.queryParams.equipmentId = val.equipmentId
            this.queryParamEquip.equipmentId = val.equipmentId
          } else {
            this.queryParamPeople.parentId = val.key
            this.queryParams.equipmentId = ''
          }
          this.searchQuery()
        }
      }
    },
    computed: {
      importExcelUrl: function() {
        return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`
      }
    },
    methods: {
      ...mapActions(['QueryDepartTree']),
      queryTreeData() {
        this.QueryDepartTree().then(res => {
          if (res.success) {
            this.isDepartType = res.result[0].value
      importTemplate(fileName) {
        var a = document.createElement('a')
        a.href = '/static/标准加工时间.xls'
        a.download = '标准加工时间.xls'
        a.style.display = 'none'
        document.body.appendChild(a)
        a.click()
        a.remove()
      },
      searchReset() {
        if (this.queryParams.typeTree == '1') {
          this.typeTree = this.queryParams.typeTree
          this.typeParent = this.queryParams.parentId
          this.typeEquipment = this.queryParams.equipmentId
          this.queryParams = {}
          this.queryParam = {}
          this.dates = []
          this.queryParams.typeTree = this.typeTree
          this.queryParams.parentId = this.typeParent
          if (this.queryParams.parentId != '') {
            this.queryParams.equipmentId = ''
          } else {
            // this.$message.warn(res.message)
            this.$notification.warning({
              message:'消息',
              description:res.message
            });
            if (this.queryParams.equipmentId == this.queryParamEquip.equipmentId) {
              this.queryParams.equipmentId = this.typeEquipment
            } else {
              this.queryParams.equipmentId = this.queryParamEquip.equipmentId
            }
          }
        }).finally(() =>{
          this.ipagination.current = 1
          this.ResetloadData()
        } else {
          this.typeTree = this.queryParams.typeTree
          this.typeParent = this.queryParams.parentId
          // this.typeEquipment = this.queryParams.equipmentId
          this.queryParams = {}
          this.queryParam = {}
          this.dates = []
          this.queryParams.typeTree = this.typeTree
          this.queryParams.parentId = this.typeParent
          // this.queryParams.equipmentId =  this.typeEquipment
          this.ipagination.current = 1
          this.ResetloadData()
        }
      },
      ResetloadData() {
        if (!this.url.list) {
          this.$message.error('请设置url.list属性!')
          return
        }
        //加载数据 若传入参数1则加载第一页的内容
        var params = this.getQueryParams()//查询条件
        if (!params) {
          return false
        }
        params.typeTree = this.queryParams.typeTree
        params.parentId = this.queryParams.parentId
        params.equipmentId = this.queryParams.equipmentId
        this.loading = true
        getAction(this.url.list, params).then((res) => {
          if (res.success) {
            this.dataSource = res.result.records || res.result
            // this.initDeviceType(this.dataSource)
            //update-begin---author:zhangyafei    Date:20201118  for:适配不分页的数据列表------------
            // this.dataSource = res.result.records||res.result;
            if (res.result.total) {
              this.ipagination.total = res.result.total
            } else {
              this.ipagination.total = 0
            }
            //update-end---author:zhangyafei    Date:20201118  for:适配不分页的数据列表------------
          } else {
            // this.$message.warning(res.message)
            this.$notification.warning({
              message: '消息',
              description: res.message
            })
          }
        }).finally(() => {
          this.loading = false
        })
      },
      tabChange(val) {
        // console.log(val);
        this.activeKey = val
        this.slectTypeTree = val
      handleEdit: function(record) {
        this.$refs.modalFormedit.edit(record)
        this.$refs.modalFormedit.title = '编辑'
        this.$refs.modalFormedit.disableSubmit = false
      },
      // changeSelection(val) {
      //   this.selectEquementId = val
      //   this.$refs.efficiencyList.pQuery(val)
      //   this.$refs.efficiencyList.searchQuery()
      // },
      changeSelectionNode(val) {
        this.selectEquement = val
        this.slectTypeTree = "1"
      handleTableChange(pagination, filters, sorter) {
        this.dataSource = []
        //分页、排序、筛选变化时触发
        //TODO 筛选
        // console.log(pagination)
        if (Object.keys(sorter).length > 0) {
          this.isorter.column = sorter.field
          this.isorter.order = 'ascend' == sorter.order ? 'asc' : 'desc'
        }
        this.ipagination = pagination
        //获取查询条件
        let sqp = {}
        if (this.superQueryParams) {
          sqp['superQueryParams'] = encodeURI(this.superQueryParams)
          sqp['superQueryMatchType'] = this.superQueryMatchType
        }
        var param = Object.assign(sqp, this.queryParams, this.isorter, this.filters)
        param.pageNo = this.ipagination.current
        param.pageSize = this.ipagination.pageSize
        param.field = this.getQueryField()
        param.parentId = this.queryParams.parentId
        param.equipmentId = this.queryParams.equipmentId
        param.startTime = this.queryParam.startTime
        param.endTime = this.queryParam.endTime
        getAction(this.url.list, param).then((res) => {
          if (res.success) {
            this.dataSource = res.result.records || res.result
            if (res.result.total) {
              this.ipagination.total = res.result.total
            } else {
              this.ipagination.total = 0
            }
          } else {
            // this.$message.warning(res.message)
            this.$notification.warning({
              message: '消息',
              description: res.message
            })
          }
        }).finally(() => {
          this.loading = false
        })
      },
      changeSelectionNodedd(val) {
        this.selectPeople = val
        this.slectTypeTree = "2"
      }
    }
      searchQueryEdit() {
        if (this.queryParams.typeTree == '1') {
          this.queryParams.parentId = this.queryParamEquip.parentId
        } else {
          this.queryParams.parentId = this.queryParamPeople.parentId
          this.queryParams.equipmentIds = ''
        }
        this.dataSource = []
        //获取查询条件
        let sqp = {}
        if (this.superQueryParams) {
          sqp['superQueryParams'] = encodeURI(this.superQueryParams)
          sqp['superQueryMatchType'] = this.superQueryMatchType
        }
        var param = Object.assign(sqp, this.queryParams, this.isorter, this.filters)
        param.pageNo = this.ipagination.current
        param.pageSize = this.ipagination.pageSize
        param.field = this.getQueryField()
        param.parentId = this.queryParams.parentId
        param.equipmentId = this.queryParams.equipmentId
        param.startTime = this.queryParam.startTime
        param.endTime = this.queryParam.endTime
        getAction(this.url.list, param).then((res) => {
          if (res.success) {
            this.dataSource = res.result.records || res.result
            if (res.result.total) {
              this.ipagination.total = res.result.total
            } else {
              this.ipagination.total = 0
            }
          } else {
            // this.$message.warning(res.message)
            this.$notification.warning({
              message: '消息',
              description: res.message
            })
          }
        }).finally(() => {
          this.loading = false
        })
      },
      searchQuery() {
        if (this.queryParams.typeTree == '1') {
          this.queryParams.parentId = this.queryParamEquip.parentId
          // this.queryParams.equipmentId =  this.queryParamEquip.equipmentId
        } else {
          this.queryParams.parentId = this.queryParamPeople.parentId
          // this.queryParams.equipmentId = ""
        }
        this.dataSource = []
        //获取查询条件
        let sqp = {}
        if (this.superQueryParams) {
          sqp['superQueryParams'] = encodeURI(this.superQueryParams)
          sqp['superQueryMatchType'] = this.superQueryMatchType
        }
        var param = Object.assign(sqp, this.queryParams, this.isorter, this.filters)
        param.pageNo = 1
        param.pageSize = this.ipagination.pageSize
        param.field = this.getQueryField()
        param.parentId = this.queryParams.parentId
        param.equipmentId = this.queryParams.equipmentId
        param.startTime = this.queryParam.startTime
        param.endTime = this.queryParam.endTime
        // console.log(param);
        getAction(this.url.list, param).then((res) => {
          if (res.success) {
            this.dataSource = res.result.records || res.result
            if (res.result.total) {
              this.ipagination.total = res.result.total
            } else {
              this.ipagination.total = 0
            }
          } else {
            // this.$message.warning(res.message)
            this.$notification.warning({
              message: '消息',
              description: res.message
            })
          }
        }).finally(() => {
          this.loading = false
        })
      },
      loadData(arg) {
        if (!this.url.list) {
          this.$message.error('请设置url.list属性!')
          return
        }
        //加载数据 若传入参数1则加载第一页的内容
        if (arg === 1) {
          this.ipagination.current = 1
        }
        var params = this.getQueryParams()//查询条件
        if (!params) {
          return false
        }
        this.loading = true
        getAction(this.url.list, params).then((res) => {
          if (res.success) {
            this.dataSource = res.result.records || res.result
            // this.initDeviceType(this.dataSource)
            //update-begin---author:zhangyafei    Date:20201118  for:适配不分页的数据列表------------
            // this.dataSource = res.result.records||res.result;
            if (res.result.total) {
              this.ipagination.total = res.result.total
            } else {
              this.ipagination.total = 0
            }
            //update-end---author:zhangyafei    Date:20201118  for:适配不分页的数据列表------------
          } else {
            // this.$message.warning(res.message)
            this.$notification.warning({
              message: '消息',
              description: res.message
            })
          }
        }).finally(() => {
          this.loading = false
        })
      },
      modalFormOk(val) {
        // 新增/修改 成功时,重载列表
        this.searchQueryEdit()
        // this.$emit('openBasetree','')
        this.selectedRowKeys = []
      },
      handleDelete: function(id) {
        if (!this.url.delete) {
          this.$message.error('请设置url.delete属性!')
          return
        }
        var that = this
        deleteAction(that.url.delete, { id: id }).then((res) => {
          if (res.success) {
            //重新计算分页问题
            that.reCalculatePage(1)
            // that.$message.success(res.message);
            that.$notification.success({
              message: '消息',
              description: res.message
            })
            that.searchQuery()
          } else {
            // that.$message.warning(res.message);
            that.$notification.warning({
              message: '消息',
              description: res.message
            })
          }
        })
      },
      batchDel: function() {
        if (!this.url.deleteBatch) {
          this.$message.error('请设置url.deleteBatch属性!')
          return
        }
        if (this.selectedRowKeys.length <= 0) {
          // this.$message.warning('请选择一条记录!');
          this.$notification.warning({
            message: '消息',
            description: '请选择一条记录'
          })
          return
        } else {
          var ids = ''
          for (var a = 0; a < this.selectedRowKeys.length; a++) {
            ids += this.selectedRowKeys[a] + ','
          }
          var that = this
          this.$confirm({
            title: '确认删除',
            content: '是否删除选中数据?',
            onOk: function() {
              that.loading = true
              deleteAction(that.url.deleteBatch, { ids: ids }).then((res) => {
                if (res.success) {
                  //重新计算分页问题
                  that.reCalculatePage(that.selectedRowKeys.length)
                  // that.$message.success(res.message);
                  that.$notification.success({
                    message: '消息',
                    description: res.message
                  })
                  that.loadData()
                  that.onClearSelected()
                } else {
                  // that.$message.warning(res.message);
                  that.$notification.warning({
                    message: '消息',
                    description: res.message
                  })
                }
              }).finally(() => {
                that.loading = false
              })
            }
          })
        }
      },
      handleAdd() {
        this.$refs.modalForm.add(this.node)
        this.$refs.modalForm.title = '新增'
        this.$refs.modalForm.disableSubmit = false
      },
      handleAddXIU() {
        this.$refs.modalFormadd.add()
        this.$refs.modalFormadd.title = '新增'
        this.$refs.modalFormadd.disableSubmit = false
      },
      pQuery(parentId) {
        this.queryParam.parentId = parentId[0]
        if (this.selectedRowKeys.length >= 1) {
          this.selectedRowKeys.length = 0
        }
        this.loadData()
      },
      onSelectChange(selectedRowKeys) {
        this.selectedRowKeys = selectedRowKeys
      },
      initEquipment(id) {
        let _this = this
        getAction(this.url.getEquipmentByPid, { pid: id }).then((res) => {
          if (res.success) {
            if (res.result) {
              _this.$set(this.queryParams, 'equipmentName', res.result.equipmentName)
              _this.$set(this.queryParams, 'equipmentId', res.result.equipmentId)
              _this.equipment = res.result
              _this.searchQuery()
            } else {
              // _this.$message.warning('请配置设备!')
              _this.$notification.warning({
                message: '消息',
                description: '请联系管理员,开放设备权限!'
              })
            }
          }
        })
      },
      handleExportXls(fileName) {
        if (!fileName || typeof fileName != 'string') {
          fileName = '导出文件'
        }
        let param = this.getQueryParams()
        if (this.selectedRowKeys && this.selectedRowKeys.length > 0) {
          param['selections'] = this.selectedRowKeys.join(',')
        }
        param.pageSize = this.ipagination.pageSize
        param.field = this.getQueryField()
        param.parentId = this.queryParams.parentId
        param.equipmentId = this.queryParams.equipmentId
        param.startTime = this.queryParam.startTime
        param.endTime = this.queryParam.endTime
        console.log('导出参数', param)
        downFile(this.url.exportXlsUrl, param).then((data) => {
          if (!data) {
            this.$message.warning('文件下载失败')
            return
          }
          if (typeof window.navigator.msSaveBlob !== 'undefined') {
            window.navigator.msSaveBlob(new Blob([data], { type: 'application/vnd.ms-excel' }), fileName + '.xls')
          } else {
            let url = window.URL.createObjectURL(new Blob([data], { type: 'application/vnd.ms-excel' }))
            let link = document.createElement('a')
            link.style.display = 'none'
            link.href = url
            link.setAttribute('download', fileName + '.xls')
            document.body.appendChild(link)
            link.click()
            document.body.removeChild(link) //下载完成移除元素
            window.URL.revokeObjectURL(url) //释放掉blob对象
          }
        })
      },
      exportExcel() {
        $('#DeviceList').table2excel({
          exclude: '.noExl',
          name: 'Excel Document Name',
          filename: '扭矩配置',
          exclude_img: true,
          fileext: '.xls',
          exclude_links: true,
          exclude_inputs: true
        })
      },
      //
      // /**
      //  * 当浏览器可视窗口尺寸发生改变时触发
      //  */
      // handleWindowResize() {
      //   const boxHeight = +window.getComputedStyle(document.getElementById('DeviceList')).height.slice(0, -2)
      //   const tableHeadHeight = +window.getComputedStyle(document.querySelector('.ant-table-thead th')).height.slice(0, -2)
      //   this.scrollY = boxHeight - tableHeadHeight - 50
      // }
    },
    created() {
      this.queryParam.typeTree = '1'
    },
    // mounted() {
    //   window.addEventListener('resize', this.handleWindowResize)
    //   this.handleWindowResize()
    // },
    // beforeDestroy() {
    //   window.removeEventListener('resize', this.handleWindowResize)
    // }
  }
</script>
<style scoped>
<style lang="less" scoped>
  @import '~@assets/less/common.less';
  .equipMessage {
    width: 100%;
    height: 10%;
  .device_list {
    overflow: hidden;
    display: flex;
    flex-direction: column;
  }
  .equipMessage table {
    width: 60%;
    height: 100%;
    line-height: 50%;
  @media screen and (min-width: 1920px) {
    .device_list {
      height: 811px !important;
    }
  }
  .equipMessage table td {
    text-align: center;
  @media screen and (min-width: 1680px) and (max-width: 1920px) {
    .device_list {
      height: 811px !important;
    }
  }
  .equipMessage table td span {
    display: inline-block;
    width: 15px;
    height: 15px;
  @media screen and (min-width: 1400px) and (max-width: 1680px) {
    .device_list {
      height: 663px !important;
    }
  }
  .equipMessage table td .equipShutdown {
    background-color: #808080;
  @media screen and (min-width: 1280px) and (max-width: 1400px) {
    .device_list {
      height: 564px !important;
    }
  }
  .equipMessage table td .equipStandby {
    background-color: #ffbf37;
  @media screen and (max-width: 1280px) {
    .device_list {
      height: 564px !important;
    }
  }
  .equipMessage table td .equipRun {
    background-color: #19FE01;
  }
  .equipMessage table td .equipAlarm {
    background-color: #FD0008;
  }
</style>
</style>
src/views/mdc/base/modules/mdcProcessQuantity/mdcProcessQuantityList.vue
@@ -609,7 +609,7 @@
                  //重新计算分页问题
                  that.reCalculatePage(that.selectedRowKeys.length)
                  // that.$message.success(res.message);
                  that.$notification.warning({
                  that.$notification.success({
                    message:'消息',
                    description:res.message
                  });
src/views/mdc/base/modules/mdcProcessQuantity/mdcProcessQuantityModal.vue
@@ -7,36 +7,53 @@
          <a-col :span="12">
            <a-form-item label="标准加工时间" :labelCol="labelCol" :wrapperCol="wrapperCol">
              <a-input-search :readOnly="true" v-decorator="['duration', validatorRules.duration]"
                              @search="deviceSearch" enter-button/>
                              @search="deviceSearch1" enter-button placeholder="请选择标准加工时间"/>
            </a-form-item>
          </a-col>
          <a-col :span="12">
            <a-form-item label="设备组" :labelCol="labelCol" :wrapperCol="wrapperCol">
              <a-input-search :readOnly="true" v-decorator="['equipmentIds', validatorRules.equipmentIds]"
                              @search="deviceSearch2" enter-button placeholder="请选择设备"/>
            </a-form-item>
          </a-col>
        </a-row>
        <a-row :gutter="24">
          <a-col :span="12">
            <a-form-item label="零件号" :labelCol="labelCol" :wrapperCol="wrapperCol">
              <a-input :disabled="true" placeholder="请输入零件号"  v-decorator="['partsCode', validatorRules.partsCode]"></a-input>
              <a-input :disabled="true" placeholder="请输入零件号"
                       v-decorator="['partsCode', validatorRules.partsCode]"></a-input>
            </a-form-item>
          </a-col>
          <a-col :span="12">
            <a-form-item label="程序号" :labelCol="labelCol" :wrapperCol="wrapperCol">
              <a-input :disabled="true" placeholder="请输入程序号"
                       v-decorator="['sequenceNumber', validatorRules.sequenceNumber]"></a-input>
            </a-form-item>
          </a-col>
        </a-row>
        <!--<a-row :gutter="24">-->
        <!--<a-col :span="12">-->
        <!--<a-form-item  label="设备编号" :labelCol="labelCol" :wrapperCol="wrapperCol">-->
        <!--<a-input :disabled="true" placeholder="请输入设备编号"  v-decorator="['equipmentId', validatorRules.equipmentId]"></a-input>-->
        <!--</a-form-item>-->
        <!--</a-col>-->
        <!--<a-col :span="12">-->
        <!--<a-form-item label="设备名称" :labelCol="labelCol" :wrapperCol="wrapperCol">-->
        <!--<a-input :disabled="true" placeholder="请输入设备名称"  v-decorator="['equipmentName', validatorRules.equipmentName]"></a-input>-->
        <!--</a-form-item>-->
        <!--</a-col>-->
        <!--</a-row>-->
        <a-row :gutter="24">
          <a-col :span="12">
            <a-form-item  label="程序号" :labelCol="labelCol" :wrapperCol="wrapperCol">
              <a-input :disabled="true" placeholder="请输入程序号"  v-decorator="['sequenceNumber', validatorRules.sequenceNumber]"></a-input>
            </a-form-item>
          </a-col>
          <a-col :span="12">
            <a-form-item label="批次号" :labelCol="labelCol" :wrapperCol="wrapperCol">
              <a-input :disabled="true" placeholder="请输入批次号"  v-decorator="['batchCode', validatorRules.batchCode]"></a-input>
            </a-form-item>
          </a-col>
        </a-row>
        <a-row :gutter="24">
          <a-col :span="12">
            <a-form-item  label="设备编号" :labelCol="labelCol" :wrapperCol="wrapperCol">
              <a-input :disabled="true" placeholder="请输入设备编号"  v-decorator="['equipmentId', validatorRules.equipmentId]"></a-input>
              <a-input :disabled="true" placeholder="请输入批次号"
                       v-decorator="['batchCode', validatorRules.batchCode]"></a-input>
            </a-form-item>
          </a-col>
          <a-col :span="12">
            <a-form-item label="设备名称" :labelCol="labelCol" :wrapperCol="wrapperCol">
              <a-input :disabled="true" placeholder="请输入设备名称"  v-decorator="['equipmentName', validatorRules.equipmentName]"></a-input>
            <a-form-item label='加工数量' :labelCol="labelCol" :wrapperCol="wrapperCol">
              <a-input-number :min="0" placeholder="请输入加工数量"
                              v-decorator="['processQuantity', validatorRules.processQuantity]"></a-input-number>
            </a-form-item>
          </a-col>
        </a-row>
@@ -46,33 +63,32 @@
              <j-date date-format="YYYY-MM-DD" placeholder="请选择日期"
                      v-decorator="['efficientDate', validatorRules.efficientDate]"></j-date>
            </a-form-item>
          </a-col>
          <a-col :span="12">
            <a-form-item label='加工数量' :labelCol="labelCol" :wrapperCol="wrapperCol">
              <a-input-number :min="0" placeholder="请输入加工数量"  v-decorator="['processQuantity', validatorRules.processQuantity]"></a-input-number>
            </a-form-item>
          </a-col>
        </a-row>
        <a-row :gutter="24">
          <a-col :span="24">
          <a-form-item label="备注" :labelCol="labelColLong1" :wrapperCol="wrapperColLong1">
            <a-textarea :maxLength="20"  v-decorator="['remark', validatorRules.remark]" placeholder="请输入备注"  ></a-textarea>
          </a-form-item>
            <a-form-item label="备注" :labelCol="labelColLong1" :wrapperCol="wrapperColLong1">
              <a-textarea :maxLength="20" v-decorator="['remark', validatorRules.remark]"
                          placeholder="请输入备注"></a-textarea>
            </a-form-item>
          </a-col>
        </a-row>
      </a-form>
    </a-spin>
    <mdc-process-quantity-modal-list   ref="deviceRepairListModel" @sendSelectionRows="getDeviceRows"></mdc-process-quantity-modal-list>
    <select-device-drawer ref="selectDeviceDrawer" @selectFinished="selectOK" :title="'选择设备'"/>
    <mdc-process-quantity-modal-list ref="deviceRepairListModel"
                                     @sendSelectionRows="getDeviceRows"></mdc-process-quantity-modal-list>
  </a-modal>
</template>
<script>
  import moment from 'moment'
  import pick from 'lodash.pick'
  import SelectDeviceDrawer from '../../../../system/modules/SelectDeviceDrawer'
  import mdcProcessQuantityModalList from './mdcProcessQuantityModalList'
  // import JDate from './JDate'
  import {
    getAction,
    postAction,
@@ -84,19 +100,19 @@
  export default {
    name: 'mdcProcessQuantityModal',
    components: {mdcProcessQuantityModalList},
    components: { SelectDeviceDrawer, mdcProcessQuantityModalList },
    props: {},
    data() {
      return {
        mesag:21,
        readOnly:true,
        mesag: 21,
        readOnly: true,
        title: '',
        visible: false,
        show: false,
        model: {},
        checked: false,
        startData:"",
        endData:"",
        startData: '',
        endData: '',
        labelCol: {
          xs: {
            span: 24
@@ -148,21 +164,29 @@
        confirmLoading: false,
        form: this.$form.createForm(this),
        validatorRules: {
          duration:{
            rules:[
              {required:true,message:'请选择标准加工时间'}
          equipmentIds: {
            rules: [
              {
                required: true,
                message: '请选择设备'
              }
            ]
          },
          efficientDate:{
            rules:[
              {required:true,message:'请选择日期'}
          duration: {
            rules: [
              { required: true, message: '请选择标准加工时间' }
            ]
          },
          processQuantity:{
            rules:[
              {required:true,message:'请选择加工数量'}
          efficientDate: {
            rules: [
              { required: true, message: '请选择日期' }
            ]
          },
          processQuantity: {
            rules: [
              { required: true, message: '请选择加工数量' }
            ]
          }
        },
        url: {
          add: '/mdc/mdcProcessQuantity/add',
@@ -172,7 +196,7 @@
        disableSubmit: true,
        partCategoryCascade: [],
        cascadeDefaultValue: [],
        standardId:""
        standardId: ''
      }
    },
    created() {
@@ -194,25 +218,31 @@
      //   // this.endData = dateStrings[1];
      //   // console.log(this.startData,this.endData);
      // },
      onChangeEnd(dates, dateStrings){
        this.endTime = dateStrings[0];
      onChangeEnd(dates, dateStrings) {
        this.endTime = dateStrings[0]
      },
      getDeviceRows(val) {
          this.standardId = val[0].id
          this.form.setFieldsValue({
            equipmentId: val[0].equipmentId,
            equipmentName: val[0].equipmentName,
            duration: val[0].duration,
            partsCode: val[0].partsCode,
            batchCode: val[0].batchCode,
            sequenceNumber: val[0].sequenceNumber,
        this.standardId = val[0].id
        this.form.setFieldsValue({
          equipmentId: val[0].equipmentId,
          equipmentName: val[0].equipmentName,
          duration: val[0].duration,
          partsCode: val[0].partsCode,
          batchCode: val[0].batchCode,
          sequenceNumber: val[0].sequenceNumber
        })
        console.log(this.standardId)
      },
      deviceSearch() {
      deviceSearch1() {
        this.$refs.deviceRepairListModel.openPage()
        this.$refs.deviceRepairListModel.title = '选择设备'
        this.$refs.deviceRepairListModel.title = '选择标准加工时间'
        this.$refs.deviceRepairListModel.disableSubmit = false
      },
      deviceSearch2() {
        this.$refs.selectDeviceDrawer.visible = true
        this.$refs.selectDeviceDrawer.selectedRowKeys = []
        this.$refs.selectDeviceDrawer.selectedRows = []
        this.$refs.selectDeviceDrawer.checkedKeys = this.form.getFieldValue('equipmentIds') ? this.form.getFieldValue('equipmentIds').split(',') : []
      },
      //级联框onChange事件
      // onChange(value) {
@@ -244,7 +274,7 @@
        this.model = Object.assign({}, record)
        this.visible = true
        this.$nextTick(() => {
          this.form.setFieldsValue(pick(this.model, 'equipmentId', 'equipmentName', 'vacationDate', 'vacationType', 'notes',
          this.form.setFieldsValue(pick(this.model, 'equipmentId', 'equipmentName', 'vacationDate', 'vacationType', 'notes'
          ))
        })
      },
@@ -277,37 +307,37 @@
            //     // this.endTime = ''
            //     that.confirmLoading = false
            //   }else{
                let obj
                if (!this.model.id) {
                  formData.standardId = this.standardId
                  obj = postAction(this.url.add, formData)
                } else {
                  obj = requestPut(this.url.edit, formData, {
                    id: this.model.id
                  })
                }
                obj.then((res) => {
                  if (res.success) {
                    // that.$message.success("添加成功")
                    that.$notification.success({
                      message:'消息',
                      description:"添加成功"
                    });
                    // that.$message.success(res.message)
                    that.$emit('ok', res.result)
                  } else {
                    // that.$message.warning(res.message)
                    that.$notification.warning({
                      message:'消息',
                      description:res.message
                    });
                  }
                }).finally(() => {
                  that.confirmLoading = false
                  that.close()
            let obj
            if (!this.model.id) {
              formData.standardId = this.standardId
              obj = postAction(this.url.add, formData)
            } else {
              obj = requestPut(this.url.edit, formData, {
                id: this.model.id
              })
            }
            obj.then((res) => {
              if (res.success) {
                // that.$message.success("添加成功")
                that.$notification.success({
                  message: '消息',
                  description: '添加成功'
                })
                // that.$message.success(res.message)
                that.$emit('ok', res.result)
              } else {
                // that.$message.warning(res.message)
                that.$notification.warning({
                  message: '消息',
                  description: res.message
                })
              }
            // }
            }).finally(() => {
              that.confirmLoading = false
              that.close()
            })
          }
          // }
          // }
        })
@@ -348,6 +378,17 @@
      },
      checkboxChange(e) {
        this.checked = e.target.checked
      },
      /**
       * 选择已有设备后点击确定时触发
       * @param data 已选择的设备
       */
      selectOK(data) {
        console.log('data=', data)
        this.form.setFieldsValue({
          equipmentIds: data.join(',')
        })
      }
    }
  }
@@ -372,7 +413,8 @@
  .ant-tabs-content .ant-form-item {
    margin-bottom: 0px;
  }
  /deep/ .ant-input-number{
    width: 100%!important;
  /deep/ .ant-input-number {
    width: 100% !important;
  }
</style>
src/views/mdc/base/modules/mdcProcessQuantity/mdcProcessQuantityModalList.vue
@@ -43,14 +43,14 @@
            <!--</a-col>-->
            <a-col :md="7" :sm="7">
              <a-form-item label="统一编码">
                <a-input placeholder="请输入统一编码检索" v-model="queryParam.equipmentId"></a-input>
              <a-form-item label="零件号">
                <a-input placeholder="请输入零件号检索" v-model="queryParam.partsCode"></a-input>
              </a-form-item>
            </a-col>
            <a-col :md="7" :sm="7">
              <a-form-item label="设备名称">
                <a-input placeholder="请输入设备名称检索" v-model="queryParam.equipmentName"></a-input>
              <a-form-item label="程序号">
                <a-input placeholder="请输入程序号检索" v-model="queryParam.sequenceNumber"></a-input>
              </a-form-item>
            </a-col>
@@ -121,16 +121,7 @@
        visible: false,
        disableMixinCreated: true,
        queryParam: {},
        columns: [{
          title: '统一编码',
          align: 'center',
          dataIndex: 'equipmentId',
        },
          {
            title: '设备名称',
            align: 'center',
            dataIndex: 'equipmentName',
          },
        columns: [
          {
            title: '零件号',
            align: 'center',
src/views/mdc/base/modules/mdcProcessQuantity/mdcProcessQuantityModelEdit.vue
@@ -45,17 +45,17 @@
        <a-row :gutter="24">
          <a-col :span="12">
            <a-form-item label="日期" :labelCol="labelCol" :wrapperCol="wrapperCol">
              <j-date   date-format="YYYY-MM-DD" placeholder="请选择日期"
                      v-decorator="['efficientDate', validatorRules.efficientDate]"></j-date>
            </a-form-item>
          </a-col>
          <a-col :span="12">
            <a-form-item label='加工数量' :labelCol="labelCol" :wrapperCol="wrapperCol">
              <a-input-number :min="0"   placeholder="请输入加工数量"  v-decorator="['processQuantity', validatorRules.processQuantity]"></a-input-number>
            </a-form-item>
          </a-col>
          <a-col :span="12">
            <a-form-item label="日期" :labelCol="labelCol" :wrapperCol="wrapperCol">
              <j-date   date-format="YYYY-MM-DD" placeholder="请选择日期"
                        v-decorator="['efficientDate', validatorRules.efficientDate]"></j-date>
            </a-form-item>
          </a-col>
        </a-row>
        <a-row :gutter="24">
          <a-col :span="24">
src/views/mdc/base/modules/mdcStandardProcessDuration/MdcStandardProcessDurationEdit.vue
@@ -3,20 +3,20 @@
           :okButtonProps="{ props: {disabled: disableSubmit} }" @ok="handleOk" @cancel="handleCancel" cancelText="关闭">
    <a-spin :spinning="confirmLoading">
      <a-form :form="form">
        <a-row :gutter="24">
          <a-col :span="12">
            <a-form-item label="设备编号" :labelCol="labelCol" :wrapperCol="wrapperCol">
              <a-input :disabled="disableSubmit" :readOnly="readOnly" allow-clear placeholder="请输入设备编号"
                       v-decorator="['equipmentId',validatorRules.equipmentId]"/>
            </a-form-item>
          </a-col>
          <a-col :span="12">
            <a-form-item label="设备名称" :labelCol="labelCol" :wrapperCol="wrapperCol">
              <a-input :disabled="disableSubmit" :readOnly="readOnly" allow-clear placeholder="请输入设备名称"
                       v-decorator="['equipmentName',validatorRules.equipmentName]"/>
            </a-form-item>
          </a-col>
        </a-row>
        <!--<a-row :gutter="24">-->
          <!--<a-col :span="12">-->
            <!--<a-form-item label="设备编号" :labelCol="labelCol" :wrapperCol="wrapperCol">-->
              <!--<a-input :disabled="disableSubmit" :readOnly="readOnly" allow-clear placeholder="请输入设备编号"-->
                       <!--v-decorator="['equipmentId',validatorRules.equipmentId]"/>-->
            <!--</a-form-item>-->
          <!--</a-col>-->
          <!--<a-col :span="12">-->
            <!--<a-form-item label="设备名称" :labelCol="labelCol" :wrapperCol="wrapperCol">-->
              <!--<a-input :disabled="disableSubmit" :readOnly="readOnly" allow-clear placeholder="请输入设备名称"-->
                       <!--v-decorator="['equipmentName',validatorRules.equipmentName]"/>-->
            <!--</a-form-item>-->
          <!--</a-col>-->
        <!--</a-row>-->
        <a-row :gutter="24">
          <a-col :span="12">
            <a-form-item label="零件号" :labelCol="labelCol" :wrapperCol="wrapperCol">
src/views/mdc/base/modules/mdcStandardProcessDuration/MdcStandardProcessDurationList.vue
@@ -5,13 +5,13 @@
      <a-form layout="inline" @keyup.enter.native="searchQuery">
        <a-row :gutter="24" style="width: 100%;">
          <a-col :md="5" :sm="5">
            <a-form-item label="设备编号">
              <a-input placeholder="输入设备编号查询" v-model="queryParams.equipmentId"></a-input>
            <a-form-item label="零件号">
              <a-input placeholder="输入零件号查询" v-model="queryParams.partsCode"></a-input>
            </a-form-item>
          </a-col>
          <a-col :md="5" :sm="5" :xs="5">
            <a-form-item label="设备名称">
              <a-input placeholder="输入设备名称查询" v-model="queryParams.equipmentName"></a-input>
            <a-form-item label="程序号">
              <a-input placeholder="输入程序号查询" v-model="queryParams.sequenceNumber"></a-input>
            </a-form-item>
          </a-col>
          <a-col :md="2" :sm="2" :xs="2">
@@ -137,18 +137,6 @@
          total: 0
        },
        columns: [
          {
            title: '设备编号',
            align: 'center',
            dataIndex: 'equipmentId',
            width:200
          },
          {
            title: '设备名称',
            align: 'center',
            dataIndex: 'equipmentName',
            width:200
          },
          {
            title: '零件号',
            align: 'center',
src/views/mdc/base/modules/mdcStandardProcessDuration/MdcStandardProcessDurationModal.vue
@@ -3,14 +3,14 @@
           :okButtonProps="{ props: {disabled: disableSubmit} }" @ok="handleOk" @cancel="handleCancel" cancelText="关闭">
    <a-spin :spinning="confirmLoading">
      <a-form :form="form">
        <a-row :gutter="24">
          <a-col :span="24">
            <a-form-item label="设备组" :labelCol="labelColLong" :wrapperCol="wrapperColLong">
              <a-input-search :readOnly="true" v-decorator="['equipmentIds', validatorRules.equipmentIds]"
                              @search="deviceSearch" enter-button placeholder="请选择设备"/>
            </a-form-item>
          </a-col>
        </a-row>
        <!--<a-row :gutter="24">-->
          <!--<a-col :span="24">-->
            <!--<a-form-item label="设备组" :labelCol="labelColLong" :wrapperCol="wrapperColLong">-->
              <!--<a-input-search :readOnly="true" v-decorator="['equipmentIds', validatorRules.equipmentIds]"-->
                              <!--@search="deviceSearch" enter-button placeholder="请选择设备"/>-->
            <!--</a-form-item>-->
          <!--</a-col>-->
        <!--</a-row>-->
        <a-row :gutter="24">
          <a-col :span="12">
            <a-form-item label="零件号" :labelCol="labelCol" :wrapperCol="wrapperCol">
src/views/system/modules/SelectDeviceDrawer.vue
@@ -90,6 +90,7 @@
    data() {
      return {
        searchInput: '',
        searchValue: '',
        cardLoading: false,
        loading: false,
        treeDataSource: [],