import { $fysp } from '@/api/index';
|
|
//问题状态
|
const proStatus = {
|
unCheck: 'unCheck',
|
pass: 'pass',
|
fail: 'fail',
|
change_unCheck: 'change_unCheck',
|
change_fail: 'change_fail',
|
change_pass: 'change_pass',
|
}
|
|
export default {
|
//统计问题
|
calProStatus(proList) {
|
const status = {
|
//问题数量
|
proNum: proList.length,
|
//整改数量
|
changeNum: 0,
|
//待审核数量
|
uncheckNum: 0,
|
//已审核通过数量
|
passNum: 0,
|
//未通过数量
|
unpassNum: 0,
|
//整改率
|
changePer: '0%',
|
//通过率
|
passPer: '0%',
|
//审核率
|
checkPer: '0%',
|
};
|
|
proList.forEach((p) => {
|
if (p.ischanged) status.changeNum++;
|
|
if (p.extension3 == 'fail' || p.extension3 == 'change_fail')
|
status.unpassNum++;
|
else if (
|
p.extension3 == 'unCheck' ||
|
p.extension3 == 'change_unCheck' ||
|
(p.extension3 == 'pass' && p.ischanged)
|
)
|
status.uncheckNum++;
|
else status.passNum++;
|
|
status.changePer =
|
String(
|
(status.changeNum / status.proNum) * 100
|
? ((status.changeNum / status.proNum) * 100).toFixed(1)
|
: 0
|
) + '%';
|
status.passPer =
|
String(
|
(status.passNum / status.proNum) * 100
|
? ((status.passNum / status.proNum) * 100).toFixed(1)
|
: 0
|
) + '%';
|
status.checkPer =
|
String(
|
((status.passNum + status.unpassNum) / status.proNum) * 100
|
? (
|
((status.passNum + status.unpassNum) / status.proNum) *
|
100
|
).toFixed(1)
|
: 0
|
) + '%';
|
});
|
|
return status;
|
},
|
|
//统计问题,返回数组形式
|
proStatusArray(proList) {
|
const status = this.calProStatus(proList);
|
return [
|
{ name: '问题数', value: status.proNum },
|
{ name: '整改数', value: status.changeNum },
|
{ name: '待审核', value: status.uncheckNum },
|
{ name: '已审核', value: status.passNum },
|
{ name: '未通过', value: status.unpassNum },
|
{ name: '整改率', value: status.changePer },
|
{ name: '通过率', value: status.passPer },
|
{ name: '审核率', value: status.checkPer },
|
];
|
},
|
|
//问题图片和整改图片
|
proPics(pro) {
|
const pics = [
|
{
|
title: '问题图片',
|
path: [],
|
},
|
{
|
title: '整改图片',
|
path: [],
|
},
|
];
|
if (pro.mediafileList) {
|
pro.mediafileList.forEach((m) => {
|
pics[m.ischanged ? 1 : 0].path.push(
|
`${$fysp.imgUrl}${m.extension1}${m.guid}.jpg`
|
);
|
});
|
}
|
|
return pics;
|
},
|
|
//问题审核状态转换中文
|
proStatusMap(p) {
|
switch (p) {
|
case proStatus.unCheck:
|
return { name: '问题未审核', type: 'warning' };
|
case proStatus.pass:
|
return { name: '问题通过', type: 'success' };
|
case proStatus.fail:
|
return { name: '问题不通过', type: 'danger' };
|
case proStatus.change_unCheck:
|
return { name: '整改未审核', type: 'warning' };
|
case proStatus.change_fail:
|
return { name: '整改不通过', type: 'danger' };
|
case proStatus.change_pass:
|
return { name: '整改通过', type: 'success' };
|
default:
|
return { name: '问题未审核', type: 'warning' };
|
}
|
},
|
|
/**
|
* 问题审核后状态变换
|
* @param {String} s 当前问题状态
|
* @param {Boolean} isPass 审核通过或驳回
|
* @returns 下一个问题状态
|
*/
|
proNextStatus(s, isPass) {
|
switch (s) {
|
case proStatus.unCheck:
|
return isPass ? proStatus.pass : proStatus.fail;
|
case proStatus.change_unCheck:
|
return isPass ? proStatus.change_pass : proStatus.change_fail;
|
default:
|
return s;
|
}
|
},
|
|
/**
|
* 当前问题是否需要审核
|
* @param {String} s 当前问题状态
|
* @returns 是或否
|
*/
|
isProNeedCheck(s) {
|
return s == proStatus.unCheck || s == proStatus.change_unCheck
|
}
|
};
|