fix: BUG修改
This commit is contained in:
parent
eb5d2200d3
commit
6710a2b00d
@ -49,6 +49,10 @@ export const editCompanyApprove = (params: { enterpriseId: string; suggest: numb
|
|||||||
export const getEngineeringApproveList = (params: User.ReqUserParams) => {
|
export const getEngineeringApproveList = (params: User.ReqUserParams) => {
|
||||||
return http.post<ResPage<User.ResUserList>>(BASEURL + `/gov/engineering/page`, params);
|
return http.post<ResPage<User.ResUserList>>(BASEURL + `/gov/engineering/page`, params);
|
||||||
};
|
};
|
||||||
|
// 工程审批new!!!!!!!!!!!!!!!!!!
|
||||||
|
export const getNewEngineeringApproveList = (params: User.ReqUserParams) => {
|
||||||
|
return http.post<ResPage<User.ResUserList>>(BASEURL + `/gov/engineering/examinePage`, params);
|
||||||
|
};
|
||||||
|
|
||||||
// 通过id查询项目工程详细信息
|
// 通过id查询项目工程详细信息
|
||||||
export const getIdEngApproveList = (params: { id: string }) => {
|
export const getIdEngApproveList = (params: { id: string }) => {
|
||||||
|
|||||||
@ -452,7 +452,7 @@ const handleHover = (e: any, item: any) => {
|
|||||||
display: "block"
|
display: "block"
|
||||||
};
|
};
|
||||||
tooltipContent.value = {
|
tooltipContent.value = {
|
||||||
day: item.delay,
|
day: item.slippage,
|
||||||
name: item.commander
|
name: item.commander
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@ -430,7 +430,11 @@ const getTableList = (params: any) => {
|
|||||||
newParams.realCompleteTime_end = newParams.realCompleteTime[1];
|
newParams.realCompleteTime_end = newParams.realCompleteTime[1];
|
||||||
delete newParams.realCompleteTime;
|
delete newParams.realCompleteTime;
|
||||||
}
|
}
|
||||||
newParams.engineeringSn = searchSn.value;
|
if (searchSn.value) {
|
||||||
|
newParams.engineeringSn = searchSn.value;
|
||||||
|
} else {
|
||||||
|
return { result: { current: "1", pages: "1", records: [], size: "10", total: "0" } };
|
||||||
|
}
|
||||||
return globalPlanList(newParams);
|
return globalPlanList(newParams);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@ -486,6 +486,7 @@ const handleAddSubItem = (row: any) => {
|
|||||||
};
|
};
|
||||||
const importData = () => {};
|
const importData = () => {};
|
||||||
const handleAddItem = () => {
|
const handleAddItem = () => {
|
||||||
|
ruleFormRef.value?.resetFields();
|
||||||
childrenFormData.value = reactive({
|
childrenFormData.value = reactive({
|
||||||
name: "",
|
name: "",
|
||||||
buildAddress: "",
|
buildAddress: "",
|
||||||
|
|||||||
@ -52,7 +52,7 @@
|
|||||||
<div class="imgTable" v-if="videoData.records.length">
|
<div class="imgTable" v-if="videoData.records.length">
|
||||||
<div class="img_item" v-for="item in videoData.records" :key="item.id">
|
<div class="img_item" v-for="item in videoData.records" :key="item.id">
|
||||||
<!-- <el-image style="width: 100%; height: 182px" :src="item.videoUrl" fit="fill" /> -->
|
<!-- <el-image style="width: 100%; height: 182px" :src="item.videoUrl" fit="fill" /> -->
|
||||||
<video style="width: 100%; height: 182px; object-fit: fill" controls :src="item.videoUrl"></video>
|
<video style="width: 100%; height: 182px; object-fit: fill" controls :src="item.videoUrl.url"></video>
|
||||||
<div class="page_text flx-justify-column">
|
<div class="page_text flx-justify-column">
|
||||||
<div class="img_title">
|
<div class="img_title">
|
||||||
<span>{{ item.title }}</span>
|
<span>{{ item.title }}</span>
|
||||||
@ -321,7 +321,7 @@ const handleEditItem = (index: number, row: any) => {
|
|||||||
title.value = "编辑录像";
|
title.value = "编辑录像";
|
||||||
formData.value = { ...row };
|
formData.value = { ...row };
|
||||||
console.log(formData.value);
|
console.log(formData.value);
|
||||||
fileList.value = reactive([{ name: "文件", url: row.videoUrl }]);
|
fileList.value = row.videoUrl ? [row.videoUrl] : [];
|
||||||
visible.value = true;
|
visible.value = true;
|
||||||
};
|
};
|
||||||
const getVideoData = async () => {
|
const getVideoData = async () => {
|
||||||
@ -334,14 +334,19 @@ const getVideoData = async () => {
|
|||||||
};
|
};
|
||||||
delete requestData.createTime;
|
delete requestData.createTime;
|
||||||
const res = await videoList(requestData);
|
const res = await videoList(requestData);
|
||||||
videoData.value.records = res.result.records;
|
if (res.result && res.result.records.length > 0) {
|
||||||
|
res.result.records.map(item => {
|
||||||
|
item.videoUrl = JSON.parse(item.videoUrl);
|
||||||
|
});
|
||||||
|
videoData.value.records = res.result.records;
|
||||||
|
}
|
||||||
console.log(videoData.value);
|
console.log(videoData.value);
|
||||||
console.log(res);
|
console.log(res);
|
||||||
};
|
};
|
||||||
|
|
||||||
const uploadSuccess = (response: any) => {
|
const uploadSuccess = (response: any) => {
|
||||||
ElMessage.success("上传成功");
|
ElMessage.success("上传成功");
|
||||||
formData.value.videoUrl = response.result.url;
|
formData.value.videoUrl = { name: response.result.originalFilename, url: response.result.url };
|
||||||
fileList.value = [{ name: response.result.originalFilename, url: response.result.downloadPath }];
|
fileList.value = [{ name: response.result.originalFilename, url: response.result.downloadPath }];
|
||||||
ruleFormRef.value.validateField("videoUrl");
|
ruleFormRef.value.validateField("videoUrl");
|
||||||
};
|
};
|
||||||
@ -369,6 +374,7 @@ const confirm = async (formEl: FormInstance | undefined, form: any) => {
|
|||||||
console.log(666);
|
console.log(666);
|
||||||
console.log(searchSn.value);
|
console.log(searchSn.value);
|
||||||
formData.value.engineeringSn = searchSn.value;
|
formData.value.engineeringSn = searchSn.value;
|
||||||
|
form.videoUrl = JSON.stringify(form.videoUrl);
|
||||||
if (formData.value.id) {
|
if (formData.value.id) {
|
||||||
const res = await videoDataEdit(form);
|
const res = await videoDataEdit(form);
|
||||||
ElMessage.success("编辑成功");
|
ElMessage.success("编辑成功");
|
||||||
|
|||||||
@ -507,7 +507,7 @@ import { useRoute } from "vue-router";
|
|||||||
import { ColumnProps } from "@/components/ProTable/interface";
|
import { ColumnProps } from "@/components/ProTable/interface";
|
||||||
import ProTable from "@/components/ProTable/index.vue";
|
import ProTable from "@/components/ProTable/index.vue";
|
||||||
import {
|
import {
|
||||||
getEngineeringApproveList,
|
getNewEngineeringApproveList,
|
||||||
editProjectApprove,
|
editProjectApprove,
|
||||||
getIdEngApproveList,
|
getIdEngApproveList,
|
||||||
getIdEngApprovettable,
|
getIdEngApprovettable,
|
||||||
@ -679,8 +679,7 @@ const getTableList = (params: any) => {
|
|||||||
newParams.createTime_end = newParams.createTime[1];
|
newParams.createTime_end = newParams.createTime[1];
|
||||||
delete newParams.createTime;
|
delete newParams.createTime;
|
||||||
}
|
}
|
||||||
|
return getNewEngineeringApproveList(newParams);
|
||||||
return getEngineeringApproveList(newParams);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
const onSee = async row => {
|
const onSee = async row => {
|
||||||
|
|||||||
@ -177,7 +177,11 @@
|
|||||||
placeholder="请选择时间"
|
placeholder="请选择时间"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="逾期文件说明:" prop="overdueIssueFile">
|
<el-form-item
|
||||||
|
label="逾期文件说明:"
|
||||||
|
prop="overdueIssueFile"
|
||||||
|
v-if="childrenFormData.state == 4 || childrenFormData.state == 5 || childrenFormData.state == 6"
|
||||||
|
>
|
||||||
<el-upload
|
<el-upload
|
||||||
ref="upload"
|
ref="upload"
|
||||||
:headers="headers"
|
:headers="headers"
|
||||||
|
|||||||
@ -55,10 +55,10 @@
|
|||||||
<!-- </div> -->
|
<!-- </div> -->
|
||||||
|
|
||||||
<div class="imgPage">
|
<div class="imgPage">
|
||||||
<div class="imgTable" v-if="questList.records.length">
|
<div class="imgTable" v-if="questList.length">
|
||||||
<div class="img_item" v-for="item in questList.records" :key="item.id">
|
<div class="img_item" v-for="item in questList" :key="item.id">
|
||||||
<!-- <el-image style="width: 100%; height: 182px" :src="item.image" fit="fill" /> -->
|
<!-- <el-image style="width: 100%; height: 182px" :src="item.image" fit="fill" /> -->
|
||||||
<video style="width: 100%; height: 182px; object-fit: fill" controls :src="item.videoUrl"></video>
|
<video style="width: 100%; height: 182px; object-fit: fill" controls :src="item.videoUrl.url"></video>
|
||||||
<div class="page_text flx-justify-column">
|
<div class="page_text flx-justify-column">
|
||||||
<div class="img_title">{{ item.title }}</div>
|
<div class="img_title">{{ item.title }}</div>
|
||||||
<div class="img_bottom">
|
<div class="img_bottom">
|
||||||
@ -161,9 +161,7 @@ const pageable = ref({
|
|||||||
|
|
||||||
const records = ref<ResAiProjectPage[] | ResAiEngineerPage[]>([]);
|
const records = ref<ResAiProjectPage[] | ResAiEngineerPage[]>([]);
|
||||||
|
|
||||||
const questList = ref({
|
const questList = ref([]);
|
||||||
records: []
|
|
||||||
});
|
|
||||||
const form = ref({
|
const form = ref({
|
||||||
title: "",
|
title: "",
|
||||||
createTime: "",
|
createTime: "",
|
||||||
@ -279,21 +277,7 @@ const onShowImg = (params: any) => {
|
|||||||
|
|
||||||
// 页面的分页
|
// 页面的分页
|
||||||
const handleCurrentChange = async (page: number) => {
|
const handleCurrentChange = async (page: number) => {
|
||||||
const { result } = await getUnmannedPage(
|
handSearch();
|
||||||
active.value === 0
|
|
||||||
? {
|
|
||||||
pageNo: page,
|
|
||||||
pageSize: pageable.value.pageSize,
|
|
||||||
projectSn: searchSn.value
|
|
||||||
}
|
|
||||||
: {
|
|
||||||
pageNo: page,
|
|
||||||
pageSize: pageable.value.pageSize,
|
|
||||||
engineeringSn: searchSn.value
|
|
||||||
}
|
|
||||||
);
|
|
||||||
console.log(result);
|
|
||||||
questList.value = result;
|
|
||||||
pageable.value.total = Number(result.total);
|
pageable.value.total = Number(result.total);
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -326,22 +310,17 @@ const handSearch = async () => {
|
|||||||
? { ...form.value, ...pageable.value, projectSn: searchSn.value }
|
? { ...form.value, ...pageable.value, projectSn: searchSn.value }
|
||||||
: { ...form.value, ...pageable.value, engineeringSn: searchSn.value }
|
: { ...form.value, ...pageable.value, engineeringSn: searchSn.value }
|
||||||
);
|
);
|
||||||
questList.value = res.result;
|
if (res.result && res.result.records.length > 0) {
|
||||||
pageable.value.total = +questList.value.total;
|
res.result.records.map(item => {
|
||||||
|
item.videoUrl = JSON.parse(item.videoUrl);
|
||||||
|
});
|
||||||
|
questList.value = res.result.records;
|
||||||
|
}
|
||||||
|
pageable.value.total = +res.result.total;
|
||||||
};
|
};
|
||||||
// 页面的项目名称和工程名称的div点击事件
|
// 页面的项目名称和工程名称的div点击事件
|
||||||
const onSearch = async (params: ResAiProjectPage | ResAiEngineerPage) => {
|
const onSearch = async (params: ResAiProjectPage | ResAiEngineerPage) => {
|
||||||
const { result } = await getUnmannedPage(
|
handSearch();
|
||||||
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
|
|
||||||
}
|
|
||||||
);
|
|
||||||
questList.value = result;
|
|
||||||
pageable.value.total = Number(result.total);
|
|
||||||
active.value === 0
|
active.value === 0
|
||||||
? (searchSn.value = (params as ResAiProjectPage).projectSn)
|
? (searchSn.value = (params as ResAiProjectPage).projectSn)
|
||||||
: (searchSn.value = (params as ResAiEngineerPage).engineeringSn);
|
: (searchSn.value = (params as ResAiEngineerPage).engineeringSn);
|
||||||
|
|||||||
@ -110,7 +110,12 @@
|
|||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="整改情况:">
|
<el-form-item label="整改情况:">
|
||||||
<el-input v-model="formData.state" :autosize="{ minRows: 2, maxRows: 4 }" type="textarea"></el-input>
|
<el-input
|
||||||
|
:value="formData.state == 0 ? '待整改' : '已整改'"
|
||||||
|
:autosize="{ minRows: 2, maxRows: 4 }"
|
||||||
|
type="textarea"
|
||||||
|
></el-input>
|
||||||
|
<!-- <el-input v-model="formData.state" :autosize="{ minRows: 2, maxRows: 4 }" type="textarea"></el-input> -->
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="图片显示:">
|
<el-form-item label="图片显示:">
|
||||||
<el-image style="width: 95px; height: 53px" :src="formData.solveImage" fit="fill" />
|
<el-image style="width: 95px; height: 53px" :src="formData.solveImage" fit="fill" />
|
||||||
@ -303,6 +308,7 @@ const changeTreeFilter = async (item: {
|
|||||||
const proApi = async () => {
|
const proApi = async () => {
|
||||||
const { result } = await getvideoProTreeList({});
|
const { result } = await getvideoProTreeList({});
|
||||||
proTree.value.treeAllData = result;
|
proTree.value.treeAllData = result;
|
||||||
|
return result;
|
||||||
// cameraIndexCode.value = proTree.value.treeAllData[5].children[0].code;
|
// cameraIndexCode.value = proTree.value.treeAllData[5].children[0].code;
|
||||||
// console.log(cameraIndexCode.value);
|
// console.log(cameraIndexCode.value);
|
||||||
};
|
};
|
||||||
|
|||||||
@ -452,7 +452,7 @@ const handleHover = (e: any, item: any) => {
|
|||||||
display: "block"
|
display: "block"
|
||||||
};
|
};
|
||||||
tooltipContent.value = {
|
tooltipContent.value = {
|
||||||
day: item.delay,
|
day: item.slippage,
|
||||||
name: item.commander
|
name: item.commander
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@ -481,6 +481,7 @@ const handleAddSubItem = (row: any) => {
|
|||||||
};
|
};
|
||||||
const importData = () => {};
|
const importData = () => {};
|
||||||
const handleAddItem = () => {
|
const handleAddItem = () => {
|
||||||
|
ruleFormRef.value?.resetFields();
|
||||||
childrenFormData.value = reactive({
|
childrenFormData.value = reactive({
|
||||||
name: "",
|
name: "",
|
||||||
buildAddress: "",
|
buildAddress: "",
|
||||||
|
|||||||
@ -74,7 +74,8 @@ export const rules = ref<FormRules>({
|
|||||||
creditCode: {
|
creditCode: {
|
||||||
type: "string",
|
type: "string",
|
||||||
required: true,
|
required: true,
|
||||||
message: "请输入统一社会信用代码"
|
message: "请输入统一社会信用代码",
|
||||||
|
trigger: "blur"
|
||||||
},
|
},
|
||||||
contractType: {
|
contractType: {
|
||||||
type: "string",
|
type: "string",
|
||||||
|
|||||||
@ -121,8 +121,8 @@ export const rules = ref<FormRules>({
|
|||||||
trigger: "blur"
|
trigger: "blur"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
type: "number",
|
pattern: /^[0-9\.]+$/,
|
||||||
message: "请输入数字",
|
message: "请输入整数或小数",
|
||||||
trigger: "blur"
|
trigger: "blur"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
@ -133,8 +133,8 @@ export const rules = ref<FormRules>({
|
|||||||
trigger: "blur"
|
trigger: "blur"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
type: "number",
|
pattern: /^[0-9\.]+$/,
|
||||||
message: "请输入数字",
|
message: "请输入整数或小数",
|
||||||
trigger: "blur"
|
trigger: "blur"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
@ -145,8 +145,8 @@ export const rules = ref<FormRules>({
|
|||||||
trigger: "blur"
|
trigger: "blur"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
type: "number",
|
pattern: /^[0-9\.]+$/,
|
||||||
message: "请输入数字",
|
message: "请输入整数或小数",
|
||||||
trigger: "blur"
|
trigger: "blur"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
|||||||
@ -30,15 +30,15 @@
|
|||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="工程造价(万元):" prop="engineeringCost">
|
<el-form-item label="工程造价(万元):" prop="engineeringCost">
|
||||||
<el-input placeholder="请输入" v-model.number="form.engineeringCost" />
|
<el-input placeholder="请输入" v-model="form.engineeringCost" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</div>
|
</div>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<el-form-item label="工程总面积(㎡):" prop="engineeringArea">
|
<el-form-item label="工程总面积(㎡):" prop="engineeringArea">
|
||||||
<el-input placeholder="请输入" v-model.number="form.engineeringArea" />
|
<el-input placeholder="请输入" v-model="form.engineeringArea" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="工程总长度(m):" prop="engineeringLength">
|
<el-form-item label="工程总长度(m):" prop="engineeringLength">
|
||||||
<el-input placeholder="请输入" v-model.number="form.engineeringLength" />
|
<el-input placeholder="请输入" v-model="form.engineeringLength" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</div>
|
</div>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
|
|||||||
@ -216,6 +216,7 @@ const confirm = async (formEl: FormInstance | undefined, form: any) => {
|
|||||||
if (!formEl) return;
|
if (!formEl) return;
|
||||||
await formEl.validate(async (valid, fields) => {
|
await formEl.validate(async (valid, fields) => {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
|
form.engineeringSn = searchSn.value;
|
||||||
if (formData.value.id) {
|
if (formData.value.id) {
|
||||||
const res = await equipEdit(form);
|
const res = await equipEdit(form);
|
||||||
ElMessage.success("编辑成功");
|
ElMessage.success("编辑成功");
|
||||||
|
|||||||
@ -29,7 +29,7 @@
|
|||||||
<div class="imgTable" v-if="videoData.records.length">
|
<div class="imgTable" v-if="videoData.records.length">
|
||||||
<div class="img_item" v-for="item in videoData.records" :key="item.id">
|
<div class="img_item" v-for="item in videoData.records" :key="item.id">
|
||||||
<!-- <el-image style="width: 100%; height: 182px" :src="item.videoUrl" fit="fill" /> -->
|
<!-- <el-image style="width: 100%; height: 182px" :src="item.videoUrl" fit="fill" /> -->
|
||||||
<video style="width: 100%; height: 182px; object-fit: fill" controls :src="item.videoUrl"></video>
|
<video style="width: 100%; height: 182px; object-fit: fill" controls :src="item.videoUrl.url"></video>
|
||||||
<div class="page_text flx-justify-column">
|
<div class="page_text flx-justify-column">
|
||||||
<div class="img_title">
|
<div class="img_title">
|
||||||
<span>{{ item.title }}</span>
|
<span>{{ item.title }}</span>
|
||||||
@ -240,7 +240,7 @@ const handleEditItem = (index: number, row: any) => {
|
|||||||
title.value = "编辑录像";
|
title.value = "编辑录像";
|
||||||
formData.value = { ...row };
|
formData.value = { ...row };
|
||||||
console.log(formData.value);
|
console.log(formData.value);
|
||||||
fileList.value = reactive([{ name: "文件", url: row.videoUrl }]);
|
fileList.value = row.videoUrl ? [row.videoUrl] : [];
|
||||||
visible.value = true;
|
visible.value = true;
|
||||||
};
|
};
|
||||||
const getVideoData = async () => {
|
const getVideoData = async () => {
|
||||||
@ -253,7 +253,12 @@ const getVideoData = async () => {
|
|||||||
};
|
};
|
||||||
delete requestData.createTime;
|
delete requestData.createTime;
|
||||||
const res = await videoList(requestData);
|
const res = await videoList(requestData);
|
||||||
videoData.value.records = res.result.records;
|
if (res.result && res.result.records.length > 0) {
|
||||||
|
res.result.records.map(item => {
|
||||||
|
item.videoUrl = JSON.parse(item.videoUrl);
|
||||||
|
});
|
||||||
|
videoData.value.records = res.result.records;
|
||||||
|
}
|
||||||
console.log(videoData.value);
|
console.log(videoData.value);
|
||||||
console.log(res);
|
console.log(res);
|
||||||
};
|
};
|
||||||
@ -269,7 +274,7 @@ const handleExceed: UploadProps["onExceed"] = files => {
|
|||||||
|
|
||||||
const uploadSuccess = (response: any) => {
|
const uploadSuccess = (response: any) => {
|
||||||
ElMessage.success("上传成功");
|
ElMessage.success("上传成功");
|
||||||
formData.value.videoUrl = response.result.url;
|
formData.value.videoUrl = { name: response.result.originalFilename, url: response.result.url };
|
||||||
fileList.value = [{ name: response.result.originalFilename, url: response.result.downloadPath }];
|
fileList.value = [{ name: response.result.originalFilename, url: response.result.downloadPath }];
|
||||||
ruleFormRef.value.validateField("videoUrl");
|
ruleFormRef.value.validateField("videoUrl");
|
||||||
};
|
};
|
||||||
@ -295,6 +300,7 @@ const confirm = async (formEl: FormInstance | undefined, form: any) => {
|
|||||||
await formEl.validate(async (valid, fields) => {
|
await formEl.validate(async (valid, fields) => {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
formData.value.engineeringSn = searchSn.value;
|
formData.value.engineeringSn = searchSn.value;
|
||||||
|
form.videoUrl = JSON.stringify(form.videoUrl);
|
||||||
if (formData.value.id) {
|
if (formData.value.id) {
|
||||||
const res = await videoDataEdit(form);
|
const res = await videoDataEdit(form);
|
||||||
ElMessage.success("编辑成功");
|
ElMessage.success("编辑成功");
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user