qushaowei
2024-03-28 e7eca504e167de53fd97e5c2cc1fc039a8e758cc
src/views/eam/modules/daily3MaintenanceOrder/Maintenance3ReceiptModal.vue
@@ -7,14 +7,20 @@
    cancelText="关闭"
    @cancel="handleCancel"
    :confirmLoading="confirmLoading"
    title="附录4"
  >
    <!-- :title="title" -->
    <a-spin :spinning="confirmLoading">
      <a-form :form="form">
        <span
          class="ant-descriptions-title"
          style="font-size: large;font-size: 15px;float: right;"
        >{{this.model.receiptsNum}}</span>
        <a-divider
          orientation="center"
          style="font-size: large;font-style: normal;font-size: 30px;color: #66aeed;"
        > 生产设备三级保养验收单 </a-divider>
        > {{this.model.receiptsName}} </a-divider>
        <!-- 生产设备三级保养验收单 -->
        <a-row :gutter="24">
          <a-col :span="8">
            <a-form-item
@@ -47,69 +53,108 @@
            </a-form-item>
          </a-col>
        </a-row>
        <a-table
          ref="table"
          bordered
          rowKey="id"
          :columns="columns"
          :dataSource="dataSource"
          :pagination="false"
        >
          <!-- @change="handleTableChange" -->
          <!-- :pagination="ipagination" -->
          <template
            v-for="col in columns"
            :slot="col.dataIndex"
            slot-scope='text, record, index'
          >
            <div :key="col.dataIndex">
              <a-input
                :value="text"
                v-if="col.dataIndex == 'position'"
                @change="(e)=>handleChange(e, record.key, col, index)"
                :disabled="false"
                placeholder="请输入保养部位"
              />
              <a-textarea
                :value="text"
                v-if="col.dataIndex == 'content'"
                :maxLength="500"
                auto-size
                placeholder="请输入保养内容"
                @change="(e)=>handleChange(e, record.key, col, index)"
                :disabled="true"
              />
              <a-textarea
                :value="text"
                v-if="col.dataIndex == 'standard'"
                :maxLength="500"
                auto-size
                placeholder="请输入保养标准"
                @change="(e)=>handleChange(e, record.key, col, index)"
                :disabled="true"
              />
              <a-select
                v-if="col.dataIndex == 'firstInspect'"
                :value="text"
                @change="(e) => handleChange(e, record.key, col, index)"
                style="width: 100%"
              >
                <a-select-option value="1">通过</a-select-option>
                <a-select-option value="2">未通过</a-select-option>
              </a-select>
              <a-input
                v-if="col.dataIndex == 'firstInspect' && record.firstInspect == '2'"
                :value="record.firstNotPass"
                @change="(e)=>handleChange2(e, record.key, col, index)"
                :disabled="false"
                placeholder="请填写验收未通过原因"
              />
              <a-select
                v-if="col.dataIndex == 'secondInspect'"
                :value="text"
                @change="(e) => handleChange(e, record.key, col, index)"
                style="width: 100%"
              >
                <a-select-option value="1">通过</a-select-option>
                <a-select-option value="2">未通过</a-select-option>
              </a-select>
              <!-- <a-input
                v-if="col.dataIndex == 'secondInspect' && record.secondInspect == '2'"
                :value="record.secondNotPass"
                @change="(e)=>handleChange2(e, record.key, col, index)"
                :disabled="false"
                placeholder="请填写验收未通过原因"
              /> -->
            </div>
          </template>
        </a-table>
        <!-- <div :style="{height: '140px',width: '100%',border: '1px solid #e9e9e9',padding: '10px 16px',background: '#fff',}">
          <a-row :gutter="24">
            <a-col :span="24">
              <a-form-item
                :labelCol="{span:3}"
                :wrapperCol="{span:21}"
                label="验收未通过原因"
              >
                <a-textarea
                  allow-clear
                  :rows='5'
                  :disabled="disableSubmit"
                  :placeholder="disableSubmit?'':'请输入验收未通过原因'"
                  v-decorator="['notPassReason', {}]"
                />
              </a-form-item>
            </a-col>
          </a-row>
        </div> -->
      </a-form>
    </a-spin>
    <a-table
      ref="table"
      bordered
      rowKey="id"
      :columns="columns"
      :dataSource="dataSource"
      :pagination="false"
    >
      <!-- @change="handleTableChange" -->
      <!-- :pagination="ipagination" -->
      <template
        v-for="col in columns"
        :slot="col.dataIndex"
        slot-scope='text, record, index'
      >
        <div :key="col.dataIndex">
          <a-input
            :value="text"
            v-if="col.dataIndex == 'position'"
            @change="(e)=>handleChange(e, record.key, col, index)"
            :disabled="false"
            placeholder="请输入保养部位"
          />
          <a-textarea
            :value="text"
            v-if="col.dataIndex == 'content'"
            :maxLength="500"
            auto-size
            placeholder="请输入保养内容"
            @change="(e)=>handleChange(e, record.key, col, index)"
          />
          <a-textarea
            :value="text"
            v-if="col.dataIndex == 'standard'"
            :maxLength="500"
            auto-size
            placeholder="请输入保养标准"
            @change="(e)=>handleChange(e, record.key, col, index)"
            :disabled="false"
          />
          <a-input
            :value="text"
            v-if="col.dataIndex == 'firstInspect'"
            @change="(e)=>handleChange(e, record.key, col, index)"
            :disabled="false"
            placeholder="请输入第一次检"
          />
          <a-input
            :value="text"
            v-if="col.dataIndex == 'secondInspect'"
            @change="(e)=>handleChange(e, record.key, col, index)"
            :disabled="false"
            placeholder="请输入第二次检"
          />
        </div>
      </template>
    </a-table>
    <div :style="{height: '60px',width: '100%',border: '1px solid #e9e9e9',padding: '10px 16px',background: '#fff',}">
      <a-row :gutter="24">
        <a-col :span="12">
        <a-col :span="7">
          <a-form-item
            :labelCol="labelCol"
            :wrapperCol="wrapperCol"
