qushaowei
2023-10-28 345ca30ff9f623dc64e1af03fde456f63d18423a
三保 授权  二保  移交单修改
已添加1个文件
已修改20个文件
1088 ■■■■ 文件已修改
src/views/eam/Daily3MaintenanceOrderList.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/DailyInspectionOrderList.vue 46 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/DailyMaintenanceOrderList.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/InspectionCycleList.vue 68 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/MaintenanceCycleList.vue 59 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/modules/daily3MaintenanceOrder/DailyMaintenanceOrderExeDrawer.vue 32 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/modules/daily3MaintenanceOrder/EquipmentPrecisionCheckOrderModal.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/modules/dailyInspectionOrder/DailyInspectionOrderExeDrawer.vue 38 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/modules/dailyInspectionOrder/DailyInspectionOrderModal.vue 53 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/modules/dailyInspectionOrder/DailyInspectionStandardList.vue 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/modules/dailyInspectionStandard/DailyInspectionStandardDetail.vue 30 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/modules/dailyInspectionStandard/DailylnspectionStandardModal.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/modules/dailyInspectionStandard/JSelectDailylnspectionStandardModal.vue 30 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/modules/dailyMaintenanceOrder/DailyMaintenanceOrderExeDrawer.vue 137 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/modules/dailyMaintenanceOrder/FinishDevolutionModal.vue 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/modules/dailyMaintenanceOrder/MaintenanceOrderModal.vue 23 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/modules/dailyMaintenanceStandard/DailyMaintenanceStandardModal.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/modules/inspectionCycle/InspectionCycleForm.vue 39 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/modules/maintenanceCycle/MaintenanceCycleForm.vue 35 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/system/RoleUserList.vue 227 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/system/modules/UserRoleModalNew.vue 245 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/Daily3MaintenanceOrderList.vue
@@ -606,7 +606,7 @@
    handleOrderExe(record) {
      this.$refs.DailyMaintenanceOrderExeDrawer.visible = true
      this.$refs.DailyMaintenanceOrderExeDrawer.title = '日常保养工单执行'
      this.$refs.DailyMaintenanceOrderExeDrawer.title = '三级保养工单执行'
      this.$refs.DailyMaintenanceOrderExeDrawer.handleShow(record)
      if (record.status === '3') {
        this.$refs.DailyMaintenanceOrderExeDrawer.buttonDistable = true//保存、暂存、报工
src/views/eam/DailyInspectionOrderList.vue
@@ -323,21 +323,21 @@
          align: "center",
          dataIndex: 'statusName'
        },
        {
          title: '点检日期',
          align: "center",
          dataIndex: 'inspectionDate',
          customRender: function (text) {
            return !text ? "" : (text.length > 10 ? text.substr(0, 10) : text)
          }
        },
        // {
        //   title: '点检日期',
        //   align: "center",
        //   dataIndex: 'inspectionDate',
        //   customRender: function (text) {
        //     return !text ? "" : (text.length > 10 ? text.substr(0, 10) : text)
        //   }
        // },
        {
          title: '点检时间',
          align: "center",
          dataIndex: 'inspectionTime',
          customRender: function (text) {
            return !text ? "" : (text.length > 10 ? text.substr(11, 20) : text)
          }
          // customRender: function (text) {
          //   return !text ? "" : (text.length > 10 ? text.substr(11, 20) : text)
          // }
        },
        {
          title: '截止时间',
@@ -369,18 +369,18 @@
          align: "center",
          dataIndex: 'teamName'
        },
        {
          title: '开工条件',
          align: "center",
          dataIndex: 'startWorkCondition',
          customRender: (text) => {
            if (text == '1') {
              return "是";
            } else if (text == '0') {
              return "否";
            }
          },
        },
        // {
        //   title: '开工条件',
        //   align: "center",
        //   dataIndex: 'startWorkCondition',
        //   customRender: (text) => {
        //     if (text == '1') {
        //       return "是";
        //     } else if (text == '0') {
        //       return "否";
        //     }
        //   },
        // },
        {
          title: '点检标准编码',
          align: "center",
src/views/eam/DailyMaintenanceOrderList.vue
@@ -503,7 +503,7 @@
    handleOrderExe(record) {
      this.$refs.DailyMaintenanceOrderExeDrawer.visible = true
      this.$refs.DailyMaintenanceOrderExeDrawer.title = '日常保养工单执行'
      this.$refs.DailyMaintenanceOrderExeDrawer.title = '二级保养工单执行'
      this.$refs.DailyMaintenanceOrderExeDrawer.handleShow(record)
      if (record.status === '3') {
        this.$refs.DailyMaintenanceOrderExeDrawer.buttonDistable = true//保存、暂存、报工
src/views/eam/InspectionCycleList.vue
@@ -206,16 +206,6 @@
          },
        },
        {
          title: '版本',
          align: 'center',
          dataIndex: 'version',
        },
        {
          title: '版本状态',
          align: 'center',
          dataIndex: 'versionStatusName',
        },
        {
          title: '周期编码',
          align: 'center',
          dataIndex: 'code',
@@ -267,35 +257,45 @@
          dataIndex: 'unitName',
        },
        {
          title: '调整方式',
          title: '版本',
          align: 'center',
          dataIndex: 'arrangeWayName',
          dataIndex: 'version',
        },
        {
          title: '开工条件',
          title: '版本状态',
          align: 'center',
          dataIndex: 'startConditionName',
          dataIndex: 'versionStatusName',
        },
        {
          title: '逾期处理方式',
          align: 'center',
          dataIndex: 'overdueDisposeModeName',
        },
        {
          title: '依据日历',
          align: 'center',
          dataIndex: 'accordingCalendarName',
        },
        {
          title: '生效时间',
          align: 'center',
          dataIndex: 'takeEffectTime',
        },
        {
          title: '失效时间',
          align: 'center',
          dataIndex: 'loseEfficacyTime',
        },
        // {
        //   title: '调整方式',
        //   align: 'center',
        //   dataIndex: 'arrangeWayName',
        // },
        // {
        //   title: '开工条件',
        //   align: 'center',
        //   dataIndex: 'startConditionName',
        // },
        // {
        //   title: '逾期处理方式',
        //   align: 'center',
        //   dataIndex: 'overdueDisposeModeName',
        // },
        // {
        //   title: '依据日历',
        //   align: 'center',
        //   dataIndex: 'accordingCalendarName',
        // },
        // {
        //   title: '生效时间',
        //   align: 'center',
        //   dataIndex: 'takeEffectTime',
        // },
        // {
        //   title: '失效时间',
        //   align: 'center',
        //   dataIndex: 'loseEfficacyTime',
        // },
        {
          title: '创建人',
          align: 'center',
src/views/eam/MaintenanceCycleList.vue
@@ -191,16 +191,7 @@
            return parseInt(index) + 1
          },
        },
        {
          title: '版本',
          align: 'center',
          dataIndex: 'version',
        },
        {
          title: '版本状态',
          align: 'center',
          dataIndex: 'versionStatusName',
        },
        {
          title: '周期编码',
          align: 'center',
@@ -252,30 +243,40 @@
          align: 'center',
          dataIndex: 'unitName',
        },
        // {
        //   title: '调整方式',
        //   align: 'center',
        //   dataIndex: 'arrangeWayName',
        // },
        // {
        //   title: '逾期处理方式',
        //   align: 'center',
        //   dataIndex: 'overdueDisposeModeName',
        // },
        // {
        //   title: '依据日历',
        //   align: 'center',
        //   dataIndex: 'accordingCalendarName',
        // },
        // {
        //   title: '生效时间',
        //   align: 'center',
        //   dataIndex: 'takeEffectTime',
        // },
        // {
        //   title: '失效时间',
        //   align: 'center',
        //   dataIndex: 'loseEfficacyTime',
        // },
        {
          title: '调整方式',
          title: '版本',
          align: 'center',
          dataIndex: 'arrangeWayName',
          dataIndex: 'version',
        },
        {
          title: '逾期处理方式',
          title: '版本状态',
          align: 'center',
          dataIndex: 'overdueDisposeModeName',
        },
        {
          title: '依据日历',
          align: 'center',
          dataIndex: 'accordingCalendarName',
        },
        {
          title: '生效时间',
          align: 'center',
          dataIndex: 'takeEffectTime',
        },
        {
          title: '失效时间',
          align: 'center',
          dataIndex: 'loseEfficacyTime',
          dataIndex: 'versionStatusName',
        },
        {
          title: '创建人',
src/views/eam/modules/daily3MaintenanceOrder/DailyMaintenanceOrderExeDrawer.vue
@@ -348,7 +348,7 @@
  },
  data() {
    return {
      title: "日常保养工单执行",
      title: "三级保养工单执行",
      visible: false,
      maskClosable: true,
      confirmLoading: false,
@@ -422,26 +422,26 @@
        //   align: 'center',
        //   dataIndex: 'maintenanceTool',
        // },
        {
          title: '安全要求',
          align: 'center',
          dataIndex: 'maintenanceRequire',
        },
        {
          title: '工时定额(小时)',
          align: 'center',
          dataIndex: 'workingHourQuota',
        },
        // {
        //   title: '安全要求',
        //   align: 'center',
        //   dataIndex: 'maintenanceRequire',
        // },
        // {
        //   title: '工时定额(小时)',
        //   align: 'center',
        //   dataIndex: 'workingHourQuota',
        // },
        {
          title: '保养周期',
          align: 'center',
          dataIndex: 'maintenanceCycleName',
        },
        {
          title: '维保专业',
          align: 'center',
          dataIndex: 'maintenanceSpecialtyName',
        },
        // {
        //   title: '维保专业',
        //   align: 'center',
        //   dataIndex: 'maintenanceSpecialtyName',
        // },
        {
          title: '保养人',
          align: 'center',
src/views/eam/modules/daily3MaintenanceOrder/EquipmentPrecisionCheckOrderModal.vue
@@ -78,6 +78,7 @@
      rowKey='id'
      :columns="columns"
      :dataSource="dataSource"
      :pagination="false"
    >
      <template
        v-for="col in columns"
src/views/eam/modules/dailyInspectionOrder/DailyInspectionOrderExeDrawer.vue
@@ -129,7 +129,7 @@
                  :pagination="ipagination"
                  :loading="loading"
                  @change="handleTableChange"
                  :scroll="{ x: 'calc(1200px + 50%)', y: 900 }"
                  :scroll="{ x: 'calc(1000px + 50%)', y: 900 }"
                >
                  <template
                    v-for="col in columns"
@@ -159,6 +159,8 @@
                        <!-- :options="record.inspectionCycles" -->
                        <a-select-option value="1">正常</a-select-option>
                        <a-select-option value="2">异常</a-select-option>
                        <a-select-option value="3">故障停机</a-select-option>
                        <a-select-option value="4">没开机</a-select-option>
                      </a-select>
                      <a-input-number
                        :value="text"
@@ -361,28 +363,28 @@
          align: 'center',
          dataIndex: 'detectionStandard',
        },
        {
          title: '合格范围',
          align: 'center',
          dataIndex: 'acceptabilityLimit',
        },
        {
          title: '方法',
          align: 'center',
          dataIndex: 'inspectionMethod_dictText',
        },
        {
          title: '工具',
          align: 'center',
          dataIndex: 'inspectionTool',
        },
        // {
        //   title: '合格范围',
        //   align: 'center',
        //   dataIndex: 'acceptabilityLimit',
        // },
        // {
        //   title: '方法',
        //   align: 'center',
        //   dataIndex: 'inspectionMethod_dictText',
        // },
        // {
        //   title: '工具',
        //   align: 'center',
        //   dataIndex: 'inspectionTool',
        // },
        {
          title: '*点检结果',
          align: 'center',
          dataIndex: 'inspectionProjectResult',
          scopedSlots: { customRender: 'inspectionProjectResult' },
          className: 'red',
        },
        // className: 'red',
        {
          title: '判定',
          align: 'center',
@@ -411,9 +413,9 @@
          title: '*异常处置',
          align: 'center',
          dataIndex: 'treatmentMeasure',
          className: 'red',
          scopedSlots: { customRender: 'treatmentMeasure' },
        },
        // className: 'red',
      ],
      url: {
        list: "/eam/inspectionOrderDetail/list",
src/views/eam/modules/dailyInspectionOrder/DailyInspectionOrderModal.vue
@@ -26,7 +26,7 @@
              />
            </a-form-item>
          </a-col>
          <a-col :span="12">
          <!-- <a-col :span="12">
            <a-form-item
              label="开工条件"
              :labelCol="labelCol"
@@ -40,7 +40,7 @@
                @change="handle2Switch(model.startWorkCondition)"
              />
            </a-form-item>
          </a-col>
          </a-col> -->
        </a-row>
        <a-row :gutter="24">
          <a-col :span="12">
@@ -386,28 +386,28 @@
        {
          title: '点检项目',
          align: 'center',
          dataIndex: 'inspectionProjectNum'
          dataIndex: 'inspectionProjectName'
        },
        {
          title: '检测标准',
          align: 'center',
          dataIndex: 'detectionStandard'
        },
        {
          title: '合格范围',
          align: 'center',
          dataIndex: 'acceptabilityLimit'
        },
        {
          title: '方法',
          align: 'center',
          dataIndex: 'inspectionMethodName'
        },
        {
          title: '工具',
          align: 'center',
          dataIndex: 'inspectionTool'
        },
        // {
        //   title: '合格范围',
        //   align: 'center',
        //   dataIndex: 'acceptabilityLimit'
        // },
        // {
        //   title: '方法',
        //   align: 'center',
        //   dataIndex: 'inspectionMethodName'
        // },
        // {
        //   title: '工具',
        //   align: 'center',
        //   dataIndex: 'inspectionTool'
        // },
        {
          title: '示意图',
          align: "center",
@@ -489,7 +489,8 @@
  methods: {
    add() {
      this.edit({ startWorkCondition: "1", inspectionOrderDetails: [] })
      this.edit({ inspectionOrderDetails: [] })
      // this.edit({ startWorkCondition: "1", inspectionOrderDetails: [] })
      this.getSeq()
    },
@@ -602,13 +603,13 @@
    //   }
    // },
    handle2Switch(startWorkCondition) {
      if ('1' == startWorkCondition) {
        this.model.startWorkCondition = '0'
      } else {
        this.model.startWorkCondition = '1'
      }
    },
    // handle2Switch(startWorkCondition) {
    //   if ('1' == startWorkCondition) {
    //     this.model.startWorkCondition = '0'
    //   } else {
    //     this.model.startWorkCondition = '1'
    //   }
    // },
    // handle2Change(val) {
    //   this.inspectionCycles = [];
src/views/eam/modules/dailyInspectionOrder/DailyInspectionStandardList.vue
@@ -160,11 +160,6 @@
          dataIndex: 'num',
        },
        {
          title: '版本',
          align: 'center',
          dataIndex: 'version',
        },
        {
          title: '设备编码',
          align: 'center',
          dataIndex: 'equipmentNum',
@@ -189,6 +184,11 @@
          align: "center",
          dataIndex: 'useDepartName'
        },
        {
          title: '版本',
          align: 'center',
          dataIndex: 'version',
        },
      ],
      url: {
        list: "/eam/inspectionStandard/findInspectionStandardList",
src/views/eam/modules/dailyInspectionStandard/DailyInspectionStandardDetail.vue
@@ -127,23 +127,23 @@
          dataIndex: 'detectionStandard',
        },
        {
          title: '合格范围',
          align: "center",
          dataIndex: 'acceptabilityLimit',
        // {
        //   title: '合格范围',
        //   align: "center",
        //   dataIndex: 'acceptabilityLimit',
        },
        {
          title: '方法',
          align: "center",
          dataIndex: 'inspectionMethodName',
        // },
        // {
        //   title: '方法',
        //   align: "center",
        //   dataIndex: 'inspectionMethodName',
        },
        {
          title: '工具',
          align: "center",
          dataIndex: 'inspectionTool',
        },
        // },
        // {
        //   title: '工具',
        //   align: "center",
        //   dataIndex: 'inspectionTool',
        // },
        {
          title: '周期',
          align: "center",
src/views/eam/modules/dailyInspectionStandard/DailylnspectionStandardModal.vue
@@ -201,6 +201,7 @@
      rowKey='id'
      :columns="columns"
      :dataSource="dataSource"
      :pagination="false"
    >
      <template
        v-for="col in columns"
src/views/eam/modules/dailyInspectionStandard/JSelectDailylnspectionStandardModal.vue
@@ -101,21 +101,21 @@
          align: 'center',
          dataIndex: 'detectionStandard'
        },
        {
          title: '合格范围',
          align: 'center',
          dataIndex: 'acceptabilityLimit'
        },
        {
          title: '方法',
          align: 'center',
          dataIndex: 'inspectionMethod_dictText'
        },
        {
          title: '工具',
          align: 'center',
          dataIndex: 'inspectionTool'
        },
        // {
        //   title: '合格范围',
        //   align: 'center',
        //   dataIndex: 'acceptabilityLimit'
        // },
        // {
        //   title: '方法',
        //   align: 'center',
        //   dataIndex: 'inspectionMethod_dictText'
        // },
        // {
        //   title: '工具',
        //   align: 'center',
        //   dataIndex: 'inspectionTool'
        // },
        // {
        //   title: '周期',
        //   align: 'center',
src/views/eam/modules/dailyMaintenanceOrder/DailyMaintenanceOrderExeDrawer.vue
@@ -152,7 +152,7 @@
                  <template
                    v-for="col in columns"
                    :slot="col.dataIndex"
                    slot-scope='text, record'
                    slot-scope='text, record, index'
                  >
                    <div :key="col.dataIndex">
                      <span
@@ -192,11 +192,39 @@
                        é¢„览
                      </a> -->
                      <a-input
                        :value="text"
                        v-if="col.dataIndex == 'maintenanceOrderDetailUda1'"
                        @change="(e)=>handleChange(e, record.key, col, index)"
                        placeholder="请输入保养人"
                      />
                      <a-input
                        :value="text"
                        v-if="col.dataIndex == 'maintenanceOrderDetailUda2'"
                        @change="(e)=>handleChange(e, record.key, col, index)"
                        placeholder="请输入执行情况"
                      />
                    </div>
                  </template>
                </a-table>
                <div :style="{width: '100%',border: '1px solid #e9e9e9',padding: '10px 16px',background: '#fff',}">
                  <a-row :style="{textAlign:'right'}">
                    <a-button
                      :style="{marginRight: '8px'}"
                      @click="handleCancel"
                    >
                      å–消
                    </a-button>
                    <a-button
                      @click="handleOk()"
                      type="primary"
                      :disabled="this.model.status!='4'"
                      :loading="confirmLoading"
                    >保存</a-button>
                  </a-row>
                  <!-- v-has="'dailyMaintenanceOrder:actualWorkHoursSave'" -->
                  <!-- :disabled="false" -->
                </div>
              </div>
            </a-tab-pane>
@@ -297,7 +325,7 @@
<script>
import { JeecgListMixin } from '@/mixins/JeecgListMixin'
import { requestPut, getAction, downFile } from '@/api/manage'
import { requestPut, getAction, downFile, postAction } from '@/api/manage'
import Tooltip from 'ant-design-vue/es/tooltip'
import { preview } from 'vue-photo-preview'
@@ -327,7 +355,7 @@
  },
  data() {
    return {
      title: "日常保养工单执行",
      title: "二级保养工单执行",
      visible: false,
      maskClosable: true,
      confirmLoading: false,
@@ -339,6 +367,7 @@
      maintenanceStandardId: '-1',
      dataSource: [],
      model: {},
      form: this.$form.createForm(this),
      labelCol: {
        xs: { span: 24 },
        sm: { span: 6 },
@@ -389,35 +418,49 @@
          align: 'center',
          dataIndex: 'standard',
        },
        {
          title: '方法',
          align: 'center',
          dataIndex: 'maintenanceMethodName',
        },
        {
          title: '工具',
          align: 'center',
          dataIndex: 'maintenanceTool',
        },
        {
          title: '安全要求',
          align: 'center',
          dataIndex: 'maintenanceRequire',
        },
        {
          title: '工时定额(小时)',
          align: 'center',
          dataIndex: 'workingHourQuota',
        },
        // {
        //   title: '方法',
        //   align: 'center',
        //   dataIndex: 'maintenanceMethodName',
        // },
        // {
        //   title: '工具',
        //   align: 'center',
        //   dataIndex: 'maintenanceTool',
        // },
        // {
        //   title: '安全要求',
        //   align: 'center',
        //   dataIndex: 'maintenanceRequire',
        // },
        // {
        //   title: '工时定额(小时)',
        //   align: 'center',
        //   dataIndex: 'workingHourQuota',
        // },
        {
          title: '保养周期',
          align: 'center',
          dataIndex: 'maintenanceCycleName',
        },
        // {
        //   title: '维保专业',
        //   align: 'center',
        //   dataIndex: 'maintenanceSpecialtyName',
        // },
        {
          title: '维保专业',
          title: '执行情况',
          align: 'center',
          dataIndex: 'maintenanceSpecialtyName',
          dataIndex: 'maintenanceOrderDetailUda2',
          width: 200,
          scopedSlots: { customRender: 'maintenanceOrderDetailUda2' },
        },
        {
          title: '保养人',
          align: 'center',
          dataIndex: 'maintenanceOrderDetailUda1',
          width: 200,
          scopedSlots: { customRender: 'maintenanceOrderDetailUda1' },
        },
      ],
      url: {
@@ -427,6 +470,7 @@
        editStatus: "/eam/dailyMaintenanceOrder/editStatus",
        revocation: "/eam/dailyMaintenanceOrder/revocation",
        report: "/eam/dailyMaintenanceOrder/report",
        edit: "/eam/dailyMaintenanceOrderDetail/edit"
      },
    }
  },
@@ -587,7 +631,46 @@
    },
    //保存
    handleOk() {
      const that = this
      this.loading = true;
      this.form.validateFields((err, values) => {
        if (!err) {
          that.confirmLoading = true
          let formData = {}
          formData.dailyMaintenanceOrderDetails = that.dataSource;
          let obj = obj = postAction(this.url.edit, formData)
          obj.then((res) => {
            if (res.success) {
              that.$message.success(res.message)
              that.$emit('ok')
            } else {
              that.$message.warning(res.message)
            }
          }).finally(() => {
            that.confirmLoading = false
            that.loadData1();
            this.loading = false;
          })
        }
      })
    },
    handleChange(value, key, column, index) {
      debugger
      let that = this;
      const temp = [...that.dataSource];
      const target = temp[index];
      if (target) {
        target[column.dataIndex] = value;
        if ('maintenanceOrderDetailUda1' == column.dataIndex) {
          target['maintenanceOrderDetailUda1'] = value.target.value;
        }
        if ('maintenanceOrderDetailUda2' == column.dataIndex) {
          target['maintenanceOrderDetailUda2'] = value.target.value;
        }
        that.dataSource = temp;
      }
    },
    view(record) {
src/views/eam/modules/dailyMaintenanceOrder/FinishDevolutionModal.vue
@@ -78,6 +78,7 @@
      rowKey='id'
      :columns="columns"
      :dataSource="dataSource"
      :pagination="false"
    >
    </a-table>
@@ -190,7 +191,7 @@
        {
          title: '类型',
          align: 'center',
          dataIndex: 'maintenanceMethod1'
          dataIndex: 'maintenanceRole'
        },
        {
@@ -201,7 +202,7 @@
        {
          title: '保养项目',
          align: 'center',
          dataIndex: 'maintenanceProjectNum'
          dataIndex: 'maintenanceProjectName'
        },
        {
          title: '保养标准',
@@ -211,12 +212,12 @@
        {
          title: '执行情况',
          align: 'center',
          dataIndex: 'maintenanceTool1'
          dataIndex: 'maintenanceOrderDetailUda2'
        },
        {
          title: '执行人',
          align: 'center',
          dataIndex: 'photo1',
          dataIndex: 'maintenanceOrderDetailUda1',
        },
      ],
src/views/eam/modules/dailyMaintenanceOrder/MaintenanceOrderModal.vue
@@ -298,6 +298,7 @@
      rowKey='id'
      :columns="columns"
      :dataSource="dataSource"
      :pagination="false"
    >
      <!-- <span
        slot="photo"
@@ -431,23 +432,23 @@
        {
          title: '保养项目',
          align: 'center',
          dataIndex: 'maintenanceProjectNum'
          dataIndex: 'maintenanceProjectName'
        },
        {
          title: '保养标准',
          align: 'center',
          dataIndex: 'standard'
        },
        {
          title: '方法',
          align: 'center',
          dataIndex: 'maintenanceMethod'
        },
        {
          title: '工具',
          align: 'center',
          dataIndex: 'maintenanceTool'
        },
        // {
        //   title: '方法',
        //   align: 'center',
        //   dataIndex: 'maintenanceMethod'
        // },
        // {
        //   title: '工具',
        //   align: 'center',
        //   dataIndex: 'maintenanceTool'
        // },
        {
          title: '示意图',
          align: 'center',
src/views/eam/modules/dailyMaintenanceStandard/DailyMaintenanceStandardModal.vue
@@ -263,6 +263,7 @@
      rowKey='id'
      :columns="columns"
      :dataSource="dataSource"
      :pagination="false"
    >
      <template
        v-for="col in columns"
src/views/eam/modules/inspectionCycle/InspectionCycleForm.vue
@@ -122,6 +122,20 @@
          </a-col>
          <a-col :span="24/2">
            <a-form-model-item
              label="版本"
              :labelCol="labelCol"
              :wrapperCol="wrapperCol"
              prop="version"
            >
              <a-input
                v-model="model.version"
                placeholder="请输入版本号"
                :disabled=true
              ></a-input>
            </a-form-model-item>
          </a-col>
          <!-- <a-col :span="24/2">
            <a-form-model-item
              label="开工条件"
              :labelCol="labelCol"
              :wrapperCol="wrapperCol"
@@ -134,9 +148,9 @@
                v-model="model.startCondition"
              />
            </a-form-model-item>
          </a-col>
          </a-col> -->
        </a-row>
        <a-row>
        <!-- <a-row>
          <a-col :span="24/2">
            <a-form-model-item
              label="调整方式"
@@ -167,9 +181,9 @@
              />
            </a-form-model-item>
          </a-col>
        </a-row>
        </a-row> -->
        <a-row>
          <a-col :span="24/2">
          <!-- <a-col :span="24/2">
            <a-form-model-item
              label="依据日历"
              :labelCol="labelCol"
@@ -183,21 +197,8 @@
                v-model="model.accordingCalendar"
              />
            </a-form-model-item>
          </a-col>
          <a-col :span="24/2">
            <a-form-model-item
              label="版本"
              :labelCol="labelCol"
              :wrapperCol="wrapperCol"
              prop="version"
            >
              <a-input
                v-model="model.version"
                placeholder="请输入版本号"
                :disabled=true
              ></a-input>
            </a-form-model-item>
          </a-col>
          </a-col> -->
        </a-row>
        <a-row>
src/views/eam/modules/maintenanceCycle/MaintenanceCycleForm.vue
@@ -121,6 +121,20 @@
          </a-col>
          <a-col :span="24/2">
            <a-form-model-item
              label="版本"
              :labelCol="labelCol"
              :wrapperCol="wrapperCol"
              prop="version"
            >
              <a-input
                v-model="model.version"
                placeholder="请输入版本号"
                :disabled=true
              ></a-input>
            </a-form-model-item>
          </a-col>
          <!-- <a-col :span="24/2">
            <a-form-model-item
              label="调整方式"
              :labelCol="labelCol"
              :wrapperCol="wrapperCol"
@@ -133,9 +147,9 @@
                v-model="model.arrangeWay"
              />
            </a-form-model-item>
          </a-col>
          </a-col> -->
        </a-row>
        <a-row>
        <!-- <a-row>
          <a-col :span="24/2">
            <a-form-model-item
              label="逾期处理方式"
@@ -166,7 +180,7 @@
              />
            </a-form-model-item>
          </a-col>
        </a-row>
        </a-row> -->
        <a-row>
          <a-col :span="24/2">
            <a-form-item
@@ -203,20 +217,7 @@
          </a-col>
        </a-row>
        <a-row>
          <a-col :span="24/2">
            <a-form-model-item
              label="版本"
              :labelCol="labelCol"
              :wrapperCol="wrapperCol"
              prop="version"
            >
              <a-input
                v-model="model.version"
                placeholder="请输入版本号"
                :disabled=true
              ></a-input>
            </a-form-model-item>
          </a-col>
          <a-col
            v-if=" model.isRevise == true"
            :span="24/2"
src/views/system/RoleUserList.vue
@@ -1,15 +1,32 @@
<template>
  <a-row :gutter="10">
    <a-col :md="leftColMd" :sm="24" style="margin-bottom: 20px">
    <a-col
      :md="leftColMd"
      :sm="24"
      style="margin-bottom: 20px"
    >
      <a-card :bordered="false">
        <!-- æŸ¥è¯¢åŒºåŸŸ -->
        <div class="table-page-search-wrapper">
          <!-- æœç´¢åŒºåŸŸ -->
          <a-form layout="inline" @keyup.enter.native="searchQuery">
          <a-form
            layout="inline"
            @keyup.enter.native="searchQuery"
          >
            <a-row :gutter="24">
              <a-col :md="12" :sm="8">
                <a-form-item label="角色名称" :labelCol="{span: 5}" :wrapperCol="{span: 18, offset: 1}">
                  <a-input placeholder="" v-model="queryParam.roleName"></a-input>
              <a-col
                :md="12"
                :sm="8"
              >
                <a-form-item
                  label="角色名称"
                  :labelCol="{span: 5}"
                  :wrapperCol="{span: 18, offset: 1}"
                >
                  <a-input
                    placeholder=""
                    v-model="queryParam.roleName"
                  ></a-input>
                </a-form-item>
              </a-col>
              <!--
@@ -21,29 +38,72 @@
                </a-form-item>
              </a-col>
              -->
              <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
            <a-col :md="12" :sm="24">
               <a-button type="primary" @click="searchQuery" icon="search" style="margin-left: 21px">查询</a-button>
              <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
              <span
                style="float: left;overflow: hidden;"
                class="table-page-search-submitButtons"
              >
                <a-col
                  :md="12"
                  :sm="24"
                >
                  <a-button
                    type="primary"
                    @click="searchQuery"
                    icon="search"
                    style="margin-left: 21px"
                  >查询</a-button>
                  <a-button
                    type="primary"
                    @click="searchReset"
                    icon="reload"
                    style="margin-left: 8px"
                  >重置</a-button>
            </a-col>
          </span>
            </a-row>
          </a-form>
        </div>
        <!-- æ“ä½œæŒ‰é’®åŒºåŸŸ -->
        <div class="table-operator" style="margin: 5px 0 10px 2px">
          <a-button @click="handleAdd" type="primary" icon="plus">新建角色</a-button>
        <div
          class="table-operator"
          style="margin: 5px 0 10px 2px"
        >
          <a-button
            @click="handleAdd"
            type="primary"
            icon="plus"
          >新建角色</a-button>
          <!--<a-button @click="handleEdit(model1)" type="primary" icon="plus">角色编辑</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
            name="file"
            :showUploadList="false"
            :multiple="false"
            :headers="tokenHeader"
            :action="importExcelUrl"
            @change="handleImportExcel"
          >
            <a-button
              type="primary"
              icon="import"
            >导入</a-button>
          </a-upload>
          <a-button type="primary" icon="download" @click="handleExportXls('角色管理')">导出</a-button>
          <a-button
            type="primary"
            icon="download"
            @click="handleExportXls('角色管理')"
          >导出</a-button>
        </div>
        <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
        <div
          class="ant-alert ant-alert-info"
          style="margin-bottom: 16px;"
        >
          <i class="anticon anticon-info-circle ant-alert-icon">
          </i> å·²é€‰æ‹© <a><b>{{ selectedRowKeys1.length }}</b></a>项
          <a style="margin-left: 24px" @click="onClearSelected1">清空</a>
          <a
            style="margin-left: 24px"
            @click="onClearSelected1"
          >清空</a>
        </div>
        <div style="margin-top: 15px">
@@ -58,8 +118,12 @@
            :pagination="ipagination"
            :loading="loading"
            :rowSelection="{selectedRowKeys: selectedRowKeys1, onChange: onSelectChange1, type:'radio'}"
            @change="handleTableChange">
          <span slot="action" slot-scope="text, record">
            @change="handleTableChange"
          >
            <span
              slot="action"
              slot-scope="text, record"
            >
            <a @click="handleOpen(record)">用户</a>
            <a-divider type="vertical"/>
@@ -75,7 +139,10 @@
                  <a @click="handleEdit(record)">编辑</a>
                </a-menu-item>
                <a-menu-item>
                  <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete1(record.id)">
                    <a-popconfirm
                      title="确定删除吗?"
                      @confirm="() => handleDelete1(record.id)"
                    >
                    <a>删除</a>
                  </a-popconfirm>
                </a-menu-item>
@@ -85,29 +152,62 @@
          </a-table>
        </div>
        <!-- å³ä¾§çš„角色权限配置 -->
        <user-role-modal ref="modalUserRole"></user-role-modal>
        <role-modal ref="modalForm" @ok="modalFormOk"></role-modal>
        <!-- <user-role-modal ref="modalUserRole"></user-role-modal> -->
        <user-role-modal-new ref="modalUserRole"></user-role-modal-new>
        <role-modal
          ref="modalForm"
          @ok="modalFormOk"
        ></role-modal>
      </a-card>
    </a-col>
    <a-col :md="rightColMd" :sm="24" v-if="this.rightcolval == 1">
    <a-col
      :md="rightColMd"
      :sm="24"
      v-if="this.rightcolval == 1"
    >
      <a-card :bordered="false">
        <div style="text-align: right;">
          <a-icon type="close-circle" @click="hideUserList" />
          <a-icon
            type="close-circle"
            @click="hideUserList"
          />
        </div>
        <!-- æŸ¥è¯¢åŒºåŸŸ -->
        <div class="table-page-search-wrapper">
          <a-form layout="inline">
            <a-row :gutter="24">
              <a-col :md="12" :sm="12">
              <a-col
                :md="12"
                :sm="12"
              >
                <a-form-item label="用户账号">
                  <a-input placeholder="" v-model="queryParam2.username"></a-input>
                  <a-input
                    placeholder=""
                    v-model="queryParam2.username"
                  ></a-input>
                </a-form-item>
              </a-col>
              <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
            <a-col :md="9" :sm="24">
             <a-button type="primary" @click="searchQuery2" icon="search" style="margin-left: 21px">查询</a-button>
              <a-button type="primary" @click="searchReset2" icon="reload" style="margin-left: 8px">重置</a-button>
              <span
                style="float: left;overflow: hidden;"
                class="table-page-search-submitButtons"
              >
                <a-col
                  :md="9"
                  :sm="24"
                >
                  <a-button
                    type="primary"
                    @click="searchQuery2"
                    icon="search"
                    style="margin-left: 21px"
                  >查询</a-button>
                  <a-button
                    type="primary"
                    @click="searchReset2"
                    icon="reload"
                    style="margin-left: 8px"
                  >重置</a-button>
            </a-col>
          </span>
@@ -115,14 +215,31 @@
          </a-form>
        </div>
        <!-- æ“ä½œæŒ‰é’®åŒºåŸŸ -->
        <div class="table-operator" :md="24" :sm="24">
          <a-button @click="handleAdd2" type="primary" icon="plus" style="margin-top: 16px">新增用户</a-button>
        <div
          class="table-operator"
          :md="24"
          :sm="24"
        >
          <a-button
            @click="handleAdd2"
            type="primary"
            icon="plus"
            style="margin-top: 16px"
          >新增用户</a-button>
          <!--<a-button @click="handleEdit2" type="primary" icon="edit" style="margin-top: 16px">用户编辑</a-button>-->
          <a-button @click="handleAddUserRole" type="primary" icon="plus" style="margin-top: 16px">已有用户</a-button>
          <a-button
            @click="handleAddUserRole"
            type="primary"
            icon="plus"
            style="margin-top: 16px"
          >已有用户</a-button>
          <a-dropdown v-if="selectedRowKeys2.length > 0">
            <a-menu slot="overlay">
              <a-menu-item key="1" @click="batchDel2">
              <a-menu-item
                key="1"
                @click="batchDel2"
              >
                <a-icon type="delete"/>
                åˆ é™¤
              </a-menu-item>
@@ -134,10 +251,16 @@
        </div>
        <!-- table区域-begin -->
        <div>
          <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
          <div
            class="ant-alert ant-alert-info"
            style="margin-bottom: 16px;"
          >
            <i class="anticon anticon-info-circle ant-alert-icon"></i> å·²é€‰æ‹© <a style="font-weight: 600">{{
            selectedRowKeys2.length }}</a>项
            <a style="margin-left: 24px" @click="onClearSelected2">清空</a>
            <a
              style="margin-left: 24px"
              @click="onClearSelected2"
            >清空</a>
          </div>
          <a-table
            style="height:500px"
@@ -150,8 +273,12 @@
            :pagination="ipagination2"
            :loading="loading2"
            :rowSelection="{selectedRowKeys: selectedRowKeys2, onChange: onSelectChange2}"
            @change="handleTableChange2">
           <span slot="action" slot-scope="text, record">
            @change="handleTableChange2"
          >
            <span
              slot="action"
              slot-scope="text, record"
            >
           <a @click="handleEdit2(record)">编辑</a>
          <a-divider type="vertical"/>
          <a-dropdown>
@@ -160,7 +287,10 @@
            </a>
            <a-menu slot="overlay">
              <a-menu-item>
                <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete2(record.id)">
                    <a-popconfirm
                      title="确定删除吗?"
                      @confirm="() => handleDelete2(record.id)"
                    >
                  <a>删除</a>
                </a-popconfirm>
              </a-menu-item>
@@ -170,9 +300,18 @@
          </a-table>
        </div>
        <!-- è¡¨å•区域 -->
        <role-modal ref="modalForm" @ok="modalFormOk"></role-modal>
        <user-modal ref="modalForm2" @ok="modalFormOk2"></user-modal>
        <Select-User-Modal ref="selectUserModal" @selectFinished="selectOK"></Select-User-Modal>
        <role-modal
          ref="modalForm"
          @ok="modalFormOk"
        ></role-modal>
        <user-modal
          ref="modalForm2"
          @ok="modalFormOk2"
        ></user-modal>
        <Select-User-Modal
          ref="selectUserModal"
          @selectFinished="selectOK"
        ></Select-User-Modal>
      </a-card>
    </a-col>
  </a-row>
@@ -186,6 +325,7 @@
  import { filterObj } from '@/utils/util'
  import UserRoleModal from './modules/UserRoleModal'
  import moment from 'moment'
import UserRoleModalNew from './modules/UserRoleModalNew'
  export default {
    name: 'RoleUserList',
@@ -195,7 +335,8 @@
      SelectUserModal,
      RoleModal,
      UserModal,
      moment
    moment,
    UserRoleModalNew
    },
    data() {
      return {
@@ -543,6 +684,6 @@
<style scoped>
  /** Button按钮间距 */
  .ant-btn {
    margin-left: 8px
  margin-left: 8px;
  }
</style>
src/views/system/modules/UserRoleModalNew.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,245 @@
<template>
  <a-modal
    :title="title"
    :width="650"
    :visible="visible"
    :maskClosable="false"
    :confirmLoading="confirmLoading"
    @ok="handleOk"
    cancelText="关闭"
    @cancel="handleCancel"
  >
    <a-form>
      <a-form-item label='所拥有的权限'>
        <a-tree
          checkable
          @check="onCheck"
          :checkedKeys="checkedKeys"
          :treeData="treeData"
          @expand="onExpand"
          @select="onTreeNodeSelect"
          :selectedKeys="selectedKeys"
          :expandedKeys="expandedKeysss"
          :checkStrictly="checkStrictly"
        >
          <span
            slot="hasDatarule"
            slot-scope="{slotTitle,ruleFlag}"
          >
            {{ slotTitle }}<a-icon
              v-if="ruleFlag"
              type="align-left"
              style="margin-left:5px;color: red;"
            ></a-icon>
          </span>
        </a-tree>
      </a-form-item>
    </a-form>
    <div class="drawer-bootom-button">
      <a-dropdown
        style="float: left"
        :trigger="['click']"
        placement="topCenter"
      >
        <a-menu slot="overlay">
          <a-menu-item
            key="1"
            @click="switchCheckStrictly(1)"
          >父子关联</a-menu-item>
          <a-menu-item
            key="2"
            @click="switchCheckStrictly(2)"
          >取消关联</a-menu-item>
          <a-menu-item
            key="3"
            @click="checkALL"
          >全部勾选</a-menu-item>
          <a-menu-item
            key="4"
            @click="cancelCheckALL"
          >取消全选</a-menu-item>
          <a-menu-item
            key="5"
            @click="expandAll"
          >展开所有</a-menu-item>
          <a-menu-item
            key="6"
            @click="closeAll"
          >合并所有</a-menu-item>
        </a-menu>
        <a-button>
          æ ‘操作 <a-icon type="up" />
        </a-button>
      </a-dropdown>
      <a-popconfirm
        title="确定放弃编辑?"
        @confirm="close"
        okText="确定"
        cancelText="取消"
      >
        <a-button style="margin-right: .8rem">取消</a-button>
      </a-popconfirm>
    </div>
    <template slot="footer">
      <a-button
        @click="handleSubmit(false)"
        type="primary"
        :loading="loading"
        ghost
        style="margin-right: 0.8rem"
      >仅保存</a-button>
      <a-button
        @click="handleSubmit(true)"
        type="primary"
        :loading="loading"
      >保存并关闭</a-button>
    </template>
    <role-datarule-modal ref="datarule"></role-datarule-modal>
  </a-modal>
</template>
<script>
import { queryTreeListForRole, queryRolePermission, saveRolePermission } from '@/api/api'
import RoleDataruleModal from './RoleDataruleModal.vue'
export default {
  name: "RoleModal",
  components: {
    RoleDataruleModal
  },
  data() {
    return {
      roleId: "",
      treeData: [],
      defaultCheckedKeys: [],
      checkedKeys: [],
      expandedKeysss: [],
      allTreeKeys: [],
      autoExpandParent: true,
      checkStrictly: true,
      title: "角色权限配置",
      visible: false,
      loading: false,
      selectedKeys: []
    }
  },
  methods: {
    onTreeNodeSelect(id) {
      if (id && id.length > 0) {
        this.selectedKeys = id
      }
      this.$refs.datarule.show(this.selectedKeys[0], this.roleId)
    },
    onCheck(o) {
      if (this.checkStrictly) {
        this.checkedKeys = o.checked;
      } else {
        this.checkedKeys = o
      }
    },
    show(roleId) {
      this.roleId = roleId
      this.visible = true;
    },
    close() {
      this.reset()
      this.$emit('close');
      this.visible = false;
    },
    onExpand(expandedKeys) {
      this.expandedKeysss = expandedKeys;
      this.autoExpandParent = false
    },
    reset() {
      this.expandedKeysss = []
      this.checkedKeys = []
      this.defaultCheckedKeys = []
      this.loading = false
    },
    expandAll() {
      this.expandedKeysss = this.allTreeKeys
    },
    closeAll() {
      this.expandedKeysss = []
    },
    checkALL() {
      this.checkedKeys = this.allTreeKeys
    },
    cancelCheckALL() {
      //this.checkedKeys = this.defaultCheckedKeys
      this.checkedKeys = []
    },
    switchCheckStrictly(v) {
      if (v == 1) {
        this.checkStrictly = false
      } else if (v == 2) {
        this.checkStrictly = true
      }
    },
    handleCancel() {
      this.close()
    },
    handleSubmit(exit) {
      let that = this;
      let params = {
        roleId: that.roleId,
        permissionIds: that.checkedKeys.join(","),
        lastpermissionIds: that.defaultCheckedKeys.join(","),
      };
      that.loading = true;
      console.log("请求参数:", params);
      saveRolePermission(params).then((res) => {
        if (res.success) {
          that.$message.success(res.message);
          that.loading = false;
          if (exit) {
            that.close()
          }
        } else {
          that.$message.error(res.message);
          that.loading = false;
          if (exit) {
            that.close()
          }
        }
        this.loadData();
      })
    },
    loadData() {
      queryTreeListForRole().then((res) => {
        this.treeData = res.result.treeList
        this.allTreeKeys = res.result.ids
        queryRolePermission({ roleId: this.roleId }).then((res) => {
          this.checkedKeys = [...res.result];
          this.defaultCheckedKeys = [...res.result];
          this.expandedKeysss = this.allTreeKeys;
          console.log(this.defaultCheckedKeys)
        })
      })
    }
  },
  watch: {
    visible() {
      if (this.visible) {
        this.loadData();
      }
    }
  }
}
</script>
<style lang="less" scoped>
.drawer-bootom-button {
  position: absolute;
  bottom: 0;
  width: 100%;
  border-top: 1px solid #e8e8e8;
  padding: 10px 16px;
  text-align: right;
  left: 0;
  background: #fff;
  border-radius: 0 0 2px 2px;
}
</style>