123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184 |
- /**
- * Created by Zhong on 2017/11/13.
- */
- //default setting
- let decimalObj = {
- default: {
- min: 0,
- max: 6,
- bills: {unitPrice: 2, totalPrice: 2},
- ration: {quantity: 3, unitPrice: 2, totalPrice: 2},
- glj: {quantity: 3, unitPrice: 2},
- feeRate: 2,
- process: 6
- }
- };
- function isUndef(v) {
- return v === undefined || v === null;
- }
- function isDef(v){
- return v !== undefined && v !== null;
- }
- function isObj(v){
- return isDef(v) && typeof v === 'object';
- }
- function isNum(v){
- return isDef(v) && !isNaN(v);
- }
- function isInt(v){
- return isNum(v) && v % 1 === 0;
- }
- function isValidDigit(v){
- return isInt(v) && v >= decimalObj.default.min && v <= decimalObj.default.max;
- }
- function setDecimal(_digits, data){
- if(isDef(data)){
- _digits.bills = data.bills || decimalObj.default.bills;
- _digits.ration = data.ration || decimalObj.default.ration;
- _digits.glj = data.glj || decimalObj.default.glj;
- _digits.feeRate = data.feeRate || decimalObj.default.feeRate;
- _digits.process = data.process || decimalObj.default.process;
- }
- else {
- _digits.bills = decimalObj.default.bills;
- _digits.ration = decimalObj.default.ration;
- _digits.glj = decimalObj.default.glj;
- _digits.feeRate = decimalObj.default.feeRate;
- _digits.process = decimalObj.default.process;
- }
- }
- //获取decimalPanel中要展示的数据
- function m_getInitData(data){
- let rst = Object.create(null);
- rst.bills = data.bills;
- rst.ration = data.ration;
- rst.glj = data.glj;
- rst.feeRate = data.feeRate;
- rst.process = data.process;
- return rst;
- }
- //获取小数位数panel里的数据
- function m_getDecimalData(inputs){
- let rst = Object.create(null);
- for(let i = 0, len = inputs.length ; i < len; i++){
- let name = $(inputs[i]).attr('name');
- let attrs = name.split('-');
- if(attrs.length > 1){
- if(isUndef(rst[attrs[0]])){
- rst[attrs[0]] = Object.create(null);
- }
- if(isDef(rst[attrs[0]])) {
- rst[attrs[0]][attrs[1]] = parseInt($(inputs[i]).val());
- }
- }
- else {
- rst[attrs[0]] = parseInt($(inputs[i]).val());
- }
- }
- //set process
- rst['process'] = decimalObj.default.process;
- return rst;
- }
- function v_initPanel(data){
- if(this.isDef(data)){
- for(let attr in data){
- if(this.isObj(data[attr])){
- for(let subAttr in data[attr]){
- let str = attr + '-' + subAttr;
- let jqs = 'input[name="' + str + '"]';
- $(jqs).val(data[attr][subAttr]);
- $(jqs).attr('min', decimalObj.default.min);
- $(jqs).attr('max', decimalObj.default.max);
- }
- }
- else {
- let str = attr + '';
- let jqs = 'input[name="' + str + '"]';
- $(jqs).val(data[attr]);
- $(jqs).attr('min', decimalObj.default.min);
- $(jqs).attr('max', decimalObj.default.max);
- }
- }
- }
- }
- function e_validIn(inputs){
- for(let i = 0, len = inputs.length; i < len; i++){
- let orgV = $(inputs[i]).val();
- $(inputs[i]).keydown(function () {
- let v = $(this).val();
- if(v.trim().length > 0 && isValidDigit(v)){
- orgV = v;
- }
- });
- $(inputs[i]).keyup(function () {
- let v = $(this).val();
- if(v.trim().length === 0 || !isValidDigit(v)){
- alert('小数位数范围在0-6!');
- $(this).val(orgV);
- }
- else{
- //let newV = parseInt(v);
- }
- });
- }
- }
- function e_bindCof(btn){
- btn.bind('click', function () {
- //获取更新的数据
- let updateDecimal = m_getDecimalData($('input', '#poj-settings-decimal'));
- a_updateDigits(updateDecimal);
- });
- }
- function e_unbindCof(btn){
- btn.unbind();
- }
- function a_updateDigits(updateDecimal){
- let url = '/pm/api/updateProjects';
- let data = {
- updateType: 'update',
- updateData: {
- ID: parseInt(scUrlUtil.GetQueryString('project')),
- 'property.decimal': updateDecimal
- }
- };
- let postData = {
- user_id: userID,
- updateData: [data]
- };
- let scCaller = function (resultData) {
- //update data
- setDecimal(decimalObj, updateDecimal);
- let v_data = m_getInitData(decimalObj);
- v_initPanel(v_data);
- };
- let errCaller = function () {
- alert('更新小数位数失败!');
- };
- CommonAjax.post(url, postData, scCaller, errCaller);
- }
- $(document).ready(function () {
- //绑定小数位数输入控制
- e_validIn($('input', '#poj-settings-decimal'));
- //绑定小数位数确认更新按钮
- $('#tab_poj-settings-decimal').on('shown.bs.tab', function (e) {
- e_bindCof($('#property_ok'));
- let v_data = m_getInitData(decimalObj);
- v_initPanel(v_data);
- });
- $('#tab_poj-settings-decimal').on('hidden.bs.tab', function (e) {
- e_unbindCof($('#property_ok'));
- })
- });
|