@@ -119,7 +164,7 @@
            <span v-else>-</span>
          </a-form-item>
        </a-col>
        <a-col :span="12">
        <a-col :span="17">
          <a-form-item
            :labelCol="labelCol"
            :wrapperCol="wrapperCol"
@@ -131,12 +176,12 @@
        </a-col>
      </a-row>
    </div>
    <a-button
    <!-- <a-button
      style="width: 100%; margin-top: 0px; margin-bottom: 8px"
      type="dashed"
      icon="plus"
      @click="addHour"
    >添加内容</a-button>
    >添加内容</a-button> -->
    <template slot="footer">
      <a-button
        :style="{marginRight: '8px'}"
@@ -200,6 +245,23 @@
          dataIndex: 'standard',
          scopedSlots: { customRender: 'standard' }
        },
        // {
        //   title: '验收次数',
        //   children: [
        //     {
        //       title: '第一次检',
        //       dataIndex: 'firstInspect',
        //       align: 'center',
        //       scopedSlots: { customRender: 'firstInspect' }
        //     },
        //     {
        //       title: '第二次检',
        //       dataIndex: 'secondInspect',
        //       align: 'center',
        //       scopedSlots: { customRender: 'secondInspect' }
        //     },
        //   ],
        // },
        {
          title: '第一次检',
          align: 'center',
@@ -234,24 +296,28 @@
        add: "/eam/maintenanceThreeAcceptance/add",
        getMaintenance3Receipt: "/eam/maintenanceThreeAcceptance/getMaintenanceThreeAcceptanceList",
        list: "/eam/dailyMaintenanceOrder/getMaintenanceCycleByStandardId",
        getSysFileName: "/eam/sysFileName/getSysFileName",
      },
    }
  },
  methods: {
    addHour() {
      this.dataSource.push({ id: '', maintenanceOrderId: this.model.id, position: '', content: '', standard: '', firstInspect: '', secondInspect: '' })
    },
    // addHour() {
    //   this.dataSource.push({ id: '', maintenanceOrderId: this.model.id, position: '', content: '', standard: '', firstInspect: '', secondInspect: '' })
    // },
    edit(record) {
      let that = this;
      if (record.receipts == "" || record.receipts == null) {
        this.getSysFileName()
      }
      this.form.resetFields();
      this.model = Object.assign({}, record);
      this.visible = true;
      this.getMaintenance3Receipt()
      that.$nextTick(() => {
        // that.form.setFieldsValue(pick(that.model, 'num', 'teamId', 'remark'));
        that.form.setFieldsValue(pick(that.model, 'notPassReason'));
      });
    },
@@ -277,6 +343,13 @@
      const that = this;
      // 触发表单验证
      for (let i = 0; i < that.dataSource.length; i++) {
        let o = that.dataSource[i]
        if (o.firstInspect == "2" && o.secondInspect == "2") {
          that.$message.warning("验收单第" + (i + 1) + "行,两次检验均为不通过,请重新检验该项保养内容!");
          return
        }
      }
      that.form.validateFields((err, values) => {
        if (!err) {
          this.$confirm({
@@ -321,16 +394,42 @@
          target['standard'] = value.target.value;
        }
        if (column.dataIndex == 'firstInspect') {
          target[column.dataIndex] = value.target.value;
          target["firstInspect"] = value;
        }
        if (column.dataIndex == 'secondInspect') {
          target[column.dataIndex] = value.target.value;
          target[column.dataIndex] = value;
        }
        //显示带过来的数据
        that.dataSource = temp;
      }
    },
    handleChange2(value, key, column, index, record) {
      let that = this;
      const temp = [...that.dataSource];
      const target = temp.filter(item => key === item.key)[index];
      if (target) {
        // target[column.dataIndex] = value;
        if ('firstInspect' == column.dataIndex) {
          target['firstNotPass'] = value.target.value;
        }
        // if ('secondInspect' == column.dataIndex) {
        //   target['secondNotPass'] = value.target.value;
        // }
        //显示带过来的数据
        that.dataSource = temp;
      }
    },
    getSysFileName() {
      getAction(this.url.getSysFileName, { name: '19' }).then((res) => {
        if (res.success) {
          this.model = Object.assign(this.model, res.result[0]);
        }
      })
    },
  },
}
</script>