已添加2个文件
已修改12个文件
1298 ■■■■■ 文件已修改
src/mixins/JeecgListMixin.js 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/utils/authFilter.js 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/base/EamMaintenanceStandardList.vue 48 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/base/EamProductionUserManagement.vue 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/base/EamRepairDepartList.vue 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/base/EamTechnicalStatusEvaluationStandardList.vue 215 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/base/modules/EamMaintenanceStandardDetailList.vue 56 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/base/modules/EamProductionModal.vue 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/base/modules/EamRepairDepartModal.vue 141 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/base/modules/EamTechnicalStatusEvaluationStandardModal.vue 130 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/equipment/modules/MaintenanceEquipmentSelect.vue 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/maintenance/EamInspectionOrderList.vue 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/maintenance/modules/EamInspectionOrderModal.vue 320 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/system/modules/UserModal.vue 247 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/mixins/JeecgListMixin.js
@@ -8,7 +8,6 @@
import Vue from 'vue'
import { ACCESS_TOKEN, TENANT_ID } from "@/store/mutation-types"
import store from '@/store'
import { buttonShowAuthFilter } from '@/utils/authFilter'
export const JeecgListMixin = {
  data(){
@@ -75,9 +74,6 @@
    }
  },
  methods:{
    isShowAuth(code){
      return buttonShowAuthFilter(code);
    },
    loadData(arg) {
      if(!this.url.list){
        this.$message.error("请设置url.list属性!")
src/utils/authFilter.js
@@ -274,29 +274,4 @@
function substrPre(str,pre) {
  return str.substr(pre.length);
}
/**
 * æ˜¾ç¤ºæƒé™
 * @param {*} code
 * @returns
 */
export function buttonShowAuthFilter(code) {
  if(code){
    if(nodeShowAuth(code)){
      return true;
    }else{
      return false;
    }
  }else{
    return false;
  }
}
function nodeShowAuth(code){
  let authList = JSON.parse(sessionStorage.getItem(USER_AUTH) || "[]");
  for (let auth of authList) {
    if(auth.action == code) {
      return true;
    }
  }
  return false;
}
src/views/eam/base/EamMaintenanceStandardList.vue
@@ -129,7 +129,7 @@
        <a-tab-pane tab='保养标准明细项' key="1">
          <div class="table-operator" style="margin:-16px">
            <eam-maintenance-standard-detail-list ref="standardDetailRef" :standardId="standardId"
                                                  :selectionRows="selectionRows"/>
                                                  :pageSelectionRow="selectionRows[0]"/>
          </div>
        </a-tab-pane>
@@ -138,7 +138,7 @@
    <!-- table区域-end -->
    <!-- è¡¨å•区域 -->
    <eamMaintenanceStandard-modal ref="modalForm" @ok="modalFormOk"></eamMaintenanceStandard-modal>
    <eamMaintenanceStandard-modal ref="modalForm" @ok="modalFormOk"/>
  </a-card>
</template>
@@ -239,10 +239,9 @@
          deleteBatch: '/eam/maintenanceStandard/deleteBatch',
          startProcess: '/eam/maintenanceStandard/saveEamMaintenanceStandardProcess',
          exportXlsUrl: 'eam/maintenanceStandard/exportXls',
          inspectionImportExcel: 'eam/maintenanceStandard/inspectionImportExcel',
          weekMaintenanceImportExcel: 'eam/maintenanceStandard/weekMaintenanceImportExcel',
          secondMaintenanceImportExcel: 'eam/maintenanceStandard/secondMaintenanceImportExcel',
          thirdMaintenanceImportExcel: 'eam/maintenanceStandard/thirdMaintenanceImportExcel',
          inspectionImportExcel: '/eam/maintenanceStandard/importPointInspection',
          secondMaintenanceImportExcel: '/eam/maintenanceStandard/importSecondMaintenanceStandard',
          thirdMaintenanceImportExcel: '/eam/maintenanceStandard/importThirdMaintenanceStandard',
          inspectionXlsDownloadUrl: '导入模板/点检标准导入模板_v1.0.xlsx',
          weekMaintenanceXlsDownloadUrl: '导入模板/周保标准导入模板_v1.0.xlsx',
          secondMaintenanceXlsDownloadUrl: '导入模板/二保标准导入模板_v1.0.xlsx',
@@ -254,9 +253,6 @@
    computed: {
      inspectionImportExcel: function() {
        return `${window._CONFIG['domianURL']}/${this.url.inspectionImportExcel}`
      },
      weekMaintenanceImportExcel: function() {
        return `${window._CONFIG['domianURL']}/${this.url.weekMaintenanceImportExcel}`
      },
      secondMaintenanceImportExcel: function() {
        return `${window._CONFIG['domianURL']}/${this.url.secondMaintenanceImportExcel}`
@@ -346,6 +342,40 @@
        this.$refs.modalForm.disableSubmit = false
      },
      batchDel() {
        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
            getAction(that.url.deleteBatch, { ids })
              .then((res) => {
                if (res.success) {
                  that.$notification.success({
                    message: '消息',
                    description: res.message
                  })
                  that.loadData()
                  that.onClearSelected()
                } else {
                  that.$notification.warning({
                    message: '消息',
                    description: res.message
                  })
                }
              })
              .finally(() => {
                that.loading = false
              })
          }
        })
      },
      searchReset() {
        this.standardId = '-1'
        this.queryParam = {}
src/views/eam/base/EamProductionUserManagement.vue
@@ -21,18 +21,9 @@
          <a-input-search @search="onSearch" style="width:100%;margin-top: 10px" placeholder="请输入车间名称"/>
          <!-- æ ‘-->
          <a-col :md="10" :sm="24">
            <a-tree
              checkable
              multiple
              @select="onSelect"
              @check="onCheck"
              :selectedKeys="selectedKeys"
              :checkedKeys="checkedKeys"
              :treeData="departTree"
              :checkStrictly="checkStrictly"
              :expandedKeys="expandedKeys"
              :autoExpandParent="autoExpandParent"
              @expand="onExpand"/>
            <a-tree checkable multiple @select="onSelect" @check="onCheck" :selectedKeys="selectedKeys"
                    :checkedKeys="checkedKeys" :treeData="departTree" :checkStrictly="checkStrictly"
                    :expandedKeys="expandedKeys" :autoExpandParent="autoExpandParent" @expand="onExpand"/>
          </a-col>
        </div>
      </a-card>
@@ -61,10 +52,10 @@
            <template v-if="selectedKeys.length>0">
              <a-form-model ref="form" :model="model" :rules="validatorRules" :labelCol="labelCol"
                            :wrapperCol="wrapperCol">
                <a-form-model-item label="机构编码">
                <a-form-model-item label="机构编码" prop="factoryCode">
                  <a-input placeholder="请输入机构编码" v-model="model.factoryCode"/>
                </a-form-model-item>
                <a-form-model-item expandedKeys prop="factoryName" label="机构名称">
                <a-form-model-item prop="factoryName" label="机构名称">
                  <a-input placeholder="请输入机构名称" v-model="model.factoryName"/>
                </a-form-model-item>
                <a-form-model-item expandedKeys label="上级车间">
@@ -143,7 +134,8 @@
          sm: { span: 16 }
        },
        validatorRules: {
          factoryName: [{ required: true, message: '请输入机构名称!', trigger: 'change' }]
          factoryCode: [{ required: true, message: '请输入机构编号', trigger: 'change' }],
          factoryName: [{ required: true, message: '请输入机构名称', trigger: 'change' }]
        },
        url: {
          getProductionTreeList: '/eam/BaseFactory/queryTreeList',
src/views/eam/base/EamRepairDepartList.vue
@@ -27,19 +27,10 @@
          <a-input-search @search="onSearch" style="width:100%;margin-top: 10px" placeholder="请输入维修部门名称"/>
          <!-- æ ‘-->
          <a-col :md="10" :sm="24">
            <a-tree
              checkable
              multiple
              @select="onSelect"
              @check="onCheck"
              @rightClick="rightHandle"
              :selectedKeys="selectedKeys"
              :checkedKeys="checkedKeys"
              :treeData="departTree"
              :checkStrictly="checkStrictly"
              :expandedKeys="iExpandedKeys"
              :autoExpandParent="autoExpandParent"
              @expand="onExpand"/>
            <a-tree checkable multiple @select="onSelect" @check="onCheck" @rightClick="rightHandle"
                    :selectedKeys="selectedKeys" :checkedKeys="checkedKeys" :treeData="departTree"
                    :checkStrictly="checkStrictly" :expandedKeys="iExpandedKeys" :autoExpandParent="autoExpandParent"
                    @expand="onExpand"/>
          </a-col>
        </div>
      </a-card>
@@ -68,20 +59,15 @@
          <a-card :bordered="false" v-if="selectedKeys.length>0">
            <a-form-model ref="form" :model="model" :rules="validatorRules">
              <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="departCode" label="维修部门编号">
                <a-input placeholder="请输入产线/维修部门编号" v-model="model.departCode"/>
                <a-input placeholder="请输入维修部门/班组编号" v-model="model.departCode"/>
              </a-form-model-item>
              <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="departName" label="维修部门名称">
                <a-input placeholder="请输入产线/维修部门名称" v-model="model.departName"/>
                <a-input placeholder="请输入维修部门/班组名称" v-model="model.departName"/>
              </a-form-model-item>
              <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="上级维修部门">
                <a-tree-select
                  style="width:100%"
                  :dropdownStyle="{maxHeight:'200px',overflow:'auto'}"
                  :treeData="treeData"
                  :disabled="disable"
                  v-model="model.parentId"
                  placeholder="无">
                </a-tree-select>
                <a-tree-select style="width:100%" :dropdownStyle="{maxHeight:'200px',overflow:'auto'}"
                               :treeData="treeData" :disabled="disable" v-model="model.parentId"
                               placeholder="无"/>
              </a-form-model-item>
              <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="排序">
                <a-input-number v-model="model.departOrder"/>
@@ -109,10 +95,10 @@
  </a-row>
</template>
<script>
import { queryRepairDepartTreeList, queryRepDepIdTree, deleteByRepairDepartId } from '@api/api'
import { httpAction, deleteAction } from '@api/manage'
import { JeecgListMixin } from '@/mixins/JeecgListMixin'
import EamRepairDepartModal from './modules/EamRepairDepartModal'
  import { queryRepairDepartTreeList, queryRepDepIdTree, deleteByRepairDepartId } from '@api/api'
  import { httpAction, deleteAction } from '@api/manage'
  import { JeecgListMixin } from '@/mixins/JeecgListMixin'
  import EamRepairDepartModal from './modules/EamRepairDepartModal'
  export default {
    name: 'EamRepairDepartList',
@@ -157,7 +143,8 @@
          edges: []
        },
        validatorRules: {
          departName: [{ required: true, message: '请输入产线/维修部门名称!' }]
          departCode: [{ required: true, message: '请输入维修部门/班组编号' }],
          departName: [{ required: true, message: '请输入维修部门/班组名称' }]
        },
        url: {
          delete: '/eam/eamBaseRepairDepart/delete',
src/views/eam/base/EamTechnicalStatusEvaluationStandardList.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,215 @@
<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="删除标记">
              <a-input placeholder="请输入删除标记" v-model="queryParam.delFlag"></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.standardName"></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.standardCode"></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.evaluationPeriod"></a-input>
            </a-form-item>
          </a-col>
          <a-col :xl="6" :lg="7" :md="8" :sm="24">
            <a-form-item label="设备ID">
              <a-input placeholder="请输入设备ID" v-model="queryParam.equipmentId"></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="info" @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>
    <!-- æ“ä½œæŒ‰é’®åŒºåŸŸ -->
    <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-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel">
        <a-button type="primary" icon="import">导入</a-button>
      </a-upload>
      <a-dropdown v-if="selectedRowKeys.length > 0">
        <a-menu slot="overlay">
          <a-menu-item key="1" @click="batchDel"><a-icon type="delete"/>删除</a-menu-item>
        </a-menu>
        <a-button style="margin-left: 8px"> æ‰¹é‡æ“ä½œ <a-icon type="down" /></a-button>
      </a-dropdown>
    </div>
    <!-- table区域-begin -->
    <div>
      <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
        <i class="anticon anticon-info-circle ant-alert-icon"></i> å·²é€‰æ‹© <a style="font-weight: 600">{{ selectedRowKeys.length }}</a>项
        <a style="margin-left: 24px" @click="onClearSelected">清空</a>
      </div>
      <a-table
        ref="table"
        size="middle"
        bordered
        rowKey="id"
        :columns="columns"
        :dataSource="dataSource"
        :pagination="ipagination"
        :loading="loading"
        class="j-table-force-nowrap"
        :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
        @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-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">
                  <a>删除</a>
                </a-popconfirm>
              </a-menu-item>
            </a-menu>
          </a-dropdown>
        </span>
      </a-table>
    </div>
    <!-- table区域-end -->
    <!-- è¡¨å•区域 -->
    <eamTechnicalStatusEvaluationStandard-modal ref="modalForm" @ok="modalFormOk"></eamTechnicalStatusEvaluationStandard-modal>
  </a-card>
</template>
<script>
  import '@/assets/less/TableExpand.less'
  import EamTechnicalStatusEvaluationStandardModal from './modules/EamTechnicalStatusEvaluationStandardModal'
  import { JeecgListMixin } from '@/mixins/JeecgListMixin'
  export default {
    name: "EamTechnicalStatusEvaluationStandardList",
    mixins:[JeecgListMixin],
    components: {
      EamTechnicalStatusEvaluationStandardModal
    },
    data () {
      return {
        description: '技术状态鉴定规范管理页面',
        // è¡¨å¤´
        columns: [
          {
            title: '#',
            dataIndex: '',
            key:'rowIndex',
            width:60,
            align:"center",
            customRender:function (t,r,index) {
              return parseInt(index)+1;
            }
           },
           {
            title: '删除标记',
            align:"center",
            dataIndex: 'delFlag'
           },
           {
            title: '规范名称',
            align:"center",
            dataIndex: 'standardName'
           },
           {
            title: '规范编码',
            align:"center",
            dataIndex: 'standardCode'
           },
           {
            title: '鉴定周期',
            align:"center",
            dataIndex: 'evaluationPeriod'
           },
           {
            title: '设备ID',
            align:"center",
            dataIndex: 'equipmentId'
           },
           {
            title: '规范状态;待提交、启用、作废',
            align:"center",
            dataIndex: 'standardStatus'
           },
           {
            title: '是否有安全装置检查;是否',
            align:"center",
            dataIndex: 'hasSafetyEquipmentCheck'
           },
           {
            title: '是否有设备精度检查;是否',
            align:"center",
            dataIndex: 'hasPrecisionCheck'
           },
           {
            title: '是否有其他检查;是否',
            align:"center",
            dataIndex: 'hasOtherCheck'
           },
           {
            title: '备注',
            align:"center",
            dataIndex: 'remark'
           },
          {
            title: '操作',
            dataIndex: 'action',
            align:"center",
            scopedSlots: { customRender: 'action' },
          }
        ],
        url: {
          list: "/eam/eamTechnicalStatusEvaluationStandard/list",
          delete: "/eam/eamTechnicalStatusEvaluationStandard/delete",
          deleteBatch: "/eam/eamTechnicalStatusEvaluationStandard/deleteBatch",
          exportXlsUrl: "eam/eamTechnicalStatusEvaluationStandard/exportXls",
          importExcelUrl: "eam/eamTechnicalStatusEvaluationStandard/importExcel",
       },
    }
  },
  computed: {
    importExcelUrl: function(){
      return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
    }
  },
    methods: {
    }
  }
</script>
<style scoped>
  @import '~@assets/less/common.less';
</style>
src/views/eam/base/modules/EamMaintenanceStandardDetailList.vue
@@ -1,27 +1,21 @@
<template>
  <a-card :bordered="false">
    <!-- table区域-begin -->
    <div>
      <a-table
        ref="detailTable"
        size="middle"
        bordered
        rowKey="id"
        :columns="columns"
        :dataSource="dataSource"
        :pagination="ipagination"
        :loading="loading"
        class="j-table-force-nowrap"
        @change="handleTableChange">
      </a-table>
    </div>
    <!-- table区域-end -->
    <a-table
      ref="detailTable"
      size="middle"
      bordered
      rowKey="id"
      :columns="columns"
      :dataSource="dataSource"
      :pagination="ipagination"
      :loading="loading"
      class="j-table-force-nowrap"
      @change="handleTableChange">
    </a-table>
  </a-card>
</template>
<script>
  import '@/assets/less/TableExpand.less'
  import { JeecgListMixin } from '@/mixins/JeecgListMixin'
  import { getAction } from '@api/manage'
@@ -34,13 +28,18 @@
        required: true,
        default: '-1'
      },
      selectionRows:{}
      pageSelectionRow: {
        type: Object,
        default: () => {
        }
      }
    },
    data() {
      return {
        description: '保养标准明细管理页面',
        // è¡¨å¤´
        columns: [
        columns: [],
        defaultColumns: [
          {
            title: '序号',
            align: 'center',
@@ -57,7 +56,7 @@
            title: '保养项分类',
            align: 'center',
            dataIndex: 'itemCategory_dictText',
            ellipsis: true
            width: 150
          },
          {
            title: '保养项目',
@@ -87,9 +86,15 @@
            this.clearList()
          }
        }
      },
      pageSelectionRow: {
        handler(val) {
          if (val) {
            if (val.maintenanceCategory != 'THIRD_MAINTENANCE') this.columns = [...this.defaultColumns.filter(item => item.dataIndex != 'itemPart')]
            else this.columns = [...this.defaultColumns.filter(item => item.dataIndex != 'itemCategory_dictText')]
          }
        }
      }
    },
    created() {
    },
    computed: {},
    methods: {
@@ -138,7 +143,4 @@
      }
    }
  }
