From 14d29f928b24d203e76f1dcefc1a51182657cd45 Mon Sep 17 00:00:00 2001
From: spring <2396852758@qq.com>
Date: 星期一, 10 三月 2025 16:29:09 +0800
Subject: [PATCH] Merge branch 'dev' of http://114.132.189.42:9002/r/center-lims-before-ruoyi into dev

---
 src/views/CNAS/personnel/personnelInfo/Department/components/Records/control/index.vue |  312 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 312 insertions(+), 0 deletions(-)

diff --git a/src/views/CNAS/personnel/personnelInfo/Department/components/Records/control/index.vue b/src/views/CNAS/personnel/personnelInfo/Department/components/Records/control/index.vue
new file mode 100644
index 0000000..325cf70
--- /dev/null
+++ b/src/views/CNAS/personnel/personnelInfo/Department/components/Records/control/index.vue
@@ -0,0 +1,312 @@
+<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" :departId="departId" :isPermission="isPermission"
+                :supervisedPersonId="mainForm.condiForm.supervisedPersonId" :condiForm.sync="mainForm.condiForm"
+                :currentResponsible="currentResponsible" :disabled="active != 0" :step="active" :userList="userList"
+                @nextStep="submit"></ConditionForm>
+            <ConditionForm v-if="pageStatus == 1" :departId="departId" :isPermission="isPermission"
+                :supervisedPersonId="mainForm.condiForm.supervisedPersonId" :condiForm.sync="mainForm.condiForm"
+                :currentResponsible="currentResponsible" :disabled="true" :step="active" :userList="userList"
+                @cancel="cancel" @nextStep="submit"></ConditionForm>
+            <MeasureForm v-if="pageStatus == 2" :departId="departId" :isPermission="isPermission"
+                :currentResponsible="currentResponsible" :disabled="active != 2" :handleForm.sync="mainForm.handleForm"
+                :step="active" :userList="userList" @cancel="cancel" @nextStep="submit"></MeasureForm>
+            <RectifyForm v-if="pageStatus == 3" :departId="departId" :isPermission="isPermission"
+                :currentResponsible="currentResponsible" :disabled="active != 3"
+                :rectifyForm.sync="mainForm.rectifyForm" :step="active" :userList="userList" @cancel="cancel"
+                @nextStep="submit"></RectifyForm>
+            <Inform v-if="pageStatus == 4" :departId="departId" :isPermission="isPermission" :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 {
+    selectUserList,
+    personSupervisionControlSheetPage,
+    addOrUpdatePersonSupervisionControl
+} from '@/api/cnas/personnel/personnelInfo.js'
+export default {
+    props: {
+        departId: {
+            type: Number,
+            default: () => {
+                return null;
+            }
+        },
+    },
+    components: {
+        ConditionForm, MeasureForm, RectifyForm, Inform
+    },
+    data() {
+        return {
+            isPermission: true,
+            supervisedPersonId: null,
+            active: 0,
+            pageStatus: 0,
+            dialogVisible: false,
+            currentResponsible: undefined,
+            stepList: [{
+                label: '宸ヤ綔鎯呭喌',
+                value: 0
+            }, {
+                label: '琚洃鐫d汉纭',
+                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,
+                    departLimsId: undefined
+                },
+                handleForm: {
+                    responsibleDepartmentPersonId: undefined,
+                    treatmentMeasures: undefined,
+                    departLimsId: undefined
+                },
+                rectifyForm: {
+                    correctiveMeasure: undefined,
+                    correctiveMeasureFollowTracks: undefined,
+                    correctiveMeasurePersonId: undefined,
+                    departLimsId: undefined
+                },
+                inform: {
+                    whetherInformCustomer: undefined,
+                    whetherResumeWork: undefined,
+                    qualitySupervisorId: undefined,
+                    departLimsId: undefined
+                }
+            },
+            userList: [],
+            controlType: undefined
+        }
+    },
+    mounted() {
+        this.isPermission = isPermission("isSubmit")
+        console.log('鏉冮檺', this.isPermission);
+    },
+    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.condiForm.departLimsId = undefined
+            this.mainForm.handleForm.responsibleDepartmentPersonId = undefined
+            this.mainForm.handleForm.treatmentMeasures = undefined
+            this.mainForm.handleForm.departLimsId = undefined
+            this.mainForm.rectifyForm.correctiveMeasure = undefined
+            this.mainForm.rectifyForm.correctiveMeasureFollowTracks = undefined
+            this.mainForm.rectifyForm.correctiveMeasurePersonId = undefined
+            this.mainForm.rectifyForm.departLimsId = undefined
+            this.mainForm.inform.whetherInformCustomer = undefined
+            this.mainForm.inform.whetherResumeWork = undefined
+            this.mainForm.inform.qualitySupervisorId = undefined
+            this.mainForm.inform.departLimsId = undefined
+        },
+        /**
+         * @desc 鎵撳紑妯℃�佹
+         * @param {鐩戠潱璁板綍id} id
+         */
+        openDialog(id) {
+            this.dialogVisible = true
+            this.getUserList()
+            this.getControlData(id)
+        },
+        /**
+         * @desc 鑾峰彇鐢ㄦ埛淇℃伅
+         */
+        async getUserList() {
+            const { code, data } = await selectUserList()
+            if (code == 200) {
+                this.userList = data
+            }
+        },
+        /**
+         * @desc 鏌ヨ鐩戠潱璁板綍鎺у埗鍗�
+         * @param {鐩戠潱璁板綍id} id
+         */
+        async getControlData(id) {
+            const { code, data } = await personSupervisionControlSheetPage({ 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
+                this.mainForm.condiForm.departLimsId = data.departLimsId
+                // 绗�3姝ユ暟鎹�
+                this.mainForm.handleForm.responsibleDepartmentPersonId = data.responsibleDepartmentPersonId
+                this.mainForm.handleForm.treatmentMeasures = data.treatmentMeasures
+                this.mainForm.handleForm.departLimsId = data.departLimsId
+                // 绗�4姝ユ暟鎹�
+                this.mainForm.rectifyForm.correctiveMeasure = data.correctiveMeasure
+                this.mainForm.rectifyForm.correctiveMeasureFollowTracks = data.correctiveMeasureFollowTracks
+                this.mainForm.rectifyForm.correctiveMeasurePersonId = data.correctiveMeasurePersonId
+                this.mainForm.rectifyForm.departLimsId = data.departLimsId
+                // 绗�5姝ユ暟鎹�
+                this.mainForm.inform.whetherInformCustomer = data.whetherInformCustomer
+                this.mainForm.inform.whetherResumeWork = data.whetherResumeWork
+                this.mainForm.inform.qualitySupervisorId = data.qualitySupervisorId
+                this.mainForm.inform.departLimsId = data.departLimsId
+                this.supervisionRecordId = data.supervisionRecordId
+
+
+                this.supervisedPersonId = data.supervisedPersonId
+            }
+        },
+        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'));
+            form.responsibleDepartmentId = Number(form.responsibleDepartmentId)
+            const { code } = await addOrUpdatePersonSupervisionControl({
+                currentResponsible: user.name,
+                ...form
+            })
+            if (this.controlType == '鏂板') {
+                if (code == 200) {
+                    this.$message.success('鎻愪氦鎴愬姛')
+                }
+            } else if (this.controlType == '缂栬緫') {
+                if (code == 200) {
+                    this.$message.success('鎻愪氦鎴愬姛')
+                }
+            }
+            this.$emit('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%;
+}
+
+>>>.el-dialog__footer {
+    padding-right: 20px;
+}
+</style>

--
Gitblit v1.9.3