BUG 优化

dev
xiepeng 2024-04-12 18:04:26 +08:00
parent 9eab7f33e8
commit 57487151d6
9 changed files with 435 additions and 13 deletions

View File

@ -11,3 +11,9 @@ export const deleteSafetyCustomerView = (params) =>
export const getTrafficCustomerSelectList = (params) =>
post("/securitycustomer/getTrafficCustomerSelectList", params); // 客户管理列表list
export const getTrafficCustomerSelectView = (params) =>
post("/securitycustomer/getTrafficCustomerSelectView", params); // 获取客户管理的数据回显
export const editSafetyCustomerInfo = (params) =>
upload("/securitycustomer/edit", params); // 添加

View File

@ -11,3 +11,9 @@ export const deleteSafetyLocationView = (params) =>
export const getTrafficLocationSelectList = (params) =>
post("/securitylocation/getTrafficLocationSelectList", params); // 地点管理列表
export const getSecurityLocationView = (params) =>
post("/securitylocation/goEdit", params); // 根据Id获取地点管理信息
export const editSafetyLocationInfo = (params) =>
post("/securitylocation/edit", params); // 添加地段管理

View File

@ -0,0 +1,206 @@
<template>
<layout-card>
<el-form
ref="formRef"
:model="data.form"
:rules="rules"
label-width="175px"
>
<!-- 承运信息 -->
<el-divider content-position="left">修改</el-divider>
<el-row :gutter="20">
<el-col :span="8">
<el-form-item label="客户类型" prop="CUSTOMERTYPE">
<el-select
v-model="data.form.CUSTOMERTYPE"
placeholder="请选择客户类型"
clearable
>
<el-option
v-for="item in CUSTOMERTYPEMENU"
:key="item.id"
:label="item.id"
:value="item.name"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="客户名称" prop="CUSTOMERNAME">
<el-input
v-model="data.form.CUSTOMERNAME"
placeholder="请输入客户名称"
clearable
/>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="23">
<el-form-item class="end">
<el-button type="primary" @click="addContact"></el-button>
</el-form-item>
</el-col>
</el-row>
<div v-for="(contact, index) in data.form.contacts" :key="index">
<el-row :gutter="24">
<el-col :span="7">
<el-form-item
:label="'联系人' + (index + 1)"
:prop="`contacts.${index}.CONTACT`"
>
<el-input
v-model="contact.CONTACT"
placeholder="请输入联系人"
clearable
/>
</el-form-item>
</el-col>
<el-col :span="7">
<el-form-item
:label="'联系电话' + (index + 1)"
:prop="`contacts.${index}.CONTACTPHONE`"
>
<el-input
v-model="contact.CONTACTPHONE"
placeholder="请输入联系电话"
clearable
/>
</el-form-item>
</el-col>
<el-col :span="7">
<el-form-item
:label="'客户地址' + (index + 1)"
:prop="`contacts.${index}.CUSTOMERADDRESS`"
>
<el-input
v-model="contact.CUSTOMERADDRESS"
placeholder="请输入客户地址"
clearable
/>
</el-form-item>
</el-col>
<el-col :span="2">
<el-button
v-if="index !== 0"
type="danger"
@click="removeContact(index)"
>
删除
<!-- 添加的删除文字 -->
</el-button>
</el-col>
</el-row>
</div>
</el-form>
<div class="tc mt-10">
<el-button type="primary" @click="fnSubmit"></el-button>
</div>
</layout-card>
</template>
<script setup>
import { CUSTOMERTYPEMENU } from "@/assets/js/constant";
import { reactive, ref } from "vue";
import useFormValidate from "@/assets/js/useFormValidate.js";
import { ElMessage } from "element-plus";
import { getTrafficCustomerSelectView, editSafetyCustomerInfo } from "@/request/customer_management.js";
import { useRoute, useRouter } from "vue-router";
const route = useRoute();
const CUSTOMERMANAGEMENT_ID = route.query.CUSTOMERMANAGEMENT_ID;
const formRef = ref(null);
const rules = {
TRANSPORTATIONCOMPANY: [
{ required: true, message: "请输入运输企业名称", trigger: "blur" },
],
CUSTOMERTYPE: [
{ required: true, message: "请输入客户类型", trigger: "blur" },
],
CUSTOMERNAME: [
{ required: true, message: "请选择客户名称", trigger: "change" },
],
};
const data = reactive({
form: {
TRANSPORTATIONCOMPANY: "",
CUSTOMERTYPE: "",
CUSTOMERNAME: "",
contacts: [
{
CONTACT: "",
CONTACTPHONE: "",
CUSTOMERADDRESS: "",
},
],
},
});
const router = useRouter();
const fnGetData = async () => {
if (!CUSTOMERMANAGEMENT_ID) return;
const resData = await getTrafficCustomerSelectView({ CUSTOMERMANAGEMENT_ID });
data.form = resData.pd
data.form.contacts = resData.pd.customercontactList
};
fnGetData();
const addContact = () => {
data.form.contacts.push({
CONTACT: "",
CONTACTPHONE: "",
CUSTOMERADDRESS: "",
});
};
//
const removeContact = (index) => {
if (index > 0) {
//
data.form.contacts.splice(index, 1);
}
};
const fnSubmit = async () => {
await useFormValidate(formRef);
const formData = new FormData();
formData.append("TRANSPORTATIONCOMPANY", data.form.TRANSPORTATIONCOMPANY);
formData.append("CUSTOMERTYPE", data.form.CUSTOMERTYPE);
formData.append("CUSTOMERNAME", data.form.CUSTOMERNAME);
// contactsJSON
const contactsJson = JSON.stringify(data.form.contacts);
// 使JSONcontacts
formData.append("contacts", contactsJson);
formData.append("CUSTOMERMANAGEMENT_ID",CUSTOMERMANAGEMENT_ID);
await editSafetyCustomerInfo(formData);
ElMessage.success("修改成功");
router.back();
//
data.form.TRANSPORTATIONCOMPANY = "";
data.form.CUSTOMERTYPE = "";
data.form.CUSTOMERNAME = "";
data.form.contacts = [
{
CONTACT: "",
CONTACTPHONE: "",
CUSTOMERADDRESS: "",
},
];
};
</script>
<style scoped lang="scss">
.flexBox {
display: flex;
align-items: flex-end;
.addBtn {
margin-left: 12px;
}
}
</style>

