import { Checkbox } from 'ant-design-vue';
import $ from 'jquery';
import { loadProfile } from '../hooks/commonMethods';
import Api from '../api/api';
//从服务器获取列信息
let showCols = [];
const getAndCols = async () => {
  await loadProfile(['work-plan-list'])
    .then((res) => {
      showCols = res[0].cols;
      for (let i = 0; i < showCols.length; i++) {
        showCols[i].title = showCols[i].Name;
        showCols[i].dataIndex = showCols[i].Field;
        if (showCols[i].dataIndex == 'ProductSeries') {
          showCols[i].treeOption = [
            {
              id: '1',
              name: '成品',
              children: [
                {
                  id: '2',
                  name: '成品_纯丙烯酸酯',
                },
                {
                  id: '3',
                  name: '成品_纯丙烯酸酯_0.5kg包装',
                },
                {
                  id: '4',
                  name: '成品_纯丙烯酸酯_20kg包装',
                },
                {
                  id: '5',
                  name: '成品_纯丙烯酸酯_200kg包装',
                },
                {
                  id: '6',
                  name: '成品_纯丙烯酸酯_40kg包装',
                },
                {
                  id: '7',
                  name: '成品_纯丙烯酸酯_50kg包装',
                },
              ],
            },
            {
              id: '8',
              name: '配件',
              children: [
                {
                  id: '9',
                  name: '配件_过滤袋',
                  children: [
                    {
                      id: '10',
                      name: '配件_过滤袋_27微米',
                    },
                    {
                      id: '11',
                      name: '配件_过滤袋_28微米',
                    },
                    {
                      id: '12',
                      name: '配件_过滤袋_29微米',
                    },
                    {
                      id: '13',
                      name: '配件_过滤袋_30微米',
                    },
                  ],
                },
                {
                  id: '14',
                  name: '配件_包装桶',
                  children: [
                    {
                      id: '15',
                      name: '配件_包装桶_塑胶桶',
                    },
                    {
                      id: '16',
                      name: '配件_包装桶_铁桶',
                    },
                  ],
                },
              ],
            },
          ];
        }
      }

    })
    .finally(() => { });
};

// const _getComBoxlabel = (record, col) => {
//   let label = '';
//   for (let i = 0; i < col.Option.length; i++) {
//     if (col.Option[i].value == record[col.Field]) {
//       label = col.Option[i].label;
//       break;
//     }
//   }
//   return label;
// };
// const _getCheckBox = (record, col) => {
//   return <Checkbox checked={record[col.Field]} disabled={true}></Checkbox>;
// };

// const formatCols = function (data) {
//   if (data.length == 0) {
//     return;
//   }
//   const tempArray = [];
//   if (data[0].cols.length > 0) {
//     const cols = data[0].cols.filter((item) => {
//       return item.Visible == true;
//     });

//     for (let i = 0; i < cols.length; i++) {
//       if (cols[i].Style.toLowerCase() == 'textbox') {
//         const tempItem = {
//           title: cols[i].Name,
//           dataIndex: cols[i].Field,
//           width: cols[i].width,
//           resizable: true,
//           type: cols[i].Style,
//           fixed: cols[i].fixed,
//           formItemProps: cols[i].ifshowInQueryForm ? {} : null,
//           hideInSearch: cols[i].ifshowInQueryForm ? false : true, //是否生成到最终的查询面板中
//           sorter: cols[i].sorter ? cols[i].sorter : false,
//         };
//         const copy = {};
//         $.extend(true, copy, tempItem);
//         //@ts-ignore
//         tempArray.push(copy);
//       } else if (cols[i].Style.toLowerCase() == 'combox') {
//         const tempItem = {
//           title: cols[i].Name,
//           dataIndex: cols[i].Field,
//           width: cols[i].width,
//           resizable: true,
//           type: cols[i].Style,
//           fixed: cols[i].fixed,
//           sorter: cols[i].sorter ? cols[i].sorter : false,
//           formItemProps: cols[i].ifshowInQueryForm
//             ? {
//               component: 'Select',
//               componentProps: ({ tableInstance }) => ({
//                 options: cols[i].Option,
//                 onChange() {
//                   console.log('tableInstance', tableInstance?.reload());
//                 },
//               }),
//             }
//             : undefined,
//           bodyCell: ({ record }) => {
//             return _getComBoxlabel(record, cols[i]);
//           },
//           hideInSearch: cols[i].ifshowInQueryForm ? false : true,
//         };
//         // const copy = deepClone(tempItem);
//         const copy = {};
//         $.extend(true, copy, tempItem);
//         //@ts-ignore
//         tempArray.push(copy);
//       } else if (cols[i].Style.toLowerCase() == 'checkbox') {
//         const tempItem = {
//           title: cols[i].Name,
//           dataIndex: cols[i].Field,
//           width: cols[i].width,
//           resizable: true,
//           type: cols[i].Style,
//           sorter: cols[i].sorter ? cols[i].sorter : false,
//           formItemProps: cols[i].ifshowInQueryForm
//             ? {
//               component: 'Select',
//               componentProps: ({ tableInstance }) => ({
//                 options: [
//                   {
//                     label: '是',
//                     value: true,
//                   },
//                   {
//                     label: '否',
//                     value: false,
//                   },
//                 ],
//                 onChange() {
//                   console.log('tableInstance', tableInstance?.reload());
//                 },
//               }),
//             }
//             : null,
//           bodyCell: ({ record }) => {
//             return _getCheckBox(record, cols[i]);
//           },
//           hideInSearch: cols[i].ifshowInQueryForm ? false : true,
//         };
//         const copy = {};
//         $.extend(true, copy, tempItem);
//         //@ts-ignore
//         tempArray.push(copy);
//       }
//     }
//   }

//   return tempArray;
// };
let originData = [];
const getTableData = async () => {
  const sendData = {
    IsPreparePlan: false,
    Request: {
      PageSize: 0,
      Page: 0,
      Conditions: [],
    },
  };
  await Api.LoadWorkPlanHead(sendData)
    .then((data) => {
      originData = data.Datas;
      for (let i = 0; i < originData.length; i++) {
        //@ts-ignore
        originData[i].key = i + 1;
      }
    })
    .catch((_) => { });
};

await getAndCols(); //获取列配置文件
await getTableData(); //获取表格数据

export const columns = showCols;
export const tableData = originData;
