odoo.define('web_char_field_copy.char_field_copy', function (require) {
'use strict';
var FieldChar = require('web.basic_fields').FieldChar;
var fieldRegistry = require('web.field_registry');
var field = require('web.relational_fields');
const ListRenderer = require("web.ListRenderer");
var CopyFieldChar = FieldChar.extend({
_renderReadonly: function () {
if (this.attrs.widget === 'char_field_copy' && this.$el.hasClass('o_field_widget')) {
var res = this._super.apply(this, arguments);
// 為這個節點增加一個復制按鈕
var $value = $('<button type="button" class="o_char_field_copy_button fa fa-copy" style="border:none"/>');
this.$(this.el.currentTarget).append($value)
// 給按鈕增加事件
this.$(":button").on('click', this._Copy_data.bind(this))
return res;
}
},
_Copy_data: function (ev) {
var self = this;
// 給按鈕增加一個class, 因為點擊復制按鈕的時候自動跳轉form視圖(此處先加上class,然后在跳轉form的函式判斷是否有這個class)
this.$(':button').addClass('no_open_raw')
// 復制text
var clipboard = new window.ClipboardJS('.o_field_widget', {
target: function (ev) {
// 復制完畢之后將添加的class洗掉,否則此條記錄點擊沒有反應,不會進入form視圖
self.$(':button').removeClass('no_open_raw')
return self.$(ev.currentTarget)[0];
},
container: this.el
});
// alert成功資訊
// alert('復制成功!')
self.do_notify('成功','復制成功, 請直接粘貼!', false)
}
});
ListRenderer.include({
/*
* */
_onRowClicked: function (ev) {
var has_class = this.$(':button').hasClass('no_open_raw')
if (!has_class) {
return this._super.apply(this, arguments)
}
}
})
fieldRegistry.add('char_field_copy', CopyFieldChar);
})
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/291879.html
標籤:其他
上一篇:JavaScript寫Z字變形