View File

@ -58,6 +58,19 @@
<el-table-column prop="CREATETIME" label="创建时间" width="200" />
<el-table-column label="操作" width="130">
<template #default="{ row }">
<el-button
type="primary"
text
link
@click="
router.push({
path: '/electronic_waybill_management/customer_management/edit',
query: { CUSTOMERMANAGEMENT_ID: row.CUSTOMERMANAGEMENT_ID },
})
"
>
修改
</el-button>
<el-button
text
link

View File

@ -34,10 +34,10 @@
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="行政区域" prop="ADMINISTRATIVEREGIONS">
<el-form-item label="行政区域" prop="ADMINISTRATIVEREGIONS_ID">
<layout-territory
ref="territoryCascaderRef"
v-model="data.form.ADMINISTRATIVEREGIONS"
v-model="data.form.ADMINISTRATIVEREGIONS_ID"
:level="2"
clearable
/>
@ -129,6 +129,7 @@ const data = reactive({
LONGITUDE: "",
LATITUDE: "",
territoryCascaderRef: "",
ADMINISTRATIVEREGIONS_ID: [],
},
});
const territoryCascaderRef = ref(null);
@ -138,9 +139,10 @@ const fnSubmit = async () => {
await useFormValidate(formRef);
data.form.ADMINISTRATIVEREGIONS =
territoryCascaderRef.value.getCheckedNodes();
data.form.ADMINISTRATIVEREGIONS_ID = JSON.stringify(data.form.ADMINISTRATIVEREGIONS_ID);
await addSafetyLocationView(data.form);
ElMessage.success("添加成功");
router.push("/electronic_waybill_management/location_managemen");
router.back();
Object.keys(data.form).forEach((key) => {
if (Array.isArray(data.form[key])) {
data.form[key] = [];
@ -148,7 +150,7 @@ const fnSubmit = async () => {
data.form[key] = "";
}
});
};
}
</script>
<style scoped lang="scss">

View File

