main
许宏杰 3 weeks ago
parent e247534320
commit d0ff48e23f

@ -48,3 +48,23 @@ export function getDetListById(query) {
params: query, params: query,
}); });
} }
//勘察录入
export function intruderyj(data) {
return request({
url: "/bYjgd/kclr",
method: "post",
data
});
}
//退单
export function retreatyj(data) {
return request({
url: "/bYjgd/td",
method: "post",
data
});
}

@ -138,7 +138,7 @@
} }
.dialog-data{ .dialog-data{
padding: 10px 10px 0 10px; padding: 10px 10px 0 10px;
min-height: 200px; min-height: 100px;
max-height: 800px; max-height: 800px;
overflow-y: auto; overflow-y: auto;
} }

@ -0,0 +1,111 @@
<template>
<el-dialog
:title="title"
v-model="visible"
width="25%"
class="x-dialog"
:destroy-on-close="true"
>
<el-form
class="dialog-data"
:model="form"
:rules="rules"
ref="formRef"
label-width="88px"
>
<el-form-item label="退单原因:" prop="reason">
<el-select v-model="form.reason" placeholder="请选择" clearable>
<el-option
v-for="dict in dictReason"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
</el-form>
<template #footer>
<div class="dialog-footer">
<el-button @click="handlerClose()" icon="CloseBold">取消</el-button>
<el-button type="primary" icon="Select" @click="confirm()"
>确定</el-button
>
</div>
</template>
</el-dialog>
</template>
<script setup>
const { proxy } = getCurrentInstance();
import { retreatyj } from "@/api/emergency-rescue";
const props = defineProps({
title: {
type: String,
default: "工单退单",
},
dictReason: {
type: Array,
default: () => [],
},
id: {
type: Number,
},
modelValue: {
type: Boolean,
default: false,
},
});
const emit = defineEmits(["update:modelValue", "confirm"]);
const data = reactive({
form: {
reason: undefined,
},
rules: {
reason: [{ required: true, message: "请选择退单原因", trigger: "blur" }],
},
});
const { form, rules } = toRefs(data);
const visible = ref(props.modelValue);
const handlerClose = () => {
visible.value = false;
};
const confirm = () => {
proxy.$refs["formRef"].validate(async (valid) => {
if (valid) {
await retreatyj({
id: props.id,
reason:form.value.reason,
});
proxy.$modal.msgSuccess("退单成功");
emit("confirm");
handlerClose();
}
});
};
// modelValue
watch(
() => props.modelValue,
(val) => {
visible.value = val;
}
);
watch(visible, (val) => {
emit("update:modelValue", val);
});
</script>
<style scoped>
.dialog-data {
width: 100%;
display: flex;
align-items: center;
& > div {
width: 100%;
}
}
</style>

