cyy
2024-08-26 41e6159cfa12416155adcd6747e48fab28ffc534
pages/modal/5601.vue
@@ -24,7 +24,7 @@
            <!-- 栅格布局 -->
            <uni-row v-else :gutter="item.setting.gutter">
               <uni-col
                  :span=" item.setting.spanList && item.setting.spanList[key - 1]? item.setting.spanList[key - 1] : 24 / item.setting.col"
                  :span=" item.setting.spanList && item.setting.spanList[key]? item.setting.spanList[key] : 24 / item.setting.col"
                  v-for="(col,key) in item.setting.colList">
                  <uni-forms-item :label="col.label +':'" :label-width="col.labelWidth+'px'">
                     <uni-data-picker v-if="col.name=='Select'" :class="col.disabled?'input-disabled':''"
@@ -84,7 +84,7 @@
                                    <!-- 栅格布局 -->
                                    <uni-row class="demo-uni-row" v-else :gutter="item.setting.gutter">
                                       <uni-col
                                          :span=" item.setting.spanList && item.setting.spanList[key - 1]? item.setting.spanList[key - 1] : 24 / item.setting.col"
                                          :span=" item.setting.spanList && item.setting.spanList[key]? item.setting.spanList[key] : 24 / item.setting.col"
                                          v-for="(cols,key) in item.setting.colList">
                                          <view v-if="cols!=null">
                                             <text class="txt_title"
@@ -116,8 +116,9 @@
                     <view class="view-bottom" v-if="pageData.OK_Button==true">
                        <button type="default" @tap="cancel"
                           class="btn_cancel">{{translateSys('cancel')}}</button>
                        <button type="primary" @tap="ok(pageData)"
                           class="btn_add">{{translateSys('ok')}}</button>
                        <button type="primary" @tap="ok(pageData)" class="btn_add"
                           :class="pageData.okLoading?'btn_disabled':''"
                           :disabled="pageData.okLoading? true:false">{{translateSys('ok')}}</button>
                     </view>
                  </view>
               </swiper-item>
