已重命名4个文件
已添加4个文件
已修改30个文件
已删除1个文件
1238 ■■■■ 文件已修改
src/views/dashboard/Analysis.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/dashboard/dncIndex/DncManagerSignage.vue 176 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/dashboard/modules/DncManagerSignage.vue 119 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/dashboard/modules/EamManagerSignage.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/dashboard/modules/MdcManagerSignage.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/dashboard/modules/SyncProcessList.vue 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/dashboard/modules/TodoList.vue 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/dnc/base/modules/DeviceStructure/Document/HasReceivedDocumentAssignModal.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/dnc/base/modules/DeviceStructure/Document/HasReceivedDocumentTableList.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/dnc/base/modules/DeviceStructure/Document/HasSentDocumentTableList.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/dnc/base/modules/ProductStructure/Document/NcDocumentAssignModal.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/dnc/base/modules/ProductStructure/Document/NcDocumentSearchModal.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/dnc/base/modules/ProductStructure/Document/NcDocumentSearchNcModal.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/dnc/base/modules/ProductStructure/Document/NcDocumentTableList.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/dnc/base/modules/ProductStructure/Document/OtherDocumentTableList.vue 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/dnc/base/modules/ProductStructure/ProductStructureMainBottom.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/dnc/base/modules/ProductStructure/ProductStructureMainTop.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/dnc/base/modules/ProductStructure/ProductStructureTreeContextMenu.vue 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/dnc/common/DocumentBatchDeleteModal.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/dnc/common/DocumentInfo.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/dnc/common/ImportFileModal.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/dnc/common/TableContextMenu.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/base/RepairWarehouseList.vue 195 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/base/modules/RepairWarehouseForm.vue 132 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/base/modules/RepairWarehouseModal.vue 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/flowable/workflow/dispatchFile/DispatchFileHandle.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/flowable/workflow/dispatchFile/DispatchFileXq.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/flowable/workflow/repairOrder/RepairOrderApprovalModal.vue 416 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/flowable/workflow/standardizedProcess/StandardizedProcessHandle.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/tms/OutboundDetailList.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/tms/OutboundOrderList.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/tms/lossBound/modules/LossboundDetailModal.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/tms/modules/outBound/JSelectBorrowOutboundToolModal.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/tms/modules/outBound/JSelectSharpenOutboundToolModal.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/tms/modules/outBound/OutboundDetailModal.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/tms/modules/outBound/OutboundDetailSelectList.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/tms/modules/outBound/OutboundModal.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/tms/modules/outBound/OutboundOrderModal.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/tms/modules/outBound/OutboundOrderSelectList.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/dashboard/Analysis.vue
@@ -12,9 +12,9 @@
<script>
  import signageApi from '@/api/signage'
  import MdcManagerSignage from './mdcIndex/MdcManagerSignage.vue'
  import DncManagerSignage from './dncIndex/DncManagerSignage.vue'
  import EamManagerSignage from './eamIndex/EamManagerSignage.vue'
  import MdcManagerSignage from './modules/MdcManagerSignage.vue'
  import DncManagerSignage from './modules/DncManagerSignage.vue'
  import EamManagerSignage from './modules/EamManagerSignage.vue'
  export default {
    name: 'Analysis',
src/views/dashboard/dncIndex/DncManagerSignage.vue
ÎļþÒÑɾ³ý
src/views/dashboard/modules/DncManagerSignage.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,119 @@
<template>
  <div class="home-container">
    <a-card title="我的待办" class="left-container">
      <a slot="extra" href="#" @click="$router.push('/flowable/workflow/FlowTodo')">更多</a>
      <!-- åµŒå…¥todoList组件并设置默认分类 -->
      <todo-list
        ref="todoList"
        class="embedded-flow-todo"
        :defaultCategories="['drApproval','ggApproval','programConfirmApproval','ncFileSettingProcessApproval']"/>
    </a-card>
    <!-- å³ä¾§ä¸¤ä¸ªå°å¡ç‰‡ -->
    <div class="right-container">
      <a-card title="三位工艺生成产品结构树" class="right-top-container">
        <a slot="extra" href="#" @click="$router.push('/dnc/base/SyncProcessSpecificationInfoList')">更多</a>
        <syncProcessList
          ref="syncProcessList"/>
      </a-card>
      <!--<div class="card top-card">-->
      <!--<h2 class="card-title">三维工艺生成产品结构树</h2>-->
      <!--<h2 class="more-btns" @click="gotoSyncProcessList">更多</h2>-->
      <!--<div class="card-content">-->
      <!--<syncProcessList-->
      <!--ref="syncProcessList"/>-->
      <!--</div>-->
      <!--</div>-->
      <a-card title="派工任务领取">
      </a-card>
      <!--<div class="card bottom-card">-->
      <!--<h2 class="card-title">派工任务领取</h2>-->
      <!--<div class="card-content">-->
      <!--</div>-->
      <!--</div>-->
    </div>
  </div>
</template>
<script>
  import TodoList from '@views/dashboard/modules/TodoList.vue'
  import SyncProcessList from '@views/dashboard/modules/SyncProcessList.vue'
  export default {
    name: 'DncManagerSignage',
    components: {
      TodoList,
      SyncProcessList
    },
    data() {
      return {}
    },
    mounted() {
      this.$nextTick(() => {
        if (this.$refs.todoList) {
          this.$refs.todoList.loadData(1)
        }
      })
    },
    methods: {}
  }
</script>
<style scoped lang="less">
  @container-margin: 10px;
  .home-container {
    display: flex;
    height: 100vh;
    gap: @container-margin;
    /deep/ .ant-card {
      display: flex;
      flex-direction: column;
      & ::-webkit-scrollbar {
        width: 6px; /* æ»šåŠ¨æ¡å®½åº¦ */
      }
      .ant-card-body {
        flex: 1;
        overflow: auto;
      }
    }
    .left-container {
      width: 40%;
      height: 100%;
      /deep/ .ant-card-body {
        padding: 6px 24px 12px;
      }
    }
    .right-container {
      flex: 1;
      display: flex;
      flex-direction: column;
      gap: @container-margin;
      > div {
        flex: 1;
      }
    }
  }
  @media (max-width: 992px) {
    .home-container {
      flex-direction: column;
      > .left-container {
        width: 100%;
      }
    }
  }
</style>
src/views/dashboard/modules/EamManagerSignage.vue
ÎļþÃû´Ó src/views/dashboard/eamIndex/EamManagerSignage.vue ÐÞ¸Ä
@@ -53,7 +53,7 @@
</template>
<script>
  import TodoList from '../TodoList'
  import TodoList from './TodoList'
  import signageApi from '@/api/signage'
  export default {
src/views/dashboard/modules/MdcManagerSignage.vue
ÎļþÃû´Ó src/views/dashboard/mdcIndex/MdcManagerSignage.vue ÐÞ¸Ä
@@ -126,6 +126,7 @@
        this.getDoubleBarChartDataByApi(currentFactoryId)
      },
      // é”€æ¯å›¾è¡¨ç»„ä»¶
      destroyChartsInstances() {
        const charts = [
          this.runningStateChart,
src/views/dashboard/modules/SyncProcessList.vue
ÎļþÃû´Ó src/views/dashboard/SyncProcessList.vue ÐÞ¸Ä
@@ -1,5 +1,5 @@
<template>
  <div class="sync-process-container">
  <div>
    <a-spin :spinning="loading">
      <a-table
        :columns="columns"
@@ -25,7 +25,7 @@
<script>
import '@/assets/less/TableExpand.less'
import SyncProcessSpecificationInfoModal from '../dnc/base/modules/SyncProcessSpecificationInfo/SyncProcessSpecificationInfoModal.vue'
import SyncProcessSpecificationInfoModal from '../../dnc/base/modules/SyncProcessSpecificationInfo/SyncProcessSpecificationInfoModal.vue'
import { JeecgListMixin } from '@/mixins/JeecgListMixin'
import { getAction } from '@api/manage'
@@ -156,16 +156,6 @@
<style scoped>
@import '~@assets/less/common.less';
.sync-process-container {
  padding: 16px;
  background-color: #fff;
  border-radius: 8px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.09);
  height: 500px;
  display: flex;
  flex-direction: column;
}
.table-header {
  display: flex;
src/views/dashboard/modules/TodoList.vue
ÎļþÃû´Ó src/views/dashboard/TodoList.vue ÐÞ¸Ä
@@ -189,13 +189,6 @@
      GuideCardBatchHandle,
      AssignEquipmentFileStreamHandle
    },
    props: {
      // æ·»åŠ é»˜è®¤åˆ†ç±»å±žæ€§
      defaultCategories: {
        type: Array,
        default: () => []
      }
    },
    data() {
      return {
        todoList: [],
@@ -564,8 +557,13 @@
<style scoped lang="less">
  .list-container {
    height: 100%;
    /deep/ .ant-spin-nested-loading, /deep/ .ant-spin-container {
    /deep/ .ant-spin-nested-loading, /deep/ .ant-spin-container, /deep/ .ant-spin-spinning {
      height: 100%;
      max-height: 100%;
    }
    /deep/ .ant-list-item-meta-description {
      width: 98%;
    }
  }
</style>
src/views/dnc/base/modules/DeviceStructure/Document/HasReceivedDocumentAssignModal.vue
@@ -148,7 +148,7 @@
          },
          { title: '设备编号', dataIndex: 'docCode', align: 'center' },
          {
            title: '出库状态',
            title: '生命周期',
            dataIndex: 'pullStatus_dictText',
            key: 'pullStatus',
            align: 'center',
src/views/dnc/base/modules/DeviceStructure/Document/HasReceivedDocumentTableList.vue
@@ -60,7 +60,7 @@
            sorter: true
          },
          {
            title: '出库状态',
            title: '生命周期',
            dataIndex: 'pullStatus_dictText',
            key: 'pullStatus',
            align: 'center',
src/views/dnc/base/modules/DeviceStructure/Document/HasSentDocumentTableList.vue
@@ -56,7 +56,7 @@
            sorter: true
          },
          {
            title: '出库状态',
            title: '生命周期',
            dataIndex: 'pullStatus_dictText',
            key: 'pullStatus',
            align: 'center',
src/views/dnc/base/modules/ProductStructure/Document/NcDocumentAssignModal.vue
@@ -131,7 +131,7 @@
        },
        { title: '设备编号', dataIndex: 'docCode', align: 'center' },
        {
          title: '出库状态',
          title: '生命周期',
          dataIndex: 'pullStatus_dictText',
          key: 'pullStatus',
          align: 'center',
src/views/dnc/base/modules/ProductStructure/Document/NcDocumentSearchModal.vue
@@ -1,5 +1,5 @@
<!--
 Description: æ£€ç´¢ç”µå­æ ·æ¿List
 Description: æ£€ç´¢ç”µå­æ–‡æ¡£List
 Author: ä½œè€… liuyh
 Date:   2025-02-27
-->
@@ -167,7 +167,7 @@
          sorter: true
        },
        {
          title: '出库状态',
          title: '生命周期',
          dataIndex: 'pullStatus_dictText',
          key: 'pullStatus',
          align: 'center',
src/views/dnc/base/modules/ProductStructure/Document/NcDocumentSearchNcModal.vue
@@ -1,5 +1,5 @@
<!--
 Description: æ£€ç´¢ç”µå­æ ·æ¿List
 Description: æ£€ç´¢ç”µå­æ–‡æ¡£List
 Author: ä½œè€… liuyh
 Date:   2025-02-27
-->
@@ -196,7 +196,7 @@
            sorter: true
          },
          {
            title: '出库状态',
            title: '生命周期',
            dataIndex: 'pullStatus_dictText',
            key: 'pullStatus',
            align: 'center',
src/views/dnc/base/modules/ProductStructure/Document/NcDocumentTableList.vue
@@ -58,7 +58,7 @@
            sorter: true
          },
          {
            title: '出库状态',
            title: '生命周期',
            dataIndex: 'pullStatus_dictText',
            key: 'pullStatus',
            align: 'center',
src/views/dnc/base/modules/ProductStructure/Document/OtherDocumentTableList.vue
@@ -9,6 +9,9 @@
    </a-table>
    <DocumentModal ref="modalForm" @ok="modalFormOk"/>
    <NcDocumentAssignModal :size="size" ref="documentAssignModalRef"
                           :currentDocumentInfo="currentRightClickedDocumentInfo"/>
  </div>
</template>
@@ -16,10 +19,11 @@
  import { getAction } from '@/api/manage'
  import { JeecgListMixin } from '@/mixins/JeecgListMixin'
  import DocumentModal from '../../../../common/DocumentModal'
  import NcDocumentAssignModal from '@views/dnc/base/modules/ProductStructure/Document/NcDocumentAssignModal.vue'
  export default {
    name: 'OtherDocumentTableList',
    components: { DocumentModal },
    components: { NcDocumentAssignModal, DocumentModal },
    mixins: [JeecgListMixin],
    props: {
      currentTreeNodeInfo: {
@@ -54,7 +58,7 @@
          },
          { title: '设备编号', dataIndex: 'docCode', align: 'center' },
          {
            title: '出库状态',
            title: '生命周期',
            dataIndex: 'pullStatus_dictText',
            key: 'pullStatus',
            align: 'center',
@@ -86,6 +90,7 @@
          }
        ],
        dataSource: [],
        currentRightClickedDocumentInfo: {},
        currentClickedDocumentInfo: {},
        url: {
          list: '/nc/doc/find/page'
@@ -95,7 +100,7 @@
    watch: {
      currentTreeNodeInfo: {
        handler(value) {
          this.currentClickedDocumentInfo = {}
          this.currentClickedDocumentInfo = this.currentRightClickedDocumentInfo = {}
        },
        immediate: true
      }
@@ -143,6 +148,7 @@
          on: {
            contextmenu: event => {
              event.preventDefault()
              this.currentRightClickedDocumentInfo = Object.assign({ param: 'OTHER' }, record)
              this.$emit('handleTableContextMenuOpen', { ...record, param: 'OTHER' })
            },
            click: () => {
@@ -181,6 +187,12 @@
        this.$refs.modalForm.title = modalTitle
      },
      handleDocumentAssign(record, modalTitle) {
        if (!this.$refs.documentAssignModalRef) return
        this.$refs.documentAssignModalRef.title = modalTitle
        this.$refs.documentAssignModalRef.visible = true
      },
      handleDelete() {
        // æ­¤å¤„函数为屏蔽mixins中的同名函数,通用函数写在父级中
      },
src/views/dnc/base/modules/ProductStructure/ProductStructureMainBottom.vue
@@ -47,7 +47,7 @@
                                    :size="containerSize"/>
        </a-tab-pane>
        <a-tab-pane :key="4" tab="使用设备" v-if="currentLevelInfo.classificationId_dictText==='nc'">
        <a-tab-pane :key="4" tab="使用设备">
          <UseDocumentEquipmentTableList ref="useDocumentEquipmentTableRef" :currentDocumentInfo="currentLevelInfo"
                                         :size="containerSize"/>
        </a-tab-pane>
src/views/dnc/base/modules/ProductStructure/ProductStructureMainTop.vue
@@ -16,7 +16,7 @@
        </div>
      </a-tab-pane>
      <a-tab-pane :key="2" tab="其他文档">
      <a-tab-pane :key="2" tab="电子文档">
        <OtherDocumentTableList ref="otherDocumentTableListRef" :currentTreeNodeInfo="currentTreeNodeInfo"
                                @handleTableContextMenuOpen="handleTableContextMenuOpen" :size="tableContainerSize"/>
      </a-tab-pane>
src/views/dnc/base/modules/ProductStructure/ProductStructureTreeContextMenu.vue
@@ -36,8 +36,8 @@
            { label: '添加部件', code: 'product_add_child', icon: 'plus', isCommonMethod: false },
            { label: '编辑产品信息', code: 'product_edit', icon: 'edit', isCommonMethod: false },
            // {  label: '导出文档', code: 'product_export', icon: 'export', isCommonMethod: true },
            { label: '导入其他文档', code: 'product_other_import', icon: 'import', isCommonMethod: true },
            { label: '检索电子样板', code: 'product_search', icon: 'search', isCommonMethod: true },
            { label: '导入电子文档', code: 'product_other_import', icon: 'import', isCommonMethod: true },
            { label: '检索电子文档', code: 'product_search', icon: 'search', isCommonMethod: true },
            { label: '检索NC文件', code: 'product_search_nc', icon: 'search', isCommonMethod: true },
            { label: '删除', code: 'product_delete', icon: 'delete', isCommonMethod: true },
            { label: '权限配置', code: 'public_assign_permission', icon: 'idcard', isCommonMethod: true }
@@ -49,8 +49,8 @@
            { label: '创建工序', code: 'component_add_relative', icon: 'plus', isCommonMethod: false },
            { label: '编辑部件信息', code: 'component_edit', icon: 'edit', isCommonMethod: false },
            // {  label: '导出文档', code: 'component_export', icon: 'export', isCommonMethod: true },
            { label: '导入其他文档', code: 'component_other_import', icon: 'import', isCommonMethod: true },
            { label: '检索电子样板', code: 'component_search', icon: 'search', isCommonMethod: true },
            { label: '导入电子文档', code: 'component_other_import', icon: 'import', isCommonMethod: true },
            { label: '检索电子文档', code: 'component_search', icon: 'search', isCommonMethod: true },
            { label: '检索NC文件', code: 'component_search_nc', icon: 'search', isCommonMethod: true },
            { label: '引用部件', code: 'component_borrow', icon: 'plus', isCommonMethod: false },
            { label: '删除', code: 'component_delete', icon: 'delete', isCommonMethod: true },
@@ -63,8 +63,8 @@
            // { label: '创建工序', code: 'parts_add_relative', icon: 'plus', isCommonMethod: false },
            { label: '编辑零件信息', code: 'parts_edit', icon: 'edit', isCommonMethod: false },
            // {  label: '导出文档', code: 'parts_export', icon: 'export', isCommonMethod: true },
            { label: '导入其他文档', code: 'parts_other_import', icon: 'import', isCommonMethod: true },
            { label: '检索电子样板', code: 'parts_search', icon: 'search', isCommonMethod: true },
            { label: '导入电子文档', code: 'parts_other_import', icon: 'import', isCommonMethod: true },
            { label: '检索电子文档', code: 'parts_search', icon: 'search', isCommonMethod: true },
            { label: '检索NC文件', code: 'parts_search_nc', icon: 'search', isCommonMethod: true },
            { label: '删除', code: 'parts_delete', icon: 'delete', isCommonMethod: true },
            { label: '权限配置', code: 'public_assign_permission', icon: 'idcard', isCommonMethod: true }
@@ -74,8 +74,8 @@
            { label: '创建工艺规程版本', code: 'version_add', icon: 'plus', isCommonMethod: false },
            { label: '创建工序', code: 'version_add_child', icon: 'plus', isCommonMethod: false },
            { label: '编辑工艺规程版本信息', code: 'version_edit', icon: 'edit', isCommonMethod: false },
            { label: '导入其他文档', code: 'version_other_import', icon: 'import', isCommonMethod: true },
            { label: '检索电子样板', code: 'version_search', icon: 'search', isCommonMethod: true },
            { label: '导入电子文档', code: 'version_other_import', icon: 'import', isCommonMethod: true },
            { label: '检索电子文档', code: 'version_search', icon: 'search', isCommonMethod: true },
            { label: '检索NC文件', code: 'version_search_nc', icon: 'search', isCommonMethod: true },
            { label: '删除', code: 'version_delete', icon: 'delete', isCommonMethod: true },
            { label: '权限配置', code: 'public_assign_permission', icon: 'idcard', isCommonMethod: true }
@@ -89,8 +89,8 @@
            { label: '删除', code: 'process_delete', icon: 'delete', isCommonMethod: true },
            // {  label: '导出NC程序', code: 'process_export', icon: 'export', isCommonMethod: true },
            { label: '导入NC程序', code: 'process_nc_import', icon: 'import', isCommonMethod: true },
            { label: '导入其他文档', code: 'process_other_import', icon: 'import', isCommonMethod: true },
            { label: '检索电子样板', code: 'process_search', icon: 'search', isCommonMethod: true },
            { label: '导入电子文档', code: 'process_other_import', icon: 'import', isCommonMethod: true },
            { label: '检索电子文档', code: 'process_search', icon: 'search', isCommonMethod: true },
            { label: '检索NC文件', code: 'process_search_nc', icon: 'search', isCommonMethod: true },
            { label: '权限配置', code: 'public_assign_permission', icon: 'idcard', isCommonMethod: true },
            { label: '发送nc程序至三维工艺', code: 'process_send_nc_to_plm', icon: 'import', isCommonMethod: true }
@@ -103,8 +103,8 @@
            { label: '删除', code: 'processStep_delete', icon: 'delete', isCommonMethod: true },
            // {  label: '导出NC程序', code: 'processStep_export', icon: 'import', isCommonMethod: true },
            { label: '导入NC程序', code: 'processStep_nc_import', icon: 'import', isCommonMethod: true },
            { label: '导入其他文档', code: 'processStep_other_import', icon: 'import', isCommonMethod: true },
            { label: '检索电子样板', code: 'processStep_search', icon: 'search', isCommonMethod: true },
            { label: '导入电子文档', code: 'processStep_other_import', icon: 'import', isCommonMethod: true },
            { label: '检索电子文档', code: 'processStep_search', icon: 'search', isCommonMethod: true },
            { label: '检索NC文件', code: 'processStep_search_nc', icon: 'search', isCommonMethod: true },
            { label: '权限配置', code: 'public_assign_permission', icon: 'idcard', isCommonMethod: true },
            { label: '发送nc程序至三维工艺', code: 'processStep_send_nc_to_plm', icon: 'import', isCommonMethod: true }
src/views/dnc/common/DocumentBatchDeleteModal.vue
@@ -82,7 +82,7 @@
        },
        { title: '设备编号', dataIndex: 'docCode', align: 'center' },
        {
          title: '出库状态',
          title: '生命周期',
          dataIndex: 'pullStatus_dictText',
          key: 'pullStatus',
          align: 'center',
src/views/dnc/common/DocumentInfo.vue
@@ -5,7 +5,7 @@
    <a-descriptions-item label="文档后缀">{{currentLevelDetails.docSuffix}}</a-descriptions-item>
    <a-descriptions-item label="文档状态">{{currentLevelDetails.docDispatchStatus_dictText}}</a-descriptions-item>
    <a-descriptions-item label="系统指定版本">{{currentLevelDetails.publishVersion}}</a-descriptions-item>
    <a-descriptions-item label="出库状态">{{currentLevelDetails.pullStatus_dictText}}</a-descriptions-item>
    <a-descriptions-item label="生命周期">{{currentLevelDetails.pullStatus_dictText}}</a-descriptions-item>
    <a-descriptions-item label="出库人">{{currentLevelDetails.pullUser_dictText}}</a-descriptions-item>
    <a-descriptions-item label="创建人">{{currentLevelDetails.createBy_dictText}}</a-descriptions-item>
    <a-descriptions-item label="创建时间">{{currentLevelDetails.createTime}}</a-descriptions-item>
src/views/dnc/common/ImportFileModal.vue
@@ -78,7 +78,7 @@
    },
    /**
     * ç‚¹å‡»å¯¼å…¥å…¶ä»–文档时触发
     * ç‚¹å‡»å¯¼å…¥ç”µå­æ–‡æ¡£æ—¶è§¦å‘
     * @param treeNodeInfo ç‚¹å‡»æ ‘节点右键菜单导入程序时传入树节点信息
     * @param tableRowInfo å³é”®è¡¨æ ¼è¡Œæ—¶ä¼ å…¥è¡Œä¿¡æ¯
     * @param modalTitle å¼¹çª—标题
src/views/dnc/common/TableContextMenu.vue
@@ -73,6 +73,7 @@
          //其它文档
          OTHER: [
            { label: '编辑文档信息', code: 'document_edit', subMenu: [], icon: 'edit', isCommonMethod: false },
            { label: '指派到设备', code: 'document_assign', subMenu: [], icon: 'cluster', isCommonMethod: false },
            { label: '导入文档', code: 'document_other_import', subMenu: [], icon: 'import', isCommonMethod: true },
            { label: '下载', code: 'document_download', subMenu: [], icon: 'download', isCommonMethod: true },
            { label: '删除', code: 'document_delete', subMenu: [], icon: 'delete', isCommonMethod: true },
src/views/eam/base/RepairWarehouseList.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,195 @@
<template>
  <a-card :bordered="false">
    <!-- æŸ¥è¯¢åŒºåŸŸ -->
    <div class="table-page-search-wrapper">
      <a-form layout="inline" @keyup.enter.native="searchQuery">
        <a-row :gutter="24">
          <a-col :xl="6" :lg="7" :md="8" :sm="24">
            <a-form-item label="故障类型">
              <j-dict-select-tag dict-code="repair_warehouse_fault_type" v-model="queryParam.faultType"
                                 placeholder="请选择故障类型"/>
            </a-form-item>
          </a-col>
          <a-col :xl="6" :lg="7" :md="8" :sm="24">
            <a-form-item label="故障部位">
              <a-input placeholder="请输入故障部位" v-model="queryParam.faultPart"></a-input>
            </a-form-item>
          </a-col>
          <template v-if="toggleSearchStatus">
            <a-col :xl="6" :lg="7" :md="8" :sm="24">
              <a-form-item label="故障子部位">
                <a-input placeholder="请输入故障子部位" v-model="queryParam.faultChildPart"></a-input>
              </a-form-item>
            </a-col>
            <a-col :xl="6" :lg="7" :md="8" :sm="24">
              <a-form-item label="维修描述">
                <a-input placeholder="请输入维修描述" v-model="queryParam.repairDescription"></a-input>
              </a-form-item>
            </a-col>
          </template>
          <a-col :xl="6" :lg="7" :md="8" :sm="24">
            <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
              <a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
              <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
              <a @click="handleToggleSearch" style="margin-left: 8px">
                {{ toggleSearchStatus ? '收起' : '展开' }}
                <a-icon :type="toggleSearchStatus ? 'up' : 'down'"/>
              </a>
            </span>
          </a-col>
        </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('维修知识库')">导出</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 style="height: auto">
      <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"
        :scroll="{x:true}"
        bordered
        rowKey="id"
        :columns="columns"
        :dataSource="dataSource"
        :pagination="ipagination"
        :loading="loading"
        :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
        class="j-table-force-nowrap"
        @change="handleTableChange">
        <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 @click="handleDetail(record)">详情</a>
              </a-menu-item>
              <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>
    <repair-warehouse-modal ref="modalForm" @ok="modalFormOk"></repair-warehouse-modal>
  </a-card>
</template>
<script>
  import '@/assets/less/TableExpand.less'
  import { mixinDevice } from '@/utils/mixin'
  import { JeecgListMixin } from '@/mixins/JeecgListMixin'
  import RepairWarehouseModal from './modules/RepairWarehouseModal'
  export default {
    name: 'RepairWarehouseList',
    mixins:[JeecgListMixin, mixinDevice],
    components: {
      RepairWarehouseModal
    },
    data () {
      return {
        description: 'eam_repair_warehouse管理页面',
        // è¡¨å¤´
        columns: [
          {
            title: '#',
            dataIndex: '',
            key:'rowIndex',
            width:60,
            align:"center",
            customRender:function (t,r,index) {
              return parseInt(index)+1;
            }
          },
          {
            title:'故障类型',
            align:"center",
            dataIndex: 'faultType_dictText'
          },
          {
            title:'故障部位',
            align:"center",
            dataIndex: 'faultPart'
          },
          {
            title:'故障子部位',
            align:"center",
            dataIndex: 'faultChildPart'
          },
          {
            title:'维修描述',
            align:"center",
            dataIndex: 'repairDescription'
          },
          {
            title: '操作',
            dataIndex: 'action',
            align:"center",
            fixed:"right",
            width:147,
            scopedSlots: { customRender: 'action' }
          }
        ],
        url: {
          list: "/repairWarehouse/repairWarehouse/list",
          delete: "/repairWarehouse/repairWarehouse/delete",
          deleteBatch: "/repairWarehouse/repairWarehouse/deleteBatch",
          exportXlsUrl: "/repairWarehouse/repairWarehouse/exportXls",
        },
        dictOptions:{},
        superFieldList:[],
      }
    },
    created() {
    this.getSuperFieldList();
    },
    computed: {
      importExcelUrl: function(){
        return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
      },
    },
    methods: {
      initDictConfig(){
      },
      getSuperFieldList(){
        let fieldList=[];
        fieldList.push({type:'string',value:'faultType',text:'故障类型',dictCode:''})
        fieldList.push({type:'string',value:'faultPart',text:'故障部位',dictCode:''})
        fieldList.push({type:'string',value:'faultChildPart',text:'故障子部位',dictCode:''})
        fieldList.push({type:'string',value:'repairDescription',text:'维修描述',dictCode:''})
        this.superFieldList = fieldList
      }
    }
  }
</script>
<style scoped>
  @import '~@assets/less/common.less';
</style>
src/views/eam/base/modules/RepairWarehouseForm.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,132 @@
<template>
  <a-spin :spinning="confirmLoading">
    <j-form-container :disabled="formDisabled">
      <a-form-model ref="form" :model="model" :rules="validatorRules" slot="detail">
        <a-row>
          <a-col :span="24">
            <a-form-model-item label="故障类型" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="faultType">
              <j-dict-select-tag dict-code="repair_warehouse_fault_type    " v-model="model.faultType"
                                 placeholder="请选择故障类型"/>
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="故障部位" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="faultPart">
              <a-input v-model="model.faultPart" placeholder="请输入故障部位"  ></a-input>
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="故障子部位" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="faultChildPart">
              <a-input v-model="model.faultChildPart" placeholder="请输入故障子部位"  ></a-input>
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="维修描述" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="repairDescription">
              <a-input v-model="model.repairDescription" placeholder="请输入维修描述"  ></a-input>
            </a-form-model-item>
          </a-col>
        </a-row>
      </a-form-model>
    </j-form-container>
  </a-spin>
</template>
<script>
  import { httpAction, getAction } from '@/api/manage'
  import { validateDuplicateValue } from '@/utils/util'
  export default {
    name: 'RepairWarehouseForm',
    components: {
    },
    props: {
      //表单禁用
      disabled: {
        type: Boolean,
        default: false,
        required: false
      }
    },
    data () {
      return {
        model:{
         },
        labelCol: {
          xs: { span: 24 },
          sm: { span: 5 },
        },
        wrapperCol: {
          xs: { span: 24 },
          sm: { span: 16 },
        },
        confirmLoading: false,
        validatorRules: {
           faultType: [
              { required: true, message: '请输入故障类型!'},
           ],
           faultPart: [
              { required: true, message: '请输入故障部位!'},
           ],
           faultChildPart: [
              { required: true, message: '请输入故障子部位!'},
           ],
           repairDescription: [
              { required: true, message: '请输入维修描述!'},
           ],
        },
        url: {
          add: "/repairWarehouse/repairWarehouse/add",
          edit: "/repairWarehouse/repairWarehouse/edit",
          queryById: "/repairWarehouse/repairWarehouse/queryById"
        }
      }
    },
    computed: {
      formDisabled(){
        return this.disabled
      },
    },
    created () {
       //备份model原始值
      this.modelDefault = JSON.parse(JSON.stringify(this.model));
    },
    methods: {
      add () {
        this.edit(this.modelDefault);
      },
      edit (record) {
        this.model = Object.assign({}, record);
        this.visible = true;
      },
      submitForm () {
        const that = this;
        // è§¦å‘表单验证
        this.$refs.form.validate(valid => {
          if (valid) {
            that.confirmLoading = true;
            let httpurl = '';
            let method = '';
            if(!this.model.id){
              httpurl+=this.url.add;
              method = 'post';
            }else{
              httpurl+=this.url.edit;
               method = 'put';
            }
            httpAction(httpurl,this.model,method).then((res)=>{
              if(res.success){
                that.$message.success(res.message);
                that.$emit('ok');
              }else{
                that.$message.warning(res.message);
              }
            }).finally(() => {
              that.confirmLoading = false;
            })
          }
        })
      },
    }
  }
</script>
src/views/eam/base/modules/RepairWarehouseModal.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,60 @@
<template>
  <j-modal
    :title="title"
    :width="width"
    :visible="visible"
    switchFullscreen
    @ok="handleOk"
    :okButtonProps="{ class:{'jee-hidden': disableSubmit} }"
    @cancel="handleCancel"
    cancelText="关闭">
    <repair-warehouse-form ref="realForm" @ok="submitCallback" :disabled="disableSubmit"></repair-warehouse-form>
  </j-modal>
</template>
<script>
  import RepairWarehouseForm from './RepairWarehouseForm'
  export default {
    name: 'RepairWarehouseModal',
    components: {
      RepairWarehouseForm
    },
    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.submitForm();
      },
      submitCallback(){
        this.$emit('ok');
        this.visible = false;
      },
      handleCancel () {
        this.close()
      }
    }
  }
</script>
src/views/flowable/workflow/dispatchFile/DispatchFileHandle.vue
@@ -64,7 +64,7 @@
                  </a-row>
                  <a-row>
                    <a-col :span='span'>
                      <a-form-model-item label='出库状态' :labelCol='labelCol' :wrapperCol='wrapperCol' prop='pullStatus_dictText'>
                      <a-form-model-item label='生命周期' :labelCol='labelCol' :wrapperCol='wrapperCol' prop='pullStatus_dictText'>
                        <a-input :disabled='coldisabled' v-model='tableRowRecord.pullStatus_dictText'></a-input>
                      </a-form-model-item>
                    </a-col>
src/views/flowable/workflow/dispatchFile/DispatchFileXq.vue
@@ -64,7 +64,7 @@
                  </a-row>
                  <a-row>
                    <a-col :span='span'>
                      <a-form-model-item label='出库状态' :labelCol='labelCol' :wrapperCol='wrapperCol' prop='pullStatus_dictText'>
                      <a-form-model-item label='生命周期' :labelCol='labelCol' :wrapperCol='wrapperCol' prop='pullStatus_dictText'>
                        <a-input :disabled='coldisabled' v-model='tableRowRecord.pullStatus_dictText'></a-input>
                      </a-form-model-item>
                    </a-col>
src/views/flowable/workflow/repairOrder/RepairOrderApprovalModal.vue
@@ -81,22 +81,69 @@
            <div v-if="underInternalRepair && tableRowRecord.repairConfirm === '1'">
              <a-divider orientation="center" style="font-size: large;font-style: italic;color: #66aeed;">维修结果</a-divider>
              <a-row>
                <a-col :span="twoColSpan*2">
                  <a-form-model-item label="故障原因" prop="faultReason" :labelCol="labelColLong" :wrapperCol="wrapperColLong">
                    <a-input :readOnly="disableSubmit||tableRowRecord.repairStatus!=='UNDER_INTERNAL_REPAIR'"
                             v-model="tableRowRecord.faultReason" rows="4"
                             placeholder="请输入故障原因"/>
                <a-col :span="twoColSpan">
                  <a-form-model-item label="故障类型" prop="faultType" :labelCol="labelCol" :wrapperCol="wrapperCol">
                    <j-dict-select-tag :disabled="disableSubmit||tableRowRecord.repairStatus!=='UNDER_INTERNAL_REPAIR'"
                             v-model="tableRowRecord.faultType" rows="4" dictCode="repair_warehouse_fault_type"
                             placeholder="请选择故障类型"/>
                  </a-form-model-item>
                </a-col>
                <a-col :span="twoColSpan">
                  <a-form-model-item label="故障部位" prop="faultPart" :labelCol="labelCol" :wrapperCol="wrapperCol">
                    <a-auto-complete
                      v-model="tableRowRecord.faultPart"
                      :data-source="faultPartDataList"
                      :disabled="disableSubmit||tableRowRecord.repairStatus!=='UNDER_INTERNAL_REPAIR'"
                      placeholder="请输入故障部位"
                      :filter-option="filterOption"
                      :allowClear="true"
                      @focus="fetchFaultPartList"
                    @input="fetchFaultPartList"
                    />
                  </a-form-model-item>
                </a-col>
                <a-col :span="twoColSpan">
                  <a-form-model-item label="故障子部位" prop="faultChildPart" :labelCol="labelCol" :wrapperCol="wrapperCol">
                    <a-auto-complete
                      v-model="tableRowRecord.faultChildPart"
                      :data-source="faultChildPartDataList"
                      :disabled="disableSubmit||tableRowRecord.repairStatus!=='UNDER_INTERNAL_REPAIR'"
                      placeholder="请输入故障子部位"
                      :filter-option="filterOption"
                      :allowClear="true"
                      @focus="fetchFaultChildPartList"
                    @input="fetchFaultChildPartList"
                    />
                  </a-form-model-item>
                </a-col>
                <a-col :span="twoColSpan">
                  <a-form-model-item label="严重程度" prop="severity" :labelCol="labelCol" :wrapperCol="wrapperCol">
                    <j-dict-select-tag :disabled="disableSubmit||tableRowRecord.repairStatus!=='UNDER_INTERNAL_REPAIR'"
                                       v-model="tableRowRecord.severity" rows="4" dictCode="repair_severity"
                                       placeholder="请选择严重程度"/>
                  </a-form-model-item>
                </a-col>
                <a-col :span="24">
                  <a-form-model-item label="维修结果描述" prop="repairDescription" :labelCol="{xs: { span: 24 },sm: { span: 3 }}" :wrapperCol="wrapperColLong">
                    <a-auto-complete
                      :data-source="repairDescriptionPartDataList"
                      :disabled="disableSubmit||tableRowRecord.repairStatus!=='UNDER_INTERNAL_REPAIR'"
                      :filter-option="filterOption"
                      :allowClear="true"
                      v-model="tableRowRecord.repairDescription"
                    >
                      <a-textarea
                        placeholder="请输入维修结果描述"
                        class="custom"
                        @focus="fetchRepairDescList"
                      @input="fetchRepairDescList"
                      />
                    </a-auto-complete>
                  </a-form-model-item>
                </a-col>
                <a-col :span="twoColSpan*2">
                  <a-form-model-item label="维修结果描述" prop="repairDescription" :labelCol="labelColLong" :wrapperCol="wrapperColLong">
                    <a-textarea :readOnly="disableSubmit||tableRowRecord.repairStatus!=='UNDER_INTERNAL_REPAIR'"
                                v-model="tableRowRecord.repairDescription"
                                placeholder="请输入维修结果描述"/>
                  </a-form-model-item>
                </a-col>
                <a-col :span="twoColSpan*2">
                  <a-form-model-item label="维修图片" :labelCol="labelColLong" :wrapperCol="wrapperColLong">
                  <a-form-model-item label="维修图片" :labelCol="{xs: { span: 24 },sm: { span: 3 }}" :wrapperCol="wrapperColLong">
                    <lx-upload :returnUrl="false" :isMultiple="true" file-type="image" :number="3"
                               :disabled="disableSubmit||tableRowRecord.repairStatus!=='UNDER_INTERNAL_REPAIR'"
                               v-model="tableRowRecord.imageFiles"/>
@@ -125,22 +172,69 @@
            <div v-if="underInternalRepair && tableRowRecord.leaderConfirm === '2'">
              <a-divider orientation="center" style="font-size: large;font-style: italic;color: #66aeed;">维修结果</a-divider>
              <a-row>
                <a-col :span="twoColSpan*2">
                  <a-form-model-item label="故障原因" prop="faultReason" :labelCol="labelColLong" :wrapperCol="wrapperColLong">
                    <a-input :readOnly="disableSubmit||tableRowRecord.repairStatus!=='UNDER_INTERNAL_REPAIR'"
                             v-model="tableRowRecord.faultReason" rows="4"
                             placeholder="请输入故障原因"/>
                <a-col :span="twoColSpan">
                  <a-form-model-item label="故障类型" prop="faultType" :labelCol="labelCol" :wrapperCol="wrapperCol">
                    <j-dict-select-tag :disabled="disableSubmit||tableRowRecord.repairStatus!=='UNDER_INTERNAL_REPAIR'"
                                       v-model="tableRowRecord.faultType" rows="4" dictCode="repair_warehouse_fault_type"
                                       placeholder="请选择故障类型"/>
                  </a-form-model-item>
                </a-col>
                <a-col :span="twoColSpan">
                  <a-form-model-item label="故障部位" prop="faultPart" :labelCol="labelCol" :wrapperCol="wrapperCol">
                    <a-auto-complete
                      v-model="tableRowRecord.faultPart"
                      :data-source="faultPartDataList"
                      :disabled="disableSubmit||tableRowRecord.repairStatus!=='UNDER_INTERNAL_REPAIR'"
                      placeholder="请输入故障部位"
                      :filter-option="filterOption"
                      :allowClear="true"
                      @focus="fetchFaultPartList"
                      @input="fetchFaultPartList"
                    />
                  </a-form-model-item>
                </a-col>
                <a-col :span="twoColSpan">
                  <a-form-model-item label="故障子部位" prop="faultChildPart" :labelCol="labelCol" :wrapperCol="wrapperCol">
                    <a-auto-complete
                      v-model="tableRowRecord.faultChildPart"
                      :data-source="faultChildPartDataList"
                      :disabled="disableSubmit||tableRowRecord.repairStatus!=='UNDER_INTERNAL_REPAIR'"
                      placeholder="请输入故障子部位"
                      :filter-option="filterOption"
                      :allowClear="true"
                      @focus="fetchFaultChildPartList"
                      @input="fetchFaultChildPartList"
                    />
                  </a-form-model-item>
                </a-col>
                <a-col :span="twoColSpan">
                  <a-form-model-item label="严重程度" prop="severity" :labelCol="labelCol" :wrapperCol="wrapperCol">
                    <j-dict-select-tag :disabled="disableSubmit||tableRowRecord.repairStatus!=='UNDER_INTERNAL_REPAIR'"
                                       v-model="tableRowRecord.severity" rows="4" dictCode="repair_severity"
                                       placeholder="请选择严重程度"/>
                  </a-form-model-item>
                </a-col>
                <a-col :span="24">
                  <a-form-model-item label="维修结果描述" prop="repairDescription" :labelCol="{xs: { span: 24 },sm: { span: 3 }}" :wrapperCol="wrapperColLong">
                    <a-auto-complete
                      :data-source="repairDescriptionPartDataList"
                      :disabled="disableSubmit||tableRowRecord.repairStatus!=='UNDER_INTERNAL_REPAIR'"
                      :filter-option="filterOption"
                      :allowClear="true"
                      v-model="tableRowRecord.repairDescription"
                    >
                      <a-textarea
                        placeholder="请输入维修结果描述"
                        class="custom"
                        @focus="fetchRepairDescList"
                        @input="fetchRepairDescList"
                      />
                    </a-auto-complete>
                  </a-form-model-item>
                </a-col>
                <a-col :span="twoColSpan*2">
                  <a-form-model-item label="维修结果描述" prop="repairDescription" :labelCol="labelColLong" :wrapperCol="wrapperColLong">
                    <a-textarea :readOnly="disableSubmit||tableRowRecord.repairStatus!=='UNDER_INTERNAL_REPAIR'"
                                v-model="tableRowRecord.repairDescription"
                                placeholder="请输入维修结果描述"/>
                  </a-form-model-item>
                </a-col>
                <a-col :span="twoColSpan*2">
                  <a-form-model-item label="维修图片" :labelCol="labelColLong" :wrapperCol="wrapperColLong">
                  <a-form-model-item label="维修图片" :labelCol="{xs: { span: 24 },sm: { span: 3 }}" :wrapperCol="wrapperColLong">
                    <lx-upload :returnUrl="false" :isMultiple="true" file-type="image" :number="3"
                               :disabled="disableSubmit||tableRowRecord.repairStatus!=='UNDER_INTERNAL_REPAIR'"
                               v-model="tableRowRecord.imageFiles"/>
@@ -169,22 +263,69 @@
            <div v-if="underExternalRepair && tableRowRecord.externalConfirm === '1'">
              <a-divider orientation="center" style="font-size: large;font-style: italic;color: #66aeed;">机动办维修结果</a-divider>
              <a-row>
                <a-col :span="twoColSpan*2">
                  <a-form-model-item label="故障原因" prop="faultReason" :labelCol="labelColLong" :wrapperCol="wrapperColLong">
                    <a-input :readOnly="disableSubmit||tableRowRecord.repairStatus!=='UNDER_EXTERNAL_REPAIR'"
                             v-model="tableRowRecord.faultReason" rows="4"
                             placeholder="请输入故障原因"/>
                <a-col :span="twoColSpan">
                  <a-form-model-item label="故障类型" prop="faultType" :labelCol="labelCol" :wrapperCol="wrapperCol">
                    <j-dict-select-tag :disabled="disableSubmit||tableRowRecord.repairStatus!=='UNDER_EXTERNAL_REPAIR'"
                                       v-model="tableRowRecord.faultType" rows="4" dictCode="repair_warehouse_fault_type"
                                       placeholder="请选择故障类型"/>
                  </a-form-model-item>
                </a-col>
                <a-col :span="twoColSpan">
                  <a-form-model-item label="故障部位" prop="faultPart" :labelCol="labelCol" :wrapperCol="wrapperCol">
                    <a-auto-complete
                      v-model="tableRowRecord.faultPart"
                      :data-source="faultPartDataList"
                      :disabled="disableSubmit||tableRowRecord.repairStatus!=='UNDER_EXTERNAL_REPAIR'"
                      placeholder="请输入故障部位"
                      :filter-option="filterOption"
                      :allowClear="true"
                      @focus="fetchFaultPartList"
                      @input="fetchFaultPartList"
                    />
                  </a-form-model-item>
                </a-col>
                <a-col :span="twoColSpan">
                  <a-form-model-item label="故障子部位" prop="faultChildPart" :labelCol="labelCol" :wrapperCol="wrapperCol">
                    <a-auto-complete
                      v-model="tableRowRecord.faultChildPart"
                      :data-source="faultChildPartDataList"
                      :disabled="disableSubmit||tableRowRecord.repairStatus!=='UNDER_EXTERNAL_REPAIR'"
                      placeholder="请输入故障子部位"
                      :filter-option="filterOption"
                      :allowClear="true"
                      @focus="fetchFaultChildPartList"
                      @input="fetchFaultChildPartList"
                    />
                  </a-form-model-item>
                </a-col>
                <a-col :span="twoColSpan">
                  <a-form-model-item label="严重程度" prop="severity" :labelCol="labelCol" :wrapperCol="wrapperCol">
                    <j-dict-select-tag :disabled="disableSubmit||tableRowRecord.repairStatus!=='UNDER_EXTERNAL_REPAIR'"
                                       v-model="tableRowRecord.severity" rows="4" dictCode="repair_severity"
                                       placeholder="请选择严重程度"/>
                  </a-form-model-item>
                </a-col>
                <a-col :span="24">
                  <a-form-model-item label="维修结果描述" prop="repairDescription" :labelCol="{xs: { span: 24 },sm: { span: 3 }}" :wrapperCol="wrapperColLong">
                    <a-auto-complete
                      :data-source="repairDescriptionPartDataList"
                      :disabled="disableSubmit||tableRowRecord.repairStatus!=='UNDER_EXTERNAL_REPAIR'"
                      :filter-option="filterOption"
                      :allowClear="true"
                      v-model="tableRowRecord.repairDescription"
                    >
                      <a-textarea
                        placeholder="请输入维修结果描述"
                        class="custom"
                        @focus="fetchRepairDescList"
                        @input="fetchRepairDescList"
                      />
                    </a-auto-complete>
                  </a-form-model-item>
                </a-col>
                <a-col :span="twoColSpan*2">
                  <a-form-model-item label="维修结果描述" prop="repairDescription" :labelCol="labelColLong" :wrapperCol="wrapperColLong">
                    <a-textarea :readOnly="disableSubmit||tableRowRecord.repairStatus!=='UNDER_EXTERNAL_REPAIR'"
                                v-model="tableRowRecord.repairDescription"
                                placeholder="请输入维修结果描述"/>
                  </a-form-model-item>
                </a-col>
                <a-col :span="twoColSpan*2">
                  <a-form-model-item label="维修图片" :labelCol="labelColLong" :wrapperCol="wrapperColLong">
                  <a-form-model-item label="维修图片" :labelCol="{xs: { span: 24 },sm: { span: 3 }}" :wrapperCol="wrapperColLong">
                    <lx-upload :returnUrl="false" :isMultiple="true" file-type="image" :number="3"
                               :disabled="disableSubmit||tableRowRecord.repairStatus!=='UNDER_EXTERNAL_REPAIR'"
                               v-model="tableRowRecord.imageFiles"/>
@@ -195,22 +336,69 @@
            <div v-if="underOutsideRepair && tableRowRecord.externalConfirm === '0'">
              <a-divider orientation="center" style="font-size: large;font-style: italic;color: #66aeed;">委外维修结果</a-divider>
              <a-row>
                <a-col :span="twoColSpan*2">
                  <a-form-model-item label="故障原因" prop="faultReason" :labelCol="labelColLong" :wrapperCol="wrapperColLong">
                    <a-input :readOnly="disableSubmit||tableRowRecord.repairStatus!=='UNDER_OUTSIDE_REPAIR'"
                             v-model="tableRowRecord.faultReason" rows="4"
                             placeholder="请输入故障原因"/>
                <a-col :span="twoColSpan">
                  <a-form-model-item label="故障类型" prop="faultType" :labelCol="labelCol" :wrapperCol="wrapperCol">
                    <j-dict-select-tag :disabled="disableSubmit||tableRowRecord.repairStatus!=='UNDER_OUTSIDE_REPAIR'"
                                       v-model="tableRowRecord.faultType" rows="4" dictCode="repair_warehouse_fault_type"
                                       placeholder="请选择故障类型"/>
                  </a-form-model-item>
                </a-col>
                <a-col :span="twoColSpan">
                  <a-form-model-item label="故障部位" prop="faultPart" :labelCol="labelCol" :wrapperCol="wrapperCol">
                    <a-auto-complete
                      v-model="tableRowRecord.faultPart"
                      :data-source="faultPartDataList"
                      :disabled="disableSubmit||tableRowRecord.repairStatus!=='UNDER_OUTSIDE_REPAIR'"
                      placeholder="请输入故障部位"
                      :filter-option="filterOption"
                      :allowClear="true"
                      @focus="fetchFaultPartList"
                      @input="fetchFaultPartList"
                    />
                  </a-form-model-item>
                </a-col>
                <a-col :span="twoColSpan">
                  <a-form-model-item label="故障子部位" prop="faultChildPart" :labelCol="labelCol" :wrapperCol="wrapperCol">
                    <a-auto-complete
                      v-model="tableRowRecord.faultChildPart"
                      :data-source="faultChildPartDataList"
                      :disabled="disableSubmit||tableRowRecord.repairStatus!=='UNDER_OUTSIDE_REPAIR'"
                      placeholder="请输入故障子部位"
                      :filter-option="filterOption"
                      :allowClear="true"
                      @focus="fetchFaultChildPartList"
                      @input="fetchFaultChildPartList"
                    />
                  </a-form-model-item>
                </a-col>
                <a-col :span="twoColSpan">
                  <a-form-model-item label="严重程度" prop="severity" :labelCol="labelCol" :wrapperCol="wrapperCol">
                    <j-dict-select-tag :disabled="disableSubmit||tableRowRecord.repairStatus!=='UNDER_OUTSIDE_REPAIR'"
                                       v-model="tableRowRecord.severity" rows="4" dictCode="repair_severity"
                                       placeholder="请选择严重程度"/>
                  </a-form-model-item>
                </a-col>
                <a-col :span="24">
                  <a-form-model-item label="维修结果描述" prop="repairDescription" :labelCol="{xs: { span: 24 },sm: { span: 3 }}" :wrapperCol="wrapperColLong">
                    <a-auto-complete
                      :data-source="repairDescriptionPartDataList"
                      :disabled="disableSubmit||tableRowRecord.repairStatus!=='UNDER_OUTSIDE_REPAIR'"
                      :filter-option="filterOption"
                      :allowClear="true"
                      v-model="tableRowRecord.repairDescription"
                    >
                      <a-textarea
                        placeholder="请输入维修结果描述"
                        class="custom"
                        @focus="fetchRepairDescList"
                        @input="fetchRepairDescList"
                      />
                    </a-auto-complete>
                  </a-form-model-item>
                </a-col>
                <a-col :span="twoColSpan*2">
                  <a-form-model-item label="维修结果描述" prop="repairDescription" :labelCol="labelColLong" :wrapperCol="wrapperColLong">
                    <a-textarea :readOnly="disableSubmit||tableRowRecord.repairStatus!=='UNDER_OUTSIDE_REPAIR'"
                                v-model="tableRowRecord.repairDescription"
                                placeholder="请输入维修结果描述"/>
                  </a-form-model-item>
                </a-col>
                <a-col :span="twoColSpan*2">
                  <a-form-model-item label="维修图片" :labelCol="labelColLong" :wrapperCol="wrapperColLong">
                  <a-form-model-item label="维修图片" :labelCol="{xs: { span: 24 },sm: { span: 3 }}" :wrapperCol="wrapperColLong">
                    <lx-upload :returnUrl="false" :isMultiple="true" file-type="image" :number="3"
                               :disabled="disableSubmit||tableRowRecord.repairStatus!=='UNDER_OUTSIDE_REPAIR'"
                               v-model="tableRowRecord.imageFiles"/>
@@ -277,6 +465,9 @@
      return {
        title: '',
        threeColSpan: 8,
        faultPartDataList: [],
        faultChildPartDataList: [],
        repairDescriptionPartDataList: [],
        twoColSpan: 12,
        inputReadOnly: true,
        disableSubmit: false,
@@ -327,6 +518,18 @@
          faultReason: [
            { required: true, message: '请输入故障原因' }
          ],
          faultType: [
            { required: true, message: '请选择故障类型' }
          ],
          faultPart: [
            { required: true, message: '请输入故障部位' }
          ],
          faultChildPart: [
            { required: true, message: '请输入故障子部位' }
          ],
          severity: [
            { required: true, message: '请选择严重程度' }
          ],
          repairDescription: [
            { required: true, message: '请输入维修结果描述' }
          ]
@@ -338,7 +541,8 @@
          queryBomDataById: '/eam/eamRepairOrder/queryById',
          diagramView: '/assign/flow/diagramView',
          queryHisTaskList: '/assign/flow/queryHisTaskList',
          approve: '/eam/eamRepairOrder/perform'
          approve: '/eam/eamRepairOrder/perform',
          getColumnDateList: '/repairWarehouse/repairWarehouse/getColumnDateList'
        }
      }
    },
@@ -365,11 +569,107 @@
        return ['WAIT_CONFIRM', 'COMPLETE'].includes(this.tableRowRecord.repairStatus)
      }
    },
    watch: {
    },
    methods: {
      /**
       * èŽ·å–æµç¨‹èŠ‚ç‚¹å’Œæµç¨‹å›¾
       * @param record å¾…办记录信息
       * 1. æŸ¥è¯¢æ•…障部位列表(根据故障类型筛选)
       */
      fetchFaultPartList() {
        const that = this
        // ç­›é€‰å‚数:仅携带已选中的故障类型(未选中则参数为空)
        const params = {
          faultType: that.tableRowRecord.faultType || '',
          column: "fault_part"
        }
        // è°ƒç”¨æŽ¥å£ï¼ˆä½¿ç”¨é¡¹ç›®å°è£…çš„ getAction)
        getAction(this.url.getColumnDateList, params)
          .then(res => {
            if (res.success) {
              // æŽ¥å£è¿”回格式假设为:[{ label: "部位1", value: "1" }, ...]
              // è‹¥æŽ¥å£è¿”回是纯数组(如 ["部位1", "部位2"]),则直接赋值:that.faultPartDataList = res.result
              that.faultPartDataList = res.result
            } else {
              that.$message.warning('故障部位查询失败:' + res.message)
              that.faultPartDataList = []  // å¤±è´¥æ—¶æ¸…空数据源
            }
          })
          .catch(err => {
            that.$message.error('故障部位查询异常:' + err.message)
            that.faultPartDataList = []
          })
      },
      /**
       * 2. æŸ¥è¯¢æ•…障子部位列表(根据故障类型 + æ•…障部位筛选)
       */
      fetchFaultChildPartList() {
        const that = this
        const { faultType, faultPart } = that.tableRowRecord
        // ç­›é€‰å‚数:仅当故障类型、故障部位均非空时才携带
        const params = {}
        if (faultType) params.faultType = faultType
        if (faultPart) params.faultPart = faultPart
        params.column = "fault_child_part"
        // è°ƒç”¨æŽ¥å£
        getAction(this.url.getColumnDateList, params)
          .then(res => {
            if (res.success) {
              that.faultChildPartDataList = res.result
            } else {
              that.$message.warning('故障子部位查询失败:' + res.message)
              that.faultChildPartDataList = []
            }
          })
          .catch(err => {
            that.$message.error('故障子部位查询异常:' + err.message)
            that.faultChildPartDataList = []
          })
      },
      /**
       * 3. æŸ¥è¯¢æ•…障描述列表(根据故障类型 + æ•…障部位 + æ•…障子部位筛选)
       */
      fetchRepairDescList() {
        const that = this
        const { faultType, faultPart, faultChildPart } = that.tableRowRecord
        // ç­›é€‰å‚数:仅当三个条件均非空时才携带
        const params = {}
        if (faultType) params.faultType = faultType
        if (faultPart) params.faultPart = faultPart
        if (faultChildPart) params.faultChildPart = faultChildPart
        params.column = "repair_description"
        // è°ƒç”¨æŽ¥å£
        getAction(this.url.getColumnDateList, params)
          .then(res => {
            if (res.success) {
              that.repairDescriptionPartDataList = res.result
            } else {
              that.$message.warning('故障描述查询失败:' + res.message)
              that.repairDescriptionPartDataList = []
            }
          })
          .catch(err => {
            that.$message.error('故障描述查询异常:' + err.message)
            that.repairDescriptionPartDataList = []
          })
      },
      /**
       * è”想输入框筛选功能
       * @param input è¾“入的内容
       * @param option é…ç½®
       * @returns {boolean} åˆ¤æ–­æ˜¯å¦ç­›é€‰
       */
      filterOption(input, option) {
        return (
          option.componentOptions.children[0].text.toUpperCase().indexOf(input.toUpperCase()) >= 0
        )
      },
      getAllApproveData(record) {
        if (!record.procInstId) return
        console.log('record----->', record)
@@ -428,7 +728,7 @@
        this.$refs.form.validate(valid => {
          if (valid) {
            that.confirmLoading = that.spinning = true
            const { confirmComment, externalConfirm, externalConfirmComment, repairConfirm, repairConfirmComment, leaderConfirm, leaderConfirmComment, faultReason, repairDescription, imageFiles, equipmentId } = that.tableRowRecord
            const { confirmComment, externalConfirm, externalConfirmComment, repairConfirm, repairConfirmComment, leaderConfirm, leaderConfirmComment, faultReason, faultType, faultPart, faultChildPart, severity, repairDescription, imageFiles, equipmentId } = that.tableRowRecord
            const { dataId, id, procInstId, taskDefKey, variables } = that.selectShenpiData
            const flowTaskVo = {}
@@ -441,6 +741,10 @@
            flowTaskVo.confirmComment = confirmComment
            flowTaskVo.faultReason = faultReason
            flowTaskVo.faultType = faultType
            flowTaskVo.faultPart = faultPart
            flowTaskVo.faultChildPart = faultChildPart
            flowTaskVo.severity = severity
            flowTaskVo.repairDescription = repairDescription
            flowTaskVo.imageFilesResult = imageFiles
            flowTaskVo.equipmentId = equipmentId
src/views/flowable/workflow/standardizedProcess/StandardizedProcessHandle.vue
@@ -64,7 +64,7 @@
                  </a-row>
                  <a-row>
                    <a-col :span='span'>
                      <a-form-model-item label='出库状态' :labelCol='labelCol' :wrapperCol='wrapperCol' prop='pullStatus_dictText'>
                      <a-form-model-item label='生命周期' :labelCol='labelCol' :wrapperCol='wrapperCol' prop='pullStatus_dictText'>
                        <a-input :disabled='coldisabled' v-model='tableRowRecord.pullStatus_dictText'></a-input>
                      </a-form-model-item>
                    </a-col>
src/views/tms/OutboundDetailList.vue
@@ -196,7 +196,7 @@
            dataIndex: 'outActualCount'
          },
          {
            title:'出库状态',
            title:'生命周期',
            align:"center",
            dataIndex: 'status_dictText'
          },
src/views/tms/OutboundOrderList.vue
@@ -188,7 +188,7 @@
            dataIndex: 'outboundTime'
          },
          {
            title:'出库状态',
            title:'生命周期',
            align:"center",
            dataIndex: 'outStatus_dictText'
          },
src/views/tms/lossBound/modules/LossboundDetailModal.vue
@@ -33,9 +33,9 @@
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="出库状态;1.未出库;2.部分出库;3.出库完成" :labelCol="labelCol"
            <a-form-model-item label="生命周期;1.未出库;2.部分出库;3.出库完成" :labelCol="labelCol"
                               :wrapperCol="wrapperCol" prop="status">
              <a-input-number v-model="model.status" placeholder="请输入出库状态;1.未出库;2.部分出库;3.出库完成"
              <a-input-number v-model="model.status" placeholder="请输入生命周期;1.未出库;2.部分出库;3.出库完成"
                              style="width: 100%" />
            </a-form-model-item>
          </a-col>
src/views/tms/modules/outBound/JSelectBorrowOutboundToolModal.vue
@@ -98,7 +98,7 @@
          align:"center",
          dataIndex: 'groupCompanySign'
        },
        // {
        //   title:'可用库存数量',
        //   align:"center",
@@ -115,7 +115,7 @@
          dataIndex: 'positionCode'
        },
        // {
        //   title:'出库状态;1.未出库;2.部分出库;3.出库完成',
        //   title:'生命周期;1.未出库;2.部分出库;3.出库完成',
        //   align:"center",
        //   dataIndex: 'status'
        // },
src/views/tms/modules/outBound/JSelectSharpenOutboundToolModal.vue
@@ -89,7 +89,7 @@
          dataIndex: 'positionCode'
        },
        // {
        //   title:'出库状态;1.未出库;2.部分出库;3.出库完成',
        //   title:'生命周期;1.未出库;2.部分出库;3.出库完成',
        //   align:"center",
        //   dataIndex: 'status'
        // },
src/views/tms/modules/outBound/OutboundDetailModal.vue
@@ -32,8 +32,8 @@
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="出库状态;1.未出库;2.部分出库;3.出库完成" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="status">
              <a-input-number v-model="model.status"placeholder="请输入出库状态;1.未出库;2.部分出库;3.出库完成" style="width: 100%" />
            <a-form-model-item label="生命周期;1.未出库;2.部分出库;3.出库完成" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="status">
              <a-input-number v-model="model.status"placeholder="请输入生命周期;1.未出库;2.部分出库;3.出库完成" style="width: 100%" />
            </a-form-model-item>
          </a-col>
        </a-row>
src/views/tms/modules/outBound/OutboundDetailSelectList.vue
@@ -149,7 +149,7 @@
          //   dataIndex: 'outActualCount'
          // },
          {
            title:'出库状态',
            title:'生命周期',
            align:"center",
            dataIndex: 'status_dictText'
          },
src/views/tms/modules/outBound/OutboundModal.vue
@@ -189,7 +189,7 @@
          scopedSlots: { customRender: 'useLife' },
        },
        // {
        //   title:'出库状态;1.未出库;2.部分出库;3.出库完成',
        //   title:'生命周期;1.未出库;2.部分出库;3.出库完成',
        //   align:"center",
        //   dataIndex: 'status'
        // },
src/views/tms/modules/outBound/OutboundOrderModal.vue
@@ -282,7 +282,7 @@
        //   scopedSlots: { customRender: 'useLife' },
        // },
          // {
          //   title:'出库状态;1.未出库;2.部分出库;3.出库完成',
          //   title:'生命周期;1.未出库;2.部分出库;3.出库完成',
          //   align:"center",
          //   dataIndex: 'status'
          // },
src/views/tms/modules/outBound/OutboundOrderSelectList.vue
@@ -144,7 +144,7 @@
            dataIndex: 'outboundTime'
          },
          {
            title:'出库状态',
            title:'生命周期',
            align:"center",
            dataIndex: 'outStatus_dictText'
          },