123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204 |
- <!--数据检查-->
- <div class="modal fade" id="checking2" data-backdrop="static">
- <div class="modal-dialog modal-lg" role="document">
- <div class="modal-content">
- <div class="modal-header">
- <h5 class="modal-title">数据检查</h5>
- </div>
- <div class="modal-body">
- <div class="row">
- <div class="col-6">
- <!--雷达扫描动画-->
- <div class="L_transform">
- <div class="trans_bg">
- <div class="bg_shade"></div>
- <div class="circles topcircle active">
- <div class="trio"><p class="c-icon"></p></div>
- </div>
- <div class="circles leftcircle ">
- <div class="trio"><p class="c-icon"></p></div>
- </div>
- <div class="circles leftcircle2 ">
- <div class="trio"><p class="c-icon"></p></div>
- </div>
- <div class="circles rightcircle ">
- <div class="trio"><p class="c-icon"></p></div>
- </div>
- <div class="circles rightcircle2">
- <div class="trio"><p class="c-icon"></p></div>
- </div>
- <div class="heart_box">
- <div class="heart"></div>
- <div class="shan" style="transform: rotate(274deg);"></div>
- </div>
- </div>
- </div>
- <!--雷达扫描动画结束-->
- </div>
- <div class="col-6">
- <p>数据检查,将检查罗列台账中以下内容:</p>
- <div id="check2-list">
- <div class="card p-2 border-success border-0">
- <div class="d-flex justify-content-start">
- <span class="text-success mr-2"><i class="fa fa-check-circle fa-2x"></i></span>
- <div class="w-100">
- 项目节、清单同层
- <div class="progress mt-1">
- <div class="progress-bar bg-success" role="progressbar" style="width: 100%;" aria-valuenow="25" aria-valuemin="0" aria-valuemax="100">100%</div>
- </div>
- </div>
- </div>
- </div>
- <div class="card p-2 border-success border-0">
- <div class="d-flex justify-content-start">
- <span class="text-warning mr-2"><i class="fa fa-info-circle fa-2x"></i></span>
- <div class="w-100">
- 项目节、清单编号同时为空
- <div class="progress mt-1">
- <div class="progress-bar bg-warning" role="progressbar" style="width: 100%;" aria-valuenow="25" aria-valuemin="0" aria-valuemax="100">100%</div>
- </div>
- </div>
- </div>
- </div>
- <div class="card p-2 border-success border-0">
- <div class="d-flex justify-content-start">
- <span class="text-primary mr-2"><i class="fa fa-cog fa-spin fa-2x"></i></span>
- <div class="w-100">
- 清单数量不等于计量单元之和
- <div class="progress mt-1">
- <div class="progress-bar" role="progressbar" style="width: 30%;" aria-valuenow="30" aria-valuemin="0" aria-valuemax="100">30%</div>
- </div>
- </div>
- </div>
- </div>
- </div>
- <p class="text-center text-primary" id="check2-hint">检查中,请等待...</p>
- </div>
- </div>
- <div class="modal-footer">
- <button type="button" class="btn btn-sm btn-secondary" data-dismiss="modal">关闭</button>
- <button type="button" class="btn btn-sm btn-primary" id="check2-result">查看结果</button>
- </div>
- </div>
- </div>
- </div>
- </div>
- <script>
- const getmatrix = function(a,b,c,d,e,f){
- var aa=Math.round(180*Math.asin(a)/ Math.PI);
- var bb=Math.round(180*Math.acos(b)/ Math.PI);
- var cc=Math.round(180*Math.asin(c)/ Math.PI);
- var dd=Math.round(180*Math.acos(d)/ Math.PI);
- var deg=0;
- if(aa==bb||-aa==bb){
- deg=dd;
- }else if(-aa+bb==180){
- deg=180+cc;
- }else if(aa+bb==180){
- deg=360-cc||360-dd;
- }
- return deg>=360?0:deg;
- }
- const radarFind = function (select) {
- $('.circles').removeClass('active');
- $(select).addClass('active');
- }
- let radarHandle, progressHandle;
- const check2Viewing = function (setting) {
- if (!setting.prefix) setting.prefix = 'check2-';
- if (setting.randomWait) {
- for (const c of setting.checks) {
- c.wait = _.random(1, 5) + setting.extra;
- }
- }
- // 雷达
- let radarObj=$('.shan');
- radarHandle = setInterval(function(){
- var transform = radarObj.css('transform');
- var deg= transform === 'none' ? 0 : eval('get'+ transform);//构造getmatrix函数,返回上次旋转度数
- var step=45;
- radarObj.css({'transform':'rotate('+(deg+step)%360+'deg)'});
- var dd = radarObj.css({'transform':'rotate('+(deg+step)%360+'deg)'});
- //上
- if(deg>300&°<360 ||deg>0 &°<20){
- radarFind('.topcircle');
- // 右
- }else if(deg>20 && deg<45){
- radarFind('.rightcircle');
- }else if(deg>70 && deg<90){
- radarFind('.rightcircle2');
- // 左
- }else if(deg>150 && deg<180){
- radarFind('.leftcircle2');
- }else if(deg>230 && deg<300){
- radarFind('.leftcircle');
- }
- }, 100);
- const initCheckList = function (prefix, checks) {
- $('#check2-result').hide();
- $('#check2-hint').removeClass('text-warning').removeClass('text-success').addClass('text-primary').html('检查中,请等待...');
- const html = [];
- for (const c of checks) {
- const domid = prefix + c.key;
- html.push(`<div class="card p-2 border-success border-0" id="${domid}">`);
- html.push('<div class="d-flex justify-content-start">');
- html.push('<span class="text-muted mr-2"><i class="fa fa-circle-o fa-2x"></i></span>');
- html.push('<div class="w-100">', c.caption);
- html.push('<div class="progress mt-1">', '<div class="progress-bar" role="progressbar" style="width: 0%;" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100">0%</div>', '</div>');
- html.push('</div>');
- html.push('</div>');
- html.push('</div>');
- }
- $('#check2-list').html(html.join(''));
- }
- const doSomeCheck = function (setting, index) {
- const check = setting.checks[index];
- console.log(check.wait);
- if (!check) return;
- setting.total = setting.total + (check.error || 0);
- const obj = $('#' + setting.prefix + check.key);
- $('.fa-circle-o', obj).removeClass('fa-circle-o').addClass('fa-cog');
- $('.text-muted').removeClass('text-muted').addClass('text-primary');
- $('.progress-bar', obj).attr('aria-valuemax', check.wait*10);
- const handle = setInterval(function () {
- const now = _.toInteger($('.progress-bar', obj).attr('aria-valuenow')) || 0;
- if (now < check.wait * 10) {
- const percent = Math.min(ZhCalc.div((now + 1) * 10, check.wait, 0), 100);
- $('.progress-bar', obj).attr('aria-valuenow', Math.min(now + 1, check.wait*10)).html(percent + '%').width(percent + '%');
- }
- }, 100);
- setTimeout(() => {
- clearInterval(handle);
- $('.fa-cog', obj).removeClass('fa-cog').addClass(check.error > 0 ? 'fa-info-circle' : 'fa-check-circle');
- $('.text-primary', obj).removeClass('text-primary').addClass(check.error > 0 ? 'text-warning' : 'text-success');
- $('.progress-bar', obj).addClass(check.error > 0 ? 'bg-warning' : 'bg-success');
- if (index === setting.checks.length - 1) {
- if (setting.total > 0) {
- $('#check2-result').show();
- $('#check2-hint').removeClass('text-primary').addClass('text-warning').html('检查完成,发现问题,请查阅检查结果。');
- } else {
- $('#check2-hint').removeClass('text-primary').addClass('text-success').html('检查完成,没有任何问题。');
- }
- } else {
- doSomeCheck(setting, index + 1);
- }
- }, check.wait*1000 + 500);
- }
- initCheckList(setting.prefix, setting.checks);
- $('#checking2').modal('show');
- setting.total = 0;
- doSomeCheck(setting, 0);
- $('#check2-result').click(() => {
- $('#checking2').modal('hide');
- setting.checkList.show();
- });
- }
- $('#checking2').bind('hidden.bs.modal', function () {
- clearInterval(radarHandle);
- });
- </script>
|