zenglf
2023-10-25 db457552ab2251fdaaedb8f736e6103f69eccb10
src/views/eam/modules/repairorder/moudles/ActualWorkHoursEditTable.vue
@@ -1,48 +1,48 @@
<template>
  <a-card :bordered="false" :class="'cust-erp-sub-tab'">
  <a-card :bordered='false' :class="'cust-erp-sub-tab'">
  <a-table
         ref="table"
      ref='table'
         bordered
         rowKey="id"
         :columns="columns"
         :dataSource="dataSource"
         :pagination="ipagination"
         @change="handleTableChange"
      rowKey='id'
      :columns='columns'
      :dataSource='dataSource'
      :pagination='ipagination'
      @change='handleTableChange'
       >
         <template
           v-for="col in columns"
           :slot="col.dataIndex"
        v-for='col in columns'
        :slot='col.dataIndex'
           slot-scope='text, record, index'
         >
           <div :key="col.dataIndex">
        <div :key='col.dataIndex'>
               <a-input-search
               v-if="col.dataIndex == 'username'"
               enter-button
               @search="onSearchUser(index)"
               :value="text"
               :read-only="true"
               @change="(e) => handleChange(e, record.key, col, index)"
            @search='onSearchUser(index)'
            :value='text'
            :read-only='true'
            @change='(e) => handleChange(e, record.key, col, index)'
              />
             <a-input-number
               :value="text"
            :value='text'
               v-if="col.dataIndex == 'actualHour'"
               :min="1"
               :max="99999"
               @change="(e)=>handleChange(e, record.key, col, index)"
               :disabled="record.disabled"
            :min='1'
            :max='99999'
            @change='(e)=>handleChange(e, record.key, col, index)'
            :disabled='record.disabled'
             />
          
           </div>
         </template>
         <span slot='action' slot-scope='text, record,index'>
                 <a @click="handleDeleteFake(index)">删除</a>
                 <a @click='handleDeleteFake(index)'>删除</a>
        </span>
       </a-table>
       <a-button
         style="width: 100%; margin-top: 16px; margin-bottom: 8px"
         type="dashed"
         icon="plus"
         @click="addHour"
      style='width: 100%; margin-top: 16px; margin-bottom: 8px'
      type='dashed'
      icon='plus'
      @click='addHour'
         :disabled="repairOrderStatus!='3'"
       >添加实际工时
       </a-button>
@@ -50,28 +50,30 @@
       <a-row :style="{textAlign:'right'}">
         <a-button
           :style="{marginRight: '8px'}"
           @click="handleCancel"
          @click='handleCancel'
           :disabled="repairOrderStatus!='3'"
         >
          清空
         </a-button>
         <a-button
            @click="handleOk(1)"
            type="primary"
          @click='handleOk(1)'
          type='primary'
            :style="{marginRight: '8px'}"
            :disabled="repairOrderStatus!='3'"
          >暂存</a-button>
        >暂存
        </a-button>
          <a-button
          @click="handleOk(0)"
          type="primary"
          @click='handleOk(0)'
          type='primary'
          :disabled="repairOrderStatus!='3'"
          >保存</a-button>
        >保存
        </a-button>
       </a-row>
       <!-- :disabled="false" -->
     </div>
     <actual-hour-user-select
     ref="actualUserSelect"
     @sendUserRecord="sendUserRecord"
      ref='actualUserSelect'
      @sendUserRecord='sendUserRecord'
     >
     </actual-hour-user-select>
     </a-card>
