Browse Source

feat: 组件库,新增、编辑自定义组件、业务组件添加分组表单项

wu.jian2 1 year ago
parent
commit
6bdab95225
1 changed files with 45 additions and 0 deletions
  1. 45 0
      data-room-ui/packages/ComponentList/EditForm.vue

+ 45 - 0
data-room-ui/packages/ComponentList/EditForm.vue

@@ -89,6 +89,40 @@
             class="bs-el-input-number"
           />
         </el-form-item>
+        <el-form-item label="分组">
+          <div v-if="type === 'component'">
+            <el-select
+              v-model="dataForm.parentCode"
+              class="bs-el-select"
+              popper-class="bs-el-select"
+              clearable
+              filterable
+            >
+              <el-option
+                v-for="catalogItem in catalogList"
+                :key="catalogItem.id"
+                :label="catalogItem.name"
+                :value="catalogItem.code"
+              />
+            </el-select>
+          </div>
+          <div v-else>
+            <el-select
+              v-model="dataForm.type"
+              class="bs-el-select"
+              popper-class="bs-el-select"
+              clearable
+              filterable
+            >
+              <el-option
+                v-for="catalogItem in catalogList"
+                :key="catalogItem.id"
+                :label="catalogItem.name"
+                :value="catalogItem.code"
+              />
+            </el-select>
+          </div>
+        </el-form-item>
         <el-form-item label="排序">
           <el-input-number
             v-model="dataForm.orderNum"
@@ -148,6 +182,7 @@ export default {
       bizType: 'native',
       resolutionRatioValue: '',
       resolutionRatio: {},
+      catalogList: [],
       BizList: [
         {
           label: 'echarts组件',
@@ -198,6 +233,7 @@ export default {
         name: '',
         icon: '',
         code: '',
+        parentCode: '',
         remark: '',
         iconColor: '#007aff',
         components: '',
@@ -293,6 +329,9 @@ export default {
       const code = nodeData ? nodeData.code : ''
       this.formVisible = true
       this.$nextTick(() => {
+        this.$dataRoomAxios.get('/bigScreen/type/list/bizComponentCatalog').then((resp) => {
+          this.catalogList = resp
+        })
         if (code) {
           this.$dataRoomAxios.get(`/bigScreen/bizComponent/info/${code}`).then((resp) => {
             this.$set(this, 'title', resp.name)
@@ -301,6 +340,7 @@ export default {
             this.$set(this.dataForm, 'orderNum', nodeData.orderNum)
             this.$set(this.dataForm, 'type', resp.type)
             this.$set(this.dataForm, 'id', resp.id)
+            this.$set(this.dataForm, 'parentCode', resp.parentCode)
           })
         } else {
           this.$set(this.dataForm, 'name', '')
@@ -308,6 +348,7 @@ export default {
           this.$set(this.dataForm, 'type', parentCode)
           this.$set(this.dataForm, 'orderNum', 0)
           this.$set(this.dataForm, 'id', '')
+          this.$set(this.dataForm, 'parentCode', parentCode)
         }
       })
     },
@@ -316,6 +357,9 @@ export default {
       const code = nodeData ? nodeData.code : ''
       this.formVisible = true
       this.$nextTick(() => {
+        this.$dataRoomAxios.get('/bigScreen/type/list/componentCatalog').then((resp) => {
+          this.catalogList = resp
+        })
         if (code) {
           this.$dataRoomAxios.get(`/bigScreen/design/info/code/${code}`).then((resp) => {
             this.$set(this, 'title', resp.name)
@@ -332,6 +376,7 @@ export default {
             this.$set(this.dataForm, 'orderNum', nodeData.orderNum)
             this.$set(this.dataForm, 'pageTemplateId', resp?.pageTemplateId)
             this.$set(this.dataForm, 'pageConfig', resp?.pageConfig)
+            this.$set(this.dataForm, 'parentCode', resp?.parentCode)
             const { w, h } = resp.pageConfig
             this.resolutionRatio.w = w
             this.resolutionRatio.h = h