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

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"] }, { title: "湖北", model: MODEL["4"] },
]; ];
export const CUSTOMERTYPEMENU = [ export const CUSTOMERTYPEMENU = [
{ title: "委托方", model: MODEL["1"] }, { id: "委托方", name: "1" },
{ title: "确认方", model: MODEL["2"] }, { id: "确认方", name: "2" },
]; ];
export const LOCATIONTYPEMENU = [ export const LOCATIONTYPEMENU = [
{ title: "公司", model: MODEL["1"] }, { id: "起运地", name: "1" },
{ title: "仓库", model: MODEL["2"] }, { id: "目的地", name: "2" },
{ title: "中转站", model: MODEL["3"] },
];
export const LOCATIONNAMEMENU = [
{ title: "中科", model: MODEL["1"] },
{ title: "中软", model: MODEL["2"] },
{ title: "中天", model: MODEL["3"] },
]; ];
export const BOROUGHMENU = [ export const BOROUGHMENU = [
{ title: "湖北", model: MODEL["1"] }, { title: "湖北", model: MODEL["1"] },

View File

@ -1,7 +1,7 @@
import { post } from "@/request/axios.js"; import { post } from "@/request/axios.js";
export const getSecurityLocationList = (params) => export const getSecurityLocationList = (params) =>
post("/securitylocation/listForSecurityLocationManagement", params); // 客户管理列表 post("/securitylocation/listForSecurityLocationManagement", params); // 地点管理列表
export const addSafetyLocationView = (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-divider content-position="left">添加</el-divider>
<el-row :gutter="20"> <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-col :span="8">
<el-form-item label="客户类型" prop="CUSTOMERTYPE"> <el-form-item label="客户类型" prop="CUSTOMERTYPE">
<el-select <el-select
@ -32,9 +17,9 @@
> >
<el-option <el-option
v-for="item in CUSTOMERTYPEMENU" v-for="item in CUSTOMERTYPEMENU"
:key="item.title" :key="item.id"
:label="item.title" :label="item.id"
:value="item.title" :value="item.name"
/> />
</el-select> </el-select>
</el-form-item> </el-form-item>

View File

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

View File

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

View File

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

View File

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

View File

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