</script>
<style scoped>
  @import '~@assets/less/common.less';
</style>
</script>
src/views/eam/base/modules/EamProductionModal.vue
@@ -8,7 +8,7 @@
    @cancel="handleCancel"
    cancelText="关闭">
    <a-form-model ref="form" :model="model" :rules="validatorRules" :labelCol="labelCol" :wrapperCol="wrapperCol">
      <a-form-model-item label="机构编码">
      <a-form-model-item label="机构编码" hasFeedback prop="factoryCode">
        <a-input placeholder="请输入机构编码" v-model="model.factoryCode"/>
      </a-form-model-item>
      <a-form-model-item label="机构名称" hasFeedback prop="factoryName">
@@ -60,8 +60,9 @@
        },
        confirmLoading: false,
        validatorRules: {
          factoryName: [{ required: true, message: '请输入机构名称!', trigger: 'change' }],
          factoryCategory: [{ required: true, message: '请选择机构类型!', trigger: 'change' }]
          factoryCode: [{ required: true, message: '请输入机构编码', trigger: 'change' }],
          factoryName: [{ required: true, message: '请输入机构名称', trigger: 'change' }],
          factoryCategory: [{ required: true, message: '请选择机构类型', trigger: 'change' }]
        },
        url: {
          queryById: '/eam/BaseFactory/queryIdTree',
src/views/eam/base/modules/EamRepairDepartModal.vue
@@ -12,13 +12,12 @@
    <a-spin :spinning="confirmLoading">
      <a-form-model ref="form" :model="model" :rules="validatorRules">
        <a-form-model-item
          :labelCol="labelCol"
          :wrapperCol="wrapperCol"
          label="维修部门/班组名称"
          prop="departName"
          :hidden="false"
          hasFeedback >
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="维修部门/班组编号" prop="departCode"
                           hasFeedback>
          <a-input placeholder="请输入维修部门/班组编号" v-model="model.departCode"/>
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="维修部门/班组名称" prop="departName"
                           hasFeedback>
          <a-input id="departName" placeholder="请输入维修部门/班组名称" v-model="model.departName"/>
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" :hidden="seen" label="上级部门" hasFeedback>
@@ -54,115 +53,117 @@
  import { queryRepDepIdTree } from '@/api/api'
  import pick from 'lodash.pick'
  import ATextarea from 'ant-design-vue/es/input/TextArea'
  export default {
    name: "EamRepairDepartModal",
    name: 'EamRepairDepartModal',
    components: { ATextarea },
    data () {
    data() {
      return {
        departTree:[],
        orgTypeData:[],
        phoneWarning:'',
        departName:"",
        title:"操作",
        seen:false,
        departTree: [],
        orgTypeData: [],
        phoneWarning: '',
        departName: '',
        title: '操作',
        seen: false,
        visible: false,
        condition:true,
        disableSubmit:false,
        condition: true,
        disableSubmit: false,
        model: {},
        menuhidden:false,
        menuusing:true,
        menuhidden: false,
        menuusing: true,
        labelCol: {
          xs: { span: 24 },
          sm: { span: 5 },
          sm: { span: 5 }
        },
        wrapperCol: {
          xs: { span: 24 },
          sm: { span: 16 },
          sm: { span: 16 }
        },
        confirmLoading: false,
        validatorRules:{
          departName:[{ required: true, message: '请输入维修部门/班组名称!' }],
        validatorRules: {
          departCode: [{ required: true, message: '请输入维修部门/班组编号' }],
          departName: [{ required: true, message: '请输入维修部门/班组名称' }]
        },
        url: {
          add: "/eam/eamBaseRepairDepart/add",
          add: '/eam/eamBaseRepairDepart/add'
        },
        dictDisabled:true,
        dictDisabled: true
      }
    },
    created () {
    created() {
    },
    methods: {
      loadTreeData(){
        var that = this;
        queryRepDepIdTree().then((res)=>{
          if(res.success){
            that.departTree = [];
      loadTreeData() {
        var that = this
        queryRepDepIdTree().then((res) => {
          if (res.success) {
            that.departTree = []
            for (let i = 0; i < res.result.length; i++) {
              let temp = res.result[i];
              that.departTree.push(temp);
              let temp = res.result[i]
              that.departTree.push(temp)
            }
          }
        })
      },
      add (depart) {
        if(depart){
          this.seen = false;
          this.dictDisabled = false;
        }else{
          this.seen = true;
          this.dictDisabled = true;
      add(depart) {
        if (depart) {
          this.seen = false
          this.dictDisabled = false
        } else {
          this.seen = true
          this.dictDisabled = true
        }
        this.edit(depart);
        this.edit(depart)
      },
      edit (record) {
        this.visible = true;
      edit(record) {
        this.visible = true
        this.model = Object.assign({}, this.defaultModel, record)
        this.loadTreeData();
        this.model.parentId = record!=null?record.toString():null;
        this.loadTreeData()
        this.model.parentId = record != null ? record.toString() : null
      },
      close () {
        this.$emit('close');
        this.disableSubmit = false;
        this.visible = false;
        this.$refs.form.resetFields();
      close() {
        this.$emit('close')
        this.disableSubmit = false
        this.visible = false
        this.$refs.form.resetFields()
      },
      handleOk () {
        const that = this;
      handleOk() {
        const that = this
        // è§¦å‘表单验证
        this.$refs.form.validate(valid => {
          if (valid) {
            that.confirmLoading = true;
            httpAction(this.url.add,this.model,"post").then((res)=>{
              if(res.success){
            that.confirmLoading = true
            httpAction(this.url.add, this.model, 'post').then((res) => {
              if (res.success) {
                // that.$message.success(res.message);
                that.$notification.warning({
                  message:'消息',
                  description:res.message
                });
                that.loadTreeData();
                that.$emit('ok');
              }else{
                  message: '消息',
                  description: res.message
                })
                that.loadTreeData()
                that.$emit('ok')
              } else {
                // that.$message.warning(res.message);
                that.$notification.warning({
                  message:'消息',
                  description:res.message
                });
                  message: '消息',
                  description: res.message
                })
              }
            }).finally(() => {
              that.confirmLoading = false;
              that.close();
              that.confirmLoading = false
              that.close()
            })
          }else{
            return false;
          } else {
            return false
          }
        })
      },
      handleCancel () {
      handleCancel() {
        this.close()
      },
      }
    }
  }
</script>
src/views/eam/base/modules/EamTechnicalStatusEvaluationStandardModal.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,130 @@
<template>
  <j-modal
    :title="title"
    :width="800"
    :visible="visible"
    :confirmLoading="confirmLoading"
    switchFullscreen
    @ok="handleOk"
    @cancel="handleCancel"
    cancelText="关闭">
    <a-spin :spinning="confirmLoading">
      <a-form-model ref="form" :model="model" :rules="validatorRules">
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="standardName" label="规范名称">
          <a-input placeholder="请输入规范名称" v-model="model.standardName" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="standardCode" label="规范编码">
          <a-input placeholder="请输入规范编码" v-model="model.standardCode" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="evaluationPeriod" label="鉴定周期(å¹´)">
          <a-input-number v-model="model.evaluationPeriod"/>
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="equipmentId" label="设备ID">
          <a-input placeholder="请输入设备ID" v-model="model.equipmentId" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="hasSafetyEquipmentCheck" label="是否有安全装置检查">
          <j-dict-select-tag dict-code="yn " type="radio" v-model="model.hasSafetyEquipmentCheck"/>
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="hasPrecisionCheck" label="是否有设备精度检查">
          <j-dict-select-tag dict-code="yn " type="radio" v-model="model.hasPrecisionCheck"/>
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="hasOtherCheck" label="是否有其他检查">
          <j-dict-select-tag dict-code="yn " type="radio" v-model="model.hasOtherCheck"/>
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="remark" label="备注">
          <a-input placeholder="请输入备注" v-model="model.remark" />
        </a-form-model-item>
      </a-form-model>
    </a-spin>
  </j-modal>
</template>
<script>
import { httpAction } from '@/api/manage'
export default {
    name: "EamTechnicalStatusEvaluationStandardModal",
    data () {
      return {
        title:"操作",
        visible: false,
        model: {},
        labelCol: {
          xs: { span: 24 },
          sm: { span: 5 },
        },
        wrapperCol: {
          xs: { span: 24 },
          sm: { span: 16 },
        },
        confirmLoading: false,
        validatorRules:{
        },
        url: {
          add: "/eam/eamTechnicalStatusEvaluationStandard/add",
          edit: "/eam/eamTechnicalStatusEvaluationStandard/edit",
        },
      }
    },
    created () {
    },
    methods: {
      add () {
        //初始化默认值
        this.edit({});
      },
      edit (record) {
        this.model = Object.assign({}, record);
        this.visible = true;
      },
      close () {
        this.$emit('close');
        this.visible = false;
        this.$refs.form.clearValidate();
      },
      handleOk () {
        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;
              that.close();
            })
          }else{
             return false;
          }
        })
      },
      handleCancel () {
        this.close()
      },
    }
  }
</script>
<style lang="less" scoped>
</style>
src/views/eam/equipment/modules/MaintenanceEquipmentSelect.vue
@@ -11,7 +11,7 @@
    style="width: 100%"
    :filterOption="false"
    @change="handleAsyncChange"
    allowClear
    :allowClear="allowClear"
    :notFoundContent="loading ? undefined : null"
    mode="default"
  >
@@ -48,6 +48,11 @@
      type: String,
      default: '',
      required: false
    },
    allowClear:{
      type:Boolean,
      default:()=>true,
      required:false
    }
  },
  data() {
src/views/eam/maintenance/EamInspectionOrderList.vue
@@ -107,12 +107,6 @@
          </template>
          <a v-else @click="handleDetail(record)">详情</a>
          <template v-if="record.inspectionStatus === 'COMPLETE'">
            <a-divider type="vertical"/>
             <a @click="handlePrint(record)">打印</a>
          </template>
        </span>
      </a-table>
    </div>
@@ -164,11 +158,6 @@
            }
          },
          {
            title: '工单号',
            align: 'center',
            dataIndex: 'orderNum'
          },
          {
            title: '统一编码',
            align: 'center',
            dataIndex: 'equipmentCode'
@@ -177,6 +166,16 @@
            title: '设备名称',
            align: 'center',
            dataIndex: 'equipmentName'
          },
          {
            title: '设备型号',
            align: 'center',
            dataIndex: 'equipmentModel'
          },
          {
            title: '工单号',
            align: 'center',
            dataIndex: 'orderNum'
          },
          {
            title: '规范名称',
@@ -282,12 +281,8 @@
        this.$refs.modalFormXq.getBasicInformation({ ...record, dataId: record.id })
      },
      handleInspection(id) {
        if (!this.url.receiveInspectionOrder) {
          this.$message.error('请设置url.receiveInspectionOrder!')
          return
        }
        var that = this
        getAction(that.url.receiveInspectionOrder, { id: id }).then((res) => {
        getAction(that.url.receiveInspectionOrder, { id }).then((res) => {
          if (res.success) {
            that.$notification.success({
              message: '消息',
@@ -390,7 +385,6 @@
                  that.loadData()
                  that.onClearSelected()
                } else {
                  // that.$message.warning(res.message);
                  that.$notification.warning({
                    message: '消息',
                    description: res.message
@@ -407,11 +401,6 @@
        this.queryParam.inspectionDateBegin = dateString[0]
        this.queryParam.inspectionDateEnd = dateString[1]
      },
      handlePrint(record) {
        let href = `${window._CONFIG['domianURL']}/jmreport/view/1094871242505912320?id=` + record.id + `&equipmentId=` + record.equipmentId + `&inspectionDate=` + record.inspectionDate //网站链接
        window.open(href, '_blank')
      }
    }
  }
</script>
src/views/eam/maintenance/modules/EamInspectionOrderModal.vue
@@ -4,7 +4,8 @@
    <a-spin :spinning="spinning">
      <a-form-model ref="form" :model="model" :rules="validatorRules" :labelCol="labelCol" :wrapperCol="wrapperCol">
        <a-row :gutter="24">
        <a-row>
          <a-col :span="8">
            <a-form-model-item prop="standardCode" label="工单号">
              <a-input placeholder="工单号自动生成" v-model="model.orderNum" disabled/>
@@ -12,62 +13,65 @@
          </a-col>
          <a-col :span="8">
            <a-form-model-item prop="equipmentId" label="统一编码">
              <MaintenanceEquipmentSelect placeholder="请输入统一编码或名称搜索" v-model="model.equipmentId"
                                          :maintenanceCategory="maintenanceCategory" :disabled="disabled"
              <MaintenanceEquipmentSelect placeholder="请输入统一编码或名称搜索" v-model="model.equipmentId" :allow-clear="false"
                                          maintenanceCategory="POINT_INSPECTION" :disabled="!editable"
                                          @autocompleteForm="autocompleteForm"/>
            </a-form-model-item>
          </a-col>
          <a-col :span="8">
            <a-form-model-item prop="standardName" label="规范名称">
              <a-input placeholder="选择设备后自动带出" readOnly v-model="model.standardName"/>
            </a-form-model-item>
          </a-col>
        </a-row>
        <a-row :gutter="24">
          <a-col :span="8">
            <a-form-model-item prop="standardCode" label="规范编码">
              <a-input placeholder="选择设备后自动带出" readOnly v-model="model.standardCode"/>
            </a-form-model-item>
          </a-col>
          <a-col :span="8">
            <a-form-model-item label="保养周期">
              <a-input placeholder="选择设备后自动带出" v-model="model.maintenancePeriod" readOnly/>
            </a-form-model-item>
          </a-col>
          <a-col :span="8">
            <a-form-model-item prop="operator" label="点检人">
              <j-search-select-tag v-model="model.operator" placeholder="请选择点检人" :disabled="!model.equipmentId"
                                   :dictOptions="maintenanceOperatorOptions"/>
              <a-input placeholder="选择设备后自动带出" disabled v-model="model.standardName"/>
            </a-form-model-item>
          </a-col>
        </a-row>
        <a-row :gutter="24">
        <a-row>
          <a-col :span="8">
            <a-form-model-item label="点检日期" prop="inspectionDate">
              <j-date :placeholder="!model.maintenancePeriod?'请填写保养周期':'请选择点检日期'" v-model="model.inspectionDate"
                      :disabled="!model.maintenancePeriod"
                      @change="expirationTimeFrom(model.inspectionDate)" style="width: 100%"/>
            <a-form-model-item prop="standardCode" label="规范编码">
              <a-input placeholder="选择设备后自动带出" disabled v-model="model.standardCode"/>
            </a-form-model-item>
          </a-col>
          <a-col :span="8">
            <a-form-model-item label="点检过期时间">
              <j-date placeholder="选择点检日期后自动带出" v-model="model.expirationTime" disabled style="width: 100%"/>
            <a-form-model-item label="保养周期">
              <a-input placeholder="选择设备后自动带出" v-model="model.maintenancePeriod" disabled/>
            </a-form-model-item>
          </a-col>
          <a-col :span="8">
            <a-form-model-item label="点检日期" prop="inspectionDate">
              <a-date-picker v-model="model.inspectionDate" @change="expirationTimeFrom(model.inspectionDate)"
                             :allow-clear="false" value-format="YYYY-MM-DD" style="width: 100%"/>
            </a-form-model-item>
          </a-col>
        </a-row>
        <a-row :gutter="24">
        <a-row>
          <a-col :span="8">
            <a-form-model-item label="点检过期时间">
              <a-date-picker placeholder="选择点检日期后自动带出" :value="model.expirationTime" disabled style="width: 100%"
                             value-format="YYYY-MM-DD"/>
            </a-form-model-item>
          </a-col>
        </a-row>
        <a-row>
          <a-col :span="24">
            <a-form-model-item label="备注" :labelCol="{span:2}" :wrapperCol="{span:21}" prop="remark">
              <a-textarea v-model="model.remark" rows="3" placeholder="请输入备注"/>
            </a-form-model-item>
          </a-col>
        </a-row>
        <a-row :gutter="24">
          <j-vxe-table ref="editableDetailTable" :rowNumber="true" :rowSelection="true" :bordered="true"
                       :alwaysEdit="true" :toolbar="true" keep-source :height="300" :loading="detail.loading"
                       :dataSource="detail.dataSource" :columns="detail.columns" style="margin-top: 8px;"/>
        </a-row>
        <a-tabs default-active-key="1">
          <a-tab-pane key="1" tab="日点检">
            <j-vxe-table rowNumber bordered keep-source :height="300" always-edit :dataSource="detail.dayInspectionList"
                         :columns="detail.standardInspectionColumns"/>
          </a-tab-pane>
          <a-tab-pane key="2" tab="周点检" v-if="detail.weekInspectionList.length>0" forceRender>
            <j-vxe-table rowNumber bordered always-edit keep-source :height="300"
                         :dataSource="detail.weekInspectionList"
                         :columns="detail.weekInspectionColumns"/>
          </a-tab-pane>
        </a-tabs>
      </a-form-model>
    </a-spin>
  </j-modal>
@@ -78,7 +82,7 @@
  import { JVxeTableModelMixin } from '@/mixins/JVxeTableModelMixin.js'
  import { JVXETypes } from '@/components/jeecg/JVxeTable'
  import MaintenanceEquipmentSelect from '@views/eam/equipment/modules/MaintenanceEquipmentSelect'
  import moment from 'dayjs'
  import moment from 'moment'
  export default {
    name: 'EamMaintenanceStandardModal',
@@ -101,66 +105,93 @@
        },
        confirmLoading: false,
        spinning: false,
        disabled: false,
        editable: true,
        validatorRules: {
          // standardName: [
          //   { required: true, message: '请输入规范名称!' }
          // ],
          inspectionDate: [
            { required: true, message: '请选择点检日期', trigger: 'change' }
          ],
          // maintenancePeriod: [
          //   { required: true, message: '请输入保养周期,单位:天!' }
          // ],
          equipmentId: [
            { required: true, message: '请选择设备', trigger: 'change' }
            { required: true, message: '请输入统一编码或名称搜索', trigger: 'change' }
          ]
        },
        url: {
          add: '/eam/eamInspectionOrder/add',
          edit: '/eam/eamInspectionOrder/edit',
          detail: '/eam/eamMaintenanceStandardDetail/queryList',
          detailOrder: '/eam/eamInspectionOrderDetail/queryList',
          userSelect: '/eam/user_select/list'
          weekInspectionOrderList: '/eam/eamWeekInspectionDetail/queryStandardList'
        },
        maintenanceCategory: 'POINT_INSPECTION',
        maintenanceOperatorOptions: [],
        standardId: '',
        standardType: false,
        detail: {
          loading: false,
          dataSource: [],
          columns: [
          dayInspectionList: [],
          weekInspectionList: [],
          standardInspectionColumns: [
            {
              title: '序号',
              key: 'itemCode',
              type: JVXETypes.inputNumber,
              width: '10%',
              width: 100,
              align: 'center',
              validateRules: [
                { required: true, message: '请输入${title}' },
                { unique: true, message: '序号不能重复' }
              ]
              disabled: true
            },
            {
              title: '保养项',
              key: 'itemName',
              type: JVXETypes.textarea,
              width: '20%',
              align: 'center',
              validateRules: [
                { required: true, message: '请输入${title}' }
              ]
              disabled: true
            },
            {
              title: '保养规范或要求',
              key: 'itemDemand',
              type: JVXETypes.textarea,
              align: 'center',
              disabled: true
            }
          ],
          weekInspectionColumns: [],
          weekInspectionOrderColumns: [
            {
              title: '序号',
              key: 'itemCode',
              type: JVXETypes.normal,
              width: 60,
              align: 'center',
              fixed: 'left'
            },
            {
              title: '保养项',
              key: 'itemName',
              type: JVXETypes.textarea,
              align: 'center',
              fixed: 'left'
            },
            {
              title: '保养要求',
              key: 'itemDemand',
              type: JVXETypes.textarea,
              width: '30%',
              align: 'center',
              validateRules: [
                { required: true, message: '请输入${title}' }
              ]
              fixed: 'left'
            },
            {
              title: '点检结果',
              key: 'inspectionResult',
              type: JVXETypes.slot,
              slotName: 'inspectionResult',
              align: 'center'
            },
            {
              title: '异常描述',
              key: 'exceptionDescription',
              type: JVXETypes.slot,
              slotName: 'exceptionDescription',
              align: 'center'
            },
            {
              title: '异常是否报修',
              key: 'reportFlag',
              type: JVXETypes.slot,
              slotName: 'reportFlag',
              align: 'center'
            }
          ]
        }
@@ -169,61 +200,48 @@
    methods: {
      add() {
        this.model = {}
        this.detail.dataSource = []
        this.visible = true
        this.disabled = false
        this.standardType = false
        this.editable = true
        this.detail.dayInspectionList = []
        this.detail.weekInspectionList = []
      },
      edit(record) {
        this.model = Object.assign({}, record)
        this.standardId = record.standardId
        this.disabled = true
        this.standardType = true
        this.editable = false
        this.visible = true
        this.detail.dataSource = []
        if (record && record.referenceFile) {
          let obj = JSON.parse(record.referenceFile)
          this.model.fileList = [obj]
        } else {
          this.model.fieldList = []
        }
        this.loadDetailOrder(record.id)
        this.spinning = true
      },
      async handleOk() {
        const that = this
        let errMap = await that.$refs.editableDetailTable.validateTable()
        if (errMap) {
          this.$message.warning('数据校验失败!')
          return
        }
        // è§¦å‘表单验证
        this.$refs.form.validate(valid => {
          if (valid) {
            let tableData = that.$refs.editableDetailTable.getTableData()
            let removeData = that.$refs.editableDetailTable.getDeleteData()
            that.model.tableDetailList = [...tableData]
            that.model.removeDetailList = [...removeData]
            that.confirmLoading = that.spinning = true
            let httpurl = ''
            let httpUrl = ''
            let method = ''
            if (!this.model.id) {
              httpurl += this.url.add
              httpUrl += this.url.add
              method = 'post'
            } else {
              httpurl += this.url.edit
              httpUrl += this.url.edit
              method = 'put'
            }
            this.model.standardId = this.standardId
            httpAction(httpurl, this.model, method).then((res) => {
            httpAction(httpUrl, this.model, method).then((res) => {
              if (res.success) {
                that.$message.success(res.message)
                that.$notification.success({
                  message: '消息',
                  description: res.message
                })
                that.$emit('ok')
                that.close()
              } else {
                that.$message.warning(res.message)
                that.$notification.warning({
                  message: '消息',
                  description: res.message
                })
              }
            }).finally(() => {
              that.confirmLoading = that.spinning = false
@@ -238,92 +256,60 @@
        this.model.standardName = selectObj.standardName
        this.model.maintenancePeriod = selectObj.maintenancePeriod
        this.model.standardCode = selectObj.standardCode
        // è‹¥å–消设备选择后保养周期为空则需清空点检日期和点检过期时间
        if (!this.model.equipmentId) {
          delete this.model.inspectionDate
          delete this.model.expirationTime
        } else {
          // å¦‚果点检日期存在,则在重新选择设备后即保养周期可能发生改变后重新计算过期时间
          if (this.model.inspectionDate) this.expirationTimeFrom(this.model.inspectionDate)
        }
        if (!this.standardType) {
          console.log('this.standardType', this.standardType)
          this.standardId = selectObj.id
          this.loadDetail(selectObj.id)
        }
        this.$nextTick(() => this.loadMaintenanceOperatorList(this.model.equipmentId))
        this.standardId = selectObj.id
        this.detail.dayInspectionList = []
        this.detail.weekInspectionList = []
        this.loadDetail()
      },
      expirationTimeFrom(date) {
        // é€‰æ‹©ç‚¹æ£€æ—¥æœŸåŽèŽ·å–ç‚¹æ£€å·¥å•æ˜Žç»†åˆ—è¡¨
        if (this.model.equipmentId) this.getWeekInspectionOrderListByApi()
        //过期时间是初始时间+保养周期
        if (date && this.model.maintenancePeriod) {
          // è½¬æ¢ä¸ºæ—¶é—´æˆ³å­—符串(或指定格式)
          this.model.expirationTime = moment(date)
            .add(this.model.maintenancePeriod, 'days')
            .format('YYYY-MM-DD')
          this.model.expirationTime = moment(date).add(this.model.maintenancePeriod, 'days').format('YYYY-MM-DD')
        } else {
          this.model.expirationTime = null // æ¸…空无效值
        }
      },
      //加载详情数据
      loadDetail(standardId) {
        this.detail.dataSource = []
        if (standardId) {
          console.log('standardId', standardId)
          this.spinning = true
          getAction(this.url.detail, { standardId: standardId })
            .then(res => {
              if (res.success) {
                this.detail.dataSource = [...res.result]
              }
            })
            .finally(() => {
              this.spinning = false
            })
        }
      },
      loadDetail() {
      loadDetailOrder(orderId) {
        if (orderId) {
          this.spinning = true
          getAction(this.url.detailOrder, { orderId: orderId })
            .then(res => {
              if (res.success) {
                this.detail.dataSource = [...res.result]
              }
            })
            .finally(() => {
              this.spinning = false
            })
        }
      },
      loadMaintenanceOperatorList(equipmentId) {
        this.maintenanceOperatorOptions = []
        let params = { positionCode: 'PCR0001' }
        if (equipmentId) {
          params.equipmentId = equipmentId
        } else {
          delete this.model.operator
          return
        }
        const that = this
        getAction(this.url.userSelect, params)
        this.spinning = true
        getAction(this.url.detail, { standardId: this.standardId })
          .then(res => {
            if (res.success) {
              that.maintenanceOperatorOptions = res.result.map(item => ({
                key: item.id,
                value: item.username,
                text: item.realname
              }))
              if (!that.maintenanceOperatorOptions.find(item => item.value === that.model.operator)) delete that.model.operator
            } else {
              if (that.model.operator) delete that.model.operator
              this.detail.dayInspectionList = res.result.filter(item => item.itemCategory == 'DAY_INSPECTION')
              this.detail.weekInspectionList = res.result.filter(item => item.itemCategory == 'WEEK_INSPECTION')
              this.detail.weekInspectionColumns = this.detail.standardInspectionColumns
              // å¦‚果点检日期存在,则在重新选择设备后即保养周期可能发生改变后重新计算过期时间
              if (this.model.inspectionDate) this.expirationTimeFrom(this.model.inspectionDate)
            }
          })
          .catch(err => {
            if (that.model.operator) delete that.model.operator
          .finally(() => {
            if (!this.model.inspectionDate) this.spinning = false
          })
      },
      // èŽ·å–ç‚¹æ£€å·¥å•ä¸­çš„å‘¨ç‚¹æ£€æ˜Žç»†
      getWeekInspectionOrderListByApi() {
        this.spinning = true
        getAction(this.url.weekInspectionOrderList, {
          standardId: this.standardId,
          inspectionDate: this.model.inspectionDate
        })
          .then(res => {
            if (res.success) {
              if (res.result.length > 0) {
                this.detail.weekInspectionList = res.result
                this.detail.weekInspectionColumns = this.detail.weekInspectionOrderColumns
              }
            }
          })
          .finally(() => {
            this.spinning = false
          })
      },
@@ -338,8 +324,4 @@
      }
    }
  }
</script>
<style lang="less" scoped>
</style>
</script>
src/views/system/modules/UserModal.vue
@@ -1,14 +1,5 @@
<template>
  <a-drawer
    :title="title"
    :maskClosable="true"
    :width="drawerWidth"
    placement="right"
    :closable="true"
    @close="handleCancel"
    :visible="visible"
    style="height: 100%;overflow: auto;padding-bottom: 53px;"
  >
  <a-drawer :title="title" :maskClosable="true" :width="drawerWidth" placement="right" :closable="true" @close="handleCancel" :visible="visible" style="height: 100%;overflow: auto;padding-bottom: 53px;">
    <template slot="title">
      <div style="width: 100%;">
@@ -25,104 +16,42 @@
    </template>
    <a-spin :spinning="confirmLoading">
      <a-form-model
        ref="form"
        :model="model"
        :rules="validatorRules"
      >
      <a-form-model ref="form" :model="model" :rules="validatorRules">
        <a-form-model-item
          label="用户账号"
          :labelCol="labelCol"
          :wrapperCol="wrapperCol"
          prop="username"
        >
          <a-input
            placeholder="请输入用户账号"
            v-model="model.username"
            :readOnly="!!model.id"
            autocomplete="off"
          />
        <a-form-model-item label="用户账号" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="username">
          <a-input placeholder="请输入用户账号" v-model="model.username" :readOnly="!!model.id" autocomplete="off"/>
        </a-form-model-item>
        <template v-if="!model.id">
          <a-form-model-item
            label="登录密码"
            :labelCol="labelCol"
            :wrapperCol="wrapperCol"
            prop="password"
          >
            <a-input
              type="password"
              placeholder="请输入登录密码"
              v-model="model.password"
              autocomplete="off"
            />
          <a-form-model-item label="登录密码" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="password">
            <a-input type="password" placeholder="请输入登录密码" v-model="model.password" autocomplete="off"/>
          </a-form-model-item>
          <a-form-model-item
            label="确认密码"
            :labelCol="labelCol"
            :wrapperCol="wrapperCol"
            prop="confirmpassword"
          >
            <a-input
              type="password"
              @blur="handleConfirmBlur"
              placeholder="请重新输入登录密码"
              v-model="model.confirmpassword"
            />
          <a-form-model-item label="确认密码" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="confirmpassword">
            <a-input type="password" @blur="handleConfirmBlur" placeholder="请重新输入登录密码" v-model="model.confirmpassword"/>
          </a-form-model-item>
        </template>
        <a-form-model-item
          label="用户姓名"
          :labelCol="labelCol"
          :wrapperCol="wrapperCol"
          prop="realname"
        >
          <a-input
            placeholder="请输入用户姓名"
            v-model="model.realname"
          />
        <a-form-model-item label="用户姓名" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="realname">
          <a-input placeholder="请输入用户姓名" v-model="model.realname"/>
        </a-form-model-item>
        <a-form-model-item
          label="工号"
          :labelCol="labelCol"
          :wrapperCol="wrapperCol"
          prop="workNo"
        >
          <a-input
            placeholder="请输入工号"
            v-model="model.workNo"
          />
        <a-form-model-item label="工号" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="workNo">
          <a-input placeholder="请输入工号" v-model="model.workNo"/>
        </a-form-model-item>
        <a-form-model-item
          label="角色分配"
          :labelCol="labelCol"
          :wrapperCol="wrapperCol"
          v-show="!roleDisabled"
        >
          <j-multi-select-tag
            :disabled="disableSubmit"
            v-model="model.selectedroles"
            :options="rolesOptions"
            placeholder="请选择角色"
          >
        <a-form-model-item label="角色分配" :labelCol="labelCol" :wrapperCol="wrapperCol" v-show="!roleDisabled">
          <j-multi-select-tag :disabled="disableSubmit" v-model="model.selectedroles" :options="rolesOptions" placeholder="请选择角色">
          </j-multi-select-tag>
        </a-form-model-item>
        <a-form-model-item
          label="首页权限"
          :labelCol="labelCol"
          :wrapperCol="wrapperCol"
        >
          <a-radio-group
            v-model="model.userType"
            :defaultValue="0"
          >
        <a-form-model-item label="岗位" :labelCol="labelCol" :wrapperCol="wrapperCol">
          <!--          <j-select-position placeholder="请选择岗位" :multiple="false" v-model="model.post"/>-->
          <j-dict-select-tag placeholder="请选择岗位" dict-code="sys_position, name, code" v-model="model.post" />
        </a-form-model-item>
        <a-form-model-item label="首页权限" :labelCol="labelCol" :wrapperCol="wrapperCol">
          <a-radio-group v-model="model.userType" :defaultValue="0">
            <a-radio :value="4">公司级</a-radio>
            <a-radio :value="3">车间级</a-radio>
            <a-radio :value="2">工段级</a-radio>
@@ -132,143 +61,45 @@
        </a-form-model-item>
        <!--部门分配-->
        <a-form-model-item
          v-if="isDepartType== 0"
          label="部门分配"
          :labelCol="labelCol"
          :wrapperCol="wrapperCol"
          v-show="!departDisabled"
        >
          <j-select-depart
            v-model="model.selecteddeparts"
            :multi="true"
            @back="backDepartInfo"
            :backDepart="true"
            :treeOpera="true"
          >>
          </j-select-depart>
        <a-form-model-item v-if="isDepartType== 0" label="部门分配" :labelCol="labelCol" :wrapperCol="wrapperCol" v-show="!departDisabled">
          <j-select-depart v-model="model.selecteddeparts" :multi="true" @back="backDepartInfo" :backDepart="true" :treeOpera="true"/>
        </a-form-model-item>
        <!--MDC车间分配-->
        <a-form-model-item
          label="MDC车间分配"
          :labelCol="labelCol"
          :wrapperCol="wrapperCol"
          v-show="!productionDisabled"
        >
          <j-select-production
            v-model="model.selectedProduction"
            :multi="true"
            @back="backProductionInfo"
            :backProduction="true"
            :treeProductOpera="true"
          ></j-select-production>
        <a-form-model-item label="MDC车间分配" :labelCol="labelCol" :wrapperCol="wrapperCol" v-show="!productionDisabled">
          <j-select-production v-model="model.selectedProduction" :multi="true" @back="backProductionInfo" :backProduction="true" :treeProductOpera="true"/>
        </a-form-model-item>
        <a-form-model-item
          label="MDC设备分配"
          :labelCol="labelCol"
          :wrapperCol="wrapperCol"
          v-show="!productionDisabled"
        >
          <a-input-search
            :readOnly="true"
            v-model="model.equipmentIds"
            @search="deviceSearch"
            enter-button
            placeholder="请选择设备"
            :disabled="!model.selectedProduction"
          />
        <a-form-model-item label="MDC设备分配" :labelCol="labelCol" :wrapperCol="wrapperCol" v-show="!productionDisabled">
          <a-input-search :readOnly="true" v-model="model.equipmentIds" @search="deviceSearch" enter-button placeholder="请选择设备" :disabled="!model.selectedProduction"/>
        </a-form-model-item>
        <a-form-model-item
          label="EAM中心分配"
          :labelCol="labelCol"
          :wrapperCol="wrapperCol"
          prop="areaId"
        >
          <j-multi-select-tag
            :triggerChange="true"
            v-model="model.eamFactoryIds"
            dictCode="mom_base_area,name,id,del_flag = 0 and type = 1"
            placeholder="请维护中心"
          >
          </j-multi-select-tag>
        <a-form-model-item label="EAM中心分配" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="areaId">
          <j-multi-select-tag :triggerChange="true" v-model="model.eamFactoryIds" dictCode="mom_base_area,name,id,del_flag = 0 and type = 1" placeholder="请维护中心"/>
        </a-form-model-item>
        <a-form-model-item
          label="EAM设备分配"
          :labelCol="labelCol"
          :wrapperCol="wrapperCol"
          v-show="!productionDisabled"
        >
          <a-input-search
            :readOnly="true"
            v-model="model.eamEquipmentIds"
            @search="deviceSearch"
            enter-button
            placeholder="请选择设备"
            :disabled="!model.selectedProduction"
          />
        <a-form-model-item label="EAM设备分配" :labelCol="labelCol" :wrapperCol="wrapperCol" v-show="!productionDisabled">
          <a-input-search :readOnly="true" v-model="model.eamEquipmentIds" @search="deviceSearch" enter-button placeholder="请选择设备" :disabled="!model.selectedProduction"/>
        </a-form-model-item>
        <a-form-model-item
          label="维修部门/班组分配"
          :labelCol="labelCol"
          :wrapperCol="wrapperCol"
          v-show="!repairDepartDisabled"
        >
          <j-select-repair-depart
            v-model="model.selectedRepairDeparts"
            :multi="true"
            @back="backRepairDepartInfo"
            :backRepairDepart="true"
            :treeRepairDepartOpera="true"
          ></j-select-repair-depart>
        <a-form-model-item label="维修部门/班组分配" :labelCol="labelCol" :wrapperCol="wrapperCol" v-show="!repairDepartDisabled">
          <j-select-repair-depart v-model="model.selectedRepairDeparts" :multi="true" @back="backRepairDepartInfo" :backRepairDepart="true" :treeRepairDepartOpera="true"/>
        </a-form-model-item>
        <a-form-model-item
          label="负责部门"
          :labelCol="labelCol"
          :wrapperCol="wrapperCol"
          v-if="departIdShow==true"
        >
          <j-multi-select-tag
            :disabled="disableSubmit"
            v-model="model.departIds"
            :options="nextDepartOptions"
            placeholder="请选择负责部门"
          >
          </j-multi-select-tag>
        <a-form-model-item label="负责部门" :labelCol="labelCol" :wrapperCol="wrapperCol" v-if="departIdShow==true">
          <j-multi-select-tag :disabled="disableSubmit" v-model="model.departIds" :options="nextDepartOptions" placeholder="请选择负责部门"/>
        </a-form-model-item>
      </a-form-model>
    </a-spin>
    <div
      class="drawer-bottom-button"
      v-show="!disableSubmit"
    >
      <a-popconfirm
        title="确定放弃编辑?"
        @confirm="handleCancel"
        okText="确定"
        cancelText="取消"
      >
    <div class="drawer-bottom-button" v-show="!disableSubmit">
      <a-popconfirm title="确定放弃编辑?" @confirm="handleCancel" okText="确定" cancelText="取消">
        <a-button style="margin-right: .8rem">取消</a-button>
      </a-popconfirm>
      <a-button
        @click="handleSubmit"
        type="primary"
        :loading="confirmLoading"
      >提交
      </a-button>
      <a-button @click="handleSubmit" type="primary" :loading="confirmLoading">提交</a-button>
    </div>
    <select-device-modal
      ref="selectDeviceModal"
      @selectFinished="selectOK"
      :title="'选择设备'"
    />
    <select-device-modal ref="selectDeviceModal" @selectFinished="selectOK" :title="'选择设备'"/>
  </a-drawer>
</template>