安全通知,运单登记,客户管理,地点管理功能优化

dev
WenShiJun 2024-03-01 13:53:42 +08:00
parent 2a719a791e
commit 4376e3a942
8 changed files with 159 additions and 163 deletions

View File

@ -64,18 +64,12 @@ export const ENDMENU = [
{ title: "湖北", model: MODEL["4"] },
];
export const CUSTOMERTYPEMENU = [
{ title: "委托方", model: MODEL["1"] },
{ title: "确认方", model: MODEL["2"] },
{ id: "委托方", name: "1" },
{ id: "确认方", name: "2" },
];
export const LOCATIONTYPEMENU = [
{ title: "公司", model: MODEL["1"] },
{ title: "仓库", model: MODEL["2"] },
{ title: "中转站", model: MODEL["3"] },
];
export const LOCATIONNAMEMENU = [
{ title: "中科", model: MODEL["1"] },
{ title: "中软", model: MODEL["2"] },
{ title: "中天", model: MODEL["3"] },
{ id: "起运地", name: "1" },
{ id: "目的地", name: "2" },
];
export const BOROUGHMENU = [
{ title: "湖北", model: MODEL["1"] },

View File

@ -1,7 +1,7 @@
import { post } from "@/request/axios.js";
export const getSecurityLocationList = (params) =>
post("/securitylocation/listForSecurityLocationManagement", params); // 客户管理列表
post("/securitylocation/listForSecurityLocationManagement", params); // 地点管理列表
export const addSafetyLocationView = (params) =>
post("/securitylocation/add", params); // 添加运单登记
post("/securitylocation/add", params); // 添加地段管理

View File

@ -9,21 +9,6 @@
<!-- 承运信息 -->
<el-divider content-position="left">添加</el-divider>
<el-row :gutter="20">
<el-col :span="8">
<el-form-item label="运输企业" prop="TRANSPORTATIONCOMPANY">
<el-select
v-model="data.form.TRANSPORTATIONCOMPANY"
placeholder="请选择运输企业"
>
<el-option
v-for="item in data.unitsList"
:key="item.CORPINFO_ID"
:label="item.CORP_NAME"
:value="item.CORP_NAME"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="客户类型" prop="CUSTOMERTYPE">
<el-select
@ -32,9 +17,9 @@
>
<el-option
v-for="item in CUSTOMERTYPEMENU"
:key="item.title"
:label="item.title"
:value="item.title"
:key="item.id"
:label="item.id"
:value="item.name"
/>
</el-select>
</el-form-item>

View File

@ -10,12 +10,8 @@
<el-col :span="6">
<el-form-item label="客户类型" prop="CUSTOMERTYPE">
<el-select v-model="searchForm.CUSTOMERTYPE">
<el-option
v-for="item in CUSTOMERTYPEMENU"
:key="item.title"
:label="item.title"
:value="item.title"
/>
<el-option label="委托方" :value="1" />
<el-option label="确认方" :value="2" />
</el-select>
</el-form-item>
</el-col>
@ -55,16 +51,22 @@
{{ serialNumber(pagination, $index) }}
</template>
</el-table-column>
<el-table-column prop="CUSTOMERTYPE" label="客户类型" width="200" />
<el-table-column prop="CUSTOMERNAME" label="客户类型" width="200" />
<el-table-column prop="CUSTOMERTYPE" label="客户类型" width="200">
<template #default="{ row }">
{{
row.CUSTOMERTYPE === "1"
? "委托方"
: row.CUSTOMERTYPE === "2"
? "确认方"
: ""
}}
</template>
</el-table-column>
<el-table-column prop="CUSTOMERNAME" label="客户名称" width="200" />
<el-table-column prop="CONTACT" label="联系人" width="200" />
<el-table-column prop="CONTACTPHONE" label="联系电话" width="150" />
<el-table-column prop="CUSTOMERADDRESS" label="客户地址" width="200" />
<el-table-column
prop="TRANSPORTATIONCOMPANY"
label="运输企业"
width="150"
/>
<el-table-column prop="CORP_NAME" label="运输企业" width="150" />
<el-table-column prop="CREATETIME" label="创建时间" width="200" />
<el-table-column label="操作" width="200"> </el-table-column>
<template #button>
@ -95,7 +97,6 @@ import useListData from "@/assets/js/useListData.js";
import { onMounted, reactive, ref } from "vue";
import router from "@/router/index.js";
import { getSecurityCustomerList } from "@/request/customer_management.js";
import { CUSTOMERTYPEMENU } from "@/assets/js/constant.js";
import { getSecurityPerson } from "@/request/waybill_registration.js";
const tableRef = ref(null);

View File

@ -8,21 +8,21 @@
>
<el-divider content-position="left">添加</el-divider>
<el-row :gutter="20">
<el-col :span="8">
<el-form-item label="运输企业" prop="TRANSPORTATIONCOMPANY">
<el-select
v-model="data.form.TRANSPORTATIONCOMPANY"
placeholder="请选择运输企业"
>
<el-option
v-for="item in data.unitsList"
:key="item.CORPINFO_ID"
:label="item.CORP_NAME"
:value="item.CORP_NAME"
/>
</el-select>
</el-form-item>
</el-col>
<!-- <el-col :span="8">-->
<!-- <el-form-item label="运输企业" prop="TRANSPORTATIONCOMPANY">-->
<!-- <el-select-->
<!-- v-model="data.form.TRANSPORTATIONCOMPANY"-->
<!-- placeholder="请选择运输企业"-->
<!-- >-->
<!-- <el-option-->
<!-- v-for="item in data.unitsList"-->
<!-- :key="item.CORPINFO_ID"-->
<!-- :label="item.CORP_NAME"-->
<!-- :value="item.CORP_NAME"-->
<!-- />-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<el-col :span="8">
<el-form-item label="地点类型" prop="LOCATIONTYPE">
<el-select
@ -31,41 +31,28 @@
>
<el-option
v-for="item in LOCATIONTYPEMENU"
:key="item.title"
:label="item.title"
:value="item.title"
: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-select
<el-input
v-model="data.form.LOCATIONNAME"
placeholder="请选择地点名称"
>
<el-option
v-for="item in LOCATIONNAMEMENU"
:key="item.title"
:label="item.title"
:value="item.title"
placeholder="请输入地点名称"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="行政区域" prop="ADMINISTRATIVEREGIONS">
<el-select
<el-form-item label="行政区域" prop="POSSESSION">
<layout-territory
ref="territoryCascaderRef"
v-model="data.form.ADMINISTRATIVEREGIONS"
placeholder="请选择行政区域"
>
<el-option
v-for="item in BOROUGHMENU"
:key="item.title"
:label="item.title"
:value="item.title"
:level="2"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
@ -111,11 +98,8 @@
<script setup>
import { layoutFnGetMEETINGTYPEClassification } from "@/request/safety_production_related.js";
import {
LOCATIONTYPEMENU,
LOCATIONNAMEMENU,
BOROUGHMENU,
} from "@/assets/js/constant";
import { LOCATIONTYPEMENU } from "@/assets/js/constant";
import LayoutTerritory from "@/components/territory/index.vue";
import { getSecurityPerson } from "@/request/waybill_registration.js";
import { reactive, ref, onMounted } from "vue";
import useFormValidate from "@/assets/js/useFormValidate.js";
@ -143,7 +127,6 @@ const rules = {
LONGITUDE: [{ required: true, message: "请选择经度", trigger: "change" }],
LATITUDE: [{ required: true, message: "请选择维度", trigger: "change" }],
};
const relatedClassificationTempList =
await layoutFnGetMEETINGTYPEClassification();
const relatedClassificationList = [];
@ -162,6 +145,7 @@ const data = reactive({
LONGITUDE: "",
LATITUDE: "",
unitsList: [],
territoryCascaderRef: "",
},
});

