提交对接代码

This commit is contained in:
wangchengming 2025-08-11 14:56:45 +08:00
parent 512032ba95
commit 06a9d74848
8 changed files with 417 additions and 253 deletions

22
src/api/common.js Normal file
View File

@ -0,0 +1,22 @@
import request from '@/utils/request'
// 上传文件 单个
export function uploadFile(data) {
return request({
url: '/common/upload',
method: 'post',
data: data,
headers: {
'Content-Type': 'multipart/form-data'
}
})
}
// 公用下载文件接口
export function downFile(fileUrl) {
return request({
url: '/common/download/resource?resource=' + fileUrl,
method: 'get',
responseType: 'blob'
})
}

View File

@ -0,0 +1,44 @@
import request from '@/utils/request'
// 获取商圈列表
export function busTradingAreaPage(query) {
return request({
url: '/admin/busTradingArea/getBusTradingAreaPage',
method: 'post',
data: query
})
}
// 新增商圈
export function addBusTradingArea(data) {
return request({
url: '/admin/busTradingArea/addBusTradingArea',
method: 'post',
data: data
})
}
// 修改商圈
export function updateBusTradingArea(data) {
return request({
url: '/admin/busTradingArea/updateBusTradingArea',
method: 'post',
data: data
})
}
// 获取商圈详情
export function getBusTradingArea(areaId) {
return request({
url: '/admin/busTradingArea/getBusTradingArea/' + areaId,
method: 'post'
})
}
// 删除商圈
export function deleteBusTradingArea(areaId) {
return request({
url: '/admin/busTradingArea/deleteBusTradingArea/' + areaId,
method: 'post'
})
}

View File

@ -0,0 +1,44 @@
import request from '@/utils/request'
// 获取媒体类型树列表
export function sysMediaTypeTreeList(query) {
return request({
url: '/admin/sysMediaType/treeList',
method: 'post',
data: query
})
}
// 新增媒体类型
export function addSysMediaType(data) {
return request({
url: '/admin/sysMediaType/addSysMediaType',
method: 'post',
data: data
})
}
// 修改媒体类型
export function updateSysMediaType(data) {
return request({
url: '/admin/sysMediaType/updateSysMediaType',
method: 'post',
data: data
})
}
// 获取媒体类型详情
export function getSysMediaType(sysMediaTypeId) {
return request({
url: '/admin/sysMediaType/getSysMediaType/' + sysMediaTypeId,
method: 'post'
})
}
// 删除媒体类型
export function deleteSysMediaType(sysMediaTypeId) {
return request({
url: '/admin/sysMediaType/deleteSysMediaType/' + sysMediaTypeId,
method: 'post'
})
}

View File

@ -0,0 +1,44 @@
import request from '@/utils/request'
// 获取PPT模板列表
export function pptTemplatePage(query) {
return request({
url: '/admin/pptTemplate/getPptTemplatePage',
method: 'post',
data: query
})
}
// 新增PPT模板
export function addPptTemplate(data) {
return request({
url: '/admin/pptTemplate/addPptTemplate',
method: 'post',
data: data
})
}
// 修改PPT模板
export function updatePptTemplate(data) {
return request({
url: '/admin/pptTemplate/updatePptTemplate',
method: 'post',
data: data
})
}
// 获取PPT模板详情
export function getPptTemplate(pptTemplateId) {
return request({
url: '/admin/pptTemplate/getPptTemplate/' + pptTemplateId,
method: 'post'
})
}
// 删除PPT模板
export function deletePptTemplate(pptTemplateId) {
return request({
url: '/admin/pptTemplate/deletePptTemplate/' + pptTemplateId,
method: 'post'
})
}

View File

