Compare commits

..

No commits in common. "91788197cf09111e1b3976f0168ebc092b41f5e5" and "e5ebb3474fe150c3463ffcfd6070141db8e36b13" have entirely different histories.

7 changed files with 65 additions and 167 deletions

View File

@ -9,15 +9,6 @@ export function sysRegionTreeList(query) {
})
}
// 依据父级id获取行政区划数据
export function sysRegionListByPid(query) {
return request({
url: '/admin/sysRegion/listByPid',
method: 'post',
data: query
})
}
// 新增行政区划
export function addSysRegion(data) {
return request({

View File

@ -9,15 +9,6 @@ export function sysMediaTypeTreeList(query) {
})
}
// 依据父级id获取媒体类型数据
export function sysMediaTypeListByPid(query) {
return request({
url: '/admin/sysMediaType/listByPid',
method: 'post',
data: query
})
}
// 新增媒体类型
export function addSysMediaType(data) {
return request({

View File

@ -3,7 +3,7 @@ import request from '@/utils/request'
// 获取PPT模板列表
export function pptTemplatePage(query) {
return request({
url: '/admin/busPptTemplate/getBusPptTemplatePage',
url: '/admin/pptTemplate/getPptTemplatePage',
method: 'post',
data: query
})
@ -12,7 +12,7 @@ export function pptTemplatePage(query) {
// 新增PPT模板
export function addPptTemplate(data) {
return request({
url: '/admin/busPptTemplate/addBusPptTemplate',
url: '/admin/pptTemplate/addPptTemplate',
method: 'post',
data: data
})
@ -21,7 +21,7 @@ export function addPptTemplate(data) {
// 修改PPT模板
export function updatePptTemplate(data) {
return request({
url: '/admin/busPptTemplate/updateBusPptTemplate',
url: '/admin/pptTemplate/updatePptTemplate',
method: 'post',
data: data
})
@ -30,7 +30,7 @@ export function updatePptTemplate(data) {
// 获取PPT模板详情
export function getPptTemplate(pptTemplateId) {
return request({
url: '/admin/busPptTemplate/getBusPptTemplate/' + pptTemplateId,
url: '/admin/pptTemplate/getPptTemplate/' + pptTemplateId,
method: 'post'
})
}
@ -38,7 +38,7 @@ export function getPptTemplate(pptTemplateId) {
// 删除PPT模板
export function deletePptTemplate(pptTemplateId) {
return request({
url: '/admin/busPptTemplate/deleteBusPptTemplate/' + pptTemplateId,
url: '/admin/pptTemplate/deletePptTemplate/' + pptTemplateId,
method: 'post'
})
}

View File

@ -11,12 +11,12 @@
<el-col :span="24">
<el-button type="primary" class="primaryBtn" @click="handleAddRootNode"
v-hasPermi="['system:administrativeRegion:add']">新增根节点</el-button>
<!-- <el-button type="primary" class="primaryBtn" @click="toggleExpandAll">展开/折叠</el-button> -->
<el-button type="primary" class="primaryBtn" @click="toggleExpandAll">展开/折叠</el-button>
</el-col>
</el-row>
<el-table v-loading="loading" height="calc(100vh - 244px)" :data="regionTreeList"
row-key="id" lazy :load="loadChildren" :tree-props="{ children: 'childList', hasChildren: 'hasChildren' }">
<el-table v-if="refreshTable" v-loading="loading" height="calc(100vh - 244px)" :data="regionTreeList"
row-key="id" :default-expand-all="isExpandAll" :tree-props="{ children: 'childList' }">
<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>
@ -64,7 +64,7 @@
<script setup name="Dept">
import { onMounted, ref } from 'vue';
import { sysRegionListByPid, addSysRegion, updateSysRegion, getSysRegion, deleteSysRegion } from "@/api/system/administrativeRegion"
import { sysRegionTreeList, addSysRegion, updateSysRegion, getSysRegion, deleteSysRegion } from "@/api/system/administrativeRegion"
import { useBackgroundStore } from '@/store/modules/background'
import otherbg from '@/assets/images/otherbg.png'
const bgStore = useBackgroundStore()
@ -81,9 +81,6 @@ const refreshTable = ref(true)
const data = reactive({
form: {},
queryParams: {
parentId: '0'
},
rules: {
name: [{ required: true, message: "区域名称不能为空", trigger: "blur" }],
code: [{ required: true, message: "区域编号不能为空", trigger: "blur" }],
@ -91,40 +88,25 @@ const data = reactive({
},
})
const { queryParams, form, rules } = toRefs(data)
const { form, rules } = toRefs(data)
/** 查询行政区域树列表 */
const getsysRegionTreeList = () => {
loading.value = true
sysRegionListByPid(queryParams.value).then(res => {
sysRegionTreeList().then(res => {
regionTreeList.value = res.data
loading.value = false
})
}
//
const loadChildren = async (row, treeNode, resolve) => {
try {
// API
// const children = await fetchChildrenData(row.id)
queryParams.value.parentId = row.id
const children = await sysRegionListByPid(queryParams.value)
//
resolve(children.data)
} catch (error) {
console.error('加载子节点失败:', error)
resolve([])
/** 展开/折叠操作 */
const toggleExpandAll = () => {
refreshTable.value = false
isExpandAll.value = !isExpandAll.value
nextTick(() => {
refreshTable.value = true
})
}
}
// /** / */
// const toggleExpandAll = () => {
// refreshTable.value = false
// isExpandAll.value = !isExpandAll.value
// nextTick(() => {
// refreshTable.value = true
// })
// }
/** 表单重置 */
const reset = () => {
@ -196,8 +178,6 @@ const handleDelete = (row) => {
proxy.$modal.confirm('是否确认删除名称为"' + row.name + '"的数据项?').then(function () {
return deleteSysRegion(row.id)
}).then(() => {
regionTreeList.value = []
queryParams.value.parentId = '0'
getsysRegionTreeList()
proxy.$modal.msgSuccess("删除成功")
}).catch(() => { })

View File

@ -11,12 +11,12 @@
<el-col :span="24">
<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-button type="primary" class="primaryBtn" @click="toggleExpandAll">展开/折叠</el-button>
</el-col>
</el-row>
<el-table v-loading="loading" height="calc(100vh - 244px)" :data="mediaTypeTreeList" row-key="id" lazy
:load="loadChildren" :tree-props="{ children: 'childList', hasChildren: 'hasChildren' }">
<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>
@ -31,7 +31,7 @@
v-hasPermi="['system:mediaType:edit']">修改</el-button>
<el-button link type="primary" @click="handleAddChildrenNode(scope.row)"
v-hasPermi="['system:mediaType:add']">新增子节点</el-button>
<el-button link type="primary" @click="handleDelete(scope.row)"
<el-button v-if="scope.row.parentId != 0" link type="primary" @click="handleDelete(scope.row)"
v-hasPermi="['system:mediaType:remove']">删除</el-button>
</template>
</el-table-column>
@ -64,7 +64,7 @@
<script setup name="Dept">
import { onMounted, ref } from 'vue';
import { sysMediaTypeListByPid, addSysMediaType, updateSysMediaType, getSysMediaType, deleteSysMediaType } from "@/api/system/mediaType"
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()
@ -81,9 +81,6 @@ const refreshTable = ref(true)
const data = reactive({
form: {},
queryParams: {
parentId: 0
},
rules: {
name: [{ required: true, message: "类型名称不能为空", trigger: "blur" }],
value: [{ required: true, message: "类型标识不能为空", trigger: "blur" }],
@ -91,40 +88,24 @@ const data = reactive({
},
})
const { queryParams, form, rules } = toRefs(data)
const { form, rules } = toRefs(data)
/** 查询媒体类型树列表 */
const getsysMediaTypeTreeList = () => {
loading.value = true
sysMediaTypeListByPid(queryParams.value).then(res => {
sysMediaTypeTreeList().then(res => {
mediaTypeTreeList.value = res.data
loading.value = false
})
}
//
const loadChildren = async (row, treeNode, resolve) => {
try {
// API
queryParams.value.parentId = row.id
const children = await sysMediaTypeListByPid(queryParams.value)
//
resolve(children.data)
} catch (error) {
console.error('加载子节点失败:', error)
resolve([])
/** 展开/折叠操作 */
const toggleExpandAll = () => {
refreshTable.value = false
isExpandAll.value = !isExpandAll.value
nextTick(() => {
refreshTable.value = true
})
}
}
// /** / */
// const toggleExpandAll = () => {
// refreshTable.value = false
// isExpandAll.value = !isExpandAll.value
// nextTick(() => {
// refreshTable.value = true
// })
// }
/** 表单重置 */
const reset = () => {
@ -195,8 +176,6 @@ const handleDelete = (row) => {
proxy.$modal.confirm('是否确认删除媒体类型名称为"' + row.name + '"的数据项?').then(function () {
return deleteSysMediaType(row.id)
}).then(() => {
mediaTypeTreeList.value = []
queryParams.value.parentId = 0
getsysMediaTypeTreeList()
proxy.$modal.msgSuccess("删除成功")
}).catch(() => { })

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="" prop="templateName">
<el-input v-model="queryParams.templateName" 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>
@ -25,15 +25,8 @@
<el-table v-loading="loading" :data="templateList" height="calc(100vh - 306px)">
<el-table-column label="模板名称" align="center" prop="templateName" />
<el-table-column label="模板类型" align="center" prop="type">
<template #default="scope">
<span v-if="scope.row.type == 1">空白模板</span>
<span v-if="scope.row.type == 2">滴滴模板</span>
<span v-if="scope.row.type == 3">优客模板</span>
</template>
</el-table-column>
<el-table-column label="模板地址" align="center" prop="originalFileName" />
<el-table-column label="创建时间" align="center" prop="createTime">
<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>
</template>
@ -61,12 +54,10 @@
<el-input v-model="form.templateName" placeholder="请输入" />
</el-form-item>
<el-form-item label="模板类型" prop="type">
<el-select v-model="form.type" placeholder="请选择" clearable>
<el-option v-for="item in typeList" :key="item.value" :label="item.label" :value="item.value" />
</el-select>
<el-input v-model="form.type" placeholder="请输入" />
</el-form-item>
<el-form-item label="模板文件" prop="fileUrl">
<el-upload class="upload-demo" drag action="#" :limit="1" :http-request="requestDocUpload"
<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>
<div class="el-upload__text">
@ -100,30 +91,23 @@ const bgStore = useBackgroundStore()
const { proxy } = getCurrentInstance()
const baseUrl = import.meta.env.VITE_APP_BASE_API
const docUploadList = ref([])
//
const templateList = ref([])
const loading = ref(true)
const total = ref(0)
const open = ref(false)
const title = ref("")
const typeList = ref([
{ label: '空白模板', value: 1 },
{ label: '滴滴模板', value: 2 },
{ label: '优客模板', value: 3 },
])
const data = reactive({
form: {},
queryParams: {
pageIndex: 1,
pageSize: 10,
templateName: undefined,
keyword: undefined,
},
rules: {
templateName: [{ required: true, message: "模板名称不能为空", trigger: "blur" }],
type: [{ required: true, message: "模板类型不能为空", trigger: "blur" }],
fileUrl: [{ required: true, message: "模板文件不能为空", trigger: "change" }],
fileId: [{ required: true, message: "模板文件不能为空", trigger: "change" }],
}
})
@ -141,19 +125,18 @@ const getpptTemplatePageList = () => {
/** 表单重置 */
const reset = () => {
docUploadList.value = []
form.value = {
templateName: undefined,
type: undefined,
fileUrl: undefined
fileId: undefined
}
proxy.resetForm("pptTemplateRef")
}
/** 搜索按钮操作 */
const handleQuery = () => {
queryParams.value.pageIndex = 1
getpptTemplatePageList()
queryParams.value.pageNum = 1
getList()
}
/** 重置按钮操作 */
@ -174,12 +157,6 @@ const handleUpdate = (row) => {
reset()
getPptTemplate(row.id).then(response => {
form.value = response.data
console.log('请求结果', form.value)
docUploadList.value.push({
name: form.value.originalFileName,
url: form.value.fileUrl,
suffix: form.value.suffix
})
open.value = true
title.value = "修改模板"
})
@ -195,7 +172,7 @@ const cancel = () => {
const submitForm = () => {
proxy.$refs["pptTemplateRef"].validate(valid => {
if (valid) {
if (form.value.id != undefined) {
if (form.value.postId != undefined) {
updatePptTemplate(form.value).then(response => {
proxy.$modal.msgSuccess("修改成功")
open.value = false
@ -222,6 +199,7 @@ const handleDelete = (row) => {
}).catch(() => { })
}
const docUploadList = ref([])
//
const requestDocUpload = (options) => {
const { file } = options
@ -235,12 +213,7 @@ const requestDocUpload = (options) => {
url: baseUrl + res.fileName,
suffix: res.suffix
})
form.value.fileUrl = baseUrl + res.fileName
form.value.fileName = res.fileName
form.value.newFileName = res.newFileName
form.value.originalFileName = res.originalFilename
form.value.size = res.size
form.value.suffix = res.suffix
form.fileId = ''
} else {
proxy.$modal.msgError(res.msg);
}

View File

@ -59,17 +59,15 @@
@selection-change="handleSelectionChange">
<el-table-column type="selection" width="50" align="center" />
<!-- <el-table-column label="用户编号" align="center" key="userId" prop="userId" /> -->
<el-table-column label="用户登录名" align="left" key="userName" prop="userName" min-width="150" :show-overflow-tooltip="true" />
<el-table-column label="用户姓名" align="left" key="realName" prop="realName" min-width="150" :show-overflow-tooltip="true" />
<el-table-column label="用户登录名" align="left" key="userName" prop="userName" :show-overflow-tooltip="true" />
<el-table-column label="用户姓名" align="left" key="realName" prop="realName" :show-overflow-tooltip="true" />
<el-table-column label="部门" align="center" key="deptName" prop="dept.deptName" width="150"
:show-overflow-tooltip="true" />
<el-table-column label="岗位" align="center" key="postName" prop="postName" width="130"
:show-overflow-tooltip="true" />
<el-table-column label="手机号码" align="center" key="phonenumber" prop="phonenumber" width="160"
:show-overflow-tooltip="true" />
<el-table-column label="座机电话" align="center" key="tel" prop="tel" width="180" :show-overflow-tooltip="true" />
<el-table-column label="QQ" align="center" key="qqNo" prop="qqNo" width="180" :show-overflow-tooltip="true" />
<el-table-column label="微信" align="center" key="wxNo" prop="wxNo" width="180" :show-overflow-tooltip="true" />
<el-table-column label="岗位" align="center" key="postName" prop="postName" width="120" />
<el-table-column label="手机号码" align="center" key="phonenumber" prop="phonenumber" width="120" />
<el-table-column label="座机电话" align="center" key="tel" prop="tel" width="120" />
<el-table-column label="QQ" align="center" key="qqNo" prop="qqNo" width="120" />
<el-table-column label="微信" align="center" key="wxNo" prop="wxNo" width="120" />
<el-table-column label="状态" align="center" key="status" width="86">
<template #default="scope">
<el-switch v-model="scope.row.status" active-value="0" inactive-value="1"
@ -81,23 +79,16 @@
<span>{{ parseTime(scope.row.createTime) }}</span>
</template>
</el-table-column>
<el-table-column label="操作" width="58" align="center" fixed="right">
<el-table-column label="操作" align="center" width="280" class-name="small-padding fixed-width">
<template #default="scope">
<el-popover popper-class="my_popover" placement="left-start">
<div class="popBtns" v-if="scope.row.userId !== 1" @click="handleUpdate(scope.row)"
v-hasPermi="['system:user:edit']">修改</div>
<div class="popBtns" v-if="scope.row.userId !== 1" @click="handleDelete(scope.row)"
v-hasPermi="['system:user:remove']">删除</div>
<div class="popBtns" v-if="scope.row.userId !== 1" @click="handleResetPwd(scope.row)"
v-hasPermi="['system:user:resetPwd']">重置密码</div>
<div class="popBtns" v-if="scope.row.userId !== 1" @click="handleAuthRole(scope.row)"
v-hasPermi="['system:user:edit']">分配角色</div>
<template #reference>
<img style="cursor: pointer;" :src="scope.row.currentImageSrc"
@mouseenter="scope.row.currentImageSrc = hoverImageSrc"
@mouseleave="scope.row.currentImageSrc = defaultImageSrc" />
</template>
</el-popover>
<el-button link type="primary" v-if="scope.row.userId !== 1" @click="handleUpdate(scope.row)"
v-hasPermi="['system:user:edit']">修改</el-button>
<el-button link type="primary" v-if="scope.row.userId !== 1" @click="handleDelete(scope.row)"
v-hasPermi="['system:user:remove']">删除</el-button>
<el-button link type="primary" v-if="scope.row.userId !== 1" @click="handleResetPwd(scope.row)"
v-hasPermi="['system:user:resetPwd']">重置密码</el-button>
<el-button link type="primary" v-if="scope.row.userId !== 1" @click="handleAuthRole(scope.row)"
v-hasPermi="['system:user:edit']">分配角色</el-button>
</template>
</el-table-column>
</el-table>
@ -254,8 +245,6 @@ import { getToken } from "@/utils/auth"
import useAppStore from '@/store/modules/app'
import { changeUserStatus, listUser, resetUserPwd, delUser, getUser, updateUser, addUser, deptTreeSelect } from "@/api/system/user"
import { Search } from '@element-plus/icons-vue'
import optionIcon from '@/assets/images/optionIcon.png'
import optionIconHover from '@/assets/images/optionIconHover.png'
import "splitpanes/dist/splitpanes.css"
import { useBackgroundStore } from '@/store/modules/background'
import otherbg from '@/assets/images/otherbg.png'
@ -266,8 +255,6 @@ const appStore = useAppStore()
const { proxy } = getCurrentInstance()
const { sys_normal_disable, sys_user_sex } = proxy.useDict("sys_normal_disable", "sys_user_sex")
const defaultImageSrc = ref(optionIcon);
const hoverImageSrc = ref(optionIconHover);
const userList = ref([])
const open = ref(false)
const loading = ref(true)
@ -339,9 +326,6 @@ function getList() {
loading.value = true
listUser(proxy.addDateRange(queryParams.value, dateRange.value)).then(res => {
loading.value = false
res.rows.forEach(item => {
item.currentImageSrc = defaultImageSrc.value
});
userList.value = res.rows
total.value = res.total
})