Accept Merge Request #868: (feature/前端样式修改 -> develop)

Merge Request: 修改,增加强制必填字段方法

Created By: @黄焱
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @黄焱
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/868?initial=true
This commit is contained in:
黄焱
2024-02-28 14:45:54 +08:00
committed by Coding

View File

@@ -30,7 +30,7 @@ patch(FormStatusIndicator.prototype, 'jikimo_frontend.FormStatusIndicator', {
await this.props.discard(); await this.props.discard();
}, },
_confirmDiscardChange(){ _confirmDiscardChange() {
var self = this; var self = this;
var def = new Promise(function (resolve, reject) { var def = new Promise(function (resolve, reject) {
var message = _t("请确认是否要舍弃之前的更改?"); var message = _t("请确认是否要舍弃之前的更改?");
@@ -44,32 +44,33 @@ patch(FormStatusIndicator.prototype, 'jikimo_frontend.FormStatusIndicator', {
return def; return def;
}, },
} }
); );
$(function (){ $(function () {
document.addEventListener('click', function () { document.addEventListener('click', function () {
const dom = $('.o_form_status_indicator_buttons ') const dom = $('.o_form_status_indicator_buttons ')
if(dom) { if (dom) {
const dom1 = dom.children().eq(0) const dom1 = dom.children().eq(0)
const dom2 = dom.children().eq(1) const dom2 = dom.children().eq(1)
if(!dom1.text()) { if (!dom1.text()) {
dom1.append('保存') dom1.append('保存')
dom2.append('取消') dom2.append('取消')
} }
} }
}) })
function customRequired() { function customRequired() {
let timer = null let timer = null
let timer_count = 0 let timer_count = 0
clearInterval(timer) clearInterval(timer)
timer = setInterval(() => { timer = setInterval(() => {
timer_count ++ timer_count++
const dom = $('.custom_required') const dom = $('.custom_required')
let tableDom = $('.table_custom_required') let tableDom = $('.table_custom_required')
if(tableDom.length) { if (tableDom.length) {
tableDom = tableDom.eq(0).parents('tr').children('.table_custom_required') tableDom = tableDom.eq(0).parents('tr').children('.table_custom_required')
tableDom.each(function (){ tableDom.each(function () {
const i = $(this).index() const i = $(this).index()
const requiredDom = $(this).parents('table').find('thead').find('th').eq(i).find('span').eq(0) const requiredDom = $(this).parents('table').find('thead').find('th').eq(i).find('span').eq(0)
const t = requiredDom.text().replace('*', '') const t = requiredDom.text().replace('*', '')
@@ -77,29 +78,75 @@ $(function (){
}) })
clearInterval(timer) clearInterval(timer)
} }
if(dom.length) { if (dom.length) {
dom.each(function (){ dom.each(function () {
const requiredDom = $(this).parent().prev().find('label') const requiredDom = $(this).parent().prev().find('label')
let t = requiredDom.html() let t = requiredDom.html()
if(t.indexOf('c*') < 0) { if (t.indexOf('c*') < 0) {
t = '<i class="c*" style="color: red;margin-left: -4px">*</i>' + t t = '<i class="c*" style="color: red;margin-left: -4px">*</i>' + t
} }
requiredDom.html(t) requiredDom.html(t)
}) })
clearInterval(timer) clearInterval(timer)
} }
if(timer_count == 20) { if (timer_count == 20) {
clearInterval(timer) 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 = '<i class="c*" style="color: red;margin-left: -6px;margin-right: 2px">*</i>' + 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('<i style="color: red">*</i>' + t)
})
}
}
if (timer_count == 20) {
clearInterval(domTimer)
}
}, 500)
}
var currentUrl = location.href 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 listenerUrl = setInterval(() => {
const isChange = currentUrl != location.href const isChange = currentUrl != location.href
if(isChange) { if (isChange) {
currentUrl = location.href currentUrl = location.href
customRequired() customRequired()
setRequired(customRequiredDom)
}
if($('label[for=production_line_id]')) {
setRequired({table: [], label: ['label[for=production_line_id]']})
} }
}, 500) }, 500)
customRequired() customRequired()
setRequired(customRequiredDom)
}) })