import jyxm from '@/api/jyxm' import formatter from '@/utils/formatter' import store from '@/store' export default { /** * 获取检验项目 * @param modelId 模板主键(起草时使用) * @param ysjlId 原始记录主键(更新时使用) * @param sort 序号 * @param state 创建状态还是更新状态 * @param isReport 是否是报告 * @returns 检验项目 */ getJyxm(modelId, ysjlId, sort, state, isReport = false) { if (state === 'create') { return this.getCyJyxm(modelId, sort) } else { return jyxm.getCyJyxmByYsjl(ysjlId, isReport, sort) } }, /** * 获取检验项目 * @param modelId 模板主键(起草时使用) * @param sort 序号 * @returns 检验项目字典 */ getCyJyxm(modelId, sort) { return jyxm.getCyJyxm(modelId, sort) }, getJdCyJyxm(ysjlId, templateId, orders) { return jyxm.getJdCyJyxm(ysjlId, templateId, orders) }, /** * 找到检验项或者检验目开始的第一条数据,并进行签名 * @param selections * @param user */ findFirstJyxAndSignName(selections, arrayData, user) { for (let i = 0; i < selections.length; i++) { for (let j = 0; j < arrayData.length; j++) { if (arrayData[j].id === selections[i].id) { // 找到当前检验项开始的第一条数据,并赋值监检人员 if (j === 0) { this.sign(arrayData[0], user) } else { // 如果当前选择的不是第一行数据,那么需要遍历找到当前检验项或者检验目开始的第一条数据 for (let k = j; k > 0; k--) { if (arrayData[k].jianyanxiang !== arrayData[k - 1].jianyanxiang || arrayData[k].jianyanmu !== arrayData[k - 1].jianyanmu) { this.sign(arrayData[k], user) break } else if (k === 1) { // 如果当前是第二行数据,且第一行数据和第二行数据的检验项相同 this.sign(arrayData[0], user) } } } } } } }, /** * 宏观检验项目的签名 * @param jyxm 宏观检验项目List的一行 * @param user 签名数据 */ sign(jyxm, user) { // 不允许重复签名 if (user.id && jyxm.jianjianyuan && jyxm.jianjianyuan.toString().indexOf(user.id) !== -1) { return } // 赋值监检员,判断当前监检员是否存在一次判断是否需要添加逗号隔开两个监检员ID if (jyxm.jianjianyuan) { jyxm.jianjianyuan = user.id ? jyxm.jianjianyuan + ',' + user.id : '' } else { jyxm.jianjianyuan = user.id ? user.id : '' } }, /** * 初始化锅炉监督检验记录的检验项目 * @param state 状态 * @param arrayData 检验项目数组 */ initJjyJyxm(state, arrayData) { if (state === 'create' || arrayData[0].jianjianyuan === null || arrayData[0].jianjianyuan === undefined) { const jjy = store.getters.userId const qrrq = formatter.dateFormat('YYYY-MM-dd') const jyjg = '√' // 初始化:默认合格:√,监检员:当前起草人,监检日期:检验日期,项目类别中例如:B/C的,默认B,可选C for (let i = 0; i < arrayData.length; i++) { arrayData[i].jyjg1 = jyjg if (i === 0) { arrayData[i].jianjianyuan = jjy arrayData[i].querenriqi = qrrq } else if (i + 1 < arrayData.length && (arrayData[i].jianyanxiang !== arrayData[i + 1].jianyanxiang || arrayData[i].jianyanmu !== arrayData[i + 1].jianyanmu)) { arrayData[i + 1].jianjianyuan = jjy arrayData[i + 1].querenriqi = qrrq } } } } }