Commit 295d675b6d10982a72fdb2b97cc133bab54ada64

Authored by ww
1 parent 1e604e83

fix: save button render invalidate and bind data source submit method not validate permission

... ... @@ -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
... ...