Browse Source

表格宽度改为百分比 高度为行高

natasha 2 days ago
parent
commit
8787703a6e

+ 4 - 2
src/views/book/courseware/create/components/question/table/Table.vue

@@ -124,7 +124,9 @@
         </div>
         </div>
         <div class="table-node">
         <div class="table-node">
           <div v-for="(value, index) in data.col_width" :key="index" class="table-item">
           <div v-for="(value, index) in data.col_width" :key="index" class="table-item">
-            <el-input v-model="value.value"> <template slot="prepend">列宽:</template></el-input>
+            <el-input v-model="value.value">
+              <template slot="prepend">列宽:</template><template slot="append">%</template></el-input
+            >
           </div>
           </div>
         </div>
         </div>
       </div>
       </div>
@@ -244,7 +246,7 @@ export default {
         const diff = val - this.data.option_list[0].length;
         const diff = val - this.data.option_list[0].length;
         for (let i = 0; i < diff; i++) {
         for (let i = 0; i < diff; i++) {
           this.data.col_width.push({
           this.data.col_width.push({
-            value: 100,
+            value: '',
           });
           });
         }
         }
         this.data.option_list = this.data.option_list.map((row) => {
         this.data.option_list = this.data.option_list.map((row) => {

+ 4 - 4
src/views/book/courseware/create/components/question/table/TableSetting.vue

@@ -6,8 +6,8 @@
       <el-form-item label="宽度">
       <el-form-item label="宽度">
         <el-input-number v-model="property.width" :min="1" :step="50" />
         <el-input-number v-model="property.width" :min="1" :step="50" />
       </el-form-item>
       </el-form-item>
-      <el-form-item label="高">
-        <el-input-number v-model="property.height" :min="1" :step="50" />
+      <el-form-item label="高">
+        <el-input-number v-model="property.height" :min="1" :step="10" />
       </el-form-item>
       </el-form-item>
       <el-form-item label="行数">
       <el-form-item label="行数">
         <el-input-number v-model="property.row_count" :min="1" />
         <el-input-number v-model="property.row_count" :min="1" />
@@ -28,12 +28,12 @@
         </el-radio-group>
         </el-radio-group>
       </el-form-item>
       </el-form-item>
       <el-divider />
       <el-divider />
-      <el-form-item label="首行颜色">
+      <!-- <el-form-item label="首行颜色">
         <el-color-picker v-model="property.first_line_color" />
         <el-color-picker v-model="property.first_line_color" />
       </el-form-item>
       </el-form-item>
       <el-form-item label="首列颜色">
       <el-form-item label="首列颜色">
         <el-color-picker v-model="property.first_column_color" />
         <el-color-picker v-model="property.first_column_color" />
-      </el-form-item>
+      </el-form-item> -->
       <el-form-item label="边框颜色">
       <el-form-item label="边框颜色">
         <el-color-picker v-model="property.border_color" />
         <el-color-picker v-model="property.border_color" />
       </el-form-item>
       </el-form-item>

+ 4 - 4
src/views/book/courseware/data/table.js

@@ -40,7 +40,7 @@ export function getTableProperty() {
     sn_background_color: '#ea3232', // 序号背景色
     sn_background_color: '#ea3232', // 序号背景色
     sn_display_mode: displayList[1].value,
     sn_display_mode: displayList[1].value,
 
 
-    height: 400,
+    height: 50,
     width: 600,
     width: 600,
     row_count: 2,
     row_count: 2,
     column_count: 3,
     column_count: 3,
@@ -95,13 +95,13 @@ export function getTableData() {
     },
     },
     col_width: [
     col_width: [
       {
       {
-        value: 100,
+        value: '',
       },
       },
       {
       {
-        value: 100,
+        value: '',
       },
       },
       {
       {
-        value: 100,
+        value: '',
       },
       },
     ], // 列宽
     ], // 列宽
     property: getTableProperty(),
     property: getTableProperty(),

+ 5 - 8
src/views/book/courseware/preview/components/table/TablePreview.vue

@@ -8,21 +8,17 @@
         class="table-box"
         class="table-box"
         :style="{
         :style="{
           width: isMobile ? '100%' : data.property.width + 'px',
           width: isMobile ? '100%' : data.property.width + 'px',
-
-          height: data.property.height + 'px',
         }"
         }"
       >
       >
         <table
         <table
           :style="{
           :style="{
-            width: isMobile ? '100%' : table_width + 'px',
-
-            height: data.property.height + 'px',
+            width: '100%',
           }"
           }"
         >
         >
           <colgroup>
           <colgroup>
             <col v-for="(item, i) in data.col_width" :key="`col-${i}`" :style="{ width: `${item.value}px` }" />
             <col v-for="(item, i) in data.col_width" :key="`col-${i}`" :style="{ width: `${item.value}px` }" />
           </colgroup>
           </colgroup>
-          <tr v-for="(row, i) in data.option_list" :key="`tr-${i}`">
+          <tr v-for="(row, i) in data.option_list" :key="`tr-${i}`" :style="{ height: data.property.height + 'px' }">
             <template v-for="(col, j) in row">
             <template v-for="(col, j) in row">
               <td
               <td
                 :key="col.mark"
                 :key="col.mark"
@@ -53,6 +49,7 @@
                         : data.styles.bgColor
                         : data.styles.bgColor
                           ? data.styles.bgColor
                           ? data.styles.bgColor
                           : '',
                           : '',
+                  height: data.property.height + 'px',
                 }"
                 }"
               >
               >
                 <div :style="[tdStyle, computedRichStyle(col.content)]" class="cell-wrap">
                 <div :style="[tdStyle, computedRichStyle(col.content)]" class="cell-wrap">
@@ -245,13 +242,13 @@
         >
         >
           <table
           <table
             :style="{
             :style="{
-              width: isMobile ? '100%' : table_width + 'px',
+              width: '100%',
 
 
               height: data.property.height + 'px',
               height: data.property.height + 'px',
             }"
             }"
           >
           >
             <colgroup>
             <colgroup>
-              <col v-for="(item, i) in data.col_width" :key="`col-${i}`" :style="{ width: `${item.value}px` }" />
+              <col v-for="(item, i) in data.col_width" :key="`col-${i}`" :style="{ width: `${item.value}%` }" />
             </colgroup>
             </colgroup>
             <tr v-for="(row, i) in data.option_list" :key="`tr-${i}`">
             <tr v-for="(row, i) in data.option_list" :key="`tr-${i}`">
               <template v-for="(col, j) in row">
               <template v-for="(col, j) in row">