Просмотр исходного кода

fix: 修复问题https://doc.weixin.qq.com/sheet/e3_ARAA_wbkAOcCN3i1eXa1TTCuhzXlb?scode=ANcAeQeGAAwnonzcboARAA_wbkAOc&tab=BB08J2 2025-7-11

johnsen 10 месяцев назад
Родитель
Сommit
9da48f3365

+ 43 - 0
src/api/platform/data/dataTemplate.js

@@ -158,6 +158,49 @@ export function querySelectorData(params) {
  * @param {*} params
  */
 export function queryDataByKey(params) {
+  // params = {
+  //   parameters: [
+  //     {
+  //       "relation": "AND",
+  //       "parameters": [
+  //         {
+  //           "relation": "OR",
+  //           "parameters": [
+  //             {
+  //               "key": "Q^bian_zhi_bu_men_^SL",
+  //               "value": "1257661032474607616",
+  //               "param": "e1b7f43a-3133-4e31-b81f-b3adf6af902f"
+  //             },
+  //             {
+  //               "key": "Q^bian_zhi_bu_men_^SL",
+  //               "value": "1259815355627339776",
+  //               "param": "86031690-fa6d-4919-8169-9771486d44c8"
+  //             }
+  //           ]
+  //         },
+  //         {
+  //           "relation": "OR",
+  //           "parameters": [
+  //             {
+  //               "key": "Q^shi_fou_guo_shen_^SL",
+  //               "value": "待处理",
+  //               "param": "754f9972-9d07-4581-bbcd-5440fa408d09"
+  //             }
+  //           ]
+  //         }
+  //       ]
+  //     },
+  //     {
+  //       "key": "filter_condition_key",
+  //       "value": ""
+  //     }
+  //   ],
+  //   requestPage: {
+  //     "pageNo": 1,
+  //     "limit": 20,
+  //     "totalCount": 27849
+  //   }
+  // }
   return request({
     url: DATA_URL() + '/data/template/queryDataByKey',
     method: 'post',

+ 1 - 0
src/business/platform/data/data-template/field-formatter.vue

@@ -640,5 +640,6 @@ export default {
 .ibps-data-template-data {
   word-break: break-all;
   word-wrap: break-word;
+  color: #333;
 }
 </style>

+ 2 - 3
src/business/platform/data/data-template/template.vue

@@ -441,8 +441,6 @@ export default {
       // 加载数据
       queryDataByKey(ActionUtils.formatParams(params, pagination))
         .then(response => {
-          this.dataList = []
-          this.selectorArr = []
           const dataResult = response.data.dataResult
           const pageResult = response.data.pageResult
           if (this.isTree) {
@@ -561,7 +559,8 @@ export default {
     // 查询
     onSearch() {
       this.page = 1
-      this.list = []
+      this.dataList = []
+      this.selectorArr = []
       this.loadData()
     },
     onDetailCancel() {

+ 3 - 0
src/business/platform/data/form/action.js

@@ -4,6 +4,7 @@ import { startFlowFromEdit } from '@/api/platform/bpmn/bpmInst'
 export default {
   methods: {
     emitEventHandler(actionKey, args) {
+      console.log('actionKey===>', actionKey, args)
       const action = args.attributes.button_type
       this.actionName = actionKey
       switch (action) {
@@ -83,6 +84,8 @@ export default {
     },
     // 保存
     handleSave() {
+      const formData = this.getFormData()
+      console.log('formData==>', formData)
       // 验证表单是否正确
       this.validate(valid => {
         if (valid) {

+ 3 - 2
src/business/platform/data/templaterender/custom-dialog/index.vue

@@ -1,7 +1,8 @@
 <template>
+  <!-- 修复自定义框回显 -->
   <van-field
     ref="input"
-    v-model="inputValue"
+    :value="value"
     :label="label"
     :name="name"
     :size="size"
@@ -383,6 +384,7 @@ export default {
       const result = this.formatData(value)
       this.$emit('input', result)
       // 处理回调
+      console.log('this.selectedData=-==>', this.formatData(value))
       this.$nextTick(() => {
         this.$emit('callback', this.selectedData)
       })
@@ -391,7 +393,6 @@ export default {
     initData(data) {
       this.selectedData = data
       this._setInputValue()
-
       this.$nextTick(() => {
         this.$emit('attr-callback', this.selectedData)
       })

+ 2 - 1
src/business/platform/data/templaterender/linkdata/index.vue

@@ -62,7 +62,8 @@
           />
         </van-tag>
       </div>
-      <input v-else :placeholder="placeholder" class="van-field__control" readonly>
+      <!-- 关联数据审阅时回显问题 -->
+      <input v-else :placeholder="placeholder" :value="selectedValue" class="van-field__control" readonly>
       <!-- 数据模版对话框-->
       <data-template-popup
         :tem="tem"

+ 7 - 6
src/business/platform/form/dynamic-form/form-item.vue

@@ -1,5 +1,5 @@
 <template>
-  <div v-show="!hidden">
+  <div v-show="!hidden" :data-field-type="field.field_type">
     <!-- 子表-->
     <ibps-dynamic-form-table
       v-if="field.field_type==='table'"
@@ -190,11 +190,12 @@ export default {
   },
   methods: {
     handleModels(name, val) {
-      this.models[name] = val
-      this.$emit('update:models', {
-        ...this.models,
-        [name]: val
-      })
+      this.$emit('setFieldDataByName', name, val)
+      // this.models[name] = val
+      // this.$emit('update:models', {
+      //   ...this.models,
+      //   [name]: val
+      // })
     },
     handleFieldRights(name, val) {
       if (this.$utils.isEmpty(name)) {

+ 2 - 1
src/business/platform/form/dynamic-form/form-table.vue

@@ -126,7 +126,8 @@
             @update-form-data="updateFormData"
           />
         </van-collapse-item>
-        <template v-if="dataModel.length === 0">
+        <!-- 修复部分值为null代码报错问题 -->
+        <template v-if="!dataModel || dataModel.length === 0">
           <van-field
             ref="input"
             v-model="inputValue"

+ 5 - 3
src/business/platform/form/dynamic-form/form.vue

@@ -30,8 +30,8 @@
       <ibps-dynamic-form-item
         v-else
         ref="formItem"
-        :key="field.name + index"
-        :models.sync="models"
+        :key="field.name + index + 1"
+        :models="models"
         :rights.sync="rights"
         :field="field"
         :code="code"
@@ -39,6 +39,7 @@
         :desc-position="formDef.attrs.descPosition"
         :params="formParams"
         :readonly-rights="readonlyRights"
+        @setFieldDataByName="setFieldData"
         @change-form-opinion="handleFormOpinion"
       />
     </template>
@@ -538,7 +539,8 @@ export default {
      * 设置表单字段数据
      */
     setFieldData(name, value) {
-      this.models[name] = value
+      // this.models[name] = value
+      this.$set(this.models, name, value)
     },
     /**
      * 设置表单权限

+ 1 - 0
src/components/ibps-toolbar/index.vue

@@ -87,6 +87,7 @@ export default {
         this.showMore = !this.showMore
       }
       if (action.callback) {
+        console.log(action.callback.toString())
         action.callback(action)
       } else {
         this.$emit(EVENT_ACTION, action)

+ 1 - 0
src/views/platform/data/dataTemplate/field-formatter.vue

@@ -719,6 +719,7 @@ export default {
 .ibps-data-template-data {
   word-break: break-all;
   word-wrap: break-word;
+  color: #333;
 }
 ::v-deep .van-cell__title {
     width: 65%;

+ 7 - 3
src/views/platform/data/template-list.vue

@@ -466,6 +466,8 @@ export default {
     }
   },
   created() {
+    // 解决脚本串行问题
+    JTemplate.cleanEvents()
     const params = this.$route.params
     // 防抖防止脚本有调用加载数据方法被默认请求覆盖
     this.loadData = this.debounce(this.loadData1, 300)
@@ -926,13 +928,14 @@ export default {
       })
     },
     getSelection(position, data) {
-      const selection = []
+      let selection = []
       if (position === 'toolbar') {
         this.checkedIds.forEach(d => {
           selection.push(d[this.idKey])
         })
       } else {
-        selection.push(data[this.idKey])
+        // 单个按钮时取的单个
+        selection = data[this.idKey]
       }
       return selection
     },
@@ -1044,7 +1047,8 @@ export default {
       })
 
       // TODO:目前版本支持按钮
-      const allowButtons = ['edit', 'detail', 'remove']
+      // 增加自定义按钮实现
+      const allowButtons = ['edit', 'detail', 'remove', 'custom']
 
       this.defaultToolbars = toolbars
       this.toolbars = toolbars.filter(b => {