mrzcc 6 роки тому
батько
коміт
6526ad5c2d

+ 5 - 0
WebService/src/main/resources/components/machinePackage/machine-select2/machineSelect2.html

@@ -0,0 +1,5 @@
+<select class="form-control" id = "machineSelector">
+    <option value="">请选择设备</option>
+
+
+</select>

+ 123 - 0
WebService/src/main/resources/components/machinePackage/machine-select2/machineSelect2.js

@@ -0,0 +1,123 @@
+(function (vc) {
+    vc.extends({
+        propTypes: {
+            parentModal: vc.propTypes.string,
+            callBackListener: vc.propTypes.string, //父组件名称
+            callBackFunction: vc.propTypes.string //父组件监听方法
+        },
+        data: {
+            machineSelect2Info: {
+                machines: [],
+                machineId: '-1',
+                machineCode: '',
+                machineName: '',
+                machineSelector: {},
+            }
+        },
+        watch: {
+            machineSelect2Info: {
+                deep: true,
+                handler: function () {
+                    vc.emit($props.callBackListener, $props.callBackFunction, this.machineSelect2Info);
+                }
+            }
+        },
+        _initMethod: function () {
+            this._initMachineSelect2();
+        },
+        _initEvent: function () {
+            //监听 modal 打开
+            /* $('#'+$props.parentModal).on('show.bs.modal', function () {
+                  vc.component._initFloorSelect2();
+             })*/
+            vc.on('machineSelect2', 'setMachine', function (_param) {
+                console.log("执行:edit machineSelect2"+_param);
+                vc.copyObject(_param, this.machineSelect2Info);
+                /* $("#floorSelector").val({
+                     id:param.floorId,
+                     text:_param.floorNum
+                 }).select2();*/
+
+                var option = new Option(_param.machineName, _param.machineId, true, true);
+                this.machineSelect2Info.machineSelector.append(option);
+            });
+
+            vc.on('machineSelect2', 'clearMachine', function (_param) {
+                this.machineSelect2Info = {
+                    machines: [],
+                    machineId: '-1',
+                    machineCode: '',
+                    machineName: '',
+                    machineSelector: {},
+                };
+            });
+        },
+        methods: {
+            _initMachineSelect2: function () {
+                console.log("调用_initMachineSelect2 方法");
+                $.fn.modal.Constructor.prototype.enforceFocus = function () {
+                };
+                $.fn.select2.defaults.set('width', '100%');
+                this.machineSelect2Info.machineSelector = $('#machineSelector').select2({
+                    placeholder: '必填,请选择楼栋',
+                    allowClear: true,//允许清空
+                    escapeMarkup: function (markup) {
+                        return markup;
+                    }, // 自定义格式化防止xss注入
+                    ajax: {
+                        url: "/callComponent/machineSelect2/list",
+                        dataType: 'json',
+                        delay: 250,
+                        data: function (params) {
+                            console.log("param", params);
+                            var _term = "";
+                            if (params.hasOwnProperty("term")) {
+                                _term = params.term;
+                            }
+                            return {
+                                machineName: _term,
+                                page: 1,
+                                row: 10,
+                                communityId: vc.getCurrentCommunity().communityId
+                            };
+                        },
+                        processResults: function (data) {
+                            console.log(data, this._filterMachineData(data.machines));
+                            return {
+                                results: this._filterMachineData(data.machines)
+                            };
+                        },
+                        cache: true
+                    }
+                });
+                $('#machineSelector').on("select2:select", function (evt) {
+                    //这里是选中触发的事件
+                    //evt.params.data 是选中项的信息
+                    console.log('select', evt);
+                    this.machineSelect2Info.machineId = evt.params.data.id;
+                    this.machineSelect2Info.machineName = evt.params.data.text;
+                });
+
+                $('#machineSelector').on("select2:unselect", function (evt) {
+                    //这里是取消选中触发的事件
+                    //如配置allowClear: true后,触发
+                    console.log('unselect', evt);
+                    this.machineSelect2Info.machineId = '-1';
+                    this.machineSelect2Info.machineName = '';
+
+                });
+            },
+            _filterMachineData: function (_machines) {
+                var _tmpMachines = [];
+                for (var i = 0; i < _machines.length; i++) {
+                    var _tmpMachine = {
+                        id: _machines[i].machineId,
+                        text: _machines[i].machineName
+                    };
+                    _tmpMachines.push(_tmpMachine);
+                }
+                return _tmpMachines;
+            }
+        }
+    });
+})(window.vc);