fix: BUG修改

This commit is contained in:
kun 2023-07-05 15:08:49 +08:00
parent 06bed84d68
commit 56a6c86836
8 changed files with 639 additions and 132 deletions

View File

@ -81,7 +81,7 @@ export const subGovermentItemDetailList = (params: any) => {
return http.post(BASEURL + `/gov/investmentPaymentDetail/list`, params);
};
// 全景计划------------
// 全景计划(项目端)------------
// 全景计划分页列表
export const globalPlanList = (params: any) => {
return http.post(BASEURL + `/project/projectNodePlan/page`, params);
@ -94,3 +94,17 @@ export const globalPlanAdd = (params: any) => {
export const globalPlanEdit = (params: any) => {
return http.post(BASEURL + `/project/projectNodePlan/edit`, params);
};
// 全景计划(政务端)------------
// 全景计划分页列表
export const globalPlanGovermentList = (params: any) => {
return http.post(BASEURL + `/gov/projectNodePlan/page`, params);
};
// 全景计划项目分页列表
export const globalPlanProList = (params: any) => {
return http.post(BASEURL + `/gov/projectNodePlan/projectPage`, params);
};
// 全景计划工程分页列表
export const globalPlanEngList = (params: any) => {
return http.post(BASEURL + `/gov/projectNodePlan/engineeringPage`, params);
};

View File

@ -24,7 +24,15 @@
<div class="vaks">状态</div>
</div>
</div>
<vue3-seamless-scroll :list="list" class="scroll" :hover="true" :step="0.4" :singleWaitTime="3000" :wheel="true">
<vue3-seamless-scroll
v-if="list.length > 0"
:list="list"
class="scroll"
:hover="true"
:step="0.2"
:singleWaitTime="3000"
:wheel="true"
>
<div class="item" v-for="(item, index) in list" :key="index">
<div class="time">{{ item.create_time }}</div>
<div class="qs">{{ item.type }}</div>
@ -78,10 +86,24 @@ const getEnvironmentAlarmStatFn = async () => {
});
};
//
const list = ref([{ time: "" }]);
const list = ref([]);
const getEnvironmentAlarmFn = async () => {
const res = await getEnvironmentAlarm();
list.value = res.result;
// if (res.result.length > 0) {
// } else {
// list.value = [
// { create_time: "2022-01-01", type: "", cause: "", state: 1 },
// { create_time: "2022-02-02", type: "", cause: "", state: 1 },
// { create_time: "2022-03-03", type: "", cause: "", state: 1 },
// { create_time: "2022-04-04", type: "", cause: "", state: 1 },
// { create_time: "2022-05-05", type: "", cause: "", state: 1 },
// { create_time: "2022-06-06", type: "", cause: "", state: 1 },
// { create_time: "2022-07-07", type: "", cause: "", state: 1 },
// { create_time: "2022-08-08", type: "", cause: "", state: 1 }
// ];
// }
console.log(list.value);
};
const rigthBottRigth = ref();

View File

