From 6fb14149d62199cfcc0448c82eb2f51f9c5181de Mon Sep 17 00:00:00 2001 From: luliqiang <kidgrow> Date: Thu, 31 Dec 2020 16:55:30 +0800 Subject: [PATCH] Merge branch 'dev' of http://192.168.2.240:7070/r/kidgrow-microservices-platform into parter --- kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/dataNeed.html | 339 +++++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 238 insertions(+), 101 deletions(-) diff --git a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/dataNeed.html b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/dataNeed.html index f20cb2e..67ec24c 100644 --- a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/dataNeed.html +++ b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/dataNeed.html @@ -1,19 +1,19 @@ <div class="layui-card"> <div class="layui-card-header"> - <h2 class="header-title">应用管理</h2> + <h2 class="header-title">数据需求</h2> <span class="layui-breadcrumb pull-right"> <a href="#!home_console">首页</a> - <a><cite>应用管理</cite></a> + <a><cite>数据需求</cite></a> </span> </div> <div class="layui-card-body"> <div class="layui-form toolbar"> - <input id="app-edit-search" class="layui-input search-input" type="text" placeholder="输入医生姓名" />  - <input type="text" class="layui-input search-input" id="test1"> 至 <input type="text" - class="layui-input search-input" id="test2">   - <button id="app-btn-search" class="layui-btn icon-btn"><i class="layui-icon"></i>搜索</button> + <input id="app-edit-search" class="layui-input search-input" type="text" placeholder="按医生姓名" />  + <input type="text" class="layui-input search-input" id="test1" placeholder="开始时间" > 至 <input type="text" + class="layui-input search-input" id="test2" placeholder="结束时间" >   + <button id="app-btn-search" class="layui-btn icon-btn permissions" permissions="diagnostic-get"><i class="layui-icon"></i>搜索</button> <!-- <button id="app-btn-add" class="layui-btn icon-btn"><i class="layui-icon"></i>添加</button> --> - <button id="app-btn-export" class="layui-btn icon-btn"><i class="layui-icon"></i>导出</button> + <button id="app-btn-export" class="layui-btn icon-btn permissions" permissions="dataneed-export"><i class="layui-icon"></i>导出</button> </div> <!-- 数据表格 --> @@ -23,65 +23,133 @@ <!-- 表格操作列 --> <script type="text/html" id="app-table-bar"> - <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="edit">修改</a> - <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a> + <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="detail">查看详情</a> +</script> +<script type="text/html" id="app-table-bar1"> + + {{# if (d.enabled ==0&&d.dataFile==null){}} + <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="upload">待上传数据</a> + {{# } else { }} + <p>已上传</p> + {{#}}} </script> <!-- 表单弹窗 --> -<!-- <script type="text/html" id="app-model"> +<script type="text/html" id="app-model"> <form id="app-form" lay-filter="app-form" class="layui-form model-form"> <input name="id" type="hidden"/> <div class="layui-form-item"> - <label class="layui-form-label">应用标识</label> + <label class="layui-form-label">需求类型</label> <div class="layui-input-block"> - <input name="clientId" placeholder="请输入应用标识" type="text" class="layui-input" maxlength="20" - lay-verify="required" required/> + <input name="needTypeName" id="needTypeName" placeholder="请输入应用标识" type="text" class="layui-input" maxlength="20"/> </div> </div> <div class="layui-form-item"> - <label class="layui-form-label">应用名称</label> + <label class="layui-form-label">医生姓名</label> <div class="layui-input-block"> - <input name="clientName" placeholder="请输入应用名称" type="text" class="layui-input" maxlength="20"/> + <input name="doctorName" placeholder="请输入应用名称" type="text" class="layui-input" maxlength="20"/> </div> </div> <div class="layui-form-item"> - <label class="layui-form-label">应用密钥</label> + <label class="layui-form-label">医院名称</label> <div class="layui-input-block"> - <input name="clientSecretStr" placeholder="请输入应用密钥" type="text" class="layui-input" maxlength="20" + <input name="hospitalName" placeholder="请输入应用密钥" type="text" class="layui-input" maxlength="20" lay-verify="required" required /> </div> </div> <div class="layui-form-item"> - <label class="layui-form-label">回调地址</label> + <label class="layui-form-label">科室名称</label> <div class="layui-input-block"> - <input name="webServerRedirectUri" placeholder="请输入回调地址" type="text" class="layui-input" maxlength="20"/> + <input name="departmentName" type="text" class="layui-input" maxlength="20"/> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label">医生联系方式</label> + <div class="layui-input-block"> + <input name="doctorTel" type="text" class="layui-input" maxlength="20"/> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label">需求数据的开始时间</label> + <div class="layui-input-block"> + <input name="needBegintime" type="text" class="layui-input" maxlength="20"/> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label">需求数据的结束时间</label> + <div class="layui-input-block"> + <input name="needEndtime" type="text" class="layui-input" maxlength="20"/> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label">需求标签</label> + <div class="layui-input-block"> + <textarea name="needTags" class="layui-input" style="height:200px;overflow:auto" maxlength="20"> </textarea> </div> </div> <div class="layui-form-item model-form-footer"> - <button class="layui-btn layui-btn-primary" ew-event="closeDialog" type="button">取消</button> - <button class="layui-btn" lay-filter="app-form-submit" lay-submit>保存</button> + <button class="layui-btn layui-btn-primary" ew-event="closeDialog" type="button">确定</button> </div> </form> -</script> --> +</script> + +<script type="text/html" id="app-upload"> + <form id="app-form-upload" lay-filter="app-form-upload" class="layui-form model-form"> + <input name="id" id="upload-id" type="hidden"/> + <div class="layui-form-item"> + <label class="layui-form-label">上传文件</label> + <div class="layui-input-block" id="demo"> + <button type="button" class="layui-btn" id="phonto"> + <i class="layui-icon"></i>上传文件 + </button> + <input name="dataFile" id="dataFile" type="hidden" class="layui-input" maxlength="20"/> + <input name="enabled" id="enabled" type="hidden" value="0" class="layui-input" maxlength="20"/> + </div> + </div> + </form> +</script> <script> - layui.use(['form', 'table', 'laydate', 'util', 'config', 'admin'], function () { + layui.use(['form', 'table', 'laydate', 'util', 'upload', 'config', 'admin'], function () { var form = layui.form; var table = layui.table; var config = layui.config; var layer = layui.layer; var util = layui.util; var admin = layui.admin; + var upload = layui.upload; + + //时间格式 var laydate = layui.laydate; //执行一个laydate实例 laydate.render({ - elem: '#test1' //指定元素 + elem: '#test1', //指定元素 + done: function (value, date, endDate) { + var startDate = new Date(value).getTime(); + var endTime = new Date($('#test2').val()).getTime(); + if (endTime < startDate) { + layer.msg('结束时间不能小于开始时间'); + $('#test1').val($('#test2').val()); + } else { + $('#custom_beginTime').val($("#test1").val()) + } + } }); laydate.render({ - elem: '#test2' //指定元素 + elem: '#test2', //指定元素 + done: function (value, date, endDate) { + var startDate = new Date($('#test1').val()).getTime(); + var endTime = new Date(value).getTime(); + if (endTime < startDate) { + layer.msg('结束时间不能小于开始时间'); + $('#test2').val($('#test1').val()); + } else { + $('#custom_endTime').val($("#test2").val()) + } + } }); // 渲染表格 @@ -93,15 +161,18 @@ page: true, cols: [[ { type: 'numbers' }, - { field: 'doctorName', width: 180, sort: true, title: '医生姓名' }, - { field: 'doctorTel', width: 200, sort: true, title: '联系电话' }, - { field: 'hospitalName', width: 180, sort: true, title: '所在医院' }, - { field: 'needBegintime',width: 300, sort: true, title: '时间段', templet: "<div>{{layui.util.toDateString(d.needBegintime, 'yyyy年MM月dd日 HH:mm:ss')}}至{{layui.util.toDateString(d.needEndtime, 'yyyy年MM月dd日 HH:mm:ss')}}</div>" }, - { field: 'needType', width: 250, sort: true, title: '数据类型', templet: function (d) { if (d.needType == 1) { return '筛查' } else { return '就诊' } } },// 0就诊数据 1筛查 - { field: 'needTags', width: 250, sort: true, title: '需求标签' }, - { field: 'enabled', width: 250, sort: true, title: '处理状态', templet: function (d) { if (d.enabled == 1) { return '已上传' } else { return '未处理' } } }, - { field: 'downTime', width: 250, sort: true, title: '时间', templet: "<div>{{layui.util.toDateString(d.downTime, 'yyyy年MM月dd日 HH:mm:ss')}}</div>" } - ]] + { field: 'doctorName',align:'center', width: 100, title: '医生姓名' }, + { field: 'doctorTel',align:'center', width: 150, title: '联系电话' }, + { field: 'hospitalName',align:'center', width: 300, title: '所在医院' }, + { field: 'needBegintime',align:'center', width: 240, title: '时间段', templet: "<div>{{layui.util.toDateString(d.needBegintime, 'yyyy-MM-dd')}} 至 {{layui.util.toDateString(d.needEndtime, 'yyyy-MM-dd')}}</div>" }, + { field: 'needType',align:'center', width: 100, title: '数据类型', templet: function (d) { if (d.needType == 1) { return '筛查' } else { return '就诊' } } },// 0就诊数据 1筛查 + { field: 'needTags',align:'center', width: 100, align: 'center', toolbar: '#app-table-bar', title: '需求标签' }, + { field: 'enabled',align:'center', width: 200, toolbar: '#app-table-bar1', title: '处理状态', }, + { field: 'downTime',align:'center', width: 250, title: '下载时间', templet: "<div>{{layui.util.toDateString(d.downTime, 'yyyy-MM-dd HH:mm')}}</div>" }, + { field: 'creatTime',align:'center', width: 250, title: '创建时间', templet: "<div>{{layui.util.toDateString(d.creatTime, 'yyyy-MM-dd')}}</div>" } + ]],done:function(res){ + permissionsInput(res,config); + } }); // 工具条点击事件 @@ -109,41 +180,70 @@ var data = obj.data; var layEvent = obj.event; - if (layEvent === 'del') { // 删除 - doDelete(obj); - } else if (layEvent === 'edit') { //修改 + if (layEvent === 'detail') { // 显示详情 showEditModel(data); + } else if (layEvent === 'upload') { // 上传 + layer.open({ + type: 1, + title: '上传数据', + area: ["500px", "150px"], + content: $('#app-upload').html(), + success: function () { + $("#upload-id").val(data.id) + var upload = layui.upload; + //执行实例 + upload.render({ + elem: '#phonto', + url: config.base_server + 'api-file/files-anon', + accept: 'file', + auto: true, + headers: { "Authorization": "Bearer " + config.getToken().access_token }, + before: function (obj) { + layer.load(); //上传loading + }, + done: function (data) { + layer.closeAll('loading'); + // $("#dataFile").val(data.url); + updateEnabled(data.url, false); + }, + error: function (data) { + layer.closeAll('loading'); + } + }); + } + }); } }); - - - // // 删除 - // var doDelete = function (obj) { - // layer.confirm('确定要删除吗?', function (i) { - // layer.close(i); - // layer.load(2); - // admin.req('api-opration/dataneed/' + obj.data.id, {}, function (data) { - // layer.closeAll('loading'); - // layer.msg('成功', { icon: 1, time: 500 }); - // obj.del(); - // }, 'DELETE'); - // }); - // }; - + //更新上传的状态 + var updateEnabled = function (dataFile, enabled) { + admin.req('api-opration/dataneed/updateEnabled', { + id: $("#upload-id").val(), + enabled: enabled, + dataFile: dataFile + }, function (data) { + layer.closeAll('loading'); + if (data.code == 0) { + layer.closeAll(); + table.reload('app-table', { where: {} }); + } else { + layer.msg(data.msg, { icon: 2, time: 2000 }); + } + }, 'GET'); + } // 搜索按钮点击事件 $('#app-btn-search').click(function () { var key = $('#app-edit-search').val(); - var needBegintime = $('#test1').val(); - var needEndtime = $('#test2').val(); - if (needBegintime != null && needEndtime != null) { - var flag=compareDate(needBegintime, needEndtime); - if(!flag){ + var createTimeBegin = $('#test1').val(); + var createTimeEnd = $('#test2').val(); + if (createTimeBegin != null && createTimeEnd != null) { + var flag = compareDate(createTimeBegin, createTimeEnd); + if (!flag) { layer.msg('结束时间不得小于开始时间'); return; } } - - table.reload('app-table', { where: { doctorName: key,needBegintime:needBegintime, needEndtime:needEndtime} }); + + table.reload('app-table', { where: { doctorName: key, createTimeBegin: createTimeBegin, createTimeEnd: createTimeEnd },page: {curr: 1 } }); }); //比较日期大小 function compareDate(logintime, logouttime) { @@ -161,51 +261,88 @@ } } } + // 导出 + $('#app-btn-export').click(function () { + var key = $('#app-edit-search').val(); + var needBegintime = $('#test1').val(); + var needEndtime = $('#test2').val(); + if (needBegintime != null && needEndtime != null) { + var flag = compareDate(needBegintime, needEndtime); + if (!flag) { + layer.msg('结束时间不得小于开始时间'); + return; + } + } + //获取 + var url = config.base_server + 'api-opration/dataneed/export'; + var xhr = new XMLHttpRequest(); + xhr.open('POST', url, true); + xhr.responseType = "blob"; + var form = new FormData(); + // Add selected file to form + form.append("doctor_name", key); + form.append('need_begintime',needBegintime); + form.append('need_endtime',needEndtime); - - // 添加按钮点击事件 - $('#app-btn-add').click(function () { - showEditModel(); + xhr.setRequestHeader("client_type", "DESKTOP_WEB"); + xhr.setRequestHeader("Authorization", "Bearer " + config.getToken().access_token); + xhr.onload = function () { + if (this.status == 200) { + var fileName = "数据需求.xlsx"; + var blob = this.response; + var a = document.createElement('a'); + a.innerHTML = fileName; + // 指定生成的文件名 + a.download = fileName; + a.href = URL.createObjectURL(blob); + document.body.appendChild(a); + var evt = document.createEvent("MouseEvents"); + evt.initEvent("click", false, false); + a.dispatchEvent(evt); + document.body.removeChild(a); + } + } + xhr.send(form); }); - // // 显示编辑弹窗 - // var showEditModel = function (data) { - // layer.open({ - // type: 1, - // title: data ? '修改应用' : '添加应用', - // area: '450px', - // offset: '120px', - // content: $('#app-model').html(), - // success: function () { - // $('#app-form')[0].reset(); - // $('#app-form').attr('method', 'POST'); - // if (data) { - // $("input[name='clientId']").attr('disabled', true); - // $("input[name='clientId']").attr('class', "layui-input layui-disabled"); - // $("input[name='webServerRedirectUri']").attr('disabled', true); - // $("input[name='webServerRedirectUri']").attr('class', "layui-input layui-disabled"); - // form.val('app-form', data); - // $('#app-form').attr('method', 'POST'); - // } - // } - // }); - // }; + // 显示编辑弹窗 + var showEditModel = function (data) { + layer.open({ + type: 1, + title: '详情', + area: '700px', + offset: '0px', + content: $('#app-model').html(), + success: function () { + $('#app-form')[0].reset(); + $('#app-form').attr('method', 'POST'); + if (data) { + if (data.needBegintime) { + var needBegintime = layui.util.toDateString(data.needBegintime, 'yyyy年MM月dd日'); + data.needBegintime = needBegintime + } + if (data.needEndtime) { + var needEndtime = layui.util.toDateString(data.needEndtime, 'yyyy年MM月dd日'); + data.needEndtime = needEndtime + } + $("input[name='clientId']").attr('disabled', true); + $("input[name='clientId']").attr('class', "layui-input layui-disabled"); + $("input[name='webServerRedirectUri']").attr('disabled', true); + $("input[name='webServerRedirectUri']").attr('class', "layui-input layui-disabled"); + if(data.needType===1) + { + $("#needTypeName").val("筛查"); + } + else{ + $("#needTypeName").val("就诊"); + } + form.val('app-form', data); + $('#app-form').find('input,textarea').prop('readonly', true); + $('#app-form').attr('method', 'POST'); + } + } + }); + }; - // // 表单提交事件 - // form.on('submit(app-form-submit)', function (data) { - // layer.load(2); - // admin.req('api-opration/dataneed/saveOrUpdate', JSON.stringify(data.field), function (data) { - // layer.closeAll('loading'); - // console.log(data); - // if (data.code == 0) { - // layer.msg(data.msg, { icon: 1, time: 500 }); - // table.reload('app-table'); - // layer.closeAll('page'); - // } else { - // layer.msg(data.msg, { icon: 2, time: 500 }); - // } - // }, $('#app-form').attr('method')); - // return false; - // }); }); </script> \ No newline at end of file -- Gitblit v1.8.0