fix: 完成第一版

This commit is contained in:
lwh 2023-05-01 21:25:10 +08:00
parent 5681a71c56
commit a8f9a574bd
14 changed files with 126 additions and 138 deletions

View File

@ -22,7 +22,7 @@
<el-row>
<el-col :span="12">
<el-form-item :label-width="labelWidth" label="排序" prop="banner_order">
<el-input-number v-model='formData.banner_order' controls-position='right'></el-input-number>
<el-input-number v-model='formData.banner_order' controls-position='right' :min="1"></el-input-number>
</el-form-item>
</el-col>
</el-row>
@ -75,7 +75,7 @@ const props = defineProps({
const emits = defineEmits(["update:modelValue"]);
const dialogVisible = ref(props.modelValue);
const formData = reactive({
banner_order: 0
banner_order: 1
});
const uoloadData = ref({

View File

@ -22,7 +22,7 @@
<el-row>
<el-col :span="12">
<el-form-item :label-width="labelWidth" label="排序" prop="banner_order">
<el-input-number v-model='formData.banner_order' controls-position='right'></el-input-number>
<el-input-number v-model='formData.banner_order' controls-position='right' :min="1"></el-input-number>
</el-form-item>
</el-col>
</el-row>

View File

@ -43,7 +43,7 @@
<!-- 排序 -->
<template #banner_order="scope">
<el-input-number :disabled="loading" v-model='scope.row.banner_order' controls-position="right"
@change="handleEditOrder(scope.row)"></el-input-number>
@change="handleEditOrder(scope.row)" :min="1"></el-input-number>
</template>
<!-- 图片 -->
<template #banner_img="scope">

View File

@ -14,7 +14,7 @@
</el-col>
<el-col :span='24'>
<el-form-item :label-width='labelWidth' label='图片' prop='poster_img'>
<UploadImage ref='uploadRef' v-model='formData.poster_img' :data=uoloadData :limit='1' :fileSize='5'
<UploadImage ref='uploadRef' v-model='formData.poster_img' :data=uoloadData :limit='1' :fileSize='20'
:drag='true' :isShowTip='false' />
</el-form-item>
</el-col>

View File

@ -14,7 +14,7 @@
</el-col>
<el-col :span='24'>
<el-form-item :label-width='labelWidth' label='图片' prop='poster_img'>
<UploadImage ref='uploadRef' v-model='formData.poster_img' :data=uoloadData :limit='1' :fileSize='5'
<UploadImage ref='uploadRef' v-model='formData.poster_img' :data=uoloadData :limit='1' :fileSize='20'
:drag='true' :isShowTip='false' />
</el-form-item>
</el-col>

View File

@ -143,7 +143,7 @@ const getContent = async () => {
let mapCb = function () {
getContent()
}
getContent()
//

View File

@ -1,65 +1,28 @@
<template>
<el-dialog
v-model="dialogVisible"
title="添加用户留言"
width="900px"
@closed="closeDialog"
@open="openDialog"
>
<el-dialog v-model="dialogVisible" title="添加用户留言" width="900px" @closed="closeDialog" @open="openDialog">
<el-form ref="formRef" :model="formData" :rules="rules">
<el-row>
<el-col :span="24">
<el-form-item
:label-width="labelWidth"
label="留言人名称"
prop="leave_message_user_name"
>
<el-input
v-model="formData.leave_message_user_name"
type="text"
placeholder="请输入留言人名称"
></el-input>
<el-form-item :label-width="labelWidth" label="留言人名称" prop="leave_message_user_name">
<el-input v-model="formData.leave_message_user_name" type="text" placeholder="请输入留言人名称"></el-input>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item
:label-width="labelWidth"
label="留言人手机号码"
prop="leave_message_user_phone"
>
<el-input
v-model="formData.leave_message_user_phone"
type="text"
placeholder="请输入留言人手机号码"
></el-input>
<el-form-item :label-width="labelWidth" label="留言人手机号码" prop="leave_message_user_phone">
<el-input v-model="formData.leave_message_user_phone" type="text" placeholder="请输入留言人手机号码"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="留言受理状态" prop="leave_message_status">
<el-select
v-model="formData.leave_message_status"
clearable
placeholder="请选择"
>
<el-option
v-for="item in leave_message_status"
:key="item.dictionary_guid"
:label="item.dictionary_name"
:value="item.dictionary_value"
></el-option>
<el-select v-model="formData.leave_message_status" clearable placeholder="请选择">
<el-option v-for="item in leave_message_status" :key="item.dictionary_guid" :label="item.dictionary_name"
:value="item.dictionary_value"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item
:label-width="labelWidth"
label="留言内容"
prop="leave_message_content"
>
<RichText
v-model="formData.leave_message_content"
:min-height="196"
></RichText>
<el-form-item :label-width="labelWidth" label="留言内容" prop="leave_message_content">
<el-input rows="5" v-model="formData.leave_message_content" type="textarea" placeholder="留言内容"></el-input>
</el-form-item>
</el-col>
</el-row>
@ -67,9 +30,7 @@
<template #footer>
<span class="dialog-footer">
<el-button type="primary" @click="handleAddClick(formRef)"
>添加</el-button
>
<el-button type="primary" @click="handleAddClick(formRef)">添加</el-button>
<el-button @click="handleResetClick(formRef)">重置</el-button>
</span>
</template>

View File

@ -1,65 +1,29 @@
<template>
<el-dialog
v-model="props.modelValue"
title="用户留言详情"
width="900px"
@closed="closeDialog"
@open="openDialog"
>
<el-dialog v-model="props.modelValue" title="用户留言详情" width="900px" @closed="closeDialog" @open="openDialog">
<el-form ref="formRef" :model="formData" :disabled="true">
<el-row>
<el-col :span="24">
<el-form-item
:label-width="labelWidth"
label="留言人名称"
prop="leave_message_user_name"
>
<el-input
v-model="formData.leave_message_user_name"
type="text"
placeholder="请输入留言人名称"
></el-input>
<el-form-item :label-width="labelWidth" label="名称" prop="leave_message_user_name">
<el-input v-model="formData.leave_message_user_name" type="text"></el-input>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item
:label-width="labelWidth"
label="留言人手机号码"
prop="leave_message_user_phone"
>
<el-input
v-model="formData.leave_message_user_phone"
type="text"
placeholder="请输入留言人手机号码"
></el-input>
<el-form-item :label-width="labelWidth" label="手机号码" prop="leave_message_user_phone">
<el-input v-model="formData.leave_message_user_phone" type="text"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="留言受理状态" prop="leave_message_status">
<el-select
v-model="formData.leave_message_status"
clearable
placeholder="请选择"
>
<el-option
v-for="item in leave_message_status"
:key="item.dictionary_guid"
:label="item.dictionary_name"
:value="item.dictionary_value"
></el-option>
</el-select>
<el-form-item :label-width="labelWidth" label="受理状态" prop="leave_message_status">
<!-- <el-select v-model="formData.leave_message_status" clearable>
<el-option v-for="item in leave_message_status" :key="item.dictionary_guid" :label="item.dictionary_name"
:value="item.dictionary_value"></el-option>
</el-select> -->
<dict-tag :options="leave_message_status" :value="formData.leave_message_status" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item
:label-width="labelWidth"
label="留言内容"
prop="leave_message_content"
>
<RichText
v-model="formData.leave_message_content"
:min-height="196"
></RichText>
<el-form-item :label-width="labelWidth" label="留言内容" prop="leave_message_content">
<el-input rows="5" v-model="formData.leave_message_content" type="textarea"></el-input>
</el-form-item>
</el-col>
</el-row>

View File

@ -169,15 +169,15 @@ const column = [
label: '留言人名称',
width: '150'
},
{
prop: 'leave_message_content',
label: '留言内容',
width: '150'
},
{
prop: 'leave_message_user_phone',
label: '留言人手机号码',
width: '150'
width: '200'
},
{
prop: 'leave_message_content',
label: '留言内容',
width: '400'
},
{
prop: 'leave_message_status',

View File

@ -5,26 +5,26 @@
<el-col :span="12">
<el-form-item label="tdk所属模块" prop="tdk_type">
<el-form-item :label-width="labelWidth" label="tdk所属模块" prop="tdk_type">
<el-select v-model="formData.tdk_type" clearable placeholder="请选择">
<el-option v-for="item in tdk_type" :key="item.dictionary_guid" :label="item.dictionary_name"
:value="item.dictionary_value"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="24">
<el-form-item :label-width="labelWidth" label="网页标题" prop="tdk_title">
<el-input v-model='formData.tdk_title' type="text" placeholder='请输入网页标题'></el-input>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item :label-width="labelWidth" label="网页简介" prop="tdk_description">
<el-input :rows="10" v-model='formData.tdk_description' type="textarea" placeholder='请输入网页简介'></el-input>
<el-input v-model='formData.tdk_description' type="textarea" :rows="5" placeholder='请输入网页简介'></el-input>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item :label-width="labelWidth" label="网页关键词" prop="tdk_keyword">
<el-input :rows="10" v-model='formData.tdk_keyword' type="textarea" placeholder='请输入网页关键词'></el-input>
<el-input v-model='formData.tdk_keyword' type="textarea" :rows="5" placeholder='请输入网页关键词'></el-input>
</el-form-item>
</el-col>

View File

@ -5,26 +5,26 @@
<el-col :span="12">
<el-form-item label="tdk所属模块" prop="tdk_type">
<el-form-item :label-width="labelWidth" label="tdk所属模块" prop="tdk_type">
<el-select v-model="formData.tdk_type" clearable placeholder="请选择">
<el-option v-for="item in tdk_type" :key="item.dictionary_guid" :label="item.dictionary_name"
:value="item.dictionary_value"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="24">
<el-form-item :label-width="labelWidth" label="网页标题" prop="tdk_title">
<el-input v-model='formData.tdk_title' type="text" placeholder='请输入网页标题'></el-input>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item :label-width="labelWidth" label="网页简介" prop="tdk_description">
<el-input :rows="10" v-model='formData.tdk_description' type="textarea" placeholder='请输入网页简介'></el-input>
<el-input v-model='formData.tdk_description' type="textarea" :rows="5" placeholder='请输入网页简介'></el-input>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item :label-width="labelWidth" label="网页关键词" prop="tdk_keyword">
<el-input :rows="10" v-model='formData.tdk_keyword' type="textarea" placeholder='请输入网页关键词'></el-input>
<el-input v-model='formData.tdk_keyword' type="textarea" :rows="5" placeholder='请输入网页关键词'></el-input>
</el-form-item>
</el-col>

View File

@ -5,26 +5,26 @@
<el-col :span="12">
<el-form-item label="tdk所属模块" prop="tdk_type">
<el-form-item :label-width="labelWidth" label="tdk所属模块" prop="tdk_type">
<el-select disabled v-model="formData.tdk_type" clearable placeholder="请选择">
<el-option v-for="item in tdk_type" :key="item.dictionary_guid" :label="item.dictionary_name"
:value="item.dictionary_value"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="24">
<el-form-item :label-width="labelWidth" label="网页标题" prop="tdk_title">
<el-input v-model='formData.tdk_title' type="text" placeholder='请输入网页标题'></el-input>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item :label-width="labelWidth" label="网页简介" prop="tdk_description">
<el-input :rows="10" v-model='formData.tdk_description' type="textarea" placeholder='请输入网页简介'></el-input>
<el-input v-model='formData.tdk_description' type="textarea" :rows="5" placeholder='请输入网页简介'></el-input>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item :label-width="labelWidth" label="网页关键词" prop="tdk_keyword">
<el-input :rows="10" v-model='formData.tdk_keyword' type="textarea" placeholder='请输入网页关键词'></el-input>
<el-input v-model='formData.tdk_keyword' type="textarea" :rows="5" placeholder='请输入网页关键词'></el-input>
</el-form-item>
</el-col>
@ -55,9 +55,7 @@ const tdk_type = ref([]);
async function get_tdk_type() {
await getDictionary({ dictionary_value: 'tdk_type' }).then((res) => {
tdk_type.value = res
console.log(res,"this is res");
})
console.log(tdk_type.value,'this is tpe');
}
@ -93,8 +91,9 @@ watch(props, (v) => {
});
//
const openDialog = async () => {
await get_tdk_type()
const openDialog = () => {
get_tdk_type()
};
const closeDialog = () => {

View File

@ -30,9 +30,21 @@
</el-col>
<!-- 导入 -->
<el-upload class="upload-demo" :action="importExcel" :headers="headers" :on-success="handleExcelSuccess"
:on-progress="uploadLoading" :on-error="closeUploadLoading" style="margin-left: 10px" :show-file-list="false">
<el-button type="primary">导入</el-button>
</el-upload>
<!-- 下载导入模板 -->
<el-button icon="ElIconDownload" @click="downloadTemplate()">下载导入模板</el-button>
<!-- 导出 -->
<el-button icon="ElIconDocument" @click="exportExcel(params)">导出</el-button>
<!-- 下拉操作 -->
<!-- <el-dropdown v-if="selectionData.length">
<el-dropdown v-if="selectionData.length">
<el-button type="primary">
批量操作<el-icon class="el-icon--right"><arrow-down /></el-icon>
</el-button>
@ -43,7 +55,7 @@
</el-dropdown-item>
</el-dropdown-menu>
</template>
</el-dropdown> -->
</el-dropdown>
</el-space>
<!-- 数据表格 -->
<DataTable ref="tableRef" style="width: 100%" :onSelectionChange="data => (selectionData = data)" :column="column"
@ -68,9 +80,9 @@
<el-dropdown-item :command="{ type: 'detail', row: scope.row }">
详情
</el-dropdown-item>
<!-- <el-dropdown-item :command="{ type: 'delete', row: scope.row }">
<el-dropdown-item :command="{ type: 'delete', row: scope.row }">
删除
</el-dropdown-item> -->
</el-dropdown-item>
</el-dropdown-menu>
</template>
</el-dropdown>
@ -87,9 +99,9 @@
</template>
<script setup>
import { ArrowDown } from '@element-plus/icons-vue';
import { ref, reactive } from 'vue';
import { ref, reactive, watch } from 'vue';
import { useLoginStore } from "~/store";
import { getTdkList, deleteTdk, getDictionary } from '~/service/tdk';
import { getTdkList, deleteTdk, getDictionary, exportExcel, downloadTemplate, importExcel } from '~/service/tdk';
import AddTdkDialog from './components/AddTdkDialog.vue';
import EditTdkDialog from './components/EditTdkDialog.vue';
import DetailTdkDialog from './components/DetailTdkDialog.vue';
@ -129,22 +141,25 @@ const column = [
{
prop: "tdk_title",
label: '网页标题',
width: '200'
width: '250'
},
{
prop: "tdk_description",
label: '网页简介',
width: '350'
width: '400',
showOverflowTooltip: true,
},
{
prop: "tdk_keyword",
label: '网页关键词',
width: '350'
width: '300',
showOverflowTooltip: true,
},
{
label: '操作',
prop: 'chaoz',
width: '250'
width: '250',
fixed: 'right'
}
];
@ -185,6 +200,30 @@ function handleDetail(row) {
}
//
let loadingImoprt = null;
const uploadLoading = () => {
loadingImoprt = ElLoading.service({
lock: true,
text: "正在导入中...",
background: "rgba(255, 255, 255, 0.7)",
});
};
const closeUploadLoading = () => loadingImoprt.close();
const handleExcelSuccess = (value) => {
if (value.code == 0) {
ElMessageBox.alert(value.msg, "导入信息", {
dangerouslyUseHTMLString: true,
confirmButtonText: "确定",
});
} else {
ElMessage.error(value.msg);
}
closeUploadLoading();
tableRef.value.reload();
};
//

View File

@ -1,6 +1,31 @@
import { api, downloadFile, createApiUrl} from '~/utils/axios';
/**
* 导出网站tdk
* @param {Object} data
* @return {Promise} api
*/
export function exportExcel(data) {
downloadFile(createApiUrl('Tdk.Tdk/exportExcel'), data);
}
/**
* 下载网站tdk模板
* @param {Object} data
* @return {Promise} api
*/
export function downloadTemplate(data) {
downloadFile(createApiUrl('Tdk.Tdk/downloadTemplate'), data);
}
/**
* 导入网站tdk
* @param {Object} data
* @return {Promise} api
*/
export const importExcel = createApiUrl('Tdk.Tdk/importExcel');