代码生成器增强-新增支持type=number

pull/471/head
苏志浩 2023-08-31 16:37:32 +08:00
parent 6c89c9896a
commit 92d7e1c399
6 changed files with 67 additions and 0 deletions

View File

@ -0,0 +1,50 @@
/**
* Author and copyright: Stefan Haack (https://shaack.com)
* Repository: https://github.com/shaack/bootstrap-input-spinner
* License: MIT, see file 'LICENSE'
*/
// the default editor for parsing and rendering
const I18nEditor = function (props, element) {
const locale = props.locale || "en-US"
this.parse = function (customFormat) {
const numberFormat = new Intl.NumberFormat(locale)
const thousandSeparator = numberFormat.format(11111).replace(/1/g, '') || '.'
const decimalSeparator = numberFormat.format(1.1).replace(/1/g, '')
return parseFloat(customFormat
.replace(new RegExp(' ', 'g'), '')
.replace(new RegExp('\\' + thousandSeparator, 'g'), '')
.replace(new RegExp('\\' + decimalSeparator), '.')
)
}
this.render = function (number) {
const decimals = parseInt(element.getAttribute("data-decimals")) || 0
const digitGrouping = !(element.getAttribute("data-digit-grouping") === "false")
const numberFormat = new Intl.NumberFormat(locale, {
minimumFractionDigits: decimals,
maximumFractionDigits: decimals,
useGrouping: digitGrouping
})
return numberFormat.format(number)
}
}
let triggerKeyPressed = false
const originalVal = $.fn.val
$.fn.val = function (value) {
if (arguments.length >= 1) {
for (let i = 0; i < this.length; i++) {
if (this[i]["bootstrap-input-spinner"] && this[i].setValue) {
const element = this[i]
setTimeout(function () {
element.setValue(value)
})
}
}
}
return originalVal.apply(this, arguments)
}

View File

@ -315,6 +315,7 @@
<script th:src="@{/js/bootstrap.min.js}"></script>
<script th:src="@{/js/plugins/metisMenu/jquery.metisMenu.js}"></script>
<script th:src="@{/js/plugins/slimscroll/jquery.slimscroll.min.js}"></script>
<script th:src="@{/js/plugins/inputSpinner/InputSpinner.js}"></script>
<script th:src="@{/js/jquery.contextMenu.min.js}"></script>
<script th:src="@{/ajax/libs/blockUI/jquery.blockUI.js}"></script>
<script th:src="@{/ajax/libs/layer/layer.min.js}"></script>

View File

@ -261,6 +261,7 @@
<script th:src="@{/js/bootstrap.min.js}"></script>
<script th:src="@{/js/plugins/metisMenu/jquery.metisMenu.js}"></script>
<script th:src="@{/js/plugins/slimscroll/jquery.slimscroll.min.js}"></script>
<script th:src="@{/js/plugins/inputSpinner/InputSpinner.js}"></script>
<script th:src="@{/js/jquery.contextMenu.min.js}"></script>
<script th:src="@{/ajax/libs/blockUI/jquery.blockUI.js}"></script>
<script th:src="@{/ajax/libs/layer/layer.min.js}"></script>

View File

@ -598,6 +598,7 @@
<option value="input" {{if htmlType==="input"}}selected{{/if}}>文本框</option>
<option value="textarea" {{if htmlType==="textarea"}}selected{{/if}}>文本域</option>
<option value="select" {{if htmlType==="select"}}selected{{/if}}>下拉框</option>
<option value="number" {{if htmlType==="number"}}selected{{/if}}>数字框</option>
<option value="radio" {{if htmlType==="radio"}}selected{{/if}}>单选框</option>
<option value="checkbox" {{if htmlType==="checkbox"}}selected{{/if}}>复选框</option>
<option value="summernote" {{if htmlType==="summernote"}}selected{{/if}}>富文本</option>

View File

@ -58,6 +58,13 @@
<input name="${field}" class="form-control" type="text"#if($column.required) required#end>
</div>
</div>
#elseif($column.htmlType == "number")
<div class="form-group">
<label class="col-sm-3 control-label#if($column.required) is-required#end">${comment}</label>
<div class="col-sm-8">
<input name="${field}" class="form-control" type="number"#if($column.required) required#end>
</div>
</div>
#elseif($column.htmlType == "upload")
<div class="form-group">
<label class="col-sm-3 control-label#if($column.required) is-required#end">${comment}</label>

View File

@ -58,6 +58,13 @@
<input name="${field}" th:field="*{${field}}" class="form-control" type="text"#if($column.required) required#end>
</div>
</div>
#elseif($column.htmlType == "number")
<div class="form-group">
<label class="col-sm-3 control-label#if($column.required) is-required#end">${comment}</label>
<div class="col-sm-8">
<input name="${field}" th:field="*{${field}}" class="form-control" type="number"#if($column.required) required#end>
</div>
</div>
#elseif($column.htmlType == "upload")
<div class="form-group">
<label class="col-sm-3 control-label#if($column.required) is-required#end">${comment}</label>