xiaochan vor 1 Jahr
Ursprung
Commit
589961f160

+ 2 - 1
src/api/reports/report-query-center.ts

@@ -36,7 +36,8 @@ export interface PageJsonObject {
     fromConfig: {
         labelWidth?: string | number,
         inline: boolean
-    }
+    },
+    defaultValue: any
 }
 
 export interface ReportForms {

+ 1 - 1
src/components/xiao-chan/combo-grid/XcComboGridV2.vue

@@ -3,7 +3,7 @@ import {computed, nextTick, onMounted, onUnmounted, ref, watch} from "vue";
 import XEUtils from 'xe-utils'
 import {useVModels} from "@vueuse/core";
 import {VxeTableInstance} from "vxe-table";
-import {listFilter, notNullAndLike} from "@/utils/list-utlis";
+import {listFilter} from "@/utils/list-utlis";
 
 const props = defineProps({
   modelValue: {

+ 2 - 2
src/utils/database/magic-api-request.ts

@@ -5,8 +5,8 @@ import {CyMessageBox} from "../../components/cy/message-box";
 
 const service = axios.create({
     // @ts-ignore
-    // baseURL: import.meta.env.VITE_DATA_BASE,
-    baseURL: 'http://172.16.32.160:9205',
+    baseURL: import.meta.env.VITE_DATA_BASE,
+    // baseURL: 'http://172.16.32.160:9205',
     withCredentials: true,
     timeout: 0
 })

+ 55 - 0
src/views/data-base/page-editor-help-v2/components/PageHelpTable.vue

@@ -0,0 +1,55 @@
+<template>
+  <vxe-table
+      :data="data"
+      :ref="setMainTableRef"
+      border
+      :height="height"
+      :column-config="{resizable: true}"
+      style="{width: 100%}"
+      :row-config="{height: 50 , isCurrent: true,isHover:true, useKey: true} "
+      :scroll-x="{enabled: false}"
+      :scroll-y="{gt: 0 ,enabled: true}"
+      show-overflow
+  >
+    <VxeColumn v-for="(item) in columns"
+               v-bind="columnBind(item)"
+    >
+      <template #default="{row , $rowIndex}"
+                v-if="item.func && item.func.default"
+      >
+        <Component :is="handleTableColumnDefault(row, $rowIndex, item  )"/>
+      </template>
+    </VxeColumn>
+  </vxe-table>
+</template>
+
+<script setup lang="ts">
+import {PropType} from "vue/dist/vue";
+import {PageStore} from "@/views/data-base/page-editor-help-v2/page-help-v2";
+
+const props = defineProps({
+  data: Array,
+  height: Number,
+  columns: Array,
+  handleTableColumnDefault: {
+    type: Function
+  },
+  store: {
+    type: Object as PropType<PageStore>,
+  }
+})
+
+const columnBind = (item) => {
+  const {func, ...temp} = item
+  return temp
+}
+
+function setMainTableRef(el) {
+  if (typeof props.store !== 'undefined') {
+    props.store!.mainTableRef.value = el
+  }
+}
+
+
+</script>
+

+ 15 - 35
src/views/data-base/page-editor-help-v2/components/left-sidebar/PageHelpLeftSidebar.vue

@@ -1,27 +1,12 @@
 <script setup lang="ts">
-import {computed, nextTick, onMounted, ref} from "vue";
+import {nextTick, onMounted, ref} from "vue";
 import PageTree from "./PageTree.vue";
-import PageAddComponent from "@/views/data-base/page-editor-help-v2/components/page-editor-v2/PageAddComponent.vue";
 import {pageHelpV2Mitt} from "@/views/data-base/page-editor-help-v2/page-help-v2";
 import sleep from "@/utils/sleep";
-
-const props = defineProps<{
-  height: any
-}>()
-
-const headerHeight = 30
-const padding = 25
-const headerMargin = 5
+import {CyTabs} from "@/components/cy/tabs/src/CyTabs";
+import CyTabPane from "@/components/cy/tabs/src/CyTabPane.vue";
 
 const componentPageHelp = ref<null>(null)
-
-const maxHeight = computed(() => {
-  return {
-    height: props.height - headerHeight - padding - headerMargin + 'px',
-    overflow: 'auto'
-  }
-})
-
 const tabsName = ref('tree')
 
 onMounted(async () => {
@@ -33,21 +18,16 @@ onMounted(async () => {
 </script>
 
 <template>
-  <el-tabs class="small_tabs padding_zero"
-           v-model="tabsName"
-           type="border-card">
-    <el-tab-pane name="tree" label="报表">
-      <div :style="maxHeight">
-        <PageTree editor/>
-      </div>
-    </el-tab-pane>
-    <el-tab-pane name="component" label="组件">
-      <div :style="maxHeight" ref="componentPageHelp">
-      </div>
-    </el-tab-pane>
-  </el-tabs>
+  <CyTabs v-model="tabsName"
+          height="100%"
+          width="240"
+          tab-position="left"
+          content-padding="0">
+    <CyTabPane name="tree" label="报表">
+      <PageTree editor/>
+    </CyTabPane>
+    <CyTabPane name="component" label="组件">
+      <div class="cy_h-w_max" ref="componentPageHelp"/>
+    </CyTabPane>
+  </CyTabs>
 </template>
-
-<style scoped lang="scss">
-
-</style>

+ 15 - 25
src/views/data-base/page-editor-help-v2/components/page-editor-v2/PageEditorV2.vue

@@ -40,31 +40,21 @@ defineExpose({
 </script>
 
 <template>
-  <cy-auto-size>
-    <template #default="{width ,height}">
-      <div class="cy-page_help-editor_container">
-        <div style="width: 80%">
-          <PageHelpV2 ref="pageHelpRef"
-                      :do-test="doTest"
-                      :addComponent="componentPageHelp"
-                      :other-configurations="otherConfigurationsRef"
-                      :componentAttribute="componentAttributeRef"
-                      @change-tabs="(val) => {tabsValue = val}"/>
-        </div>
-        <div style="flex: 1 ;min-width: 300px;">
-          <el-tabs v-model="tabsValue" class="small_tabs" type="border-card">
-            <el-tab-pane label="属性配置" name="属性配置">
-              <div :style="{height: height - 39 + 'px',overflow: 'auto'}"
-                   ref="componentAttributeRef"/>
-            </el-tab-pane>
-            <el-tab-pane label="其他" name="表格">
-              <div :style="{height: height - 39 + 'px',overflow: 'auto'}" ref="otherConfigurationsRef"/>
-            </el-tab-pane>
-          </el-tabs>
-        </div>
-      </div>
-    </template>
-  </cy-auto-size>
+  <div
+      class="cy_h-w_max cy_display_flex">
+    <div style="flex: 1; padding: 5px">
+      <PageHelpV2 ref="pageHelpRef"
+                  :do-test="doTest"
+                  is-editor
+                  :addComponent="componentPageHelp"
+                  :other-configurations="otherConfigurationsRef"
+                  :componentAttribute="componentAttributeRef"
+                  @change-tabs="(val) => {tabsValue = val}"/>
+    </div>
+    <div style="width: 300px;border-left: 1px solid #000; height: 100%; overflow: auto"
+         ref="componentAttributeRef">
+    </div>
+  </div>
 </template>
 
 <style scoped lang="scss">

+ 31 - 21
src/views/data-base/page-editor-help-v2/components/page-editor-v2/PageFormBind.vue

@@ -14,14 +14,15 @@ import JsonEditor from "@/views/data-base/page-editor-help-v2/components/page-ed
 import {xcMessage} from "@/utils/xiaochan-element-plus";
 import XEUtils from "xe-utils";
 import {copyStrFunc} from "@/utils/public";
+import {reportQueryCenterApi} from "@/api/base-data/report-center";
+import PageHelpOtherConfigurations
+  from "@/views/data-base/page-editor-help-v2/components/page-editor-v2/PageHelpOtherConfigurations.vue";
 
 const showDiv = ref(false)
 const componentBinds = ref<{ [key: string]: ComponentBind } | null>()
 
 const props = defineProps<{
   teleportDiv: any;
-  data: PageJsonObject,
-  compBind: any,
   store: PageStore
 }>()
 
@@ -47,6 +48,7 @@ const jsonEditOrOption = reactive({
 })
 
 async function changeCurrentBind(item) {
+  const {bindData} = props.store
   showDiv.value = false
   onFunc = {}
   renderRef.value = ''
@@ -56,19 +58,19 @@ async function changeCurrentBind(item) {
     componentBinds.value = null
     return
   }
-  if (!props.compBind[item.name]) {
+  if (!bindData.value[item.name]) {
     componentBinds.value = null
   }
   currentItem.value = item
-  componentBinds.value = props.compBind[item.name].bind
-  if (props.compBind[item.name].render) {
-    renderRef.value = props.compBind[item.name].render
+  componentBinds.value = bindData.value[item.name].bind
+  if (bindData.value[item.name].render) {
+    renderRef.value = bindData.value[item.name].render
   }
-  if (props.compBind[item.name].on) {
-    formOnFunc.value = props.compBind[item.name].on
+  if (bindData.value[item.name].on) {
+    formOnFunc.value = bindData.value[item.name].on
   }
-  if (props.compBind[item.name].func) {
-    formFunc.value = props.compBind[item.name].func
+  if (bindData.value[item.name].func) {
+    formFunc.value = bindData.value[item.name].func
   }
   onFuncHelp()
   await nextTick()
@@ -89,7 +91,6 @@ function renderHelp() {
  */
 function onFuncHelp() {
   const {currentClickIndex, pageData} = props.store
-
   for (let key in componentBinds.value) {
     const item = componentBinds.value[key]
     const func = {}
@@ -98,7 +99,7 @@ function onFuncHelp() {
         func[capitalizeFirstLetter(itemKey, 'on')] = (val) => {
           const func = new Function("pageJson", "currentBind", "val", item.on[itemKey])
           try {
-            func(props.store.pageData.value, pageData.value.header[currentClickIndex.value], val)
+            func(pageData.value, pageData.value.header[currentClickIndex.value], val)
           } catch (e) {
             console.error(e)
           }
@@ -155,8 +156,10 @@ function render(key: string, item: ComponentBind) {
   if (item.renderName === 'json') {
     return h(ElButton, {
       type: 'info', text: true, icon: 'Edit', onClick: () => {
-        jsonEditOrOption.json = currentItem.value.bind[key]
-        jsonEditOrOption.jsonType = item.jsonType
+        jsonEditOrOption.json = currentItem.value?.bind[key]
+        if (item.jsonType != null) {
+          jsonEditOrOption.jsonType = item.jsonType
+        }
         jsonEditOrOption.dialog = true;
         jsonEditOrOption.key = key
       }
@@ -225,16 +228,20 @@ function exportJSON() {
     bind: bind,
     data: temp
   }
-
   copyStrFunc(JSON.stringify(tempData))
 }
 
-onMounted(() => {
-  emits('refresh')
-})
+async function refresh() {
+  props.store.bindData.value = await reportQueryCenterApi('/reportCenterOption/components/componentBind')
+  await nextTick()
+  if (props.store.currentClickIndex > -1) {
+    await changeCurrentBind(props.store.pageData.value.header[props.store.currentClickIndex.value])
+  }
+}
 
-defineExpose({
-  changeCurrentBind
+onMounted(() => {
+  props.store.changeCurrentBind = changeCurrentBind
+  refresh()
 })
 </script>
 
@@ -251,9 +258,12 @@ defineExpose({
               @close="handleJsonClose"/>
 
   <teleport :to="props.teleportDiv">
+    <PageHelpOtherConfigurations
+        :store="store"/>
+    <el-divider>组件属性</el-divider>
     <div style="text-align: left; padding: 0 15px">
       <el-button @click="exportJSON" icon="RefreshLeft" type="primary" text>导出JSON</el-button>
-      <el-button @click="emits('refresh')" icon="RefreshLeft" type="primary" text>刷新</el-button>
+      <el-button @click="refresh" icon="RefreshLeft" type="primary" text>刷新</el-button>
     </div>
     <div v-if="componentBinds && showDiv" class="page_help-bind-container">
       <el-form label-width="120px">

+ 63 - 28
src/views/data-base/page-editor-help-v2/components/page-editor-v2/PageHelpOtherConfigurations.vue

@@ -1,30 +1,46 @@
 <script setup lang="ts">
 import {copyStrFunc} from "@/utils/public";
 import {PageStore} from "@/views/data-base/page-editor-help-v2/page-help-v2";
+import {eachAndReturnList} from "@/utils/cyRefList";
+import {ElDialog} from "element-plus";
+import {getWindowSize} from "@/utils/window-size";
+import JsonEditor from "@/views/data-base/page-editor-help-v2/components/page-editor-v2/JsonEditor.vue";
 
 const props = defineProps<{
-  teleportDiv: any,
   store: PageStore
 }>()
 
 function generateTableColumns() {
-  const tempData = props.store.tableBind.value.data
-  if (tempData.length === 0) {
+  const {tableBind, mainTableRef} = props.store
+  if (tableBind.value.data.length === 0) {
     return
   }
-
-  const columns = []
-  for (let key in tempData[0]) {
-    columns.push({
-      key: key,
-      title: key,
-      dataKey: key,
-      width: 220,
+  if (tableBind.value.columns.length === 0) {
+    const columns = []
+    for (let key in tableBind.value.data[0]) {
+      if (key === '_X_ROW_KEY') {
+        continue;
+      }
+      columns.push({
+        title: key,
+        field: key,
+        width: 120,
+      })
+    }
+    tableBind.value.columns = columns
+    copyStrFunc(columns)
+  } else {
+    const temp = eachAndReturnList(tableBind.value.columns, (item) => {
+      return {
+        ...item,
+        width: mainTableRef.value.getColumnWidth(item.field)
+      }
     })
+    copyStrFunc(temp)
   }
-  copyStrFunc(columns)
 }
 
+
 function generateQuery() {
   let str = "";
   const length = props.store.pageData.value.header.length
@@ -38,25 +54,44 @@ function generateQuery() {
 function saveData() {
   props.store.handleSavaData()
 }
+
+const defaultDialog = ref(false)
+const divRef = ref({
+  json: {
+    test: ''
+  }
+})
+
+function defaultValue() {
+  defaultDialog.value = true
+  const temp = {};
+  props.store.pageData.value.header.forEach(item => {
+    temp[item.key] = props.store.pageData.value.params[item.key]
+  })
+  divRef.value.json = temp
+}
+
+function closed(val) {
+  defaultDialog.value = false
+  props.store.pageData.value.defaultValue = val
+  props.store.pageData.value.params = val
+}
+
 </script>
 
 <template>
-  <teleport :to="props.teleportDiv">
-    <el-form>
-      <el-form-item label="提交地址:">
-        <el-input type="textarea" v-model="props.store.pageData.value.submitUrl"/>
-      </el-form-item>
-      <el-form-item label=" ">
-        <el-button @click="generateQuery">生成查询</el-button>
-      </el-form-item>
-      <el-form-item label=" ">
-        <el-button @click="generateTableColumns">生成表格列</el-button>
-      </el-form-item>
-      <el-form-item label=" ">
-        <el-button @click="saveData">保存</el-button>
-      </el-form-item>
-    </el-form>
-  </teleport>
+  提交地址:
+  <el-input type="textarea" v-model="props.store.pageData.value.submitUrl"/>
+  <el-button @click="generateQuery">生成查询</el-button>
+  <el-button @click="generateTableColumns">生成表格列</el-button>
+  <el-button @click="saveData">保存</el-button>
+  <el-button @click="defaultValue">默认值</el-button>
+
+
+  <JsonEditor :data="divRef"
+              v-if="defaultDialog"
+              @close="closed"/>
+
 </template>
 
 <style scoped lang="scss">

+ 79 - 78
src/views/data-base/page-editor-help-v2/components/page-editor-v2/PageHelpV2.vue

@@ -1,5 +1,5 @@
-<script setup lang="ts">
-import {h, nextTick, ref, getCurrentInstance, onActivated, watch, onUnmounted} from "vue";
+<script setup lang="tsx">
+import {h, ref, onActivated, watch, onUnmounted} from "vue";
 import * as vue from 'vue'
 import {PageHeader, PageJsonObject} from "@/api/reports/report-query-center";
 import {useCompRef} from "@/utils/useCompRef";
@@ -12,20 +12,14 @@ import {useElementSize} from "@vueuse/core/index";
 import XEUtils from "xe-utils";
 import {xcMessage} from "@/utils/xiaochan-element-plus";
 import PageAddComponent from "@/views/data-base/page-editor-help-v2/components/page-editor-v2/PageAddComponent.vue";
-import PageHelpOtherConfigurations
-  from "@/views/data-base/page-editor-help-v2/components/page-editor-v2/PageHelpOtherConfigurations.vue";
+
 import {getWindowSize} from "@/utils/window-size";
 import {ExcelName, Export} from '@/utils/ExportExcel'
 import {userInfoStore} from "@/utils/store-public";
 import {capitalizeFirstLetter, usePageStore, ElAndXc} from "@/views/data-base/page-editor-help-v2/page-help-v2";
 import {shortcutTrigger, xcEvent} from "@/utils/xckeydown";
-
-interface Props {
-  componentAttribute?: any
-  addComponent?: any
-  otherConfigurations?: string | any,
-  doTest?: (data: any) => void
-}
+import CyFlex from "@/components/cy/flex/src/CyFlex.vue";
+import PageHelpTable from "@/views/data-base/page-editor-help-v2/components/PageHelpTable.vue";
 
 interface Columns {
   title: string,
@@ -36,23 +30,38 @@ interface Columns {
   }
 }
 
-// @ts-ignore
-const props = withDefaults(defineProps<Props>(), {
-  componentAttribute: null,
-  addComponent: null,
-  doTest: null
+const props = defineProps({
+  componentAttribute: {
+    default: null,
+  },
+  addComponent: {
+    default: null,
+  },
+  otherConfigurations: {
+    default: null,
+  },
+  doTest: {
+    default: null
+  },
+  isEditor: {
+    type: Boolean,
+    default: false
+  }
 })
 
-const pageHelp = getCurrentInstance();
-const store = usePageStore()
-//@ts-ignore
-pageHelp.store = store
 
-const {currentClickIndex, pageData, clearOnAndFunc, tableBind, handleSavaData} = store
+const store = usePageStore(props)
 
+const {
+  currentClickIndex,
+  pageData,
+  clearOnAndFunc,
+  tableBind,
+  handleSavaData,
+  bindData
+} = store
 
 const formRef = useCompRef(ElForm)
-const bindRef = ref(null)
 const headerRef = ref<HTMLDivElement>()
 const {height: headerHeight} = useElementSize(headerRef)
 const emits = defineEmits(['changeTabs'])
@@ -66,7 +75,6 @@ const render = (item: PageHeader) => {
     },
     ...item.bind
   }
-
   if (item.on) {
     for (const onKey in item.on) {
       const key = capitalizeFirstLetter(onKey, 'on')
@@ -104,7 +112,7 @@ function formItemClick(item: PageHeader, index) {
     return
   }
   currentClickIndex.value = index
-  bindRef.value?.changeCurrentBind(item)
+  store.changeCurrentBind(item)
 }
 
 function upClick(index) {
@@ -128,7 +136,7 @@ function swapItems(arr, currentClickIndex, newIndex) {
 
 function delClick(index) {
   currentClickIndex.value = -1
-  bindRef.value.changeCurrentBind(null)
+  store.changeCurrentBind(null)
   pageData.value.header.splice(index, 1)
 }
 
@@ -166,6 +174,7 @@ const dialogTableData = ref({
   data: [],
   columns: []
 })
+
 const showDialog = ref(false)
 const dialogTitle = ref('详情')
 const tableData = ref([])
@@ -177,7 +186,7 @@ function requiredInit(setDefaultValue = false) {
   rules.value = []
   pageData.value.header.forEach(item => {
     if (setDefaultValue) {
-      pageData.value.params[item.key] = item.defaultValue
+      pageData.value.params = XEUtils.clone(pageData.value.defaultValue, true)
     }
     if (item.required) {
       rules.value[item.key] = [{required: true, message: '必填', trigger: 'blur'}]
@@ -208,9 +217,9 @@ async function setPageData(data: PageJsonObject, currentIndex = -1) {
   await handleOnAndFuncEvent(temp)
   pageData.value = temp
   if (currentIndex > 0) {
-    bindRef.value?.changeCurrentBind(pageData.value.header[currentClickIndex.value])
+    await store.changeCurrentBind(pageData.value.header[currentClickIndex.value])
   } else {
-    bindRef.value?.changeCurrentBind(null)
+    await store.changeCurrentBind(null)
   }
   currentClickIndex.value = currentIndex
   initTable()
@@ -251,15 +260,6 @@ async function addComponent(data) {
 }
 
 const compData = ref()
-const bindData = ref()
-
-async function bindRefresh() {
-  bindData.value = await reportQueryCenterApi('/reportCenterOption/components/componentBind')
-  await nextTick()
-  if (currentClickIndex.value > -1) {
-    bindRef.value?.changeCurrentBind(pageData.value.header[currentClickIndex.value])
-  }
-}
 
 async function addComponentRefresh() {
   compData.value = await reportQueryCenterApi('/reportCenterOption/components/addComponents')
@@ -278,32 +278,26 @@ function openDialogAndSetData(data, title: string = '详情') {
   dialogTitle.value = title
   showDialog.value = true
   dialogTableData.value = data
-  handelColumnFunc(dialogTableData.value.columns)
 }
 
-function handelColumnFunc(data) {
-  XEUtils.arrayEach(data, (item: Columns) => {
-    if (!item.func) {
-      return
-    }
-    for (let key in item.func) {
-      const newFunc = new Function("row", "pageData", "apiFunc", "el", "vue", "openDialogAndSetData", item.func[key])
-      item[key] = (row) => newFunc(row, pageData.value, reportQueryCenterApi, ElAndXc, vue, openDialogAndSetData)
-    }
-  })
-}
 
 function setTableData(res) {
-  tableBind.value = res
+  if (res === null) {
+    res = {
+      columns: [],
+      data: []
+    }
+  }
+  tableBind.value = res;
   if (res.details) {
     tableBind.value.columns.push({
-      key: 'operations',
+      field: 'operations',
       title: '详情',
       width: 70,
       align: 'center',
       fixed: 'right',
       func: {
-        cellRenderer: `
+        default: `
         const {h} = vue
         const {ElButton} = el
         return h(ElButton, {
@@ -324,10 +318,17 @@ function setTableData(res) {
       }
     })
   }
-  handelColumnFunc(tableBind.value.columns)
 }
 
 
+const handleTableColumnDefault = (row, index, item) => {
+  if (!XEUtils.has(item, 'func.defaultFunc')) {
+    item.func.defaultFunc = new Function("row", 'rowIndex', "pageData", "apiFunc", "el", "vue", "openDialogAndSetData",
+        item.func.default)
+  }
+  return item.func.defaultFunc(row, index, pageData.value, reportQueryCenterApi, ElAndXc, vue, openDialogAndSetData)
+}
+
 function exportExcel(data: {
   data: any[],
   columns: Columns[],
@@ -381,8 +382,8 @@ defineExpose({
 </script>
 
 <template>
-  <cy-auto-size>
-    <template #default="{height,width}">
+  <CyFlex content-size>
+    <template #header>
       <div class="cy-page_help_v2-header" ref="headerRef">
         <el-form v-bind="pageData.fromConfig"
                  :rules="rules"
@@ -423,24 +424,30 @@ defineExpose({
           </el-form-item>
         </el-form>
       </div>
-      <div class="cy-page_help_v2-main" v-loading="loading">
-        <el-table-v2 v-bind="tableBind"
-                     :h-scrollbar-size="10"
-                     :v-scrollbar-size="10"
-                     :height="height - headerHeight"
-                     :width="width"/>
+    </template>
+    <template #content="{height, width}">
+      <div class="cy-page_help_v2-main"
+           :style="{width: width +'px'}"
+           v-loading="loading">
+        <PageHelpTable :data="tableBind.data"
+                       :store="store"
+                       :columns="tableBind.columns"
+                       :handle-table-column-default="handleTableColumnDefault"
+                       :height="height == 0 ? 500 : height "
+        />
       </div>
     </template>
-  </cy-auto-size>
+  </CyFlex>
 
   <el-dialog v-model="showDialog" :title="dialogTitle" width="90%" class="page_help-dialog">
     <cy-auto-size>
       <template #default="{width}">
-        <el-table-v2 v-bind="dialogTableData"
-                     :h-scrollbar-size="12"
-                     :v-scrollbar-size="12"
-                     :height="getWindowSize.h - 500"
-                     :width="width - 10"/>
+        <PageHelpTable
+            :data="dialogTableData.data"
+            :columns="dialogTableData.columns"
+            :handle-table-column-default="handleTableColumnDefault"
+            :height="getWindowSize.h - 500 "
+        />
       </template>
     </cy-auto-size>
     <template #footer>
@@ -448,14 +455,11 @@ defineExpose({
     </template>
   </el-dialog>
 
-  <PageFormBind ref="bindRef"
-                :store="store"
-                @refresh="bindRefresh"
-                :data="pageData"
-                @requiredChange="requiredInit"
-                :comp-bind="bindData"
-                :teleport-div="props.componentAttribute"
-                v-if="props.componentAttribute"/>
+  <PageFormBind
+      :store="store"
+      @requiredChange="requiredInit"
+      :teleport-div="props.componentAttribute"
+      v-if="props.componentAttribute"/>
 
   <PageAddComponent :teleportDiv="props.addComponent"
                     @refresh="addComponentRefresh"
@@ -463,9 +467,6 @@ defineExpose({
                     :comp-data="compData"
                     v-if="props.addComponent"/>
 
-  <PageHelpOtherConfigurations v-if="props.otherConfigurations"
-                               :store="store"
-                               :teleport-div="props.otherConfigurations"/>
 
 </template>
 

+ 14 - 33
src/views/data-base/page-editor-help-v2/components/page-help-editor/MagicEditor.vue

@@ -4,26 +4,13 @@ import MagicIframeEditor from "@/views/data-base/page-editor-help-v2/components/
 import {pageHelpV2Mitt} from "@/views/data-base/page-editor-help-v2/page-help-v2";
 import {ReportForms} from "@/api/reports/report-query-center";
 import PageEditorV2 from "@/views/data-base/page-editor-help-v2/components/page-editor-v2/PageEditorV2.vue";
-
-const props = defineProps<{
-  height: any
-}>()
-
-const headerHeight = 30
-const padding = 25
-const headerMargin = 5
+import {CyTabs} from "@/components/cy/tabs/src/CyTabs";
+import CyTabPane from "@/components/cy/tabs/src/CyTabPane.vue";
 
 const tabsName = ref('pageHelp')
 const magicIframeEditorRef = ref(null)
 const pageEditorRef = ref()
 
-const maxHeight = computed(() => {
-  return {
-    height: props.height - headerHeight - padding - headerMargin + 'px',
-    overflow: 'auto'
-  }
-})
-
 
 const current = ref<ReportForms | {
   id: any
@@ -51,22 +38,16 @@ onMounted(async () => {
 </script>
 
 <template>
-  <el-tabs class="small_tabs padding_zero"
-           v-model="tabsName"
-           type="border-card">
-    <el-tab-pane label="页面编辑" name="pageHelp">
-      <div :style="maxHeight">
-        <PageEditorV2 :current-data="current" ref="pageEditorRef"/>
-      </div>
-    </el-tab-pane>
-    <el-tab-pane label="SQL编辑" name="SQL">
-      <div :style="maxHeight">
-        <MagicIframeEditor ref="magicIframeEditorRef"/>
-      </div>
-    </el-tab-pane>
-  </el-tabs>
+  <CyTabs height="100%"
+          v-model="tabsName"
+          content-padding="0"
+          type="idea">
+    <CyTabPane label="页面编辑" name="pageHelp">
+      <PageEditorV2 :current-data="current"
+                    ref="pageEditorRef"/>
+    </CyTabPane>
+    <CyTabPane label="SQL编辑" name="SQL">
+      <MagicIframeEditor ref="magicIframeEditorRef"/>
+    </CyTabPane>
+  </CyTabs>
 </template>
-
-<style scoped lang="scss">
-
-</style>

+ 11 - 5
src/views/data-base/page-editor-help-v2/page-help-v2.ts

@@ -58,7 +58,7 @@ export function capitalizeFirstLetter(str: string, prefix: string = '') {
 
 export const REPORT_FOLDER = "8283a0956dd9455cbf77c6246306ec98"
 
-export function usePageStore() {
+export function usePageStore(props) {
     const currentClickIndex = ref(-1)
     const pageData = ref<PageJsonObject>({
         header: [],
@@ -67,10 +67,10 @@ export function usePageStore() {
         fromConfig: {
             inline: true,
             labelWidth: '120px'
-        }
+        },
+        defaultValue: {}
     })
 
-
     const tableBind = ref({
         data: [],
         columns: []
@@ -107,8 +107,10 @@ export function usePageStore() {
         })
     }
 
+    const bindData = ref()
+    let changeCurrentBind: (item) => Promise<any> = () => null
 
-    const mutation = {}
+    const mainTableRef = ref()
 
     return {
         currentClickIndex,
@@ -116,7 +118,11 @@ export function usePageStore() {
         clearOnAndFunc,
         handleSavaData,
         tableBind,
-        mutation
+
+        bindData,
+        changeCurrentBind,
+        mainTableRef,
+        props
     }
 }
 

+ 9 - 14
src/views/data-base/page-editor-help-v2/src/PageEditorHelpV2.vue

@@ -1,22 +1,17 @@
 <script setup lang="ts">
-import CyAutoSize from "@/components/cy/auto-size/cy-auto-size.vue";
 import PageHelpLeftSidebar from "@/views/data-base/page-editor-help-v2/components/left-sidebar/PageHelpLeftSidebar.vue";
 import MagicEditor from "@/views/data-base/page-editor-help-v2/components/page-help-editor/MagicEditor.vue";
 </script>
 
 <template>
-  <cy-auto-size>
-    <template #default="{width , height}">
-      <div class="page_help_container">
-        <div class="page_help_left-sidebar">
-          <PageHelpLeftSidebar :height="height"/>
-        </div>
-        <div class="page_help_editor">
-          <MagicEditor :height="height"/>
-        </div>
-      </div>
-    </template>
-  </cy-auto-size>
+  <div class="page_help_container">
+    <div class="page_help_left-sidebar">
+      <PageHelpLeftSidebar/>
+    </div>
+    <div class="page_help_editor">
+      <MagicEditor/>
+    </div>
+  </div>
 </template>
 
 <style scoped lang="scss">
@@ -26,7 +21,7 @@ import MagicEditor from "@/views/data-base/page-editor-help-v2/components/page-h
   display: flex;
 
   .page_help_left-sidebar {
-    width: 230px;
+    width: max-content;
   }
 
   .page_help_editor {

+ 0 - 1
src/views/hospitalization/zhu-yuan-yi-sheng/public-js/zhu-yuan-yi-sheng.ts

@@ -13,7 +13,6 @@ import {timeLimitPromptByPatientNo} from "@/api/emr-control/emr-time-limit-promp
 import {getServerDate} from "@/utils/moment-utils";
 import setDialogToJs from "@/components/js-dialog-comp/useDialogToJs";
 import YaoPingXiangQing from "@/components/zhu-yuan-yi-sheng/he-li-yong-yao/YaoPingXiangQing.vue";
-import doctorStore, {YzSidebarEnum} from "@/views/hospitalization/zhu-yuan-yi-sheng/public-js/useDoctorStore";
 import cyRefList from "@/utils/cyRefList";
 
 export interface PatInfo {