spring
2025-02-19 bb98d4606e64ee048e99a83df2ef554c9605d692
cnas问题修改
已修改3个文件
1181 ■■■■ 文件已修改
src/assets/api/controller.js 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/caorui/Department/components/Records/control/index.vue 643 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/caorui/Department/components/Records/dispose/index.vue 535 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/api/controller.js
@@ -910,7 +910,8 @@
  uploadVerifyMethodFile: "/processMethodVerify/uploadVerifyMethodFile", // 新增原始记录
  getVerifyMethodFileList: "/processMethodVerify/getVerifyMethodFileList", // 原始记录列表
  delVerifyMethodFileList: "/processMethodVerify/delVerifyMethodFileList", // 删除验证原始记录列表
  delMethodVerify: "/processMethodVerify/delMethodVerify" // 删除标准方法更新验证
  delMethodVerify: "/processMethodVerify/delMethodVerify", // 删除标准方法更新验证
  exportMethodVerify: "/processMethodVerify/exportMethodVerify" // 导出标准方法更新验证
};
// 7.4检测或校准物品的处置-样品接收
src/components/caorui/Department/components/Records/control/index.vue
@@ -1,331 +1,350 @@
<template>
    <div>
        <el-dialog
            :visible.sync="dialogVisible"
            title="不符合工作控制单"
        >
            <el-steps :active="active" :align-center="true" finish-status="success">
                <el-step
                    v-for="(item, index) in stepList"
                    :key="index"
                    :title="item.label"
                    style="cursor: pointer;"
                    @click.native="setStep(item.value)"
                ></el-step>
            </el-steps>
            <el-divider></el-divider>
                <ConditionForm
                    v-if="pageStatus == 0"
                    :condiForm.sync="mainForm.condiForm"
                    :currentResponsible="currentResponsible"
                    :disabled="active != 0"
                    :step="active"
                    :userList="userList"
                    @nextStep="submit"
                ></ConditionForm>
                <ConditionForm
                    v-if="pageStatus == 1"
                    :condiForm.sync="mainForm.condiForm"
                    :currentResponsible="currentResponsible"
                    :disabled="true"
                    :step="active"
                    :userList="userList"
                    @cancel="cancel"
                    @nextStep="submit"
                ></ConditionForm>
                <MeasureForm
                    v-if="pageStatus == 2"
                    :currentResponsible="currentResponsible"
                    :disabled="active != 2"
                    :handleForm.sync="mainForm.handleForm"
                    :step="active"
                    :userList="userList"
                    @cancel="cancel"
                    @nextStep="submit"
                ></MeasureForm>
                <RectifyForm
                    v-if="pageStatus == 3"
                    :currentResponsible="currentResponsible"
                    :disabled="active != 3"
                    :rectifyForm.sync="mainForm.rectifyForm"
                    :step="active"
                    :userList="userList"
                    @cancel="cancel"
                    @nextStep="submit"
                ></RectifyForm>
                <Inform
                    v-if="pageStatus == 4"
                    :disabled="active != 4"
                    :inform.sync="mainForm.inform"
                    :step="active"
                    :userList="userList"
                    @cancel="cancel"
                    @nextStep="submit"
                ></Inform>
                <el-result v-if="pageStatus == 5" icon="success" subTitle="处理完成" title="审核完成">
                </el-result>
        </el-dialog>
    </div>
  <div>
    <el-dialog :visible.sync="dialogVisible" title="不符合工作控制单">
      <el-steps :active="active" :align-center="true" finish-status="success">
        <el-step
          v-for="(item, index) in stepList"
          :key="index"
          :title="item.label"
          style="cursor: pointer;"
          @click.native="setStep(item.value)"
        ></el-step>
      </el-steps>
      <el-divider></el-divider>
      <ConditionForm
        v-if="pageStatus == 0"
        :condiForm.sync="mainForm.condiForm"
        :currentResponsible="currentResponsible"
        :disabled="active != 0"
        :step="active"
        :userList="userList"
        @nextStep="submit"
      ></ConditionForm>
      <ConditionForm
        v-if="pageStatus == 1"
        :condiForm.sync="mainForm.condiForm"
        :currentResponsible="currentResponsible"
        :disabled="true"
        :step="active"
        :userList="userList"
        @cancel="cancel"
        @nextStep="submit"
      ></ConditionForm>
      <MeasureForm
        v-if="pageStatus == 2"
        :currentResponsible="currentResponsible"
        :disabled="active != 2"
        :handleForm.sync="mainForm.handleForm"
        :step="active"
        :userList="userList"
        @cancel="cancel"
        @nextStep="submit"
      ></MeasureForm>
      <RectifyForm
        v-if="pageStatus == 3"
        :currentResponsible="currentResponsible"
        :disabled="active != 3"
        :rectifyForm.sync="mainForm.rectifyForm"
        :step="active"
        :userList="userList"
        @cancel="cancel"
        @nextStep="submit"
      ></RectifyForm>
      <Inform
        v-if="pageStatus == 4"
        :disabled="active != 4"
        :inform.sync="mainForm.inform"
        :step="active"
        :userList="userList"
        @cancel="cancel"
        @nextStep="submit"
      ></Inform>
      <el-result
        v-if="pageStatus == 5"
        icon="success"
        subTitle="处理完成"
        title="审核完成"
      >
      </el-result>
    </el-dialog>
  </div>