@@ -82,6 +84,7 @@
import pick from 'lodash.pick'
import JEllipsis from '@/components/jeecg/JEllipsis'
import ActualHourUserSelect from './select/ActualHourUserSelect.vue'
export default {
 name: 'ActualWorkHoursEditTable',
 mixins: [JeecgListMixin],
@@ -103,9 +106,8 @@
  },
  data() {
    return {
      title: "工艺确认",
      title: '维修工单-实际工时',
      flag: false,//主页面的标记位  用于区分是否确认过工单工艺 来区分table页展示 工单工序 还是产品工序
      visible: false,
      model: {},
      obj: {},
      maskClosable: true,
@@ -117,7 +119,7 @@
        pageSize: 99,
        pageSizeOptions: ['99', '199'],
        showTotal: (total, range) => {
          return range[0] + "-" + range[1] + " 共" + total + "条"
          return range[0] + '-' + range[1] + ' 共' + total + '条'
        },
        showQuickJumper: true,
        showSizeChanger: true,
@@ -126,24 +128,24 @@
      validatorRules: {
        userId: {
          rules: [
            { required: true, message: '请选择人员!' },
            { required: true, message: '请选择人员!' }
          ]
        },
        actual_hour: {
          rules: [
            { required: false, message: '请填写工时!'},
            { required: false, message: '请填写工时!' }
          ]
        },
        }
      },
      labelCol: {
        xs: { span: 24 },
        sm: { span: 7 },
        sm: { span: 7 }
      },
      wrapperCol: {
        xs: { span: 24 },
        sm: { span: 16 },
        sm: { span: 16 }
      },
      drawerWidth: "100%",
      drawerWidth: '100%',
      visible: false,
      disableSubmit: false,
      disableSelect: false,
@@ -153,25 +155,27 @@
          {
            title: '*人员编码',
            dataIndex: 'username',
            align: "center",
          align: 'center',
            scopedSlots: { customRender: 'username' },
            className: 'red',
            width: 250,
          width: 250
          },
          {
            title: '人员名称',
            dataIndex: 'realname',
            align: "center",
            width: 250,
          align: 'center',
          width: 250
          },
          {
            title: '*实际工时',
            dataIndex: 'actualHour',
            align: "center",
          align: 'center',
            className: 'red',
            scopedSlots: { customRender: 'actualHour' },
            width: 250,
          width: 250
          },
          {
          title: '操作',
          dataIndex: 'action',
@@ -181,15 +185,15 @@
          }
        ],
      url: {
        list: "/eam/repairOrder/listRepairOrderActualWorkHoursByMainId",
        confirmHour:"/eam/repairOrder/addRepairOrderActualWorkHours"
        list: '/eam/repairOrder/listRepairOrderActualWorkHoursByMainId',
        confirmHour: '/eam/repairOrder/addRepairOrderActualWorkHours'
      },
      changeIndex: 0
    }
  },
  created(){
    this.queryParam['repairOrderId'] = this.repairOrderId;
    this.loadData(1);
    this.queryParam['repairOrderId'] = this.repairOrderId
    this.loadData(1)
  },
  methods: {
    addHour() {
@@ -199,26 +203,26 @@
      this.close()
    },
    close() {
      this.$emit('close');
      this.$emit('close')
      this.dataSource = []
      this.disableSubmit = false;
      this.visible = false;
      this.disableSubmit = false
      this.visible = false
    },
    handleDeleteFake(index){
      this.dataSource.pop(index);
      this.dataSource.pop(index)
    },
    handleOk(saveStatus) {
      const that = this
      if(saveStatus==0){
        let workHoursDataSource = that.dataSource;
        let workHoursDataSource = that.dataSource
        for (let i = 0; i < workHoursDataSource.length; i++) {
          if (workHoursDataSource[i].userId == undefined || workHoursDataSource[i].userId == null || workHoursDataSource[i].userId == '') {
            that.$message.warning("请选择第"+(i+1)+"行维修人员!");
            return false;
            that.$message.warning('请选择第' + (i + 1) + '行维修人员!')
            return false
          }
          if(workHoursDataSource[i].actualHour == undefined || workHoursDataSource[i].actualHour == null||workHoursDataSource[i].actualHour==''){
            that.$message.warning("请填写第"+(i+1)+"行实际工时!");
            return false;
            that.$message.warning('请填写第' + (i + 1) + '行实际工时!')
            return false
          }
        }
      }
@@ -226,8 +230,8 @@
        if (!err) {
          that.confirmLoading = true
          let formData = {}
          formData.repairOrderId = that.repairOrderId;
          formData.actualHourList = that.dataSource;
          formData.repairOrderId = that.repairOrderId
          formData.actualHourList = that.dataSource
          let obj = obj = postAction(this.url.confirmHour, formData)
          obj.then((res) => {
            if (res.success) {
@@ -239,24 +243,24 @@
          }).finally(() => {
            that.confirmLoading = false
            that.close()
            that.loadData(1);
            that.loadData(1)
          })
        }
      })
    },
    handleChange(value, key, column, index) {
      let that = this;
      const temp = [...that.dataSource];
      const target = temp[index];
      let that = this
      const temp = [...that.dataSource]
      const target = temp[index]
      if (target) {
        target[column.dataIndex] = value;
        target[column.dataIndex] = value
        if ('userId' == column.dataIndex) {
          target['userId'] = value;
          target['userId'] = value
        }
        if ('actualHour' == column.dataIndex) {
          target['actualHour'] = value;
          target['actualHour'] = value
        }
        that.dataSource = temp;
        that.dataSource = temp
      }
    },
    onSearchUser(index) {
@@ -270,14 +274,14 @@
      const target = temp[this.recordIndex]
      if (target) {
        console.log(record)
        target.userId = record.id;
        target.username = record.username;
        target.realname = record.realname;
        target.userId = record.id
        target.username = record.username
        target.realname = record.realname
        this.dataSource = temp
      }
    },
    clearList(){
        this.dataSource=[];
      this.dataSource = []
        this.ipagination.current = 1
    }
  },
@@ -285,9 +289,9 @@
    repairOrderId:{
      immediate: true,
        handler(val) {
            this.clearList();
        this.clearList()
            this.queryParam['repairOrderId'] = val
            this.loadData(1);
        this.loadData(1)
        }
    }
  }