@ -70,9 +70,11 @@
</el-form-item> </el-form-item>
<el-form-item label="工单等级:" prop="gdLevel"> <el-form-item label="工单等级:" prop="gdLevel">
<el-radio-group v-model="form.gdLevel"> <el-radio-group v-model="form.gdLevel">
<el-radio :value="parseInt(dict.value)" v-for="dict in dict.gdlevel">{{ <el-radio
dict.label :value="parseInt(dict.value)"
}}</el-radio> v-for="dict in dict.gdlevel"
>{{ dict.label }}</el-radio
>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
<el-form-item label="处置方案:" prop="clfa"> <el-form-item label="处置方案:" prop="clfa">
@ -147,6 +149,7 @@
import { import {
addyj, addyj,
updateyj, updateyj,
intruderyj,
getDetListById, getDetListById,
getyjById, getyjById,
} from "@/api/emergency-rescue"; } from "@/api/emergency-rescue";
@ -174,17 +177,18 @@ const props = defineProps({
type: String, type: String,
default: "", default: "",
}, },
dict:{ dict: {
type:Object, type: Object,
default:{ default: {
gdlx:[], gdlx: [],
dflx:[], dflx: [],
gdlevel:[], gdlevel: [],
clfa:[], clfa: [],
zyxt:[], zyxt: [],
gdms:[], gdms: [],
} },
}, },
id: { id: {
type: Number, type: Number,
}, },
@ -227,21 +231,21 @@ const data = reactive({
}, },
rules: { rules: {
address: [{ required: true, message: "请填写工单地址", trigger: "blur" }], address: [{ required: true, message: "请填写工单地址", trigger: "blur" }],
gdType: [{ required: true, message: "请选择工单类型", trigger: "change" }], gdType: [{ required: true, message: "请选择工单类型", trigger: "blur" }],
gdms: [{ required: true, message: "请选择简要描述", trigger: "change" }], gdms: [{ required: true, message: "请选择简要描述", trigger: "blur" }],
zzjg: [{ required: true, message: "请选择选派人员", trigger: "change" }], zzjg: [{ required: true, message: "请选择选派人员", trigger: "blur" }],
dflx: [{ required: true, message: "请选择倒伏类型", trigger: "change" }], dflx: [{ required: true, message: "请选择倒伏类型", trigger: "blur" }],
gdtp: [{ required: true, message: "请上传工单照片", trigger: "change" }], gdtp: [{ required: true, message: "请上传工单照片", trigger: "blur" }],
gdLevel: [{ required: true, message: "请选择工单等级", trigger: "change" }], gdLevel: [{ required: true, message: "请选择工单等级", trigger: "blur" }],
clfa: [{ required: true, message: "请选择处置方案", trigger: "change" }], clfa: [{ required: true, message: "请选择处置方案", trigger: "blur" }],
pqrs: [{ required: true, message: "请填写派遣人数", trigger: "change" }], pqrs: [{ required: true, message: "请填写派遣人数", trigger: "blur" }],
pqcl: [{ required: true, message: "请填写派遣车辆", trigger: "change" }], pqcl: [{ required: true, message: "请填写派遣车辆", trigger: "blur" }],
zyxt: [{ required: true, message: "请选择资源协调", trigger: "change" }], zyxt: [{ required: true, message: "请选择资源协调", trigger: "blur" }],
}, },
}); });
const { queryParams, form, rules } = toRefs(data); const { form, rules } = toRefs(data);
const visible = ref(props.modelValue); const visible = ref(props.modelValue);
// modelValue // modelValue
watch( watch(
@ -268,11 +272,12 @@ const changeType = () => {
const confirm = () => { const confirm = () => {
proxy.$refs["formRef"].validate(async (valid) => { proxy.$refs["formRef"].validate(async (valid) => {
if (valid) { if (valid) {
form.value.zzjg = form.value.zzjg.join(); form.value.zzjg = filterArray( form.value .zzjg,'join');
form.value.dflx = form.value.dflx.join(); form.value .dflx = filterArray( form.value .dflx,'join');
form.value.zyxt = form.value.zyxt.join(); form.value .zyxt = filterArray( form.value .zyxt,'join');
if (form.value.id) { if (form.value.id) {
await updateyj(form.value); form.value.status = props.changeStatus;
await intruderyj(form.value);
proxy.$modal.msgSuccess(`${props.title}成功`); proxy.$modal.msgSuccess(`${props.title}成功`);
} else { } else {
await addyj(form.value); await addyj(form.value);
@ -309,20 +314,28 @@ const getInfo = async (val) => {
} }
}; };
const filterArray = (data) => { const filterArray = ( data,type) => {
if (!type) {
if (data) { if (data) {
return data.split(","); return data.split(",");
} else { } else {
return []; return [];
} }
} else {
if (data) {
return data.join();
} else {
return "";
}
}
}; };
/** /**
* *
*/ */
const handlerClose = () => { const handlerClose = () => {
proxy.resetForm("formRef");
visible.value = false; visible.value = false;
proxy.resetForm("formRef");
gaodePOIList.value = []; gaodePOIList.value = [];
if (mapData) { if (mapData) {
mapData.destroy(); mapData.destroy();

@ -1 +1,2 @@
export { default as operation } from './operation.vue' export { default as operation } from './components/operation.vue'
export { default as chargeBack } from './components/chargeBack.vue'

@ -118,11 +118,18 @@
<template #default="scope"> <template #default="scope">
<div class="table-operation-row"> <div class="table-operation-row">
<section v-show="scope.row.status == 0"> <section v-show="scope.row.status == 0">
<el-button link type="primary" icon="FolderAdd" <el-button
@click="handlerEdit(scope.row)" link
type="primary"
icon="FolderAdd"
@click="handlerEdit(scope.row, 1)"
>勘察录入</el-button >勘察录入</el-button
> >
<el-button link type="primary" icon="FolderRemove" <el-button
link
type="primary"
icon="FolderRemove"
@click="handlerRetreat(scope.row) "
>退单</el-button >退单</el-button
> >
</section> </section>
@ -141,7 +148,6 @@
</section> </section>
<section> <section>
<el-button link type="primary" icon="View">查看</el-button> <el-button link type="primary" icon="View">查看</el-button>
</section> </section>
<!-- v-show="scope.row.status != 0 && scope.row.status != 3" --> <!-- v-show="scope.row.status != 0 && scope.row.status != 3" -->
<el-button <el-button
@ -149,7 +155,6 @@
type="primary" type="primary"
icon="Delete" icon="Delete"
@click="handlerDel(scope.row.id)" @click="handlerDel(scope.row.id)"
>删除</el-button >删除</el-button
> >
</div> </div>
@ -168,32 +173,49 @@
</template> </template>
</tablePage> </tablePage>
<!-- 工单 --> <!-- 工单 -->
<operation :dict="{ <operation
gdlx,dflx,gdlevel,clfa,zyxt,gdms :dict="{
}" v-model="open" :id="workId" :title="title" @confirm="getList()"></operation> gdlx,
dflx,
gdlevel,
clfa,
zyxt,
gdms,
}"
v-model="open"
:id="workId"
:title="title"
@confirm="getList()"
></operation>
<!-- 退单 -->
<chargeBack v-model="retreat" :id="workId" :dictReason="reason" @confirm="getList()"></chargeBack>
</section> </section>
</template> </template>
<script setup> <script setup>
import { operation } from "./index"; import { operation, chargeBack } from "./index";
import { getyjList, delyj } from "@/api/emergency-rescue"; import { getyjList, delyj } from "@/api/emergency-rescue";
import { ref } from "vue"; import { ref } from "vue";
import { onMounted } from "vue"; import { onMounted } from "vue";
const { proxy } = getCurrentInstance(); const { proxy } = getCurrentInstance();
const { gdlx, gdms, gdlevel, clfa, zyxt, dflx,gd_status } = proxy.useDict( const { gdlx, gdms, gdlevel, clfa, zyxt, dflx, gd_status, reason } =
proxy.useDict(
"gdlx", "gdlx",
"gdms", "gdms",
"gdlevel", "gdlevel",
"clfa", "clfa",
"zyxt", "zyxt",
"dflx", "dflx",
"gd_status" "gd_status",
); "reason"
);
const workId = ref(null) const workId = ref(null);
const loading = ref(false); const loading = ref(false);
const list = ref([]); const list = ref([]);
const open = ref(false); const open = ref(false);
const retreat = ref(false);
const title = ref(""); const title = ref("");
const total = ref(0); const total = ref(0);
const router = useRouter(); const router = useRouter();
@ -232,6 +254,7 @@ const getList = async () => {
*/ */
const handleQuery = () => { const handleQuery = () => {
queryParams.value.pageNum = 1; queryParams.value.pageNum = 1;
}; };
/** /**
@ -242,23 +265,31 @@ const resetQuery = () => {
handleQuery(); handleQuery();
}; };
/**
* 退单
* @param id
*/
const handlerRetreat =(row)=>{
workId.value = row.id;
retreat.value = true
}
/** /**
* *
* 勘察录入 * 勘察录入
* @param row * @param row
*/ */
const handlerEdit=(row)=>{ const handlerEdit = (row, status) => {
workId.value = row.id workId.value = row.id;
open.value = true; open.value = true;
title.value = "勘察录入"; title.value = "勘察录入";
};
}
/** /**
* 新增 * 新增
*/ */
const handlerAdd = () => { const handlerAdd = () => {
workId.value = null workId.value = null;
open.value = true; open.value = true;
title.value = "抢险工单录入"; title.value = "抢险工单录入";
}; };

Loading…
Cancel
Save