Browse Source

进窗列表:项目删除功能修改为逻辑删除,新增删除原因(必填项)支持在列表进行查看项目及删除原因。

main
buaixuexideshitongxue 2 months ago
parent
commit
6145c82be2
  1. 13
      src/api/report/index.ts
  2. 2
      src/components/depart-tree-select.vue
  3. 14
      src/views/entryWindow/index.vue
  4. 80
      src/views/report/edit/controlPrice.vue
  5. 3
      src/views/warning/compile/warningCompile.vue
  6. 2
      src/views/warning/components/detail.vue
  7. 10
      src/views/warning/reportDetail.vue

13
src/api/report/index.ts

@ -7,12 +7,19 @@ export const saveReportProject=(body)=>{
}) })
} }
//删除 //删除
export const removeReportProject = (id)=>{ // export const removeReportProject = (id)=>{
return request.del({ // return request.del({
url:`/reportProject/${id}` // url:`/reportProject/${id}`
// })
// }
export const deleteReportProject = (body)=>{
return request.post({
url:`/reportProject/deleteReportProject`,
body
}) })
} }
//根据项目名称获取项目列表 //根据项目名称获取项目列表
export const getListByName=(query)=>{ export const getListByName=(query)=>{
return request.get({ return request.get({

2
src/components/depart-tree-select.vue

@ -37,7 +37,7 @@ const treeProps = computed(() => ({
label: 'shortName', label: 'shortName',
value: 'id', value: 'id',
disabled: (data, node) => { disabled: (data, node) => {
debugger // debugger
if (!props.disableRoot) return false if (!props.disableRoot) return false
if (!node) return false if (!node) return false
return node.level === 1 return node.level === 1

14
src/views/entryWindow/index.vue

@ -124,6 +124,7 @@ getList()
// //
const router = useRouter(); const router = useRouter();
const getDetail =(row,code)=>{ const getDetail =(row,code)=>{
debugger
// //
let query ={ let query ={
isEnd:row.reportType == "结算项目", isEnd:row.reportType == "结算项目",
@ -143,7 +144,6 @@ const getDetail =(row,code)=>{
query.node = row.node query.node = row.node
query.disabledVal=true; query.disabledVal=true;
} }
router.push({ router.push({
path:`/report/edit/controlPrice`, path:`/report/edit/controlPrice`,
query: query query: query
@ -151,6 +151,7 @@ const getDetail =(row,code)=>{
} }
const isAdminShow = ()=>{ const isAdminShow = ()=>{
debugger
if(userStore.user && userStore.user.roleCodes){ if(userStore.user && userStore.user.roleCodes){
return userStore.user.roleCodes.indexOf('admin_1') >= 0 return userStore.user.roleCodes.indexOf('admin_1') >= 0
}else{ }else{
@ -412,7 +413,7 @@ const isAdminShow = ()=>{
<el-table-column <el-table-column
label="项目负责人联系方式" label="项目负责人联系方式"
prop="projectPhone" prop="projectPhone"
width="170" width="190"
> >
</el-table-column> </el-table-column>
<el-table-column <el-table-column
@ -451,7 +452,15 @@ const isAdminShow = ()=>{
</el-table-column> </el-table-column>
<el-table-column label="操作" fixed="right" min-width="260px"> <el-table-column label="操作" fixed="right" min-width="260px">
<template #default="{ row }"> <template #default="{ row }">
<el-button
link
type="primary"
v-if="row.deleteFlag == 1"
@click="getDetail(row)"
>详情</el-button>
<!-- 未删除显示正常操作 -->
<template v-else>
<el-button link type="primary" v-if="row.applicantId === uid && row.isRecessed == 1" @click="getDetail(row,'edit')">编辑</el-button> <el-button link type="primary" v-if="row.applicantId === uid && row.isRecessed == 1" @click="getDetail(row,'edit')">编辑</el-button>
<!-- <el-button link type="primary" v-else-if="row.flowUserId === uid" @click="getDetail(row,'audit')">审批</el-button>--> <!-- <el-button link type="primary" v-else-if="row.flowUserId === uid" @click="getDetail(row,'audit')">审批</el-button>-->
<el-button link type="primary" v-else @click="getDetail(row)">详情</el-button> <el-button link type="primary" v-else @click="getDetail(row)">详情</el-button>
@ -459,6 +468,7 @@ const isAdminShow = ()=>{
<el-button link type="primary" v-if="(isAdminShow() || row.applicantId === uid) && row.isRecessed == 1" @click="recessedShowFun(row,1)">重新进窗</el-button> <el-button link type="primary" v-if="(isAdminShow() || row.applicantId === uid) && row.isRecessed == 1" @click="recessedShowFun(row,1)">重新进窗</el-button>
<el-button link type="primary" @click="recordFun(row)">进退窗记录</el-button> <el-button link type="primary" @click="recordFun(row)">进退窗记录</el-button>
</template> </template>
</template>
</el-table-column> </el-table-column>
</el-table> </el-table>
</div> </div>

80
src/views/report/edit/controlPrice.vue

@ -9,7 +9,13 @@ import useCatchStore from '@/stores/modules/catch'
import reportAudit from '@/components/reportAudit/start.vue'; import reportAudit from '@/components/reportAudit/start.vue';
import reportAuditFinish from '@/components/reportAudit/finish.vue'; import reportAuditFinish from '@/components/reportAudit/finish.vue';
import reportAuditReject from '@/components/reportAudit/reject.vue'; import reportAuditReject from '@/components/reportAudit/reject.vue';
import {getDetail, removeReportProject, saveReportProject,getExcelContrilPrice,upFinalizationPathFun} from "@/api/report/index"; import {
getDetail,
saveReportProject,
getExcelContrilPrice,
upFinalizationPathFun,
deleteReportProject
} from "@/api/report/index";
import {useRoute, useRouter} from "vue-router"; import {useRoute, useRouter} from "vue-router";
import {getReportFlow} from "@/api/report/flow"; import {getReportFlow} from "@/api/report/flow";
import useTabsStore from "@/stores/modules/multipleTabs"; import useTabsStore from "@/stores/modules/multipleTabs";
@ -73,6 +79,25 @@ const isAuditButton = ref(false)
const datePicker = ref() const datePicker = ref()
const serviceTime = ref([]) const serviceTime = ref([])
const editAll = ref(false) const editAll = ref(false)
//
const delDialog = ref(false);
const delFormData = ref({});
const deleteFlag = ref(false)
const handleDel= async ()=> {
const body ={
id: route.query.id,
deleteReason: delFormData.value.deleteReason
}
await deleteReportProject(body);
closeFun();
}
const auditEdit = () => { const auditEdit = () => {
// //
editAll.value = !editAll.value editAll.value = !editAll.value
@ -101,10 +126,11 @@ const getDetailFun = async (val) => {
loading.value = true; loading.value = true;
formData.value = await getDetail({"id": val}); formData.value = await getDetail({"id": val});
if (route.query.disabledVal) { if (route.query.disabledVal) {
isDisabled.value = true isDisabled.value = true
} }
debugger
// //
if ((!['initial'].includes(formData.value.project.node))) { if ((!['initial'].includes(formData.value.project.node))) {
isDisabled.value = true; isDisabled.value = true;
@ -190,6 +216,7 @@ const getDetailFun = async (val) => {
]; ];
} }
} }
deleteFlag.value= formData.value.project.deleteFlag
query.value.applicantId =formData.value.project?.applicantId; query.value.applicantId =formData.value.project?.applicantId;
// query.value.departId = formData.value.project?.auditUnitId // query.value.departId = formData.value.project?.auditUnitId
getPoliceList(); getPoliceList();
@ -455,9 +482,12 @@ let date = ref()
// //
const removeFun = async () => { const removeFun = async () => {
await feedback.confirm("是否确认删除数据?"); debugger
const res = await removeReportProject(route.query.id); delDialog.value = true;
closeFun();
// await feedback.confirm("");
// const res = await removeReportProject(route.query.id);
// closeFun();
} }
// //
@ -1062,6 +1092,14 @@ watch(()=>formData.value.review.thirdlyMoney,(val)=>{
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row v-if="deleteFlag">
<el-col :span="15">
<el-form-item label="删除原因" >
<el-input type="textarea" :rows="5" :disabled="true"
v-model="formData.project.deleteReason"></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form> </el-form>
</div> </div>
<hr style="border-color: rgba(232,232,232,0.67);opacity: 0.2"> <hr style="border-color: rgba(232,232,232,0.67);opacity: 0.2">
@ -1305,17 +1343,20 @@ watch(()=>formData.value.review.thirdlyMoney,(val)=>{
<el-button v-else type="primary" @click="approveFun">提交</el-button> <el-button v-else type="primary" @click="approveFun">提交</el-button>
<el-button type="danger" @click="rejectFun">驳回</el-button> <el-button type="danger" @click="rejectFun">驳回</el-button>
</div> </div>
<div v-if="route.query.disabledVal" class="flex end mt-20"> <div v-else-if="route.query.disabledVal && route.query.deleteFlag==='0'" class="flex end mt-20">
<el-button type="primary" @click="getReportFlowFun">审批记录</el-button> <el-button type="primary" @click="getReportFlowFun">审批记录</el-button>
<el-button type="danger" @click="removeFun">删除</el-button> <el-button type="danger" @click="removeFun">删除</el-button>
<el-button @click="closeFun">关闭</el-button> <el-button @click="closeFun">关闭</el-button>
</div> </div>
<div v-else-if="route.query.disabledVal && deleteFlag" class="flex end mt-20">
<el-button @click="closeFun">关闭</el-button>
</div>
<div class="flex end mt-20" v-else > <div class="flex end mt-20" v-else >
<el-button v-if="!isDisabled && !editAll" type="primary" @click="submitFun">提交</el-button> <el-button v-if="!isDisabled && !editAll" type="primary" @click="submitFun">提交</el-button>
<el-button v-if="!isDisabled && !editAll" type="primary" @click="saveFun">保存</el-button> <el-button v-if="!isDisabled && !editAll" type="primary" @click="saveFun">保存</el-button>
<el-button v-if="!isAuditButton && !isDisabled" @click="closeFun">取消</el-button> <el-button v-if="!isAuditButton && !isDisabled" @click="closeFun">取消</el-button>
<el-button v-if="!isAuditButton && isDisabled" type="primary" @click="getReportFlowFun">审批记录</el-button> <el-button v-if="!isAuditButton && !isDisabled" type="primary" @click="getReportFlowFun">审批记录</el-button>
</div> </div>
</el-main> </el-main>
@ -1391,6 +1432,31 @@ watch(()=>formData.value.review.thirdlyMoney,(val)=>{
<report-audit-end @submitFeedback="submitFeedback" @closeFun="closeAudit" :node="formData.project.node" <report-audit-end @submitFeedback="submitFeedback" @closeFun="closeAudit" :node="formData.project.node"
:reportId="formData.project.id" v-model="endDialog" :isAudit="true" :reportId="formData.project.id" v-model="endDialog" :isAudit="true"
></report-audit-end> ></report-audit-end>
<el-dialog title="删除项目" v-model="delDialog" width="700">
<el-form :label-width="120" :model="delFormData" ref="delFormRef">
<el-form-item
label="删除原因"
prop="delReason"
:rules="{
required: true,
message: '请输入删除原因',
}"
>
<el-input
v-model="delFormData.deleteReason"
type="textarea"
placeholder="请输入删除原因"
clearable
:autosize="{ minRows: 3 }"
/>
</el-form-item>
</el-form>
<footer class="flex end">
<el-button @click="delDialog = false">取消</el-button>
<el-button type="primary" @click="handleDel">确定</el-button>
</footer>
</el-dialog>
</template> </template>
<style lang="scss"> <style lang="scss">

3
src/views/warning/compile/warningCompile.vue

@ -5,10 +5,11 @@ import useUserStore from "@/stores/modules/user";
import reportFile from '@/components/reportFile/index.vue'; import reportFile from '@/components/reportFile/index.vue';
import useCatchStore from '@/stores/modules/catch' import useCatchStore from '@/stores/modules/catch'
import {getInvertDetail, upWarningStateById} from '@/api/investRecord/index' import {getInvertDetail, upWarningStateById} from '@/api/investRecord/index'
import {getDetail, removeReportProject, saveReportProject} from "@/api/report/index"; import {saveReportProject} from "@/api/report/index";
import {useRoute, useRouter} from "vue-router"; import {useRoute, useRouter} from "vue-router";
import useTabsStore from "@/stores/modules/multipleTabs"; import useTabsStore from "@/stores/modules/multipleTabs";
import {listPolice} from "@/api/system/police"; import {listPolice} from "@/api/system/police";
const collapseAction =ref('1') const collapseAction =ref('1')
const {addTab, removeTab, tabList} = const {addTab, removeTab, tabList} =

2
src/views/warning/components/detail.vue

@ -9,7 +9,7 @@ import useCatchStore from '@/stores/modules/catch'
import reportAudit from '@/components/reportAudit/start.vue'; import reportAudit from '@/components/reportAudit/start.vue';
import reportAuditFinish from '@/components/reportAudit/finish.vue'; import reportAuditFinish from '@/components/reportAudit/finish.vue';
import reportAuditReject from '@/components/reportAudit/reject.vue'; import reportAuditReject from '@/components/reportAudit/reject.vue';
import {getDetail, removeReportProject, saveReportProject} from "@/api/report/index"; import {getDetail, saveReportProject} from "@/api/report/index";
import {useRoute, useRouter} from "vue-router"; import {useRoute, useRouter} from "vue-router";
import {getReportFlow} from "@/api/report/flow"; import {getReportFlow} from "@/api/report/flow";
import useTabsStore from "@/stores/modules/multipleTabs"; import useTabsStore from "@/stores/modules/multipleTabs";

10
src/views/warning/reportDetail.vue

@ -1,22 +1,14 @@
<script setup> <script setup>
import feedback from "@/utils/feedback"; import feedback from "@/utils/feedback";
import {getToken} from "@/utils/token";
import {BASE_PATH} from "@/api/request";
import useUserStore from "@/stores/modules/user"; import useUserStore from "@/stores/modules/user";
import {timeFormat} from "@/utils/util"; import {timeFormat} from "@/utils/util";
import reportFile from '@/components/reportFile/index.vue'; import reportFile from '@/components/reportFile/index.vue';
import useCatchStore from '@/stores/modules/catch' import useCatchStore from '@/stores/modules/catch'
import reportAudit from '@/components/reportAudit/start.vue'; import {getDetail} from "@/api/report/index";
import reportAuditFinish from '@/components/reportAudit/finish.vue';
import reportAuditReject from '@/components/reportAudit/reject.vue';
import {getDetail, removeReportProject, saveReportProject} from "@/api/report/index";
import {useRoute, useRouter} from "vue-router"; import {useRoute, useRouter} from "vue-router";
import {getReportFlow} from "@/api/report/flow"; import {getReportFlow} from "@/api/report/flow";
import useTabsStore from "@/stores/modules/multipleTabs"; import useTabsStore from "@/stores/modules/multipleTabs";
import {listPolice} from "@/api/system/police"; import {listPolice} from "@/api/system/police";
import UploadBatch from "@/components/reportFile/uploadBatch.vue";
import {FlowNodeEnum} from "@/enums/flowEnums";
import {recessedData} from "@/api/entryWindow/index";
const {addTab, removeTab, tabList} = const {addTab, removeTab, tabList} =
useTabsStore(); useTabsStore();

Loading…
Cancel
Save