@ -0,0 +1,184 @@
<template>
<layout-card>
<el-form
ref="formRef"
:model="data.form"
:rules="rules"
label-width="175px"
>
<el-divider content-position="left">添加</el-divider>
<el-row :gutter="20">
<el-col :span="8">
<el-form-item label="地点类型" prop="LOCATIONTYPE">
<el-select
v-model="data.form.LOCATIONTYPE"
placeholder="请选择地点类型"
clearable
>
<el-option
v-for="item in LOCATIONTYPEMENU"
:key="item.id"
:label="item.id"
:value="item.name"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="地点名称" prop="LOCATIONNAME">
<el-input
v-model="data.form.LOCATIONNAME"
placeholder="请输入地点名称"
clearable
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="行政区域" prop="ADMINISTRATIVEREGIONS_ARR">
<layout-territory
ref="territoryCascaderRef"
v-model="data.form.ADMINISTRATIVEREGIONS_ARR"
:level="2"
clearable
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="地址详情" prop="ADDRESSDETAILS">
<el-input
v-model="data.form.ADDRESSDETAILS"
placeholder="请输入地址详情"
clearable
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="经度/纬度" prop="LONGITUDE">
<div style="flex: 1; display: flex">
<el-input
:model-value="
(data.form.LONGITUDE ?? '') + '-' + (data.form.LATITUDE ?? '')
"
disabled
style="flex: 1"
/>
<el-button
type="primary"
class="ml-10"
@click="data.mapDialogVisible = true"
>
地图定位
</el-button>
</div>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div class="tc mt-10">
<el-button type="primary" @click="fnSubmit"></el-button>
</div>
</layout-card>
<map-dialog
v-model:visible="data.mapDialogVisible"
v-model:latitude="data.form.LATITUDE"
v-model:longitude="data.form.LONGITUDE"
/>
</template>
<script setup>
import { LOCATIONTYPEMENU } from "@/assets/js/constant";
import LayoutTerritory from "@/components/territory/index.vue";
import { reactive, ref } from "vue";
import useFormValidate from "@/assets/js/useFormValidate.js";
import { ElMessage } from "element-plus";
import {
getSecurityLocationView,
editSafetyLocationInfo,
} from "@/request/location_management.js";
import MapDialog from "@/views/enterprise_management/information/components/map.vue";
import { useRoute, useRouter } from "vue-router";
const formRef = ref(null);
const route = useRoute();
const LOCATIONMANAGEMENT_ID = route.query.LOCATIONMANAGEMENT_ID;
const rules = {
CORPINFO_ID: [
{ required: true, message: "请输入运输企业名称", trigger: "blur" },
],
LOCATIONTYPE: [
{ required: true, message: "请输入地点类型", trigger: "blur" },
],
LOCATIONNAME: [
{ required: true, message: "请选择地点名称", trigger: "change" },
],
ADMINISTRATIVEREGIONS_ARR: [
{ required: true, message: "请选择行政区域", trigger: "change" },
],
ADDRESSDETAILS: [
{ required: true, message: "请输入行政区域", trigger: "change" },
],
LONGITUDE: [{ required: true, message: "请选择经度", trigger: "change" }],
LATITUDE: [{ required: true, message: "请选择维度", trigger: "change" }],
};
const fnGetData = async () => {
if (!LOCATIONMANAGEMENT_ID) return;
const resData = await getSecurityLocationView({ LOCATIONMANAGEMENT_ID });
data.form = resData.pd;
data.form.ADMINISTRATIVEREGIONS_ARR =
data.form.ADMINISTRATIVEREGIONS_ID.split(",");
console.log(data.form);
};
fnGetData();
const data = reactive({
mapDialogVisible: false,
form: {
CORPINFO_ID: "",
LOCATIONTYPE: "",
LOCATIONNAME: "",
ADDRESSDETAILS: "",
LONGITUDE: "",
LATITUDE: "",
territoryCascaderRef: "",
ADMINISTRATIVEREGIONS_ARR: [],
ADMINISTRATIVEREGIONS_ID: "",
ADMINISTRATIVEREGIONS: "",
},
});
const territoryCascaderRef = ref(null);
const router = useRouter();
const fnSubmit = async () => {
await useFormValidate(formRef);
console.log(data.form.ADMINISTRATIVEREGIONS_ARR);
data.form.ADMINISTRATIVEREGIONS_ID =
data.form.ADMINISTRATIVEREGIONS_ARR.join(",");
data.form.ADMINISTRATIVEREGIONS =
territoryCascaderRef.value.getCheckedNodes();
await editSafetyLocationInfo(data.form);
ElMessage.success("修改成功");
router.back();
Object.keys(data.form).forEach((key) => {
if (Array.isArray(data.form[key])) {
data.form[key] = [];
} else {
data.form[key] = "";
}
});
};
</script>
<style scoped lang="scss">
.flexBox {
display: flex;
align-items: flex-end;
.addBtn {
margin-left: 12px;
}
}
</style>

View File

@ -56,6 +56,19 @@
<el-table-column prop="CREATETIME" label="创建时间" width="250" />
<el-table-column label="操作" width="150">
<template #default="{ row }">
<el-button
type="primary"
text
link
@click="
router.push({
path: '/electronic_waybill_management/location_managemen/edit',
query: { LOCATIONMANAGEMENT_ID: row.LOCATIONMANAGEMENT_ID },
})
"
>
修改
</el-button>
<el-button
text
link

View File

@ -416,8 +416,6 @@ const fnGetData = async () => {
const resData = await getSafetyWaybillreInfo({ WAYBILLREGISTRATION_ID });
data.form = resData.pd;
data.form.DISPATCHER = data.form.DISPATCHER.split(",");
data.form.CLIENTCONTACTPERSON = data.form.ENTRUST_PERSON; //
data.form.CONFIRMINGPERSON = data.form.CONFIRM_PERSON; //
data.form.SHIPPINGADDRESS = data.form.SHIPPING_ADDR; //
data.form.DESTINATIONADDRESS = data.form.DESTINATION_ADDR; //
data.userList = data.form.names; //
@ -664,13 +662,6 @@ const fnSubmit = async () => {
await editSafetyWaybillreInfo(formData);
ElMessage.success("修改成功");
await router.push("/electronic_waybill_management/waybill_registration");
Object.keys(data.form).forEach((key) => {
if (Array.isArray(data.form[key])) {
data.form[key] = [];
} else {
data.form[key] = "";
}
});
};
</script>

View File

@ -614,6 +614,7 @@ const data = reactive({
const fnGetData = async () => {
const resData = await getEnterpriseInfo();
data.form = resData.pd;
console.log(data.form);
data.form.bus_images = addingPrefixToFile(resData.busImgs);
data.form.official_seal_file = [
{