whj 11 ay önce
ebeveyn
işleme
220ae6aa57

+ 8 - 17
src/views/custom/form/modules/component/index.vue

@@ -113,7 +113,6 @@ export default {
               label: item.chineseName,
               isDelete: false,
             }
-            console.log(component)
             this.components.push(component)
           })
         })
@@ -174,22 +173,14 @@ export default {
       const {
         form: { setFieldsValue },
       } = this
-      if (detail.attrs.selectType === 'radio') {
-        const data = rows[0]
-        const value = {}
-        detail.attrs.connect.forEach((item) => {
-          value[item.bind] = data[item.columnName]
-        })
-        this.$nextTick(() => {
-          setFieldsValue(value)
-        })
-      } else {
-        this.$nextTick(() => {
-          setFieldsValue({
-            [detail.attrs.connect[0].bind]: keys,
-          })
-        })
-      }
+      const data = rows[0]
+      const value = {}
+      detail.attrs.connect.forEach((item) => {
+        value[item.bind] = data[item.columnName]
+      })
+      this.$nextTick(() => {
+        setFieldsValue(value)
+      })
     },
   },
 }

+ 12 - 11
src/views/custom/form/modules/component/modules/Component.vue

@@ -8,7 +8,7 @@
       <!-- 文本域 -->
       <a-textarea v-if="detail.type==='textarea'" v-bind="detail.attrs" v-decorator="[detail.value, { rules: [{ required: detail.required, message: detail.attrs.placeholder}] }]" />
       <!-- 下拉框 -->
-      <a-select v-if="detail.type==='select'" v-bind="detail.attrs" v-decorator="[detail.value, { rules: [{ required: detail.required, message: detail.attrs.placeholder}] }]" >
+      <a-select v-if="detail.type==='select'" v-bind="detail.attrs" v-decorator="[detail.value, { rules: [{ required: detail.required, message: detail.attrs.placeholder}] }]">
         <!-- <a-select-option v-for="item in detail.options" :value="item.value" :key="item.value">
           {{ item.label }}
         </a-select-option> -->
@@ -21,7 +21,9 @@
       <UploadImg v-if="detail.type==='uploadImg'" v-bind="detail.attrs" v-decorator="[detail.value, { rules: [{ required: detail.required, message: detail.attrs.placeholder}] }]" />
       <!-- 选择数据 -->
       <template v-if="detail.type==='dataSelect'">
-        <a-input style="width:70%" v-bind="detail.attrs" v-decorator="[detail.value, { rules: [{ required: detail.required, message: detail.attrs.placeholder}] }]" />
+        <a-input v-if="detail.attrs.connect.length>1" style="width:70%" v-bind="detail.attrs" v-decorator="[detail.attrs.connect[1].bind, { rules: [{ required: detail.required, message: detail.attrs.placeholder}] }]" />
+        <a-input v-else style="width:70%" v-bind="detail.attrs" />
+        <a-input style="width:70%" v-show="false" v-decorator="[detail.value]" />
         <a-button style="width:30%" type="primary" @click="handleSelectData">选择</a-button>
       </template>
     </a-form-item>
@@ -41,30 +43,29 @@ export default {
   name: 'MComponent',
   components: {
     UploadFile,
-    UploadImg
+    UploadImg,
   },
   props: {
     detail: {
       type: Object,
       required: true,
-      default: () => {}
+      default: () => {},
     },
     config: {
       type: Object,
-      required: true
-    }
+      required: true,
+    },
   },
   methods: {
-    handleSelect () {
+    handleSelect() {
       this.$emit('select', this.detail)
     },
-    handleSelectData () {
+    handleSelectData() {
       this.$emit('selectInfo', this.detail)
-    }
-  }
+    },
+  },
 }
 </script>
 
 <style>
-
 </style>

+ 8 - 7
src/views/custom/form/modules/component/modules/Detail.vue

@@ -81,7 +81,7 @@
           <a-select v-model="model.attrs.dict" placeholder="请选择" :options="DictCache.getChildrenList('TABLE_MAPPING')" @change="dictChange">
           </a-select>
         </a-form-item>
-        <a-form-item label="选择类型">
+        <!-- <a-form-item label="选择类型">
           <a-radio-group name="radioGroup" v-model="model.attrs.selectType" @change="selectTypeChange">
             <a-radio value="radio">
               单选
@@ -90,9 +90,9 @@
               多选
             </a-radio>
           </a-radio-group>
-        </a-form-item>
+        </a-form-item> -->
         <a-form-item label="默认字段" v-if="model.attrs.connect.length">
-          <a-select v-model="model.attrs.connect[0].columnName" placeholder="请选择">
+          <a-select v-model="model.attrs.connect[1].bind" placeholder="请选择" @change="val=>model.attrs.connect[1].columnName = val">
             <a-select-option v-for="item in tableList" :value="item.columnName" :key="item.columnName">
               {{ item.columnComment }}
             </a-select-option>
@@ -170,10 +170,10 @@ export default {
       if (this.model.attrs.dict !== undefined && this.model.attrs.dict !== '') {
         this.dictChange(this.model.attrs.dict)
       }
-      this.additionalField =
-        val.attrs.connect && val.attrs.connect.length > 1
-          ? val.attrs.connect.slice(1, val.attrs.connect.length).map((item) => item.columnName)
-          : []
+      // this.additionalField =
+      //   val.attrs.connect && val.attrs.connect.length > 1
+      //     ? val.attrs.connect.slice(1, val.attrs.connect.length).map((item) => item.columnName)
+      //     : []
     },
     addOption() {
       this.model.attrs.options.push({
@@ -201,6 +201,7 @@ export default {
             columnName: 'id',
             columnComment: 'id',
           })
+          this.model.attrs.connect.push({})
         }
       })
     },