View File

@ -10,12 +10,8 @@
<el-col :span="6">
<el-form-item label="地点类型" prop="LOCATIONTYPE">
<el-select v-model="searchForm.LOCATIONTYPE">
<el-option
v-for="item in LOCATIONTYPEMENU"
:key="item.title"
:label="item.title"
:value="item.title"
/>
<el-option label="起运地" :value="1" />
<el-option label="目的地" :value="2" />
</el-select>
</el-form-item>
</el-col>
@ -55,15 +51,21 @@
{{ serialNumber(pagination, $index) }}
</template>
</el-table-column>
<el-table-column prop="LOCATIONTYPE" label="地点类型" width="250" />
<el-table-column prop="LOCATIONTYPE" label="地点类型" width="200">
<template #default="{ row }">
{{
row.LOCATIONTYPE === "1"
? "起运地"
: row.LOCATIONTYPE === "2"
? "目的地"
: ""
}}
</template>
</el-table-column>
<el-table-column prop="LOCATIONNAME" label="地点名称" width="300" />
<el-table-column prop="ADDRESSDETAILS" label="地址详情" width="300" />
<el-table-column
prop="TRANSPORTATIONCOMPANY"
label="运输企业"
width="250"
/>
<el-table-column prop="CREATETIME" label="创建时间" width="200" />
<el-table-column prop="CORP_NAME" label="运输企业" width="250" />
<el-table-column prop="CREATETIME" label="创建时间" width="250" />
<el-table-column label="操作" width="200"> </el-table-column>
<template #button>
<el-button
@ -92,7 +94,6 @@ import { serialNumber } from "@/assets/js/utils";
import useListData from "@/assets/js/useListData.js";
import { onMounted, reactive, ref } from "vue";
import router from "@/router/index.js";
import { LOCATIONTYPEMENU } from "@/assets/js/constant.js";
import { getSecurityPerson } from "@/request/waybill_registration.js";
import { getSecurityLocationList } from "@/request/location_management.js";