@ -4,6 +4,7 @@
width: 100%;
height: 100%;
.leftMenu {
width: 300px;
// width: 290px;
// 页面的项目工程
:deep(.item) {
@ -55,6 +56,7 @@
}
}
.table-box {
width: calc(100% - 320px);
height: 100%;
.table {
margin-left: 20px;

View File

@ -16,8 +16,8 @@
}}</span>
<div class="leftMenu_item">
<div class="video">
<img src="@/assets/images/leftTab/设备列表.png" alt="" />
<span class="middleSize">影像视频树{{ data.deviceNum }}</span>
<img style="margin-right: 5px" src="@/assets/images/AIwaring/dustMap.png" alt="" />
<span class="middleSize">{{ data.projectAddress || data.address }}</span>
</div>
</div>
</div>
@ -35,14 +35,12 @@
:pagination="true"
background
:isShowSearch="false"
:onReset="true"
>
<template #formButton="scope">
<el-button class="btnStyle">刷新</el-button>
</template>
<!-- 表格操作 -->
<template #operation="scope">
<el-button class="btnStyle" type="primary" @click="handleAddItem()">
<!-- <img src="@/assets/images/tableIcon/configureIcon.png" alt="" class="configureIcon" /> -->
<template #operation="{ row }">
<el-button type="primary" link @click="handleItemDetail(row)">
<img src="@/assets/images/tableIcon/look.png" alt="" class="configureIcon" />
<span>查看</span>
</el-button>
</template>
@ -64,53 +62,82 @@
<script lang="ts" setup>
import { ref, reactive, onMounted, watch } from "vue";
import {
getDustprojectPage,
getDustengineeringPage,
getAIQuestionPage,
addAIrecords,
getAiMonitorDev
} from "@/api/modules/goverment";
import { videoList, videoDataAdd, videoDataEdit, videoDataDelete } from "@/api/modules/enterpriseApi";
import Pagination from "@/components/ProTable/components/Pagination.vue";
import { ElMessage, UploadProps } from "element-plus";
import type { FormRules, FormInstance, UploadInstance } from "element-plus";
import { GlobalStore } from "@/stores";
import { Delete } from "@element-plus/icons-vue";
import { jxj_User } from "@/api/types";
import { useHandleData } from "@/hooks/useHandleData";
import LeftMenu from "@/components/LeftMenu/LeftMenu.vue";
import type { ResAiProjectPage, ResAiEngineerPage } from "@/api/types/government/AIwaring";
import ProTable from "@/components/ProTable/index.vue";
import DialogForm from "@/components/DialogForm/index.vue";
import { ColumnProps } from "@/components/ProTable/interface";
import { getRealTimePage } from "@/api/modules/project";
import { globalPlanGovermentList, globalPlanProList, globalPlanEngList } from "@/api/modules/huizhou";
import { getDicList } from "@/api/modules/jxjview";
const pages = ref({
pageNo: 1,
pageSize: 7,
total: 0
});
const records = ref<ResAiProjectPage[] | ResAiEngineerPage[]>([]);
const DicMainList = ref([]);
const active = ref(0);
const fileList = ref([]);
const store = GlobalStore();
//
const columns: ColumnProps[] = [
{ type: "index", label: "序号", width: 80 },
{ prop: "name", label: "节点编号" },
{ prop: "name", label: "节点名称", search: { el: "input" } },
{ prop: "name", label: "节点类型" },
{ prop: "name", label: "标准完成时间" },
{ prop: "name", label: "计划完成时间" },
{ prop: "name", label: "预计完成时间" },
{ prop: "name", label: "实际完成时间" },
{ prop: "name", label: "状态", search: { el: "select" } },
{ prop: "name", label: "智能条线" },
{ prop: "name", label: "节点责任人编号" },
{ prop: "name", label: "节点责任人" },
{ prop: "name", label: "节点失效标记" },
{ prop: "name", label: "是否退回" },
{ prop: "operation", label: "操作", fixed: "right", width: 120 }
{
prop: "nodeNumber",
label: "节点编号",
width: 150
},
// prop
{ prop: "nodeName", label: "节点名称", width: 150, search: { el: "input" } },
{ prop: "type", label: "节点类型", width: 150 },
{ prop: "standardCompleteTime", label: "标准完成时间", width: 150 },
{ prop: "planCompleteTime", label: "计划完成时间", width: 150 },
{ prop: "expectCompleteTime", label: "预计完成时间", width: 150 },
{
prop: "state",
label: "状态",
width: 150,
isShow: false,
search: { el: "select" },
enum: DicMainList.value,
fieldNames: { label: "dictValue", value: "dictLabel" }
},
{
prop: "status",
label: "状态",
width: 150
},
{
prop: "realCompleteTime",
label: "实际完成时间",
width: 150,
search: {
el: "date-picker",
span: 2,
props: { type: "daterange", format: "YYYY-MM-DD", valueFormat: "YYYY-MM-DD" }
// defaultValue: "2023-05"
}
},
{ prop: "phaseName", label: "智能条线", width: 150 },
{ prop: "chargerNumber", label: "节点责任人编号", width: 150 },
{ prop: "chargerName", label: "节点责任人", width: 150 },
{
prop: "isDeleted",
label: "节点失效标记",
width: 150,
render: scoped => {
return scoped.row.isDeleted == 0 ? "有效" : "失效";
}
},
{
prop: "isSendBack",
label: "是否退回",
width: 150,
render: scoped => {
return scoped.row.isSendBack == 1 ? "是" : "否";
}
},
{ prop: "operation", label: "操作", width: 100, fixed: "right" }
];
interface formData {
title: string;
@ -125,93 +152,172 @@ const formData = ref<formData>({
videoUrl: ""
});
const visible = ref(false);
const title = ref("新增录像");
const pageable = ref({
pageNo: 1,
pageSize: 12,
total: 0
});
const videoData = ref({
records: []
});
const form = ref({
title: "",
createTime: "",
startTime: "",
endTime: ""
});
const title = ref("新增");
// snsn
const searchSn = ref("");
// ProTable 便
const proTable = ref();
//
const formConfig = {
formItemConfig: [
{
label: "节点编码",
prop: "governmentName",
type: "input"
prop: "nodeNumber",
type: "input",
disabled: true
},
{
label: "节点名称",
prop: "governmentTel",
type: "input"
prop: "nodeName",
type: "input",
disabled: true
},
{
label: "节点类型",
prop: "account",
type: "input"
prop: "type",
type: "input",
disabled: true
},
{
label: "标准完成时间",
prop: "password",
type: "date"
prop: "standardCompleteTime",
type: "date",
disabled: true
},
{
label: "计划完成时间",
prop: "password",
type: "date"
prop: "planCompleteTime",
type: "date",
disabled: true
},
{
label: "预计完成时间",
prop: "password",
type: "date"
prop: "expectCompleteTime",
type: "date",
disabled: true
},
{
label: "实际完成时间",
prop: "password",
type: "date"
prop: "realCompleteTime",
type: "date",
disabled: true
},
{
label: "状态",
prop: "password",
type: "input"
prop: "state",
type: "select",
data: [],
clearable: true,
disabled: true
},
{
label: "实际偏差",
prop: "password",
type: "input"
prop: "actualDeviation",
type: "input",
disabled: true
},
{
label: "职能线条",
prop: "password",
type: "input"
prop: "phaseName",
type: "input",
disabled: true
},
{
label: "节点负责人编号",
prop: "password",
type: "input"
prop: "chargerNumber",
type: "input",
disabled: true
},
{
label: "节点负责人",
prop: "password",
type: "input"
prop: "chargerName",
type: "input",
disabled: true
}
],
rules: {}
rules: {
nodeNumber: [
{
required: true,
message: "请输入",
trigger: "blur"
}
],
nodeName: [
{
required: true,
message: "请输入",
trigger: "blur"
}
],
type: [
{
required: true,
message: "请输入",
trigger: "blur"
}
],
standardCompleteTime: [
{
required: true,
message: "请输入",
trigger: "blur"
}
],
planCompleteTime: [
{
required: true,
message: "请输入",
trigger: "blur"
}
],
engineeringSn: [
{
required: true,
message: "请输入",
trigger: "change"
}
],
phaseName: [
{
required: true,
message: "请输入",
trigger: "blur"
}
],
chargerNumber: [
{
required: true,
message: "请输入",
trigger: "blur"
}
],
chargerName: [
{
required: true,
message: "请输入",
trigger: "blur"
}
]
}
};
//
const searchName = ref<string>("");
const getDicMainList = async () => {
//
const { result } = await getDicList({ dictType: "node_plan_state" });
console.log(result);
if (result.length > 0) {
formConfig.formItemConfig[7].data = result.map(item => {
return {
label: item.dictValue,
value: item.status
};
});
DicMainList.value.length = 0;
DicMainList.value.push(...result);
}
};
// dataCallback list && total && pageNum && pageSize
// hooks/useTable.ts
const dataCallback = (data: any) => {
@ -227,60 +333,55 @@ const dataCallback = (data: any) => {
// ProTable :requestApi="getUserList"
const getTableList = (params: any) => {
let newParams = JSON.parse(JSON.stringify(params));
return getRealTimePage(newParams);
if (newParams.realCompleteTime) {
newParams.realCompleteTime_begin = newParams.realCompleteTime[0];
newParams.realCompleteTime_end = newParams.realCompleteTime[1];
delete newParams.realCompleteTime;
}
if (active.value === 0) {
newParams.projectSn = searchSn.value;
} else {
newParams.engineeringSn = searchSn.value;
}
return globalPlanGovermentList(newParams);
};
// div
const onSearch = async (params: ResAiProjectPage | ResAiEngineerPage) => {
const { result } = await getAIQuestionPage(
active.value === 0
? { projectSn: (params as ResAiProjectPage).projectSn, pageNo: pageable.value.pageNo, pageSize: pageable.value.pageSize }
: {
engineeringSn: (params as ResAiEngineerPage).engineeringSn,
pageNo: pageable.value.pageNo,
pageSize: pageable.value.pageSize
}
);
pageable.value.total = Number(result.total);
active.value === 0
? (searchSn.value = (params as ResAiProjectPage).projectSn)
: (searchSn.value = (params as ResAiEngineerPage).engineeringSn);
active.value === 0
? (searchName.value = (params as ResAiProjectPage).projectName)
: (searchName.value = (params as ResAiEngineerPage).engineeringName);
getVideoData();
proTable.value.getTableList();
};
// leftMenu
const onSearchInput = async (params: string) => {
console.log(params);
if (active.value === 0) {
const { result } = await getDustprojectPage({ projectName: params, ...pages.value });
const { result } = await globalPlanProList({ projectName: params, ...pages.value });
records.value = result.records;
} else {
const { result } = await getDustengineeringPage({ engineeringName: params, ...pages.value });
const { result } = await globalPlanEngList({ engineeringName: params, ...pages.value });
records.value = result.records;
}
proTable.value.getTableList();
};
// leftMenu
const onCurChange = async (params: number) => {
if (active.value === 0) {
const { result } = await getDustprojectPage({ ...pages.value, pageNo: params });
const { result } = await globalPlanProList({ ...pages.value, pageNo: params });
records.value = result.records;
} else {
const { result } = await getDustengineeringPage({ ...pages.value, pageNo: params });
const { result } = await globalPlanEngList({ ...pages.value, pageNo: params });
records.value = result.records;
pages.value.total = +result.total;
}
pages.value.total = +res.result.total;
};
const getVideoData = async () => {
const res = await videoList({ ...pageable.value, ...form.value });
videoData.value.records = res.result.records;
console.log(videoData.value);
console.log(res);
};
//
const getProPage = async () => {
const { result } = await getDustprojectPage(pages.value);
const { result } = await globalPlanProList(pages.value);
records.value = result.records;
records.value.map(item => {
let showGif = false;
@ -290,7 +391,7 @@ const getProPage = async () => {
};
//
const getEngPage = async () => {
const { result } = await getDustengineeringPage(pages.value);
const { result } = await globalPlanEngList(pages.value);
records.value = result.records;
records.value.map(item => {
let showGif = false;
@ -298,16 +399,15 @@ const getEngPage = async () => {
});
pages.value.total = +result.total;
};
//
const handleAddItem = () => {
//
const handleItemDetail = async (row: any) => {
console.log(row);
formData.value = reactive({ ...row });
title.value = "查看";
visible.value = true;
title.value = "查看子分部分项";
// formData.value = reactive({});
};
//
const saveItem = async (form: any) => {
// const res = await addGovernment(form);
// ElMessage.success("");
visible.value = false;
};
watch(
@ -330,7 +430,7 @@ watch(
}
);
onMounted(async () => {
getVideoData();
getDicMainList();
await getProPage();
onSearch(records.value[0]);
searchSn.value = (records.value as ResAiProjectPage[])[0].projectSn;

View File

@ -0,0 +1,171 @@
<template>
<div class="overview">
<el-dialog :show-close="false" v-model="visible1" @close="closeMain" width="30%">
<template #title>
<div class="title-detail">
<img src="@/assets/images/tableIcon/look.png" alt="" />
<span>审批</span>
<el-icon>
<close @click="closeMain" />
</el-icon>
</div>
</template>
<div class="content-detail">
<img src="@/assets/images/tableIcon/look.png" alt="" />
<span>是否通过审批?</span>
</div>
<template #footer>
<span class="dialog-footer">
<el-button class="hzCancelStyle" @click="singleAuditSubmit(1)"> </el-button>
<el-button class="hzStyle" type="primary" @click="singleAuditSubmit(2)"> </el-button>
</span>
</template>
</el-dialog>
<el-dialog v-model="auditVisible" :append-to-body="true">
<template #title>
<div style="border-left: 2px solid #0f81ff; font-size: 20px; color: #333333">
<span style="margin-left: 5px">审核意见</span>
</div>
</template>
<el-input v-model="auditForm.content" type="textarea" :rows="2" placeholder="请输入内容" />
<template #footer>
<span class="dialog-footer">
<el-button @click="singleAuditSubmit(1)"> </el-button>
<el-button type="primary" @click="singleAuditSubmit(2)"> </el-button>
</span>
</template>
</el-dialog>
</div>
</template>
<script lang="ts" setup>
import { onMounted, ref, watch, reactive } from "vue";
import { ElMessage, ElMessageBox } from "element-plus";
import type { FormInstance, UploadProps } from "element-plus";
import { singleOptionAudit } from "@/api/modules/goverment";
const props = defineProps({
auditDialogVisible: Boolean,
relativeId: String
});
const emits = defineEmits(["update:auditDialogVisible", "confirm"]);
const visible1 = ref(false);
const singleData = ref(); //
const auditForm = ref({
content: ""
});
//
const closeMain = () => {
visible1.value = false;
};
//
const singleAuditSubmit = async index => {
if (index == 1) {
let requestData = {
id: singleData.value.id,
suggest: auditForm.value.content,
examineState: 2
};
const res = await singleOptionAudit(requestData);
ElMessage.success("操作成功");
} else {
let requestData = {
id: singleData.value.id,
suggest: auditForm.value.content,
examineState: 1
};
const res = await singleOptionAudit(requestData);
ElMessage.success("操作成功");
}
auditVisible.value = false;
};
const auditVisible = ref(false);
// visibleel-dialog
watch(
() => props.auditDialogVisible,
(n, o) => {
visible1.value = n;
if (n) {
} else {
emits("confirm");
}
}
);
// el-dialog@update:visible
watch(visible1, (n, o) => {
emits("update:auditDialogVisible", n);
});
onMounted(() => {});
</script>
<style lang="scss" scoped>
@mixin fullwidth {
width: -webkit-fill-available;
width: -moz-available;
width: stretch;
}
@mixin flex {
display: flex;
align-items: center;
}
@mixin title {
font-size: 16px;
font-family: Source Han Sans CN-Regular, Source Han Sans CN;
font-weight: 400;
color: var(--el-menu-text-color);
border-left: 2px solid #008bff;
padding-left: 5px;
}
.overview {
// background-color: #fff;
:deep(.el-dialog) {
position: relative;
}
.title-detail {
@include flex;
> img {
width: 16px;
height: 18px;
}
> span {
font-size: 20px;
font-family: Source Han Sans CN-Regular, Source Han Sans CN;
font-weight: 400;
color: var(--el-menu-text-color);
margin-left: 10px;
margin-right: auto;
}
:deep(.el-icon) {
cursor: pointer;
color: #a8abb2;
}
}
.content-detail {
@include flex;
> img {
width: 11px;
height: 11px;
margin-right: 10px;
margin-left: 20px;
}
> span {
font-size: 12px;
font-family: Inter-Regular, Inter;
font-weight: 400;
color: var(--el-menu-text-color);
}
}
}
.test :deep(.el-input__wrapper) {
box-shadow: 0 0 0 0;
}
.test :deep(.el-input__inner) {
text-align: center;
}
:deep(.el-table__empty-text) {
min-height: 200px;
display: flex;
justify-content: center;
align-items: center;
}
</style>

View File

@ -0,0 +1,50 @@
.warning-page {
// background-color: blue;
display: flex;
width: 100%;
height: 100%;
.table-box {
height: 100%;
.table {
height: 100%;
:deep(.table-main) {
height: 100%;
}
}
}
}
:deep(.el-scrollbar__view) {
width: 100%;
height: 100%;
// display: flex;
// flex-wrap: wrap;
}
:deep() {
.el-form-item__content > :not(button) {
// width: 160px;
}
.el-input__wrapper {
color: white;
font-size: 16px;
background-color: transparent;
border: none;
box-shadow: 0 0 0 1px var(--el-color-primary, var(--el-color-primary)) inset;
}
.el-input__inner {
color: white;
font-size: 16px;
}
.el-textarea__inner {
color: white;
font-size: 16px;
background-color: transparent;
border: none;
box-shadow: 0 0 0 1px var(--el-color-primary, var(--el-color-primary)) inset;
}
}
// :deep(.el-dialog__body) {
// padding: 0 0 0 0 !important;
// background-color: pink;
// }

View File

@ -1,8 +1,124 @@
<template>
<div class="">项目审批</div>
<div class="warning-page">
<div class="table-box">
<div class="table">
<ProTable
ref="proTable"
title="项目审批"
:columns="columns"
:requestApi="getTableList"
:dataCallback="dataCallback"
:tool-button="false"
:pagination="true"
background
:isShowSearch="false"
:onReset="false"
>
<!-- <template #formButton="scope">
<el-button class="addButtonStyle" @click="handleAddItem">新增</el-button>
</template> -->
<template #operation="{ row }">
<el-button type="primary" link @click="handleLookItem(row)">
<img src="@/assets/images/tableIcon/look.png" alt="" class="configureIcon" />
<span>审核</span>
</el-button>
</template>
<template #state="{ row }">
<span>{{
row.state == 1
? "执法中"
: row.state == 2
? "待整改"
: row.state == 3
? "待审核"
: row.state == 4
? "已闭合"
: row.state == 5
? "已驳回"
: ""
}}</span>
</template>
</ProTable>
</div>
</div>
<!-- 审核弹框 -->
<auditDialog v-model:auditDialogVisible="auditDialogVisible" :relativeId="relativeId" @confirm="allConfirm"></auditDialog>
</div>
</template>
<script setup lang="tsx" name="ProjectSupervisionRecord">
import { ref, reactive, nextTick, computed } from "vue";
import { ref, onMounted } from "vue";
import { ElMessage, ElMessageBox, ElTree, FormInstance } from "element-plus";
import { ColumnProps } from "@/components/ProTable/interface";
import ProTable from "@/components/ProTable/index.vue";
import { statisticsTable } from "@/api/modules/goverment";
import auditDialog from "./components/auditDialog.vue";
const auditDialogVisible = ref(false);
//
const columns: ColumnProps[] = [
{ type: "index", label: "序号", width: 80 },
{
prop: "engineeringName",
label: "项目名称"
},
{
prop: "inspectUserName",
label: "项目编号"
},
{
prop: "buildEnt",
label: "项目类型"
},
{
prop: "supervisorEnt",
label: "负责人"
},
{
prop: "surveyEnt",
label: "手机号"
},
{
prop: "designEnt",
label: "审批状态"
},
{ prop: "operation", label: "操作", fixed: "right", width: 100 }
];
const relativeId = ref("");
// ProTable 便
const proTable = ref();
//
const allConfirm = val => {
console.log(val);
};
const handleLookItem = row => {
console.log(row);
relativeId.value = row.id;
auditDialogVisible.value = true;
};
const getTableList = (params: any) => {
let newParams = JSON.parse(JSON.stringify(params));
console.log(newParams);
if (newParams.createTime) {
newParams.createTime_begin = newParams.createTime[0];
newParams.createTime_end = newParams.createTime[1];
delete newParams.createTime;
}
newParams.type = 2;
return statisticsTable(newParams);
};
// dataCallback list && total && pageNum && pageSize
// hooks/useTable.ts
const dataCallback = (data: any) => {
// console.log(data);
return {
list: data.records,
total: Number(data.total),
pageNo: Number(data.current),
pageSize: Number(data.size)
};
};
onMounted(() => {});
</script>
<style scoped lang="scss"></style>
<style scoped lang="scss">
@import "./index.scss";
</style>

View File

@ -20,6 +20,10 @@
<img src="@/assets/images/tableIcon/updateIcon.png" alt="" class="configureIcon" />
<span>编辑</span>
</el-button>
<el-button type="primary" link @click="handleItemDetail(row)">
<img src="@/assets/images/tableIcon/look.png" alt="" class="configureIcon" />
<span>查看</span>
</el-button>
</template>
</ProTable>
<changeTheme />
@ -71,64 +75,76 @@ const formConfig = {
{
label: "节点编码",
prop: "nodeNumber",
type: "input"
type: "input",
disabled: false
},
{
label: "节点名称",
prop: "nodeName",
type: "input"
type: "input",
disabled: false
},
{
label: "节点类型",
prop: "type",
type: "input"
type: "input",
disabled: false
},
{
label: "标准完成时间",
prop: "standardCompleteTime",
type: "date"
type: "date",
disabled: false
},
{
label: "计划完成时间",
prop: "planCompleteTime",
type: "date"
type: "date",
disabled: false
},
{
label: "预计完成时间",
prop: "expectCompleteTime",
type: "date"
type: "date",
disabled: false
},
{
label: "实际完成时间",
prop: "realCompleteTime",
type: "date"
type: "date",
disabled: false
},
{
label: "状态",
prop: "state",
type: "select",
data: [],
clearable: true
clearable: true,
disabled: false
},
{
label: "实际偏差",
prop: "actualDeviation",
type: "input"
type: "input",
disabled: false
},
{
label: "职能线条",
prop: "phaseName",
type: "input"
type: "input",
disabled: false
},
{
label: "节点负责人编号",
prop: "chargerNumber",
type: "input"
type: "input",
disabled: false
},
{
label: "节点负责人",
prop: "chargerName",
type: "input"
type: "input",
disabled: false
}
],
rules: {
@ -295,7 +311,7 @@ const columns: ColumnProps[] = [
return scoped.row.isSendBack == 1 ? "是" : "否";
}
},
{ prop: "operation", label: "操作", fixed: "right" }
{ prop: "operation", label: "操作", width: 200, fixed: "right" }
];
const getDicMainList = async () => {
//
@ -316,12 +332,12 @@ const getDicMainList = async () => {
};
//
const saveItem = async (form: any) => {
if (form.id) {
if (form.id && newTitle.value != "查看") {
// console.log(form.dictCode);
const res = await globalPlanEdit(form);
proTable.value.getTableList();
ElMessage.success("编辑成功");
} else {
} else if (newTitle.value != "查看" && !form.id) {
const res = await globalPlanAdd(form);
ElMessage.success("新增成功");
proTable.value.getTableList();
@ -408,6 +424,9 @@ const handleAddItem = () => {
});
newTitle.value = "新增";
// fileList.value = reactive([]);
formConfig.formItemConfig.map(item => {
item.disabled = false;
});
visible.value = true;
};
@ -416,6 +435,19 @@ const handleEditItem = async (row: any) => {
console.log(row);
formData.value = reactive({ ...row });
newTitle.value = "编辑";
formConfig.formItemConfig.map(item => {
item.disabled = false;
});
visible.value = true;
};
//
const handleItemDetail = async (row: any) => {
console.log(row);
formData.value = reactive({ ...row });
formConfig.formItemConfig.map(item => {
item.disabled = true;
});
newTitle.value = "查看";
visible.value = true;
};
onMounted(() => {