|
|
@@ -7,32 +7,46 @@ import { Search,Download,Tools,Plus,Check,Close } from "@element-plus/icons-vue"
|
|
|
let searchkey=ref('')
|
|
|
let isauto=ref('')
|
|
|
let viewType=ref(1)
|
|
|
-import { apisystemdzbcPathSchedulinglist,apisystemdzbcPathSchedulingexport,apisystemdzbcPathSchedulingDel,apisystemdzbcPathSchedulingAdd,apisystemdzbcPathSchedulingUpdate } from '../../request/api.js'
|
|
|
+import { apisystemdzbcSitelist,apisystemdzbcPathlist,apisystemdzbcCarlist,apisystemdzbcPathSchedulinglist,apisystemdzbcPathSchedulingexport,apisystemdzbcPathSchedulingDel,apisystemdzbcPathSchedulingAdd,apisystemdzbcPathSchedulingUpdate } from '../../request/api.js'
|
|
|
import type { ComponentSize, FormInstance, FormRules } from 'element-plus'
|
|
|
import { ElMessage } from 'element-plus'
|
|
|
interface RuleForm {
|
|
|
- name: string
|
|
|
- addr: string
|
|
|
- location: string
|
|
|
- remark: string
|
|
|
- kyzId: string
|
|
|
+ id:any,
|
|
|
+ pathId: any,
|
|
|
+ carId: any,
|
|
|
+ mdate: string,
|
|
|
+ mtime: string,
|
|
|
+ remark: string,
|
|
|
+ startSites: string,
|
|
|
+ endSites: string,
|
|
|
+ isauto: any,
|
|
|
+ pprice: any
|
|
|
}
|
|
|
const initData={
|
|
|
id:'',
|
|
|
- name: "",
|
|
|
- addr: "",
|
|
|
- location: "",
|
|
|
- remark: "",
|
|
|
- kyzId:""
|
|
|
+ "pathId": '',
|
|
|
+ "carId": '',
|
|
|
+ "mdate": "",
|
|
|
+ "mtime": "",
|
|
|
+ "remark": "",
|
|
|
+ "startSites": "",
|
|
|
+ "endSites": "",
|
|
|
+ "isauto": '0',
|
|
|
+ "pprice": ''
|
|
|
}
|
|
|
const formSize = ref<ComponentSize>('default')
|
|
|
const ruleFormRef = ref<FormInstance>()
|
|
|
const ruleForm = reactive<RuleForm>({
|
|
|
- name: "",
|
|
|
- addr: "",
|
|
|
- location: "",
|
|
|
- remark: "",
|
|
|
- kyzId:""
|
|
|
+ id:'',
|
|
|
+ "pathId": '',
|
|
|
+ "carId": '',
|
|
|
+ "mdate": "",
|
|
|
+ "mtime": "",
|
|
|
+ "remark": "",
|
|
|
+ "startSites": "",
|
|
|
+ "endSites": "",
|
|
|
+ "isauto": '0',
|
|
|
+ "pprice": ''
|
|
|
})
|
|
|
|
|
|
|
|
|
@@ -114,6 +128,8 @@ const addItem=data=>{
|
|
|
for(let key in initData){
|
|
|
ruleForm[key]=initData[key]
|
|
|
}
|
|
|
+ console.log(data)
|
|
|
+ ruleForm.mdate=data.mdate+' 00:00:00'
|
|
|
logtitle.value='新增定制班车-路线排班'
|
|
|
}
|
|
|
dialogVisible.value=true
|
|
|
@@ -148,7 +164,10 @@ const getTableData=()=>{
|
|
|
}).then(res=>{
|
|
|
if(res.code==200){
|
|
|
total.value=res.total
|
|
|
- tableData.value=res.rows
|
|
|
+ tableData.value=res.rows.map(item=>{
|
|
|
+ item.mdate=item.mdate?item.mdate:''
|
|
|
+ return item
|
|
|
+ })
|
|
|
}
|
|
|
loading.value=false
|
|
|
|
|
|
@@ -156,6 +175,15 @@ const getTableData=()=>{
|
|
|
console.log(err)
|
|
|
})
|
|
|
}
|
|
|
+const isShowAdd=day=>{
|
|
|
+ let result=true
|
|
|
+ for(let i=0;i<tableData.value.length;i++){
|
|
|
+ if(day===tableData.value[i].mdate.substring(0,10)){
|
|
|
+ result=false
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return result
|
|
|
+}
|
|
|
//
|
|
|
const deleteItem=(id)=>{
|
|
|
apisystemdzbcPathSchedulingDel({id}).then((res:any)=>{
|
|
|
@@ -169,9 +197,50 @@ const deleteItem=(id)=>{
|
|
|
console.log(err)
|
|
|
})
|
|
|
}
|
|
|
-
|
|
|
+let carList=ref([])
|
|
|
+let routeList=ref([])
|
|
|
+let stationList=ref([])
|
|
|
onMounted(()=>{
|
|
|
getTableData()
|
|
|
+ apisystemdzbcCarlist({
|
|
|
+
|
|
|
+ }).then(res=>{
|
|
|
+ if(res.code==200){
|
|
|
+
|
|
|
+ carList.value=res.rows
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ }).catch(err=>{
|
|
|
+ console.log(err)
|
|
|
+ })
|
|
|
+
|
|
|
+ apisystemdzbcPathlist({
|
|
|
+
|
|
|
+ }).then(res=>{
|
|
|
+ if(res.code==200){
|
|
|
+
|
|
|
+ routeList.value=res.rows
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ }).catch(err=>{
|
|
|
+ console.log(err)
|
|
|
+ })
|
|
|
+
|
|
|
+
|
|
|
+ apisystemdzbcSitelist({
|
|
|
+
|
|
|
+ }).then(res=>{
|
|
|
+ if(res.code==200){
|
|
|
+
|
|
|
+ stationList.value=res.rows
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ }).catch(err=>{
|
|
|
+ console.log(err)
|
|
|
+ })
|
|
|
})
|
|
|
|
|
|
|
|
|
@@ -287,38 +356,56 @@ onMounted(()=>{
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="common-chart-wrap" id="caruse-wrap">
|
|
|
- <el-calendar v-if="viewType==1" :range="[new Date(2019, 2, 4), new Date(2019, 2, 24)]">
|
|
|
+ <el-calendar v-if="viewType==1">
|
|
|
<template #date-cell="{ data }">
|
|
|
- <p :class="data.isSelected ? 'is-selected' : ''">
|
|
|
+ <!-- <p :class="data.isSelected ? 'is-selected' : ''">
|
|
|
{{ data.day.split('-').slice(1).join('-') }}
|
|
|
{{ data.isSelected ? '✔️' : '' }}
|
|
|
- </p>
|
|
|
+ </p> -->
|
|
|
+
|
|
|
+ <div>
|
|
|
+
|
|
|
+ {{ data.day.split('-').slice(1).join('-') }}
|
|
|
+ <div v-for="item in tableData" :key="item.id">
|
|
|
+
|
|
|
+ <div v-if="item.mdate&&data.day==item.mdate.substring(0,10)">
|
|
|
+ <div>{{ item.carName }}</div>
|
|
|
+
|
|
|
+ </div>
|
|
|
+
|
|
|
+
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div style="display:flex;justify-content: center;">
|
|
|
+ <el-button v-if="isShowAdd(data.day)" style="padding:0px 0px;height:22px" size="mini" type="primary" @click="addItem({mdate:data.day})">新增排班</el-button>
|
|
|
+ </div>
|
|
|
+
|
|
|
+
|
|
|
+ </div>
|
|
|
</template>
|
|
|
</el-calendar>
|
|
|
<el-table v-if="viewType==2" element-loading-text='加载中' header-row-class-name="reset-gray-head" :data="tableData" style="width: 100%" v-loading="loading">
|
|
|
- <el-table-column prop="name" label="路线">
|
|
|
+ <el-table-column prop="pathName" label="路线">
|
|
|
|
|
|
</el-table-column>
|
|
|
- <el-table-column prop="latlon" label="车辆" />
|
|
|
- <el-table-column prop="num" label="排班日期">
|
|
|
+ <el-table-column prop="carName" label="车辆" />
|
|
|
+ <el-table-column prop="mdate" label="排班日期">
|
|
|
|
|
|
</el-table-column>
|
|
|
- <el-table-column prop="num" label="开始时间">
|
|
|
+ <el-table-column prop="mtime" label="开始时间">
|
|
|
|
|
|
</el-table-column>
|
|
|
- <el-table-column prop="num" label="开始站点列表">
|
|
|
+ <el-table-column prop="startSites" label="开始站点">
|
|
|
|
|
|
</el-table-column>
|
|
|
- <el-table-column prop="num" label="结束站点列表">
|
|
|
+ <el-table-column prop="endSites" label="结束站点">
|
|
|
|
|
|
</el-table-column>
|
|
|
- <el-table-column prop="num" label="是否自动排班">
|
|
|
+ <el-table-column prop="isauto" label="自动排班">
|
|
|
|
|
|
</el-table-column>
|
|
|
|
|
|
- <el-table-column prop="date" label="创建时间">
|
|
|
-
|
|
|
- </el-table-column>
|
|
|
+
|
|
|
|
|
|
<el-table-column fixed="right" label="操作" min-width="120">
|
|
|
<template #default="scope">
|
|
|
@@ -425,28 +512,98 @@ onMounted(()=>{
|
|
|
<el-row :gutter="20">
|
|
|
<el-col :span="12">
|
|
|
<el-form-item label="路线" prop="pathId">
|
|
|
- <el-input v-model="ruleForm.pathId" />
|
|
|
+
|
|
|
+ <el-select
|
|
|
+ v-model="ruleForm.pathId"
|
|
|
+ placeholder="路线"
|
|
|
+
|
|
|
+ style="width: 100%"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="item in routeList"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.name"
|
|
|
+ :value="item.id"
|
|
|
+ />
|
|
|
+ </el-select>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="12">
|
|
|
<el-form-item label="车辆">
|
|
|
- <el-input v-model="ruleForm.carId" />
|
|
|
+
|
|
|
+ <el-select
|
|
|
+ v-model="ruleForm.carId"
|
|
|
+ placeholder="车辆"
|
|
|
+
|
|
|
+ style="width: 100%"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="item in carList"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.carNum"
|
|
|
+ :value="item.id"
|
|
|
+ />
|
|
|
+ </el-select>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="12">
|
|
|
<el-form-item label="排班日期">
|
|
|
- <el-input v-model="ruleForm.mdate" />
|
|
|
+
|
|
|
+ <el-date-picker
|
|
|
+ style="width:100%"
|
|
|
+ v-model="ruleForm.mdate"
|
|
|
+ type="datetime"
|
|
|
+ value-format="yyyy-MM-DD HH:mm:ss"
|
|
|
+ placeholder="排班日期"
|
|
|
+ />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
|
|
|
<el-col :span="12">
|
|
|
<el-form-item label="开始时间">
|
|
|
- <el-input v-model="ruleForm.mtime" />
|
|
|
+
|
|
|
+ <el-time-picker style="width:100%" value-format="HH:mm:ss" placeholder="开始时间" v-model="ruleForm.mtime" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="开始站点">
|
|
|
+
|
|
|
+ <el-input placeholder="开始站点" v-model="ruleForm.startSites" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="结束站点">
|
|
|
+
|
|
|
+ <el-input placeholder="结束站点" v-model="ruleForm.endSites" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="自动排班">
|
|
|
+
|
|
|
+ <el-select
|
|
|
+ v-model="ruleForm.isauto"
|
|
|
+ placeholder="自动排班"
|
|
|
+
|
|
|
+ style="width: 100%"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+
|
|
|
+
|
|
|
+ label="是"
|
|
|
+ value="1"
|
|
|
+ />
|
|
|
+ <el-option
|
|
|
+
|
|
|
+
|
|
|
+ label="否"
|
|
|
+ value="0"
|
|
|
+ />
|
|
|
+ </el-select>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="12">
|
|
|
<el-form-item label="备注">
|
|
|
- <el-input v-model="ruleForm.remark" />
|
|
|
+ <el-input placeholder="备注" v-model="ruleForm.remark" />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
|