Commit 3927835c5c0f0e4a2e07fba5b0ddcba09f77632f
Merge branch 'minhang' of
http://222.66.0.204:8090/panzhaov5/bsth_control into minhang
Showing
6 changed files
with
268 additions
and
133 deletions
src/main/resources/static/pages/scheduleApp/Gruntfile.js
| ... | ... | @@ -87,6 +87,7 @@ module.exports = function (grunt) { |
| 87 | 87 | 'module/common/dts2/employeeGroup/saEmployeegroup.js', // 人员选饿整合指令 |
| 88 | 88 | 'module/common/dts2/bcGroup/saBcgroup.js', // 班次选择整合指令 |
| 89 | 89 | 'module/common/dts2/ttinfotable/saTimeTable.js', // 时刻表显示指令 |
| 90 | + 'module/common/dts2/ttinfotable/saTimeTableScrolly1.js', // 时刻表滚动1显示指令 | |
| 90 | 91 | 'module/common/dts2/scheduleplan/saScpdate.js', // saScpdate指令(非通用指令,只在排版计划form中使用) |
| 91 | 92 | 'module/common/dts2/scheduleplan/saPlaninfoedit.js', // saPlaninfoedit指令(非通用指令,只在调度执勤日报中使用) |
| 92 | 93 | 'module/common/dts2/scheduleplan/saPlaninfoedit2.js' // saPlaninfoedit2指令(非通用指令,只在调度执勤日报中使用) | ... | ... |
src/main/resources/static/pages/scheduleApp/module/common/dts2/ttinfotable/saTimeTable.js
| ... | ... | @@ -206,7 +206,8 @@ angular.module('ScheduleApp').directive( |
| 206 | 206 | [ |
| 207 | 207 | '$compile', |
| 208 | 208 | '$window', |
| 209 | - function($compile, $window) { | |
| 209 | + '$timeout', | |
| 210 | + function($compile, $window, $timeout) { | |
| 210 | 211 | return { |
| 211 | 212 | restrict: 'E', |
| 212 | 213 | templateUrl: '/pages/scheduleApp/module/common/dts2/ttinfotable/saTimeTableTemplate.html', |
| ... | ... | @@ -254,6 +255,14 @@ angular.module('ScheduleApp').directive( |
| 254 | 255 | |
| 255 | 256 | // TODO: |
| 256 | 257 | |
| 258 | + // 监听滚动条事件 | |
| 259 | + //console.log(tElem.find('.tt_table').html()); | |
| 260 | + //tElem.on('scroll', '.tt_table', function() { | |
| 261 | + // // 因为在dom事件里修改了model的值,必须写在scope.$apply中,否则页面上绑定效果无 | |
| 262 | + // // 另一种做法可以写在$watch方法中 | |
| 263 | + // console.log("ssssssssssss......"); | |
| 264 | + //}); | |
| 265 | + | |
| 257 | 266 | return { |
| 258 | 267 | pre: function(scope, element, attr) { |
| 259 | 268 | // TODO: |
| ... | ... | @@ -317,7 +326,12 @@ angular.module('ScheduleApp').directive( |
| 317 | 326 | } |
| 318 | 327 | }, |
| 319 | 328 | true |
| 320 | - ) | |
| 329 | + ); | |
| 330 | + | |
| 331 | + // 5、全部载入后,输入的 | |
| 332 | + $timeout(function() { | |
| 333 | + console.log("宽度宽度:" + element.find(".tt_table_head").width()); | |
| 334 | + }, 0); | |
| 321 | 335 | } |
| 322 | 336 | }; |
| 323 | 337 | } | ... | ... |
src/main/resources/static/pages/scheduleApp/module/common/dts2/ttinfotable/saTimeTableScrolly1.js
0 → 100644
| 1 | +/** | |
| 2 | + * 滚动事件控制指令。 | |
| 3 | + */ | |
| 4 | +angular.module('ScheduleApp').directive( | |
| 5 | + 'saTscrolly1', | |
| 6 | + [ | |
| 7 | + function() { | |
| 8 | + return { | |
| 9 | + restrict: 'A', | |
| 10 | + | |
| 11 | + compile: function(tElem, tAttrs) { | |
| 12 | + | |
| 13 | + return { | |
| 14 | + pre: function(scope, element, attr) { | |
| 15 | + // TODO: | |
| 16 | + //alert(element.find("#tooltipTest").html()); | |
| 17 | + //$compile(element.find("#tooltipTest"))(scope); | |
| 18 | + | |
| 19 | + }, | |
| 20 | + | |
| 21 | + post: function(scope, element, attr) { | |
| 22 | + //var head = element[0]; | |
| 23 | + | |
| 24 | + //console.log("llllllllload"); | |
| 25 | + //console.log(element.name); | |
| 26 | + | |
| 27 | + element.bind('scroll', function() { | |
| 28 | + //console.log("top=", angular.element(".tt_table_head").css("top")); | |
| 29 | + //console.log("left=", angular.element(".tt_table_head").css("left")); | |
| 30 | + //console.log("s top=" + element.scrollTop()); | |
| 31 | + | |
| 32 | + angular.element(".tt_table_head").css("top", element.scrollTop()); | |
| 33 | + angular.element(".tt_table_body:eq(0)").css("left", element.scrollLeft()); | |
| 34 | + | |
| 35 | + }); | |
| 36 | + } | |
| 37 | + | |
| 38 | + }; | |
| 39 | + } | |
| 40 | + } | |
| 41 | + } | |
| 42 | + ] | |
| 43 | +); | |
| 0 | 44 | \ No newline at end of file | ... | ... |
src/main/resources/static/pages/scheduleApp/module/common/dts2/ttinfotable/saTimeTableTemplate.html
| 1 | 1 | <style> |
| 2 | 2 | .ttInfo_detail { |
| 3 | 3 | height: 100%; |
| 4 | - overflow: hidden; | |
| 4 | + /*overflow: hidden;*/ | |
| 5 | 5 | } |
| 6 | 6 | .ttInfo_detail .container-fluid { |
| 7 | 7 | height: 100%; |
| ... | ... | @@ -13,7 +13,7 @@ |
| 13 | 13 | .ttInfo_detail .container-fluid.top-container { |
| 14 | 14 | margin-top: 5px; |
| 15 | 15 | padding: 0; |
| 16 | - overflow: hidden; | |
| 16 | + /*overflow: hidden;*/ | |
| 17 | 17 | } |
| 18 | 18 | .ttInfo_detail .detail-wrap { |
| 19 | 19 | height: calc(100% - 1px); |
| ... | ... | @@ -134,9 +134,10 @@ |
| 134 | 134 | top: 0; |
| 135 | 135 | height: 30px; |
| 136 | 136 | background: #f5f5f5; |
| 137 | - width: 100%; | |
| 137 | + /*width: 100%;*/ | |
| 138 | 138 | line-height: 30px; |
| 139 | 139 | z-index: 1; |
| 140 | + | |
| 140 | 141 | } |
| 141 | 142 | |
| 142 | 143 | .tt_table>.tt_table_head dl { |
| ... | ... | @@ -149,13 +150,16 @@ |
| 149 | 150 | } |
| 150 | 151 | |
| 151 | 152 | .tt_table>.tt_table_body { |
| 152 | - width: 100%; | |
| 153 | + /*width: 100%;*/ | |
| 154 | + | |
| 155 | + position: absolute; | |
| 156 | + | |
| 153 | 157 | border-bottom: 1px solid #dedede; |
| 154 | 158 | } |
| 155 | 159 | |
| 156 | 160 | .tt_table dl { |
| 157 | 161 | display: block; |
| 158 | - width: 100%; | |
| 162 | + /*width: 100%;*/ | |
| 159 | 163 | margin: 0; |
| 160 | 164 | /*border-bottom: 1px solid;*/ |
| 161 | 165 | height: 30px; |
| ... | ... | @@ -184,7 +188,7 @@ |
| 184 | 188 | } |
| 185 | 189 | |
| 186 | 190 | .tt_table>.tt_table_head { |
| 187 | - border-bottom: 1px solid #dedede; | |
| 191 | + border-bottom: 2px solid #8e44ad; | |
| 188 | 192 | } |
| 189 | 193 | |
| 190 | 194 | .tt_table dl { |
| ... | ... | @@ -240,8 +244,8 @@ |
| 240 | 244 | |
| 241 | 245 | <style> |
| 242 | 246 | .table_scrollbar::-webkit-scrollbar { |
| 243 | - width: 15px; | |
| 244 | - height: 16px; | |
| 247 | + width: 18px; | |
| 248 | + height: 18px; | |
| 245 | 249 | } |
| 246 | 250 | |
| 247 | 251 | .table_scrollbar::-webkit-scrollbar-track, ::-webkit-scrollbar-thumb { |
| ... | ... | @@ -299,9 +303,9 @@ |
| 299 | 303 | </h3> |
| 300 | 304 | |
| 301 | 305 | <div class="detail-body"> |
| 302 | - <div class="tt_table_wrap table_scrollbar"> | |
| 306 | + <div class="tt_table_wrap table_scrollbar" sa-tscrolly1> | |
| 303 | 307 | <div class="tt_table"> |
| 304 | - <div class="tt_table_head" style="top: 0;"> | |
| 308 | + <div class="tt_table_head" style="z-index: 110; top: 0;"> | |
| 305 | 309 | <dl> |
| 306 | 310 | <dt> |
| 307 | 311 | 序号 |
| ... | ... | @@ -311,10 +315,27 @@ |
| 311 | 315 | </dt> |
| 312 | 316 | </dl> |
| 313 | 317 | </div> |
| 318 | + | |
| 319 | + <div class="tt_table_body" style="z-index: 100; background: white;"> | |
| 320 | + <dl ng-repeat="info in $saTimeTableCtrl.ds.detailInfos track by $index" | |
| 321 | + ng-init="rowIndex = $index"> | |
| 322 | + <dd style="width: 50px;"> | |
| 323 | + {{rowIndex + 1}} | |
| 324 | + </dd> | |
| 325 | + <dd ng-repeat="cell in info track by $index" | |
| 326 | + ng-init="colIndex = $index" | |
| 327 | + ng-click="$saTimeTableCtrl.$$cell_click(rowIndex, colIndex, cell)" | |
| 328 | + ng-dblclick="$saTimeTableCtrl.$$cell_dbclick(rowIndex, colIndex, cell)" | |
| 329 | + ng-if="$index == 0" style="width: 55px; border-right: 2px solid #8e44ad;"> | |
| 330 | + {{cell.fcsj}} | |
| 331 | + </dd> | |
| 332 | + | |
| 333 | + </dl> | |
| 334 | + </div> | |
| 335 | + | |
| 314 | 336 | <div class="tt_table_body"> |
| 315 | 337 | <dl ng-repeat="info in $saTimeTableCtrl.ds.detailInfos track by $index" |
| 316 | - ng-init="rowIndex = $index" | |
| 317 | - > | |
| 338 | + ng-init="rowIndex = $index"> | |
| 318 | 339 | <dd> |
| 319 | 340 | {{rowIndex + 1}} |
| 320 | 341 | </dd> |
| ... | ... | @@ -328,8 +349,7 @@ |
| 328 | 349 | active: cell.sel, |
| 329 | 350 | region: cell.bc_type == 'region', |
| 330 | 351 | isfb: cell.isfb |
| 331 | - }" | |
| 332 | - > | |
| 352 | + }"> | |
| 333 | 353 | {{cell.fcsj}} |
| 334 | 354 | </dd> |
| 335 | 355 | ... | ... |
src/main/resources/static/pages/scheduleApp/module/common/prj-common-directive.js
| ... | ... | @@ -316,120 +316,120 @@ angular.module('ScheduleApp').directive( |
| 316 | 316 | } |
| 317 | 317 | ] |
| 318 | 318 | ); |
| 319 | -/** | |
| 320 | - * remoteWarn指令:远程验证警告,作为属性放在某个指令上。 | |
| 321 | - * TODO:暂时没法整合到form上,类似$error这样 | |
| 322 | - * 属性如下: | |
| 323 | - * remotewtype(必须):验证类型(在service中有对应映射),如rvtype="xl" | |
| 324 | - * remotewparam(必须):后端判定查询参数,如rvparam={{ {'xl.id_eq': '123'} | json }} | |
| 325 | - * remotewmsgprop(必须):警告信息属性名 | |
| 326 | - */ | |
| 327 | -angular.module('ScheduleApp').directive('remoteWarn', [ | |
| 328 | - '$$SearchInfoService_g', | |
| 329 | - function($$SearchInfoService_g) { | |
| 330 | - return { | |
| 331 | - restrict: "A", // 属性 | |
| 332 | - required: "^ngModel", // 依赖所属指令的ngModel | |
| 333 | - compile: function(tElem, tAttrs) { | |
| 334 | - // 验证属性 | |
| 335 | - if (!tAttrs["remotewtype"]) { // 验证类型 | |
| 336 | - throw {msg : "remotewtype属性必须填写"}; | |
| 337 | - } | |
| 338 | - if (!$$SearchInfoService_g.validate[tAttrs["remotewtype"]]) { | |
| 339 | - throw {msg : tAttrs["remotevtype"] + "验证类型不存在"}; | |
| 340 | - } | |
| 341 | - if (!tAttrs["remotewparam"]) { // 查询参数 | |
| 342 | - throw {msg : "remotevparam属性必须填写"}; | |
| 343 | - } | |
| 344 | - if (!tAttrs["remotewmsgprop"]) { // 警告信息属性名 | |
| 345 | - throw {msg : "remotewmsgprop属性必须填写"} | |
| 346 | - } | |
| 347 | - | |
| 348 | - // 监听获取的数据 | |
| 349 | - var $watch_rvtype = undefined; | |
| 350 | - var $watch_rvparam_obj = undefined; | |
| 351 | - var $remotewmsgprop = undefined; | |
| 352 | - | |
| 353 | - // 验证数据 | |
| 354 | - var $$internal_validate = function(ngModelCtrl, scope) { | |
| 355 | - if ($watch_rvtype && $watch_rvparam_obj && $remotewmsgprop) { | |
| 356 | - // 获取查询参数模版 | |
| 357 | - var paramTemplate = $$SearchInfoService_g.validate[$watch_rvtype].template; | |
| 358 | - if (!paramTemplate) { | |
| 359 | - throw {msg : $watch_rvtype + "查询模版不存在"}; | |
| 360 | - } | |
| 361 | - | |
| 362 | - // 判定如果参数对象不全,没有完全和模版参数里对应上,则不验证 | |
| 363 | - var isParamAll = true; | |
| 364 | - for (var key in paramTemplate) { | |
| 365 | - if (key != "id" && !$watch_rvparam_obj[key]) { // id去掉 | |
| 366 | - isParamAll = false; | |
| 367 | - break; | |
| 368 | - } | |
| 369 | - } | |
| 370 | - | |
| 371 | - if (!isParamAll) { | |
| 372 | - scope["ctrl"][$remotewmsgprop] = undefined; | |
| 373 | - } else { // 开始验证警告 | |
| 374 | - $$SearchInfoService_g.validate[$watch_rvtype].remote.do( | |
| 375 | - $watch_rvparam_obj, | |
| 376 | - function(result) { | |
| 377 | - if (result.status == "SUCCESS") { | |
| 378 | - scope["ctrl"][$remotewmsgprop] = undefined; | |
| 379 | - } else { | |
| 380 | - scope["ctrl"][$remotewmsgprop] = result.msg; | |
| 381 | - } | |
| 382 | - }, | |
| 383 | - function(result) { | |
| 384 | - scope["ctrl"][$remotewmsgprop] = undefined; | |
| 385 | - } | |
| 386 | - ); | |
| 387 | - } | |
| 388 | - } | |
| 389 | - | |
| 390 | - }; | |
| 391 | - | |
| 392 | - return { | |
| 393 | - pre: function(scope, element, attr) { | |
| 394 | - | |
| 395 | - }, | |
| 396 | - | |
| 397 | - post: function(scope, element, attr, ngModelCtrl) { | |
| 398 | - /** | |
| 399 | - * 监控验证类型属性变化。 | |
| 400 | - */ | |
| 401 | - attr.$observe("remotewtype", function(value) { | |
| 402 | - if (value && value != "") { | |
| 403 | - $watch_rvtype = value; | |
| 404 | - $$internal_validate(ngModelCtrl, scope); | |
| 405 | - } | |
| 406 | - }); | |
| 407 | - | |
| 408 | - /** | |
| 409 | - * 监控查询结果属性变化。 | |
| 410 | - */ | |
| 411 | - attr.$observe("remotewparam", function(value) { | |
| 412 | - if (value && value != "") { | |
| 413 | - $watch_rvparam_obj = JSON.parse(value); | |
| 414 | - $$internal_validate(ngModelCtrl, scope); | |
| 415 | - } | |
| 416 | - }); | |
| 417 | - | |
| 418 | - /** | |
| 419 | - * 监控警告信息属性名变化。 | |
| 420 | - */ | |
| 421 | - attr.$observe("remotewmsgprop", function(value) { | |
| 422 | - if (value && value != "") { | |
| 423 | - $remotewmsgprop = value; | |
| 424 | - $$internal_validate(ngModelCtrl, scope); | |
| 425 | - } | |
| 426 | - }); | |
| 427 | - | |
| 428 | - } | |
| 429 | - }; | |
| 430 | - } | |
| 431 | - }; | |
| 432 | - } | |
| 319 | +/** | |
| 320 | + * remoteWarn指令:远程验证警告,作为属性放在某个指令上。 | |
| 321 | + * TODO:暂时没法整合到form上,类似$error这样 | |
| 322 | + * 属性如下: | |
| 323 | + * remotewtype(必须):验证类型(在service中有对应映射),如rvtype="xl" | |
| 324 | + * remotewparam(必须):后端判定查询参数,如rvparam={{ {'xl.id_eq': '123'} | json }} | |
| 325 | + * remotewmsgprop(必须):警告信息属性名 | |
| 326 | + */ | |
| 327 | +angular.module('ScheduleApp').directive('remoteWarn', [ | |
| 328 | + '$$SearchInfoService_g', | |
| 329 | + function($$SearchInfoService_g) { | |
| 330 | + return { | |
| 331 | + restrict: "A", // 属性 | |
| 332 | + required: "^ngModel", // 依赖所属指令的ngModel | |
| 333 | + compile: function(tElem, tAttrs) { | |
| 334 | + // 验证属性 | |
| 335 | + if (!tAttrs["remotewtype"]) { // 验证类型 | |
| 336 | + throw {msg : "remotewtype属性必须填写"}; | |
| 337 | + } | |
| 338 | + if (!$$SearchInfoService_g.validate[tAttrs["remotewtype"]]) { | |
| 339 | + throw {msg : tAttrs["remotevtype"] + "验证类型不存在"}; | |
| 340 | + } | |
| 341 | + if (!tAttrs["remotewparam"]) { // 查询参数 | |
| 342 | + throw {msg : "remotevparam属性必须填写"}; | |
| 343 | + } | |
| 344 | + if (!tAttrs["remotewmsgprop"]) { // 警告信息属性名 | |
| 345 | + throw {msg : "remotewmsgprop属性必须填写"} | |
| 346 | + } | |
| 347 | + | |
| 348 | + // 监听获取的数据 | |
| 349 | + var $watch_rvtype = undefined; | |
| 350 | + var $watch_rvparam_obj = undefined; | |
| 351 | + var $remotewmsgprop = undefined; | |
| 352 | + | |
| 353 | + // 验证数据 | |
| 354 | + var $$internal_validate = function(ngModelCtrl, scope) { | |
| 355 | + if ($watch_rvtype && $watch_rvparam_obj && $remotewmsgprop) { | |
| 356 | + // 获取查询参数模版 | |
| 357 | + var paramTemplate = $$SearchInfoService_g.validate[$watch_rvtype].template; | |
| 358 | + if (!paramTemplate) { | |
| 359 | + throw {msg : $watch_rvtype + "查询模版不存在"}; | |
| 360 | + } | |
| 361 | + | |
| 362 | + // 判定如果参数对象不全,没有完全和模版参数里对应上,则不验证 | |
| 363 | + var isParamAll = true; | |
| 364 | + for (var key in paramTemplate) { | |
| 365 | + if (key != "id" && !$watch_rvparam_obj[key]) { // id去掉 | |
| 366 | + isParamAll = false; | |
| 367 | + break; | |
| 368 | + } | |
| 369 | + } | |
| 370 | + | |
| 371 | + if (!isParamAll) { | |
| 372 | + scope["ctrl"][$remotewmsgprop] = undefined; | |
| 373 | + } else { // 开始验证警告 | |
| 374 | + $$SearchInfoService_g.validate[$watch_rvtype].remote.do( | |
| 375 | + $watch_rvparam_obj, | |
| 376 | + function(result) { | |
| 377 | + if (result.status == "SUCCESS") { | |
| 378 | + scope["ctrl"][$remotewmsgprop] = undefined; | |
| 379 | + } else { | |
| 380 | + scope["ctrl"][$remotewmsgprop] = result.msg; | |
| 381 | + } | |
| 382 | + }, | |
| 383 | + function(result) { | |
| 384 | + scope["ctrl"][$remotewmsgprop] = undefined; | |
| 385 | + } | |
| 386 | + ); | |
| 387 | + } | |
| 388 | + } | |
| 389 | + | |
| 390 | + }; | |
| 391 | + | |
| 392 | + return { | |
| 393 | + pre: function(scope, element, attr) { | |
| 394 | + | |
| 395 | + }, | |
| 396 | + | |
| 397 | + post: function(scope, element, attr, ngModelCtrl) { | |
| 398 | + /** | |
| 399 | + * 监控验证类型属性变化。 | |
| 400 | + */ | |
| 401 | + attr.$observe("remotewtype", function(value) { | |
| 402 | + if (value && value != "") { | |
| 403 | + $watch_rvtype = value; | |
| 404 | + $$internal_validate(ngModelCtrl, scope); | |
| 405 | + } | |
| 406 | + }); | |
| 407 | + | |
| 408 | + /** | |
| 409 | + * 监控查询结果属性变化。 | |
| 410 | + */ | |
| 411 | + attr.$observe("remotewparam", function(value) { | |
| 412 | + if (value && value != "") { | |
| 413 | + $watch_rvparam_obj = JSON.parse(value); | |
| 414 | + $$internal_validate(ngModelCtrl, scope); | |
| 415 | + } | |
| 416 | + }); | |
| 417 | + | |
| 418 | + /** | |
| 419 | + * 监控警告信息属性名变化。 | |
| 420 | + */ | |
| 421 | + attr.$observe("remotewmsgprop", function(value) { | |
| 422 | + if (value && value != "") { | |
| 423 | + $remotewmsgprop = value; | |
| 424 | + $$internal_validate(ngModelCtrl, scope); | |
| 425 | + } | |
| 426 | + }); | |
| 427 | + | |
| 428 | + } | |
| 429 | + }; | |
| 430 | + } | |
| 431 | + }; | |
| 432 | + } | |
| 433 | 433 | ]); |
| 434 | 434 | |
| 435 | 435 | angular.module('ScheduleApp').directive("saSelect", ['$timeout', function($timeout) { |
| ... | ... | @@ -4101,7 +4101,8 @@ angular.module('ScheduleApp').directive( |
| 4101 | 4101 | [ |
| 4102 | 4102 | '$compile', |
| 4103 | 4103 | '$window', |
| 4104 | - function($compile, $window) { | |
| 4104 | + '$timeout', | |
| 4105 | + function($compile, $window, $timeout) { | |
| 4105 | 4106 | return { |
| 4106 | 4107 | restrict: 'E', |
| 4107 | 4108 | templateUrl: '/pages/scheduleApp/module/common/dts2/ttinfotable/saTimeTableTemplate.html', |
| ... | ... | @@ -4149,6 +4150,14 @@ angular.module('ScheduleApp').directive( |
| 4149 | 4150 | |
| 4150 | 4151 | // TODO: |
| 4151 | 4152 | |
| 4153 | + // 监听滚动条事件 | |
| 4154 | + //console.log(tElem.find('.tt_table').html()); | |
| 4155 | + //tElem.on('scroll', '.tt_table', function() { | |
| 4156 | + // // 因为在dom事件里修改了model的值,必须写在scope.$apply中,否则页面上绑定效果无 | |
| 4157 | + // // 另一种做法可以写在$watch方法中 | |
| 4158 | + // console.log("ssssssssssss......"); | |
| 4159 | + //}); | |
| 4160 | + | |
| 4152 | 4161 | return { |
| 4153 | 4162 | pre: function(scope, element, attr) { |
| 4154 | 4163 | // TODO: |
| ... | ... | @@ -4212,7 +4221,12 @@ angular.module('ScheduleApp').directive( |
| 4212 | 4221 | } |
| 4213 | 4222 | }, |
| 4214 | 4223 | true |
| 4215 | - ) | |
| 4224 | + ); | |
| 4225 | + | |
| 4226 | + // 5、全部载入后,输入的 | |
| 4227 | + $timeout(function() { | |
| 4228 | + console.log("宽度宽度:" + element.find(".tt_table_head").width()); | |
| 4229 | + }, 0); | |
| 4216 | 4230 | } |
| 4217 | 4231 | }; |
| 4218 | 4232 | } |
| ... | ... | @@ -4222,6 +4236,49 @@ angular.module('ScheduleApp').directive( |
| 4222 | 4236 | ] |
| 4223 | 4237 | ); |
| 4224 | 4238 | |
| 4239 | +/** | |
| 4240 | + * 滚动事件控制指令。 | |
| 4241 | + */ | |
| 4242 | +angular.module('ScheduleApp').directive( | |
| 4243 | + 'saTscrolly1', | |
| 4244 | + [ | |
| 4245 | + function() { | |
| 4246 | + return { | |
| 4247 | + restrict: 'A', | |
| 4248 | + | |
| 4249 | + compile: function(tElem, tAttrs) { | |
| 4250 | + | |
| 4251 | + return { | |
| 4252 | + pre: function(scope, element, attr) { | |
| 4253 | + // TODO: | |
| 4254 | + //alert(element.find("#tooltipTest").html()); | |
| 4255 | + //$compile(element.find("#tooltipTest"))(scope); | |
| 4256 | + | |
| 4257 | + }, | |
| 4258 | + | |
| 4259 | + post: function(scope, element, attr) { | |
| 4260 | + //var head = element[0]; | |
| 4261 | + | |
| 4262 | + //console.log("llllllllload"); | |
| 4263 | + //console.log(element.name); | |
| 4264 | + | |
| 4265 | + element.bind('scroll', function() { | |
| 4266 | + //console.log("top=", angular.element(".tt_table_head").css("top")); | |
| 4267 | + //console.log("left=", angular.element(".tt_table_head").css("left")); | |
| 4268 | + //console.log("s top=" + element.scrollTop()); | |
| 4269 | + | |
| 4270 | + angular.element(".tt_table_head").css("top", element.scrollTop()); | |
| 4271 | + angular.element(".tt_table_body:eq(0)").css("left", element.scrollLeft()); | |
| 4272 | + | |
| 4273 | + }); | |
| 4274 | + } | |
| 4275 | + | |
| 4276 | + }; | |
| 4277 | + } | |
| 4278 | + } | |
| 4279 | + } | |
| 4280 | + ] | |
| 4281 | +); | |
| 4225 | 4282 | /** |
| 4226 | 4283 | * saScpdate指令(非通用指令,只在排版计划form中使用)。 |
| 4227 | 4284 | * 属性如下: | ... | ... |
src/main/resources/static/pages/scheduleApp/module/core/schedulePlanManage/report/ext/edit.html
| ... | ... | @@ -150,7 +150,7 @@ |
| 150 | 150 | <div class="col-md-7"> |
| 151 | 151 | <sa-Select5 name="s2" |
| 152 | 152 | model="ctrl.formData" |
| 153 | - cmaps="{'s2.id' : 'id', 's2.jobCode': 'jobCode', 's2.name': 'personnelName'}" | |
| 153 | + cmaps="{'s2.id' : 'id', 's2.jobCode': 'workId', 's2.name': 'name'}" | |
| 154 | 154 | dcname="s2.id" |
| 155 | 155 | icname="id" |
| 156 | 156 | dsparams="{{ {type: 'local', param: 'ry' } | json }}" | ... | ... |