task_export.html 9.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305
  1. {{template "inc"}}
  2. <!-- Main Header -->
  3. {{template "header"}}
  4. <!-- Left side column. 权限菜单 -->
  5. {{template "memu"}}
  6. <link href="/res/doublebox/css/hdw.css" rel="stylesheet" type="text/css">
  7. <script src="/res/doublebox/js/hdw.js"></script>
  8. <!-- Content Wrapper. Contains page content -->
  9. <div class="content-wrapper">
  10. <section class="content-header">
  11. <h1>
  12. <small><a class="btn btn-primary" onclick="editorexport()">创建导出任务</a></small>
  13. </h1>
  14. <ol class="breadcrumb">
  15. <li><a href="/admin/task/export"><i class="fa fa-dashboard"></i>导出任务</a></li>
  16. </ol>
  17. </section>
  18. <!-- Main content -->
  19. <section class="content">
  20. <div class="row">
  21. <div class="col-xs-12">
  22. <div class="box">
  23. <div class="box-body">
  24. <table id="dataTable" class="table table-bordered table-hover">
  25. <thead>
  26. <tr>
  27. <th>任务名称</th>
  28. <th>导出属性</th>
  29. <th>导出条件</th>
  30. <th>导出数量</th>
  31. <th>是否完成</th>
  32. <th>操作</th>
  33. </tr>
  34. </thead>
  35. </table>
  36. </div>
  37. <!-- /.box-body -->
  38. </div>
  39. <!-- /.box -->
  40. </div>
  41. </div>
  42. </section>
  43. </div>
  44. <div class="modal fade" id="modal-info-export">
  45. <div class="modal-dialog">
  46. <form id="dataform" class="form-horizontal" role="form">
  47. <div class="modal-content">
  48. <div class="modal-header">
  49. <button type="button" class="close" data-dismiss="modal" aria-label="Close">
  50. <span aria-hidden="true">&times;</span></button>
  51. <h4 class="modal-title">导出</h4>
  52. </div>
  53. <div class="modal-body">
  54. <div class="form-group">
  55. <label for="code" class="col-sm-2 control-label">名称:</label>
  56. <div class="col-sm-10">
  57. <input name="name" type="text" value="" class="form-control" placeholder="任务名称">
  58. </div>
  59. </div>
  60. <div class="form-group">
  61. <label for="code" class="col-sm-2 control-label">对比任务:</label>
  62. <div class="col-sm-5">
  63. <select id="v1" name="v1" class="form-control">
  64. <option value="">请选择版本</option>
  65. {{range .vlist}}
  66. <option value="{{._id}}">{{.s_name}}</option>
  67. {{end}}
  68. </select>
  69. </div>
  70. <div class="col-sm-5">
  71. <select id="v2" name="v2" class="form-control">
  72. <option value="">请选择版本</option>
  73. {{range .vlist}}
  74. <option value="{{._id}}">{{.s_name}}</option>
  75. {{end}}
  76. </select>
  77. </div>
  78. </div>
  79. <div class="form-group">
  80. <label for="code" class="col-sm-2 control-label">数据库:</label>
  81. <div class="col-sm-5">
  82. <input name="dbaddr" type="text" value="" class="form-control" placeholder="数据库连接地址">
  83. </div>
  84. <div class="col-sm-5">
  85. <input name="dbname" type="text" value="" class="form-control" placeholder="数据库名称">
  86. </div>
  87. </div>
  88. <div class="form-group">
  89. <label for="code" class="col-sm-2 control-label">查询条件:</label>
  90. <div class="col-sm-10">
  91. <input name="query" type="text" value="{}" class="form-control" placeholder="{}">
  92. </div>
  93. </div>
  94. <div class="form-group">
  95. <label for="code" class="col-sm-2 control-label">信息源:</label>
  96. <div class="col-sm-5">
  97. <input name="table" type="text" value="" class="form-control" placeholder="信息表(bidding)">
  98. </div>
  99. <div class="col-sm-5">
  100. <input name="limit" type="text" value="" class="form-control" placeholder="信息量">
  101. </div>
  102. </div>
  103. <div class="form-group">
  104. <label for="code" class="col-sm-2 control-label">导出属性:</label>
  105. <div class="col-sm-10" id="selectclear">
  106. <div class="doublebox">
  107. <select multiple="multiple" id="select1" style="overflow-x: scroll;"></select>
  108. </div>
  109. <div class="move">
  110. <button type="button" id="right" class="btn btn-primary">右移</button>
  111. <button type="button" id="left" class="btn btn-primary">左移</button>
  112. </div>
  113. <div class="doublebox">
  114. <select multiple="multiple" id="select2" style="overflow-x: scroll;"></select>
  115. </div>
  116. </div>
  117. </div>
  118. </div>
  119. <div class="modal-footer">
  120. <button type="button" class="btn btn-default cancel" data-dismiss="modal" onclick="reset()">取消</button>
  121. <button type="button" class="btn btn-primary save" onclick="save()">保存</button>
  122. </div>
  123. </div>
  124. <!-- /.modal-content -->
  125. <input type="hidden" name="_id" value="">
  126. </form>
  127. </div>
  128. <!-- /.modal-dialog -->
  129. </div>
  130. <!-- footer -->
  131. {{template "dialog"}}
  132. {{template "footer"}}
  133. <script>
  134. menuActive("export")
  135. $(function () {
  136. ttable=$('#dataTable').DataTable({
  137. "paging" : false,
  138. "lengthChange": false,
  139. "searching" : true,
  140. "ordering" : false,
  141. "info" : true,
  142. "autoWidth" : false,
  143. "ajax": {
  144. "url": "/admin/task/export/data",
  145. "type": "post",
  146. "data":{}
  147. },
  148. "language": {
  149. "url": "/res/dist/js/dataTables.chinese.lang"
  150. },
  151. "columns": [
  152. { "data": "name"},
  153. { "data": "fields"},
  154. { "data": "query"},
  155. { "data": "limit"},
  156. { "data": "state",render:function(val,a,row){
  157. if(row.state!=0){
  158. return "已完成"
  159. }else{
  160. return "待执行"
  161. }
  162. }},
  163. {"data":"_id",render:function(val,a,row){
  164. if(row.state!=0){
  165. return '<a class="btn btn-sm btn-success" href="../../res/down/'+row.filename+'"><i class="fa fa-fw fa-cloud-download"></i>下载</a>&nbsp;&nbsp;<a class="btn btn-sm btn-danger" href="#" onclick="del(\''+val+'\')">删&nbsp;&nbsp;除</a>'
  166. }else{
  167. return '<a class="btn btn-sm btn-success edit" href="#">编&nbsp;&nbsp;辑</a> &nbsp;&nbsp;<a class="btn btn-sm btn-danger" href="#" onclick="del(\''+val+'\')">删&nbsp;&nbsp;除</a>'
  168. }
  169. }}
  170. ]
  171. });
  172. ttable.on('init.dt', function () {
  173. $("#dataTable").on('click','a.edit',function(){
  174. $("#v1 option:first").attr("selected",true).siblings("option").attr("selected",false);
  175. $("#v2 option:first").attr("selected",true).siblings("option").attr("selected",false);
  176. var obj=ttable.row($(this).closest("tr")).data();
  177. $.setForm('#dataform',obj);
  178. $.ajax({
  179. url:"/admin/getfields",
  180. type:"post",
  181. success:function(r){
  182. if(r.data){
  183. $("#select1").empty();
  184. $("#select2").empty();
  185. for(var i in r.data){
  186. if(i==0){
  187. continue;
  188. }
  189. f=r.data[i]
  190. var right=false
  191. for(var k in obj["fields"]){
  192. if (f._id==obj["fields"][k]){
  193. right=true
  194. }
  195. }
  196. if (right){
  197. $("#select2").append("<option title='"+f.s_name+"' value='"+f._id+"'>"+f.s_name+"</option>");
  198. }else{
  199. $("#select1").append("<option title='"+f.s_name+"' value='"+f._id+"'>"+f.s_name+"</option>");
  200. }
  201. }
  202. }
  203. }
  204. })
  205. $("#v1").find("option[value='"+obj["v1id"]+"']").attr("selected",true);
  206. $("#v2").find("option[value='"+obj["v2id"]+"']").attr("selected",true);
  207. if(obj["state"]!=0){
  208. $(".save").attr({"disabled":"disabled"});
  209. }
  210. $("input[name='_id']").val(obj["_id"]);
  211. $("#modal-info-export").modal("show");
  212. })
  213. })
  214. })
  215. function del(_id){
  216. showConfirm("确定删除?", function() {
  217. $.ajax({
  218. url:"/admin/task/export/del",
  219. type:"post",
  220. data:{"_id":_id},
  221. success:function(r){
  222. if(r.rep){
  223. ttable.ajax.reload();
  224. }else{
  225. showTip("删除失败", 1000, function() {});
  226. }
  227. }
  228. })
  229. });
  230. }
  231. function editorexport(){
  232. $("#v1 option:first").attr("selected",true).siblings("option").attr("selected",false);
  233. $("#v2 option:first").attr("selected",true).siblings("option").attr("selected",false);
  234. $(".save").removeAttr("disabled");
  235. $.ajax({
  236. url:"/admin/getfields",
  237. type:"post",
  238. success:function(r){
  239. if(r.data){
  240. $("#select1").empty();
  241. $("#select2").empty();
  242. for(var i in r.data){
  243. if(i==0){
  244. continue;
  245. }
  246. f=r.data[i]
  247. $("#select1").append("<option title='"+f.s_name+"' value='"+f._id+"'>"+f.s_name+"</option>");
  248. }
  249. $("#modal-info-export").modal("show");
  250. }
  251. }
  252. })
  253. }
  254. function save(){
  255. var name=$("input[name='name']").val();
  256. if(name==""){
  257. showTip("请输入任务名称", 1000, function() {});
  258. return false;
  259. }
  260. var v1=$("#v1").find("option:selected").val();
  261. var v1name=$("#v1").find("option:selected").text();
  262. var v2=$("#v2").find("option:selected").val();
  263. var v2name=$("#v2").find("option:selected").text();
  264. if(v1==v2||v1==""||v2==""){
  265. showTip("请输入正确的版本", 1000, function() {});
  266. return false;
  267. }
  268. var dbaddr=$("input[name='dbaddr']").val();
  269. var dbname=$("input[name='dbname']").val();
  270. if(dbaddr==""||dbname==""){
  271. showTip("请输入数据库信息", 1000, function() {});
  272. return false;
  273. }
  274. var fields = {};
  275. $("#select2 option").each(function(i,val){
  276. fields[i]=this.value
  277. })
  278. if(fields.length<1){
  279. showTip("请输入导出属性", 1000, function() {});
  280. return false;
  281. }
  282. var query=$("input[name='query']").val();
  283. var table=$("input[name='table']").val();
  284. var limit=$("input[name='limit']").val();
  285. var _id=$("input[name='_id']").val();
  286. $.ajax({
  287. url:"/admin/task/export/save",
  288. type:"post",
  289. data:{"_id":_id,"name":name,"v1":v1,"v1name":v1name,"v2":v2,"v2name":v2name,"dbaddr":dbaddr,"dbname":dbname,"fields":fields,"query":query,"table":table,"limit":limit},
  290. success:function(r){
  291. if(r){
  292. showTip("任务已创建", 500, function() {});
  293. window.location.href="/admin/task/export"
  294. }else{
  295. showTip("任务创建失败!", 1000, function() {});
  296. }
  297. }
  298. })
  299. }
  300. </script>