<template>
    <el-dialog title="工作单元选择" v-if="showFlag" :visible.sync="showFlag" :modal="false" width="80%" center>
      <el-form :model="queryParams" @submit.native.prevent ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="90px">
        <el-row>
            <el-form-item label="工作中心编码" label-width="120" prop="workstationCode">
              <el-input v-model="queryParams.workstationCode" placeholder="请输入工作中心编号" clearable
                @keyup.enter.native="handleQuery" />
            </el-form-item>
            <el-form-item label="工作中心名称" label-width="120" prop="workstationName">
              <el-input v-model="queryParams.workstationName" placeholder="请输入工作中心名称" clearable
                @keyup.enter.native="handleQuery" />
            </el-form-item>
            <el-form-item>
              <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
              <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
            </el-form-item>
        </el-row>
        <el-row>
          <el-col :span="24"> </el-col>
        </el-row>
      </el-form>
  
      <el-table v-loading="loading" :data="workstationList" @current-change="handleCurrent"
        @row-dblclick="handleRowDbClick">
        <el-table-column width="55" align="center">
          <template v-slot="scope">
            <el-radio v-model="selectedprocessId" :label="scope.row.workunitId"
              @change="handleRowChange(scope.row)">{{ "" }}</el-radio>
          </template>
        </el-table-column>
        <el-table-column label="工作中心编码" align="center" prop="workstationCode" />
        <el-table-column label="工作中心名称" align="center" prop="workstationName" />
        <el-table-column label="工作单元编码" align="center" prop="workunitCode" />
        <el-table-column label="工作单元名称" align="center" prop="workunitName" />
      </el-table>
      <div slot="footer" class="dialog-footer">
        <el-button type="primary" @click="confirmSelect">确 定</el-button>
        <el-button @click="cancel">取 消</el-button>
      </div>
    </el-dialog>
  </template>
  
  <script>
import { getProcessInfo} from '@/api/mes/pro/scheduleList'
  export default {
    name: "WorkstationSelect",
    dicts: ["sys_yes_no"],
    data() {
      return {
        showFlag: false,
        // 遮罩层
        loading: true,
        // 选中数组
        selectedprocessId: undefined,
        selectedRows: [],
        // 非单个禁用
        single: true,
        // 非多个禁用
        multiple: true,
        // 显示搜索条件
        showSearch: true,
        // 总条数
        total: 0,
        // 工作中心表格数据
        workstationList: [],
        // 弹出层标题
        title: "",
        // 是否显示弹出层
        open: false,
        // 查询参数
        queryParams: {
          workstationCode: null,
          workstationName: null,
          workstationAddress: null,
          workshopId: null,
          workshopCode: null,
          workshopName: null,
          processId: null,
          processCode: null,
          processName: null,
          enableFlag: null,
          stdWorkingTime: null,
          workstationId: null
        },
        // 表单参数
        form: {},
      };
    },
    props: {
      processId: {
        type: Number | undefined,
        default: undefined,
      }, //外部传入的工序过滤条件
      workstationId: {
        type: Number | undefined,
        default: undefined,
      }
    },
    created() {
      this.getList();
    },
    watch: {
      processId: {
        handler(val) {
          this.queryParams.processId = val;
          this.getList();
        },
        immediate: true,
      },
      workstationId: {
        handler(val) {
          this.queryParams.workstationId = val;
          this.getList();
        },
        immediate: true,
      },
    },
    methods: {
      /** 查询工作中心列表 */
      getList() {
        this.loading = true;
        if (!this.queryParams.processId) return
        getProcessInfo(this.queryParams).then((response) => {
          this.workstationList = response.data;
          this.total = response.total;
          this.loading = false;
        });
      },
      // 取消按钮
      cancel() {
        this.showFlag=false;
        this.resetQuery();
      },
      // 表单重置
      reset() {
        this.form = {
          processId: null,
          workstationCode: null,
          workstationName: null,
          workstationAddress: null,
          workshopId: null,
          workshopCode: null,
          workshopName: null,
          processCode: null,
          processName: null,
          remark: null,
          createBy: null,
          createTime: null,
          updateBy: null,
          updateTime: null,
          stdWorkingTime: null,
          workstationId: null
        };
        this.resetForm("form");
      },
      /** 搜索按钮操作 */
      handleQuery() {
        this.queryParams.pageNum = 1;
        this.getList();
      },
      /** 重置按钮操作 */
      resetQuery() {
        this.queryParams = {
          processId: this.processId,
          workstationId: this.workstationId
        };
        this.resetForm("queryForm");
        this.handleQuery();
      },
      handleCurrent(row) {
        if (row) {
          this.selectedRows = row;
        }
      },
      // 单选选中数据
      handleRowChange(row) {
        if (row) {
          this.selectedRows = row;
        }
      },
      //双击选中
      handleRowDbClick(row) {
        if (row) {
          this.selectedRows = row;
          this.$emit("onSelected", this.selectedRows);
          this.showFlag = false;
        }
      },
      //确定选中
      confirmSelect() {
        if (
          this.selectedprocessId == null ||
          this.selectedprocessId == 0
        ) {
          this.$notify({
            title: "提示",
            type: "warning",
            message: "请至少选择一条数据!",
          });
          return;
        }
        this.$emit("onSelected", this.selectedRows);
        this.showFlag = false;
      },
    },
  };
  </script>
  