@ -20,11 +20,11 @@
<el-table-column prop="name" label="区域名称"></el-table-column>
<el-table-column prop="code" label="区域编号"></el-table-column>
<el-table-column prop="sortNo" label="排序"></el-table-column>
<el-table-column label="创建时间" align="center" prop="createTime">
<!-- <el-table-column label="创建时间" align="center" prop="createTime" min-width="210">
<template #default="scope">
<span>{{ parseTime(scope.row.createTime) }}</span>
</template>
</el-table-column>
</el-table-column> -->
<el-table-column label="操作" align="center" width="230" class-name="small-padding fixed-width">
<template #default="scope">
<el-button link type="primary" @click="handleUpdate(scope.row)"
@ -76,8 +76,6 @@ const regionTreeList = ref([])
const open = ref(false)
const loading = ref(true)
const title = ref("")
//
const deptOptions = ref([])
const isExpandAll = ref(true)
const refreshTable = ref(true)
@ -102,7 +100,7 @@ const getsysRegionTreeList = () => {
}
/** 展开/折叠操作 */
function toggleExpandAll() {
const toggleExpandAll = () => {
refreshTable.value = false
isExpandAll.value = !isExpandAll.value
nextTick(() => {
@ -131,10 +129,8 @@ const handleAddRootNode = () => {
}
/** 新增子节点 */
const handleAddChildrenNode = (row) => {
console.log(row)
reset()
reset()
if (row) {
console.log('进入了这里?')
form.value.parentId = row.id
}
open.value = true

View File

@ -1,35 +1,25 @@
<template>
<div class="app-container">
<div class="searchPanel">
<el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" class="searchPanelForm">
<el-form :inline="true" v-show="showSearch" class="searchPanelForm">
<el-form-item label="城市:">
<el-select v-model="queryParams.status" placeholder="请选择" clearable style="min-width: 30px">
<el-option v-for="dict in sys_normal_disable" :key="dict.value" :label="dict.label"
:value="dict.value" />
<el-select v-model="queryParams.provinceId" placeholder="请选择" clearable style="min-width: 30px">
<el-option v-for="item in province" :key="item.value" :label="item.label" :value="item.value" />
</el-select>
</el-form-item>
<el-form-item label="">
<el-select v-model="queryParams.status" placeholder="请选择" clearable style="min-width: 30px">
<el-option v-for="dict in sys_normal_disable" :key="dict.value" :label="dict.label"
:value="dict.value" />
<el-select v-model="queryParams.cityId" placeholder="请选择" clearable style="min-width: 30px">
<el-option v-for="item in city" :key="item.value" :label="item.label" :value="item.value" />
</el-select>
</el-form-item>
<el-form-item label="">
<el-select v-model="queryParams.status" placeholder="请选择" clearable style="min-width: 30px">
<el-option v-for="dict in sys_normal_disable" :key="dict.value" :label="dict.label"
:value="dict.value" />
<el-select v-model="queryParams.countyId" placeholder="请选择" clearable style="min-width: 30px">
<el-option v-for="item in county" :key="item.value" :label="item.label" :value="item.value" />
</el-select>
</el-form-item>
<el-form-item label="">
<el-select v-model="queryParams.status" placeholder="请选择" clearable style="min-width: 30px">
<el-option v-for="dict in sys_normal_disable" :key="dict.value" :label="dict.label"
:value="dict.value" />
</el-select>
</el-form-item>
<el-form-item label="商圈:">
<el-select v-model="queryParams.status" placeholder="请选择" clearable style="min-width: 30px">
<el-option v-for="dict in sys_normal_disable" :key="dict.value" :label="dict.label"
:value="dict.value" />
<el-select v-model="queryParams.townId" placeholder="请选择" clearable style="min-width: 30px">
<el-option v-for="item in town" :key="item.value" :label="item.label" :value="item.value" />
</el-select>
</el-form-item>
</el-form>
@ -43,7 +33,15 @@
</div>
</template>
<el-row :gutter="10" class="my_row">
<el-col :span="24">
<el-col :span="12">
<el-form :inline="true" class="searchInputForm">
<el-form-item label="">
<el-input v-model="queryParams.name" placeholder="请输入商圈名称" :prefix-icon="Search"
style="width: 300px;" />
</el-form-item>
</el-form>
</el-col>
<el-col :span="12" style="text-align: right;">
<el-button type="primary" class="primaryBtn" @click="handleQuery">查询</el-button>
<el-button type="primary" class="primaryBtn" @click="resetQuery">重置</el-button>
<el-button type="primary" class="primaryBtn" @click="handleAdd"
@ -72,41 +70,37 @@
</el-table-column>
</el-table>
<pagination :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize"
@pagination="getList" />
<pagination :total="total" v-model:page="queryParams.pageIndex" v-model:limit="queryParams.pageSize"
@pagination="getbusinessAreaList" />
</el-card>
<!-- 添加或修改岗位对话框 -->
<el-dialog :title="title" v-model="open" width="800px" class="my_dialog" align-center :destroy-on-close="true"
:close-on-click-modal="false">
<el-form ref="postRef" :model="form" :rules="rules" label-width="120px" class="myInsertForm">
<el-form-item label="省/直辖市" prop="postName">
<el-select v-model="queryParams.status" placeholder="请选择" clearable>
<el-option v-for="dict in sys_normal_disable" :key="dict.value" :label="dict.label"
:value="dict.value" />
<el-form ref="businessAreaRef" :model="form" :rules="rules" label-width="120px" class="myInsertForm">
<el-form-item label="省/直辖市" prop="provinceId">
<el-select v-model="form.provinceId" placeholder="请选择" clearable>
<el-option v-for="item in province" :key="item.value" :label="item.label" :value="item.value" />
</el-select>
</el-form-item>
<el-form-item label="地级市/区" prop="postCode">
<el-select v-model="queryParams.status" placeholder="请选择" clearable>
<el-option v-for="dict in sys_normal_disable" :key="dict.value" :label="dict.label"
:value="dict.value" />
<el-form-item label="地级市/区" prop="cityId">
<el-select v-model="form.cityId" placeholder="请选择" clearable>
<el-option v-for="item in city" :key="item.value" :label="item.label" :value="item.value" />
</el-select>
</el-form-item>
<el-form-item label="区/县" prop="postSort">
<el-select v-model="queryParams.status" placeholder="请选择" clearable>
<el-option v-for="dict in sys_normal_disable" :key="dict.value" :label="dict.label"
:value="dict.value" />
<el-form-item label="区/县" prop="countyId">
<el-select v-model="form.countyId" placeholder="请选择" clearable>
<el-option v-for="item in county" :key="item.value" :label="item.label" :value="item.value" />
</el-select>
</el-form-item>
<el-form-item label="镇" prop="status">
<el-select v-model="queryParams.status" placeholder="请选择" clearable>
<el-option v-for="dict in sys_normal_disable" :key="dict.value" :label="dict.label"
:value="dict.value" />
<el-form-item label="镇" prop="townId">
<el-select v-model="form.townId" placeholder="请选择" clearable>
<el-option v-for="item in town" :key="item.value" :label="item.label" :value="item.value" />
</el-select>
</el-form-item>
<el-form-item label="商圈" prop="remark">
<el-input v-model="form.postCode" placeholder="请输入" />
<el-form-item label="商圈" prop="name">
<el-input v-model="form.name" placeholder="请输入" />
</el-form-item>
</el-form>
<template #footer>
@ -121,61 +115,90 @@
<script setup name="Post">
import { onMounted, ref } from 'vue';
import { listPost, addPost, delPost, getPost, updatePost } from "@/api/system/post"
import { Search } from '@element-plus/icons-vue'
import { busTradingAreaPage, addBusTradingArea, updateBusTradingArea, getBusTradingArea, deleteBusTradingArea } from "@/api/system/businessArea"
import { useBackgroundStore } from '@/store/modules/background'
import otherbg from '@/assets/images/otherbg.png'
const bgStore = useBackgroundStore()
const { proxy } = getCurrentInstance()
const { sys_normal_disable } = proxy.useDict("sys_normal_disable")
//
const businessAreaList = ref([])
const showSearch = ref(true)
const loading = ref(true)
const businessAreaList = ref([])
const total = ref(0)
const open = ref(false)
const title = ref("")
const province = ref([])
const city = ref([])
const county = ref([])
const town = ref([])
const data = reactive({
form: {},
queryParams: {
pageNum: 1,
pageIndex: 1,
pageSize: 10,
postCode: undefined,
postName: undefined,
status: undefined
provinceId: undefined,
cityId: undefined,
countyId: undefined,
townId: undefined,
name: undefined
},
rules: {
postName: [{ required: true, message: "岗位名称不能为空", trigger: "blur" }],
postCode: [{ required: true, message: "岗位编码不能为空", trigger: "blur" }],
postSort: [{ required: true, message: "岗位顺序不能为空", trigger: "blur" }],
// provinceId: [{ required: true, message: "/", trigger: "change" }],
// cityId: [{ required: true, message: "/", trigger: "change" }],
// countyId: [{ required: true, message: "/", trigger: "change" }],
// townId: [{ required: true, message: "", trigger: "change" }],
name: [{ required: true, message: "商圈名称不能为空", trigger: "blur" }],
}
})
const { queryParams, form, rules } = toRefs(data)
/** 查询PPT模板列表 */
const getbusinessAreaList = () => {
loading.value = true
busTradingAreaPage(queryParams.value).then(res => {
if (res.code == 200) {
businessAreaList.value = res.list
total.value = res.total
loading.value = false
}
})
}
/** 表单重置 */
const reset = () => {
form.value = {
postId: undefined,
postCode: undefined,
postName: undefined,
postSort: 0,
status: "0",
remark: undefined
provinceId: undefined,
cityId: undefined,
countyId: undefined,
townId: undefined,
name: undefined
}
proxy.resetForm("postRef")
proxy.resetForm("businessAreaRef")
}
/** 搜索按钮操作 */
const handleQuery = () => {
queryParams.value.pageNum = 1
getList()
queryParams.value.pageIndex = 1
getbusinessAreaList()
}
/** 重置按钮操作 */
function resetQuery() {
proxy.resetForm("queryRef")
const resetQuery = () => {
queryParams.value = {
pageIndex: 1,
pageSize: 10,
provinceId: undefined,
cityId: undefined,
countyId: undefined,
townId: undefined,
name: undefined
}
handleQuery()
}
@ -189,8 +212,7 @@ const handleAdd = () => {
/** 修改按钮操作 */
const handleUpdate = (row) => {
reset()
const postId = row.postId || ids.value
getPost(postId).then(response => {
getBusTradingArea(row.id).then(response => {
form.value = response.data
open.value = true
title.value = "修改商圈"
@ -205,19 +227,19 @@ const cancel = () => {
/** 提交按钮 */
const submitForm = () => {
proxy.$refs["postRef"].validate(valid => {
proxy.$refs["businessAreaRef"].validate(valid => {
if (valid) {
if (form.value.postId != undefined) {
updatePost(form.value).then(response => {
if (form.value.id != undefined) {
updateBusTradingArea(form.value).then(response => {
proxy.$modal.msgSuccess("修改成功")
open.value = false
getList()
getbusinessAreaList()
})
} else {
addPost(form.value).then(response => {
addBusTradingArea(form.value).then(response => {
proxy.$modal.msgSuccess("新增成功")
open.value = false
getList()
getbusinessAreaList()
})
}
}
@ -226,26 +248,18 @@ const submitForm = () => {
/** 删除按钮操作 */
function handleDelete(row) {
const postIds = row.postId || ids.value
proxy.$modal.confirm('是否确认删除岗位编号为"' + postIds + '"的数据项?').then(function () {
return delPost(postIds)
proxy.$modal.confirm('是否确认删除商圈名称为"' + row.name + '"的数据项?').then(function () {
return deleteBusTradingArea(row.id)
}).then(() => {
getList()
getbusinessAreaList()
proxy.$modal.msgSuccess("删除成功")
}).catch(() => { })
}
const getList = () => {
loading.value = true
listPost(queryParams.value).then(response => {
businessAreaList.value = response.rows
total.value = response.total
loading.value = false
})
}
//
onMounted(() => {
bgStore.setBgImage(otherbg)
getbusinessAreaList()
});
</script>

View File

@ -9,28 +9,28 @@
<el-row :gutter="10" class="my_row">
<el-col :span="24">
<el-button type="primary" class="primaryBtn" @click="handleAdd"
v-hasPermi="['system:mediaType:add']">新增</el-button>
<el-button type="primary" class="primaryBtn" @click="handleAddRootNode"
v-hasPermi="['system:mediaType:add']">新增根节点</el-button>
<el-button type="primary" class="primaryBtn" @click="toggleExpandAll">展开/折叠</el-button>
</el-col>
</el-row>
<el-table v-if="refreshTable" v-loading="loading" height="calc(100vh - 244px)" :data="deptList"
row-key="deptId" :default-expand-all="isExpandAll"
:tree-props="{ children: 'children', hasChildren: 'hasChildren' }">
<el-table-column prop="deptName" label="类型名称"></el-table-column>
<el-table-column prop="orderNum" label="排序"></el-table-column>
<el-table-column label="创建时间" align="center" prop="createTime">
<el-table v-if="refreshTable" v-loading="loading" height="calc(100vh - 244px)" :data="mediaTypeTreeList"
row-key="deptId" :default-expand-all="isExpandAll" :tree-props="{ children: 'children' }">
<el-table-column prop="name" label="类型名称"></el-table-column>
<el-table-column prop="value" label="类型标识"></el-table-column>
<el-table-column prop="sortNo" label="排序"></el-table-column>
<!-- <el-table-column label="创建时间" align="center" prop="createTime" min-width="210">
<template #default="scope">
<span>{{ parseTime(scope.row.createTime) }}</span>
</template>
</el-table-column>
</el-table-column> -->
<el-table-column label="操作" align="center" width="230" class-name="small-padding fixed-width">
<template #default="scope">
<el-button link type="primary" @click="handleUpdate(scope.row)"
v-hasPermi="['system:mediaType:edit']">修改</el-button>
<el-button link type="primary" @click="handleAdd(scope.row)"
v-hasPermi="['system:mediaType:add']">新增</el-button>
<el-button link type="primary" @click="handleAddChildrenNode(scope.row)"
v-hasPermi="['system:mediaType:add']">新增子节点</el-button>
<el-button v-if="scope.row.parentId != 0" link type="primary" @click="handleDelete(scope.row)"
v-hasPermi="['system:mediaType:remove']">删除</el-button>
</template>
@ -41,26 +41,15 @@
<!-- 添加或修改部门对话框 -->
<el-dialog :title="title" v-model="open" width="800px" class="my_dialog" align-center :destroy-on-close="true"
:close-on-click-modal="false">
<el-form ref="deptRef" :model="form" :rules="rules" label-width="100px" class="myInsertForm">
<el-form-item label="上级类型" prop="parentId">
<el-tree-select v-model="form.parentId" :data="deptOptions"
:props="{ value: 'deptId', label: 'deptName', children: 'children' }" value-key="deptId"
placeholder="选择上级类型" check-strictly />
<el-form ref="mediaTypeRef" :model="form" :rules="rules" label-width="100px" class="myInsertForm">
<el-form-item label="类型名称" prop="name">
<el-input v-model="form.name" placeholder="请输入类型名称" />
</el-form-item>
<el-form-item label="类型名称" prop="deptName">
<el-input v-model="form.deptName" placeholder="请输入类型名称" />
<el-form-item label="类型标识" prop="value">
<el-input v-model="form.value" placeholder="请输入类型名称" />
</el-form-item>
<el-form-item label="显示排序" prop="orderNum">
<el-input-number v-model="form.orderNum" controls-position="right" :min="0" />
</el-form-item>
<el-form-item label="是否可用">
<el-radio-group v-model="form.status">
<el-radio v-for="dict in sys_normal_disable" :key="dict.value" :value="dict.value">{{ dict.label
}}</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="备注">
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容"></el-input>
<el-form-item label="显示排序" prop="sortNo">
<el-input-number v-model="form.sortNo" controls-position="right" :min="0" style="width: 100%;" />
</el-form-item>
</el-form>
<template #footer>
@ -75,96 +64,42 @@
<script setup name="Dept">
import { onMounted, ref } from 'vue';
import { listDept, getDept, delDept, addDept, updateDept, listDeptExcludeChild } from "@/api/system/dept"
import { sysMediaTypeTreeList, addSysMediaType, updateSysMediaType, getSysMediaType, deleteSysMediaType } from "@/api/system/mediaType"
import { useBackgroundStore } from '@/store/modules/background'
import otherbg from '@/assets/images/otherbg.png'
const bgStore = useBackgroundStore()
const { proxy } = getCurrentInstance()
const { sys_normal_disable } = proxy.useDict("sys_normal_disable")
const deptList = ref([])
// tree
const mediaTypeTreeList = ref([])
const open = ref(false)
const loading = ref(true)
const showSearch = ref(true)
const title = ref("")
const deptOptions = ref([])
const isExpandAll = ref(true)
const refreshTable = ref(true)
const data = reactive({
form: {},
queryParams: {
deptName: undefined,
status: undefined
},
rules: {
parentId: [{ required: true, message: "上级部门不能为空", trigger: "blur" }],
deptName: [{ required: true, message: "部门名称不能为空", trigger: "blur" }],
orderNum: [{ required: true, message: "显示排序不能为空", trigger: "blur" }],
email: [{ type: "email", message: "请输入正确的邮箱地址", trigger: ["blur", "change"] }],
phone: [{ pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/, message: "请输入正确的手机号码", trigger: "blur" }]
name: [{ required: true, message: "类型名称不能为空", trigger: "blur" }],
value: [{ required: true, message: "类型标识不能为空", trigger: "blur" }],
sortNo: [{ required: true, message: "显示排序不能为空", trigger: "blur" }],
},
})
const { queryParams, form, rules } = toRefs(data)
const { form, rules } = toRefs(data)
/** 查询部门列表 */
function getList() {
/** 查询媒体类型树列表 */
const getsysMediaTypeTreeList = () => {
loading.value = true
listDept(queryParams.value).then(response => {
deptList.value = proxy.handleTree(response.data, "deptId")
sysMediaTypeTreeList().then(res => {
mediaTypeTreeList.value = res.data
loading.value = false
})
}
/** 取消按钮 */
function cancel() {
open.value = false
reset()
}
/** 表单重置 */
function reset() {
form.value = {
deptId: undefined,
parentId: undefined,
deptName: undefined,
orderNum: 0,
leader: undefined,
phone: undefined,
email: undefined,
status: "0"
}
proxy.resetForm("deptRef")
}
/** 搜索按钮操作 */
function handleQuery() {
getList()
}
/** 重置按钮操作 */
function resetQuery() {
proxy.resetForm("queryRef")
handleQuery()
}
/** 新增按钮操作 */
function handleAdd(row) {
reset()
listDept().then(response => {
deptOptions.value = proxy.handleTree(response.data, "deptId")
})
if (row != undefined) {
form.value.parentId = row.deptId
}
open.value = true
title.value = "添加类型"
}
/** 展开/折叠操作 */
function toggleExpandAll() {
const toggleExpandAll = () => {
refreshTable.value = false
isExpandAll.value = !isExpandAll.value
nextTick(() => {
@ -172,34 +107,64 @@ function toggleExpandAll() {
})
}
/** 修改按钮操作 */
function handleUpdate(row) {
/** 表单重置 */
const reset = () => {
form.value = {
parentId: undefined,
name: undefined,
value: undefined,
sortNo: 0
}
proxy.resetForm("mediaTypeRef")
}
/** 新增根节点 */
const handleAddRootNode = () => {
reset()
listDeptExcludeChild(row.deptId).then(response => {
deptOptions.value = proxy.handleTree(response.data, "deptId")
})
getDept(row.deptId).then(response => {
form.value.parentId = '0'
open.value = true
title.value = "添加媒体类型"
}
/** 新增子节点 */
const handleAddChildrenNode = (row) => {
reset()
if (row) {
form.value.parentId = row.id
}
open.value = true
title.value = "添加媒体类型"
}
/** 修改按钮操作 */
const handleUpdate = (row) => {
reset()
getSysMediaType(row.id).then(response => {
form.value = response.data
open.value = true
title.value = "修改类型"
title.value = "修改媒体类型"
})
}
/** 取消按钮 */
const cancel = () => {
open.value = false
reset()
}
/** 提交按钮 */
function submitForm() {
proxy.$refs["deptRef"].validate(valid => {
const submitForm = () => {
proxy.$refs["mediaTypeRef"].validate(valid => {
if (valid) {
if (form.value.deptId != undefined) {
updateDept(form.value).then(response => {
if (form.value.id != undefined) {
updateSysMediaType(form.value).then(response => {
proxy.$modal.msgSuccess("修改成功")
open.value = false
getList()
getsysMediaTypeTreeList()
})
} else {
addDept(form.value).then(response => {
addSysMediaType(form.value).then(response => {
proxy.$modal.msgSuccess("新增成功")
open.value = false
getList()
getsysMediaTypeTreeList()
})
}
}
@ -207,11 +172,11 @@ function submitForm() {
}
/** 删除按钮操作 */
function handleDelete(row) {
proxy.$modal.confirm('是否确认删除名称为"' + row.deptName + '"的数据项?').then(function () {
return delDept(row.deptId)
const handleDelete = (row) => {
proxy.$modal.confirm('是否确认删除媒体类型名称为"' + row.name + '"的数据项?').then(function () {
return deleteSysMediaType(row.id)
}).then(() => {
getList()
getsysMediaTypeTreeList()
proxy.$modal.msgSuccess("删除成功")
}).catch(() => { })
}
@ -219,6 +184,6 @@ function handleDelete(row) {
//
onMounted(() => {
bgStore.setBgImage(otherbg)
getList()
getsysMediaTypeTreeList()
});
</script>

View File

@ -9,8 +9,8 @@
<el-row :gutter="10" class="my_row">
<el-col :span="12">
<el-form :model="queryParams" ref="queryRef" :inline="true" class="searchInputForm">
<el-form-item label="">
<el-input v-model="form.postCode" placeholder="请输入" :prefix-icon="Search"
<el-form-item label="" prop="keyword">
<el-input v-model="form.keyword" placeholder="请输入" :prefix-icon="Search"
style="width: 300px;" />
</el-form-item>
</el-form>
@ -23,10 +23,9 @@
</el-col>
</el-row>
<el-table v-loading="loading" :data="businessAreaList" height="calc(100vh - 320px)">
<el-table-column label="模板名称" align="center" prop="postId" />
<el-table-column label="模板类型" align="center" prop="postCode" />
<el-table-column label="模板文件" align="center" prop="postName" />
<el-table v-loading="loading" :data="templateList" height="calc(100vh - 320px)">
<el-table-column label="模板名称" align="center" prop="templateName" />
<el-table-column label="模板类型" align="center" prop="type" />
<el-table-column label="创建时间" align="center" prop="createTime" width="210">
<template #default="scope">
<span>{{ parseTime(scope.row.createTime) }}</span>
@ -42,22 +41,22 @@
</el-table-column>
</el-table>
<pagination :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize"
<pagination :total="total" v-model:page="queryParams.pageIndex" v-model:limit="queryParams.pageSize"
@pagination="getList" />
</el-card>
<!-- 添加或修改岗位对话框 -->
<!-- 添加或修改模板对话框 -->
<el-dialog :title="title" v-model="open" width="800px" class="my_dialog" align-center :destroy-on-close="true"
:close-on-click-modal="false">
<el-form ref="postRef" :model="form" :rules="rules" label-width="120px" class="myInsertForm">
<el-form-item label="模板名称" prop="postName">
<el-input v-model="form.postCode" placeholder="请输入" />
<el-form ref="pptTemplateRef" :model="form" :rules="rules" label-width="120px" class="myInsertForm">
<el-form-item label="模板名称" prop="templateName">
<el-input v-model="form.templateName" placeholder="请输入" />
</el-form-item>
<el-form-item label="模板类型" prop="postCode">
<el-input v-model="form.postCode" placeholder="请输入" />
<el-form-item label="模板类型" prop="type">
<el-input v-model="form.type" placeholder="请输入" />
</el-form-item>
<el-form-item label="模板文件" prop="employeeNumber">
<el-form-item label="模板文件" prop="fileId">
<el-upload class="upload-demo" drag action="#" :http-request="requestDocUpload"
:file-list="docUploadList" :before-upload="beforeDocUpload" :on-remove="removeDocUpload">
<el-icon class="el-icon--upload"><upload-filled /></el-icon>
@ -83,49 +82,55 @@
<script setup name="Post">
import { onMounted, ref } from 'vue';
import { Search } from '@element-plus/icons-vue'
import { listPost, addPost, delPost, getPost, updatePost } from "@/api/system/post"
import { pptTemplatePage, addPptTemplate, updatePptTemplate, getPptTemplate, deletePptTemplate } from "@/api/system/pptTemplate"
import { uploadFile } from "@/api/common"
import { useBackgroundStore } from '@/store/modules/background'
import otherbg from '@/assets/images/otherbg.png'
const bgStore = useBackgroundStore()
const { proxy } = getCurrentInstance()
const { sys_normal_disable } = proxy.useDict("sys_normal_disable")
const baseUrl = import.meta.env.VITE_APP_BASE_API
//
const templateList = ref([])
const loading = ref(true)
const businessAreaList = ref([])
const total = ref(0)
const open = ref(false)
const title = ref("")
const data = reactive({
form: {},
queryParams: {
pageNum: 1,
pageIndex: 1,
pageSize: 10,
postCode: undefined,
postName: undefined,
status: undefined
keyword: undefined,
},
rules: {
postName: [{ required: true, message: "岗位名称不能为空", trigger: "blur" }],
postCode: [{ required: true, message: "岗位编码不能为空", trigger: "blur" }],
postSort: [{ required: true, message: "岗位顺序不能为空", trigger: "blur" }],
templateName: [{ required: true, message: "模板名称不能为空", trigger: "blur" }],
type: [{ required: true, message: "模板类型不能为空", trigger: "blur" }],
fileId: [{ required: true, message: "模板文件不能为空", trigger: "change" }],
}
})
const { queryParams, form, rules } = toRefs(data)
/** 查询PPT模板列表 */
const getpptTemplatePageList = () => {
loading.value = true
pptTemplatePage(queryParams.value).then(res => {
templateList.value = res.list
total.value = res.total
loading.value = false
})
}
/** 表单重置 */
const reset = () => {
form.value = {
postId: undefined,
postCode: undefined,
postName: undefined,
postSort: 0,
status: "0",
remark: undefined
templateName: undefined,
type: undefined,
fileId: undefined
}
proxy.resetForm("postRef")
proxy.resetForm("pptTemplateRef")
}
/** 搜索按钮操作 */
@ -150,8 +155,7 @@ const handleAdd = () => {
/** 修改按钮操作 */
const handleUpdate = (row) => {
reset()
const postId = row.postId || ids.value
getPost(postId).then(response => {
getPptTemplate(row.id).then(response => {
form.value = response.data
open.value = true
title.value = "修改模板"
@ -166,19 +170,19 @@ const cancel = () => {
/** 提交按钮 */
const submitForm = () => {
proxy.$refs["postRef"].validate(valid => {
proxy.$refs["pptTemplateRef"].validate(valid => {
if (valid) {
if (form.value.postId != undefined) {
updatePost(form.value).then(response => {
updatePptTemplate(form.value).then(response => {
proxy.$modal.msgSuccess("修改成功")
open.value = false
getList()
getpptTemplatePageList()
})
} else {
addPost(form.value).then(response => {
addPptTemplate(form.value).then(response => {
proxy.$modal.msgSuccess("新增成功")
open.value = false
getList()
getpptTemplatePageList()
})
}
}
@ -186,28 +190,59 @@ const submitForm = () => {
}
/** 删除按钮操作 */
function handleDelete(row) {
const postIds = row.postId || ids.value
proxy.$modal.confirm('是否确认删除岗位编号为"' + postIds + '"的数据项?').then(function () {
return delPost(postIds)
const handleDelete = (row) => {
proxy.$modal.confirm('是否确认删除岗位编号为"' + row.templateName + '"的数据项?').then(function () {
return deletePptTemplate(row.id)
}).then(() => {
getList()
getpptTemplatePageList()
proxy.$modal.msgSuccess("删除成功")
}).catch(() => { })
}
const getList = () => {
loading.value = true
listPost(queryParams.value).then(response => {
businessAreaList.value = response.rows
total.value = response.total
loading.value = false
const docUploadList = ref([])
//
const requestDocUpload = (options) => {
const { file } = options
var formData = new FormData();
formData.append('file', file);
uploadFile(formData).then(res => {
if (res.code == 200) {
proxy.$modal.msgSuccess("上传成功")
docUploadList.value.push({
name: res.originalFilename,
url: baseUrl + res.fileName,
suffix: res.suffix
})
form.fileId = ''
} else {
proxy.$modal.msgError(res.msg);
}
})
}
//
const beforeDocUpload = (file) => {
const type = [
'application/vnd.openxmlformats-officedocument.presentationml.presentation'
];
const isPPTX = type.includes(file.type);
//
if (!isPPTX) {
proxy.$modal.msgError("文件格式错误,请上传.pptx后缀的文件。");
return false;
}
return true;
}
//
const removeDocUpload = (file, fileList) => {
docUploadList.value = docUploadList.value.filter(
item => item.name != file.name
);
}
//
onMounted(() => {
bgStore.setBgImage(otherbg)
getpptTemplatePageList()
});
</script>
<style lang='scss'>