1
0
Code Issues Pull Requests Packages Projects Releases Wiki Activity GitHub Gitee

较多改动,暂存

This commit is contained in:
2023-04-04 01:06:22 +08:00
parent ac885fb06b
commit a68307b9f9
44 changed files with 2467 additions and 649 deletions

View File

@@ -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>