|
|
@@ -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);
|