import { message } from "antd/lib/index";
import { getPropertyData, extendInclude, extendRule, getDataFieldValue, setDataFieldValue, initFilter, guid } from "../../utils/common";
import moment from 'moment';
import { Button, Row, Col, Form, Input, Select, Upload, Icon, Modal, Spin,Table } from 'antd';
/**
 * @return {string}
 */
// 编辑
export default {
  onBeforeSaveHandleRecord(params) {
    params.record.TaskID = params.data.TaskID    //TaskID传递消息表ID
    params.record.PUBLISH = params.customParams;
    // params.record.FORM_CODE = params.data.reloadKey.substring(0,params.data.reloadKey.indexOf("_"));
  },

  onBeforeEdit(params) {
    const { isNew, dispatch, login, setFieldValueByBatch, setFieldEditable, setFieldVisible,stateData } = params ? params : {};
    if (isNew) {
      let json = initFilter(login.OrgId);
      dispatch({
        type: 'FMProcess/getFullGet',
        payload: json,
        onComplete: (ret) => {
          if (ret) {
            let temps = [];

            let detail = ret.Nav_Details.map((item, i) => {
              item['ROW_NO'] = i + 1;
              return item;
            });
            temps.push({ field: 'DEPARTMENT_ID', value: ret.DEPARTMENT_ID })
            temps.push({ field: 'COMPLETE_DATE', value: moment(new Date()).format('YYYY-MM-DD HH:mm:ss') })
            temps.push({ field: 'Nav_Details', value: detail })
            setFieldValueByBatch(temps);
          }
        }
      });
      setFieldVisible("CONTEXT", false);
    }
    else
    {
      if(stateData.IS_PUBLISH === 9)
      {
        setFieldVisible("CONTEXT", true);
      }
      else
      {setFieldVisible("CONTEXT", false);}
    }
  },
  onAfterAddSubRow(params) {
    const { record, srcRecord, editCode, setFieldEditable, saveRowRecord } = params ? params : {};
    let isUpdate = record.IS_ALLOW_UPDATE;
    //setFieldEditable("Nav_ApproveUser.NAME", isUpdate);
  },

  handleRenderRowControl(params) {
    if (params.colConfig.field === 'Nav_ApproveUser.NAME' && !params.record.IS_ALLOW_UPDATE) {
      return <>
        <a>{params.record.Nav_ApproveUser?.NAME}</a>
      </>

    } else {
      return ""
    }
  },
  onSubChange: ({ row, getFieldValue, setFieldValueByBatch, pageCode, record, setDataState, colInfo, dispatch, stateData, saveRowRecord }) => {

    if (colInfo.FIELD_NAME === "Nav_OperationStep.NAME" ) {
      if (record.OPERATION_STEP_ID !== null && record.OPERATION_STEP_ID !== undefined) {
        let json = initFilter(stateData.ORG_ID, record.OPERATION_STEP_ID);
        dispatch({
          type: 'app/getDataByPost',
          url: 'HM/HMJobtaskIdentify/GetRiskPost',
          payload: json,
          onlyData: false,
          onComplete: (ret) => {
            if (ret && ret.IsSuccessful) {
              // if(ret.Data.Nav_DetailRisk)
              // {
              //   let detailRisks = [];
              //   ret.Data.Nav_DetailRisk.forEach(item => {
              //     let objDetailRisk = {
              //       JOBTASK_IDENTIFY_DETAIL_ID: record.ID,
              //       ID: guid(),
              //       EVALUATE_RISK_ID: item.EVALUATE_RISK_ID,
              //       Nav_EvaluateRisk: item.Nav_EvaluateRisk,
              //       ORG_ID: record.ORG_ID,
              //     }
              //     detailRisks.push(objDetailRisk);
              //   })
              //   record["Nav_DetailRisk"] = detailRisks;
              // }
              stateData.CYCLE_TYPE=ret.Data.CYCLE_TYPE;
              if(ret.Data.Nav_DetailPost)
              {
                let detailPosts = [];
                ret.Data.Nav_DetailPost.forEach(item => {
                  let objDetailPost = {
                    JOBTASK_IDENTIFY_DETAIL_ID: record.ID,
                    ID: guid(),
                    POST_ID: item.POST_ID,
                    Nav_Post: item.Nav_Post,
                    ORG_ID: record.ORG_ID,
                  }
                  detailPosts.push(objDetailPost);
                })
                record["Nav_DetailPost"] = detailPosts;
              }
              saveRowRecord(record)
            } 
          }
        });
      } 
    }
  },
  // handleRenderHeadControl(params) {
  //   if (params.colConfig.field === 'Nav_Details') {
  //       const data = params.record.Nav_Details;
  //       // 合并单元格，这里我抽出了一个函数，调用的时候只需要将dataIndex作为参数传入即可
  //       const mergeCells2 =(text, data, key, index) =>{
  //         // 上一行该列数据是否一样
  //         if (index !== 0 && text === data[index - 1][key]) {
  //           return 0
  //         }
  //         let rowSpan = 1
  //         // 判断下一行是否相等
  //         for (let i = index + 1; i < data.length; i++) {
  //           if (text !== data[i][key]) {
  //             break
  //           }
  //           rowSpan++
  //         }
  //         return rowSpan
  //       }
  //       const columns = [
  //       //     { title: '序号', dataIndex: 'ROW_NO',
  //       //     render: (value, row, index) => {debugger
  //       //         if(!value)
  //       //         {
  //       //             value= index + 1;
  //       //         }
  //       //       }
  //       // },
  //           { title: '任务名称', dataIndex: 'OperationStepName' , width: 200,align:"left",
            
  //           render: (text, record, index) => {
  //             const obj = {
  //               children: <span>{text}</span>,
  //               props: {}
  //             };
  //             //过滤获取到相同的数据
  //             let arr = data.filter((res) => {
  //               return res.OperationStepName == record.OperationStepName;
  //             });
  //             if (index == 0 || data[index - 1].OperationStepName != record.OperationStepName) {
  //               obj.props.rowSpan = arr.length;
  //             } else {
  //               obj.props.rowSpan = 0;
  //             }
  //             return obj;
  //             // const obj = {
  //             //   children: text !== null ? text : '',
  //             //   attrs: {}
  //             // }
  //             // obj.attrs.rowSpan = mergeCells(record.ID, data, 'OperationStepName')
  //             // return obj
  //           }
  //         },
  //           { title: '岗位', dataIndex: 'DetailPost' , width: 200,align:"left"},
  //           { title: '涉及风险', dataIndex: 'Nav_EvaluateRisk.NAME' , width: 200,align:"center"}
  //         ];
  //     const paginationConfig = {
  //       pageSizeOptions: ['5', '10', '20', '50', '100'],
  //       // current: this.state.loadParamJson.PageIndex,
  //       pageSize: 10,
  //       total: params.record.Nav_Details?.length,
  //       showSizeChanger: true,
  //       size: 'small',
  //       // position:'both',
  //       showTotal: () => `共 ${params.record.Nav_Details?.length} 条`
  //     };
  //     return <>
  //       <Table size='small' columns={columns} dataSource={data} pagination={false} scroll={{ y: 300 }} />
  //     </>
  //   }
  //   // else {
  //   //   return ""
  //   // }
  // }
  // onChange: ({ value,colInfo, getFieldValue, setFieldValueByBatch, dispatch,setFieldEditable,setFieldVisible }) => {
  //   if (!(colInfo.FIELD_NAME == 'approve'))
  //   return;
  //   let id = getFieldValue('ApproveId')  
  //   let json = initFilter(null,id);
  //   dispatch({
  //     type: 'app/getDataByPost',
  //     url: 'PF/PFApproveTemp/GetDetail',
  //     payload: json,
  //     onlyData: false,
  //     onComplete: (re) => {
  //       if (re && re.IsSuccessful && re.Data) {
  //           let temps = [];
  //           let detail=re.Data.Nav_ApproveDetails.map((item,i)=>{
  //               item['ROW_NO'] = i+1;
  //               let isUpdate = item.IS_ALLOW_UPDATE;
  //               //if(isUpdate === false)
  //               //{
  //                 setFieldEditable(item['Nav_ApproveUser.NAME'], false)
  //               //}
  //               return item;
  //            });
  //           temps.push({ field: 'Nav_ApproveDetails', value: detail })
  //           setFieldValueByBatch(temps);
  //           setFieldEditable('Nav_ApproveDetails', false)
  //           //updateSubTableData(params.pageCode,detail,true)
  //       }
  //     }
  //   })
  // },
}
