fix: BUG修改
This commit is contained in:
parent
2c988ed29b
commit
08ed3e3a74
@ -2,10 +2,10 @@
|
||||
NODE_ENV = 'development'
|
||||
|
||||
# 本地环境接口地址(/api/index.ts文件中使用)
|
||||
# VITE_API_URL = 'http://192.168.34.155:6688'
|
||||
VITE_API_URL = 'http://192.168.34.155:6688'
|
||||
# VITE_API_URL = 'http://2xliv7gs.shenzhuo.vip:55296'
|
||||
VITE_WPAPI_URL = "http://182.90.224.147:8081"
|
||||
VITE_API_URL = "http://182.90.224.147:9013"
|
||||
# VITE_API_URL = "http://182.90.224.147:9013"
|
||||
|
||||
# 上传
|
||||
# VITE_ULD_API_URL = 'http://192.168.34.155:8012/onlinePreview?url='
|
||||
|
||||
@ -49,6 +49,10 @@ export const parentItemGovermentList = (params: any) => {
|
||||
export const bigItemGovermentAll = (params: any) => {
|
||||
return http.post(BASEURL + `/gov/projectSubItem/list`, params);
|
||||
};
|
||||
// 分部分项工程分页列表(政务端)
|
||||
export const bigItemGovermentEngList = (params: any) => {
|
||||
return http.post(BASEURL + `/gov/projectSubItem/engineeringPage`, params);
|
||||
};
|
||||
|
||||
// 投资支付管理(项目端)------
|
||||
// 投资支付合同管理分页列表
|
||||
|
||||
@ -44,6 +44,7 @@
|
||||
<el-form-item>
|
||||
<el-button class="btnStyle" type="primary" @click="handleSearch">查询</el-button>
|
||||
<el-button class="btnStyle">刷新</el-button>
|
||||
<el-button class="btnStyle" @click="addVideoData">新增</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<!-- </div> -->
|
||||
@ -56,6 +57,13 @@
|
||||
<div class="page_text flx-justify-column">
|
||||
<div class="img_title">
|
||||
<span>{{ item.title }}</span>
|
||||
<el-button type="primary" link @click="handleEditItem(2, item)">
|
||||
<img src="@/assets/images/tableIcon/updateIcon.png" alt="" class="configureIcon" />
|
||||
<span>编辑</span>
|
||||
</el-button>
|
||||
<el-button style="margin-right: 12px" type="danger" link :icon="Delete" @click="deleteAccount(item)"
|
||||
>删除</el-button
|
||||
>
|
||||
</div>
|
||||
<div class="img_bottom">
|
||||
<!-- <div class="position" style="font-size: 12px">位置:{{ item.deviceName }}</div> -->
|
||||
@ -79,19 +87,69 @@
|
||||
class="pagination"
|
||||
/>
|
||||
<changeTheme />
|
||||
<el-dialog class="imgDialog" :title="title" width="40%" v-model="visible" show-close>
|
||||
<el-form class="diaForm" :rules="rules" :model="formData" ref="ruleFormRef" label-width="160px">
|
||||
<el-form-item label="录像标题:" prop="title">
|
||||
<el-input style="width: 70%" v-model="formData.title" placeholder="请输入" />
|
||||
</el-form-item>
|
||||
<el-form-item label="上传时间:" prop="uploadTime">
|
||||
<el-date-picker
|
||||
style="width: 70%"
|
||||
v-model="formData.uploadTime"
|
||||
format="YYYY-MM-DD HH:mm:ss"
|
||||
value-format="YYYY-MM-DD HH:mm:ss"
|
||||
type="datetime"
|
||||
placeholder="请选择时间"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="备注:" prop="remark">
|
||||
<el-input style="width: 70%" v-model="formData.remark" type="textarea" :rows="3" placeholder="请输入" />
|
||||
</el-form-item>
|
||||
<el-form-item label="录像文件:" prop="videoUrl">
|
||||
<el-upload
|
||||
ref="upload"
|
||||
:headers="headers"
|
||||
:file-list="fileList"
|
||||
class="upload-demo"
|
||||
:action="`${baseUrl}` + '/xmgl/file/upload'"
|
||||
:on-remove="onRemove"
|
||||
multiple
|
||||
:limit="1"
|
||||
:on-success="uploadSuccess"
|
||||
:before-upload="beforeUpload"
|
||||
style="width: 100%"
|
||||
>
|
||||
<el-button class="uploadBtn" type="primary">点击上传</el-button>
|
||||
</el-upload>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<template #footer>
|
||||
<div class="form-footer">
|
||||
<el-button class="hzCancelStyle" @click="visible = false">取消</el-button>
|
||||
<el-button class="btnStyle" type="primary" @click="confirm(ruleFormRef, formData)"> 保存 </el-button>
|
||||
</div>
|
||||
</template>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import { ref, onMounted, watch } from "vue";
|
||||
import { ref, onMounted, reactive, watch } from "vue";
|
||||
import Pagination from "@/components/ProTable/components/Pagination.vue";
|
||||
import type { FormRules, FormInstance } from "element-plus";
|
||||
import { ElMessage, UploadProps } from "element-plus";
|
||||
import { GlobalStore } from "@/stores";
|
||||
import LeftMenu from "@/components/LeftMenu/LeftMenu.vue";
|
||||
import type { ResAiProjectPage, ResAiEngineerPage } from "@/api/types/government/AIwaring";
|
||||
import changeTheme from "@/components/changeTheme/index.vue";
|
||||
import { getUnmannedProjectPage, getUnmannedEngineeringPage, getUnmannedPage } from "@/api/modules/goverment";
|
||||
import { videoDataAdd, videoDataEdit, videoDataDelete } from "@/api/modules/project";
|
||||
import { Delete } from "@element-plus/icons-vue";
|
||||
import { jxj_User } from "@/api/types";
|
||||
import { useHandleData } from "@/hooks/useHandleData";
|
||||
const title = ref("新增录像");
|
||||
const pages = ref({
|
||||
pageNo: 1,
|
||||
pageSize: 7,
|
||||
@ -100,6 +158,9 @@ const pages = ref({
|
||||
const records = ref<ResAiProjectPage[] | ResAiEngineerPage[]>([]);
|
||||
const active = ref(1);
|
||||
const store = GlobalStore();
|
||||
const headers = ref({ Authorization: "Bearer " + store.token });
|
||||
const ruleFormRef = ref<FormInstance>();
|
||||
const baseUrl = import.meta.env.VITE_API_URL;
|
||||
interface formData {
|
||||
title: string;
|
||||
uploadTime: string;
|
||||
@ -129,12 +190,107 @@ const form = ref({
|
||||
startTime: "",
|
||||
endTime: ""
|
||||
});
|
||||
const fileList = ref([]);
|
||||
const visible = ref(false);
|
||||
const rules = reactive<FormRules>({
|
||||
title: {
|
||||
required: true,
|
||||
message: "请输入",
|
||||
trigger: "blur"
|
||||
},
|
||||
uploadTime: {
|
||||
required: true,
|
||||
message: "请选择",
|
||||
trigger: "change"
|
||||
},
|
||||
remark: {
|
||||
required: true,
|
||||
message: "请输入",
|
||||
trigger: "blur"
|
||||
},
|
||||
videoUrl: {
|
||||
required: true,
|
||||
message: "请选择",
|
||||
trigger: "change"
|
||||
}
|
||||
});
|
||||
// 搜索用的项目sn或者工程sn
|
||||
const searchSn = ref("");
|
||||
|
||||
// 项目或者工程名字
|
||||
const searchName = ref<string>("");
|
||||
|
||||
// 删除用户信息
|
||||
const deleteAccount = async (params: jxj_User.ResUserList) => {
|
||||
await useHandleData(videoDataDelete, { id: params.id }, `删除`);
|
||||
getVideoData();
|
||||
};
|
||||
const handleEditItem = (index: number, row: any) => {
|
||||
title.value = "编辑录像";
|
||||
formData.value = { ...row };
|
||||
console.log(formData.value);
|
||||
if (row.videoUrl) {
|
||||
fileList.value = reactive([{ name: "文件", url: row.videoUrl }]);
|
||||
}
|
||||
visible.value = true;
|
||||
};
|
||||
const confirm = async (formEl: FormInstance | undefined, form: any) => {
|
||||
console.log(form);
|
||||
// 标记表单校验
|
||||
if (!formEl) return;
|
||||
await formEl.validate(async (valid, fields) => {
|
||||
if (valid) {
|
||||
if (formData.value.id) {
|
||||
const res = await videoDataEdit(form);
|
||||
ElMessage.success("编辑成功");
|
||||
visible.value = false;
|
||||
getVideoData();
|
||||
} else {
|
||||
const res = await videoDataAdd(form);
|
||||
ElMessage.success("保存成功");
|
||||
visible.value = false;
|
||||
getVideoData();
|
||||
}
|
||||
} else {
|
||||
console.log("error submit!", fields);
|
||||
ElMessage({
|
||||
showClose: true,
|
||||
message: "请完善表单信息!",
|
||||
type: "error"
|
||||
});
|
||||
}
|
||||
});
|
||||
};
|
||||
// 文件上传之前的钩子函数
|
||||
const beforeUpload = file => {
|
||||
console.log(file);
|
||||
const type = file.type;
|
||||
if (type != "video/mp4") {
|
||||
ElMessage.error("请上传视频文件");
|
||||
return false;
|
||||
}
|
||||
};
|
||||
const uploadSuccess = (response: any) => {
|
||||
ElMessage.success("上传成功");
|
||||
console.log(response.result);
|
||||
formData.value.videoUrl = response.result.url;
|
||||
fileList.value = [{ name: response.result.originalFilename, url: response.result.downloadPath }];
|
||||
};
|
||||
const onRemove: UploadProps["onRemove"] = (file, uploadFiles) => {
|
||||
formData.value.videoUrl = "";
|
||||
fileList.value = reactive([]);
|
||||
};
|
||||
// 新增影像
|
||||
const addVideoData = () => {
|
||||
title.value = "新增录像";
|
||||
formData.value = reactive<formData>({
|
||||
title: "",
|
||||
uploadTime: "",
|
||||
remark: "",
|
||||
videoUrl: ""
|
||||
});
|
||||
fileList.value = reactive([]);
|
||||
visible.value = true;
|
||||
};
|
||||
// 页面的项目名称和工程名称的div点击事件
|
||||
const onSearch = async (params: ResAiProjectPage | ResAiEngineerPage) => {
|
||||
const { result } = await getUnmannedPage(
|
||||
|
||||
@ -47,6 +47,19 @@
|
||||
>
|
||||
</el-date-picker>
|
||||
<el-button type="primary" style="margin-left: 20px" @click="getDataList()">查询</el-button>
|
||||
<el-button type="primary" style="margin-left: 20px" @click="handleAddItem()">新增</el-button>
|
||||
<el-upload
|
||||
accept=".mpp"
|
||||
:headers="headers"
|
||||
:action="`${baseUrl}` + '/project/projectSubItem/importMpp'"
|
||||
:on-success="uploadFileSuccess"
|
||||
multiple
|
||||
:limit="1"
|
||||
style="margin-left: 20px"
|
||||
:show-file-list="false"
|
||||
>
|
||||
<el-button type="primary">导入</el-button>
|
||||
</el-upload>
|
||||
</el-card>
|
||||
</div>
|
||||
<div class="statistics-table">
|
||||
@ -57,12 +70,12 @@
|
||||
:tree-props="{ children: 'children', hasChildren: 'hasChildren' }"
|
||||
>
|
||||
<el-table-column align="center" prop="name" width="200" label="分部分项工程名称"></el-table-column>
|
||||
<el-table-column align="center" prop="planStartTime" label="计划开始日期"></el-table-column>
|
||||
<el-table-column align="center" prop="planEndTime" label="截止完成日期"></el-table-column>
|
||||
<el-table-column align="center" prop="realEndTime" label="实际完成日期"></el-table-column>
|
||||
<el-table-column align="center" prop="commander" label="负责人"></el-table-column>
|
||||
<el-table-column align="center" prop="completeRatio" label="完成比率(%)"></el-table-column>
|
||||
<el-table-column align="center" label="状态">
|
||||
<el-table-column align="center" prop="planStartTime" label="计划开始日期" width="200"></el-table-column>
|
||||
<el-table-column align="center" prop="planEndTime" label="截止完成日期" width="200"></el-table-column>
|
||||
<el-table-column align="center" prop="realEndTime" label="实际完成日期" width="200"></el-table-column>
|
||||
<el-table-column align="center" prop="commander" label="负责人" width="150"></el-table-column>
|
||||
<el-table-column align="center" prop="completeRatio" width="200" label="完成比率(%)"></el-table-column>
|
||||
<el-table-column align="center" label="状态" width="150">
|
||||
<template #default="scope">
|
||||
<span>{{
|
||||
scope.row.state == 1
|
||||
@ -83,9 +96,22 @@
|
||||
}}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" width="100" label="操作">
|
||||
<el-table-column align="center" width="360" label="操作">
|
||||
<template #default="scope">
|
||||
<el-button type="primary" link @click="handleEditItem(scope.row)">
|
||||
<el-button
|
||||
v-if="scope.row.parentId == 0"
|
||||
type="primary"
|
||||
link
|
||||
:icon="CirclePlus"
|
||||
@click="handleAddSubItem(scope.row)"
|
||||
>子分项</el-button
|
||||
>
|
||||
<el-button type="primary" link @click="handleEditItem(1, scope.row)">
|
||||
<img src="@/assets/images/tableIcon/updateIcon.png" alt="" class="configureIcon" />
|
||||
<span>编辑</span>
|
||||
</el-button>
|
||||
<el-button type="primary" link :icon="Delete" @click="handleDeleteItem(scope.row)">删除</el-button>
|
||||
<el-button type="primary" link @click="handleEditItem(2, scope.row)">
|
||||
<img src="@/assets/images/tableIcon/updateIcon.png" alt="" class="configureIcon" />
|
||||
<span>查看</span>
|
||||
</el-button>
|
||||
@ -105,30 +131,30 @@
|
||||
<changeTheme />
|
||||
<!-- 新增子分部分项 -->
|
||||
<el-dialog class="imgDialog" :title="newTitle" width="40%" v-model="childrenVisible" show-close>
|
||||
<el-form class="diaForm" :model="childrenFormData" ref="ruleFormRef" label-width="160px">
|
||||
<el-form-item v-if="newTitle == '新增子项'" label="父部分项名称:">
|
||||
<el-form class="diaForm" :rules="rules" :model="childrenFormData" ref="ruleFormRef" label-width="160px">
|
||||
<el-form-item v-if="newTitle == '新增子项'" label="父分部分项名称:">
|
||||
<el-input disabled :value="parentObj.name" placeholder="请输入" />
|
||||
</el-form-item>
|
||||
<el-form-item label="分部分项名称:" prop="name">
|
||||
<el-input disabled v-model="childrenFormData.name" placeholder="请输入" />
|
||||
<el-input v-model="childrenFormData.name" placeholder="请输入" />
|
||||
</el-form-item>
|
||||
<el-form-item label="施工位置:" prop="buildAddress">
|
||||
<el-input disabled v-model="childrenFormData.buildAddress" placeholder="请输入" />
|
||||
<el-input v-model="childrenFormData.buildAddress" placeholder="请输入" />
|
||||
</el-form-item>
|
||||
<el-form-item label="单位:" prop="unit">
|
||||
<el-input disabled v-model="childrenFormData.unit" placeholder="请输入" />
|
||||
<el-input v-model="childrenFormData.unit" placeholder="请输入" />
|
||||
</el-form-item>
|
||||
<el-form-item label="工作量:" prop="workload">
|
||||
<el-input disabled v-model="childrenFormData.workload" placeholder="请输入" />
|
||||
<el-input v-model="childrenFormData.workload" placeholder="请输入" />
|
||||
</el-form-item>
|
||||
<el-form-item label="完成比率:" prop="completeRatio">
|
||||
<el-input disabled v-model="childrenFormData.completeRatio" placeholder="请输入" />
|
||||
<el-input v-model="childrenFormData.completeRatio" placeholder="请输入" />
|
||||
</el-form-item>
|
||||
<el-form-item label="任务描述:" prop="taskDesc">
|
||||
<el-input disabled v-model="childrenFormData.taskDesc" type="textarea" :rows="3" placeholder="请输入" />
|
||||
<el-input v-model="childrenFormData.taskDesc" type="textarea" :rows="3" placeholder="请输入" />
|
||||
</el-form-item>
|
||||
<el-form-item label="状态:" prop="state">
|
||||
<el-select disabled style="width: 100%" v-model="childrenFormData.state" clearable placeholder="请选择">
|
||||
<el-select style="width: 100%" v-model="childrenFormData.state" clearable placeholder="请选择">
|
||||
<el-option v-for="item in statusList" :key="item.value" :label="item.label" :value="item.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
@ -139,7 +165,6 @@
|
||||
format="YYYY-MM-DD"
|
||||
value-format="YYYY-MM-DD"
|
||||
type="datetime"
|
||||
disabled
|
||||
placeholder="请选择时间"
|
||||
/>
|
||||
</el-form-item>
|
||||
@ -150,15 +175,24 @@
|
||||
format="YYYY-MM-DD"
|
||||
value-format="YYYY-MM-DD"
|
||||
type="datetime"
|
||||
disabled
|
||||
placeholder="请选择时间"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="实际完成日期:" prop="realEndTime">
|
||||
<el-date-picker
|
||||
style="width: 100%"
|
||||
v-model="childrenFormData.realEndTime"
|
||||
format="YYYY-MM-DD"
|
||||
value-format="YYYY-MM-DD"
|
||||
type="datetime"
|
||||
placeholder="请选择时间"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="重要程度:" prop="importance">
|
||||
<el-input disabled v-model="childrenFormData.importance" placeholder="请输入" />
|
||||
<el-input v-model="childrenFormData.importance" placeholder="请输入" />
|
||||
</el-form-item>
|
||||
<el-form-item label="负责人:" prop="commander">
|
||||
<el-input disabled v-model="childrenFormData.commander" placeholder="请输入" />
|
||||
<el-input v-model="childrenFormData.commander" placeholder="请输入" />
|
||||
</el-form-item>
|
||||
<el-form-item label="逾期问题描述:" prop="overdueIssueDesc">
|
||||
<el-input v-model="childrenFormData.overdueIssueDesc" placeholder="请输入" />
|
||||
@ -175,16 +209,15 @@
|
||||
</el-form-item>
|
||||
<el-form-item label="逾期文件说明:" prop="overdueIssueFile">
|
||||
<el-upload
|
||||
ref="upload"
|
||||
ref="upload1"
|
||||
:headers="headers"
|
||||
:file-list="fileList1"
|
||||
class="upload-demo"
|
||||
:action="`${baseUrl}` + '/xmgl/file/upload'"
|
||||
:on-remove="onRemove"
|
||||
disabled
|
||||
:on-remove="onRemove1"
|
||||
multiple
|
||||
:limit="1"
|
||||
:on-success="uploadSuccess"
|
||||
:on-success="uploadSuccess1"
|
||||
style="width: 100%"
|
||||
>
|
||||
<el-button class="uploadBtn" type="primary">点击上传</el-button>
|
||||
@ -198,7 +231,6 @@
|
||||
class="upload-demo"
|
||||
:action="`${baseUrl}` + '/xmgl/file/upload'"
|
||||
:on-remove="onRemove"
|
||||
disabled
|
||||
multiple
|
||||
:limit="1"
|
||||
:on-success="uploadSuccess"
|
||||
@ -208,21 +240,37 @@
|
||||
</el-upload>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<template #footer v-if="newTitle != '查看'">
|
||||
<div>
|
||||
<el-button class="hzCancelStyle" @click="childrenVisible = false">取消</el-button>
|
||||
<el-button type="primary" @click="childrenConfirm(ruleFormRef, childrenFormData)"> 保存 </el-button>
|
||||
</div>
|
||||
</template>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
<script lang="ts" setup name="divisionsAndISubItems">
|
||||
import { ref, reactive, onMounted, watch } from "vue";
|
||||
import { getDustprojectPage, getDustengineeringPage, getAIQuestionPage } from "@/api/modules/goverment";
|
||||
import type { FormRules, FormInstance } from "element-plus";
|
||||
import { Delete, CirclePlus } from "@element-plus/icons-vue";
|
||||
import { getDustprojectPage, getAIQuestionPage } from "@/api/modules/goverment";
|
||||
import Pagination from "@/components/ProTable/components/Pagination.vue";
|
||||
import { ElMessage, UploadProps } from "element-plus";
|
||||
import changeTheme from "@/components/changeTheme/index.vue";
|
||||
import { GlobalStore } from "@/stores";
|
||||
import LeftMenu from "@/components/LeftMenu/LeftMenu.vue";
|
||||
import type { ResAiProjectPage, ResAiEngineerPage } from "@/api/types/government/AIwaring";
|
||||
import { bigItemGovermentList } from "@/api/modules/huizhou";
|
||||
import { bigItemGovermentList, bigItemGovermentEngList, addEntBigItem, updateEntBigItem } from "@/api/modules/huizhou";
|
||||
const rules = reactive<FormRules>({
|
||||
name: {
|
||||
required: true,
|
||||
message: "请输入",
|
||||
trigger: "blur"
|
||||
}
|
||||
});
|
||||
const ruleFormRef = ref();
|
||||
const statusList = ref([
|
||||
{ label: "未开始", value: 1 },
|
||||
{ label: "推进中", value: 2 },
|
||||
@ -291,6 +339,92 @@ const searchForm = ref({
|
||||
realEndTime_end: "",
|
||||
timeRange: []
|
||||
});
|
||||
const handleAddSubItem = (row: any) => {
|
||||
parentObj.value = row;
|
||||
childrenFormData.value = reactive({
|
||||
name: "",
|
||||
buildAddress: "",
|
||||
workload: "",
|
||||
unit: "",
|
||||
taskDesc: "",
|
||||
planStartTime: "",
|
||||
planEndTime: "",
|
||||
importance: "",
|
||||
commander: "",
|
||||
overdueIssueDesc: "",
|
||||
deadline: "",
|
||||
overdueIssueFile: "",
|
||||
annexFile: "",
|
||||
completeRatio: "",
|
||||
state: null
|
||||
});
|
||||
console.log(parentObj.value);
|
||||
newTitle.value = "新增子项";
|
||||
fileList.value = reactive([]);
|
||||
fileList1.value = reactive([]);
|
||||
childrenVisible.value = true;
|
||||
};
|
||||
// 导入文件
|
||||
const uploadFileSuccess = (response: any) => {
|
||||
console.log(response);
|
||||
if (response.result) {
|
||||
getDataList();
|
||||
}
|
||||
};
|
||||
const childrenConfirm = async (formEl: FormInstance | undefined, form: any) => {
|
||||
// 标记表单校验
|
||||
if (!formEl) return;
|
||||
await formEl.validate(async (valid, fields) => {
|
||||
if (valid) {
|
||||
if (form.id) {
|
||||
if (newTitle.value == "编辑子项") {
|
||||
form.parentId = parentObj.value.parentId;
|
||||
}
|
||||
const res = await updateEntBigItem(form);
|
||||
ElMessage.success("编辑成功");
|
||||
childrenVisible.value = false;
|
||||
} else {
|
||||
if (newTitle.value == "新增子项") {
|
||||
form.parentId = parentObj.value.id;
|
||||
}
|
||||
const res = await addEntBigItem(form);
|
||||
ElMessage.success("保存成功");
|
||||
childrenVisible.value = false;
|
||||
}
|
||||
getDataList();
|
||||
} else {
|
||||
console.log("error submit!", fields);
|
||||
ElMessage({
|
||||
showClose: true,
|
||||
message: "请完善表单信息!",
|
||||
type: "error"
|
||||
});
|
||||
}
|
||||
});
|
||||
};
|
||||
const handleAddItem = () => {
|
||||
childrenFormData.value = reactive({
|
||||
name: "",
|
||||
buildAddress: "",
|
||||
workload: "",
|
||||
unit: "",
|
||||
taskDesc: "",
|
||||
planStartTime: "",
|
||||
planEndTime: "",
|
||||
importance: "",
|
||||
commander: "",
|
||||
overdueIssueDesc: "",
|
||||
deadline: "",
|
||||
overdueIssueFile: "",
|
||||
annexFile: "",
|
||||
completeRatio: "",
|
||||
state: null
|
||||
});
|
||||
newTitle.value = "新增";
|
||||
fileList.value = reactive([]);
|
||||
fileList1.value = reactive([]);
|
||||
childrenVisible.value = true;
|
||||
};
|
||||
const handleSizeChange = (val: any) => {
|
||||
pageable.value.pageNo = 1;
|
||||
pageable.value.pageSize = val;
|
||||
@ -310,10 +444,18 @@ const onRemove: UploadProps["onRemove"] = (file, uploadFiles) => {
|
||||
fileList.value = reactive([]);
|
||||
};
|
||||
// 修改数据按钮
|
||||
const handleEditItem = async (row: any) => {
|
||||
const handleEditItem = async (index: number, row: any) => {
|
||||
console.log(row);
|
||||
if (index == 1) {
|
||||
if (row.parentId != 0) {
|
||||
newTitle.value = "编辑子项";
|
||||
} else {
|
||||
newTitle.value = "编辑";
|
||||
}
|
||||
} else {
|
||||
newTitle.value = "查看";
|
||||
}
|
||||
parentObj.value = row;
|
||||
newTitle.value = "查看";
|
||||
childrenFormData.value = { ...row };
|
||||
if (row.annexFile) {
|
||||
fileList.value = [{ name: "文件", url: row.annexFile }];
|
||||
@ -387,7 +529,7 @@ const onSearchInput = async (params: string) => {
|
||||
const { result } = await getDustprojectPage({ projectName: params, ...pages.value });
|
||||
records.value = result.records;
|
||||
} else {
|
||||
const { result } = await getDustengineeringPage({ engineeringName: params, ...pages.value });
|
||||
const { result } = await bigItemGovermentEngList({ engineeringName: params, ...pages.value });
|
||||
records.value = result.records;
|
||||
}
|
||||
};
|
||||
@ -397,7 +539,7 @@ const onCurChange = async (params: number) => {
|
||||
const { result } = await getDustprojectPage({ ...pages.value, pageNo: params });
|
||||
records.value = result.records;
|
||||
} else {
|
||||
const { result } = await getDustengineeringPage({ ...pages.value, pageNo: params });
|
||||
const { result } = await bigItemGovermentEngList({ ...pages.value, pageNo: params });
|
||||
records.value = result.records;
|
||||
pages.value.total = +result.total;
|
||||
}
|
||||
@ -415,7 +557,7 @@ const getProPage = async () => {
|
||||
};
|
||||
// 获取工程名称分页
|
||||
const getEngPage = async () => {
|
||||
const { result } = await getDustengineeringPage(pages.value);
|
||||
const { result } = await bigItemGovermentEngList(pages.value);
|
||||
records.value = result.records;
|
||||
records.value.map(item => {
|
||||
let showGif = false;
|
||||
|
||||
@ -11,6 +11,10 @@
|
||||
</div>
|
||||
</template>
|
||||
<div class="detail-table">
|
||||
<div class="button-title">
|
||||
<el-button class="btnStyle" @click="openAdd">新增</el-button>
|
||||
<el-button class="btnStyle" @click="submitCount">提交</el-button>
|
||||
</div>
|
||||
<div class="table">
|
||||
<el-table
|
||||
:data="recordData"
|
||||
@ -65,6 +69,9 @@
|
||||
</el-dialog>
|
||||
<el-dialog v-model="auditVisible" width="80%">
|
||||
<div class="sub-table">
|
||||
<div class="button-optoion">
|
||||
<el-button class="btnStyle" @click="openAdd2">新增</el-button>
|
||||
</div>
|
||||
<el-table
|
||||
:data="recordItemData"
|
||||
class="el-table"
|
||||
@ -96,6 +103,13 @@
|
||||
<el-table-column prop="endAmount" label="金额(元)"> </el-table-column>
|
||||
</el-table-column>
|
||||
<el-table-column prop="remark" label="备注"> </el-table-column>
|
||||
<el-table-column align="left" label="操作">
|
||||
<template #default="scope">
|
||||
<el-button v-if="scope.row.parentId == 0" type="primary" link :icon="CirclePlus" @click="openAdd2(scope.row)"
|
||||
>子分项</el-button
|
||||
>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- 表格无数据情况 -->
|
||||
<template #empty>
|
||||
<div class="table-empty">
|
||||
|
||||
@ -38,6 +38,9 @@
|
||||
:isShowSearch="false"
|
||||
:onReset="true"
|
||||
>
|
||||
<template #formButton="scope">
|
||||
<el-button class="btnStyle" @click="handleAddItem">新增</el-button>
|
||||
</template>
|
||||
<template #investmentPaymentId="scope">
|
||||
<span :style="{ color: scope.row.investmentPaymentId ? 'var(--el-menu-text-color)' : '#F80840' }">{{
|
||||
scope.row.investmentPaymentId ? "已支付" : "未支付"
|
||||
@ -72,7 +75,7 @@
|
||||
</template>
|
||||
|
||||
<script setup lang="tsx" name="ProjectSupervisionRecord">
|
||||
import { ref, onMounted, watch } from "vue";
|
||||
import { ref, onMounted, reactive, watch } from "vue";
|
||||
import { ElMessage } from "element-plus";
|
||||
import { ColumnProps } from "@/components/ProTable/interface";
|
||||
import ProTable from "@/components/ProTable/index.vue";
|
||||
@ -152,6 +155,13 @@ const columns: ColumnProps[] = [
|
||||
{ prop: "investmentPaymentId", label: "支付状态" },
|
||||
{ prop: "operation", label: "操作", fixed: "right", width: 120 }
|
||||
];
|
||||
const handleAddItem = () => {
|
||||
formData.value = reactive({
|
||||
name: "",
|
||||
applyTime: ""
|
||||
});
|
||||
openVisible.value = true;
|
||||
};
|
||||
// 页面的项目名称和工程名称的div点击事件
|
||||
const onSearch = async (params: any) => {
|
||||
console.log(params);
|
||||
|
||||
@ -20,10 +20,6 @@
|
||||
<img style="margin-right: 5px" src="@/assets/images/AIwaring/dustMap.png" alt="" />
|
||||
<span class="middleSize">{{ data.projectAddress || data.address }}</span>
|
||||
</div>
|
||||
<!-- <div>
|
||||
<img src="@/assets/images/AIwaring/报警.png" alt="" />
|
||||
<span class="middleSize">今日报警次数:{{ data.todayAlarm }}</span>
|
||||
</div> -->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -126,7 +126,7 @@
|
||||
<template #footer>
|
||||
<div class="form-footer">
|
||||
<el-button class="hzCancelStyle" @click="visible = false">取消</el-button>
|
||||
<el-button class="btnStyle" :disabled="isBool" type="primary" @click="confirm(ruleFormRef, formData)"> 保存 </el-button>
|
||||
<el-button class="btnStyle" type="primary" @click="confirm(ruleFormRef, formData)"> 保存 </el-button>
|
||||
</div>
|
||||
</template>
|
||||
</el-dialog>
|
||||
@ -157,7 +157,6 @@ const store = GlobalStore();
|
||||
const headers = ref({ Authorization: "Bearer " + store.token });
|
||||
const ruleFormRef = ref<FormInstance>();
|
||||
const baseUrl = import.meta.env.VITE_API_URL;
|
||||
const isBool = ref(true);
|
||||
interface formData {
|
||||
title: string;
|
||||
uploadTime: string;
|
||||
@ -294,7 +293,6 @@ const uploadSuccess = (response: any) => {
|
||||
console.log(response.result);
|
||||
formData.value.videoUrl = response.result.url;
|
||||
fileList.value = [{ name: response.result.originalFilename, url: response.result.downloadPath }];
|
||||
isBool.value = false;
|
||||
};
|
||||
const onRemove: UploadProps["onRemove"] = (file, uploadFiles) => {
|
||||
formData.value.videoUrl = "";
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user