较多改动,暂存
This commit is contained in:
@@ -28,8 +28,24 @@
|
||||
<!-- 表格 -->
|
||||
<el-table :data="tableData" border class="table" ref="multipleTable" header-cell-class-name="table-header">
|
||||
<el-table-column prop="id" label="ID" width="55" align="center"></el-table-column>
|
||||
<el-table-column v-for="field in tableFields" :prop="field.prop" :label="field.label"
|
||||
align="center"></el-table-column>
|
||||
<el-table-column v-for="(field, index) in tableFields" :prop="field.prop" :label="field.label" :key="index"
|
||||
align="center">
|
||||
<template #default="scope" v-if="field.type == 'image'">
|
||||
<el-image style="width: 100%; height: 100%;" :src="scope.row.picUrl" fit="cover" />
|
||||
</template>
|
||||
<template #default="scope" v-else-if="field.type == 'longtext'">
|
||||
<el-tooltip placement="top">
|
||||
<template #content>
|
||||
<p v-for="line in scope.row.detail.split(/[\r\n]/g)" style="max-width: 300px;">
|
||||
{{ line }}
|
||||
</p>
|
||||
</template>
|
||||
<div class="oneLine">
|
||||
{{scope.row.detail}}
|
||||
</div>
|
||||
</el-tooltip>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" width="220" align="center">
|
||||
<template #default="scope">
|
||||
<el-button text :icon="Edit" @click="handleEdit(scope.$index, scope.row)"
|
||||
@@ -61,11 +77,16 @@
|
||||
<el-input v-if="(formId > 0 ? field.editType : field.addType) == 'input'"
|
||||
:placeholder="formId > 0 ? field.editPlaceholder : field.addPlaceholder" class="popup-item"
|
||||
v-model="form[field.field]"></el-input>
|
||||
<el-input v-else-if="(formId > 0 ? field.editType : field.addType) == 'textarea'"
|
||||
:placeholder="formId > 0 ? field.editPlaceholder : field.addPlaceholder" class="popup-item"
|
||||
v-model="form[field.field]" type="textarea" :rows="4"></el-input>
|
||||
<el-select v-else-if="(formId > 0 ? field.editType : field.addType) == 'select'" class="popup-item"
|
||||
v-model="form[field.field]" :clearable="true">
|
||||
<el-option v-for="optKey in Object.keys(field.options)" :key="optKey" :label="field.options[optKey]"
|
||||
:value="optKey"></el-option>
|
||||
</el-select>
|
||||
<ImageUpload v-else-if="(formId > 0 ? field.editType : field.addType) == 'image'"
|
||||
:imageUrl="form[field.field]" @change="(value: any) => form[field.field] = value" />
|
||||
<el-input v-else-if="(formId > 0 ? field.editType : field.addType) == 'plainText'" class="popup-item"
|
||||
v-model="form[field.field]" :disabled="true"></el-input>
|
||||
<!-- {{ field }} -->
|
||||
@@ -112,6 +133,7 @@ import { FormInstance, FormRules, ElMessage, ElMessageBox } from 'element-plus';
|
||||
import { Delete, Edit, Search, Plus, Filter, Download } from '@element-plus/icons-vue';
|
||||
import * as xlsx from 'xlsx';
|
||||
import Mock from 'mockjs';
|
||||
import ImageUpload from './image-upload.vue';
|
||||
|
||||
const props = defineProps({
|
||||
// 获取列表 接口函数
|
||||
@@ -229,13 +251,13 @@ const getData = async () => {
|
||||
|
||||
// 表格列
|
||||
tableFields.value = data.columns
|
||||
.filter((field: any) => field.showInTable)
|
||||
.filter((field: any) => field.fieldType != "null")
|
||||
.map((field: any) => {
|
||||
// query 填充默认空字符串
|
||||
if (typeof (query[field.field]) === "undefined") {
|
||||
query[field.field] = ''
|
||||
}
|
||||
return { prop: field.prop, label: field.label }
|
||||
return { prop: field.prop, label: field.label, type: field.fieldType }
|
||||
});
|
||||
console.log("tableFields", tableFields.value)
|
||||
// 表格数据
|
||||
@@ -294,7 +316,7 @@ const getData = async () => {
|
||||
|
||||
// 导出 excel 字段映射
|
||||
exportFields = data.columns
|
||||
.filter((field: any) => field.showInTable)
|
||||
.filter((field: any) => field.fieldType != "null")
|
||||
.map((field: any) => {
|
||||
return { field: field.field, label: field.label }
|
||||
});
|
||||
@@ -544,6 +566,9 @@ const doMockData = (isEdit: boolean) => {
|
||||
case "DPD":
|
||||
form[mock.field] = Mock.mock(mock.str)
|
||||
break;
|
||||
case "IMG":
|
||||
form[mock.field] = Mock.Random.dataImage(...mock.str.split(','))
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -591,4 +616,10 @@ onMounted(() => {
|
||||
.popup-item {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.oneLine {
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
</style>
|
||||
|
Reference in New Issue
Block a user