wuxw лет назад: 6
Родитель
Сommit
33c2ad524e

+ 3 - 0
WebService/src/main/resources/components/floorPackage/floor-select2/floorSelect2.js

@@ -27,6 +27,9 @@
            /* $('#'+$props.parentModal).on('show.bs.modal', function () {
                  vc.component._initFloorSelect2();
             })*/
+           vc.on('floorSelect2','setFloor',function (_param) {
+               $(".floorSelector").val(_param.floorId).select2();
+           });
         },
         methods: {
             _initFloorSelect2: function () {

+ 64 - 18
WebService/src/main/resources/components/machinePackage/edit-machine/editMachine.html

@@ -3,7 +3,7 @@
     <div class="modal-dialog modal-lg">
         <div class="modal-content">
             <div class="modal-body">
-                <h3 class="m-t-none m-b ">修改设备</h3>
+                <h3 class="m-t-none m-b ">修改设备门禁</h3>
                 <div class="ibox-content">
                     <div>
                         <div>
@@ -45,32 +45,78 @@
                                 </div>
                             </div>
                             <div class="form-group row">
-                                <label class="col-sm-2 col-form-label">设备IP</label>
+                                <label class="col-sm-2 col-form-label">设备位置</label>
                                 <div class="col-sm-10">
-                                    <input v-model="editMachineInfo.machineIp" type="text" placeholder="选填,请填写设备IP"
-                                           class="form-control">
+                                    <select class="custom-select" v-model="editMachineInfo.locationTypeCd">
+                                        <option selected disabled value="">必填,请选择设备位置</option>
+                                        <option value="1000">东大门</option>
+                                        <option value="1001">西大门</option>
+                                        <option value="1002">北大门</option>
+                                        <option value="1003">南大门</option>
+                                        <option value="2000">单元门</option>
+                                        <option value="3000">房屋门</option>
+                                    </select>
                                 </div>
                             </div>
-                            <div class="form-group row">
-                                <label class="col-sm-2 col-form-label">设备MAC</label>
-                                <div class="col-sm-10">
-                                    <input v-model="editMachineInfo.machineMac" type="text" placeholder="选填,请填写设备MAC"
-                                           class="form-control">
-                                </div>
+                        </div>
+                        <div class="form-group row"
+                             v-show="editMachineInfo.locationTypeCd == '2000' || editMachineInfo.locationTypeCd == '3000'  ">
+                            <label class="col-sm-2 col-form-label">归属楼栋</label>
+                            <div class="col-sm-10">
+                                <vc:create name="floorSelect2"
+                                           parentModal="editMachineModel"
+                                ></vc:create>
                             </div>
-
-                            <div class="ibox-content">
-                                <button class="btn btn-primary float-right" type="button" v-on:click="editMachine()"><i
-                                        class="fa fa-check"></i>&nbsp;保存
-                                </button>
-                                <button type="button" class="btn btn-warning float-right" style="margin-right:20px;"
-                                        data-dismiss="modal">取消
-                                </button>
+                        </div>
+                        <div class="form-group row"
+                             v-show="editMachineInfo.locationTypeCd == '2000' || editMachineInfo.locationTypeCd == '3000'  ">
+                            <label class="col-sm-2 col-form-label">归属单元</label>
+                            <div class="col-sm-10">
+                                <vc:create name="unitSelect2"
+                                           parentModal="editMachineModel"
+                                           callBackListener="editMachine"
+                                           callBackFunction="notify"
+                                ></vc:create>
                             </div>
                         </div>
+                        <div class="form-group row"
+                             v-show="editMachineInfo.locationTypeCd == '3000'  ">
+                            <label class="col-sm-2 col-form-label">归属房屋</label>
+                            <div class="col-sm-10">
+                                <vc:create name="roomSelect2"
+                                           parentModal="editMachineModel"
+                                           callBackListener="editMachine"
+                                           callBackFunction="notify"
+                                ></vc:create>
+                            </div>
+                        </div>
+                        <div class="form-group row">
+                            <label class="col-sm-2 col-form-label">设备IP</label>
+                            <div class="col-sm-10">
+                                <input v-model="editMachineInfo.machineIp" type="text" placeholder="选填,请填写设备IP"
+                                       class="form-control">
+                            </div>
+                        </div>
+                        <div class="form-group row">
+                            <label class="col-sm-2 col-form-label">设备MAC</label>
+                            <div class="col-sm-10">
+                                <input v-model="editMachineInfo.machineMac" type="text" placeholder="选填,请填写设备MAC"
+                                       class="form-control">
+                            </div>
+                        </div>
+
+                        <div class="ibox-content">
+                            <button class="btn btn-primary float-right" type="button" v-on:click="editMachine()"><i
+                                    class="fa fa-check"></i>&nbsp;保存
+                            </button>
+                            <button type="button" class="btn btn-warning float-right" style="margin-right:20px;"
+                                    data-dismiss="modal">取消
+                            </button>
+                        </div>
                     </div>
                 </div>
             </div>
         </div>
     </div>
 </div>
+</div>

+ 92 - 1
WebService/src/main/resources/components/machinePackage/edit-machine/editMachine.js

@@ -11,6 +11,15 @@
                 authCode: '',
                 machineIp: '',
                 machineMac: '',
+                floorId: '',
+                floorNum: '',
+                floorName: '',
+                unitId: '',
+                unitNum: '',
+                roomId: '',
+                locationTypeCd: '',
+                locationObjId: '',
+                roomNum: ''
 
             }
         },