View File

@ -10,31 +10,21 @@
<el-divider content-position="left">承运信息</el-divider>
<el-row :gutter="20">
<el-col :span="8">
<el-form-item label="运输企业" prop="TRANSPORTATIONCOMPANY">
<el-select
v-model="data.form.TRANSPORTATIONCOMPANY"
placeholder="请选择运输企业"
>
<el-option
v-for="item in data.unitsList"
:key="item.CORPINFO_ID"
:label="item.CORP_NAME"
:value="item.CORP_NAME"
<el-form-item prop="DEPARTMENT_ID" label="部门">
<layout-department
v-model="data.form.DEPARTMENT_ID"
@update:model-value="fnDepartmentChange"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="调度人" prop="DISPATCHER">
<el-select
v-model="data.form.DISPATCHER"
placeholder="请选择调度人"
>
<el-form-item v-if="!LISTMANAGER_ID" label="调度人" prop="USER_IDS">
<el-select v-model="data.form.USER_IDS" multiple>
<el-option
v-for="item in data.unitsList"
:key="item.CORPINFO_ID"
:label="item.PRACTITIONER"
:value="item.PRACTITIONER"
v-for="item in data.userList"
:key="item.USER_ID"
:label="item.NAME"
:value="item.USER_ID"
/>
</el-select>
</el-form-item>
@ -135,10 +125,10 @@
<el-form-item label="委托方" prop="CLIENT">
<el-select v-model="data.form.CLIENT" placeholder="请选择委托方">
<el-option
v-for="item in CLIENTMENU"
:key="item.title"
:label="item.title"
:value="item.title"
v-for="item in data.clientOptions"
:key="item.CONTACT"
:label="item.COMP_NAME"
:value="item.CONTACT"
/>
</el-select>
</el-form-item>
@ -163,10 +153,10 @@
<el-form-item label="确认方" prop="CONFIRMER">
<el-select v-model="data.form.CONFIRMER" placeholder="请选择确认方">
<el-option
v-for="item in CONFIRMMENU"
:key="item.title"
:label="item.title"
:value="item.title"
v-for="item in data.confirmerOptions"
:key="item.CONTACT"
:label="item.COMP_NAME"
:value="item.CONTACT"
/>
</el-select>
</el-form-item>
@ -196,10 +186,10 @@
<el-form-item label="起运地点" prop="ORIGIN">
<el-select v-model="data.form.ORIGIN" placeholder="请选择起运地点">
<el-option
v-for="item in STARTINGMENU"
:key="item.title"
:label="item.title"
:value="item.title"
v-for="item in data.StartOptions"
:key="item.LOCATIONMANAGEMENT_ID"
:label="item.LOCATIONNAME"
:value="item.LOCATIONMANAGEMENT_ID"
/>
</el-select>
</el-form-item>
@ -227,10 +217,10 @@
placeholder="请选择目的地点"
>
<el-option
v-for="item in ENDMENU"
:key="item.title"
:label="item.title"
:value="item.title"
v-for="item in data.EndOptions"
:key="item.LOCATIONMANAGEMENT_ID"
:label="item.LOCATIONNAME"
:value="item.LOCATIONMANAGEMENT_ID"
/>
</el-select>
</el-form-item>
@ -266,18 +256,18 @@ import {
PRACTITIONERMENU,
TRUCKMENU,
PERSONTYPEMENU,
CLIENTMENU,
CONFIRMMENU,
STARTINGMENU,
ENDMENU,
} from "@/assets/js/constant";
import {
addSafetyThingsChecView,
getSecurityPerson,
} from "@/request/waybill_registration.js";
import { onMounted, reactive, ref } from "vue";
import { onMounted, reactive, ref, watchEffect } from "vue";
import useFormValidate from "@/assets/js/useFormValidate.js";
import { ElMessage } from "element-plus";
import LayoutDepartment from "@/components/department/index.vue";
import { getPostListAll, getUserListAll } from "@/request/data_dictionary.js";
import { getSecurityCustomerList } from "@/request/customer_management.js";
import { getSecurityLocationList } from "@/request/location_management.js";
const formRef = ref(null);
const rules = {
@ -323,6 +313,10 @@ const data = reactive({
form: {
TRANSPORTATIONCOMPANY: "",
DISPATCHER: "",
DEPARTMENT_ID: "",
POST_ID: "",
USER_IDS: [],
USER_ID: "",
SHIPPINGDATE: "",
IDENTITYID: "",
TRUCKCART: "",
@ -341,12 +335,49 @@ const data = reactive({
DESTINATION: "",
DESTINATIONADDRESS: "",
ENDDMINISTRATIVEAREA: "",
unitsList: [],
},
clientOptions: [], //
confirmerOptions: [], //
StartOptions: [], //
EndOptions: [], //
});
const fnCustomerType = async () => {
const res = await getSecurityCustomerList();
const varList = res.varList || [];
data.clientOptions = varList.filter((item) => item.CUSTOMERTYPE === "1");
data.confirmerOptions = varList.filter((item) => item.CUSTOMERTYPE === "2");
};
const fnLocation = async () => {
const res = await getSecurityLocationList();
const varList = res.varList || [];
data.StartOptions = varList.filter((item) => item.LOCATIONTYPE === "1");
console.log(data.StartOptions, "1111111111111111111");
data.EndOptions = varList.filter((item) => item.LOCATIONTYPE === "2");
console.log(data.EndOptions, "22222222222222222222");
};
const fnDepartmentChange = async () => {
data.userList = [];
data.form.USER_IDS = [];
data.form.USER_ID = "";
await fnGetUser(data.form.DEPARTMENT_ID);
};
const fnGetPost = async (DEPARTMENT_ID) => {
const resData = await getPostListAll({ DEPARTMENT_ID });
data.postList = resData.postList;
};
const fnGetUser = async (DEPARTMENT_ID) => {
const resData = await getUserListAll({ DEPARTMENT_ID });
data.userList = resData.userList;
};
watchEffect(() => {
if (data.form.DEPARTMENT_ID) fnGetPost(data.form.DEPARTMENT_ID);
});
onMounted(async () => {
await fnPerson();
await fnCustomerType();
await fnLocation();
});
const fnPerson = async () => {
const resData = await getSecurityPerson({});

View File

@ -13,21 +13,21 @@
<el-input v-model="data.form.TITLE" placeholder="请输入内容" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="运输企业" prop="TRANSPORTATIONCOMPANY">
<el-select
v-model="data.form.TRANSPORTATIONCOMPANY"
placeholder="请选择运输企业"
>
<el-option
v-for="item in data.personList"
:key="item.CORPINFO_ID"
:label="item.CORP_NAME"
:value="item.CORP_NAME"
/>
</el-select>
</el-form-item>
</el-col>
<!-- <el-col :span="8">-->
<!-- <el-form-item label="运输企业" prop="TRANSPORTATIONCOMPANY">-->
<!-- <el-select-->
<!-- v-model="data.form.TRANSPORTATIONCOMPANY"-->
<!-- placeholder="请选择运输企业"-->
<!-- >-->
<!-- <el-option-->
<!-- v-for="item in data.personList"-->
<!-- :key="item.CORPINFO_ID"-->
<!-- :label="item.CORP_NAME"-->
<!-- :value="item.CORP_NAME"-->
<!-- />-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<el-col :span="5">
<el-form-item label="通知等级" prop="LEVEL">
<el-select v-model="data.form.LEVEL" placeholder="请选择通知等级">
@ -60,7 +60,7 @@
</el-form-item>
</el-col>
<el-row>
<el-col :span="8">
<el-col :span="12">
<el-form-item label="通知附件" prop="fileList">
<layout-upload
v-model:file-list="data.form.fileList"
@ -70,7 +70,7 @@
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-col :span="12">
<el-form-item label="通知视频" prop="videoList">
<layout-upload
v-model:file-list="data.form.videoList"