|
@@ -2,97 +2,7 @@
|
|
|
<div class="content-box">
|
|
<div class="content-box">
|
|
|
<div class="left">
|
|
<div class="left">
|
|
|
<!-- <el-icon :size="23" class="camera"><UserFilled /></el-icon> -->
|
|
<!-- <el-icon :size="23" class="camera"><UserFilled /></el-icon> -->
|
|
|
- <span class="cameratxt">报表统计</span>
|
|
|
|
|
- </div>
|
|
|
|
|
- <div class="middle" v-if="footerMenuIndex == 1">
|
|
|
|
|
- <div class="filter">
|
|
|
|
|
- <div class="condition">
|
|
|
|
|
- <span>车牌号 : </span>
|
|
|
|
|
- <el-input
|
|
|
|
|
- clearable
|
|
|
|
|
- v-model="searchInput.car_number"
|
|
|
|
|
- class="w-50 m-2"
|
|
|
|
|
- placeholder="请输入车牌号"
|
|
|
|
|
- style="width: 150px"
|
|
|
|
|
- />
|
|
|
|
|
- </div>
|
|
|
|
|
- <div class="condition">
|
|
|
|
|
- <span>汇总日期 : </span>
|
|
|
|
|
- <!-- <el-date-picker
|
|
|
|
|
- v-model="searchData.input5"
|
|
|
|
|
- type="datetimerange"
|
|
|
|
|
- start-placeholder="开始日期"
|
|
|
|
|
- end-placeholder="结束日期"
|
|
|
|
|
- format="YYYY-MM-DD HH:mm:ss"
|
|
|
|
|
- value-format="YYYY-MM-DD HH:mm:ss"
|
|
|
|
|
- /> -->
|
|
|
|
|
- <el-date-picker
|
|
|
|
|
- v-model="searchInput.yy_date"
|
|
|
|
|
- type="date"
|
|
|
|
|
- placeholder="请选择日期"
|
|
|
|
|
- format="YYYY-MM-DD"
|
|
|
|
|
- value-format="YYYY-MM-DD"
|
|
|
|
|
- />
|
|
|
|
|
- </div>
|
|
|
|
|
- <div class="condition">
|
|
|
|
|
- <span>状态 : </span>
|
|
|
|
|
- <el-select
|
|
|
|
|
- v-model="searchInput.state"
|
|
|
|
|
- class="m-2"
|
|
|
|
|
- placeholder="请选择职位"
|
|
|
|
|
- >
|
|
|
|
|
- <el-option label="预约成功" value="1" />
|
|
|
|
|
- <el-option label="已乘车" value="2" />
|
|
|
|
|
- <el-option label="候补中" value="3" />
|
|
|
|
|
- <el-option label="已取消" value="4" />
|
|
|
|
|
- </el-select>
|
|
|
|
|
- </div>
|
|
|
|
|
-
|
|
|
|
|
- <el-button
|
|
|
|
|
- style="margin-left: 20px"
|
|
|
|
|
- color="rgba(61, 81, 232, 1)"
|
|
|
|
|
- type="primary"
|
|
|
|
|
- class="search"
|
|
|
|
|
- @click="search"
|
|
|
|
|
- ><el-icon><Search /></el-icon><span>搜索</span></el-button
|
|
|
|
|
- >
|
|
|
|
|
- <el-button
|
|
|
|
|
- style="margin-left: 20px"
|
|
|
|
|
- color="rgba(61, 81, 232, 1)"
|
|
|
|
|
- type="primary"
|
|
|
|
|
- class="search"
|
|
|
|
|
- @click="resetInput"
|
|
|
|
|
- ><el-icon><Search /></el-icon><span>重置</span></el-button
|
|
|
|
|
- >
|
|
|
|
|
- </div>
|
|
|
|
|
- <el-button
|
|
|
|
|
- color="rgba(61, 81, 232, 1)"
|
|
|
|
|
- class="import"
|
|
|
|
|
- type="primary"
|
|
|
|
|
- @click="downLoad"
|
|
|
|
|
- ><img
|
|
|
|
|
- src="@/assets/import.png"
|
|
|
|
|
- style="width: 14px; height: 14px; margin-right: 4px"
|
|
|
|
|
- alt=""
|
|
|
|
|
- />
|
|
|
|
|
- <span>导出表单</span></el-button
|
|
|
|
|
- >
|
|
|
|
|
- </div>
|
|
|
|
|
- <div class="footerMenu">
|
|
|
|
|
- <div
|
|
|
|
|
- class="menuList"
|
|
|
|
|
- @click="collectMenu"
|
|
|
|
|
- :class="footerMenuIndex == 0 ? 'menuListActive' : ''"
|
|
|
|
|
- >
|
|
|
|
|
- 汇总
|
|
|
|
|
- </div>
|
|
|
|
|
- <div
|
|
|
|
|
- class="menuList"
|
|
|
|
|
- @click="detailMenu"
|
|
|
|
|
- :class="footerMenuIndex == 1 ? 'menuListActive' : ''"
|
|
|
|
|
- >
|
|
|
|
|
- 明细列表
|
|
|
|
|
- </div>
|
|
|
|
|
|
|
+ <span class="cameratxt">车辆调度</span>
|
|
|
</div>
|
|
</div>
|
|
|
<!-- 候补派车 -->
|
|
<!-- 候补派车 -->
|
|
|
<el-dialog
|
|
<el-dialog
|
|
@@ -115,6 +25,18 @@
|
|
|
label-position="left"
|
|
label-position="left"
|
|
|
status-icon
|
|
status-icon
|
|
|
>
|
|
>
|
|
|
|
|
+ <el-form-item
|
|
|
|
|
+ label="发车时间 :"
|
|
|
|
|
+ prop="ci_time"
|
|
|
|
|
+ v-if="ruleForm.state != 3"
|
|
|
|
|
+ >
|
|
|
|
|
+ <el-time-picker
|
|
|
|
|
+ v-model="ruleForm.ci_time"
|
|
|
|
|
+ placeholder="请选择时间"
|
|
|
|
|
+ format="HH:mm"
|
|
|
|
|
+ value-format="HH:mm"
|
|
|
|
|
+ />
|
|
|
|
|
+ </el-form-item>
|
|
|
<el-form-item label="车牌 :" prop="busname">
|
|
<el-form-item label="车牌 :" prop="busname">
|
|
|
<el-select-v2
|
|
<el-select-v2
|
|
|
validate-event
|
|
validate-event
|
|
@@ -178,30 +100,29 @@
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
</el-form>
|
|
</el-form>
|
|
|
</el-dialog>
|
|
</el-dialog>
|
|
|
- <div class="MingXi" v-if="footerMenuIndex == 0">
|
|
|
|
|
- <div class="footer mingxi">
|
|
|
|
|
|
|
+ <div class="MingXi" style="height: 652px; margin: 10px 0 20px 0">
|
|
|
|
|
+ <div class="footer">
|
|
|
<el-table
|
|
<el-table
|
|
|
:row-class-name="tableRowClassName"
|
|
:row-class-name="tableRowClassName"
|
|
|
:data="tableData.list"
|
|
:data="tableData.list"
|
|
|
- style="width: 100%; height: 550px"
|
|
|
|
|
|
|
+ style="width: 100%; height: 630px"
|
|
|
:header-cell-style="{
|
|
:header-cell-style="{
|
|
|
background: 'rgba(240, 243, 247, 1)',
|
|
background: 'rgba(240, 243, 247, 1)',
|
|
|
border: 0,
|
|
border: 0,
|
|
|
}"
|
|
}"
|
|
|
@selection-change="handleSelectionChange"
|
|
@selection-change="handleSelectionChange"
|
|
|
>
|
|
>
|
|
|
- <!-- <el-table-column align="center" type="selection" width="80" /> -->
|
|
|
|
|
<el-table-column
|
|
<el-table-column
|
|
|
align="center"
|
|
align="center"
|
|
|
- width="250"
|
|
|
|
|
- prop="yy_date"
|
|
|
|
|
- label="创建时间"
|
|
|
|
|
|
|
+ width="150"
|
|
|
|
|
+ prop="s_date"
|
|
|
|
|
+ label="发车日期"
|
|
|
/>
|
|
/>
|
|
|
<el-table-column
|
|
<el-table-column
|
|
|
align="center"
|
|
align="center"
|
|
|
|
|
+ width="150"
|
|
|
prop="ci_time"
|
|
prop="ci_time"
|
|
|
label="发车时间"
|
|
label="发车时间"
|
|
|
- width="100"
|
|
|
|
|
/>
|
|
/>
|
|
|
<el-table-column
|
|
<el-table-column
|
|
|
align="center"
|
|
align="center"
|
|
@@ -211,167 +132,67 @@
|
|
|
/>
|
|
/>
|
|
|
<el-table-column
|
|
<el-table-column
|
|
|
align="center"
|
|
align="center"
|
|
|
- prop="by_num"
|
|
|
|
|
- width="120"
|
|
|
|
|
|
|
+ width="100"
|
|
|
|
|
+ prop="yy_num"
|
|
|
label="乘车人数"
|
|
label="乘车人数"
|
|
|
/>
|
|
/>
|
|
|
- <el-table-column align="center" prop="car_number" label="车牌号" />
|
|
|
|
|
- <el-table-column align="center" prop="contain" label="容量" />
|
|
|
|
|
- <el-table-column align="center" label="状态">
|
|
|
|
|
- <template #default="scope">
|
|
|
|
|
- <div
|
|
|
|
|
- v-if="scope.row.state == '已乘车'"
|
|
|
|
|
- style="color: rgba(67, 207, 124, 1)"
|
|
|
|
|
- >
|
|
|
|
|
- {{ scope.row.state }}
|
|
|
|
|
- </div>
|
|
|
|
|
- <div
|
|
|
|
|
- v-if="scope.row.state == '候补'"
|
|
|
|
|
- style="color: rgba(212, 48, 48, 1)"
|
|
|
|
|
- >
|
|
|
|
|
- {{ scope.row.state }}
|
|
|
|
|
- </div>
|
|
|
|
|
- <div
|
|
|
|
|
- v-if="scope.row.state == '已分配'"
|
|
|
|
|
- style="color: rgba(61, 81, 232, 1)"
|
|
|
|
|
- >
|
|
|
|
|
- {{ scope.row.state }}
|
|
|
|
|
- </div>
|
|
|
|
|
- <div
|
|
|
|
|
- v-if="scope.row.state == '已通行'"
|
|
|
|
|
- style="color: rgba(77, 77, 77, 1)"
|
|
|
|
|
- >
|
|
|
|
|
- {{ scope.row.state }}
|
|
|
|
|
- </div>
|
|
|
|
|
- </template>
|
|
|
|
|
- </el-table-column>
|
|
|
|
|
- <el-table-column align="center" label="操作">
|
|
|
|
|
- <template #default="scope">
|
|
|
|
|
- <el-button link type="primary" @click="info(scope.row)"
|
|
|
|
|
- ><div class="look">详情</div></el-button
|
|
|
|
|
- >
|
|
|
|
|
- <el-button
|
|
|
|
|
- v-if="scope.row.state == '候补'"
|
|
|
|
|
- link
|
|
|
|
|
- type="primary"
|
|
|
|
|
- @click="sendBus(scope.row)"
|
|
|
|
|
- ><div class="look">派车</div></el-button
|
|
|
|
|
- >
|
|
|
|
|
- <!-- <el-button
|
|
|
|
|
- v-if="scope.row.state == '已乘车'"
|
|
|
|
|
- link
|
|
|
|
|
- type="primary"
|
|
|
|
|
- @click="sendBus(scope.row)"
|
|
|
|
|
- ><div class="look">派车</div></el-button
|
|
|
|
|
- > -->
|
|
|
|
|
- </template>
|
|
|
|
|
- </el-table-column>
|
|
|
|
|
- <!-- <template #empty>
|
|
|
|
|
- <div
|
|
|
|
|
- style="width: 100%; height:520px;display: flex; flex-direction: column; justify-
|
|
|
|
|
- content: center;align-items: center"
|
|
|
|
|
- >
|
|
|
|
|
- <img
|
|
|
|
|
- style="width: 100%; height: 400px"
|
|
|
|
|
- src="@/assets/nodata.png"
|
|
|
|
|
- alt=""
|
|
|
|
|
- />
|
|
|
|
|
- <div>暂无数据</div>
|
|
|
|
|
- </div>
|
|
|
|
|
- </template> -->
|
|
|
|
|
- </el-table>
|
|
|
|
|
- </div>
|
|
|
|
|
- <el-pagination
|
|
|
|
|
- background
|
|
|
|
|
- v-model:page-size="pageSize"
|
|
|
|
|
- v-model:current-page="currentPage"
|
|
|
|
|
- layout="total, prev, pager, next, jumper"
|
|
|
|
|
- :total="total"
|
|
|
|
|
- @current-change="handleCurrentChange"
|
|
|
|
|
- />
|
|
|
|
|
- </div>
|
|
|
|
|
- <div class="MingXi" v-else-if="footerMenuIndex == 1">
|
|
|
|
|
- <div class="footer">
|
|
|
|
|
- <el-table
|
|
|
|
|
- :row-class-name="tableRowClassName"
|
|
|
|
|
- :data="tableData.list2"
|
|
|
|
|
- style="width: 100%; height: 550px"
|
|
|
|
|
- :header-cell-style="{
|
|
|
|
|
- background: 'rgba(240, 243, 247, 1)',
|
|
|
|
|
- border: 0,
|
|
|
|
|
- }"
|
|
|
|
|
- @selection-change="handleSelectionChange"
|
|
|
|
|
- >
|
|
|
|
|
<el-table-column
|
|
<el-table-column
|
|
|
align="center"
|
|
align="center"
|
|
|
- width="250"
|
|
|
|
|
- prop="yy_time"
|
|
|
|
|
- label="下单时间"
|
|
|
|
|
- />
|
|
|
|
|
- <el-table-column align="center" prop="ci_time" label="发车时间" />
|
|
|
|
|
- <el-table-column align="center" prop="user_name" label="预约人" />
|
|
|
|
|
- <el-table-column align="center" prop="user_zz" label="身份" />
|
|
|
|
|
- <el-table-column
|
|
|
|
|
- align="center"
|
|
|
|
|
- width="150"
|
|
|
|
|
- prop="user_phone"
|
|
|
|
|
- label="手机号码"
|
|
|
|
|
- />
|
|
|
|
|
-
|
|
|
|
|
- <el-table-column
|
|
|
|
|
- width="150"
|
|
|
|
|
- align="center"
|
|
|
|
|
|
|
+ width="120"
|
|
|
prop="car_number"
|
|
prop="car_number"
|
|
|
label="车牌号"
|
|
label="车牌号"
|
|
|
/>
|
|
/>
|
|
|
- <el-table-column align="center" prop="contain" label="容量" />
|
|
|
|
|
-
|
|
|
|
|
<el-table-column
|
|
<el-table-column
|
|
|
align="center"
|
|
align="center"
|
|
|
- prop="remark"
|
|
|
|
|
- width="450"
|
|
|
|
|
- label="变更信息"
|
|
|
|
|
|
|
+ width="100"
|
|
|
|
|
+ prop="contain"
|
|
|
|
|
+ label="容量"
|
|
|
/>
|
|
/>
|
|
|
|
|
|
|
|
|
|
+ <el-table-column align="center" prop="route" label="路线" />
|
|
|
|
|
+ <el-table-column align="center" prop="route_end" label="终点" />
|
|
|
|
|
+
|
|
|
<el-table-column
|
|
<el-table-column
|
|
|
align="center"
|
|
align="center"
|
|
|
- width="200"
|
|
|
|
|
- prop="by_time"
|
|
|
|
|
- label="通行时间"
|
|
|
|
|
- />
|
|
|
|
|
- <el-table-column align="center" label="状态" width="150">
|
|
|
|
|
|
|
+ prop="before_state"
|
|
|
|
|
+ width="100"
|
|
|
|
|
+ label="是否提前"
|
|
|
|
|
+ >
|
|
|
<template #default="scope">
|
|
<template #default="scope">
|
|
|
- <div v-if="scope.row.state == 1" style="color: blue">
|
|
|
|
|
- 预约成功
|
|
|
|
|
- </div>
|
|
|
|
|
|
|
+ <div>{{ scope.row.before_state == 1 ? "是" : "否" }}</div>
|
|
|
|
|
+ </template>
|
|
|
|
|
+ </el-table-column>
|
|
|
|
|
+ <el-table-column align="center" label="状态" width="120">
|
|
|
|
|
+ <template #default="scope">
|
|
|
|
|
+ <div v-if="scope.row.state == 1" style="color: blue">预约中</div>
|
|
|
<div
|
|
<div
|
|
|
v-if="scope.row.state == 2"
|
|
v-if="scope.row.state == 2"
|
|
|
style="color: rgba(67, 207, 124, 1)"
|
|
style="color: rgba(67, 207, 124, 1)"
|
|
|
>
|
|
>
|
|
|
- 已乘车
|
|
|
|
|
|
|
+ 已截止
|
|
|
</div>
|
|
</div>
|
|
|
<div v-if="scope.row.state == 3" style="color: red">候补中</div>
|
|
<div v-if="scope.row.state == 3" style="color: red">候补中</div>
|
|
|
- <div v-if="scope.row.state == 4" style="color: #ccc">已取消</div>
|
|
|
|
|
|
|
+ <div v-if="scope.row.state == 4" style="color: #ccc">已分车</div>
|
|
|
|
|
+ </template>
|
|
|
|
|
+ </el-table-column>
|
|
|
|
|
+ <el-table-column align="center" label="操作" width="120">
|
|
|
|
|
+ <template #default="scope">
|
|
|
|
|
+ <el-button link type="primary" @click="sendBus(scope.row)"
|
|
|
|
|
+ ><div class="look">调度</div></el-button
|
|
|
|
|
+ >
|
|
|
</template>
|
|
</template>
|
|
|
</el-table-column>
|
|
</el-table-column>
|
|
|
- <!-- <el-table-column align="center" label="操作">
|
|
|
|
|
- <template #default="scope">
|
|
|
|
|
- <el-button link type="primary" @click="look(scope.row)"
|
|
|
|
|
- ><div class="look">查看</div></el-button
|
|
|
|
|
- >
|
|
|
|
|
- </template>
|
|
|
|
|
- </el-table-column> -->
|
|
|
|
|
</el-table>
|
|
</el-table>
|
|
|
</div>
|
|
</div>
|
|
|
- <el-pagination
|
|
|
|
|
- background
|
|
|
|
|
- v-model:page-size="pageSize2"
|
|
|
|
|
- v-model:current-page="currentPage2"
|
|
|
|
|
- layout="total, prev, pager, next, jumper"
|
|
|
|
|
- :total="total2"
|
|
|
|
|
- @current-change="handleCurrentChange2"
|
|
|
|
|
- />
|
|
|
|
|
</div>
|
|
</div>
|
|
|
|
|
+ <el-pagination
|
|
|
|
|
+ background
|
|
|
|
|
+ v-model:page-size="pageSize"
|
|
|
|
|
+ v-model:current-page="currentPage"
|
|
|
|
|
+ layout="total, prev, pager, next, jumper"
|
|
|
|
|
+ :total="total"
|
|
|
|
|
+ @current-change="handleCurrentChange"
|
|
|
|
|
+ />
|
|
|
</div>
|
|
</div>
|
|
|
</template>
|
|
</template>
|
|
|
|
|
|
|
@@ -403,10 +224,9 @@ const endNum = reactive({ list: [] }); // 终点站
|
|
|
// 表格数据
|
|
// 表格数据
|
|
|
const tableData = reactive({
|
|
const tableData = reactive({
|
|
|
list: [], //汇总数据
|
|
list: [], //汇总数据
|
|
|
- list2: [], //明细列表数据
|
|
|
|
|
});
|
|
});
|
|
|
|
|
|
|
|
-const dialongTitle = ref("候补派车"); // 弹窗标题
|
|
|
|
|
|
|
+const dialongTitle = ref("车辆调度"); // 弹窗标题
|
|
|
const centerDialogVisible = ref(false); // 候补弹窗显示
|
|
const centerDialogVisible = ref(false); // 候补弹窗显示
|
|
|
const initials = reactive({
|
|
const initials = reactive({
|
|
|
list: [],
|
|
list: [],
|
|
@@ -418,17 +238,11 @@ const options = ref(
|
|
|
}))
|
|
}))
|
|
|
); //候补弹窗多选车牌号逻辑
|
|
); //候补弹窗多选车牌号逻辑
|
|
|
|
|
|
|
|
-// 汇总
|
|
|
|
|
-const pageSize = ref(10);
|
|
|
|
|
|
|
+const pageSize = ref(12);
|
|
|
const currentPage = ref(1); // 当前页
|
|
const currentPage = ref(1); // 当前页
|
|
|
const total = ref(10); // 当前总数
|
|
const total = ref(10); // 当前总数
|
|
|
const selectData = reactive({ list: [] }); // 多选框选择的数据
|
|
const selectData = reactive({ list: [] }); // 多选框选择的数据
|
|
|
-// 明细列表
|
|
|
|
|
-const pageSize2 = ref(10);
|
|
|
|
|
-const currentPage2 = ref(1); // 当前页
|
|
|
|
|
-const total2 = ref(10); // 当前总数
|
|
|
|
|
|
|
|
|
|
-const footerMenuIndex = ref(0); // 控制汇总和明细列表
|
|
|
|
|
// 表单数据
|
|
// 表单数据
|
|
|
const formSize = ref("default");
|
|
const formSize = ref("default");
|
|
|
const ruleFormRef = ref();
|
|
const ruleFormRef = ref();
|
|
@@ -438,9 +252,19 @@ const ruleForm = reactive({
|
|
|
volume: "",
|
|
volume: "",
|
|
|
route: "黄家湖校区-墨轩湖校区",
|
|
route: "黄家湖校区-墨轩湖校区",
|
|
|
destination: "",
|
|
destination: "",
|
|
|
|
|
+ ci_time: "",
|
|
|
|
|
+ state: "",
|
|
|
|
|
+ id: "",
|
|
|
});
|
|
});
|
|
|
// 表单验证
|
|
// 表单验证
|
|
|
const rules = reactive({
|
|
const rules = reactive({
|
|
|
|
|
+ ci_time: [
|
|
|
|
|
+ {
|
|
|
|
|
+ required: true,
|
|
|
|
|
+ message: "时间不能为空",
|
|
|
|
|
+ trigger: "blur",
|
|
|
|
|
+ },
|
|
|
|
|
+ ],
|
|
|
busname: [
|
|
busname: [
|
|
|
{
|
|
{
|
|
|
required: true,
|
|
required: true,
|
|
@@ -478,43 +302,34 @@ const rules = reactive({
|
|
|
|
|
|
|
|
// 获取数据列表
|
|
// 获取数据列表
|
|
|
const getList = async () => {
|
|
const getList = async () => {
|
|
|
- if (footerMenuIndex.value == 0) {
|
|
|
|
|
|
|
+ {
|
|
|
let data = new FormData();
|
|
let data = new FormData();
|
|
|
- // if (searchInput.createTime == null) {
|
|
|
|
|
- // searchInput.createTime = "";
|
|
|
|
|
- // }
|
|
|
|
|
- // data.set("name", searchInput.name);
|
|
|
|
|
- // data.set("create_time", searchInput.createTime); //前面的key记得对应!
|
|
|
|
|
- // data.set("page", currentPage.value);
|
|
|
|
|
- // data.set("rows", pageSize.value); //前面的key记得对应!
|
|
|
|
|
|
|
+ let time = dayjs().format("YYYY-MM-DD");
|
|
|
|
|
+ data.set("date", time);
|
|
|
let res = await axios({
|
|
let res = await axios({
|
|
|
method: "post",
|
|
method: "post",
|
|
|
- url: api.value + "/carBook/brecqueryT.action",
|
|
|
|
|
|
|
+ url: api.value + "/carBook/schequeryYlist.action",
|
|
|
headers: {
|
|
headers: {
|
|
|
token: sessionStorage.getItem("token"),
|
|
token: sessionStorage.getItem("token"),
|
|
|
},
|
|
},
|
|
|
data: data,
|
|
data: data,
|
|
|
});
|
|
});
|
|
|
console.log(res);
|
|
console.log(res);
|
|
|
- if (res.status == 200) {
|
|
|
|
|
- // ElMessage({
|
|
|
|
|
- // type: "success",
|
|
|
|
|
- // showClose: true,
|
|
|
|
|
- // message: res.data.message,
|
|
|
|
|
- // center: true,
|
|
|
|
|
- // });
|
|
|
|
|
|
|
|
|
|
|
|
+ if (res.status == 200) {
|
|
|
|
|
+ // if (message) {
|
|
|
|
|
+ // ElMessage({
|
|
|
|
|
+ // type: "success",
|
|
|
|
|
+ // showClose: true,
|
|
|
|
|
+ // message: message,
|
|
|
|
|
+ // center: true,
|
|
|
|
|
+ // });
|
|
|
|
|
+ // }
|
|
|
tableData.list = res.data.data;
|
|
tableData.list = res.data.data;
|
|
|
// currentPage.value = res.data.currentPage;
|
|
// currentPage.value = res.data.currentPage;
|
|
|
- console.log(res.data);
|
|
|
|
|
-
|
|
|
|
|
- if (res.data.code == 205) {
|
|
|
|
|
- total.value = 0;
|
|
|
|
|
- } else {
|
|
|
|
|
- total.value = res.data.data.length;
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ total.value = res.data.total;
|
|
|
} else {
|
|
} else {
|
|
|
- tableData.list2 = res.data.rows;
|
|
|
|
|
|
|
+ tableData.list = res.data.rows;
|
|
|
currentPage.value = 1;
|
|
currentPage.value = 1;
|
|
|
total.value = res.data.total;
|
|
total.value = res.data.total;
|
|
|
ElMessage({
|
|
ElMessage({
|
|
@@ -529,65 +344,13 @@ const getList = async () => {
|
|
|
});
|
|
});
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
- } else if (footerMenuIndex.value == 1) {
|
|
|
|
|
- let data = new FormData();
|
|
|
|
|
- // if (searchInput.createTime == null) {
|
|
|
|
|
- // searchInput.createTime = "";
|
|
|
|
|
- // }
|
|
|
|
|
- if (searchInput.car_number) {
|
|
|
|
|
- data.set("car_number", searchInput.car_number);
|
|
|
|
|
- }
|
|
|
|
|
- data.set("state", searchInput.state);
|
|
|
|
|
- data.set("yy_date", searchInput.yy_date);
|
|
|
|
|
- data.set("page", currentPage2.value);
|
|
|
|
|
- data.set("rows", pageSize2.value); //前面的key记得对应!
|
|
|
|
|
- let res = await axios({
|
|
|
|
|
- method: "post",
|
|
|
|
|
- url: api.value + "/carBook/brecblist.action",
|
|
|
|
|
- headers: {
|
|
|
|
|
- token: sessionStorage.getItem("token"),
|
|
|
|
|
- },
|
|
|
|
|
- data: data,
|
|
|
|
|
- });
|
|
|
|
|
- console.log(res);
|
|
|
|
|
- if (res.status == 200) {
|
|
|
|
|
- // ElMessage({
|
|
|
|
|
- // type: "success",
|
|
|
|
|
- // showClose: true,
|
|
|
|
|
- // message: res.data.message,
|
|
|
|
|
- // center: true,
|
|
|
|
|
- // });
|
|
|
|
|
- tableData.list2 = res.data.rows;
|
|
|
|
|
- if (res.data.currentPage) {
|
|
|
|
|
- currentPage2.value = res.data.currentPage;
|
|
|
|
|
- } else {
|
|
|
|
|
- currentPage2.value = 1;
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- total2.value = res.data.total;
|
|
|
|
|
- } else {
|
|
|
|
|
- tableData.list2 = res.data.rows;
|
|
|
|
|
- currentPage2.value = 1;
|
|
|
|
|
- total2.value = res.data.total;
|
|
|
|
|
- ElMessage({
|
|
|
|
|
- type: "error",
|
|
|
|
|
- showClose: true,
|
|
|
|
|
- message: res.data.message,
|
|
|
|
|
- center: true,
|
|
|
|
|
- });
|
|
|
|
|
- if (res.data.message == "token错误") {
|
|
|
|
|
- router.push({
|
|
|
|
|
- path: `/login`,
|
|
|
|
|
- });
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
}
|
|
}
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
// 搜索按钮
|
|
// 搜索按钮
|
|
|
-const search = lodash.debounce(() => {
|
|
|
|
|
- getList();
|
|
|
|
|
-}, 300);
|
|
|
|
|
|
|
+// const search = lodash.debounce(() => {
|
|
|
|
|
+// getList();
|
|
|
|
|
+// }, 300);
|
|
|
// 重置搜索框
|
|
// 重置搜索框
|
|
|
const resetInput = lodash.debounce(() => {
|
|
const resetInput = lodash.debounce(() => {
|
|
|
searchInput.state = "";
|
|
searchInput.state = "";
|
|
@@ -601,32 +364,13 @@ const handleSelectionChange = (val) => {
|
|
|
selectData.list = val;
|
|
selectData.list = val;
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
-// 汇总按钮
|
|
|
|
|
-const collectMenu = () => {
|
|
|
|
|
- footerMenuIndex.value = 0;
|
|
|
|
|
- searchInput.yy_date = "";
|
|
|
|
|
- searchInput.car_number = "";
|
|
|
|
|
- searchInput.state = "";
|
|
|
|
|
- getList();
|
|
|
|
|
-};
|
|
|
|
|
-//明细列表按钮
|
|
|
|
|
-const detailMenu = () => {
|
|
|
|
|
- footerMenuIndex.value = 1;
|
|
|
|
|
- getList();
|
|
|
|
|
-};
|
|
|
|
|
-
|
|
|
|
|
-// 详情按钮
|
|
|
|
|
-const info = (row) => {
|
|
|
|
|
- console.log(row);
|
|
|
|
|
- searchInput.yy_date = row.yy_date;
|
|
|
|
|
- searchInput.car_number = row.car_number;
|
|
|
|
|
- footerMenuIndex.value = 1;
|
|
|
|
|
- getList();
|
|
|
|
|
-};
|
|
|
|
|
// 派车按钮
|
|
// 派车按钮
|
|
|
const sendBus = (row) => {
|
|
const sendBus = (row) => {
|
|
|
console.log(row);
|
|
console.log(row);
|
|
|
centerDialogVisible.value = true;
|
|
centerDialogVisible.value = true;
|
|
|
|
|
+ ruleForm.id = row.id;
|
|
|
|
|
+ ruleForm.state = row.state;
|
|
|
|
|
+ ruleForm.ci_time = row.ci_time;
|
|
|
};
|
|
};
|
|
|
// 派车弹窗关闭
|
|
// 派车弹窗关闭
|
|
|
const editClose = () => {
|
|
const editClose = () => {
|
|
@@ -638,40 +382,41 @@ const submitAdd = async (formEl) => {
|
|
|
if (!formEl) return;
|
|
if (!formEl) return;
|
|
|
await formEl.validate(async (valid, fields) => {
|
|
await formEl.validate(async (valid, fields) => {
|
|
|
if (valid) {
|
|
if (valid) {
|
|
|
- if (dialongTitle.value == "候补派车") {
|
|
|
|
|
- let data = new FormData();
|
|
|
|
|
- data.set("car_number", ruleForm.busname.join(",f"));
|
|
|
|
|
- data.set("route", ruleForm.route); //前面的key记得对应!
|
|
|
|
|
- data.set("contain", ruleForm.volume);
|
|
|
|
|
- data.set("route_end", ruleForm.destination); //前面的key记得对应!
|
|
|
|
|
- let res = await axios({
|
|
|
|
|
- method: "post",
|
|
|
|
|
- url: api.value + "/carBook/brecfen.action",
|
|
|
|
|
- headers: {
|
|
|
|
|
- token: sessionStorage.getItem("token"),
|
|
|
|
|
- },
|
|
|
|
|
- data: data,
|
|
|
|
|
|
|
+ let data = {
|
|
|
|
|
+ car_number: ruleForm.busname.join(",f"),
|
|
|
|
|
+ route: ruleForm.route,
|
|
|
|
|
+ contain: ruleForm.volume,
|
|
|
|
|
+ route_end: ruleForm.destination,
|
|
|
|
|
+ ci_time: ruleForm.ci_time,
|
|
|
|
|
+ id: ruleForm.id,
|
|
|
|
|
+ };
|
|
|
|
|
+ let res = await axios({
|
|
|
|
|
+ method: "post",
|
|
|
|
|
+ url: api.value + "/carBook/scheupdate.action",
|
|
|
|
|
+ headers: {
|
|
|
|
|
+ "Content-Type": "application/json;charset=utf-8",
|
|
|
|
|
+ token: sessionStorage.getItem("token"),
|
|
|
|
|
+ },
|
|
|
|
|
+ data: data,
|
|
|
|
|
+ });
|
|
|
|
|
+ // console.log(res, "添加账号");
|
|
|
|
|
+ if (res.data.code == 200) {
|
|
|
|
|
+ getList();
|
|
|
|
|
+ ElMessage({
|
|
|
|
|
+ type: "success",
|
|
|
|
|
+ showClose: true,
|
|
|
|
|
+ message: res.data.message,
|
|
|
|
|
+ center: true,
|
|
|
});
|
|
});
|
|
|
- // console.log(res, "添加账号");
|
|
|
|
|
- if (res.data.code == 200) {
|
|
|
|
|
- getList();
|
|
|
|
|
- ElMessage({
|
|
|
|
|
- type: "success",
|
|
|
|
|
- showClose: true,
|
|
|
|
|
- message: res.data.message,
|
|
|
|
|
- center: true,
|
|
|
|
|
- });
|
|
|
|
|
- addDialogVisible.value = false;
|
|
|
|
|
- ruleFormRef.value.resetFields();
|
|
|
|
|
- } else {
|
|
|
|
|
- ElMessage({
|
|
|
|
|
- type: "error",
|
|
|
|
|
- showClose: true,
|
|
|
|
|
- message: res.data.message,
|
|
|
|
|
- center: true,
|
|
|
|
|
- });
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ addDialogVisible.value = false;
|
|
|
|
|
+ ruleFormRef.value.resetFields();
|
|
|
} else {
|
|
} else {
|
|
|
|
|
+ ElMessage({
|
|
|
|
|
+ type: "error",
|
|
|
|
|
+ showClose: true,
|
|
|
|
|
+ message: res.data.message,
|
|
|
|
|
+ center: true,
|
|
|
|
|
+ });
|
|
|
}
|
|
}
|
|
|
} else {
|
|
} else {
|
|
|
console.log("error submit!", fields);
|
|
console.log("error submit!", fields);
|
|
@@ -680,47 +425,56 @@ const submitAdd = async (formEl) => {
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
// 导出按钮
|
|
// 导出按钮
|
|
|
-const downLoad = lodash.debounce(async () => {
|
|
|
|
|
- let data = new FormData();
|
|
|
|
|
- if (searchInput.car_number) {
|
|
|
|
|
- data.set("car_number", searchInput.car_number);
|
|
|
|
|
- }
|
|
|
|
|
- data.set("state", searchInput.state);
|
|
|
|
|
- data.set("yy_date", searchInput.yy_date);
|
|
|
|
|
- let res = await axios({
|
|
|
|
|
- method: "post",
|
|
|
|
|
- url: api.value + "/carBook/brectoExcel.action",
|
|
|
|
|
- headers: {
|
|
|
|
|
- token: sessionStorage.getItem("token"),
|
|
|
|
|
- },
|
|
|
|
|
- data: data,
|
|
|
|
|
- });
|
|
|
|
|
- console.log(res);
|
|
|
|
|
- if (res.status == 200) {
|
|
|
|
|
- const elt = document.createElement("a");
|
|
|
|
|
- elt.setAttribute(
|
|
|
|
|
- "href",
|
|
|
|
|
- "https://chtech.ncjti.edu.cn/carstop" + res.data.downurl
|
|
|
|
|
- );
|
|
|
|
|
- elt.setAttribute("download", "file.png");
|
|
|
|
|
- elt.style.display = "none";
|
|
|
|
|
- document.body.appendChild(elt);
|
|
|
|
|
- elt.click();
|
|
|
|
|
- ElMessage({
|
|
|
|
|
- type: "success",
|
|
|
|
|
- showClose: true,
|
|
|
|
|
- message: res.data.message,
|
|
|
|
|
- center: true,
|
|
|
|
|
- });
|
|
|
|
|
- } else {
|
|
|
|
|
- ElMessage({
|
|
|
|
|
- type: "error",
|
|
|
|
|
- showClose: true,
|
|
|
|
|
- message: res.data.message,
|
|
|
|
|
- center: true,
|
|
|
|
|
- });
|
|
|
|
|
- }
|
|
|
|
|
-}, 300);
|
|
|
|
|
|
|
+// const downLoad = lodash.debounce(async () => {
|
|
|
|
|
+// let data = new FormData();
|
|
|
|
|
+// if (searchInput.car_number) {
|
|
|
|
|
+// data.set("car_number", searchInput.car_number);
|
|
|
|
|
+// }
|
|
|
|
|
+// data.set("state", searchInput.state);
|
|
|
|
|
+// data.set("yy_date", searchInput.yy_date);
|
|
|
|
|
+// let res = await axios({
|
|
|
|
|
+// method: "post",
|
|
|
|
|
+// url: api.value + "/carBook/brectoExcel.action",
|
|
|
|
|
+// headers: {
|
|
|
|
|
+// token: sessionStorage.getItem("token"),
|
|
|
|
|
+// },
|
|
|
|
|
+// data: data,
|
|
|
|
|
+// });
|
|
|
|
|
+// console.log(res);
|
|
|
|
|
+// if (res.status == 200) {
|
|
|
|
|
+// // const elt = document.createElement("a");
|
|
|
|
|
+// // elt.setAttribute(
|
|
|
|
|
+// // "href",
|
|
|
|
|
+// // "https://chtech.ncjti.edu.cn/carstop" + res.data.downurl
|
|
|
|
|
+// // );
|
|
|
|
|
+// // elt.setAttribute("download", "file.png");
|
|
|
|
|
+// // elt.style.display = "none";
|
|
|
|
|
+// // document.body.appendChild(elt);
|
|
|
|
|
+// // elt.click();
|
|
|
|
|
+// var downloadPath = "https://chtech.ncjti.edu.cn/carstop" + res.data.downurl;
|
|
|
|
|
+// console.log("获得地址数据:", downloadPath);
|
|
|
|
|
+// var downloadLink = document.createElement("a");
|
|
|
|
|
+// downloadLink.style.display = "none"; // 使其隐藏
|
|
|
|
|
+// downloadLink.href = downloadPath;
|
|
|
|
|
+// downloadLink.download = "";
|
|
|
|
|
+// downloadLink.click();
|
|
|
|
|
+// document.body.appendChild(downloadLink);
|
|
|
|
|
+// document.body.removeChild(downloadLink);
|
|
|
|
|
+// ElMessage({
|
|
|
|
|
+// type: "success",
|
|
|
|
|
+// showClose: true,
|
|
|
|
|
+// message: res.data.message,
|
|
|
|
|
+// center: true,
|
|
|
|
|
+// });
|
|
|
|
|
+// } else {
|
|
|
|
|
+// ElMessage({
|
|
|
|
|
+// type: "error",
|
|
|
|
|
+// showClose: true,
|
|
|
|
|
+// message: res.data.message,
|
|
|
|
|
+// center: true,
|
|
|
|
|
+// });
|
|
|
|
|
+// }
|
|
|
|
|
+// }, 300);
|
|
|
|
|
|
|
|
// 表格斑马纹颜色修改
|
|
// 表格斑马纹颜色修改
|
|
|
const tableRowClassName = ({ row, rowIndex }) => {
|
|
const tableRowClassName = ({ row, rowIndex }) => {
|
|
@@ -735,11 +489,6 @@ const tableRowClassName = ({ row, rowIndex }) => {
|
|
|
const handleCurrentChange = (value) => {
|
|
const handleCurrentChange = (value) => {
|
|
|
currentPage.value = value;
|
|
currentPage.value = value;
|
|
|
};
|
|
};
|
|
|
-// 分页
|
|
|
|
|
-const handleCurrentChange2 = (value) => {
|
|
|
|
|
- console.log(value);
|
|
|
|
|
- currentPage2.value = value;
|
|
|
|
|
-};
|
|
|
|
|
// 监控派车弹窗选择车牌时容量发生变化
|
|
// 监控派车弹窗选择车牌时容量发生变化
|
|
|
watch(
|
|
watch(
|
|
|
() => ruleForm.busname,
|
|
() => ruleForm.busname,
|
|
@@ -761,7 +510,8 @@ onBeforeMount(() => {
|
|
|
api.value = store.state.user.api;
|
|
api.value = store.state.user.api;
|
|
|
pathNum.list = JSON.parse(sessionStorage.getItem("pathSelect"));
|
|
pathNum.list = JSON.parse(sessionStorage.getItem("pathSelect"));
|
|
|
busNum.list = JSON.parse(sessionStorage.getItem("busSelect"));
|
|
busNum.list = JSON.parse(sessionStorage.getItem("busSelect"));
|
|
|
- pathNum.list.forEach((item) => {
|
|
|
|
|
|
|
+ let route_endSelect = JSON.parse(sessionStorage.getItem("route_endSelect"));
|
|
|
|
|
+ route_endSelect.forEach((item) => {
|
|
|
endNum.list.push(item.route_end);
|
|
endNum.list.push(item.route_end);
|
|
|
});
|
|
});
|
|
|
busNum.list.forEach((item) => {
|
|
busNum.list.forEach((item) => {
|