Просмотр исходного кода

风险控制模块体验感优化

luoaoxuan 2 лет назад
Родитель
Сommit
01c3f98867

+ 119 - 118
src/views/component/shiftHandover/earlyHandover.vue

@@ -451,54 +451,52 @@ export default {
             })
         },
         async goGunRegister () {
-            // 首先判断状态是否结束
-            const sql2 = `select * from t_jykzjbdjb where id_='${this.form.id_}'`
-            const { variables: { data: data2 }} = await this.$common.request('sql', sql2)
-            if (data2[0].shi_fou_guo_shen_ === '已完成') {
-                return this.$message.warning('已完成,无法操作!')
-            }
-            if (this.BarcodeDialogShow) {
-                this.BarcodeDialogShow = false
-            } else {
-                this.BarcodeDialogShow = true
+            try {
+                await this.getIsFinish()
+                if (this.BarcodeDialogShow) {
+                    this.BarcodeDialogShow = false
+                } else {
+                    this.BarcodeDialogShow = true
+                }
+            } catch (error) {
+                this.$message.warning(error.message)
             }
         },
         async goScanRegister () {
-            // 首先判断状态是否结束
-            const sql2 = `select * from t_jykzjbdjb where id_='${this.form.id_}'`
-            const { variables: { data: data2 }} = await this.$common.request('sql', sql2)
-            if (data2[0].shi_fou_guo_shen_ === '已完成') {
-                return this.$message.warning('已完成,无法操作!')
-            }
-            if (this.QrcodeedDialogShow) {
-                this.QrcodeedDialogShow = false
-            }
-            const sql = "select * FROM t_qrcodeb WHERE guan_lian_id_ = '" + this.params.id_ + "'"
-            this.$common.request('sql', sql).then(res => {
-                const cont = res.variables.data
-                if (cont.length === 0) {
-                    const arr = []
-                    arr.push({ 'label': '早会内容', 'value': this.form.zao_hui_nei_rong_, 'key': 'zaoHuiNeiRong' })
-                    // 字段需要继续添加
-                    const addParams = {
-                        tableName: 't_qrcodeb',
-                        paramWhere: [{
-                            guan_lian_id_: this.params.id_,
-                            biao_ming_: 't_jykzjbdjb',
-                            zhuang_tai_: '生效',
-                            xiang_xi_xin_xi_: JSON.stringify(arr)
-                        }]
-                    }
-                    this.$common.request('add', addParams).then(res => {
-                        const conts = res.variables.cont
-                        this.codeId = conts[0].id_
-                        this.QrcodeedDialogShow = true
-                    })
-                } else {
-                    this.codeId = cont[0].id_
-                    this.QrcodeedDialogShow = true
+            try {
+                await this.getIsFinish()
+                if (this.QrcodeedDialogShow) {
+                    this.QrcodeedDialogShow = false
                 }
-            })
+                const sql = "select * FROM t_qrcodeb WHERE guan_lian_id_ = '" + this.params.id_ + "'"
+                this.$common.request('sql', sql).then(res => {
+                    const cont = res.variables.data
+                    if (cont.length === 0) {
+                        const arr = []
+                        arr.push({ 'label': '早会内容', 'value': this.form.zao_hui_nei_rong_, 'key': 'zaoHuiNeiRong' })
+                        // 字段需要继续添加
+                        const addParams = {
+                            tableName: 't_qrcodeb',
+                            paramWhere: [{
+                                guan_lian_id_: this.params.id_,
+                                biao_ming_: 't_jykzjbdjb',
+                                zhuang_tai_: '生效',
+                                xiang_xi_xin_xi_: JSON.stringify(arr)
+                            }]
+                        }
+                        this.$common.request('add', addParams).then(res => {
+                            const conts = res.variables.cont
+                            this.codeId = conts[0].id_
+                            this.QrcodeedDialogShow = true
+                        })
+                    } else {
+                        this.codeId = cont[0].id_
+                        this.QrcodeedDialogShow = true
+                    }
+                })
+            } catch (error) {
+                this.$message.warning(error.message)
+            }
         },
         // 扫码枪签到返回的数据
         async getBarcodeData (value, variable) {
@@ -592,69 +590,77 @@ export default {
                 return str + `${selection}`
             }
         },
-        async goSubmit () {
-            // 首先判断状态是否结束
-            const sql2 = `select * from t_jykzjbdjb where id_='${this.form.id_}'`
-            const { variables: { data: data2 }} = await this.$common.request('sql', sql2)
-            if (data2[0].shi_fou_guo_shen_ === '已完成') {
-                return this.$message.warning('已完成,无法提交!')
+        // 判断状态是否已结束
+        async getIsFinish () {
+            const sql = `select * from t_jykzjbdjb where id_='${this.form.id_}'`
+            const { variables: { data }} = await this.$common.request('sql', sql)
+            if (data[0].shi_fou_guo_shen_ === '已完成') {
+                throw new Error('已完成,无法操作!')
             }
-            this.$refs.form.validate((valid) => {
-                if (valid) {
-                    if (!this.checkRequired()) return
-                    this.$confirm('提交前请确认最新填写内容已保存,提交后数据不可更改,是否继续?', '提示', {
-                        confirmButtonText: '确定',
-                        cancelButtonText: '取消',
-                        type: 'warning'
-                    }).then(async () => {
-                        // 1.确定最终签到人员
-                        const sql3 = `select * from t_qdxxb where guan_lian_id_='${this.params.id_}'`
-                        const { variables: { data: data3 }} = await this.$common.request('sql', sql3)
-                        const peopleList = [...new Set(data3.map(item => item.ren_yuan_id_))]
-                        let shi_ji_qian_dao_r = ''
-                        if (peopleList.length > 0) shi_ji_qian_dao_r = peopleList.join(',')
-                        // 2.生成快照
-                        const formName = '人员/检验科早交班登记表.rpx'
-                        const res = await this.$common.snapshoot({
-                            url: this.$getReportFile(formName, this.getReportParams(formName, this.params.id_, {
-                                ...this.preParams,
-                                shi_ji_qian_dao_r,
-                                shi_fou_guo_shen_: '已完成'
-                            })),
-                            name: this.params.id_,
-                            type: 'pdf'
-                        })
-                        console.log(res)
-                        if (!res.data || !res.data.id) {
-                            console.log('快照生成失败')
-                        } else {
-                            console.log('快照生成成功')
-                        }
-                        // 3.更新
-                        const updateParamsRecord = {
-                            tableName: 't_jykzjbdjb',
-                            updList: [{
-                                where: {
-                                    id_: this.form.id_
-                                },
-                                param: {
-                                    shi_fou_guo_shen_: '已完成',
+        },
+        async goSubmit () {
+            try {
+                this.$refs.form.validate((valid) => {
+                    if (valid) {
+                        if (!this.checkRequired()) return
+                        this.$confirm('提交后数据不可更改,是否确认保存并提交?', '提示', {
+                            confirmButtonText: '确定',
+                            cancelButtonText: '取消',
+                            type: 'warning'
+                        }).then(async () => {
+                            // 提交自动保存
+                            await this.goEdit()
+                            // 1.确定最终签到人员
+                            const sql3 = `select * from t_qdxxb where guan_lian_id_='${this.params.id_}'`
+                            const { variables: { data: data3 }} = await this.$common.request('sql', sql3)
+                            const peopleList = [...new Set(data3.map(item => item.ren_yuan_id_))]
+                            let shi_ji_qian_dao_r = ''
+                            if (peopleList.length > 0) shi_ji_qian_dao_r = peopleList.join(',')
+                            // 2.生成快照
+                            const formName = '人员/检验科早交班登记表.rpx'
+                            const res = await this.$common.snapshoot({
+                                url: this.$getReportFile(formName, this.getReportParams(formName, this.params.id_, {
+                                    ...this.preParams,
                                     shi_ji_qian_dao_r,
-                                    kuai_zhao_: res.data.id
-                                }
-                            }]
-                        }
-                        console.log(updateParamsRecord)
-                        await this.$common.request('update', updateParamsRecord)
-                        this.closeDialog(true)
-                        this.$message.success('提交成功')
-                    }).catch(() => {
-                    })
-                } else {
-                    console.log('error submit!!')
-                    return false
-                }
-            })
+                                    shi_fou_guo_shen_: '已完成'
+                                })),
+                                name: this.params.id_,
+                                type: 'pdf'
+                            })
+                            console.log(res)
+                            if (!res.data || !res.data.id) {
+                                console.log('快照生成失败')
+                            } else {
+                                console.log('快照生成成功')
+                            }
+                            // 3.更新
+                            const updateParamsRecord = {
+                                tableName: 't_jykzjbdjb',
+                                updList: [{
+                                    where: {
+                                        id_: this.form.id_
+                                    },
+                                    param: {
+                                        shi_fou_guo_shen_: '已完成',
+                                        shi_ji_qian_dao_r,
+                                        kuai_zhao_: res.data.id
+                                    }
+                                }]
+                            }
+                            console.log(updateParamsRecord)
+                            await this.$common.request('update', updateParamsRecord)
+                            this.closeDialog(true)
+                            this.$message.success('提交成功')
+                        }).catch(() => {
+                        })
+                    } else {
+                        console.log('error submit!!')
+                        return false
+                    }
+                })
+            } catch (error) {
+                this.$message.warning(error.message)
+            }
         },
         async goAdd () {
             try {
@@ -678,11 +684,7 @@ export default {
         async goEdit () {
             try {
                 // 首先判断状态是否结束
-                const sql = `select * from t_jykzjbdjb where id_='${this.form.id_}'`
-                const { variables: { data }} = await this.$common.request('sql', sql)
-                if (data[0].shi_fou_guo_shen_ === '已完成') {
-                    return this.$message.warning('已完成,无法修改!')
-                }
+                await this.getIsFinish()
 
                 // 1.确定最终签到人员
                 const sql3 = `select * from t_qdxxb where guan_lian_id_='${this.params.id_}'`
@@ -741,13 +743,13 @@ export default {
                             qian_dao_lei_xing: '手动'
                         }))
                     }
-                    this.$common.request('add', params).then(res => {
+                    await this.$common.request('add', params).then(res => {
                         console.log('签到数据增加成功')
                     })
                 }
                 if (deletedIds.length > 0) {
                     const sql = `select * from t_qdxxb where guan_lian_id_='${this.params.id_}' and qian_dao_lei_xing='手动' and ren_yuan_id_ in (${deletedIds.map(id => `'${id}'`).join(', ')})`
-                    this.$common.request('sql', sql).then(res => {
+                    await this.$common.request('sql', sql).then(async res => {
                         const { data } = res.variables || []
                         if (data.length > 0) {
                             const params = {
@@ -756,24 +758,23 @@ export default {
                                     id_: data.map(item => item.id_).join(',')
                                 }
                             }
-                            this.$common.request('delete', params).then(res => {
+                            await this.$common.request('delete', params).then(res => {
                                 console.log('签到数据删除成功')
                             })
                         }
                     })
                 }
-
+                this.init()
                 this.$message.success('修改成功')
-                this.closeDialog(true)
             } catch (error) {
-                console.log(error)
-                this.$message.warning('修改失败')
+                this.$message.warning(error.message)
+                throw new Error(error.message)
             }
         },
         goSave () {
             this.$refs.form.validate((valid) => {
                 if (valid) {
-                    if (!this.checkRequired(true)) return
+                    if (!this.checkRequired(this.isEdit ? null : true)) return
                     if (this.isEdit) {
                         this.goEdit()
                     } else {

+ 71 - 84
src/views/platform/risk/riskDetail.vue

@@ -243,9 +243,9 @@
             </div>
 
             <span slot="footer" class="dialog-footer">
-                <el-button v-if="!readonly" type="primary" size="mini" @click="submit">提 交</el-button>
-                <el-button v-if="!readonly" type="primary" size="mini" @click="save">保 存</el-button>
-                <el-button size="mini" @click="close">关 闭</el-button>
+                <el-button v-if="!readonly" type="primary" size="mini" icon="el-icon-takeaway-box" @click="save">保 存</el-button>
+                <el-button v-if="!readonly" type="success" size="mini" icon="el-icon-finished" @click="submit">提 交</el-button>
+                <el-button size="mini" icon="el-icon-close" @click="close">退 出</el-button>
             </span>
         </el-dialog>
     </div>
@@ -521,51 +521,31 @@ export default {
         },
         check () {
             if (this.tableList.length === 0) {
-                this.$message.warning('请选择风险项!')
-                return false
+                throw new Error('请选择风险项!')
             }
             for (let i = 0; i < this.tableList.length; i++) {
                 const item = this.tableList[i]
                 if (!item.feng_xian_zhi_shu) {
-                    this.$message.warning(`请检查第${i + 1}行数据是否填写完整!`)
-                    return false
+                    throw new Error(`第${i + 1}请选择严重程度和发生频度!`)
                 }
                 if (item.feng_xian_ying_du !== '风险接受' && !item.zhi_ding_ren_) {
-                    this.$message.warning(`第${i + 1}行缺少措施指定人!`)
-                    return false
+                    throw new Error(`第${i + 1}行缺少措施制定人!`)
                 }
                 // 格式化成需要的数据
                 item.xuan_ze_feng_xian = this.form.xuan_ze_feng_xian
                 delete item.create_by_
                 delete item.create_time_
             }
-            return true
         },
         submit () {
             // console.log(this.Ids)
-            if (this.Ids.length === 0) return this.$message.warning('请填写风险识别项保存后再提交!')
-            this.$confirm('提交后不可再修改,请再次确认并保存后进行提交操作,时是否继续?', '提示', {
+            this.$confirm('提交后不可再修改,是否确认保存并提交?', '提示', {
                 confirmButtonText: '继续',
                 cancelButtonText: '取消',
                 type: 'warning'
             }).then(async () => {
-                // 先查询状态
-                let sql = ''
-                if (this.readonly) {
-                    sql = `select * from t_fxsbpgb2 where parent_id_='${this.params.id_}' and bian_zhi_ren_='${this.rowParams.bian_zhi_ren_}'`
-                } else {
-                    sql = `select * from t_fxsbpgb2 where parent_id_='${this.params.id_}' and bian_zhi_ren_='${this.userId}'`
-                }
-                const { variables: { data }} = await this.$common.request('sql', sql)
-                if (data.length > 0 && data.every(item => item.shi_fou_guo_shen_ === '已完成')) {
-                    return this.$message('已提交,不可再次提交!')
-                }
-                const sql2 = `select * from t_fxpgjlb2 where id_='${this.params.id_}'`
-                const { variables: { data: data2 }} = await this.$common.request('sql', sql2)
-                if (data2.length > 0 && data2[0].shi_fou_guo_shen_ === '已完成') {
-                    return this.$message('已结束,不可再次提交!')
-                }
-
+                // 提交时自动保存
+                await this.save()
                 const params = {
                     tableName: 't_fxsbpgb2',
                     updList: this.Ids.map(item => ({
@@ -591,8 +571,8 @@ export default {
 
             })
         },
-        async save () {
-            if (!this.check()) return
+        // 判断状态是否已完成
+        async getIsFinish () {
             let sql = ''
             if (this.readonly) {
                 sql = `select * from t_fxsbpgb2 where parent_id_='${this.params.id_}' and bian_zhi_ren_='${this.rowParams.bian_zhi_ren_}'`
@@ -601,73 +581,80 @@ export default {
             }
             const { variables: { data }} = await this.$common.request('sql', sql)
             if (data.length > 0 && data.every(item => item.shi_fou_guo_shen_ === '已完成')) {
-                return this.$message('已提交,不可再次提交!')
+                throw new Error('已提交,不可再次提交!')
             }
             const sql2 = `select * from t_fxpgjlb2 where id_='${this.params.id_}'`
             const { variables: { data: data2 }} = await this.$common.request('sql', sql2)
             if (data2.length > 0 && data2[0].shi_fou_guo_shen_ === '已完成') {
-                return this.$message('已结束,不可再次提交!')
+                throw new Error('已结束,不可再次提交!')
             }
+        },
+        async save () {
+            try {
+                this.check()
+                await this.getIsFinish()
+                const curIds = this.tableList.map(item => item.shi_bie_xiang_)
 
-            // console.log(this.tableList)
-            const curIds = this.tableList.map(item => item.shi_bie_xiang_)
-
-            // 计算需要增加项
-            const addedIds = this.tableList.filter(item => !this.Ids.includes(item.shi_bie_xiang_))
-            // 计算需要更新项
-            const updatedIds = this.tableList.filter(item => this.Ids.includes(item.shi_bie_xiang_))
-            // 计算需要删除项
-            const deletedIds = this.Ids.filter(id => !curIds.includes(id))
-            console.log(addedIds, updatedIds, deletedIds)
+                // 计算需要增加项
+                const addedIds = this.tableList.filter(item => !this.Ids.includes(item.shi_bie_xiang_))
+                // 计算需要更新项
+                const updatedIds = this.tableList.filter(item => this.Ids.includes(item.shi_bie_xiang_))
+                // 计算需要删除项
+                const deletedIds = this.Ids.filter(id => !curIds.includes(id))
+                console.log(addedIds, updatedIds, deletedIds)
 
-            // 新增
-            if (addedIds.length > 0) {
-                const params = {
-                    tableName: 't_fxsbpgb2',
-                    paramWhere: addedIds
-                }
-                console.log(params)
-                await this.$common.request('add', params)
-                console.log('添加成功')
-            }
-            // 更新
-            if (updatedIds.length > 0) {
-                const params = {
-                    tableName: 't_fxsbpgb2',
-                    updList: updatedIds.map(item => ({
-                        where: {
-                            id_: item.id_
-                        },
-                        param: {
-                            ...item,
-                            xuan_ze_feng_xian: this.form.xuan_ze_feng_xian
-                        }
-                    }))
+                // 新增
+                if (addedIds.length > 0) {
+                    const params = {
+                        tableName: 't_fxsbpgb2',
+                        paramWhere: addedIds
+                    }
+                    console.log(params)
+                    await this.$common.request('add', params)
+                    console.log('添加成功')
                 }
-                console.log(params)
-                await this.$common.request('update', params)
-                console.log('更新成功')
-            }
-            // 删除
-            if (deletedIds.length > 0) {
-                const sql3 = `select * from t_fxsbpgb2 where bian_zhi_ren_='${this.userId}' and parent_id_='${this.params.id_}' and shi_bie_xiang_ in (${deletedIds.map(id => `'${id}'`).join(', ')})`
-                const { variables: { data: data3 }} = await this.$common.request('sql', sql3)
-                if (data3.length > 0) {
-                    // console.log('data3', data3)
+                // 更新
+                if (updatedIds.length > 0) {
                     const params = {
                         tableName: 't_fxsbpgb2',
-                        paramWhere: {
-                            id_: data3.map(item => item.id_).join(',')
-                        }
+                        updList: updatedIds.map(item => ({
+                            where: {
+                                id_: item.id_
+                            },
+                            param: {
+                                ...item,
+                                xuan_ze_feng_xian: this.form.xuan_ze_feng_xian
+                            }
+                        }))
                     }
                     console.log(params)
-                    await this.$common.request('delete', params)
-                    console.log('删除成功')
+                    await this.$common.request('update', params)
+                    console.log('更新成功')
                 }
-            }
-            await this.getTableData()
-            this.$message.success('保存成功')
+                // 删除
+                if (deletedIds.length > 0) {
+                    const sql3 = `select * from t_fxsbpgb2 where bian_zhi_ren_='${this.userId}' and parent_id_='${this.params.id_}' and shi_bie_xiang_ in (${deletedIds.map(id => `'${id}'`).join(', ')})`
+                    const { variables: { data: data3 }} = await this.$common.request('sql', sql3)
+                    if (data3.length > 0) {
+                    // console.log('data3', data3)
+                        const params = {
+                            tableName: 't_fxsbpgb2',
+                            paramWhere: {
+                                id_: data3.map(item => item.id_).join(',')
+                            }
+                        }
+                        console.log(params)
+                        await this.$common.request('delete', params)
+                        console.log('删除成功')
+                    }
+                }
+                await this.getTableData()
+                this.$message.success('保存成功')
             // this.close()
+            } catch (error) {
+                this.$message.warning(error.message)
+                throw new Error(error.message)
+            }
         }
     }
 

+ 174 - 138
src/views/platform/risk/riskV2.vue

@@ -283,7 +283,7 @@ export default {
             toolbars: [
                 { key: 'refresh', label: '刷新', hidden: () => { return !this.isZuZhang || !this.isEdit || this.isFinished } },
                 { key: 'save', label: '保存', hidden: () => { return !this.isZuZhang || this.isFinished } },
-                { key: 'sendMsg', label: '提醒评估人', icon: 'el-icon-bell', hidden: () => { return !this.isZuZhang || !this.isEdit || this.isFinished } },
+                // { key: 'sendMsg', label: '提醒评估人', icon: 'el-icon-bell', hidden: () => { return !this.isZuZhang || !this.isEdit || this.isFinished } },
                 { key: 'peizhifengxian', label: '更新风险库', type: 'info', icon: 'el-icon-setting', hidden: () => { return !this.isZuZhang || !this.isEdit } },
                 { key: 'submit', label: '提交', icon: 'el-icon-finished', type: 'success', hidden: () => { return !this.isZuZhang || !this.isEdit || this.isFinished } },
                 { key: 'cancel', label: '退出' }
@@ -375,6 +375,19 @@ export default {
         }
     },
     methods: {
+        // 获取最新数据
+        async getNewData () {
+            const sql = `select * from t_fxpgjlb2 where id_='${this.params.id_}'`
+            const { variables: { data }} = await this.$common.request('sql', sql)
+            return data
+        },
+        // 判断是否已完成
+        async getIsFinish () {
+            const data = await this.getNewData()
+            if (data.length > 0 && data[0].shi_fou_guo_shen_ === '已完成') {
+                throw new Error('已结束,不可操作!')
+            }
+        },
         // 快照URL
         getReportParams (path, selection, data) {
             const { level } = this.$store.getters
@@ -390,138 +403,147 @@ export default {
         },
         // 提交
         async goSubmit () {
-            if (!this.checkRequired(true)) {
-                return this.$message.warning('请先保存后再提交!')
-            }
-            // 先检查状态
-            const sql2 = `select * from t_fxpgjlb2 where id_='${this.params.id_}'`
-            const { variables: { data: data2 }} = await this.$common.request('sql', sql2)
-            if (data2.length > 0 && data2[0].shi_fou_guo_shen_ === '已完成') {
-                return this.$message.warning('已结束,不可再次提交!')
-            }
-            if (!data2[0].ping_gu_ren_yuan_) {
-                return this.$message.warning('请先指定评估人!')
-            }
-            const pinGuRenNum = data2[0].ping_gu_ren_yuan_.split(',').length
-            const sql = `select * from t_fxsbpgb2 where parent_id_='${this.params.id_}'`
-            const { variables: { data }} = await this.$common.request('sql', sql)
-            const submitNum = new Set(data.map(item => item.bian_zhi_ren_)).size
-            if (submitNum === pinGuRenNum && data.every(item => item.shi_fou_guo_shen_ === '已完成')) {
-                this.$confirm('请仔细检查并保存后再提交,一旦提交不可再更改,是否继续?', '提示', {
+            try {
+                this.$confirm('提交后不可修改,是否确认保存并提交?', '提示', {
                     confirmButtonText: '继续',
                     cancelButtonText: '取消',
                     type: 'warning'
                 }).then(async () => {
-                    // 0.生成快照
-                    const formName = '风险管理/风险识别评估表V2.rpx'
-                    const res = await this.$common.snapshoot({
-                        url: this.$getReportFile(formName, this.getReportParams(formName, this.params.id_, {
-                            ...this.preParams,
-                            shi_fou_guo_shen_: '已完成'
-                        })),
-                        name: this.params.id_,
-                        type: 'pdf'
-                    })
-                    console.log(res)
-                    if (!res.data || !res.data.id) {
-                        console.log('快照生成失败')
-                    } else {
-                        console.log('快照生成成功')
-                    }
-                    // 1.修改状态为已完成 并保存快照
-                    const updateParamsRecord = {
-                        tableName: 't_fxpgjlb2',
-                        updList: [{
-                            where: {
-                                id_: this.params.id_
-                            },
-                            param: {
-                                shi_fou_guo_shen_: '已完成',
-                                kuai_zhao_: res.data.id
-                            }
-                        }]
-                    }
-                    await this.$common.request('update', updateParamsRecord)
-                    // console.log(data)
-                    // 2.推送给措施制定人下一个流程
-                    let count = 0
-                    const addParams = {
-                        tableName: 't_fxkzcsb2',
-                        paramWhere: data.map(item => {
-                            if (item.feng_xian_ying_du !== '风险接受' && item.zhi_ding_ren_) {
-                                count++
-                                return {
+                    // 提交前自动保存
+                    await this.goSave()
+                    // 判断每个评估人是否已完成识别项
+                    const pinGuRenNum = this.Ids.length
+                    const sql = `select * from t_fxsbpgb2 where parent_id_='${this.params.id_}'`
+                    const { variables: { data }} = await this.$common.request('sql', sql)
+                    const submitNum = new Set(data.map(item => item.bian_zhi_ren_)).size
+                    if (submitNum === pinGuRenNum && data.every(item => item.shi_fou_guo_shen_ === '已完成')) {
+                        // 0.生成快照
+                        const formName = '风险管理/风险识别评估表V2.rpx'
+                        const res = await this.$common.snapshoot({
+                            url: this.$getReportFile(formName, this.getReportParams(formName, this.params.id_, {
+                                ...this.preParams,
+                                shi_fou_guo_shen_: '已完成'
+                            })),
+                            name: this.params.id_,
+                            type: 'pdf'
+                        })
+                        console.log(res)
+                        if (!res.data || !res.data.id) {
+                            console.log('快照生成失败')
+                        } else {
+                            console.log('快照生成成功')
+                        }
+                        // 1.修改状态为已完成 并保存快照
+                        const updateParamsRecord = {
+                            tableName: 't_fxpgjlb2',
+                            updList: [{
+                                where: {
+                                    id_: this.params.id_
+                                },
+                                param: {
+                                    shi_fou_guo_shen_: '已完成',
+                                    kuai_zhao_: res.data.id
+                                }
+                            }]
+                        }
+                        await this.$common.request('update', updateParamsRecord)
+                        // console.log(data)
+                        // 2.推送给措施制定人下一个流程
+                        let count = 0
+                        const addParams = {
+                            tableName: 't_fxkzcsb2',
+                            paramWhere: data.map(item => {
+                                if (item.feng_xian_ying_du !== '风险接受' && item.zhi_ding_ren_) {
+                                    count++
+                                    return {
+                                        di_dian_: this.level,
+                                        shi_fou_guo_shen_: '已编制',
+                                        bian_zhi_ren_: item.zhi_ding_ren_,
+                                        bian_zhi_bu_men_: this.getPersonPosition(item.zhi_ding_ren_),
+                                        bian_zhi_shi_jian: dayjs().format('YYYY-MM-DD HH:mm:ss'),
+                                        gai_jin_bian_hao_: ('FXGJ-' + dayjs().format('YYYYMMDDHHmmss')) + count,
+                                        yao_su_tiao_kuan_: item.yao_su_tiao_kuan_,
+                                        gong_zuo_huan_jie: item.gong_zuo_huan_jie,
+                                        gong_zuo_miao_shu: item.gong_zuo_miao_shu,
+                                        feng_xian_miao_sh: item.feng_xian_miao_sh,
+                                        zu_chang_: this.infoFxssbData.zu_chang_,
+                                        zu_chang_id_: this.infoFxssbData.zu_chang_id_,
+                                        shi_wu_shuo_ming_: this.infoFxssbData.shi_wu_shuo_ming_,
+                                        yuan_zhi_shu_: item.feng_xian_zhi_shu,
+                                        kong_zhi_fang_fa_: item.xian_xing_kong_zh,
+                                        feng_xian_lei_xin: this.infoFxssbData.feng_xian_lei_xin,
+                                        qian_fu_jian_: this.infoFxssbData.yi_ju_wen_jian_id,
+                                        ji_hua_bian_hao_: this.infoFxssbData.ji_hua_bian_hao_,
+                                        ni_cai_qu_kong_zh: item.ni_cai_qu_cuo_shi
+                                    }
+                                }
+                            }).filter(i => i !== undefined),
+                            formKey: 'fxcscsbV2',
+                            defKey: 'Process_1li9h0n'
+                        }
+                        console.log(addParams)
+                        if (addParams.paramWhere.length) {
+                            await this.$common.request('add', addParams)
+                            // 3.推送给组长 评估报告流程
+                            const addParams2 = {
+                                tableName: 't_fxkzbg',
+                                paramWhere: [{
                                     di_dian_: this.level,
                                     shi_fou_guo_shen_: '已编制',
-                                    bian_zhi_ren_: item.zhi_ding_ren_,
-                                    bian_zhi_bu_men_: this.getPersonPosition(item.zhi_ding_ren_),
-                                    bian_zhi_shi_jian: dayjs().format('YYYY-MM-DD HH:mm:ss'),
-                                    gai_jin_bian_hao_: ('FXGJ-' + dayjs().format('YYYYMMDDHHmmss')) + count,
-                                    yao_su_tiao_kuan_: item.yao_su_tiao_kuan_,
-                                    gong_zuo_huan_jie: item.gong_zuo_huan_jie,
-                                    gong_zuo_miao_shu: item.gong_zuo_miao_shu,
-                                    feng_xian_miao_sh: item.feng_xian_miao_sh,
+                                    bian_zhi_ren_: this.infoFxssbData.zu_chang_id_,
+                                    bian_zhi_bu_men_: this.getPersonPosition(this.infoFxssbData.zu_chang_id_),
+                                    bian_zhi_shi_jian: dayjs().format('YYYY-MM-DD HH:mm'),
                                     zu_chang_: this.infoFxssbData.zu_chang_,
                                     zu_chang_id_: this.infoFxssbData.zu_chang_id_,
-                                    shi_wu_shuo_ming_: this.infoFxssbData.shi_wu_shuo_ming_,
-                                    yuan_zhi_shu_: item.feng_xian_zhi_shu,
-                                    kong_zhi_fang_fa_: item.xian_xing_kong_zh,
                                     feng_xian_lei_xin: this.infoFxssbData.feng_xian_lei_xin,
-                                    qian_fu_jian_: this.infoFxssbData.yi_ju_wen_jian_id,
+                                    kai_shi_ri_qi_: this.infoFxssbData.kai_shi_ri_qi_,
+                                    jie_shu_ri_qi_: this.infoFxssbData.jie_shu_ri_qi_,
+                                    wan_cheng_ri_qi_: this.infoFxssbData.bao_gao_shi_jian_,
+                                    shi_wu_shuo_ming_: this.infoFxssbData.shi_wu_shuo_ming_,
                                     ji_hua_bian_hao_: this.infoFxssbData.ji_hua_bian_hao_,
-                                    ni_cai_qu_kong_zh: item.ni_cai_qu_cuo_shi
-                                }
+                                    hui_yi_wen_jian_: this.infoFxssbData.hui_yi_fu_jian_
+                                }],
+                                formKey: 'fxbg',
+                                defKey: 'Process_0mrlsj7'
                             }
-                        }).filter(i => i !== undefined),
-                        formKey: 'fxcscsbV2',
-                        defKey: 'Process_1li9h0n'
-                    }
-                    console.log(addParams)
-                    if (addParams.paramWhere.length) {
-                        await this.$common.request('add', addParams)
-                        // 3.推送给组长 评估报告流程
-                        const addParams2 = {
-                            tableName: 't_fxkzbg',
-                            paramWhere: [{
-                                di_dian_: this.level,
-                                shi_fou_guo_shen_: '已编制',
-                                bian_zhi_ren_: this.infoFxssbData.zu_chang_id_,
-                                bian_zhi_bu_men_: this.getPersonPosition(this.infoFxssbData.zu_chang_id_),
-                                bian_zhi_shi_jian: dayjs().format('YYYY-MM-DD HH:mm'),
-                                zu_chang_: this.infoFxssbData.zu_chang_,
-                                zu_chang_id_: this.infoFxssbData.zu_chang_id_,
-                                feng_xian_lei_xin: this.infoFxssbData.feng_xian_lei_xin,
-                                kai_shi_ri_qi_: this.infoFxssbData.kai_shi_ri_qi_,
-                                jie_shu_ri_qi_: this.infoFxssbData.jie_shu_ri_qi_,
-                                wan_cheng_ri_qi_: this.infoFxssbData.bao_gao_shi_jian_,
-                                shi_wu_shuo_ming_: this.infoFxssbData.shi_wu_shuo_ming_,
-                                ji_hua_bian_hao_: this.infoFxssbData.ji_hua_bian_hao_,
-                                hui_yi_wen_jian_: this.infoFxssbData.hui_yi_fu_jian_
-                            }],
-                            formKey: 'fxbg',
-                            defKey: 'Process_0mrlsj7'
+                            console.log(addParams2)
+                            await this.$common.request('add', addParams2)
+                            console.log('流程推送成功')
+                        } else {
+                            console.log('无需推送')
+                        }
+
+                        this.$message.success('提交成功')
+                        // 提醒用户推送信息
+                        if (addParams.paramWhere.length) {
+                            const ids = addParams.paramWhere.map(item => this.switchIdtoUserName(item.bian_zhi_ren_))
+                            this.$alert(`已向 ${ids.join(',')} ${ids.length}位措施制定人推送风险改进流程,同时向组长 ${this.infoFxssbData.zu_chang_} 推送风险报告流程!`, '提交成功', {
+                                confirmButtonText: '确定',
+                                callback: action => {
+                                    this.closeDialog(true)
+                                }
+                            })
+                        } else {
+                            this.closeDialog(true)
                         }
-                        console.log(addParams2)
-                        await this.$common.request('add', addParams2)
-                        console.log('流程推送成功')
                     } else {
-                        console.log('无需推送')
+                        this.$message.warning('存在未完成风险识别项的评估人员,无法提交!')
+                        return
                     }
-
-                    // 4.主动生成快照 todo
-                    // let formName='风险管理/风险控制与评价表V2.rpx'
-
-                    this.$message.success('提交成功')
-                    this.closeDialog(true)
                 })
                     .catch(() => {
 
                     })
-            } else {
-                this.$message.warning('存在未提交风险识别项的在评估人员,请提醒提交后再进行操作!')
-                return
+            } catch (error) {
+                this.$message.warning(error.message)
             }
         },
+        // id 转 姓名
+        switchIdtoUserName (id) {
+            const { userList } = this.$store.getters
+            const user = userList.find(item => item.userId === id)
+            return user ? user.userName : ''
+        },
         goPeizhifengxian () {
             const buttons = document.querySelector('button[name="peizhifengxian"]')
             if (buttons) {
@@ -609,11 +631,27 @@ export default {
                 return bianzhiUserid.positionId
             }
         },
-        checkRequired (flag) {
-            if (flag) {
-                return this.preParams.nian_du_ && this.preParams.kai_shi_ri_qi_ && this.preParams.jie_shu_ri_qi_ && this.preParams.bao_gao_shi_jian_ && this.preParams.hui_yi_shi_jian_ && this.preParams.can_hui_ren_yuan_ && this.preParams.ping_gu_ren_yuan_
-            } else {
-                return this.infoFxssbData.nian_du_ && this.infoFxssbData.kai_shi_ri_qi_ && this.infoFxssbData.jie_shu_ri_qi_ && this.infoFxssbData.bao_gao_shi_jian_ && this.infoFxssbData.hui_yi_shi_jian_ && this.infoFxssbData.can_hui_ren_yuan_ && this.infoFxssbData.ping_gu_ren_yuan_
+        checkRequired () {
+            if (!this.infoFxssbData.nian_du_) {
+                throw new Error('请填写年度!')
+            }
+            if (!this.infoFxssbData.kai_shi_ri_qi_) {
+                throw new Error('请填写评估开始日期!')
+            }
+            if (!this.infoFxssbData.jie_shu_ri_qi_) {
+                throw new Error('请填写评估结束日期!')
+            }
+            if (!this.infoFxssbData.bao_gao_shi_jian_) {
+                throw new Error('请填写报告完成时间!')
+            }
+            if (!this.infoFxssbData.hui_yi_shi_jian_) {
+                throw new Error('请填写首次会议时间!')
+            }
+            if (!this.infoFxssbData.can_hui_ren_yuan_) {
+                throw new Error('请填写参会人员!')
+            }
+            if (!this.infoFxssbData.ping_gu_ren_yuan_) {
+                throw new Error('请填写评估人员!')
             }
         },
         async goAdd () {
@@ -635,12 +673,8 @@ export default {
         async goEdit () {
             try {
                 // 先检查状态
-                const sql2 = `select * from t_fxpgjlb2 where id_='${this.params.id_}'`
-                const { variables: { data: data2 }} = await this.$common.request('sql', sql2)
-                if (data2.length > 0 && data2[0].shi_fou_guo_shen_ === '已完成') {
-                    return this.$message('已结束,不可再次编辑!')
-                }
-
+                await this.getIsFinish()
+                // 更新主表
                 const updateParamsRecord = {
                     tableName: 't_fxpgjlb2',
                     updList: [{
@@ -651,8 +685,6 @@ export default {
                     }]
                 }
                 await this.$common.request('update', updateParamsRecord)
-                this.$message.success('修改成功')
-                this.closeDialog(true)
 
                 // 当前人员数组
                 const curIds = this.infoFxssbData.ping_gu_ren_yuan_.split(',')
@@ -681,20 +713,24 @@ export default {
                         console.log('删除成功')
                     }
                 }
+                await this.goRefresh() // 修改之后刷新
+                this.$message.success('修改成功')
             } catch (error) {
-                console.log(error)
-                this.$message.warning('修改失败')
+                this.$message.warning(error.message)
+                throw new Error(error.message)
             }
         },
-        goSave () {
-            // console.log(this.infoFxssbData)
-            if (!this.checkRequired()) {
-                return this.$message.warning('请检查必填项是否填写完整!')
-            }
-            if (this.isEdit) {
-                this.goEdit()
-            } else {
-                this.goAdd()
+        async goSave () {
+            try {
+                this.checkRequired()
+                if (this.isEdit) {
+                    await this.goEdit()
+                } else {
+                    await this.goAdd()
+                }
+            } catch (error) {
+                this.$message.warning(error.message)
+                throw new Error(error.message)
             }
         },
         // 刷新
@@ -748,7 +784,7 @@ export default {
             })
         },
         async init () {
-            this.isEdit = this.params && this.params.id_
+            this.isEdit = !!(this.params && this.params.id_)
             if (this.isEdit) {
                 this.infoFxssbData = this.params
                 this.preParams = JSON.parse(JSON.stringify(this.params))