@@ -22,8 +31,54 @@
                 vc.component.refreshEditMachineInfo();
                 $('#editMachineModel').modal('show');
                 vc.copyObject(_params, vc.component.editMachineInfo);
+                //根据位置类型 传输数据
+                if (vc.component.editMachineInfo.locationTypeCd == '2000') {
+                    vc.emit('floorSelect2','setFloor',{
+                        floorId:vc.component.editMachineInfo.floorId,
+                        floorNum:vc.component.editMachineInfo.floorNum
+                    });
+                    vc.emit('unitSelect2','setUnit',{
+                        floorId:vc.component.editMachineInfo.floorId,
+                        floorNum:vc.component.editMachineInfo.floorNum,
+                        unitId:vc.component.editMachineInfo.unitId,
+                        unitNum:vc.component.editMachineInfo.unitNum,
+                    });
+                } else if (vc.component.editMachineInfo.locationTypeCd == '3000') {
+                    vc.emit('floorSelect2','setFloor',{
+                        floorId:vc.component.editMachineInfo.floorId,
+                        floorNum:vc.component.editMachineInfo.floorNum
+                    });
+                    vc.emit('unitSelect2','setUnit',{
+                        floorId:vc.component.editMachineInfo.floorId,
+                        floorNum:vc.component.editMachineInfo.floorNum,
+                        unitId:vc.component.editMachineInfo.unitId,
+                        floorNum:vc.component.editMachineInfo.unitNum,
+                    });
+                    vc.emit('roomSelect2','setRoom',{
+                        floorId:vc.component.editMachineInfo.floorId,
+                        floorNum:vc.component.editMachineInfo.floorNum,
+                        unitId:vc.component.editMachineInfo.unitId,
+                        unitNum:vc.component.editMachineInfo.unitNum,
+                        roomId:vc.component.editMachineInfo.roomId,
+                        roomNum:vc.component.editMachineInfo.roomNum,
+                    });
+                }
                 vc.component.editMachineInfo.communityId = vc.getCurrentCommunity().communityId;
             });
+
+            vc.on("editMachine", "notify", function (_param) {
+                if (_param.hasOwnProperty("floorId")) {
+                    vc.component.editMachineInfo.floorId = _param.floorId;
+                }
+
+                if (_param.hasOwnProperty("unitId")) {
+                    vc.component.editMachineInfo.unitId = _param.unitId;
+                }
+
+                if(_param.hasOwnProperty("roomId")){
+                    vc.component.editMachineInfo.roomId = _param.roomId;
+                }
+            });
         },
         methods: {
             editMachineValidate: function () {
@@ -103,12 +158,39 @@
                                 limit: "required",
                                 param: "",
                                 errInfo: "设备ID不能为空"
-                            }]
+                            }],
+                    'addMachineInfo.locationTypeCd':
+                        [
+                            {
+                                limit: "required",
+                                param: "",
+                                errInfo: "请选择设备位置"
+                            }
+                        ],
+                    'addMachineInfo.locationObjId':
+                        [
+                            {
+                                limit: "required",
+                                param: "",
+                                errInfo: "请选择位置"
+                            }
+                        ]
 
                 })
                     ;
             },
             editMachine: function () {
+                vc.component.editMachineInfo.communityId = vc.getCurrentCommunity().communityId;
+                if (vc.component.editMachineInfo.locationTypeCd != '2000' && vc.component.editMachineInfo.locationTypeCd != '3000') { //大门时直接写 小区ID
+                    vc.component.editMachineInfo.locationObjId = vc.component.editMachineInfo.communityId;
+                } else if (vc.component.editMachineInfo.locationTypeCd == '2000') {
+                    vc.component.editMachineInfo.locationObjId = vc.component.editMachineInfo.unitId;
+                } else if (vc.component.editMachineInfo.locationTypeCd == '3000') {
+                    vc.component.editMachineInfo.locationObjId = vc.component.editMachineInfo.roomId;
+                } else {
+                    vc.toast("设备位置值错误");
+                    return;
+                }
                 if (!vc.component.editMachineValidate()) {
                     vc.message(vc.validate.errInfo);
                     return;
@@ -147,6 +229,15 @@
                     authCode: '',
                     machineIp: '',
                     machineMac: '',
+                    floorId: '',
+                    floorNum: '',
+                    floorName: '',
+                    unitId: '',
+                    unitNum: '',
+                    roomId: '',
+                    locationTypeCd: '',
+                    locationObjId: '',
+                    roomNum: ''
 
                 }
             }

