|
|
@@ -15,7 +15,8 @@
|
|
|
<el-descriptions :column="3">
|
|
|
<el-descriptions-item>
|
|
|
<template #label>
|
|
|
- <div style="display: inline-block;min-width: 100px;text-align: right"><span style="color: red">*</span> 车牌</div>
|
|
|
+ <div style="display: inline-block;min-width: 100px;text-align: right"><span style="color: red">*</span>
|
|
|
+ 车牌</div>
|
|
|
</template>
|
|
|
<div class="content-w">
|
|
|
<el-input v-model="form.carNum" placeholder="请输入车牌" />
|
|
|
@@ -23,28 +24,33 @@
|
|
|
</el-descriptions-item>
|
|
|
<el-descriptions-item>
|
|
|
<template #label>
|
|
|
- <div style="display: inline-block;min-width: 100px;text-align: right"><span style="color: red">*</span> 车辆分类</div>
|
|
|
+ <div style="display: inline-block;min-width: 100px;text-align: right"><span style="color: red">*</span>
|
|
|
+ 车辆分类</div>
|
|
|
</template>
|
|
|
<div class="content-w">
|
|
|
<el-select v-model="form.carType" filterable placeholder="车辆分类">
|
|
|
- <el-option v-for="item in carTypeList" :key="item.dictValue" :label="item.dictLabel" :value="item.dictValue" />
|
|
|
+ <el-option v-for="item in carTypeList" :key="item.dictValue" :label="item.dictLabel"
|
|
|
+ :value="item.dictValue" />
|
|
|
</el-select>
|
|
|
</div>
|
|
|
</el-descriptions-item>
|
|
|
<el-descriptions-item>
|
|
|
<template #label>
|
|
|
- <div style="display: inline-block;min-width: 100px;text-align: right"><span style="color: red">*</span> 业务分类</div>
|
|
|
+ <div style="display: inline-block;min-width: 100px;text-align: right"><span style="color: red">*</span>
|
|
|
+ 业务分类</div>
|
|
|
</template>
|
|
|
<div class="content-w">
|
|
|
<el-select v-model="formParams.bussinessType" filterable placeholder="业务分类">
|
|
|
- <el-option v-for="item in bussinessTypeList" :key="item.dictValue" :label="item.dictLabel" :value="item.dictValue" />
|
|
|
+ <el-option v-for="item in bussinessTypeList" :key="item.dictValue" :label="item.dictLabel"
|
|
|
+ :value="item.dictValue" />
|
|
|
</el-select>
|
|
|
</div>
|
|
|
</el-descriptions-item>
|
|
|
|
|
|
<el-descriptions-item>
|
|
|
<template #label>
|
|
|
- <div style="display: inline-block;min-width: 100px;text-align: right"><span style="color: red">*</span> 所属网格</div>
|
|
|
+ <div style="display: inline-block;min-width: 100px;text-align: right"><span style="color: red">*</span>
|
|
|
+ 所属网格</div>
|
|
|
</template>
|
|
|
<div class="content-w">
|
|
|
<el-input v-model="formParams.wangge" placeholder="请输入网格" />
|
|
|
@@ -52,20 +58,26 @@
|
|
|
</el-descriptions-item>
|
|
|
<el-descriptions-item>
|
|
|
<template #label>
|
|
|
- <div style="display: inline-block;min-width: 100px;text-align: right"><span style="color: red">*</span> 能耗类型</div>
|
|
|
+ <div style="display: inline-block;min-width: 100px;text-align: right"><span style="color: red">*</span>
|
|
|
+ 能耗类型</div>
|
|
|
</template>
|
|
|
<div class="content-w">
|
|
|
<el-select v-model="formParams.energyType" filterable placeholder="业务分类">
|
|
|
- <el-option v-for="item in energyTypeList" :key="item.dictValue" :label="item.dictLabel" :value="item.dictValue" />
|
|
|
+ <el-option v-for="item in energyTypeList" :key="item.dictValue" :label="item.dictLabel"
|
|
|
+ :value="item.dictValue" />
|
|
|
</el-select>
|
|
|
</div>
|
|
|
</el-descriptions-item>
|
|
|
<el-descriptions-item>
|
|
|
<template #label>
|
|
|
- <div style="display: inline-block;min-width: 100px;text-align: right"><span style="color: red">*</span> 所属单位</div>
|
|
|
+ <div style="display: inline-block;min-width: 100px;text-align: right"><span style="color: red">*</span>
|
|
|
+ 所属单位</div>
|
|
|
</template>
|
|
|
<div class="content-w">
|
|
|
- <el-input v-model="formParams.dept" placeholder="请输入所属单位" />
|
|
|
+ <!-- <el-input v-model="formParams.deptId" placeholder="请输入所属单位" /> -->
|
|
|
+ <el-tree-select v-model="formParams.deptId" :data="deptOptions"
|
|
|
+ :props="{ value: 'id', label: 'label', children: 'children' }" value-key="id" placeholder="请选择归属部门"
|
|
|
+ check-strictly />
|
|
|
</div>
|
|
|
</el-descriptions-item>
|
|
|
|
|
|
@@ -151,7 +163,8 @@
|
|
|
</template>
|
|
|
<div class="content-w">
|
|
|
<div class="content-w">
|
|
|
- <el-date-picker value-format="YYYY-MM-DD HH:mm:ss" v-model="formParams.gzrq" type="date" placeholder="请选择购置日期" />
|
|
|
+ <el-date-picker value-format="YYYY-MM-DD HH:mm:ss" v-model="formParams.gzrq" type="date"
|
|
|
+ placeholder="请选择购置日期" />
|
|
|
</div>
|
|
|
</div>
|
|
|
</el-descriptions-item>
|
|
|
@@ -200,10 +213,11 @@
|
|
|
<el-descriptions :column="3">
|
|
|
<el-descriptions-item>
|
|
|
<template #label>
|
|
|
- <div style="display: inline-block;min-width: 100px;text-align: right"><span style="color: red">*</span> 路线</div>
|
|
|
+ <div style="display: inline-block;min-width: 100px;text-align: right"><span style="color: red">*</span>
|
|
|
+ 路线</div>
|
|
|
</template>
|
|
|
<div class="content-w">
|
|
|
- <el-select v-model="ext2.pathId" filterable placeholder="业务分类">
|
|
|
+ <el-select multiple v-model="ext2.pathId" filterable placeholder="路线选择">
|
|
|
<el-option v-for="item in carPathList" :key="item.id" :label="item.name" :value="item.id" />
|
|
|
</el-select>
|
|
|
</div>
|
|
|
@@ -211,7 +225,8 @@
|
|
|
|
|
|
<el-descriptions-item>
|
|
|
<template #label>
|
|
|
- <div style="display: inline-block;min-width: 100px;text-align: right"><span style="color: red">*</span> 司机</div>
|
|
|
+ <div style="display: inline-block;min-width: 100px;text-align: right"><span style="color: red">*</span>
|
|
|
+ 司机</div>
|
|
|
</template>
|
|
|
<div class="content-w">
|
|
|
<el-select v-model="ext2.driverInfo" class="m-2" placeholder="请选择司机" style="width: 240px">
|
|
|
@@ -222,7 +237,8 @@
|
|
|
|
|
|
<el-descriptions-item>
|
|
|
<template #label>
|
|
|
- <div style="display: inline-block;min-width: 100px;text-align: right"><span style="color: red"></span> 跟车人员</div>
|
|
|
+ <div style="display: inline-block;min-width: 100px;text-align: right"><span style="color: red"></span>
|
|
|
+ 跟车人员</div>
|
|
|
</template>
|
|
|
<div class="content-w">
|
|
|
<el-select v-model="ext2.attendantInfo" class="m-2" placeholder="请选择跟车人员" style="width: 240px">
|
|
|
@@ -240,28 +256,36 @@
|
|
|
<el-col :span="24" v-if="carId != 0 && carId != null">
|
|
|
<el-tabs type="card" class="demo-tabs" v-model="activeName" @tab-click="tabClick">
|
|
|
<el-tab-pane label="车辆设备" name="1">
|
|
|
- <tableElm @childToParent="childrenClick" v-if="activeName == 1" :columns="columns[0]" ref="table"> </tableElm>
|
|
|
+ <tableElm @childToParent="childrenClick" v-if="activeName == 1" :columns="columns[0]" ref="table">
|
|
|
+ </tableElm>
|
|
|
</el-tab-pane>
|
|
|
<el-tab-pane label="维修记录" name="2">
|
|
|
- <tableElm @childToParent="childrenClick" v-if="activeName == 2" :columns="columns[1]" ref="table"> </tableElm>
|
|
|
+ <tableElm @childToParent="childrenClick" v-if="activeName == 2" :columns="columns[1]" ref="table">
|
|
|
+ </tableElm>
|
|
|
</el-tab-pane>
|
|
|
<el-tab-pane label="保养记录" name="3">
|
|
|
- <tableElm @childToParent="childrenClick" v-if="activeName == 3" :columns="columns[2]" ref="table"> </tableElm>
|
|
|
+ <tableElm @childToParent="childrenClick" v-if="activeName == 3" :columns="columns[2]" ref="table">
|
|
|
+ </tableElm>
|
|
|
</el-tab-pane>
|
|
|
<el-tab-pane label="保险记录" name="4">
|
|
|
- <tableElm @childToParent="childrenClick" v-if="activeName == 4" :columns="columns[3]" ref="table"> </tableElm>
|
|
|
+ <tableElm @childToParent="childrenClick" v-if="activeName == 4" :columns="columns[3]" ref="table">
|
|
|
+ </tableElm>
|
|
|
</el-tab-pane>
|
|
|
<el-tab-pane label="年检记录" name="5">
|
|
|
- <tableElm @childToParent="childrenClick" v-if="activeName == 5" :columns="columns[4]" ref="table"> </tableElm>
|
|
|
+ <tableElm @childToParent="childrenClick" v-if="activeName == 5" :columns="columns[4]" ref="table">
|
|
|
+ </tableElm>
|
|
|
</el-tab-pane>
|
|
|
<el-tab-pane label="交通事故记录" name="6">
|
|
|
- <tableElm @childToParent="childrenClick" v-if="activeName == 6" :columns="columns[5]" ref="table"> </tableElm>
|
|
|
+ <tableElm @childToParent="childrenClick" v-if="activeName == 6" :columns="columns[5]" ref="table">
|
|
|
+ </tableElm>
|
|
|
</el-tab-pane>
|
|
|
<el-tab-pane label="违章记录" name="7">
|
|
|
- <tableElm @childToParent="childrenClick" v-if="activeName == 7" :columns="columns[6]" ref="table"> </tableElm>
|
|
|
+ <tableElm @childToParent="childrenClick" v-if="activeName == 7" :columns="columns[6]" ref="table">
|
|
|
+ </tableElm>
|
|
|
</el-tab-pane>
|
|
|
<el-tab-pane label="车辆变更记录" name="8">
|
|
|
- <tableElm @childToParent="childrenClick" v-if="activeName == 8" :columns="columns[7]" ref="table"> </tableElm>
|
|
|
+ <tableElm @childToParent="childrenClick" v-if="activeName == 8" :columns="columns[7]" ref="table">
|
|
|
+ </tableElm>
|
|
|
</el-tab-pane>
|
|
|
</el-tabs>
|
|
|
</el-col>
|
|
|
@@ -272,22 +296,10 @@
|
|
|
<el-form ref="" :model="form" :rules="rules" label-width="120px">
|
|
|
<el-form-item v-for="(item, index) in formList" :label="item.label" prop="carNum">
|
|
|
<el-input v-if="item.type == 'input'" v-model="addForm[item.prop]" :placeholder="item.placeholder" />
|
|
|
- <el-date-picker
|
|
|
- v-if="item.type == 'date'"
|
|
|
- value-format="YYYY-MM-DD HH:mm:ss"
|
|
|
- v-model="addForm[item.prop]"
|
|
|
- type="date"
|
|
|
- :placeholder="item.placeholder"
|
|
|
- />
|
|
|
- <el-upload
|
|
|
- v-if="item.type == 'image'"
|
|
|
- v-model:file-list="fileList"
|
|
|
- :headers="headers"
|
|
|
- :action="uploadImgUrl"
|
|
|
- list-type="picture-card"
|
|
|
- :on-remove="handleRemove"
|
|
|
- :on-success="handleUploadSuccess"
|
|
|
- >
|
|
|
+ <el-date-picker v-if="item.type == 'date'" value-format="YYYY-MM-DD HH:mm:ss" v-model="addForm[item.prop]"
|
|
|
+ type="date" :placeholder="item.placeholder" />
|
|
|
+ <el-upload v-if="item.type == 'image'" v-model:file-list="fileList" :headers="headers" :action="uploadImgUrl"
|
|
|
+ list-type="picture-card" :on-remove="handleRemove" :on-success="handleUploadSuccess">
|
|
|
<el-icon>
|
|
|
<Plus />
|
|
|
</el-icon>
|
|
|
@@ -306,41 +318,43 @@
|
|
|
</template>
|
|
|
|
|
|
<script setup name="CarInfo" lang="ts">
|
|
|
-import { ref, toRaw } from "vue";
|
|
|
-import { useRoute, useRouter } from "vue-router";
|
|
|
-import { listCarInfo, getCarInfo, delCarInfo, addCarInfo, updateCarInfo } from '@/api/carInfo';
|
|
|
-import { CarInfoVO, CarInfoQuery, CarInfoForm } from '@/api/carInfo/types';
|
|
|
-import tableElm from "@/components/Public/table.vue";
|
|
|
-import { getDicts } from '@/api/system/dict/data'
|
|
|
-import tableJson from "@/assets/json/table.json"
|
|
|
-import useTagsViewStore from '@/store/modules/tagsView';
|
|
|
-import { allocatedUserList, authUserCancel, authUserCancelAll } from "@/api/system/role";
|
|
|
-import { listCarPath, getCarPath, delCarPath, addCarPath, updateCarPath } from '@/api/carPath';
|
|
|
-import type { UploadProps, UploadUserFile } from 'element-plus'
|
|
|
-import { globalHeaders } from '@/utils/request';
|
|
|
-import { getToken } from '@/utils/auth';
|
|
|
-
|
|
|
-const fileList = ref<UploadUserFile[]>([
|
|
|
-
|
|
|
-])
|
|
|
-
|
|
|
-const fileData = ref([])
|
|
|
-
|
|
|
-const headers = ref({
|
|
|
- "Authorization":'Bearer ' +getToken(),
|
|
|
- "Clientid":'e5cd7e4891bf95d1d19206ce24a7b32e',
|
|
|
- "Accept":'application/json, text/plain, */*'
|
|
|
-});
|
|
|
-
|
|
|
-const baseUrl = import.meta.env.VITE_APP_BASE_API;
|
|
|
-const uploadImgUrl = ref(baseUrl + "/resource/oss/upload"); // 上传的图片服务器地址
|
|
|
-
|
|
|
-const route = useRoute();
|
|
|
-const router = useRouter();
|
|
|
-
|
|
|
-const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
|
|
-
|
|
|
-const initFormData: CarInfoForm = {
|
|
|
+ import api from "@/api/system/user"
|
|
|
+ import { listDept } from "@/api/system/dept"
|
|
|
+ import { ref, toRaw } from "vue";
|
|
|
+ import { useRoute, useRouter } from "vue-router";
|
|
|
+ import { listCarInfo, getCarInfo, delCarInfo, addCarInfo, updateCarInfo } from '@/api/carInfo';
|
|
|
+ import { CarInfoVO, CarInfoQuery, CarInfoForm } from '@/api/carInfo/types';
|
|
|
+ import tableElm from "@/components/Public/table.vue";
|
|
|
+ import { getDicts } from '@/api/system/dict/data';
|
|
|
+ import tableJson from "@/assets/json/table.json";
|
|
|
+ import useTagsViewStore from '@/store/modules/tagsView';
|
|
|
+ import { allocatedUserList, authUserCancel, authUserCancelAll } from "@/api/system/role";
|
|
|
+ import { listCarPath, getCarPath, delCarPath, addCarPath, updateCarPath } from '@/api/carPath';
|
|
|
+ import type { UploadProps, UploadUserFile } from 'element-plus';
|
|
|
+ import { globalHeaders } from '@/utils/request';
|
|
|
+ import { getToken } from '@/utils/auth';
|
|
|
+
|
|
|
+ const fileList = ref < UploadUserFile[] > ([
|
|
|
+
|
|
|
+ ])
|
|
|
+
|
|
|
+ const fileData = ref([])
|
|
|
+
|
|
|
+ const headers = ref({
|
|
|
+ "Authorization": 'Bearer ' + getToken(),
|
|
|
+ "Clientid": 'e5cd7e4891bf95d1d19206ce24a7b32e',
|
|
|
+ "Accept": 'application/json, text/plain, */*'
|
|
|
+ });
|
|
|
+
|
|
|
+ const baseUrl = import.meta.env.VITE_APP_BASE_API;
|
|
|
+ const uploadImgUrl = ref(baseUrl + "/resource/oss/upload"); // 上传的图片服务器地址
|
|
|
+
|
|
|
+ const route = useRoute();
|
|
|
+ const router = useRouter();
|
|
|
+
|
|
|
+ const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
|
|
+
|
|
|
+ const initFormData: CarInfoForm = {
|
|
|
id: undefined,
|
|
|
carNum: undefined,
|
|
|
carType: undefined,
|
|
|
@@ -354,15 +368,15 @@ const initFormData: CarInfoForm = {
|
|
|
changeInfo: undefined,
|
|
|
ext1: undefined,
|
|
|
ext2: undefined
|
|
|
-}
|
|
|
+ }
|
|
|
|
|
|
-const ext2 = ref({
|
|
|
+ const ext2 = ref({
|
|
|
driverInfo: undefined,
|
|
|
attendantInfo: undefined,
|
|
|
pathId: undefined
|
|
|
-})
|
|
|
+ })
|
|
|
|
|
|
-const formParams = ref({
|
|
|
+ const formParams = ref({
|
|
|
bussinessType: undefined,
|
|
|
energyType: undefined,
|
|
|
wangge: undefined,
|
|
|
@@ -380,152 +394,156 @@ const formParams = ref({
|
|
|
synx: undefined,
|
|
|
edzz: undefined,
|
|
|
sydw: undefined
|
|
|
-})
|
|
|
+ })
|
|
|
+
|
|
|
+ const upload = reactive < UploadOption > ({
|
|
|
+ headers: globalHeaders(),
|
|
|
+ url: 'http://47.104.97.60/api/resource/oss/upload'
|
|
|
+ })
|
|
|
|
|
|
-const upload = reactive<UploadOption>({
|
|
|
- headers: globalHeaders(),
|
|
|
- url: 'http://47.104.97.60/api/resource/oss/upload'
|
|
|
-})
|
|
|
+ const table = ref(tableElm)
|
|
|
|
|
|
-const table = ref(tableElm)
|
|
|
+ const addForm = ref({});
|
|
|
|
|
|
-const addForm = ref({});
|
|
|
+ const activeName = ref("1");
|
|
|
|
|
|
-const activeName = ref("1");
|
|
|
+ const deptOptions = ref < DeptVO[] > ([]);
|
|
|
+ const deptTreeRef = ref < ElTreeInstance > ();
|
|
|
+ const deptName = ref('');
|
|
|
|
|
|
-const data = reactive<PageData<CarInfoForm, CarInfoQuery>>({
|
|
|
+ const data = reactive < PageData < CarInfoForm, CarInfoQuery>> ({
|
|
|
form: { ...initFormData },
|
|
|
queryParams: {
|
|
|
- pageNum: 1,
|
|
|
- pageSize: 10,
|
|
|
- carNum: undefined,
|
|
|
- carType: undefined,
|
|
|
- deviceInfos: undefined,
|
|
|
- repairInfo: undefined,
|
|
|
- maintenanceInfo: undefined,
|
|
|
- insuranceInfo: undefined,
|
|
|
- inspectionInfo: undefined,
|
|
|
- trafficAccidentInfo: undefined,
|
|
|
- violationInfo: undefined,
|
|
|
- changeInfo: undefined,
|
|
|
- ext1: undefined,
|
|
|
- ext2: undefined,
|
|
|
- params: {
|
|
|
- }
|
|
|
+ pageNum: 1,
|
|
|
+ pageSize: 10,
|
|
|
+ carNum: undefined,
|
|
|
+ carType: undefined,
|
|
|
+ deviceInfos: undefined,
|
|
|
+ repairInfo: undefined,
|
|
|
+ maintenanceInfo: undefined,
|
|
|
+ insuranceInfo: undefined,
|
|
|
+ inspectionInfo: undefined,
|
|
|
+ trafficAccidentInfo: undefined,
|
|
|
+ violationInfo: undefined,
|
|
|
+ changeInfo: undefined,
|
|
|
+ ext1: undefined,
|
|
|
+ ext2: undefined,
|
|
|
+ params: {
|
|
|
+ }
|
|
|
},
|
|
|
rules: {
|
|
|
- id: [
|
|
|
- { required: true, message: "编号不能为空", trigger: "blur" }
|
|
|
- ],
|
|
|
- carNum: [
|
|
|
- { required: true, message: "车牌号不能为空", trigger: "blur" }
|
|
|
- ],
|
|
|
- carType: [
|
|
|
- { required: true, message: "车类型不能为空", trigger: "change" }
|
|
|
- ],
|
|
|
- deviceInfos: [
|
|
|
- { required: true, message: "所有车载设备信息不能为空", trigger: "blur" }
|
|
|
- ],
|
|
|
- repairInfo: [
|
|
|
- { required: true, message: "维修信息不能为空", trigger: "blur" }
|
|
|
- ],
|
|
|
- maintenanceInfo: [
|
|
|
- { required: true, message: "保养信息不能为空", trigger: "blur" }
|
|
|
- ],
|
|
|
- insuranceInfo: [
|
|
|
- { required: true, message: "保险信息不能为空", trigger: "blur" }
|
|
|
- ],
|
|
|
- inspectionInfo: [
|
|
|
- { required: true, message: "年检信息不能为空", trigger: "blur" }
|
|
|
- ],
|
|
|
- trafficAccidentInfo: [
|
|
|
- { required: true, message: "交通事故信息不能为空", trigger: "blur" }
|
|
|
- ],
|
|
|
- violationInfo: [
|
|
|
- { required: true, message: "违章信息不能为空", trigger: "blur" }
|
|
|
- ],
|
|
|
- changeInfo: [
|
|
|
- { required: true, message: "车辆变更信息不能为空", trigger: "blur" }
|
|
|
- ],
|
|
|
- ext1: [
|
|
|
- { required: true, message: "扩展1不能为空", trigger: "blur" }
|
|
|
- ],
|
|
|
- ext2: [
|
|
|
- { required: true, message: "扩展2不能为空", trigger: "blur" }
|
|
|
- ]
|
|
|
+ id: [
|
|
|
+ { required: true, message: "编号不能为空", trigger: "blur" }
|
|
|
+ ],
|
|
|
+ carNum: [
|
|
|
+ { required: true, message: "车牌号不能为空", trigger: "blur" }
|
|
|
+ ],
|
|
|
+ carType: [
|
|
|
+ { required: true, message: "车类型不能为空", trigger: "change" }
|
|
|
+ ],
|
|
|
+ deviceInfos: [
|
|
|
+ { required: true, message: "所有车载设备信息不能为空", trigger: "blur" }
|
|
|
+ ],
|
|
|
+ repairInfo: [
|
|
|
+ { required: true, message: "维修信息不能为空", trigger: "blur" }
|
|
|
+ ],
|
|
|
+ maintenanceInfo: [
|
|
|
+ { required: true, message: "保养信息不能为空", trigger: "blur" }
|
|
|
+ ],
|
|
|
+ insuranceInfo: [
|
|
|
+ { required: true, message: "保险信息不能为空", trigger: "blur" }
|
|
|
+ ],
|
|
|
+ inspectionInfo: [
|
|
|
+ { required: true, message: "年检信息不能为空", trigger: "blur" }
|
|
|
+ ],
|
|
|
+ trafficAccidentInfo: [
|
|
|
+ { required: true, message: "交通事故信息不能为空", trigger: "blur" }
|
|
|
+ ],
|
|
|
+ violationInfo: [
|
|
|
+ { required: true, message: "违章信息不能为空", trigger: "blur" }
|
|
|
+ ],
|
|
|
+ changeInfo: [
|
|
|
+ { required: true, message: "车辆变更信息不能为空", trigger: "blur" }
|
|
|
+ ],
|
|
|
+ ext1: [
|
|
|
+ { required: true, message: "扩展1不能为空", trigger: "blur" }
|
|
|
+ ],
|
|
|
+ ext2: [
|
|
|
+ { required: true, message: "扩展2不能为空", trigger: "blur" }
|
|
|
+ ]
|
|
|
}
|
|
|
-});
|
|
|
+ });
|
|
|
|
|
|
-const buttonLoading = ref(false);
|
|
|
+ const buttonLoading = ref(false);
|
|
|
|
|
|
-const { queryParams, form, rules } = toRefs(data);
|
|
|
+ const { queryParams, form, rules } = toRefs(data);
|
|
|
|
|
|
-const formList = ref([
|
|
|
+ const formList = ref([
|
|
|
{ placeholder: "请选择维修日期", type: 'date', label: '维修日期', prop: 'carNum', visible: true, isTemplate: false },
|
|
|
{ placeholder: "请输入维修内容", type: 'input', label: '维修内容', prop: 'carNum', visible: true, isTemplate: false },
|
|
|
{ placeholder: "请输入金额", type: 'input', label: '金额', prop: 'carNum', visible: true, isTemplate: false },
|
|
|
-])
|
|
|
+ ])
|
|
|
|
|
|
|
|
|
-const sjList = ref([])
|
|
|
-const driver = ref(null)
|
|
|
-const ckList = ref([])
|
|
|
-const ck = ref(null)
|
|
|
+ const sjList = ref([])
|
|
|
+ const driver = ref(null)
|
|
|
+ const ckList = ref([])
|
|
|
+ const ck = ref(null)
|
|
|
|
|
|
-const reset = () => {
|
|
|
+ const reset = () => {
|
|
|
console.log(111111111111)
|
|
|
console.log(upload)
|
|
|
form.value = {};
|
|
|
console.log(0)
|
|
|
-}
|
|
|
+ }
|
|
|
|
|
|
-const columns = ref(
|
|
|
+ const columns = ref(
|
|
|
[[
|
|
|
- // {label: '上层位置', prop: 'v', visible: true},
|
|
|
- { label: '日期', prop: 'carNum', visible: true, isTemplate: false },
|
|
|
- { label: '维修内容', prop: 'carNum', visible: true, isTemplate: false },
|
|
|
- { label: '金额', prop: 'carNum', visible: true, isTemplate: false },
|
|
|
+ // {label: '上层位置', prop: 'v', visible: true},
|
|
|
+ { label: '日期', prop: 'carNum', visible: true, isTemplate: false },
|
|
|
+ { label: '维修内容', prop: 'carNum', visible: true, isTemplate: false },
|
|
|
+ { label: '金额', prop: 'carNum', visible: true, isTemplate: false },
|
|
|
]])
|
|
|
|
|
|
-const dialog = reactive<DialogOption>({
|
|
|
+ const dialog = reactive < DialogOption > ({
|
|
|
visible: false,
|
|
|
title: ''
|
|
|
-});
|
|
|
+ });
|
|
|
|
|
|
-const carPathList = ref([])
|
|
|
+ const carPathList = ref([])
|
|
|
|
|
|
-const carTypeList = ref([]);
|
|
|
-const energyTypeList = ref([])
|
|
|
-const bussinessTypeList = ref([])
|
|
|
-const carId = ref(0);
|
|
|
+ const carTypeList = ref([]);
|
|
|
+ const energyTypeList = ref([])
|
|
|
+ const bussinessTypeList = ref([])
|
|
|
+ const carId = ref(0);
|
|
|
|
|
|
-const handleRemove = (uploadFile, uploadFiles) =>{
|
|
|
+ const handleRemove = (uploadFile, uploadFiles) => {
|
|
|
console.log(uploadFile)
|
|
|
const arry = fileData.value.filter((item) => item.ossId != fileData.value.ossId)
|
|
|
fileData.value = arry;
|
|
|
fileList.value = arry;
|
|
|
-}
|
|
|
+ }
|
|
|
|
|
|
-const getDictsData = (param, obj) => {
|
|
|
+ const getDictsData = (param, obj) => {
|
|
|
getDicts(param).then(res => {
|
|
|
- obj.value = res.data;
|
|
|
+ obj.value = res.data;
|
|
|
})
|
|
|
-}
|
|
|
-
|
|
|
-const handleUploadSuccess = (response, file, fileList) =>{
|
|
|
- console.log(response)
|
|
|
- console.log(response.data.url)
|
|
|
- if(response.code == 200){
|
|
|
- var obj = {
|
|
|
- name:response.data.fileName,
|
|
|
- url:response.data.url.replaceAll("http://127.0.0.1:9000","https://khy.xiaole.vip/khyfile").split('?')[0],
|
|
|
- ossId:response.data.ossId
|
|
|
- }
|
|
|
- }
|
|
|
- fileData.value.push(obj)
|
|
|
-}
|
|
|
+ }
|
|
|
+
|
|
|
+ const handleUploadSuccess = (response, file, fileList) => {
|
|
|
+ console.log(response)
|
|
|
+ console.log(response.data.url)
|
|
|
+ if (response.code == 200) {
|
|
|
+ var obj = {
|
|
|
+ name: response.data.fileName,
|
|
|
+ url: response.data.url.replaceAll("http://127.0.0.1:9000", "https://khy.xiaole.vip/khyfile").split('?')[0],
|
|
|
+ ossId: response.data.ossId
|
|
|
+ }
|
|
|
+ }
|
|
|
+ fileData.value.push(obj)
|
|
|
+ }
|
|
|
|
|
|
-const updateObj = (data) => {
|
|
|
+ const updateObj = (data) => {
|
|
|
addObj();
|
|
|
dialog.visible = true
|
|
|
console.log(data)
|
|
|
@@ -534,12 +552,12 @@ const updateObj = (data) => {
|
|
|
fileList.value = JSON.parse(data.fileList)
|
|
|
fileData.value = JSON.parse(data.fileList)
|
|
|
console.log(addForm.value)
|
|
|
-}
|
|
|
+ }
|
|
|
|
|
|
-const deleteObj = (data) => {
|
|
|
+ const deleteObj = (data) => {
|
|
|
console.log(data.id);
|
|
|
var param = {
|
|
|
- id: route.query.id,
|
|
|
+ id: route.query.id,
|
|
|
}
|
|
|
console.log(tableJson[activeName.value - 1]);
|
|
|
let prop = tableJson[activeName.value - 1].dataName
|
|
|
@@ -549,48 +567,48 @@ const deleteObj = (data) => {
|
|
|
// console.log(date)
|
|
|
param[prop] = JSON.stringify(arry);
|
|
|
updateCarInfo(param).then(res => {
|
|
|
- addForm.value = {}
|
|
|
- dialog.visible = false
|
|
|
- form.value[prop] = JSON.stringify(arry)
|
|
|
- setTableData(activeName.value);
|
|
|
+ addForm.value = {}
|
|
|
+ dialog.visible = false
|
|
|
+ form.value[prop] = JSON.stringify(arry)
|
|
|
+ setTableData(activeName.value);
|
|
|
})
|
|
|
-}
|
|
|
+ }
|
|
|
|
|
|
-const getUserList = async () => {
|
|
|
+ const getUserList = async () => {
|
|
|
const res = await allocatedUserList({ pageSize: 1000, roleId: '1763484881548447746' });
|
|
|
sjList.value = res.rows
|
|
|
const ckres = await allocatedUserList({ pageSize: 1000, roleId: '1763484977044361217' });
|
|
|
ckList.value = ckres.rows
|
|
|
-}
|
|
|
+ }
|
|
|
|
|
|
|
|
|
-const childrenClick = (data) => {
|
|
|
+ const childrenClick = (data) => {
|
|
|
if (data.func == 'updateObj') {
|
|
|
- updateObj(data.data)
|
|
|
+ updateObj(data.data)
|
|
|
} else if (data.func == 'deleteObj') {
|
|
|
- deleteObj(data.data)
|
|
|
+ deleteObj(data.data)
|
|
|
}
|
|
|
-}
|
|
|
+ }
|
|
|
|
|
|
-const submit = async () => {
|
|
|
+ const submit = async () => {
|
|
|
form.value.ext1 = JSON.stringify(formParams.value);
|
|
|
form.value.ext2 = JSON.stringify(ext2.value)
|
|
|
console.log(form.value)
|
|
|
buttonLoading.value = true;
|
|
|
if (form.value.id) {
|
|
|
- await updateCarInfo(form.value).finally(() => buttonLoading.value = false);
|
|
|
+ await updateCarInfo(form.value).finally(() => buttonLoading.value = false);
|
|
|
} else {
|
|
|
- await addCarInfo(form.value).finally(() => buttonLoading.value = false);
|
|
|
+ await addCarInfo(form.value).finally(() => buttonLoading.value = false);
|
|
|
}
|
|
|
proxy?.$modal.msgSuccess("修改成功");
|
|
|
useTagsViewStore().delView(route);
|
|
|
router.push({ path: '/car/carInfo' })
|
|
|
-}
|
|
|
+ }
|
|
|
|
|
|
-const submitForm = () => {
|
|
|
+ const submitForm = () => {
|
|
|
console.log(addForm.value);
|
|
|
var param = {
|
|
|
- id: route.query.id,
|
|
|
+ id: route.query.id,
|
|
|
}
|
|
|
console.log(tableJson[activeName.value - 1]);
|
|
|
let prop = tableJson[activeName.value - 1].dataName
|
|
|
@@ -599,86 +617,87 @@ const submitForm = () => {
|
|
|
console.log(data)
|
|
|
var arry = [];
|
|
|
if (data) {
|
|
|
- if (data.length > 0) {
|
|
|
- arry = JSON.parse(data)
|
|
|
- }
|
|
|
+ if (data.length > 0) {
|
|
|
+ arry = JSON.parse(data)
|
|
|
+ }
|
|
|
}
|
|
|
if (addForm.value.id != null) {
|
|
|
- addForm.value.fileList = JSON.stringify(fileData.value)
|
|
|
- for (var index in arry) {
|
|
|
- if (arry[index].id == addForm.value.id) {
|
|
|
- arry[index] = addForm.value
|
|
|
- }
|
|
|
+ addForm.value.fileList = JSON.stringify(fileData.value)
|
|
|
+ for (var index in arry) {
|
|
|
+ if (arry[index].id == addForm.value.id) {
|
|
|
+ arry[index] = addForm.value
|
|
|
}
|
|
|
+ }
|
|
|
} else {
|
|
|
- addForm.value.fileList = JSON.stringify(fileData.value)
|
|
|
- addForm.value.id = 'id-' + new Date().getTime().toString(36) + '-' + Math.random().toString(36).substr(2, 9);
|
|
|
- arry.push(addForm.value);
|
|
|
+ addForm.value.fileList = JSON.stringify(fileData.value)
|
|
|
+ addForm.value.id = 'id-' + new Date().getTime().toString(36) + '-' + Math.random().toString(36).substr(2, 9);
|
|
|
+ arry.push(addForm.value);
|
|
|
}
|
|
|
param[prop] = JSON.stringify(arry);
|
|
|
updateCarInfo(param).then(res => {
|
|
|
- addForm.value = {}
|
|
|
- dialog.visible = false
|
|
|
- form.value[prop] = JSON.stringify(arry)
|
|
|
- setTableData(activeName.value);
|
|
|
+ addForm.value = {}
|
|
|
+ dialog.visible = false
|
|
|
+ form.value[prop] = JSON.stringify(arry)
|
|
|
+ setTableData(activeName.value);
|
|
|
})
|
|
|
-}
|
|
|
+ }
|
|
|
|
|
|
|
|
|
-const tabClick = (tab, event) => {
|
|
|
+ const tabClick = (tab, event) => {
|
|
|
setTimeout(() => {
|
|
|
- setTableData(activeName.value);
|
|
|
+ setTableData(activeName.value);
|
|
|
}, 200);
|
|
|
-}
|
|
|
+ }
|
|
|
|
|
|
-const setTableData = (tab) => {
|
|
|
+ const setTableData = (tab) => {
|
|
|
console.log(tab)
|
|
|
let obj = tableJson[tab - 1]
|
|
|
var data = eval("form.value." + obj.dataName);
|
|
|
console.log(data)
|
|
|
table.value.setDataList(JSON.parse(data));
|
|
|
table.value.setButton(obj.buttons);
|
|
|
-}
|
|
|
-
|
|
|
-// onMounted(() => {
|
|
|
-// // getDictsData('tbl_car_type', carTypeList);
|
|
|
-// // getDictsData('energy_type', energyTypeList);
|
|
|
-// // getDictsData('business_type', bussinessTypeList);
|
|
|
-// reset();
|
|
|
-// setTimeout(() => {
|
|
|
-// getData();
|
|
|
-// }, 100);
|
|
|
-// });
|
|
|
-
|
|
|
-const setData = async (id) => {
|
|
|
+ }
|
|
|
+
|
|
|
+ // onMounted(() => {
|
|
|
+ // // getDictsData('tbl_car_type', carTypeList);
|
|
|
+ // // getDictsData('energy_type', energyTypeList);
|
|
|
+ // // getDictsData('business_type', bussinessTypeList);
|
|
|
+ // reset();
|
|
|
+ // setTimeout(() => {
|
|
|
+ // getData();
|
|
|
+ // }, 100);
|
|
|
+ // });
|
|
|
+
|
|
|
+ const setData = async (id) => {
|
|
|
const res = await getCarInfo(id);
|
|
|
formParams.value = JSON.parse(res.data.ext1)
|
|
|
+ console.log(formParams.value)
|
|
|
if (res.data.ext2 != null) {
|
|
|
- ext2.value = JSON.parse(res.data.ext2)
|
|
|
+ ext2.value = JSON.parse(res.data.ext2)
|
|
|
}
|
|
|
form.value = res.data
|
|
|
// formParams.value = res
|
|
|
-}
|
|
|
+ }
|
|
|
|
|
|
-const goBack = () => {
|
|
|
+ const goBack = () => {
|
|
|
useTagsViewStore().delView(route);
|
|
|
router.back();
|
|
|
-}
|
|
|
+ }
|
|
|
|
|
|
-const addObj = () => {
|
|
|
+ const addObj = () => {
|
|
|
formList.value = tableJson[activeName.value - 1].columns
|
|
|
console.log(formList.value)
|
|
|
addForm.value = {}
|
|
|
dialog.visible = true
|
|
|
-}
|
|
|
+ }
|
|
|
|
|
|
-const getcarPathList = async () => {
|
|
|
+ const getcarPathList = async () => {
|
|
|
const res = await listCarPath(queryParams.value);
|
|
|
carPathList.value = res.rows;
|
|
|
-}
|
|
|
+ }
|
|
|
|
|
|
|
|
|
-const getData = async () => {
|
|
|
+ const getData = async () => {
|
|
|
let objId = route.query.id
|
|
|
carId.value = route.query.id
|
|
|
await getcarPathList();
|
|
|
@@ -687,42 +706,49 @@ const getData = async () => {
|
|
|
await getDictsData('energy_type', energyTypeList);
|
|
|
await getDictsData('business_type', bussinessTypeList);
|
|
|
if (objId != 0 && objId != null) {
|
|
|
- await setData(objId);
|
|
|
- setTableData(activeName.value);
|
|
|
+ await setData(objId);
|
|
|
+ setTableData(activeName.value);
|
|
|
}
|
|
|
for (var i in tableJson) {
|
|
|
- var obj = {}
|
|
|
- var columnsList = [];
|
|
|
- columns.value[i] = [];
|
|
|
- for (var j in tableJson[i].columns) {
|
|
|
- var dataObj = tableJson[i].columns[j]
|
|
|
- var obj = {
|
|
|
- label: dataObj.label,
|
|
|
- prop: dataObj.prop,
|
|
|
- visible: true,
|
|
|
- }
|
|
|
- columns.value[i].push(obj);
|
|
|
+ var obj = {}
|
|
|
+ var columnsList = [];
|
|
|
+ columns.value[i] = [];
|
|
|
+ for (var j in tableJson[i].columns) {
|
|
|
+ var dataObj = tableJson[i].columns[j]
|
|
|
+ var obj = {
|
|
|
+ label: dataObj.label,
|
|
|
+ prop: dataObj.prop,
|
|
|
+ visible: true,
|
|
|
}
|
|
|
+ columns.value[i].push(obj);
|
|
|
+ }
|
|
|
}
|
|
|
-}
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ const getTreeSelect = async () => {
|
|
|
+ const res = await api.deptTreeSelect();
|
|
|
+ deptOptions.value = res.data;
|
|
|
+ };
|
|
|
|
|
|
|
|
|
|
|
|
-reset();
|
|
|
-setTimeout(() => {
|
|
|
+ reset();
|
|
|
+ getTreeSelect();
|
|
|
+ setTimeout(() => {
|
|
|
getData();
|
|
|
-}, 100);
|
|
|
+ }, 100);
|
|
|
</script>
|
|
|
|
|
|
<style lang="scss" scoped>
|
|
|
-.card-header {
|
|
|
+ .card-header {
|
|
|
display: flex;
|
|
|
flex-direction: row;
|
|
|
justify-content: space-between;
|
|
|
-}
|
|
|
+ }
|
|
|
|
|
|
-.content-w {
|
|
|
+ .content-w {
|
|
|
display: inline-flex;
|
|
|
max-width: 160px;
|
|
|
-}
|
|
|
-</style>
|
|
|
+ }
|
|
|
+</style>
|