</template>
<script>
import ConditionForm from './Step/ConditionForm.vue'
import MeasureForm from './Step/MeasureForm.vue'
import RectifyForm from './Step/RectifyForm.vue'
import Inform from './Step/Inform.vue'
import ConditionForm from "./Step/ConditionForm.vue";
import MeasureForm from "./Step/MeasureForm.vue";
import RectifyForm from "./Step/RectifyForm.vue";
import Inform from "./Step/Inform.vue";
import {
    personSupervisionControlSheetPage,
    getUserListApi,
    addOrUpdatePersonSupervisionControl
} from "../../../../../../assets/api/api"
  personSupervisionControlSheetPage,
  getUserListApi,
  addOrUpdatePersonSupervisionControl
} from "../../../../../../assets/api/api";
export default {
    components: {
        ConditionForm, MeasureForm, RectifyForm, Inform
    },
    data() {
        return {
            active: 0,
            pageStatus: 0,
            dialogVisible: false,
            currentResponsible: undefined,
            stepList: [{
                    label: '工作情况',
                    value: 0
                }, {
                    label: '被监督人确认',
                    value: 1
                }, {
                    label: '处理措施',
                    value: 2
                }, {
                    label: '纠正措施',
                    value: 3
                }, {
                    label: '通知客户',
                    value: 4
                }
            ],
            supervisionRecordId: undefined,
            controlId: undefined,
            mainForm: {
                condiForm: {
                    departmentHeadId: undefined,
                    supervisedPersonId: undefined,
                    discoveryApproach: [],
                    notConformDetails: undefined,
                    nonConformityClause: undefined,
                },
                handleForm: {
                    responsibleDepartmentPersonId: undefined,
                    treatmentMeasures: undefined
                },
                rectifyForm: {
                    correctiveMeasure: undefined,
                    correctiveMeasureFollowTracks: undefined,
                    correctiveMeasurePersonId: undefined
                },
                inform: {
                    whetherInformCustomer: undefined,
                    whetherResumeWork: undefined,
                    qualitySupervisorId: undefined
                }
            },
            userList: [],
            controlType: undefined
  components: {
    ConditionForm,
    MeasureForm,
    RectifyForm,
    Inform
  },
  data() {
    return {
      active: 0,
      pageStatus: 0,
      dialogVisible: false,
      currentResponsible: undefined,
      stepList: [
        {
          label: "工作情况",
          value: 0
        },
        {
          label: "被监督人确认",
          value: 1
        },
        {
          label: "处理措施",
          value: 2
        },
        {
          label: "纠正措施",
          value: 3
        },
        {
          label: "通知客户",
          value: 4
        }
    },
    methods: {
        /**
         * @desc 初始化表单
         */
        initForm() {
            this.mainForm.condiForm.departmentHeadId = undefined
            this.mainForm.condiForm.supervisedPersonId = undefined
            this.mainForm.condiForm.discoveryApproach = []
            this.mainForm.condiForm.notConformDetails = undefined
            this.mainForm.condiForm.nonConformityClause = undefined
            this.mainForm.handleForm.responsibleDepartmentPersonId = undefined
            this.mainForm.handleForm.treatmentMeasures = undefined
            this.mainForm.rectifyForm.correctiveMeasure = undefined
            this.mainForm.rectifyForm.correctiveMeasureFollowTracks = undefined
            this.mainForm.rectifyForm.correctiveMeasurePersonId = undefined
            this.mainForm.inform.whetherInformCustomer = undefined
            this.mainForm.inform.whetherResumeWork = undefined
            this.mainForm.inform.qualitySupervisorId = undefined
      ],
      supervisionRecordId: undefined,
      controlId: undefined,
      mainForm: {
        condiForm: {
          departmentHeadId: undefined,
          supervisedPersonId: undefined,
          discoveryApproach: [],
          notConformDetails: undefined,
          nonConformityClause: undefined
        },
        /**
         * @desc 打开模态框
         * @param {监督记录id} id
         */
        openDialog(id) {
            this.dialogVisible = true
            this.getUserList()
            this.getControlData(id)
        handleForm: {
          responsibleDepartmentPersonId: undefined,
          treatmentMeasures: undefined
        },
        /**
         * @desc 获取用户信息
         */
         async getUserList() {
            const { code, data } = await this.$axios({
                method: 'get',
                url: getUserListApi,
            })
            if(code == 200) {
                this.userList = data
            }
        rectifyForm: {
          correctiveMeasure: undefined,
          correctiveMeasureFollowTracks: undefined,
          correctiveMeasurePersonId: undefined
        },
        /**
         * @desc 查询监督记录控制单
         * @param {监督记录id} id
         */
        async getControlData(id) {
            const { code, data } = await this.$axios({
                method: 'get',
                url: personSupervisionControlSheetPage,
                params: {id}
            })
            if(code == 202) {
                this.controlType = '新增'
                this.supervisionRecordId = id
                this.active = 0
                this.pageStatus = 0
                this.controlId = undefined
                this.initForm()
            }
            if(code == 200) {
                this.currentResponsible = data.currentResponsible
                this.controlType = '编辑'
                this.controlId = data.id
                this.active = Number(data.currentState)
                this.pageStatus = Number(data.currentState === 4 ? 0 : data.currentState)
                // 第1、2步数据
                this.mainForm.condiForm.departmentHeadId = data.departmentHeadId
                this.mainForm.condiForm.supervisedPersonId = data.supervisedPersonId
                this.mainForm.condiForm.notConformDetails = data.notConformDetails
                this.mainForm.condiForm.nonConformityClause = data.nonConformityClause
                // 第3步数据
                this.mainForm.handleForm.responsibleDepartmentPersonId = data.responsibleDepartmentPersonId
                this.mainForm.handleForm.treatmentMeasures = data.treatmentMeasures
                // 第4步数据
                this.mainForm.rectifyForm.correctiveMeasure = data.correctiveMeasure
                this.mainForm.rectifyForm.correctiveMeasureFollowTracks = data.correctiveMeasureFollowTracks
                this.mainForm.rectifyForm.correctiveMeasurePersonId = data.correctiveMeasurePersonId
                // 第5步数据
                this.mainForm.whetherInformCustomer = data.whetherInformCustomer
                this.mainForm.whetherResumeWork = data.whetherResumeWork
                this.mainForm.qualitySupervisorId = data.qualitySupervisorId
                this.supervisionRecordId = data.supervisionRecordId
            }
        },
        submit(type) {
            let currentState = undefined
            if(type == 'submit') {
                currentState = this.active + 1
            } else if(type == 'save') {
                currentState = undefined
            }
            if(this.active == 0) {
                let { discoveryApproach, ...condiFormRest } = this.mainForm.condiForm
                let approcahStr = discoveryApproach.join(',')
                this.submitForm({
                    id: this.controlId,
                    supervisionRecordId: this.supervisionRecordId,
                    discoveryApproach: approcahStr,
                    currentState: currentState,
                  discovererDate: this.$moment().format('YYYY-MM-DD HH:mm:ss'),
                    ...condiFormRest
                })
            }
            if(this.active == 1) {
                let { discoveryApproach, ...condiFormRest } = this.mainForm.condiForm
                let approcahStr = discoveryApproach.join(',')
                this.submitForm({
                    id: this.controlId,
                    supervisionRecordId: this.supervisionRecordId,
                    discoveryApproach: approcahStr,
                    currentState: currentState,
                  supervisedPersonDate: this.$moment().format('YYYY-MM-DD'),
                    ...condiFormRest
                })
            }
            if(this.active == 2) {
                let { handleForm } = this.mainForm
                this.submitForm({
                    id: this.controlId,
                    supervisionRecordId: this.supervisionRecordId,
                    currentState: currentState,
                  responsibleDepartmentDate: this.$moment().format('YYYY-MM-DD HH:mm:ss'),
                    ...handleForm
                })
            }
            if(this.active == 3) {
                let { rectifyForm } = this.mainForm
                this.submitForm({
                    id: this.controlId,
                    supervisionRecordId: this.supervisionRecordId,
                    currentState: currentState,
                  correctiveMeasureDate: this.$moment().format('YYYY-MM-DD HH:mm:ss'),
                    ...rectifyForm
                })
            }
            if(this.active == 4) {
                let { inform } = this.mainForm
                this.submitForm({
                    id: this.controlId,
                    supervisionRecordId: this.supervisionRecordId,
                    currentState: currentState,
                  qualitySupervisorDate: this.$moment().format('YYYY-MM-DD HH:mm:ss'),
                    ...inform
                })
            }
        },
        /**
         * @desc 提交表单
         */
        async submitForm(form) {
            let user = JSON.parse(localStorage.getItem('user'));
            const { code } = await this.$axios({
                method: 'post',
                url: addOrUpdatePersonSupervisionControl,
                data: {
                    currentResponsible: user.name,
                    ...form
                },
                noQs: true
            })
            if(this.controlType == '新增') {
                if(code == 200) {
                    this.$message.success('提交成功')
                }
            } else if(this.controlType == '编辑') {
                if(code == 200) {
                    this.$message.success('提交成功')
                }
            }
            this.dialogVisible = false
        },
        /**
         * @desc 驳回
         */
        cancel() {
            let currentState = this.active - 1
            this.submitForm({
                id: this.controlId,
                supervisionRecordId: this.supervisionRecordId,
                currentState: currentState,
            })
        },
        setStep(e) {
            this.pageStatus = e
        inform: {
          whetherInformCustomer: undefined,
          whetherResumeWork: undefined,
          qualitySupervisorId: undefined
        }
      },
      userList: [],
      controlType: undefined
    };
  },
  methods: {
    /**
     * @desc 初始化表单
     */
    initForm() {
      this.mainForm.condiForm.departmentHeadId = undefined;
      this.mainForm.condiForm.supervisedPersonId = undefined;
      this.mainForm.condiForm.discoveryApproach = [];
      this.mainForm.condiForm.notConformDetails = undefined;
      this.mainForm.condiForm.nonConformityClause = undefined;
      this.mainForm.handleForm.responsibleDepartmentPersonId = undefined;
      this.mainForm.handleForm.treatmentMeasures = undefined;
      this.mainForm.rectifyForm.correctiveMeasure = undefined;
      this.mainForm.rectifyForm.correctiveMeasureFollowTracks = undefined;
      this.mainForm.rectifyForm.correctiveMeasurePersonId = undefined;
      this.mainForm.inform.whetherInformCustomer = undefined;
      this.mainForm.inform.whetherResumeWork = undefined;
      this.mainForm.inform.qualitySupervisorId = undefined;
    },
    /**
     * @desc 打开模态框
     * @param {监督记录id} id
     */
    openDialog(id) {
      this.dialogVisible = true;
      this.getUserList();
      this.getControlData(id);
    },
    /**
     * @desc 获取用户信息
     */
    async getUserList() {
      const { code, data } = await this.$axios({
        method: "get",
        url: getUserListApi
      });
      if (code == 200) {
        this.userList = data;
      }
    },
    /**
     * @desc 查询监督记录控制单
     * @param {监督记录id} id
     */
    async getControlData(id) {
      const { code, data } = await this.$axios({
        method: "get",
        url: personSupervisionControlSheetPage,
        params: { id }
      });
      if (code == 202) {
        this.controlType = "新增";
        this.supervisionRecordId = id;
        this.active = 0;
        this.pageStatus = 0;
        this.controlId = undefined;
        this.initForm();
      }
      if (code == 200) {
        this.currentResponsible = data.currentResponsible;
        this.controlType = "编辑";
        this.controlId = data.id;
        this.active = Number(data.currentState);
        this.pageStatus = Number(
          data.currentState === 4 ? 0 : data.currentState
        );
        // 第1、2步数据
        this.mainForm.condiForm.departmentHeadId = data.departmentHeadId;
        this.mainForm.condiForm.supervisedPersonId = data.supervisedPersonId;
        this.mainForm.condiForm.notConformDetails = data.notConformDetails;
        this.mainForm.condiForm.nonConformityClause = data.nonConformityClause;
        // 第3步数据
        this.mainForm.handleForm.responsibleDepartmentPersonId =
          data.responsibleDepartmentPersonId;
        this.mainForm.handleForm.treatmentMeasures = data.treatmentMeasures;
        // 第4步数据
        this.mainForm.rectifyForm.correctiveMeasure = data.correctiveMeasure;
        this.mainForm.rectifyForm.correctiveMeasureFollowTracks =
          data.correctiveMeasureFollowTracks;
        this.mainForm.rectifyForm.correctiveMeasurePersonId =
          data.correctiveMeasurePersonId;
        // 第5步数据
        this.mainForm.whetherInformCustomer = data.whetherInformCustomer;
        this.mainForm.whetherResumeWork = data.whetherResumeWork;
        this.mainForm.qualitySupervisorId = data.qualitySupervisorId;
        this.supervisionRecordId = data.supervisionRecordId;
      }
    },
    submit(type) {
      let currentState = undefined;
      if (type == "submit") {
        currentState = this.active + 1;
      } else if (type == "save") {
        currentState = undefined;
      }
      if (this.active == 0) {
        let { discoveryApproach, ...condiFormRest } = this.mainForm.condiForm;
        let approcahStr = discoveryApproach.join(",");
        this.submitForm({
          id: this.controlId,
          supervisionRecordId: this.supervisionRecordId,
          discoveryApproach: approcahStr,
          currentState: currentState,
          discovererDate: this.$moment().format("YYYY-MM-DD HH:mm:ss"),
          ...condiFormRest
        });
      }
      if (this.active == 1) {
        let { discoveryApproach, ...condiFormRest } = this.mainForm.condiForm;
        let approcahStr = discoveryApproach.join(",");
        this.submitForm({
          id: this.controlId,
          supervisionRecordId: this.supervisionRecordId,
          discoveryApproach: approcahStr,
          currentState: currentState,
          supervisedPersonDate: this.$moment().format("YYYY-MM-DD"),
          ...condiFormRest
        });
      }
      if (this.active == 2) {
        let { handleForm } = this.mainForm;
        this.submitForm({
          id: this.controlId,
          supervisionRecordId: this.supervisionRecordId,
          currentState: currentState,
          responsibleDepartmentDate: this.$moment().format(
            "YYYY-MM-DD HH:mm:ss"
          ),
          ...handleForm
        });
      }
      if (this.active == 3) {
        let { rectifyForm } = this.mainForm;
        this.submitForm({
          id: this.controlId,
          supervisionRecordId: this.supervisionRecordId,
          currentState: currentState,
          correctiveMeasureDate: this.$moment().format("YYYY-MM-DD HH:mm:ss"),
          ...rectifyForm
        });
      }
      if (this.active == 4) {
        let { inform } = this.mainForm;
        this.submitForm({
          id: this.controlId,
          supervisionRecordId: this.supervisionRecordId,
          currentState: currentState,
          qualitySupervisorDate: this.$moment().format("YYYY-MM-DD HH:mm:ss"),
          ...inform
        });
      }
    },
    /**
     * @desc 提交表单
     */
    async submitForm(form) {
      let user = JSON.parse(localStorage.getItem("user"));
      const { code } = await this.$axios({
        method: "post",
        url: addOrUpdatePersonSupervisionControl,
        data: {
          currentResponsible: user.name,
          ...form
        },
        noQs: true
      });
      if (this.controlType == "新增") {
        if (code == 200) {
          this.$message.success("提交成功");
          this.$parent.getTableData();
        }
      } else if (this.controlType == "编辑") {
        if (code == 200) {
          this.$message.success("提交成功");
          this.$parent.getTableData();
        }
      }
      this.dialogVisible = false;
    },
    /**
     * @desc 驳回
     */
    cancel() {
      let currentState = this.active - 1;
      this.submitForm({
        id: this.controlId,
        supervisionRecordId: this.supervisionRecordId,
        currentState: currentState
      });
    },
    setStep(e) {
      this.pageStatus = e;
    }
}
  }
};
</script>
<style scoped>
.dialog-footer {
    width: 100%;
  width: 100%;
}
>>> .el-dialog__footer {
    padding-right: 20px;
  padding-right: 20px;
}
</style>
src/components/caorui/Department/components/Records/dispose/index.vue
@@ -1,278 +1,287 @@
<template>
    <div>
        <el-dialog
            title="纠错处理单"
            :visible.sync="dialogVisible"
        >
            <el-steps
                :active="active"
                finish-status="success"
                :align-center="true"
            >
                <el-step
                    style="cursor: pointer;"
                    v-for="(item, index) in stepList"
                    :key="index"
                    :title="item.label"
                    @click.native="setStep(item.value)"
                ></el-step>
            </el-steps>
            <el-divider></el-divider>
            <Fact
                v-if="pageStatus == 0"
                :factForm.sync="mainForm.factForm"
                :userList="userList"
                :currentResponsible="currentResponsible"
                :disabled="active != 0"
                :step="active"
                @nextStep="submit"
                @cancel="cancel"
            ></Fact>
            <Reason
                v-if="pageStatus == 1"
                :reasonForm.sync="mainForm.reasonForm"
                :userList="userList"
                :currentResponsible="currentResponsible"
                :disabled="active != 1"
                :step="active"
                @nextStep="submit"
                @cancel="cancel"
            ></Reason>
            <Measure
                v-if="pageStatus == 2"
                :measureForm.sync="mainForm.measureForm"
                :userList="userList"
                :currentResponsible="currentResponsible"
                :disabled="active != 2"
                :step="active"
                @nextStep="submit"
                @cancel="cancel"
            ></Measure>
            <Result
                v-if="pageStatus == 3"
                :resultForm.sync="mainForm.resultForm"
                :userList="userList"
                :currentResponsible="currentResponsible"
                :disabled="active != 3"
                :step="active"
                @nextStep="submit"
                @cancel="cancel"
            ></Result>
            <!-- <div slot="footer" class="dialog-footer">
  <div>
    <el-dialog title="纠错处理单" :visible.sync="dialogVisible">
      <el-steps :active="active" finish-status="success" :align-center="true">
        <el-step
          style="cursor: pointer;"
          v-for="(item, index) in stepList"
          :key="index"
          :title="item.label"
          @click.native="setStep(item.value)"
        ></el-step>
      </el-steps>
      <el-divider></el-divider>
      <Fact
        v-if="pageStatus == 0"
        :factForm.sync="mainForm.factForm"
        :userList="userList"
        :currentResponsible="currentResponsible"
        :disabled="active != 0"
        :step="active"
        @nextStep="submit"
        @cancel="cancel"
      ></Fact>
      <Reason
        v-if="pageStatus == 1"
        :reasonForm.sync="mainForm.reasonForm"
        :userList="userList"
        :currentResponsible="currentResponsible"
        :disabled="active != 1"
        :step="active"
        @nextStep="submit"
        @cancel="cancel"
      ></Reason>
      <Measure
        v-if="pageStatus == 2"
        :measureForm.sync="mainForm.measureForm"
        :userList="userList"
        :currentResponsible="currentResponsible"
        :disabled="active != 2"
        :step="active"
        @nextStep="submit"
        @cancel="cancel"
      ></Measure>
      <Result
        v-if="pageStatus == 3"
        :resultForm.sync="mainForm.resultForm"
        :userList="userList"
        :currentResponsible="currentResponsible"
        :disabled="active != 3"
        :step="active"
        @nextStep="submit"
        @cancel="cancel"
      ></Result>
      <!-- <div slot="footer" class="dialog-footer">
                <el-button v-if="active == 4" type="primary" @click="submit(5)">完成</el-button>
            </div> -->
        </el-dialog>
    </div>
    </el-dialog>
  </div>
</template>
<script>
import Fact from './Step/Fact.vue'
import Reason from './Step/Reason.vue'
import Measure from './Step/Measure.vue'
import Result from './Step/Result.vue'
import dayjs from 'dayjs'
import Fact from "./Step/Fact.vue";
import Reason from "./Step/Reason.vue";
import Measure from "./Step/Measure.vue";
import Result from "./Step/Result.vue";
import dayjs from "dayjs";
import {
    getUserListApi,
    personSupervisionProcessingPage,
    addOrUpdatePersonnelServiceProcessing
 } from '../../../../../../assets/api/api'
  getUserListApi,
  personSupervisionProcessingPage,
  addOrUpdatePersonnelServiceProcessing
} from "../../../../../../assets/api/api";
export default {
    components: {
        Fact, Reason, Measure, Result
    },
    data() {
        return {
            active: 0,
            pageStatus: 0,
            dialogVisible: false,
            currentResponsible: undefined,
            stepList: [
                {
                    label: '问题描述',
                    value: 0
                }, {
                    label: '原因分析',
                    value: 1
                }, {
                    label: '纠正措施',
                    value: 2
                }, {
                    label: '验证结果',
                    value: 3
                }
            ],
            supervisionRecordId: undefined,
            processId: undefined,
            mainForm: {
                factForm: {
                    proposingDepartmentPersonId: undefined,
                    descriptionNonconformity: undefined
                },
                reasonForm: {
                    causeAnalysisPersonId: undefined,
                    causeAnalysis: undefined
                },
                measureForm: {
                    correctiveActionId: undefined,
                    correctiveMeasure: undefined,
                    requestDepartmentConfirmation: undefined
                },
                resultForm: {
                    verificationDepartmentPersonId: undefined,
                    implementationVerificationResults: undefined
                }
            },
            userList: [],
  components: {
    Fact,
    Reason,
    Measure,
    Result
  },
  data() {
    return {
      active: 0,
      pageStatus: 0,
      dialogVisible: false,
      currentResponsible: undefined,
      stepList: [
        {
          label: "问题描述",
          value: 0
        },
        {
          label: "原因分析",
          value: 1
        },
        {
          label: "纠正措施",
          value: 2
        },
        {
          label: "验证结果",
          value: 3
        }
    },
    methods: {
        openDialog(id) {
            this.dialogVisible = true
            this.getUserList()
            this.getProcessData(id)
      ],
      supervisionRecordId: undefined,
      processId: undefined,
      mainForm: {
        factForm: {
          proposingDepartmentPersonId: undefined,
          descriptionNonconformity: undefined
        },
        /**
         * @desc 获取用户信息
         */
         async getUserList() {
            const { code, data } = await this.$axios({
                method: 'get',
                url: getUserListApi,
            })
            if(code == 200) {
                this.userList = data
            }
        reasonForm: {
          causeAnalysisPersonId: undefined,
          causeAnalysis: undefined
        },
        /**
         * @desc 查询监督记录处理单
         * @param {监督记录id} id
         */
        async getProcessData(id) {
            const { code, data } = await this.$axios({
                method: 'get',
                url: personSupervisionProcessingPage,
                params: {id}
            })
            if(code == 202) {
                this.controlType = '新增'
                this.supervisionRecordId = id
                this.active = 0
                this.pageStatus = 0
                this.processId = undefined
            }
            if(code == 200) {
                this.currentResponsible = data.currentResponsible
                this.controlType = '编辑'
                this.supervisionRecordId = id
                this.processId = data.processingId
                this.active = Number(data.currentState)
                this.pageStatus = Number(data.currentState === 2 ? 0 : data.currentState)
                // 第1步数据
                this.mainForm.factForm.proposingDepartmentPersonId = data.proposingDepartmentPersonId
                this.mainForm.factForm.descriptionNonconformity = data.descriptionNonconformity
                // 第2步数据
                this.mainForm.reasonForm.causeAnalysisPersonId = data.causeAnalysisPersonId
                this.mainForm.reasonForm.causeAnalysis = data.causeAnalysis
                // 第3步数据
                this.mainForm.measureForm.correctiveActionId = data.correctiveActionId
                this.mainForm.measureForm.correctiveMeasure = data.correctiveMeasure
                this.mainForm.measureForm.requestDepartmentConfirmation = data.requestDepartmentConfirmation
                // 第4步数据
                this.mainForm.resultForm.verificationDepartmentPersonId = data.verificationDepartmentPersonId
                this.mainForm.resultForm.implementationVerificationResults = data.implementationVerificationResults
            }
        measureForm: {
          correctiveActionId: undefined,
          correctiveMeasure: undefined,
          requestDepartmentConfirmation: undefined
        },
        closeDialog() {
            this.dialogVisible = false
        },
        submit(type) {
            let currentState = undefined
            if(type == 'submit') {
                currentState = this.active + 1
            } else if(type == 'save') {
                currentState = undefined
            }
            if(this.active == 0) {
                // 第1步
                console.log('第1步', this.active, currentState)
                let { factForm } = this.mainForm
                this.submitForm({
                    proposingDepartmentDate: dayjs().format('YYYY-MM-DD HH:mm:ss'),
                    currentState: currentState,
                    ...factForm
                })
            } else if(this.active == 1) {
                // 第2步
                console.log('第2步', this.active, currentState)
                let { reasonForm } = this.mainForm
                this.submitForm({
                    causeAnalysisDate: dayjs().format('YYYY-MM-DD HH:mm:ss'),
                    currentState: currentState,
                    ...reasonForm
                })
            } else if(this.active == 2) {
                // 第3步
                console.log('第3步', this.active, currentState)
                let { measureForm } = this.mainForm
                let { requestDepartmentConfirmation, ...measureFormRest } = measureForm
                this.submitForm({
                    correctiveActionDate: dayjs().format('YYYY-MM-DD HH:mm:ss'),
                    currentState: currentState,
                    requestDepartmentConfirmation: requestDepartmentConfirmation ? 1:2,
                    ...measureFormRest
                })
            } else if(this.active == 3) {
                // 第4步
                console.log('第4步', this.active, currentState)
                let { resultForm } = this.mainForm
                this.submitForm({
                    verificationDepartmentDate: dayjs().format('YYYY-MM-DD HH:mm:ss'),
                    currentState: currentState,
                    ...resultForm
                })
            }
        },
        /**
         * @desc 提交表单
         */
        async submitForm(form) {
            console.log('提交表单', form)
            const { code } = await this.$axios({
                method: 'post',
                url: addOrUpdatePersonnelServiceProcessing,
                data: {
                    processingId: this.processId,
                    supervisionRecordId: this.supervisionRecordId,
                    ...form
                },
                noQs: true
            })
            if(this.controlType == '新增') {
                if(code == 200) {
                    this.$message.success('提交成功')
                }
            } else if(this.controlType == '编辑') {
                if(code == 200) {
                    this.$message.success('提交成功')
                }
            }
            this.dialogVisible = false
        },
        /**
         * @desc 驳回
         */
         cancel() {
            let currentState = this.active - 1
            this.submitForm({
                id: this.processId,
                supervisionRecordId: this.supervisionRecordId,
                currentState: currentState,
            })
        },
        setStep(e) {
            console.log(e)
            this.pageStatus = e
        resultForm: {
          verificationDepartmentPersonId: undefined,
          implementationVerificationResults: undefined
        }
      },
      userList: []
    };
  },
  methods: {
    openDialog(id) {
      this.dialogVisible = true;
      this.getUserList();
      this.getProcessData(id);
    },
    /**
     * @desc 获取用户信息
     */
    async getUserList() {
      const { code, data } = await this.$axios({
        method: "get",
        url: getUserListApi
      });
      if (code == 200) {
        this.userList = data;
      }
    },
    /**
     * @desc 查询监督记录处理单
     * @param {监督记录id} id
     */
    async getProcessData(id) {
      const { code, data } = await this.$axios({
        method: "get",
        url: personSupervisionProcessingPage,
        params: { id }
      });
      if (code == 202) {
        this.controlType = "新增";
        this.supervisionRecordId = id;
        this.active = 0;
        this.pageStatus = 0;
        this.processId = undefined;
      }
      if (code == 200) {
        this.currentResponsible = data.currentResponsible;
        this.controlType = "编辑";
        this.supervisionRecordId = id;
        this.processId = data.processingId;
        this.active = Number(data.currentState);
        this.pageStatus = Number(
          data.currentState === 2 ? 0 : data.currentState
        );
        // 第1步数据
        this.mainForm.factForm.proposingDepartmentPersonId =
          data.proposingDepartmentPersonId;
        this.mainForm.factForm.descriptionNonconformity =
          data.descriptionNonconformity;
        // 第2步数据
        this.mainForm.reasonForm.causeAnalysisPersonId =
          data.causeAnalysisPersonId;
        this.mainForm.reasonForm.causeAnalysis = data.causeAnalysis;
        // 第3步数据
        this.mainForm.measureForm.correctiveActionId = data.correctiveActionId;
        this.mainForm.measureForm.correctiveMeasure = data.correctiveMeasure;
        this.mainForm.measureForm.requestDepartmentConfirmation =
          data.requestDepartmentConfirmation;
        // 第4步数据
        this.mainForm.resultForm.verificationDepartmentPersonId =
          data.verificationDepartmentPersonId;
        this.mainForm.resultForm.implementationVerificationResults =
          data.implementationVerificationResults;
      }
    },
    closeDialog() {
      this.dialogVisible = false;
    },
    submit(type) {
      let currentState = undefined;
      if (type == "submit") {
        currentState = this.active + 1;
      } else if (type == "save") {
        currentState = undefined;
      }
      if (this.active == 0) {
        // 第1步
        console.log("第1步", this.active, currentState);
        let { factForm } = this.mainForm;
        this.submitForm({
          proposingDepartmentDate: dayjs().format("YYYY-MM-DD HH:mm:ss"),
          currentState: currentState,
          ...factForm
        });
      } else if (this.active == 1) {
        // 第2步
        console.log("第2步", this.active, currentState);
        let { reasonForm } = this.mainForm;
        this.submitForm({
          causeAnalysisDate: dayjs().format("YYYY-MM-DD HH:mm:ss"),
          currentState: currentState,
          ...reasonForm
        });
      } else if (this.active == 2) {
        // 第3步
        console.log("第3步", this.active, currentState);
        let { measureForm } = this.mainForm;
        let { requestDepartmentConfirmation, ...measureFormRest } = measureForm;
        this.submitForm({
          correctiveActionDate: dayjs().format("YYYY-MM-DD HH:mm:ss"),
          currentState: currentState,
          requestDepartmentConfirmation: requestDepartmentConfirmation ? 1 : 2,
          ...measureFormRest
        });
      } else if (this.active == 3) {
        // 第4步
        console.log("第4步", this.active, currentState);
        let { resultForm } = this.mainForm;
        this.submitForm({
          verificationDepartmentDate: dayjs().format("YYYY-MM-DD HH:mm:ss"),
          currentState: currentState,
          ...resultForm
        });
      }
    },
    /**
     * @desc 提交表单
     */
    async submitForm(form) {
      console.log("提交表单", form);
      const { code } = await this.$axios({
        method: "post",
        url: addOrUpdatePersonnelServiceProcessing,
        data: {
          processingId: this.processId,
          supervisionRecordId: this.supervisionRecordId,
          ...form
        },
        noQs: true
      });
      if (this.controlType == "新增") {
        if (code == 200) {
          this.$message.success("提交成功");
          this.$parent.getTableData();
        }
      } else if (this.controlType == "编辑") {
        if (code == 200) {
          this.$message.success("提交成功");
          this.$parent.getTableData();
        }
      }
      this.dialogVisible = false;
    },
    /**
     * @desc 驳回
     */
    cancel() {
      let currentState = this.active - 1;
      this.submitForm({
        id: this.processId,
        supervisionRecordId: this.supervisionRecordId,
        currentState: currentState
      });
    },
    setStep(e) {
      console.log(e);
      this.pageStatus = e;
    }
}
  }
};
</script>