فهرست منبع

修复由于获取的type类型错误导致的id转换失败,修复单选时未清空导致的label累加

cyy 1 سال پیش
والد
کامیت
8519b65f8b

+ 9 - 2
src/business/platform/data/data-template/field-formatter.vue

@@ -56,7 +56,8 @@ export default {
       default: ' '
     },
     fieldType: String,
-    tem: Object
+    tem: Object,
+    tag: String
   },
   data() {
     return {
@@ -98,9 +99,13 @@ export default {
         return
       }
       // 数据格式
-      this.dataFormatter(value, this.fieldType, fieldOptions)
+      this.dataFormatter(value, fieldType, fieldOptions, this.labelKey)
     },
     dataFormatter(value, fieldType, fieldOptions) {
+      if (this.tag == 'Y') {
+        this.formatterCustomDialog(value, fieldOptions)
+        return
+      }
       switch (fieldType) {
         case 'hidden':
         case 'text':
@@ -345,9 +350,11 @@ export default {
     },
     // 处理对话框id值
     formatterDataTemplateValue: function(value, key) {
+      this.label = ''
       value.split(',').forEach(id => {
         const labelKeys = buildLabelTitle(this.tem)
         const a = this.handleLabel(this.data, labelKeys)
+
         this.label += this.$utils.isNotEmpty(a) ? a : ''
         // getDataById({ id: id, key: key })
         //   .then(response => {

+ 28 - 17
src/business/platform/data/data-template/template.vue

@@ -67,11 +67,22 @@
                     :template-fields="templateFields"
                   /> -->
                   <div>
-                    <div v-for="(item, i) in data.showlabel" :key="i">
-                      <span v-if="i !== 'id_'">{{ item.label }}</span>
-                      <span v-if="i !== 'id_'">:</span>
-                      <span
-                        v-if="item && item.fieldType !== 'selector' && i !== 'id_'"
+                    <div
+                      v-for="(item, i) in data.showlabel"
+                      :key="i"
+                      style="display:flex"
+                    >
+                      <span>{{ item.label }}</span>
+                      <span>:</span>
+                      <field-formatter
+                        :label-key="item.bt"
+                        :data="data"
+                        :template-fields="templateFields"
+                      />
+                      <!-- <span
+                        v-if="
+                          item && item.fieldType !== 'selector' && i !== 'id_'
+                        "
                         >{{ item.val }}</span
                       >
                       <span
@@ -81,7 +92,7 @@ v-else-if="i !== 'id_'"
                             ? selectorArr.find(i => i.id_ === item.val).name_
                             : ''
                         }}</van-tag></span
-                      >
+                      > -->
                     </div>
                   </div>
                 </van-checkbox>
@@ -152,11 +163,7 @@ v-else-if="i !== 'id_'"
 </template>
 
 <script>
-import {
-  queryDataByKey,
-  queryDataById,
-  getByKey
-} from '@/api/platform/data/dataTemplate'
+import { queryDataByKey, queryDataById } from '@/api/platform/data/dataTemplate'
 import { remoteRequest } from '@/utils/remote'
 import TreeUtils from '@/utils/tree'
 import ActionUtils from '@/utils/action'
@@ -181,6 +188,7 @@ export default {
     searchPlaceholder: String,
     isTree: Boolean,
     datat: Object,
+    fieldType: String,
     idKey: {
       // 唯一键
       type: String,
@@ -292,11 +300,11 @@ export default {
     }
   },
   created() {
-    const sql = `select name_,id_ from ibps_party_entity `
-    this.$common.request('sql', sql).then(res => {
-      const { data } = res.variables
-      this.selectorArr = data
-    })
+    // const sql = `select name_,id_ from ibps_party_entity `
+    // this.$common.request('sql', sql).then(res => {
+    //   const { data } = res.variables
+    //   this.selectorArr = data
+    // })
   },
   methods: {
     initData() {
@@ -389,6 +397,7 @@ export default {
       if (!this.isTre) {
         pagination = { page: this.page }
       }
+
       // TODO: 分页数据处理
       // 加载数据
       queryDataByKey(ActionUtils.formatParams(params, pagination))
@@ -422,9 +431,11 @@ export default {
 
                     b = {
                       label: it.label,
-                      val: d[it.name],
+                      bt: it.name,
+                      val: {},
                       fieldType: it.field_type
                     }
+                    b.val[it.name] = d[it.name]
                     fb.showlabel[it.name] = b
                   })
                   this.dataList.push(fb)

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

@@ -64,6 +64,7 @@
             :label-key="showLableKey"
             :data="item"
             :tem="tem"
+            :tag="'Y'"
             :field-type="fieldType"
             :template-fields="templateFields"
           />
@@ -91,6 +92,7 @@
         :is-tree="isTree"
         :query-key="queryKey"
         :template-fields="templateFields"
+        :field-type="fieldType"
         :dynamic-params="dynamicParams"
         @init-data="initData"
         @cancel="onCancel"