ZaiZai 1 年之前
父节点
当前提交
d49f8ee725

+ 19 - 10
src/components/table-form/install.js

@@ -1,18 +1,27 @@
-import HcTableFormComponents from '~src/components/table-form/components.vue'
+import HcTableFormComponents from './modules/components.vue'
+import HcElSelect from './modules/el-select.vue'
+import HcElOption from './modules/el-option.vue'
+import HcElCheckboxGroup from './modules/el-checkbox-group.vue'
+import HcElCheckbox from './modules/el-checkbox.vue'
+import HcElRadioGroup from './modules/el-radio-group.vue'
+import HcElRadio from './modules/el-radio.vue'
+import HcTableFormUpload from './modules/form-upload.vue'
+import HcFormCheckboxGroup from './modules/form-checkbox.vue'
+import HcTableEchart from './modules/form-echart.vue'
 
 export default {
     ElInput: HcTableFormComponents,
-    ElSelect: HcTableFormComponents,
-    ElOption: HcTableFormComponents,
+    ElSelect: HcElSelect,
+    ElOption: HcElOption,
     ElDatePicker: HcTableFormComponents,
     ElTimePicker: HcTableFormComponents,
-    ElCheckboxGroup: HcTableFormComponents,
-    ElCheckbox: HcTableFormComponents,
-    ElRadioGroup: HcTableFormComponents,
-    ElRadio: HcTableFormComponents,
-    HcTableFormUpload: HcTableFormComponents,
+    ElCheckboxGroup: HcElCheckboxGroup,
+    ElCheckbox: HcElCheckbox,
+    ElRadioGroup: HcElRadioGroup,
+    ElRadio: HcElRadio,
+    HcTableFormUpload: HcTableFormUpload,
     HcFormSelectSearch: HcTableFormComponents,
     HcFormSelectSearch2: HcTableFormComponents,
-    HcFormCheckboxGroup: HcTableFormComponents,
-    HcEchart: HcTableFormComponents,
+    HcFormCheckboxGroup: HcFormCheckboxGroup,
+    HcEchart: HcTableEchart,
 }

+ 16 - 6
src/components/table-form/components.vue → src/components/table-form/modules/components.vue

@@ -7,14 +7,14 @@
         :data-objs="objsData"
     >
         {{ name || placeholder }}
-        <div v-if="isSlots" style="display: none">
+        <div v-if="isSlots" class="slot-content">
             <slot />
         </div>
     </div>
 </template>
 
 <script setup>