@@ -260,8 +261,9 @@
            //加载Tab页签
            const pageList = this.param.Sub_Page || []
            for (let i in pageList) {
               page.DefList = [];
               const page = pageList[i]
               page.DefList = [];
               page.StyleDef = await this.Detail_UIstyleGetInfo(
                  this.ClsID,
                  page.UI_Style.ID
@@ -376,69 +378,117 @@
         },
         async Detail_UIstyleGetInfo(class_id, style_id) { //获取自定义表单样式
            var $this = this;
            var dataInfo = {
               class_id: class_id,
               ui_style_id: style_id,
            };
            this.$store.dispatch('UIStyleGetInfo', dataInfo).then(async (ret) => {
               // console.log(ret);
               if (ret.err_code == 0) {
                  var styledef = "";
                  if (ret.result.style_def) {
                     //mobox2的style_def是json字符串
                     styledef = ret.result.style_def.replace(/\\/g, "");
                     //mobox3的style_def是base64字符串
                     if (!ret.result.style_def.includes('"')) styledef = Base64
                        .decode(ret.result
                           .style_def);
                  }
            try {
               var $this = this;
               var dataInfo = {
                  class_id: class_id,
                  ui_style_id: style_id,
               };
               const ret = await this.getUIStyleInfo(dataInfo)
               var styledef = "";
               if (ret.result.style_def) {
                  //mobox2的style_def是json字符串
                  styledef = ret.result.style_def.replace(/\\/g, "");
                  //mobox3的style_def是base64字符串
                  if (!ret.result.style_def.includes('"')) styledef = Base64
                     .decode(ret.result
                        .style_def);
               }
                  const detailstyledef = ret.result.style_def ? JSON.parse(
                     styledef) : {};
                  detailstyledef.SelBut_Checked = true;
                  for (let index in styledefHead.form.items) {
                     const ele = styledefHead.form.items[index]
               const detailstyledef = ret.result.style_def ? JSON.parse(
                  styledef) : {};
               detailstyledef.SelBut_Checked = true;
               for (let index in detailstyledef.form.items) {
                  const ele = detailstyledef.form.items[index]
                     if (ele.name != "Layout") {
                        if (ele.useDict == true) { //判断useDict是否使用字典
                           await this.DictGetInfo(ele.bind.dict,
                  if (ele.name != "Layout") {
                     if (ele.useDict == true) { //判断useDict是否使用字典
                        await this.DictGetInfo(ele.bind.dict,
                           detailstyledef.form
                           .model, ele);
                     }
                  } else {
                     for (let j in ele.setting.colList) {
                        const col = ele.setting.colList[j]
                        if (col?.useDict == true) {
                           await this.DictGetInfo(col
                              .bind.dict,
                              detailstyledef.form
                              .model, ele);
                        }
                     } else {
                        for (let j in ele.setting.colList) {
                           const col = ele.setting.colList[j]
                           if (col?.useDict == true) {
                              await this.DictGetInfo(col
                                 .bind.dict,
                                 detailstyledef.form
                                 .model, col);
                           }
                              .model, col);
                        }
                     }
                  }
                  console.log("Detail_UIstyleGetInfo", detailstyledef);
                  return detailstyledef
               } else {
                  return {}
                  uni.showModal({
                     title: this.translateSys("error") + "2",
                     content: ret.err_msg,
                     showCancel: false,
                     confirmText: this.translateSys("cancel")
                  });
               }
            }).catch(ex => {
               console.log("Detail_UIstyleGetInfo", detailstyledef);
               return detailstyledef
            } catch (ex) {
               // console.log(ex);
               uni.showModal({
                  title: this.translateSys("error") + "2.1",
                  title: this.translateSys("error") + "2",
                  content: ex.errMsg,
                  showCancel: false,
                  confirmText: this.translateSys("cancel")
               });
               return {}
            });
            }
            // this.$store.dispatch('UIStyleGetInfo', dataInfo).then(async (ret) => {
            //    // console.log(ret);
            //    if (ret.err_code == 0) {
            //       var styledef = "";
            //       if (ret.result.style_def) {
            //          //mobox2的style_def是json字符串
            //          styledef = ret.result.style_def.replace(/\\/g, "");
            //          //mobox3的style_def是base64字符串
            //          if (!ret.result.style_def.includes('"')) styledef = Base64
            //             .decode(ret.result
            //                .style_def);
            //       }
            //       const detailstyledef = ret.result.style_def ? JSON.parse(
            //          styledef) : {};
            //       detailstyledef.SelBut_Checked = true;
            //       for (let index in detailstyledef.form.items) {
            //          const ele = detailstyledef.form.items[index]
            //          if (ele.name != "Layout") {
            //             if (ele.useDict == true) { //判断useDict是否使用字典
            //                await this.DictGetInfo(ele.bind.dict,
            //                   detailstyledef.form
            //                   .model, ele);
            //             }
            //          } else {
            //             for (let j in ele.setting.colList) {
            //                const col = ele.setting.colList[j]
            //                if (col?.useDict == true) {
            //                   await this.DictGetInfo(col
            //                      .bind.dict,
            //                      detailstyledef.form
            //                      .model, col);
            //                }
            //             }
            //          }
            //       }
            //       console.log("Detail_UIstyleGetInfo", detailstyledef);
            //       return detailstyledef
            //    } else {
            //       return {}
            //       uni.showModal({
            //          title: this.translateSys("error") + "2",
            //          content: ret.err_msg,
            //          showCancel: false,
            //          confirmText: this.translateSys("cancel")
            //       });
            //    }
            // }).catch(ex => {
            //    // console.log(ex);
            //    uni.showModal({
            //       title: this.translateSys("error") + "2.1",
            //       content: ex.errMsg,
            //       showCancel: false,
            //       confirmText: this.translateSys("cancel")
            //    });
            //    return {}
            // });
         },
@@ -481,12 +531,42 @@
            }
         },
         getDictInfo(info) { //Mobox3得到得到字典信息字典项列表
         getDictInfo(info) { //Mobox3得到字典信息字典项列表
            const loginInfo = this.$store.getters.loginid
            const mobxoSApi = this.$store.getters.getMobxoSApi
            return new Promise((resolve, reject) => {
               uni.request({
                  url: mobxoSApi + 'api/dict/GetInfo2?sessionid=' + loginInfo.result.session_id,
                  data: info,
                  method: 'POST',
                  dataType: "json",
                  success: (_res) => {
                     // console.log(_res);
                     const ret = _res.data
                     if (ret.err_code == 0) {
                        resolve(ret);
                     } else {
                        reject({
                           "errMsg": ret.err_msg
                        });
                     }
                  },
                  fail: (err) => {
                     // console.log(err);
                     reject(err);
                  }
               })
            })
         },
         getUIStyleInfo(info) { //Mobox3数据类界面样式
            const loginInfo = this.$store.getters.loginid
            const dataSApi = this.$store.getters.getDataSApi
            return new Promise((resolve, reject) => {
               uni.request({
                  url: dataSApi + 'api/class/uistyle/GetInfo?sessionid=' + loginInfo.result
                     .session_id,
                  data: info,
                  method: 'POST',
                  dataType: "json",
@@ -522,7 +602,7 @@
               console.log(result.decodedata);
               item.value = result.decodedata;
               var $this = this;
               if (item.oldvalue != item.value) {
               if (item.oldvalue != item.value && item.value.trim() != "") {
                  item.oldvalue = item.value;
                  var attr = item.fieldId;
                  this.head_styledef.form.model[attr] = item.value;
@@ -610,7 +690,7 @@
         onEnterChange(item) { //回车,点击按钮,取消节点事件
            console.log(item);
            if (item.oldvalue != item.value) {
            if (item.oldvalue != item.value && item.value.trim() != "") {
               item.oldvalue = item.value;
               var attr = item.fieldId;
               this.head_styledef.form.model[attr] = item.value;
@@ -628,47 +708,48 @@
         },
         getDetailAttrList(pageData) {
            const detailAttrList = [];
            pageData.DefList.forEach(style => {
               var detail_attr = {};
               style.form.items.forEach(item => {
                  if (item.name == "Layout") { //判断是否是栅栏格式
                     item.setting.colList.forEach(cols => {
                        if (cols != null) detail_attr[cols
                           .fieldId] = cols.value;
                     });
                  } else
                     detail_attr[item.fieldId] = item.value;
               });
               detail_attr['id'] = style.form.objId;
               if (pageData.Select_Button == true) { //判断选择按钮是否为true
                  if (style.SelBut_Checked == true)
                     detailAttrList.push(detail_attr);
               } else
                  detailAttrList.push(detail_attr);
            });
            // console.log(detailAttrList);
            //获取正在码盘里没有显示的字段
            pageData.DefList.forEach(style => {
               style.form.attrs.forEach(attr => {
                  for (var key in detailAttrList) {
                     if (style.form.objId == detailAttrList[key][
                           'id'
                        ]) {
                        var keys = Object.keys(detailAttrList[key]);
                        var isflag = true;
                        keys.forEach((ele) => {
                           if (ele == attr.attr) isflag =
                              false;
            if (pageData.DefList) {
               pageData.DefList.forEach(style => {
                  var detail_attr = {};
                  style.form.items.forEach(item => {
                     if (item.name == "Layout") { //判断是否是栅栏格式
                        item.setting.colList.forEach(cols => {
                           if (cols != null) detail_attr[cols
                              .fieldId] = cols.value;
                        });
                        if (isflag) {
                           detailAttrList[attr.attr] = attr.value;
                     } else
                        detail_attr[item.fieldId] = item.value;
                  });
                  detail_attr['id'] = style.form.objId;
                  if (pageData.Select_Button == true) { //判断选择按钮是否为true
                     if (style.SelBut_Checked == true)
                        detailAttrList.push(detail_attr);
                  } else
                     detailAttrList.push(detail_attr);
               });
               // console.log(detailAttrList);
               //获取正在码盘里没有显示的字段
               pageData.DefList.forEach(style => {
                  style.form.attrs.forEach(attr => {
                     for (var key in detailAttrList) {
                        if (style.form.objId == detailAttrList[key][
                              'id'
                           ]) {
                           var keys = Object.keys(detailAttrList[key]);
                           var isflag = true;
                           keys.forEach((ele) => {
                              if (ele == attr.attr) isflag =
                                 false;
                           });
                           if (isflag) {
                              detailAttrList[attr.attr] = attr.value;
                           }
                        }
                     }
                  }
                  });
               });
            });
            }
            const jsonlist = [];
            detailAttrList.forEach(attr => {
               jsonlist.push({
@@ -711,6 +792,7 @@
                  var $this = this;
                  const jsonList = []
                  this.pageDetail.forEach((page) => {
                     jsonList.push({
                        page_name: page.Name,
                        item_list: $this.getDetailAttrList(page
@@ -718,6 +800,7 @@
                           .Select_Button),
                        ext_data: page.ExtData || {}
                     })
                  })
                  const data_json = Base64.encode(
                     JSON.stringify(jsonList)
@@ -742,7 +825,7 @@
                     input_param: input_param,
                  };
                  this.$store.dispatch('runCustomEvent', dataInfo).then(ret => {
                     // console.log(ret);
                     console.log(ret);
                     if (ret.err_code == 0) {
                        var result = ret.result;
                        if (result.ret != 0) {
@@ -789,6 +872,7 @@
                           if (result.result_type == 0 && result.action) {
                              result.action.forEach(item => {
                                 if (item.action_type ==
                                    "insert_subtable_page_row"
                                 ) { //码盘中
@@ -834,7 +918,7 @@
                                             .page_name +
                                             this
                                             .translateSys(
                                                "sys.quotation_mark_right"
                                                "quotation_mark_right"
                                             ) +
                                             this
                                             .translate(
@@ -1069,6 +1153,35 @@
                                                         ele2
                                                         .attr
                                                      ) {
                                                         if (ele.name ==
                                                            'Select' &&
                                                            ele2
                                                            .choice_list
                                                         ) {
                                                            const
                                                               dictItemList = [];
                                                            const
                                                               choiceList =
                                                               ele2
                                                               .choice_list ||
                                                               [];
                                                            for (let d in
                                                                  choiceList) {
                                                               const
                                                                  val =
                                                                  choiceList[
                                                                     d
                                                                  ];
                                                               dictItemList
                                                                  .push({
                                                                     text: val,
                                                                     value: val
                                                                  });
                                                            }
                                                            ele.dict =
                                                               dictItemList;
                                                         }
                                                         ele.value =
                                                            ele2
                                                            .value;
@@ -1092,6 +1205,38 @@
                                                                     ele2
                                                                     .attr
                                                                  ) {
                                                                     if (col
                                                                        .name ==
                                                                        'Select' &&
                                                                        ele2
                                                                        .choice_list
                                                                     ) {
                                                                        const
                                                                           dictItemList = [];
                                                                        const
                                                                           choiceList =
                                                                           ele2
                                                                           .choice_list ||
                                                                           [];
                                                                        for (
                                                                           let d in
                                                                              choiceList
                                                                        ) {
                                                                           const
                                                                              val =
                                                                              choiceList[
                                                                                 d
                                                                              ];
                                                                           dictItemList
                                                                              .push({
                                                                                 text: val,
                                                                                 value: val
                                                                              });
                                                                        }
                                                                        col.dict =
                                                                           dictItemList;
                                                                     }
                                                                     col.value =
                                                                        ele2
                                                                        .value;
@@ -1249,7 +1394,7 @@
               return;
            }
            const pageData = this.pageDetail.find((page) => {
               return value.page_name == page.Name;
               return data.page_name == page.Name;
            });
            if (!pageData)
               return
@@ -1292,11 +1437,11 @@
         viewAceionContent(data) {
            var $this = this;
            const pageData = $this.pageDetail.find((page) => {
               return value.page_name == page.Name;
               return data.page_name == page.Name;
            });
            if (!pageData)
               return
            console.log("viewAceionContent", pageData)
            pageData.ExtData = data.ext_data || {}
            if (JSON.stringify(data.content) == '{}') {
@@ -1304,7 +1449,7 @@
            }
            data.content.forEach(cont => {
               var styleStr = JSON.stringify(pageData.StyleDef);
               console.log("viewAceionContent2", pageData)
               var detailStyle = JSON.parse(styleStr);
               detailStyle.SelBut_Checked = data.checkbox ?? true;
               detailStyle.form.objId = cont.id;
@@ -1525,19 +1670,20 @@
               uni.showModal({
                  title: this.translateSys("tip"),
                  content: this.translate(
                        "page.tip_no_data_first") +
                        "tip_no_data_first") +
                     this.translateSys(
                        "quotation_mark_left") + pageData.Name + this
                     .translateSys(
                        "sys.quotation_mark_right") +
                        "quotation_mark_right") +
                     this.translate(
                        "page.tip_no_data_last"),
                        "tip_no_data_last"),
                  showCancel: false,
                  confirmText: this.translateSys("cancel")
               });
               return false;
            }
            //获取表头属性
            pageData.okLoading = true
            var head_attr = {};
            this.$data.head_styledef.form.items.forEach(item => {
               if (item.name == "Layout") { //判断是否是栅栏格式
@@ -1618,6 +1764,7 @@
               });
            });
            if (jsonlist.length == 0) {
               pageData.okLoading = false
               uni.showModal({
                  title: this.translateSys("tip"),
                  content: this.translate("tip_no_select_data"),
@@ -1909,7 +2056,9 @@
                        "cancel")
                  });
               }
               pageParam.okLoading = false
            }).catch(ex => {
               pageParam.okLoading = false
               var tip = typeof ex == "string" ? ex : ex.errMsg;
               uni.showModal({
                  title: this.translateSys("error") + "8.1",
@@ -2143,9 +2292,16 @@
                  font-size: 38rpx;
                  font-weight: bold;
                  float: right;
                  color: #fff;
                  display: inline-block;
               }
               .btn_disabled {
                  background-color: #ddd;
                  color: #888;
               }
            }
         }