Commit f1ed06d59d49e60de6b9f9c90408b8dd9c4e1a35

Authored by 徐烜
1 parent 9b3eb948

update

src/main/resources/static/pages/scheduleApp/module/basicInfo/busInfoManage/busInfoManage.js
1 1 // 车辆基础信息维护 service controller等写在一起
2 2  
3 3 angular.module('ScheduleApp').factory('BusInfoManageService', ['BusInfoManageService_g', function(service) {
4   - /** 车辆类型常量 */
5   - var carTypes = [
6   - {type: "营运车"},
7   - {type: "包车"},
8   - {type: "学校班车"},
9   - {type: "公司班车"},
10   - {type: "待报废车"},
11   - {type: "备车"}
12   - ];
13   - /** 机动车类型常量 */
14   - var vehicleStates = [
15   - {type: "非机动车"},
16   - {type: "机动一队"},
17   - {type: "机动二队"},
18   - {type: "机动三队"},
19   - {type: "备车"},
20   - {type: "抢修车"}
21   - ];
22   - /** 营运状态类型常量 */
23   - var operatorsStates = [
24   - {type: "营运"},
25   - {type: "停运"},
26   - {type: "挂失"},
27   - {type: "迁出(过户)"},
28   - {type: "迁出(转籍)"},
29   - {type: "报废"},
30   - {type: "歇业"},
31   - {type: "注销"},
32   - {type: "其他"}
33   - ];
34   - /** 设备厂商名字 */
35   - var supplierNames = [
36   - {name: "巴士拓华"},
37   - {name: "博康"}
38   - ];
39   - /** 公司字典 */
40   - var gses = [
41   - {gsdm: "55", gsmc: "上南公司"},
42   - {gsdm: "22", gsmc: "金高公司"},
43   - {gsdm: "05", gsmc: "杨高公司"},
44   - {gsdm: "26", gsmc: "南汇公司"}
45   - ];
46 4  
47 5 /** 当前的查询条件信息 */
48 6 var currentSearchCondition = {
... ... @@ -56,36 +14,6 @@ angular.module('ScheduleApp').factory('BusInfoManageService', ['BusInfoManageSer
56 14 var currentPageNo = 1;
57 15 return {
58 16 /**
59   - * 获取公司字典。
60   - */
61   - getGses: function() {
62   - return gses;
63   - },
64   - /**
65   - * 获取设备厂商名字。
66   - */
67   - getSupplierNames: function() {
68   - return supplierNames;
69   - },
70   - /**
71   - * 获取营运状态类型。
72   - */
73   - getOperatorsStates: function() {
74   - return operatorsStates;
75   - },
76   - /**
77   - * 获取机动车类型。
78   - */
79   - getVehicleStates: function() {
80   - return vehicleStates;
81   - },
82   - /**
83   - * 获取车辆类型。
84   - */
85   - getCarTypes: function() {
86   - return carTypes;
87   - },
88   - /**
89 17 * 获取查询条件信息,
90 18 * 用于给controller用来和页面数据绑定。
91 19 */
... ... @@ -287,63 +215,6 @@ angular.module('ScheduleApp').controller('BusInfoManageFormCtrl', ['BusInfoManag
287 215 // 欲保存的busInfo信息,绑定
288 216 self.busInfoForSave = {};
289 217  
290   - // 车辆类型 selectedItem
291   - self.busInfoForSave.carType_selected = null;
292   - self.carTypes = busInfoManageService.getCarTypes();
293   - self.carType_selected_change = function($item, $model) {
294   - self.busInfoForSave.carType = $item.type;
295   - };
296   - self.carType_selected_remove = function($item, $model) {
297   - self.busInfoForSave.carType_selected = null;
298   - self.busInfoForSave.carType = null;
299   - };
300   -
301   - // 机动车类型 selectedItem
302   - self.busInfoForSave.vehicleStats_selected = null;
303   - self.vehicleStates = busInfoManageService.getVehicleStates();
304   - self.vehicleStats_selected_change = function($item, $model) {
305   - self.busInfoForSave.vehicleStats = $item.type;
306   - };
307   - self.vehicleStats_selected_remove = function($item, $model) {
308   - self.busInfoForSave.vehicleStats_selected = null;
309   - self.busInfoForSave.vehicleStats = null;
310   - };
311   -
312   - // 营运状态类型 selectedItem
313   - self.busInfoForSave.operatorsState_selected = null;
314   - self.operatorsStates = busInfoManageService.getOperatorsStates();
315   - self.operatorsState_selected_change = function($item, $model) {
316   - self.busInfoForSave.operatorsState = $item.type;
317   - };
318   - self.operatorsState_selected_remove = function($item, $model) {
319   - self.busInfoForSave.operatorsState_selected = null;
320   - self.busInfoForSave.operatorsState = null;
321   - };
322   -
323   - // 设备厂商 selectedItem
324   - self.busInfoForSave.supplierName_selected = null;
325   - self.supplierNames = busInfoManageService.getSupplierNames();
326   - self.supplierName_selected_change = function($item, $model) {
327   - self.busInfoForSave.supplierName = $item.name;
328   - };
329   - self.supplierName_selected_remove = function() {
330   - self.busInfoForSave.supplierName_selected = null;
331   - self.busInfoForSave.supplierName = null;
332   - };
333   -
334   - // 公司 selectedItem
335   - self.busInfoForSave.gs_selected = null;
336   - self.gses = busInfoManageService.getGses();
337   - self.gs_selected_change = function($item, $model) {
338   - self.busInfoForSave.businessCode = $item.gsdm;
339   - self.busInfoForSave.company = $item.gsmc;
340   - };
341   - self.gs_selected_remove = function() {
342   - self.busInfoForSave.gs_selected = null;
343   - self.busInfoForSave.businessCode = null;
344   - self.busInfoForSave.company = null;
345   - };
346   -
347 218 // 获取传过来的id,有的话就是修改,获取一遍数据
348 219 var id = $stateParams.id;
349 220 if (id) {
... ... @@ -354,48 +225,6 @@ angular.module('ScheduleApp').controller('BusInfoManageFormCtrl', ['BusInfoManag
354 225 for (key in result) {
355 226 self.busInfoForSave[key] = result[key];
356 227 }
357   - // 填写所有的 select 控件选中框数据
358   - // 公司字典
359   - if (self.busInfoForSave.businessCode) {
360   - angular.forEach(self.gses, function(data) {
361   - if (self.busInfoForSave.businessCode == data.gsdm) {
362   - self.busInfoForSave.gs_selected = data;
363   - }
364   - });
365   - }
366   - // 设备厂商字典
367   - if (self.busInfoForSave.supplierName) {
368   - angular.forEach(self.supplierNames, function(data) {
369   - if (self.busInfoForSave.supplierName == data.name) {
370   - self.busInfoForSave.supplierName_selected = data;
371   - }
372   - });
373   - }
374   - // 车辆类型字典
375   - if (self.busInfoForSave.carType) {
376   - angular.forEach(self.carTypes, function(data) {
377   - if (self.busInfoForSave.carType == data.type) {
378   - self.busInfoForSave.carType_selected = data;
379   - }
380   - });
381   - }
382   - // 机动车类型字典
383   - if (self.busInfoForSave.vehicleStats) {
384   - angular.forEach(self.vehicleStates, function(data) {
385   - if (self.busInfoForSave.vehicleStats == data.type) {
386   - self.busInfoForSave.vehicleStats_selected = data;
387   - }
388   - });
389   - }
390   - // 营运状态类型字典
391   - if (self.busInfoForSave.operatorsState) {
392   - angular.forEach(self.operatorsStates, function(data) {
393   - if (self.busInfoForSave.operatorsState == data.type) {
394   - self.busInfoForSave.operatorsState_selected = data;
395   - }
396   - });
397   - }
398   -
399 228 },
400 229 function(result) {
401 230 alert("出错啦!");
... ...
src/main/resources/static/pages/scheduleApp/module/basicInfo/busInfoManage/detail.html
... ... @@ -247,7 +247,7 @@
247 247 <label class="col-md-2 control-label">车辆类型:</label>
248 248 <div class="col-md-3">
249 249 <input type="text" class="form-control"
250   - name="carType" ng-model="ctrl.busInfoForDetail.carType" readonly/>
  250 + name="carType" ng-value="ctrl.busInfoForDetail.carType | dict:'carType':'未知'" readonly/>
251 251 </div>
252 252 </div>
253 253  
... ... @@ -255,7 +255,7 @@
255 255 <label class="col-md-2 control-label">是否机动车:</label>
256 256 <div class="col-md-3">
257 257 <input type="text" class="form-control"
258   - name="vehicleStats" ng-model="ctrl.busInfoForDetail.vehicleStats" readonly/>
  258 + name="vehicleStats" ng-value="ctrl.busInfoForDetail.vehicleStats | dict:'jdcType':'未知'" readonly/>
259 259 </div>
260 260 </div>
261 261  
... ... @@ -263,7 +263,7 @@
263 263 <label class="col-md-2 control-label">营运状态:</label>
264 264 <div class="col-md-3">
265 265 <input type="text" class="form-control"
266   - name="operatorsState" ng-model="ctrl.busInfoForDetail.operatorsState" readonly/>
  266 + name="operatorsState" ng-value="ctrl.busInfoForDetail.operatorsState | dict:'yyztType':'未知'" readonly/>
267 267 </div>
268 268 </div>
269 269  
... ...
src/main/resources/static/pages/scheduleApp/module/basicInfo/busInfoManage/edit.html
... ... @@ -63,21 +63,14 @@
63 63 <div class="form-group has-success has-feedback">
64 64 <label class="col-md-2 control-label">所属公司*:</label>
65 65 <div class="col-md-3">
66   - <div class="input-group">
67   - <ui-select ng-model="ctrl.busInfoForSave.gs_selected"
68   - on-select="ctrl.gs_selected_change($item, $model)"
69   - theme="bootstrap" name="gs" required>
70   - <ui-select-match placeholder="请选择所属公司...">{{$select.selected.gsmc}}</ui-select-match>
71   - <ui-select-choices repeat="item in ctrl.gses">
72   - <span ng-bind="item.gsmc"></span>
73   - </ui-select-choices>
74   - </ui-select>
75   - <span class="input-group-btn">
76   - <button type="button" ng-click="ctrl.gs_selected_remove()" class="btn btn-default">
77   - <span class="glyphicon glyphicon-trash"></span>
78   - </button>
79   - </span>
80   - </div>
  66 + <sa-Select model="ctrl.busInfoForSave"
  67 + dicgroup="gsType"
  68 + placeholder="请选择所属公司..."
  69 + name="gs"
  70 + codename="businessCode"
  71 + dicname="company"
  72 + required="true">
  73 + </sa-Select>
81 74 </div>
82 75 <!-- 隐藏块,显示验证信息 -->
83 76 <div class="alert alert-danger well-sm" ng-show="myForm.gs.$error.required">
... ... @@ -128,30 +121,13 @@
128 121 <div class="form-group has-success has-feedback">
129 122 <label class="col-md-2 control-label">设备供应厂商*:</label>
130 123 <div class="col-md-3">
131   - <!--<div class="input-group">-->
132   - <!--<ui-select ng-model="ctrl.busInfoForSave.supplierName_selected"-->
133   - <!--on-select="ctrl.supplierName_selected_change($item, $model)"-->
134   - <!--theme="bootstrap" name="supplierName" required>-->
135   - <!--<ui-select-match placeholder="请选择设备厂商...">{{$select.selected.name}}</ui-select-match>-->
136   - <!--<ui-select-choices repeat="item in ctrl.supplierNames">-->
137   - <!--<span ng-bind="item.name"></span>-->
138   - <!--</ui-select-choices>-->
139   - <!--</ui-select>-->
140   -
141   - <sa-Select model="ctrl.busInfoForSave"
142   - dicgroup="snames"
143   - placeholder="请选择设备厂商..."
144   - name="supplierName"
145   - codename="supplierName"
146   - ></sa-Select>
147   -
148   -
149   - <!--<span class="input-group-btn">-->
150   - <!--<button type="button" ng-click="ctrl.supplierName_selected_remove()" class="btn btn-default">-->
151   - <!--<span class="glyphicon glyphicon-trash"></span>-->
152   - <!--</button>-->
153   - <!--</span>-->
154   - <!--</div>-->
  124 + <sa-Select model="ctrl.busInfoForSave"
  125 + dicgroup="snames"
  126 + placeholder="请选择设备厂商..."
  127 + name="supplierName"
  128 + codename="supplierName"
  129 + required="true">
  130 + </sa-Select>
155 131 </div>
156 132 <!-- 隐藏快,显示验证信息 -->
157 133 <div class="alert alert-danger well-sm" ng-show="myForm.supplierName.$error.required">
... ... @@ -361,24 +337,36 @@
361 337 <div class="form-group">
362 338 <label class="col-md-2 control-label">车辆类型:</label>
363 339 <div class="col-md-3">
364   - <input type="text" class="form-control"
365   - name="carType" ng-model="ctrl.busInfoForSave.carType" readonly/>
  340 + <sa-Select model="ctrl.busInfoForSave"
  341 + dicgroup="carType"
  342 + placeholder="请选择车辆类型..."
  343 + name="carType"
  344 + codename="carType" >
  345 + </sa-Select>
366 346 </div>
367 347 </div>
368 348  
369 349 <div class="form-group">
370 350 <label class="col-md-2 control-label">是否机动车:</label>
371 351 <div class="col-md-3">
372   - <input type="text" class="form-control"
373   - name="vehicleStats" ng-model="ctrl.busInfoForSave.vehicleStats" readonly/>
  352 + <sa-Select model="ctrl.busInfoForSave"
  353 + dicgroup="jdcType"
  354 + placeholder="请选择机动车类型..."
  355 + name="vehicleStats"
  356 + codename="vehicleStats" >
  357 + </sa-Select>
374 358 </div>
375 359 </div>
376 360  
377 361 <div class="form-group">
378 362 <label class="col-md-2 control-label">营运状态:</label>
379 363 <div class="col-md-3">
380   - <input type="text" class="form-control"
381   - name="operatorsState" ng-model="ctrl.busInfoForSave.operatorsState" readonly/>
  364 + <sa-Select model="ctrl.busInfoForSave"
  365 + dicgroup="yyztType"
  366 + placeholder="请选择营运状态..."
  367 + name="operatorsState"
  368 + codename="operatorsState" >
  369 + </sa-Select>
382 370 </div>
383 371 </div>
384 372  
... ...
src/main/resources/static/pages/scheduleApp/module/basicInfo/busInfoManage/form.html
... ... @@ -63,21 +63,14 @@
63 63 <div class="form-group has-success has-feedback">
64 64 <label class="col-md-2 control-label">所属公司*:</label>
65 65 <div class="col-md-3">
66   - <div class="input-group">
67   - <ui-select ng-model="ctrl.busInfoForSave.gs_selected"
68   - on-select="ctrl.gs_selected_change($item, $model)"
69   - theme="bootstrap" name="gs" required>
70   - <ui-select-match placeholder="请选择所属公司...">{{$select.selected.gsmc}}</ui-select-match>
71   - <ui-select-choices repeat="item in ctrl.gses">
72   - <span ng-bind="item.gsmc"></span>
73   - </ui-select-choices>
74   - </ui-select>
75   - <span class="input-group-btn">
76   - <button type="button" ng-click="ctrl.gs_selected_remove()" class="btn btn-default">
77   - <span class="glyphicon glyphicon-trash"></span>
78   - </button>
79   - </span>
80   - </div>
  66 + <sa-Select model="ctrl.busInfoForSave"
  67 + dicgroup="gsType"
  68 + placeholder="请选择所属公司..."
  69 + name="gs"
  70 + codename="businessCode"
  71 + dicname="company"
  72 + required="true">
  73 + </sa-Select>
81 74 </div>
82 75 <!-- 隐藏块,显示验证信息 -->
83 76 <div class="alert alert-danger well-sm" ng-show="myForm.gs.$error.required">
... ... @@ -128,21 +121,13 @@
128 121 <div class="form-group has-success has-feedback">
129 122 <label class="col-md-2 control-label">设备供应厂商*:</label>
130 123 <div class="col-md-3">
131   - <div class="input-group">
132   - <ui-select ng-model="ctrl.busInfoForSave.supplierName_selected"
133   - on-select="ctrl.supplierName_selected_change($item, $model)"
134   - theme="bootstrap" name="supplierName" required>
135   - <ui-select-match placeholder="请选择设备厂商...">{{$select.selected.name}}</ui-select-match>
136   - <ui-select-choices repeat="item in ctrl.supplierNames">
137   - <span ng-bind="item.name"></span>
138   - </ui-select-choices>
139   - </ui-select>
140   - <span class="input-group-btn">
141   - <button type="button" ng-click="ctrl.supplierName_selected_remove()" class="btn btn-default">
142   - <span class="glyphicon glyphicon-trash"></span>
143   - </button>
144   - </span>
145   - </div>
  124 + <sa-Select model="ctrl.busInfoForSave"
  125 + dicgroup="snames"
  126 + placeholder="请选择设备厂商..."
  127 + name="supplierName"
  128 + codename="supplierName"
  129 + required="true">
  130 + </sa-Select>
146 131 </div>
147 132 <!-- 隐藏快,显示验证信息 -->
148 133 <div class="alert alert-danger well-sm" ng-show="myForm.supplierName.$error.required">
... ... @@ -324,59 +309,71 @@
324 309 <div class="form-group">
325 310 <label class="col-md-2 control-label">是否空调车:</label>
326 311 <div class="col-md-3">
327   - <sa-Radiogroup model="ctrl.busInfoForSave.hvacCar" disabled="true" dicgroup="truefalseType" name="hvacCar"></sa-Radiogroup>
  312 + <sa-Radiogroup model="ctrl.busInfoForSave.hvacCar" dicgroup="truefalseType" name="hvacCar"></sa-Radiogroup>
328 313 </div>
329 314 </div>
330 315  
331 316 <div class="form-group">
332 317 <label class="col-md-2 control-label">有无人售票:</label>
333 318 <div class="col-md-3">
334   - <sa-Radiogroup model="ctrl.busInfoForSave.ticketType" disabled="true" dicgroup="truefalseType" name="ticketType"></sa-Radiogroup>
  319 + <sa-Radiogroup model="ctrl.busInfoForSave.ticketType" dicgroup="truefalseType" name="ticketType"></sa-Radiogroup>
335 320 </div>
336 321 </div>
337 322  
338 323 <div class="form-group">
339 324 <label class="col-md-2 control-label">是否有LED服务屏:</label>
340 325 <div class="col-md-3">
341   - <sa-Radiogroup model="ctrl.busInfoForSave.ledScreen" disabled="true" dicgroup="truefalseType" name="ledScreen"></sa-Radiogroup>
  326 + <sa-Radiogroup model="ctrl.busInfoForSave.ledScreen" dicgroup="truefalseType" name="ledScreen"></sa-Radiogroup>
342 327 </div>
343 328 </div>
344 329  
345 330 <div class="form-group">
346 331 <label class="col-md-2 control-label">是否有TV视屏:</label>
347 332 <div class="col-md-3">
348   - <sa-Radiogroup model="ctrl.busInfoForSave.tvVideoType" disabled="true" dicgroup="truefalseType" name="tvVideoType"></sa-Radiogroup>
  333 + <sa-Radiogroup model="ctrl.busInfoForSave.tvVideoType" dicgroup="truefalseType" name="tvVideoType"></sa-Radiogroup>
349 334 </div>
350 335 </div>
351 336  
352 337 <div class="form-group">
353 338 <label class="col-md-2 control-label">车辆类型:</label>
354 339 <div class="col-md-3">
355   - <input type="text" class="form-control"
356   - name="carType" ng-model="ctrl.busInfoForSave.carType" readonly/>
  340 + <sa-Select model="ctrl.busInfoForSave"
  341 + dicgroup="carType"
  342 + placeholder="请选择车辆类型..."
  343 + name="carType"
  344 + codename="carType" >
  345 + </sa-Select>
357 346 </div>
358 347 </div>
359 348  
360 349 <div class="form-group">
361 350 <label class="col-md-2 control-label">是否机动车:</label>
362 351 <div class="col-md-3">
363   - <input type="text" class="form-control"
364   - name="vehicleStats" ng-model="ctrl.busInfoForSave.vehicleStats" readonly/>
  352 + <sa-Select model="ctrl.busInfoForSave"
  353 + dicgroup="jdcType"
  354 + placeholder="请选择机动车类型..."
  355 + name="vehicleStats"
  356 + codename="vehicleStats" >
  357 + </sa-Select>
365 358 </div>
366 359 </div>
367 360  
368 361 <div class="form-group">
369 362 <label class="col-md-2 control-label">营运状态:</label>
370 363 <div class="col-md-3">
371   - <input type="text" class="form-control"
372   - name="operatorsState" ng-model="ctrl.busInfoForSave.operatorsState" readonly/>
  364 + <sa-Select model="ctrl.busInfoForSave"
  365 + dicgroup="yyztType"
  366 + placeholder="请选择营运状态..."
  367 + name="operatorsState"
  368 + codename="operatorsState" >
  369 + </sa-Select>
373 370 </div>
374 371 </div>
375 372  
376 373 <div class="form-group">
377 374 <label class="col-md-2 control-label">是否电车:</label>
378 375 <div class="col-md-3">
379   - <sa-Radiogroup model="ctrl.busInfoForSave.sfdc" disabled="true" dicgroup="truefalseType" name="sfdc"></sa-Radiogroup>
  376 + <sa-Radiogroup model="ctrl.busInfoForSave.sfdc" dicgroup="truefalseType" name="sfdc"></sa-Radiogroup>
380 377 </div>
381 378 </div>
382 379  
... ...
src/main/resources/static/pages/scheduleApp/module/main.js
... ... @@ -941,69 +941,101 @@ angular.module(&#39;ScheduleApp&#39;).directive(&quot;saSelect&quot;, [&#39;$timeout&#39;, function($timeo
941 941 var self = this;
942 942 self.datas = []; // 关联的字典数据,内部格式 {code:{值},name:{名字}}
943 943 },
944   -
945 944 /**
946   - * 重要属性如下:
947   - * model 是绑定外部值。
948   - * dicgroup 字典组的类型
949   - * name input name属性值
  945 + * 此阶段可以改dom结构,此时angular还没扫描指令,
  946 + * 这里就可以动态添加其他angularjs的指令字符串,如required指令字符串。
  947 + * @param tElem
  948 + * @param tAttrs
  949 + * @returns {{pre: Function, post: Function}}
950 950 */
951   - link: function(scope, element, attr, ctrl) {
952   - // 1、获取属性
953   - var dicgroup_attr = attr['dicgroup']; // 字典组的类型
954   - var name_attr = attr['name']; // input name属性值
955   - var dicname_attr = attr['dicname']; // model关联的字典名字段
956   - var codename_attr = attr['codename']; // model关联的字典值字段
957   - var placeholder_attr = attr['placeholder']; // select placeholder提示
958   -
959   - // 系统的字典对象,使用dictionaryUtils类获取
960   - var origin_dicgroup;
961   - var dic_key; // 字典key
962   -
963   - if (dicgroup_attr) { // 赋值指定的字典数据
964   - origin_dicgroup = dictionaryUtils.getByGroup(dicgroup_attr);
965   - for (dic_key in origin_dicgroup) {
966   - var data = {}; // 重新组合的字典元素对象
967   - if (dic_key == "true")
968   - data.code = true;
969   - else
970   - data.code = dic_key;
971   - data.name = origin_dicgroup[dic_key];
972   - scope["$saSelectCtrl"].datas.push(data);
  951 + compile: function(tElem, tAttrs) {
  952 + // 确定是否使用angularjs required验证
  953 + // 属性 required
  954 + // 如果没有填写,内部不添加验证,如果填写了,并且等于true添加验证,否则不添加
  955 + var required_attr = tAttrs["required"];
  956 + if (required_attr) {
  957 + if (required_attr == "true") {
  958 + // 添加required属性指令
  959 + tElem.find("ui-select").attr("required", "");
  960 + } else {
  961 + // 不等于true,不添加required属性指令
973 962 }
  963 + } else {
  964 + // 不添加required属性指令
974 965 }
975 966  
976   - if (name_attr) {
977   - scope["$saSelectCtrl"].nv = name_attr;
978   - }
979   - if (placeholder_attr) {
980   - scope["$saSelectCtrl"].ph = placeholder_attr;
981   - }
  967 + //console.log("saSelect" + ":compile = >" + tElem.html());
982 968  
983   - scope["$saSelectCtrl"].select = function($item) {
984   - if (codename_attr) {
985   - scope["$saSelectCtrl"].model[codename_attr] = $item.code;
986   - }
987   - if (dicname_attr) {
988   - scope["$saSelectCtrl"].model[dicname_attr] = $item.name;
989   - }
990   - };
  969 + return {
  970 + pre: function(scope, element, attr) {
  971 + // TODO:
  972 + },
  973 + /**
  974 + * 相当于link函数。
  975 + *
  976 + * 重要属性如下:
  977 + * model 是绑定外部值。
  978 + * dicgroup 字典组的类型
  979 + * name input name属性值
  980 + */
  981 + post: function(scope, element, attr) {
  982 + // 1、获取属性
  983 + var dicgroup_attr = attr['dicgroup']; // 字典组的类型
  984 + var name_attr = attr['name']; // input name属性值
  985 + var dicname_attr = attr['dicname']; // model关联的字典名字段
  986 + var codename_attr = attr['codename']; // model关联的字典值字段
  987 + var placeholder_attr = attr['placeholder']; // select placeholder提示
  988 +
  989 + // 系统的字典对象,使用dictionaryUtils类获取
  990 + var origin_dicgroup;
  991 + var dic_key; // 字典key
  992 +
  993 + if (dicgroup_attr) { // 赋值指定的字典数据
  994 + origin_dicgroup = dictionaryUtils.getByGroup(dicgroup_attr);
  995 + for (dic_key in origin_dicgroup) {
  996 + var data = {}; // 重新组合的字典元素对象
  997 + if (dic_key == "true")
  998 + data.code = true;
  999 + else
  1000 + data.code = dic_key;
  1001 + data.name = origin_dicgroup[dic_key];
  1002 + scope["$saSelectCtrl"].datas.push(data);
  1003 + }
  1004 + }
991 1005  
992   - scope["$saSelectCtrl"].remove = function() {
993   - if (codename_attr) {
994   - scope["$saSelectCtrl"].model[codename_attr] = null;
995   - }
996   - if (dicname_attr) {
997   - scope["$saSelectCtrl"].model[dicname_attr] = null;
  1006 + if (name_attr) {
  1007 + scope["$saSelectCtrl"].nv = name_attr;
  1008 + }
  1009 + if (placeholder_attr) {
  1010 + scope["$saSelectCtrl"].ph = placeholder_attr;
  1011 + }
  1012 +
  1013 + scope["$saSelectCtrl"].select = function($item) {
  1014 + if (codename_attr) {
  1015 + scope["$saSelectCtrl"].model[codename_attr] = $item.code;
  1016 + }
  1017 + if (dicname_attr) {
  1018 + scope["$saSelectCtrl"].model[dicname_attr] = $item.name;
  1019 + }
  1020 + };
  1021 +
  1022 + scope["$saSelectCtrl"].remove = function() {
  1023 + if (codename_attr) {
  1024 + scope["$saSelectCtrl"].model[codename_attr] = null;
  1025 + }
  1026 + if (dicname_attr) {
  1027 + scope["$saSelectCtrl"].model[dicname_attr] = null;
  1028 + }
  1029 + scope["$saSelectCtrl"].cmodel = null;
  1030 + };
  1031 +
  1032 + $timeout(function() {
  1033 + // 创建内部使用的绑定对象
  1034 + var model_code = scope["$saSelectCtrl"].model[codename_attr];
  1035 + scope["$saSelectCtrl"].cmodel = model_code;
  1036 + }, 0);
998 1037 }
999   - scope["$saSelectCtrl"].cmodel = null;
1000   - };
1001   -
1002   - $timeout(function() {
1003   - // 创建内部使用的绑定对象
1004   - var model_code = scope["$saSelectCtrl"].model[codename_attr];
1005   - scope["$saSelectCtrl"].cmodel = model_code;
1006   - }, 0);
  1038 + }
1007 1039 }
1008 1040 };
1009 1041 }]);
... ...