-import { getCurrentInstance, onMounted, ref, useSlots } from 'vue'
+import { onMounted, ref, useSlots } from 'vue'
 import { isNullES } from 'js-fast-way'
 
 const props = defineProps({
@@ -41,14 +41,10 @@ const props = defineProps({
     objs: Array,
 })
 
-const instance = getCurrentInstance()
 const objsData = ref('')
 
 //渲染完成
 onMounted(()=> {
-    if (isNullES(props.type)) {
-        //console.log(instance)
-    }
     if (!isNullES(props.objs)) {
         objsData.value = JSON.stringify(props.objs)
     }
@@ -59,11 +55,20 @@ onMounted(()=> {
 const name = ref('')
 const typeObj = {
     text: '输入框',
+    select: '下拉框',
     textarea: '多行输入框',
+    checkbox_group: '多选框组',
+    form_checkbox: '多选框组合',
+    checkbox: '多选框',
+    radio_group: '单选框组',
+    radio: '单选框',
     date: '日期框',
+    time: '时间框',
     datetimerange: '日期时间范围框',
     dap_site_data: '远程搜索框',
     strength_search: '设计强度搜索框',
+    upload: '图片展示以及上传框',
+    echart: '图表组件',
 }
 const matchingType = () => {
     if (isNullES(props.type)) return
@@ -87,6 +92,11 @@ const isSlots = !!slots.default
     border: 1px solid #dbdbdb;
     border-radius: 3px;
     transition: border 0.2s;
+    font-size: 14px;
+    height: 100%;
+    .slot-content {
+        display: none;
+    }
     &:hover {
         background: #eddac4;
     }

+ 14 - 0
src/components/table-form/modules/el-checkbox-group.vue

@@ -0,0 +1,14 @@
+<template>
+    <HcTableFormComponents v-bind="$attrs" type="checkbox_group" />
+</template>
+
+<script>
+import { defineComponent } from 'vue'
+import HcTableFormComponents from './components.vue'
+
+export default defineComponent({
+    name: 'HcElCheckboxGroup',
+    components: { HcTableFormComponents },
+    inheritAttrs: false,
+})
+</script>

+ 14 - 0
src/components/table-form/modules/el-checkbox.vue

@@ -0,0 +1,14 @@
+<template>
+    <HcTableFormComponents v-bind="$attrs" type="checkbox" />
+</template>
+
+<script>
+import { defineComponent } from 'vue'
+import HcTableFormComponents from './components.vue'
+
+export default defineComponent({
+    name: 'HcElCheckbox',
+    components: { HcTableFormComponents },
+    inheritAttrs: false,
+})
+</script>

+ 14 - 0
src/components/table-form/modules/el-option.vue

@@ -0,0 +1,14 @@
+<template>
+    <HcTableFormComponents v-bind="$attrs" type="select_option" />
+</template>
+
+<script>
+import { defineComponent } from 'vue'
+import HcTableFormComponents from './components.vue'
+
+export default defineComponent({
+    name: 'HcElOption',
+    components: { HcTableFormComponents },
+    inheritAttrs: false,
+})
+</script>

+ 14 - 0
src/components/table-form/modules/el-radio-group.vue

@@ -0,0 +1,14 @@
+<template>
+    <HcTableFormComponents v-bind="$attrs" type="radio_group" />
+</template>
+
+<script>
+import { defineComponent } from 'vue'
+import HcTableFormComponents from './components.vue'
+
+export default defineComponent({
+    name: 'HcElRadioGroup',
+    components: { HcTableFormComponents },
+    inheritAttrs: false,
+})
+</script>

+ 14 - 0
src/components/table-form/modules/el-radio.vue

@@ -0,0 +1,14 @@
+<template>
+    <HcTableFormComponents v-bind="$attrs" type="radio" />
+</template>
+
+<script>
+import { defineComponent } from 'vue'
+import HcTableFormComponents from './components.vue'
+
+export default defineComponent({
+    name: 'HcElRadio',
+    components: { HcTableFormComponents },
+    inheritAttrs: false,
+})
+</script>

+ 14 - 0
src/components/table-form/modules/el-select.vue

@@ -0,0 +1,14 @@
+<template>
+    <HcTableFormComponents v-bind="$attrs" type="select" />
+</template>
+
+<script>
+import { defineComponent } from 'vue'
+import HcTableFormComponents from './components.vue'
+
+export default defineComponent({
+    name: 'HcElSelect',
+    components: { HcTableFormComponents },
+    inheritAttrs: false,
+})
+</script>

+ 14 - 0
src/components/table-form/modules/form-checkbox.vue

@@ -0,0 +1,14 @@
+<template>
+    <HcTableFormComponents v-bind="$attrs" type="form_checkbox" />
+</template>
+
+<script>
+import { defineComponent } from 'vue'
+import HcTableFormComponents from './components.vue'
+
+export default defineComponent({
+    name: 'HcFormCheckboxGroup',
+    components: { HcTableFormComponents },
+    inheritAttrs: false,
+})
+</script>

+ 14 - 0
src/components/table-form/modules/form-echart.vue

@@ -0,0 +1,14 @@
+<template>
+    <HcTableFormComponents v-bind="$attrs" type="echart" />
+</template>
+
+<script>
+import { defineComponent } from 'vue'
+import HcTableFormComponents from './components.vue'
+
+export default defineComponent({
+    name: 'HcEchart',
+    components: { HcTableFormComponents },
+    inheritAttrs: false,
+})
+</script>

+ 14 - 0
src/components/table-form/modules/form-upload.vue

@@ -0,0 +1,14 @@
+<template>
+    <HcTableFormComponents v-bind="$attrs" type="upload" />
+</template>
+
+<script>
+import { defineComponent } from 'vue'
+import HcTableFormComponents from './components.vue'
+
+export default defineComponent({
+    name: 'HcTableFormUpload',
+    components: { HcTableFormComponents },
+    inheritAttrs: false,
+})
+</script>

+ 4 - 1
src/views/project/list/adjust-excel.vue

@@ -89,7 +89,10 @@ const getDataApi = async () => {
 const setInputRef = ref(null)
 
 //框框被点击
-const keys = ['type', 'key', 'tr', 'td', 'index', 'x1', 'y1', 'x2', 'y2', 'name', 'text', 'rows', 'format']
+const keys = [
+    'type', 'key', 'tr', 'td', 'index', 'x1', 'y1', 'x2', 'y2', 'name', 'text', 'rows', 'format',
+    'weighing', 'label', 'value', 'src', 'val', 'contractid', 'pkeyid', 'objs',
+]
 const excelClick = async (item) => {
     const dom = item?.target
     let obj = { zdom: item }