提交 219ccbaf authored 作者: lidongxu's avatar lidongxu

feat(promotion): 促销计划上传完成

同上
上级 9ca91c61
......@@ -18,7 +18,7 @@ export function getPlanListAPI(queryParams) {
})
}
// 表格新增计划
// 表格新增计划(城市经理)
export function addPlanAPI(data) {
return request({
baseURL: VITE_APP_PROMOTION,
......@@ -28,6 +28,17 @@ export function addPlanAPI(data) {
})
}
// 表格新增计划(职能角色)
export function addPlanByRoleAPI(data) {
return request({
baseURL: VITE_APP_PROMOTION,
url: '/plan/v2/core/auth/upload',
method: 'POST',
data
})
}
// 确认保存活动计划
export function savePlanAPI(uuid) {
return request({
......@@ -36,3 +47,16 @@ export function savePlanAPI(uuid) {
method: 'GET'
})
}
// 删除活动计划
export function deletePlanAPI(ids) {
return request({
baseURL: VITE_APP_PROMOTION,
url: `/plan/v2/core/delete`,
method: 'DELETE',
data: {
planIds: ids
}
})
}
\ No newline at end of file
<template>
<i-frame :src="openUrl" id="jimuReportFrame"></i-frame>
</template>
<script>
import { getToken } from '@/utils/auth'
import iFrame from '@/components/iFrame/index'
export default {
<i-frame :src="openUrl"
id="jimuReportFrame" ></i-frame>
</template>
<script>
// 报表设计器
import { getToken } from '@/utils/auth'
import iFrame from '@/components/iFrame/index'
export default {
name: "Jimu",
components: {iFrame},
components: { iFrame },
data() {
return {
// 这里写暴露的统一的网关地址
openUrl: "http://192.168.100.39:8080/report/jmreport/list?token=" +getToken(),
openUrl: "http://192.168.100.39:8080/report/jmreport/list?token=" + getToken(),
};
},
mounted: function() {
mounted: function () {
}
};
</script>
\ No newline at end of file
};
</script>
<style lang="scss">
#jimuReportFrame{
width: 100%;
height: 100%;
::v-deep(.layout){
background-color: transparent !important;
}
}
</style>
\ No newline at end of file
<template>
<i-frame :src="openUrl"/>
</template>
<script>
import {getToken} from '@/utils/auth'
import iFrame from "@/components/iFrame/index";
<i-frame :src="openUrl" id="jimuview"/>
</template>
export default {
<script>
import { getToken } from '@/utils/auth'
import iFrame from "@/components/iFrame/index";
// 好像暂时没用上
export default {
name: 'jimuview',
components: {iFrame},
components: { iFrame },
props: {
reportID: {
type: [String],
......@@ -29,11 +28,9 @@
} else {
this.openUrl = this.serverUrl + '/report/jmreport/view/' + this.$route.path.substring(this.$route.path.lastIndexOf("/") + 1) + '?token=' + getToken()
}
console.log(this.openUrl)
console.log('jimuview', this.openUrl)
}
}
</script>
<style scoped>
}
</script>
</style>
\ No newline at end of file
<style scoped></style>
\ No newline at end of file
......@@ -13,7 +13,8 @@
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
:shortcuts="pickerOptions" />
:shortcuts="pickerOptions"
@change="getPlanList" />
</el-form-item>
<el-form-item label="上传计划">
<el-upload class="upload-demo"
......@@ -27,12 +28,24 @@
</el-upload>
</el-form-item>
</el-form>
<el-row :gutter="10"
class="mb8">
<el-col :span="1.5">
<el-button type="danger"
plain
icon="Delete"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['system:user:remove']">删除</el-button>
</el-col>
</el-row>
<!-- 表格列表 -->
<el-table :data="tableList"
:cell-style="{ 'word-wrap': 'break-word', 'white-space': 'normal' }"
border
style="width: 100%"
show-overflow-tooltip>
show-overflow-tooltip
@selection-change="handleSelectionChange">
<el-table-column type="selection"
width="55">
</el-table-column>
......@@ -43,7 +56,21 @@
:width="item.width"
:formatter="formatter"
:fixed="item.fixed" />
<el-table-column label="操作">
<template #default="scope">
<el-button type="danger"
link
@click="deletePlane(scope.row)">
删除
</el-button>
</template>
</el-table-column>
</el-table>
<!-- 分页 -->
<pagination :total="total"
v-model:page="queryParams.pageNum"
v-model:limit="queryParams.pageSize"
@pagination="getPlanList" />
<!-- 弹窗确认上传计划 -->
<el-dialog title="上传计划"
v-model="dialogVisible"
......@@ -66,7 +93,6 @@
:formatter="formatterConfirm" />
</el-table>
</div>
<template #footer>
<div class="dialog-footer">
<p style="color: red; float: left;">如果表格有红色行,请根据错误提示修改本地表格重新上传</p>
......@@ -84,7 +110,7 @@
</template>
<script setup>
import { getPlanListAPI, uploadFileToOSSAPI, addPlanAPI, savePlanAPI } from '@/api'
import { getPlanListAPI, uploadFileToOSSAPI, addPlanAPI, savePlanAPI, deletePlanAPI, addPlanByRoleAPI } from '@/api'
import { useDatePickerOptions } from '@/hooks'
import { v4 as uuidv4 } from 'uuid';
import store from '@/store'
......@@ -97,9 +123,19 @@ const queryParams = reactive({
pageSize: 10,
activityDate: thisYearDate
})
// 等待被删除的数据
const deleteList = ref([])
// 全选
const handleSelectionChange = (val) => {
deleteList.value = val
multiple.value = !(deleteList.value.length > 0)
}
// 任务列表
const tableList = ref([])
const total = ref(0)
const multiple = ref(true)
const columns = ref([
{
label: '活动 ID',
......@@ -157,15 +193,12 @@ const columns = ref([
label: '上传文件名称',
prop: '',
width: 150
},
{
label: '操作',
prop: ''
}
])
const getPlanList = async () => {
const res = await getPlanListAPI(queryParams)
tableList.value = res.data.records
total.value = res.data.totalRecord
}
getPlanList()
const formatter = (row, col, value) => {
......@@ -180,11 +213,13 @@ const formatter = (row, col, value) => {
// 上传计划
const uploadFile = async (file) => {
// 拼接当前月数为文件夹名
const date = new Date()
const month = date.getMonth() + 1
const excelUrl = await uploadFileToOSSAPI(`planExcel/${date.getFullYear()}-${month}/${store.state.value.user.userInfo.userName}/${uuidv4()}.xlsx`, file.file)
const res = await addPlanAPI({
const targetAPI = store.state.value.user.userInfo.privilegeId === 1 ? addPlanAPI : addPlanByRoleAPI
const res = await targetAPI({
"excelUrl": excelUrl,
"employeeNo": store.state.value.user.userInfo.userName
})
......@@ -272,6 +307,17 @@ const confirmPlanBtn = async () => {
dialogVisible.value = false
getPlanList()
}
// 删除计划
const deletePlane = (row) => {
deleteList.value = [row]
handleDelete()
}
const handleDelete = async () => {
await deletePlanAPI(deleteList.value.map(o => o.id))
ElMessage.success('删除成功')
getPlanList()
}
</script>
<style scoped
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论