Commit 295d675b6d10982a72fdb2b97cc133bab54ada64
1 parent
1e604e83
fix: save button render invalidate and bind data source submit method not validate permission
Showing
2 changed files
with
46 additions
and
26 deletions
| ... | ... | @@ -5036,7 +5036,7 @@ App.prototype.loadFile = function (id, sameWindow, file, success, force) { |
| 5036 | 5036 | } |
| 5037 | 5037 | |
| 5038 | 5038 | getToken() |
| 5039 | - | |
| 5039 | + | |
| 5040 | 5040 | var updateButtonContainer = this.updateButtonContainer |
| 5041 | 5041 | // var lockUnlock = this.actions.actions.lockUnlock.funct |
| 5042 | 5042 | // var selectAll = this.actions.actions.selectAll.funct |
| ... | ... | @@ -5044,6 +5044,7 @@ App.prototype.loadFile = function (id, sameWindow, file, success, force) { |
| 5044 | 5044 | defHttp.get('/yt/role/me/permissions') |
| 5045 | 5045 | .then(res => { |
| 5046 | 5046 | USER_PERMISSION.permission = res |
| 5047 | + console.log({USER_PERMISSION}) | |
| 5047 | 5048 | updateButtonContainer() |
| 5048 | 5049 | // var flag = hasSavePermission() |
| 5049 | 5050 | // if (!flag) { |
| ... | ... | @@ -5978,30 +5979,28 @@ App.prototype.updateButtonContainer = function() |
| 5978 | 5979 | this.buttonContainer.appendChild(this.shareButton); |
| 5979 | 5980 | |
| 5980 | 5981 | // TODO thingsKit 保存按钮 |
| 5981 | - var flag = hasSavePermission() | |
| 5982 | - if (flag) { | |
| 5983 | - this.saveButton = document.createElement('div'); | |
| 5984 | - this.saveButton.className = 'geBtn gePrimaryBtn'; | |
| 5985 | - this.saveButton.style.display = 'inline-block'; | |
| 5986 | - this.saveButton.style.backgroundColor = '#F2931E'; | |
| 5987 | - this.saveButton.style.borderColor = '#F08705'; | |
| 5988 | - this.saveButton.style.backgroundImage = 'none'; | |
| 5989 | - this.saveButton.style.marginTop = '-10px'; | |
| 5990 | - this.saveButton.style.lineHeight = '28px'; | |
| 5991 | - this.saveButton.style.minWidth = '0px'; | |
| 5992 | - this.saveButton.style.cssFloat = 'right'; | |
| 5993 | - this.saveButton.setAttribute('title', '保存'); | |
| 5994 | - mxUtils.write(this.saveButton, '保存'); | |
| 5995 | - mxEvent.addListener(this.saveButton, 'click', mxUtils.bind(this, function() | |
| 5996 | - { | |
| 5997 | - this.currentFile.ui.actions.get( | |
| 5998 | - (this.currentFile.mode == null || !this.currentFile.isEditable()) | |
| 5999 | - ? 'saveAs' | |
| 6000 | - : 'save') | |
| 6001 | - .funct(); | |
| 6002 | - })); | |
| 6003 | - this.buttonContainer.appendChild(this.saveButton); | |
| 6004 | - } | |
| 5982 | + this.saveButton = document.createElement('div'); | |
| 5983 | + this.saveButton.className = 'geBtn gePrimaryBtn'; | |
| 5984 | + this.saveButton.style.display = 'inline-block'; | |
| 5985 | + this.saveButton.style.backgroundColor = '#F2931E'; | |
| 5986 | + this.saveButton.style.borderColor = '#F08705'; | |
| 5987 | + this.saveButton.style.backgroundImage = 'none'; | |
| 5988 | + this.saveButton.style.marginTop = '-10px'; | |
| 5989 | + this.saveButton.style.lineHeight = '28px'; | |
| 5990 | + this.saveButton.style.minWidth = '0px'; | |
| 5991 | + this.saveButton.style.cssFloat = 'right'; | |
| 5992 | + this.saveButton.setAttribute('title', '保存'); | |
| 5993 | + this.saveButton.setAttribute('id', 'thingskitSaveButton'); | |
| 5994 | + mxUtils.write(this.saveButton, '保存'); | |
| 5995 | + mxEvent.addListener(this.saveButton, 'click', mxUtils.bind(this, function() | |
| 5996 | + { | |
| 5997 | + this.currentFile.ui.actions.get( | |
| 5998 | + (this.currentFile.mode == null || !this.currentFile.isEditable()) | |
| 5999 | + ? 'saveAs' | |
| 6000 | + : 'save') | |
| 6001 | + .funct(); | |
| 6002 | + })); | |
| 6003 | + this.buttonContainer.appendChild(this.saveButton); | |
| 6005 | 6004 | |
| 6006 | 6005 | |
| 6007 | 6006 | |
| ... | ... | @@ -6062,6 +6061,11 @@ App.prototype.updateButtonContainer = function() |
| 6062 | 6061 | { |
| 6063 | 6062 | this.fetchAndShowNotification(urlParams['notif']); |
| 6064 | 6063 | } |
| 6064 | + } else { | |
| 6065 | + if (!hasSavePermission()) { | |
| 6066 | + var el = document.getElementById('thingskitSaveButton') | |
| 6067 | + el && el.remove() | |
| 6068 | + } | |
| 6065 | 6069 | } |
| 6066 | 6070 | }; |
| 6067 | 6071 | ... | ... |
| ... | ... | @@ -418,7 +418,7 @@ Format.prototype.immediateRefresh = function () { |
| 418 | 418 | const basicAttr = sidebarInstance.enumCellBasicAttribute |
| 419 | 419 | const componentType = cell.getAttribute(basicAttr.COMPONENT_TYPE) |
| 420 | 420 | const hasPermission = sidebarInstance.getComponentPermission(componentType) |
| 421 | - return !!hasPermission.length | |
| 421 | + return !!hasPermission.length && hasSavePermission() | |
| 422 | 422 | } |
| 423 | 423 | |
| 424 | 424 | var addClickHandler = mxUtils.bind( |
| ... | ... | @@ -5898,6 +5898,10 @@ DataFormatPanel.prototype.addDataFont = function (container) { |
| 5898 | 5898 | $(panel).addClass('data-source__submit-panel').append(`<button type="button" lay-submit lay-filter="formDataSource" class="layui-btn">保存</button>`) |
| 5899 | 5899 | $(container).append(panel) |
| 5900 | 5900 | form.on('submit(formDataSource)', async function (data) { |
| 5901 | + if (!hasSavePermission()) { | |
| 5902 | + UseLayUi.topErrorMsg('没有权限') | |
| 5903 | + return | |
| 5904 | + } | |
| 5901 | 5905 | const { field } = data |
| 5902 | 5906 | const value = getValueOnSubmit(field) |
| 5903 | 5907 | await to(autoSaveGraphInfo()) |
| ... | ... | @@ -6261,6 +6265,7 @@ DataFormatPanel.prototype.addDataFont = function (container) { |
| 6261 | 6265 | * @description |
| 6262 | 6266 | */ |
| 6263 | 6267 | async function submit(callback) { |
| 6268 | + if (!hasPermission()) return | |
| 6264 | 6269 | const data = Array.from({ length: addRowNumber }).map((_, row) => form.val(getRowFilter(row))).filter(item => Object.keys(item).length) |
| 6265 | 6270 | const defaultImageConfig = form.val(enumActionEl.DEFAULT_IMAGE_FILTER) |
| 6266 | 6271 | defaultImageConfig[enumConst.DEFAULT_IMAGE_FLAG] = true |
| ... | ... | @@ -6709,6 +6714,7 @@ DataFormatPanel.prototype.addDataFont = function (container) { |
| 6709 | 6714 | * @description 保存 |
| 6710 | 6715 | */ |
| 6711 | 6716 | async function submit(callback) { |
| 6717 | + if (!hasPermission()) return | |
| 6712 | 6718 | const data = Array.from({ length: addRowNumber }).map((_, row) => form.val(getRowFilter(row))).filter(item => Object.keys(item).length) |
| 6713 | 6719 | if (!validate(data)) return |
| 6714 | 6720 | const formModal = { |
| ... | ... | @@ -6963,6 +6969,7 @@ DataFormatPanel.prototype.addDataFont = function (container) { |
| 6963 | 6969 | * @description 编辑数据交互 |
| 6964 | 6970 | */ |
| 6965 | 6971 | async function submit(callback) { |
| 6972 | + if (!hasPermission()) return | |
| 6966 | 6973 | const formVal = form.val(enumActionEl.FORM_FILTER) |
| 6967 | 6974 | const isParamsSetting = formVal[enumConst.ACTION] === enumActionType.PARAMS_SETTING |
| 6968 | 6975 | const { COMPONENT_TYPE } = Sidebar.prototype.enumCellBasicAttribute |
| ... | ... | @@ -7381,6 +7388,7 @@ DataFormatPanel.prototype.addDataFont = function (container) { |
| 7381 | 7388 | } |
| 7382 | 7389 | |
| 7383 | 7390 | async function submit(callback) { |
| 7391 | + if (!hasPermission()) return | |
| 7384 | 7392 | const tableData = Array.from({ length: addRowNumber }).map((_, index) => form.val(getRowFilter(index))).filter(obj => Object.keys(obj).length) |
| 7385 | 7393 | if (!validate(tableData)) return |
| 7386 | 7394 | const formVal = form.val(enumActionEl.FORM_FILTER) |
| ... | ... | @@ -7618,6 +7626,8 @@ DataFormatPanel.prototype.addDataFont = function (container) { |
| 7618 | 7626 | } |
| 7619 | 7627 | |
| 7620 | 7628 | async function submit(callback) { |
| 7629 | + if (!hasPermission()) return | |
| 7630 | + | |
| 7621 | 7631 | const enableValue = form.val(enumActionEl.ENABLE_FILTER) |
| 7622 | 7632 | const closeValue = form.val(enumActionEl.CLOSE_FILTER) |
| 7623 | 7633 | |
| ... | ... | @@ -8344,6 +8354,12 @@ DataFormatPanel.prototype.addDataFont = function (container) { |
| 8344 | 8354 | ` |
| 8345 | 8355 | } |
| 8346 | 8356 | |
| 8357 | + function hasPermission() { | |
| 8358 | + let flag = hasSavePermission() | |
| 8359 | + if (!flag) UseLayUi.topErrorMsg('没有权限') | |
| 8360 | + return flag | |
| 8361 | + } | |
| 8362 | + | |
| 8347 | 8363 | // 异步设置此处才能生效 -- 设置默认select和样式和初始化侧边栏生成组件和事件绑定 |
| 8348 | 8364 | setTimeout(() => { |
| 8349 | 8365 | ... | ... |