<template>
  <div>
    <el-form ref="form" :model="form" label-width="120px">
      <headerTitle title="基本信息">
        <!-- <el-button
                  size="small"
                  type="primary"
                  icon="el-icon-s-grid"
                  class="ele-btn-icon"
                  @click="exportTable"
                >
                 导出
                </el-button> -->
      </headerTitle>
      <el-row>
        <el-col :span="12">
          <el-form-item label="需求类型：" prop="sourceTypeName">
            {{ form.sourceTypeName }}
          </el-form-item>
        </el-col>
        <el-col :span="12">
          <el-form-item label="需求单名称：" prop="requirementName">
            {{ form.requirementName }}
          </el-form-item>
        </el-col>
        <el-col :span="12">
          <el-form-item label="需求部门：" prop="requireDeptName">
            {{ detailData.requireDeptName }}
          </el-form-item>
        </el-col>
        <el-col :span="12">
          <el-form-item label="需求人：" prop="requireUserName">
            {{ form.requireUserName }}
          </el-form-item>
        </el-col>
        <el-col v-if="form.sourceType==1" :span="12">
          <el-form-item label="销售合同">
            {{ form.saleContractName }}
          </el-form-item>
        </el-col>
        <el-col v-if="form.sourceType==1" :span="12">
          <el-form-item label="销售订单">
            {{ form.saleOrderNo }}
          </el-form-item>
        </el-col>

        <el-col :span="12">
          <el-form-item prop="remark" label="是否接受拆单">
            {{
              form.acceptUnpack === 1
                ? '接受'
                : form.cceptUnpack === 1
                ? '不接受'
                : ''
            }}
          </el-form-item>
        </el-col>
        <el-col :span="12">
          <el-form-item label="用途：" prop="useTo">
            {{ form.useTo }}
          </el-form-item>
        </el-col>
        <el-col :span="12">
          <el-form-item label="完成日期：" prop="finishDate">
            {{ form.finishDate }}
          </el-form-item>
        </el-col>
        <el-col :span="12">
          <el-form-item prop="remark" label="备注：">
            {{ form.remark }}
          </el-form-item>
        </el-col>
        <el-col :span="12">
          <el-form-item prop="askFile" label="附件：">
            <fileMain v-model="form.files" type="view"></fileMain>
<!--            <el-link-->
<!--              v-if="form.files && form.files !== ''"-->
<!--              type="primary"-->
<!--              :underline="false"-->
<!--              @click="downloadFile(form.files)"-->
<!--            >-->
<!--              {{ form.files.name }}</el-link-->
<!--            >-->
          </el-form-item>
        </el-col>
      </el-row>
    </el-form>

    <headerTitle title="需求清单"></headerTitle>
    <ele-pro-table
      ref="table"
      :needPage="false"
      :columns="columns"
      :toolkit="[]"
      :datasource="detailData.detailList"
      row-key="id"
    >
      <template v-slot:files="{ row }">
        <fileMain v-model="row.files"  type="view"></fileMain>
<!--        <div v-if="row.files && row.files?.length">-->
<!--          <el-link-->
<!--            v-for="link in row.files"-->
<!--            :key="link.id"-->
<!--            type="primary"-->
<!--            :underline="false"-->
<!--            @click="downloadFile(link)"-->
<!--          >-->
<!--            {{ link.name }}</el-link-->
<!--          >-->
<!--        </div>-->
      </template>
    </ele-pro-table>
    <timeDialog ref="timeDialogRef" :view="true"></timeDialog>
  </div>
</template>

