cyy
2025-03-01 303d480e7569a0c0a476b462e843ea76658faac5
pages/modal/5601.vue
@@ -274,14 +274,11 @@
         },
      },
      onLoad(options) {
         console.log(options.titlename, options);
         uni.setNavigationBarTitle({
            title: options.titlename
         }); //设置顶部标题 
         this.title = options.titlename;
         this.param = JSON.parse(options.param);
         //获取主数据类ID
         this.ClsID = this.param.master_cls?.id;
         if (this.ClsID) {
@@ -736,7 +733,7 @@
                     .onSuffixClickEvent; //后图标点击回调
                  var isflag = false;
                  if (onChangeEvent.id) { //内容变化后事件
                  if (onChangeEvent?.id) { //内容变化后事件
                     $this.onChange(onChangeEvent);
                  }
                  if (item.value) { //第一个输入框不为空
@@ -819,7 +816,7 @@
               this.head_styledef.form.model[attr] = item.value;
               var onChangeEvent = item.bind.onChangeEvent; //内容变化后事件
               if (onChangeEvent.id) { //内容变化后事件
               if (onChangeEvent?.id) { //内容变化后事件
                  this.onChange(onChangeEvent);
               }
@@ -835,7 +832,7 @@
                  let attr = col.fieldId;
                  this.head_styledef.form.model[attr] = col.value;
                  var onChangeEvent = col.bind.onChangeEvent; //内容变化后事件
                  if (onChangeEvent.id) { //内容变化后事件
                  if (onChangeEvent?.id) { //内容变化后事件
                     this.onChange(onChangeEvent);
                  }
                  return
@@ -846,7 +843,7 @@
                  let attr = item.fieldId;
                  this.head_styledef.form.model[attr] = item.value;
                  var onChangeEvent = item.bind.onChangeEvent; //内容变化后事件
                  if (onChangeEvent.id) { //内容变化后事件
                  if (onChangeEvent?.id) { //内容变化后事件
                     this.onChange(onChangeEvent);
                  }
               }
@@ -863,7 +860,7 @@
                  let attr = col.fieldId;
                  this.head_styledef.form.model[attr] = col.value;
                  var onChangeEvent = col.bind.onChangeEvent; //内容变化后事件
                  if (onChangeEvent.id) { //内容变化后事件
                  if (onChangeEvent?.id) { //内容变化后事件
                     this.onChange(onChangeEvent);
                  }
                  return
@@ -874,7 +871,7 @@
                  let attr = item.fieldId;
                  this.head_styledef.form.model[attr] = item.value;
                  var onChangeEvent = item.bind.onChangeEvent; //内容变化后事件
                  if (onChangeEvent.id) { //内容变化后事件
                  if (onChangeEvent?.id) { //内容变化后事件
                     this.onChange(onChangeEvent);
                  }
               }
@@ -2574,14 +2571,17 @@
            })
         },
         onBtnClick(btn, pageData) {
            const $this = this
            if (btn.Prompt) {
               const sContent = btn.PromptContent || this.translate("confirm")
               uni.showModal({
                  title: this.translateSys("tip"),
                  content: btn.PromptContent || this.translate("confirm"),
                  success: function(res) {
                     if (res.confirm) {}
                     this.onButtonClicked(btn, pageData, -1);
                     if (res.confirm) {
                        $this.onButtonClicked(btn, pageData, -1);
                     }
                  },
               })
@@ -2590,14 +2590,17 @@
            }
         },
         onRowBtnClick(btn, pageData, index) {
            const $this = this
            if (btn.Prompt) {
               const sContent = btn.PromptContent || this.translate("confirm")
               uni.showModal({
                  title: this.translateSys("tip"),
                  content: btn.PromptContent || this.translate("confirm"),
                  success: function(res) {
                     if (res.confirm) {}
                     this.onButtonClicked(btn, pageData, index);
                     if (res.confirm) {
                        $this.onButtonClicked(btn, pageData, index);
                     }
                  },
               })
@@ -2611,7 +2614,7 @@
               button: "top",
               button_name: btn.ShowName,
               cls_id: btn.Cls_ID,
               function: "3018",
               function: "5601",
               master: {},
            };
            if (btn.FunCode == "TriggerEvent") {
@@ -2621,14 +2624,146 @@
               this.cancel();
            } else if (btn.FunCode == "Delete") {
               if (index > -1) {
                  const pageIndex = this.pageDetail.findIndex((
                     page) => {
                     return pageData.Name == page.Name;
                  })
                  const style = pageData.DefList[index];
                  //删除码盘中样式面板
                  pageData.DefList.splice(index, 1);
                  this.del(pageData, style, btn.AfterProcess_Event);
                  this.$set(this.pageDetail, pageIndex, pageData)
               }
            } else if (btn.FunCode == "Modify") {
               if (index > -1) {
                  const style = pageData.DefList[index];
                  if (btn.Edit_dlg.Model == "small") {
                     this.showSmallDialog(btn, style, enviroment, pageData);
                  } else if (btn.Edit_dlg.Model == "form") {
                     this.showFormDialog(btn, style, enviroment, pageData);
                  } else {
                     uni.showModal({
                        title: this.translateSys("tip"),
                        content: this.translateSys("unrealized"),
                        showCancel: false,
                        confirmText: this.translateSys("cancel")
                     });
                  }
               }
            } else {
               this.$Message.warning(this.$t("sys.unrealized"));
            }
         },
         //修改小窗口数据
         showSmallDialog(btn, row, enviroment, pageData) {
            var data = {
               Add_BtnName: btn.ShowName,
               EditDlgMode: btn.Edit_dlg.Model,
               clsid: btn.Cls_ID,
               objid: "",
               cls_name: btn.Cls_Name,
               Edit_dlg: btn.Edit_dlg
            };
            const objAttr = {}
            row.form.items.forEach(item => {
               if (item.name == "Layout") { //判断是否是栅栏格式
                  item.setting.colList.forEach(cols => {
                     if (cols != null) objAttr[cols
                        .fieldId] = cols.value;
                  });
               } else
                  objAttr[item.fieldId] = item.value;
            });
            const url = `../modal/3018?param=${JSON.stringify(data)}&titlename=${btn.Edit_dlg
               .Name}&editMode=1&objAttr=${JSON.stringify(objAttr)}&type=updateDataObj`
            var $this = this;
            uni.navigateTo({
               url: url,
               events: {
                  // 为指定事件添加一个监听器,获取被打开页面传送到当前页面的数据
                  updateDataObj: function(formData) {
                     const pageIndex = $this.pageDetail.findIndex((
                        page) => {
                        return pageData.Name == page.Name;
                     })
                     if (pageIndex < 0)
                        return
                     Object.assign(row.form.model, formData);
                     row.form.items.forEach(async (ele, index) => {
                        if (ele.name != "Layout") {
                           let value = formData[ele.fieldId]
                           if (value)
                              ele.value = value
                        } else {
                           ele.setting.colList.forEach(async (col) => {
                              if (col) {
                                 let value = formData[col.fieldId]
                                 if (value)
                                    col.value = value
                              }
                           });
                        }
                     })
                     $this.$set($this.pageDetail, pageIndex, pageData)
                  },
               }
            });
         },
         //修改自定义表单数据
         showFormDialog(btn, row, enviroment, pageData) {
            const objAttr = {}
            row.form.items.forEach(item => {
               if (item.name == "Layout") { //判断是否是栅栏格式
                  item.setting.colList.forEach(cols => {
                     if (cols != null) objAttr[cols
                        .fieldId] = cols.value;
                  });
               } else
                  objAttr[item.fieldId] = item.value;
            });
            const url = `../modal/form/index?param=${JSON.stringify(btn)}&titlename=${btn.Edit_dlg
               .Name}&editMode=1&objAttr=${JSON.stringify(objAttr)}&type=updateDataObj`
            var $this = this;
            uni.navigateTo({
               url: url,
               events: {
                  // 为指定事件添加一个监听器,获取被打开页面传送到当前页面的数据
                  updateDataObj: function(formData) {
                     const pageIndex = $this.pageDetail.findIndex((
                        page) => {
                        return pageData.Name == page.Name;
                     })
                     if (pageIndex < 0)
                        return
                     Object.assign(row.form.model, formData);
                     row.form.items.forEach(async (ele) => {
                        if (ele.name != "Layout") {
                           let value = formData[ele.fieldId]
                           if (value)
                              ele.value = value
                        } else {
                           ele.setting.colList.forEach(async (col) => {
                              if (col) {
                                 let value = formData[col.fieldId]
                                 if (value)
                                    col.value = value
                              }
                           });
                        }
                     })
                     $this.$set($this.pageDetail, pageIndex, pageData)
                  },
               }
            });
         },
         //确定
         ok(pageData) {
@@ -3367,6 +3502,7 @@
               line-height: 1.5;
               border: none;
               font-size: 30rpx;
               margin-right: 10rpx;
               display: inline-block;
               float: right;
               text-align: center;