+ 4 - 0
WebService/src/main/resources/components/roomPackage/room-select2/roomSelect2.js

@@ -33,6 +33,10 @@
            vc.on('roomSelect2', "transferRoom",function (_param) {
                 vc.copyObject(_param, vc.component.roomSelect2Info);
            });
+            vc.on('roomSelect2','setRoom',function (_param) {
+                vc.copyObject(_param, vc.component.roomSelect2Info);
+                $(".roomSelector").val(_param.roomId).select2();
+            });
         },
         methods: {
             _initRoomSelect2: function () {

+ 4 - 0
WebService/src/main/resources/components/unitPackage/unit-select2/unitSelect2.js

@@ -34,6 +34,10 @@
            vc.on('unitSelect2', "transferFloor",function (_param) {
                 vc.copyObject(_param, vc.component.unitSelect2Info);
            });
+            vc.on('unitSelect2','setUnit',function (_param) {
+                vc.copyObject(_param, vc.component.unitSelect2Info);
+                $(".unitSelector").val(_param.unitId).select2();
+            });
         },
         methods: {
             _initUnitSelect2: function () {

+ 41 - 1
java110-front/src/main/java/com/java110/front/core/VcCreateProcessor.java

@@ -28,6 +28,7 @@ public class VcCreateProcessor extends AbstractElementTagProcessor {
     private static final String TAG_NAME = "create";
     private static final String NAME = "name";
     private static final int PRECEDENCE = 300;
+    private static final String DEFAULT_NAMESPACE = "default";
 
 
     public VcCreateProcessor(String dialectPrefix) {
@@ -69,8 +70,8 @@ public class VcCreateProcessor extends AbstractElementTagProcessor {
         //js
         String js = VueComponentTemplate.findTemplateByComponentCode(componentName + "." + VueComponentTemplate.COMPONENT_JS);
         if (js != null) {
-
             js = dealJs(js, tag);
+            js = dealNameSpace(js, tag);
             js = dealJsAddComponentCode(js, tag);
             js = "<script type=\"text/javascript\" " + DIV_PROPERTY_COMPONENT + "=\"" + componentName + "\">//<![CDATA[ \n" + js + "//]]>\n</script>";
             htmlModel.add(modelFactory.createText(js));
@@ -189,4 +190,43 @@ public class VcCreateProcessor extends AbstractElementTagProcessor {
 
         return js.replace("@vc_", code);
     }
+
+    /**
+     * 处理namespace
+     *
+     * @param js
+     * @param tag
+     * @return
+     */
+    private String dealNameSpace(String js, IProcessableElementTag tag) {
+        String namespace = "";
+        if (!tag.hasAttribute("namespace")) {
+            namespace = DEFAULT_NAMESPACE;
+        }
+        namespace = tag.getAttributeValue("namespace");
+
+        //js对象中插入namespace 值
+        int extPos = js.indexOf("vc.extends");
+        String tmpProTypes = js.substring(extPos);
+        int pos = tmpProTypes.indexOf("{") + 1;
+        js = js.substring(0, extPos) + tmpProTypes.substring(0, pos).trim()
+                + "\nnamespace:" + namespace.trim() + ",\n" + tmpProTypes.substring(pos, tmpProTypes.length());
+        int position = js.indexOf("{");
+        String propsJs = "\n$namespace='" + namespace.trim() + "';\n";
+        js = new StringBuffer(js).insert(position + 1, propsJs).toString();
+        return js;
+    }
+
+    public static void main(String[] args) {
+        String js = "(function (vc, vm) {vc.extends({a:'123'})})";
+        int extPos = js.indexOf("vc.extends");
+        String tmpProTypes = js.substring(extPos);
+        int pos = tmpProTypes.indexOf("{") + 1;
+        js = js.substring(0, extPos) + tmpProTypes.substring(0, pos).trim() + "\nnamespace:" + DEFAULT_NAMESPACE + ",\n" + tmpProTypes.substring(pos, tmpProTypes.length());
+        int position = js.indexOf("{");
+        String propsJs = "\n$namespace=" + DEFAULT_NAMESPACE + ";\n";
+        js = new StringBuffer(js).insert(position + 1, propsJs).toString();
+
+        System.out.println(js);
+    }
 }

+ 200 - 179
java110-front/src/main/resources/static/js/core.js

@@ -1,108 +1,106 @@
 /**
-初始化处理 vue component
-**/
-(function(window, undefined){
+ 初始化处理 vue component
+ **/
+(function (window, undefined) {
     "use strict";
-   var vc = window.vc || {};
-   var _vmOptions = {};
-   var _initMethod = [];
-   var _initEvent = [];
-   var _component = {};
-   var _destroyedMethod = [];
-   var _timers = [];//定时器
-   var _map = [];// 共享数据存储
-
-   _vmOptions = {
-        el:'#component',
-        data:{
-
-        },
-        watch: {
-
-        },
-        methods:{
-
-        },
-        destroyed:function(){
-            window.vc.destroyedMethod.forEach(function(eventMethod){
-                 eventMethod();
+    var vc = window.vc || {};
+    var _vmOptions = {};
+    var _initMethod = [];
+    var _initEvent = [];
+    var _component = {};
+    var _destroyedMethod = [];
+    var _timers = [];//定时器
+    var _map = [];// 共享数据存储
+    var _namespace = [];
+
+
+    _vmOptions = {
+        el: '#component',
+        data: {},
+        watch: {},
+        methods: {},
+        destroyed: function () {
+            window.vc.destroyedMethod.forEach(function (eventMethod) {
+                eventMethod();
             });
             //清理所有定时器
 
-            window.vc.timers.forEach(function(timer){
+            window.vc.timers.forEach(function (timer) {
                 clearInterval(timer);
             });
 
             _timers = [];
         }
 
-   };
+    };
     vc = {
-        version:"v0.0.1",
-        name:"vue component",
-        author:'java110',
-        vmOptions:_vmOptions,
-        initMethod:_initMethod,
-        initEvent:_initEvent,
-        component:_component,
-        destroyedMethod:_destroyedMethod,
-        debug:false,
-        timers:_timers,
-        _map:{}
+        version: "v0.0.1",
+        name: "vue component",
+        author: 'java110',
+        vmOptions: _vmOptions,
+        namespace: _namespace,
+        initMethod: _initMethod,
+        initEvent: _initEvent,
+        component: _component,
+        destroyedMethod: _destroyedMethod,
+        debug: false,
+        timers: _timers,
+        _map: {}
     };
-   //通知window对象
-   window.vc = vc;
+    //通知window对象
+    window.vc = vc;
 })(window);
 
 /**
-    vc 函数初始化
-    add by wuxw
-**/
-(function(vc){
+ vc 函数初始化
+ add by wuxw
+ **/
+(function (vc) {
+    var DEFAULT_NAMESPACE = "default";
     vc.http = {
-        post:function(componentCode,componentMethod,param,options,successCallback,errorCallback){
-                vc.loading('open');
-                Vue.http.post('/callComponent/'+componentCode +"/"+componentMethod, param, options)
-                .then(function(res){
-                    successCallback(res.bodyText,res);
+        post: function (componentCode, componentMethod, param, options, successCallback, errorCallback) {
+            vc.loading('open');
+            Vue.http.post('/callComponent/' + componentCode + "/" + componentMethod, param, options)
+                .then(function (res) {
+                    successCallback(res.bodyText, res);
                     vc.loading('close');
-                }, function(error){
-                    errorCallback(error.bodyText,error);
+                }, function (error) {
+                    errorCallback(error.bodyText, error);
                     vc.loading('close');
                 });
         },
-        get:function(componentCode,componentMethod,param,successCallback,errorCallback){
-                //加入缓存机制
-                var _getPath = '/'+componentCode +'/' +componentMethod;
-                if(vc.constant.GET_CACHE_URL.includes(_getPath)){
-                    var _cacheData = vc.getData(_getPath);
-                    //浏览器缓存中能获取到
-                    if(_cacheData != null && _cacheData != undefined){
-                        successCallback(JSON.stringify(_cacheData),{status:200});
-                        return ;
-                    }
+        get: function (componentCode, componentMethod, param, successCallback, errorCallback) {
+            //加入缓存机制
+            var _getPath = '/' + componentCode + '/' + componentMethod;
+            if (vc.constant.GET_CACHE_URL.includes(_getPath)) {
+                var _cacheData = vc.getData(_getPath);
+                //浏览器缓存中能获取到
+                if (_cacheData != null && _cacheData != undefined) {
+                    successCallback(JSON.stringify(_cacheData), {status: 200});
+                    return;
                 }
-                vc.loading('open');
-                Vue.http.get('/callComponent/'+componentCode +"/"+componentMethod, param)
-                .then(function(res){
-                    successCallback(res.bodyText,res);
-                    if(vc.constant.GET_CACHE_URL.includes(_getPath) && res.status == 200){
-                         vc.saveData(_getPath,JSON.parse(res.bodyText));
+            }
+            vc.loading('open');
+            Vue.http.get('/callComponent/' + componentCode + "/" + componentMethod, param)
+                .then(function (res) {
+                    successCallback(res.bodyText, res);
+                    if (vc.constant.GET_CACHE_URL.includes(_getPath) && res.status == 200) {
+                        vc.saveData(_getPath, JSON.parse(res.bodyText));
                     }
                     vc.loading('close');
-                }, function(error){
-                    errorCallback(error.bodyText,error);
+                }, function (error) {
+                    errorCallback(error.bodyText, error);
                     vc.loading('close');
                 });
         },
-        upload:function(componentCode,componentMethod,param,options,successCallback,errorCallback){
-                vc.loading('open');
-                Vue.http.post('/callComponent/upload/'+componentCode +"/"+componentMethod, param, options)
-                .then(function(res){
-                    successCallback(res.bodyText,res);
+        upload: function (componentCode, componentMethod, param, options, successCallback, errorCallback) {
+            vc.loading('open');
+            Vue.http.post('/callComponent/upload/' + componentCode + "/" + componentMethod, param, options)
+                .then(function (res) {
+                    successCallback(res.bodyText, res);
                     vc.loading('close');
-                }, function(error){
-                    errorCallback(error.bodyText,error);
+                }, function (error) {
+                    errorCallback(error.bodyText, error);
                     vc.loading('close');
                 });
         },
@@ -111,39 +109,59 @@
 
     var vmOptions = vc.vmOptions;
     //继承方法,合并 _vmOptions 的数据到 vmOptions中
-    vc.extends = function(_vmOptions){
-        if(typeof _vmOptions !== "object"){
+    vc.extends = function (_vmOptions) {
+        if (typeof _vmOptions !== "object") {
             throw "_vmOptions is not Object";
         }
+        var nameSpace = DEFAULT_NAMESPACE;
+        if (_vmOptions.hasOwnProperty("namespace")) {
+            nameSpace = _vmOptions.namespace;
+            vc.namespace.push({
+                namespace:_vmOptions.namespace,
+            })
+        }
+
         //处理 data 对象
-        if(_vmOptions.hasOwnProperty('data')){
-            for(var dataAttr in _vmOptions.data){
-                vmOptions.data[dataAttr] = _vmOptions.data[dataAttr];
+        if (_vmOptions.hasOwnProperty('data')) {
+            for (var dataAttr in _vmOptions.data) {
+                if (nameSpace == DEFAULT_NAMESPACE) {
+                    vmOptions.data[dataAttr] = _vmOptions.data[dataAttr];
+                } else {
+                    vmOptions.data[nameSpace][dataAttr] = _vmOptions.data[dataAttr];
+                }
             }
         }
         //处理methods 对象
-        if(_vmOptions.hasOwnProperty('methods')){
-            for(var methodAttr in _vmOptions.methods){
-                vmOptions.methods[methodAttr] = _vmOptions.methods[methodAttr];
+        if (_vmOptions.hasOwnProperty('methods')) {
+            for (var methodAttr in _vmOptions.methods) {
+                if (nameSpace == DEFAULT_NAMESPACE) {
+                    vmOptions.methods[methodAttr] = _vmOptions.methods[methodAttr];
+                } else {
+                    vmOptions.methods[nameSpace][methodAttr] = _vmOptions.methods[methodAttr];
+                }
             }
         }
         //处理methods 对象
-        if(_vmOptions.hasOwnProperty('watch')){
-            for(var watchAttr in _vmOptions.watch){
-                vmOptions.watch[watchAttr] = _vmOptions.watch[watchAttr];
+        if (_vmOptions.hasOwnProperty('watch')) {
+            for (var watchAttr in _vmOptions.watch) {
+                if (nameSpace == DEFAULT_NAMESPACE) {
+                    vmOptions.watch[watchAttr] = _vmOptions.watch[watchAttr];
+                } else {
+                    vmOptions.watch[nameSpace][watchAttr] = _vmOptions.watch[watchAttr];
+                }
             }
         }
         //处理_initMethod 初始化执行函数
-        if(_vmOptions.hasOwnProperty('_initMethod')){
+        if (_vmOptions.hasOwnProperty('_initMethod')) {
             vc.initMethod.push(_vmOptions._initMethod);
         }
         //处理_initEvent
-        if(_vmOptions.hasOwnProperty('_initEvent')){
+        if (_vmOptions.hasOwnProperty('_initEvent')) {
             vc.initEvent.push(_vmOptions._initEvent);
         }
 
-         //处理_initEvent_destroyedMethod
-        if(_vmOptions.hasOwnProperty('_destroyedMethod')){
+        //处理_initEvent_destroyedMethod
+        if (_vmOptions.hasOwnProperty('_destroyedMethod')) {
             vc.destroyedMethod.push(_vmOptions._destroyedMethod);
         }
 
@@ -152,103 +170,102 @@
 
 
     //绑定跳转函数
-    vc.jumpToPage = function(url){
-          window.location.href = url;
+    vc.jumpToPage = function (url) {
+        window.location.href = url;
     };
     //保存菜单
-    vc.setCurrentMenu = function(_menuId){
-        window.localStorage.setItem('hc_menuId',_menuId);
+    vc.setCurrentMenu = function (_menuId) {
+        window.localStorage.setItem('hc_menuId', _menuId);
     };
     //获取菜单
-    vc.getCurrentMenu = function(){
+    vc.getCurrentMenu = function () {
         return window.localStorage.getItem('hc_menuId');
     };
 
     //保存用户菜单
-    vc.setMenus = function(_menus){
-        window.localStorage.setItem('hc_menus',JSON.stringify(_menus));
+    vc.setMenus = function (_menus) {
+        window.localStorage.setItem('hc_menus', JSON.stringify(_menus));
     };
     //获取用户菜单
-    vc.getMenus = function(){
+    vc.getMenus = function () {
         return JSON.parse(window.localStorage.getItem('hc_menus'));
     };
 
     //保存菜单状态
-    vc.setMenuState = function(_menuState){
-        window.localStorage.setItem('hc_menu_state',_menuState);
+    vc.setMenuState = function (_menuState) {
+        window.localStorage.setItem('hc_menu_state', _menuState);
     };
     //获取菜单状态
-    vc.getMenuState = function(){
+    vc.getMenuState = function () {
         return window.localStorage.getItem('hc_menu_state');
     };
 
     //保存用户菜单
-    vc.saveData = function(_key,_value){
-        window.localStorage.setItem(_key,JSON.stringify(_value));
+    vc.saveData = function (_key, _value) {
+        window.localStorage.setItem(_key, JSON.stringify(_value));
     };
     //获取用户菜单
-    vc.getData = function(_key){
+    vc.getData = function (_key) {
         return JSON.parse(window.localStorage.getItem(_key));
     };
 
     //保存当前小区信息 _communityInfo : {"communityId":"123213","name":"测试小区"}
-    vc.setCurrentCommunity = function(_currentCommunityInfo){
-        window.localStorage.setItem('hc_currentCommunityInfo',JSON.stringify(_currentCommunityInfo));
+    vc.setCurrentCommunity = function (_currentCommunityInfo) {
+        window.localStorage.setItem('hc_currentCommunityInfo', JSON.stringify(_currentCommunityInfo));
     };
 
     //获取当前小区信息
     // @return   {"communityId":"123213","name":"测试小区"}
-    vc.getCurrentCommunity = function(){
+    vc.getCurrentCommunity = function () {
         return JSON.parse(window.localStorage.getItem('hc_currentCommunityInfo'));
     };
 
     //保存当前小区信息 _communityInfos : [{"communityId":"123213","name":"测试小区"}]
-    vc.setCommunitys = function(_communityInfos){
-        window.localStorage.setItem('hc_communityInfos',JSON.stringify(_communityInfos));
+    vc.setCommunitys = function (_communityInfos) {
+        window.localStorage.setItem('hc_communityInfos', JSON.stringify(_communityInfos));
     };
 
     //获取当前小区信息
     // @return   {"communityId":"123213","name":"测试小区"}
-    vc.getCommunitys = function(){
+    vc.getCommunitys = function () {
         return JSON.parse(window.localStorage.getItem('hc_communityInfos'));
     };
 
     //删除缓存数据
-    vc.clearCacheData = function(){
+    vc.clearCacheData = function () {
         window.localStorage.clear();
     };
 
     //将org 对象的属性值赋值给dst 属性名为一直的属性
-    vc.copyObject = function(org,dst){
+    vc.copyObject = function (org, dst) {
         //for(key in Object.getOwnPropertyNames(dst)){
-        for(var key in dst){
-            if (org.hasOwnProperty(key)){
+        for (var key in dst) {
+            if (org.hasOwnProperty(key)) {
                 dst[key] = org[key]
             }
         }
     };
     //扩展 现有的对象 没有的属性扩充上去
-    vc.extendObject = function(org,dst){
-        for(var key in dst){
-            if (!org.hasOwnProperty(key)){
+    vc.extendObject = function (org, dst) {
+        for (var key in dst) {
+            if (!org.hasOwnProperty(key)) {
                 dst[key] = org[key]
             }
         }
     };
     //获取url参数
-    vc.getParam = function(_key){
+    vc.getParam = function (_key) {
         //返回当前 URL 的查询部分(问号 ? 之后的部分)。
         var urlParameters = location.search;
         //如果该求青中有请求的参数,则获取请求的参数,否则打印提示此请求没有请求的参数
-        if (urlParameters.indexOf('?') != -1)
-        {
+        if (urlParameters.indexOf('?') != -1) {
             //获取请求参数的字符串
             var parameters = decodeURI(urlParameters.substr(1));
             //将请求的参数以&分割中字符串数组
             parameterArray = parameters.split('&');
             //循环遍历,将请求的参数封装到请求参数的对象之中
             for (var i = 0; i < parameterArray.length; i++) {
-                if(_key == parameterArray[i].split('=')[0]){
+                if (_key == parameterArray[i].split('=')[0]) {
                     return parameterArray[i].split('=')[1];
                 }
             }
@@ -257,30 +274,30 @@
         return "";
     };
     //查询url
-    vc.getUrl = function(){
+    vc.getUrl = function () {
         //返回当前 URL 的查询部分(问号 ? 之后的部分)。
         var urlParameters = location.pathname;
         return urlParameters;
     };
     //对象转get参数
-    vc.objToGetParam =function(obj){
-         var str = [];
-         for (var p in obj)
-          if (obj.hasOwnProperty(p)) {
-           str.push(encodeURIComponent(p) + "=" + encodeURIComponent(obj[p]));
-          }
-         return str.join("&");
+    vc.objToGetParam = function (obj) {
+        var str = [];
+        for (var p in obj)
+            if (obj.hasOwnProperty(p)) {
+                str.push(encodeURIComponent(p) + "=" + encodeURIComponent(obj[p]));
+            }
+        return str.join("&");
     };
     //空判断 true 为非空 false 为空
-    vc.notNull = function(_paramObj){
-        if(_paramObj == null || _paramObj == undefined || _paramObj.trim() == ''){
+    vc.notNull = function (_paramObj) {
+        if (_paramObj == null || _paramObj == undefined || _paramObj.trim() == '') {
             return false;
         }
         return true;
     };
     //设置debug 模式
     vc.setDebug = function (_param) {
-       vc.debug = _param;
+        vc.debug = _param;
     };
     //数据共享存放 主要为了组件间传递数据
     vc.put = function (_key, _value) {
@@ -292,77 +309,81 @@
     };
 
 
-
 })(window.vc);
 
 /**
-    vc 定时器处理
-**/
-(function(w,vc){
+ vc 定时器处理
+ **/
+(function (w, vc) {
 
     /**
-        创建定时器
-    **/
-    vc.createTimer = function(func,sec){
-        var _timer = w.setInterval(func,sec);
+     创建定时器
+     **/
+    vc.createTimer = function (func, sec) {
+        var _timer = w.setInterval(func, sec);
         vc.timers.push(_timer); //这里将所有的定时器保存起来,页面退出时清理
 
         return _timer;
     };
     //清理定时器
-    vc.clearTimer = function(timer){
+    vc.clearTimer = function (timer) {
         clearInterval(timer);
     }
 
 
-})(window,window.vc);
+})(window, window.vc);
 
 /**
-    时间处理工具类
-**/
-(function(vc){
-    function add0(m){return m<10?'0'+m:m }
-    vc.dateFormat = function(shijianchuo){
-      //shijianchuo是整数,否则要parseInt转换
-      var time = new Date(parseInt(shijianchuo));
-      var y = time.getFullYear();
-      var m = time.getMonth()+1;
-      var d = time.getDate();
-      var h = time.getHours();
-      var mm = time.getMinutes();
-      var s = time.getSeconds();
-      return y+'-'+add0(m)+'-'+add0(d)+' '+add0(h)+':'+add0(mm)+':'+add0(s);
+ 时间处理工具类
+ **/
+(function (vc) {
+    function add0(m) {
+        return m < 10 ? '0' + m : m
+    }
+
+    vc.dateFormat = function (shijianchuo) {
+        //shijianchuo是整数,否则要parseInt转换
+        var time = new Date(parseInt(shijianchuo));
+        var y = time.getFullYear();
+        var m = time.getMonth() + 1;
+        var d = time.getDate();
+        var h = time.getHours();
+        var mm = time.getMinutes();
+        var s = time.getSeconds();
+        return y + '-' + add0(m) + '-' + add0(d) + ' ' + add0(h) + ':' + add0(mm) + ':' + add0(s);
     }
 
 })(window.vc);
 
 
-(function(vc){
+(function (vc) {
 
     vc.propTypes = {
-        string:"string",//字符串类型
-        array:"array",
-        object:"object",
-        number:"number"
+        string: "string",//字符串类型
+        array: "array",
+        object: "object",
+        number: "number"
     }
 
 })(window.vc);
 
 /**
-toast
-**/
-(function(vc){
-    vc.toast = function Toast(msg,duration){
-                     duration=isNaN(duration)?3000:duration;
-                     var m = document.createElement('div');
-                     m.innerHTML = msg;
-                     m.style.cssText="max-width:60%;min-width: 150px;padding:0 14px;height: 40px;color: rgb(255, 255, 255);line-height: 40px;text-align: center;border-radius: 4px;position: fixed;top: 30%;left: 50%;transform: translate(-50%, -50%);z-index: 999999;background: rgba(0, 0, 0,.7);font-size: 16px;";
-                     document.body.appendChild(m);
-                     setTimeout(function() {
-                       var d = 0.5;
-                       m.style.webkitTransition = '-webkit-transform ' + d + 's ease-in, opacity ' + d + 's ease-in';
-                       m.style.opacity = '0';
-                       setTimeout(function() { document.body.removeChild(m) }, d * 1000);
-                     }, duration);
-                   }
+ toast
+ **/
+(function (vc) {
+    vc.toast = function Toast(msg, duration) {
+        duration = isNaN(duration) ? 3000 : duration;
+        var m = document.createElement('div');
+        m.innerHTML = msg;
+        m.style.cssText = "max-width:60%;min-width: 150px;padding:0 14px;height: 40px;color: rgb(255, 255, 255);line-height: 40px;text-align: center;border-radius: 4px;position: fixed;top: 30%;left: 50%;transform: translate(-50%, -50%);z-index: 999999;background: rgba(0, 0, 0,.7);font-size: 16px;";
+        document.body.appendChild(m);
+        setTimeout(function () {
+            var d = 0.5;
+            m.style.webkitTransition = '-webkit-transform ' + d + 's ease-in, opacity ' + d + 's ease-in';
+            m.style.opacity = '0';
+            setTimeout(function () {
+                document.body.removeChild(m)
+            }, d * 1000);
+        }, duration);
+    }
 })(window.vc);

+ 3 - 0
java110-front/src/main/resources/static/js/vc-core.js

@@ -50,5 +50,8 @@
     vc.initMethod.forEach(function (callback) {
         callback();
     });
+    vc.namespace.forEach(function (_param) {
+        vc[_param.namespace] = vc.component[_param.namespace];
+    });
 })(window.vc);