<script>
  import { getDetail } from '@/api/bpm/components/purchasingManage/purchaseNeedManage';
  import { getFile } from '@/api/system/file';
  import dictMixins from '@/mixins/dictMixins';
  import timeDialog from '@/components/timeDialog/index.vue';
  import fileMain from "@/components/addDoc/index.vue";

  export default {
    props: {
      businessId: {
        default: ''
      }
    },
    mixins: [dictMixins],
    components: {
      fileMain,
      timeDialog
    },
    data() {
      return {
        visible: false,
        title: '详情',
        row: {},
        form: {},
        detailData: {},
        columns: [
        {
            width: 45,
            type: 'index',
            columnKey: 'index',
            align: 'center',
            fixed: 'left'
          },
          {
            width: 150,
            prop: 'productCategoryName',
            label: '分类',
            slot: 'productCategoryName',
            align: 'center'
          },
          {
            width: 140,
            prop: 'productCode',
            label: '编码',
            slot: 'productCode',
            align: 'center'
          },
          {
            width: 240,
            prop: 'productName',
            label: '名称',
            slot: 'productName',
            align: 'center'
          },
          {
            width: 150,
            prop: 'productBrand',
            label: '牌号',
            slot: 'productBrand',
            align: 'center'
          },
          {
            width: 80,
            prop: 'totalCount',
            label: '数量',
            slot: 'totalCount',
            align: 'center'
          },

          {
            minWidth: 120,
            prop: 'taskName',
            label: '工序',
            slot: 'taskName',
            align: 'center'
          },
          {
            width: 110,
            prop: 'batchNo',
            label: '批次号',
            slot: 'batchNo',
            align: 'center'
          },
          {
            prop: 'provenance',
            label: '产地',
            slot: 'provenance',
            align: 'center',
            minWidth: 200,
            showOverflowTooltip: true,
            formatter: (row, column) => {
       
              return row.provenance && row.provenance.length
                ? row.provenance
                    .map((item) => this.getDictValue('产地', item ))
                    .join(',')
                : '';
            }
          },
          {
            width: 100,
            prop: 'measuringUnit',
            label: '单位',
            slot: 'measuringUnit',
            align: 'center'
          },
          {
            width: 130,
            prop: 'modelType',
            label: '型号',
            slot: 'modelType',
            align: 'center'
          },
          {
            width: 120,
            prop: 'specification',
            label: '规格',
            slot: 'specification',
            align: 'center'
          },
          {
            width: 130,
            prop: 'brand',
            label: '品牌',
            slot: 'brand',
            align: 'center'
          },
          {
            width: 150,
            prop: 'arrivalWay',
            label: '	到货方式',
            formatter: (row, column, cellValue) => {
              return cellValue == 1 ? '一次性到货' : '分批到货';
            },
            align: 'center'
          },
          {
            width: 170,
            prop: 'expectReceiveDate',
            label: '到货日期',
            slot: 'expectReceiveDate',
            align: 'center'
          },
          {
            width: 160,
            prop: 'technicalDrawings',
            label: '图纸附件',
            slot: 'technicalDrawings',
            align: 'center'
          },
          {
            width: 140,
            prop: 'files',
            label: '附件',
            slot: 'files',
            align: 'center'
          },
          {
            width: 220,
            prop: 'remark',
            label: '备注',
            slot: 'remark',
            align: 'center'
          }
        ]
      };
    },
    created() {
      this.requestDict('产地');
      this.getDetailData(this.businessId);
      
    },
    methods: {
      downloadFile(file) {
        getFile({ objectName: file.storePath }, file.name);
      },
      handleMethod(row) {
        this.$refs.timeDialogRef.open(row);
      },
      async getDetailData(id) {
        this.loading = true;
        const data = await getDetail(id);
        this.loading = false;
        if (data) {
          this.form = data;

          this.detailData = data;
          if (data.files && data.files.length > 0) {
            this.form.files = data.files[0];
          } else {
            this.form.files = null;
          }
        }
      }
    }
  };
</script>

<style scoped lang="scss">
  .ele-dialog-form {
    .el-form-item {
      margin-bottom: 10px;
    }
  }

  .headbox {
    display: flex;
    justify-content: space-between;
    align-items: center;
    .amount {
      font-size: 14px;
      font-weight: bold;
    }
  }
</style>
