main
许宏杰 2 weeks ago
parent 5ecbb7e4ba
commit 62ced250e7

@ -86,3 +86,14 @@ export function feedBackyj(data) {
data data
}); });
} }
//流程信息
export function getbGdlc(query) {
return request({
url: "/bGdlc/selectByGdId",
method: "get",
params: query,
});
}

@ -98,7 +98,7 @@
.el-input__wrapper,.el-select__wrapper{ .el-input__wrapper,.el-select__wrapper{
background: #E5EAF3; // background: #E5EAF3;
input{ input{
font-size: 16px; font-size: 16px;
font-weight: 400; font-weight: 400;

@ -77,7 +77,7 @@ const clickSub = () => {
.operation-panel { .operation-panel {
height: calc(100% - 50px); height: calc(100% - 50px);
padding: 10px; padding: 10px 20px;
overflow-y: auto; overflow-y: auto;
} }
} }

@ -13,6 +13,26 @@
ref="formRef" ref="formRef"
label-width="100px" label-width="100px"
> >
<el-form-item label="参与人数:" prop="pqrs">
<el-input v-model="form.pqrs" placeholder="请输入" clearable>
<template #suffix> </template>
</el-input>
</el-form-item>
<el-form-item label="参与货运车:" prop="hyc">
<el-input v-model="form.hyc" placeholder="请输入" clearable>
<template #suffix> </template>
</el-input>
</el-form-item>
<el-form-item label="参与吊车:" prop="dc">
<el-input v-model="form.dc" placeholder="请输入" clearable>
<template #suffix> </template>
</el-input>
</el-form-item>
<el-form-item label="参与登高车:" prop="dgc">
<el-input v-model="form.dgc" placeholder="请输入" clearable>
<template #suffix> </template>
</el-input>
</el-form-item>
<el-form-item label="处理描述:" prop="clms"> <el-form-item label="处理描述:" prop="clms">
<el-input <el-input
v-model="form.clms" v-model="form.clms"
@ -57,11 +77,19 @@ const emit = defineEmits(["update:modelValue", "confirm"]);
const data = reactive({ const data = reactive({
form: { form: {
clhtp: undefined,//
clms: undefined,//
dc: undefined,//
dgc: undefined,//
hyc: undefined,//
id: null, id: null,
clhtp: undefined, pqrs: undefined,//
clms: undefined,
}, },
rules: { rules: {
pqrs: [{ required: true, message: "请填写参与人数", trigger: "blur" }],
hyc: [{ required: true, message: "请填写货运车数", trigger: "blur" }],
dgc: [{ required: true, message: "请填写登高车数", trigger: "blur" }],
dc: [{ required: true, message: "请填写吊车数", trigger: "blur" }],
clhtp: [{ required: true, message: "请上传处理后图片", trigger: "blur" }], clhtp: [{ required: true, message: "请上传处理后图片", trigger: "blur" }],
clms: [{ required: true, message: "请填写处理描述", trigger: "blur" }], clms: [{ required: true, message: "请填写处理描述", trigger: "blur" }],
}, },
@ -79,8 +107,8 @@ const confirm = () => {
if (valid) { if (valid) {
form.value.id = props.id; form.value.id = props.id;
await feedBackyj(form.value); await feedBackyj(form.value);
proxy.$modal.msgSuccess(`反馈成功`); proxy.$modal.msgSuccess(`工单处理反馈成功`);
emit("confirm"); emit("confirm",true);
handlerClose(); handlerClose();
} }
}); });
@ -98,6 +126,4 @@ watch(visible, (val) => {
}); });
</script> </script>
<style scoped> <style scoped></style>
</style>

@ -228,28 +228,27 @@ const changeType = () => {
* 处理反馈 * 处理反馈
* *
*/ */
const handleFeedBack = (row) => { const handleFeedBack = () => {
feedBackView.value = true; confirm(false);
}; };
/** /**
* 退单 * 退单
* *
*/ */
const handlerRetreat = (row) => { const handlerRetreat = () => {
retreat.value = true; retreat.value = true;
}; };
/** /**
* 提交 * 提交
*/ */
const confirm = () => { const confirm = (isConfirm = true) => {
proxy.$refs["formRef"].validate(async (valid) => { proxy.$refs["formRef"].validate(async (valid) => {
if (valid) { if (valid) {
if (!form.value.lat || !form.value.lon) { if (!form.value.lat || !form.value.lon) {
proxy.$modal.msgWarning("请先落点至地图上!"); proxy.$modal.msgWarning("请先落点至地图上!");
return; return;
} }
if (form.value.id) { if (form.value.id) {
form.value.yxlx = filterArray(form.value.yxlx, "join"); form.value.yxlx = filterArray(form.value.yxlx, "join");
await intruderyj(form.value); await intruderyj(form.value);
@ -259,12 +258,17 @@ const confirm = () => {
await addyj(form.value); await addyj(form.value);
proxy.$modal.msgSuccess("新增成功"); proxy.$modal.msgSuccess("新增成功");
} }
try {
handlerClose(true); if (isConfirm) {
} catch { handlerClose(isConfirm);
form.value.zzjg = filterArray(form.value.zzjg); } else {
feedBackView.value = true;
form.value.yxlx = filterArray(form.value.yxlx); form.value.yxlx = filterArray(form.value.yxlx);
} }
} }
}); });
}; };

@ -7,111 +7,127 @@
<div class="form-value">{{ form.address }}</div> <div class="form-value">{{ form.address }}</div>
</div> </div>
<div class="form-item"> <div class="form-item">
<div class="form-label">资源协调</div> <div class="form-label">工单类型</div>
<div class="form-value "> <div class="form-value value-row">
<dict-tag showValue="解析出错" :options="zyxt" :value="form.zyxt" /> <dict-tag :options="gdlx" :value="form.gdType" />
<div class="value-row" v-if="form.gdType === 0 && form.xdsqm">
<span> - </span>
<dict-tag :options="xdsqm" :value="form.xdsqm" />
</div>
</div> </div>
</div> </div>
<div class="form-item"> <div class="form-item">
<div class="form-label">工单类型</div> <div class="form-label">影响类型</div>
<div class="form-value"> <div class="form-value">
<dict-tag showValue="解析出错" :options="gdlx" :value="form.gdType" /> <dict-tag :options="yxlx" :value="form.yxlx" v-if="form.yxlx" />
<span v-else></span>
</div> </div>
</div> </div>
<div class="form-item" v-if="form.gdType == 0">
<div class="form-label">倒伏类型</div>
<div class="form-value">{{ form.dflx }}</div>
</div>
<div class="form-item"> <div class="form-item">
<div class="form-label">处理班组</div> <div class="form-label">处理班组</div>
<div class="form-value">{{ form.clbz }}</div>
</div>
<div class="form-item">
<div class="form-label">工单等级</div>
<div class="form-value"> <div class="form-value">
<dict-tag showValue="解析出错" :options="gdlevel" :value="form.gdLevel" /> {{ form.parentName }} / {{ form.deptName }}
</div> </div>
</div> </div>
<div class="form-item">
<div class="form-label">工单描述</div>
<div class="form-value">{{ form.gdms || handlerNodata(1) }}</div>
</div>
<div class="form-item"> <div class="form-item">
<div class="form-label">工单图片</div> <div class="form-label">工单图片</div>
<div class="form-value value-row"> <div class="form-value value-row">
<ImagePreview <ImagePreview
v-if="form.gdtp"
width="80px" width="80px"
height="80px" height="80px"
v-for="(item, index) in form.gdtp" v-for="(item, index) in form.gdtp"
:key="index" :key="index"
:src="item" :src="item"
></ImagePreview> ></ImagePreview>
<span v-else></span>
</div> </div>
</div> </div>
<div class="form-item"> <div class="form-item">
<div class="form-label">简要</div> <div class="form-label">参与人数</div>
<div class="form-value"> <div class="form-value">{{ form.pqrs || handlerNodata() }}</div>
<dict-tag showValue="解析出错" :options="gdms" :value="form.gdms" />
</div>
</div> </div>
<div class="form-item"> <div class="form-item">
<div class="form-label">处理方案</div> <div class="form-label">参与车辆</div>
<div class="form-value"> <div class="form-value">
<dict-tag showValue="解析出错" :options="clfa" :value="form.clfa" /> 货运车{{ form.hyc || handlerNodata() }}吊车{{
form.dc || handlerNodata()
}}登高车{{ form.dgc || handlerNodata() }}
</div> </div>
</div> </div>
<div class="form-item"> <div class="form-item">
<div class="form-label">处理描述</div> <div class="form-label">处理描述</div>
<div class="form-value">{{ form.clms }}</div> <div class="form-value">{{ form.clms || handlerNodata(1) }}</div>
</div>
<div class="form-item">
<div class="form-label">派遣人数</div>
<div class="form-value">{{ form.pqrs }} </div>
</div>
<div class="form-item">
<div class="form-label">派遣车辆</div>
<div class="form-value">{{ form.pqcl }} </div>
</div> </div>
<div class="form-item"> <div class="form-item">
<div class="form-label">处理后图片</div> <div class="form-label">处理后图片</div>
<div class="form-value value-row"> <div class="form-value value-row">
<ImagePreview <ImagePreview
v-if="form.clhtp"
width="80px" width="80px"
height="80px" height="80px"
v-for="(item, index) in form.clhtp" v-for="(item, index) in form.clhtp"
:key="index" :key="index"
:src="item" :src="item"
></ImagePreview> ></ImagePreview>
<span v-else></span>
</div> </div>
</div> </div>
</div> </div>
</ParagraphTitle> </ParagraphTitle>
<ParagraphTitle title="工单流程信息"></ParagraphTitle> <ParagraphTitle title="工单流程信息" style="margin-top: 15px">
<el-timeline class="timeline-list">
<el-timeline-item
v-for="(activity, index) in activities"
:key="index"
:timestamp="parseTime(activity.createTime)"
>
{{ activity.type }}
</el-timeline-item>
</el-timeline>
</ParagraphTitle>
</tableOperation> </tableOperation>
</template> </template>
<script setup> <script setup>
import { onMounted } from "vue"; import { onMounted } from "vue";
import { useRoute } from "vue-router"; import { useRoute } from "vue-router";
import { getyjById } from "@/api/emergency"; import { getyjById, getbGdlc } from "@/api/emergency";
const { proxy } = getCurrentInstance(); const { proxy } = getCurrentInstance();
const { gdlx, gdms, gdlevel, clfa, zyxt, dflx, gd_status, reason } = const { gdlx, gdms, xdsqm, clfa, yxlx } = proxy.useDict(
proxy.useDict(
"gdlx", "gdlx",
"gdms", "gdms",
"gdlevel", "xdsqm",
"clfa", "clfa",
"zyxt", "yxlx"
"dflx",
"gd_status",
"reason"
); );
const route = useRoute(); const route = useRoute();
const id = route.query.id; const id = route.query.id;
let form = reactive({}); let form = reactive({});
const activities = ref([]);
onMounted(() => { onMounted(() => {
getInfo(); getInfo();
getflowData();
}); });
const handlerNodata = (type) => {
if (type == 1) {
return "暂无";
} else {
return 0;
}
};
/** /**
* 获取详情 * 获取详情
*/ */
@ -120,10 +136,17 @@ const getInfo = async () => {
// //
res.data.gdtp = filterImages(res.data.gdtp); res.data.gdtp = filterImages(res.data.gdtp);
res.data.clhtp = filterImages(res.data.clhtp); res.data.clhtp = filterImages(res.data.clhtp);
res.data.zyxt = filterImages(res.data.zyxt);
Object.assign(form, res.data); Object.assign(form, res.data);
console.log(form); };
/**
*
* 工单流程信息
*/
const getflowData = async () => {
const res = await getbGdlc({ GdId: id });
activities.value = res.data;
}; };
const filterImages = (imgSting) => { const filterImages = (imgSting) => {
@ -145,7 +168,6 @@ const filterImages = (imgSting) => {
align-items: center; align-items: center;
border-bottom: 1px solid #dcdfe6; border-bottom: 1px solid #dcdfe6;
.form-label { .form-label {
height: 100%; height: 100%;
width: 150px; width: 150px;
font-weight: 15px; font-weight: 15px;
@ -179,4 +201,8 @@ const filterImages = (imgSting) => {
border: 0; border: 0;
} }
} }
.timeline-list {
padding: 0;
}
</style> </style>

Loading…
Cancel
Save