main
许宏杰 3 weeks ago
parent e247534320
commit d0ff48e23f

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

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

Loading…
Cancel
Save