diff --git a/jikimo_frontend/static/src/js/custom_form_status_indicator.js b/jikimo_frontend/static/src/js/custom_form_status_indicator.js
index 49c09983..33405fc3 100644
--- a/jikimo_frontend/static/src/js/custom_form_status_indicator.js
+++ b/jikimo_frontend/static/src/js/custom_form_status_indicator.js
@@ -9,67 +9,68 @@ var Dialog = require('web.Dialog');
// var {patch} = require("web.utils") 这句话也行
patch(FormStatusIndicator.prototype, 'jikimo_frontend.FormStatusIndicator', {
- // 你可以重写或者添加一些方法和属性
- async _onDiscardChanges() {
- // var self = this;
- Dialog.confirm(this, _t("Are you sure you want to discard changes?"), {
- title: _t("Discard Changes"),
+ // 你可以重写或者添加一些方法和属性
+ async _onDiscardChanges() {
+ // var self = this;
+ Dialog.confirm(this, _t("Are you sure you want to discard changes?"), {
+ title: _t("Discard Changes"),
- // confirm_callback: function () {
- // self.model.discardChanges(self.handle);
- // },
- });
- },
+ // confirm_callback: function () {
+ // self.model.discardChanges(self.handle);
+ // },
+ });
+ },
- async discard() {
- // if (window.confirm("Are you sure you want to discard changes?")) {
- // await this.props.discard();
- // }
- // const result = await this._confirmDiscardChange();
- await this._confirmDiscardChange();
- await this.props.discard();
- },
+ async discard() {
+ // if (window.confirm("Are you sure you want to discard changes?")) {
+ // await this.props.discard();
+ // }
+ // const result = await this._confirmDiscardChange();
+ await this._confirmDiscardChange();
+ await this.props.discard();
+ },
- _confirmDiscardChange(){
- var self = this;
- var def = new Promise(function (resolve, reject) {
- var message = _t("请确认是否要舍弃之前的更改?");
- var dialog = Dialog.confirm(self, message, {
- title: _t("Warning"),
- confirm_callback: resolve.bind(self, true),
- cancel_callback: reject,
- });
- dialog.on('closed', self, reject);
- });
- return def;
- },
+ _confirmDiscardChange() {
+ var self = this;
+ var def = new Promise(function (resolve, reject) {
+ var message = _t("请确认是否要舍弃之前的更改?");
+ var dialog = Dialog.confirm(self, message, {
+ title: _t("Warning"),
+ confirm_callback: resolve.bind(self, true),
+ cancel_callback: reject,
+ });
+ dialog.on('closed', self, reject);
+ });
+ return def;
+ },
-}
+ }
);
-$(function (){
+$(function () {
document.addEventListener('click', function () {
const dom = $('.o_form_status_indicator_buttons ')
- if(dom) {
+ if (dom) {
const dom1 = dom.children().eq(0)
const dom2 = dom.children().eq(1)
- if(!dom1.text()) {
+ if (!dom1.text()) {
dom1.append('保存')
dom2.append('取消')
}
}
})
- function customRequired() {
+
+ function customRequired() {
let timer = null
let timer_count = 0
clearInterval(timer)
timer = setInterval(() => {
- timer_count ++
+ timer_count++
const dom = $('.custom_required')
let tableDom = $('.table_custom_required')
- if(tableDom.length) {
+ if (tableDom.length) {
tableDom = tableDom.eq(0).parents('tr').children('.table_custom_required')
- tableDom.each(function (){
+ tableDom.each(function () {
const i = $(this).index()
const requiredDom = $(this).parents('table').find('thead').find('th').eq(i).find('span').eq(0)
const t = requiredDom.text().replace('*', '')
@@ -77,29 +78,75 @@ $(function (){
})
clearInterval(timer)
}
- if(dom.length) {
- dom.each(function (){
+ if (dom.length) {
+ dom.each(function () {
const requiredDom = $(this).parent().prev().find('label')
let t = requiredDom.html()
- if(t.indexOf('c*') < 0) {
+ if (t.indexOf('c*') < 0) {
t = '*' + t
}
requiredDom.html(t)
})
clearInterval(timer)
}
- if(timer_count == 20) {
+ if (timer_count == 20) {
clearInterval(timer)
}
- },500)
+ }, 500)
}
+
+ function setRequired(dom = {label: [], table: []}) {
+ let domTimer = null
+ let timer_count = 0
+ clearInterval(domTimer)
+ domTimer = setInterval(() => {
+ timer_count++
+ const lint = $('.o_form_view_container')
+ if (lint.length) {
+ clearInterval(domTimer)
+ const {label, table} = dom
+ if (label.length) {
+ $(dom.label.join(',')).each(function () {
+ let t = $(this).html()
+ if (t.indexOf('c*') < 0) {
+ t = '*' + t
+ }
+ $(this).html(t)
+ })
+ }
+
+ if (table.length) {
+ table.forEach(_ => {
+ const th = $(`th[data-name=${_}]`)
+ const t = th.find('span').eq(0).text().replace('*','')
+ th.find('span').eq(0).html('*' + t)
+
+ })
+
+ }
+ }
+ if (timer_count == 20) {
+ clearInterval(domTimer)
+ }
+ }, 500)
+ }
+
var currentUrl = location.href
+ const customRequiredDom = {
+ label: ['label[for=production_line_id]','label[for=date_approve]','label[for=partner_id]', 'label[for=validity_date]', '.o_horizontal[role=radiogroup]', 'label[for=vat]', 'label[for=phone]', 'label[for=mobile]', 'label[for=email]', 'label[for=category_id]','label[for=date_order]','label[for=picking_type_id]'],
+ table: ['product_template_id', 'product_uom_qty', 'price_unit','product_id','product_qty']
+ }
const listenerUrl = setInterval(() => {
const isChange = currentUrl != location.href
- if(isChange) {
+ if (isChange) {
currentUrl = location.href
customRequired()
+ setRequired(customRequiredDom)
+ }
+ if($('label[for=production_line_id]')) {
+ setRequired({table: [], label: ['label[for=production_line_id]']})
}
}, 500)
customRequired()
+ setRequired(customRequiredDom)
})