From bc04553e17adb00ab8205dfa9bfed58d0e0a2963 Mon Sep 17 00:00:00 2001
From: zhangzeli <123456>
Date: 星期三, 24 十一月 2021 09:04:33 +0800
Subject: [PATCH] 车辆
---
src/views/your/area-manage/areaManage.vue | 48
src/views/your/car-manage/carManage.vue | 1
src/views/your/addOilInfo-manage/exportColumn.js | 56 +
src/views/your/accident-manage/accidentManage.vue | 1
src/views/your/addOilInfo-manage/addOilInfoManage.vue | 899 ++++++++++++++++++++++++
src/views/your/carInfo-manage/exportColumn.js | 53 +
src/views/your/addOil-manage/addOilManage.vue | 70 +
src/views/your/addOilInfo-manage/addOilInfoManage.less | 13
src/views/your/suggest-manage/suggestManage.vue | 18
src/views/your/carInfo-manage/carInfoManage.less | 13
src/api/open.js | 24
src/views/your/carInfo-manage/carInfoManage.vue | 964 ++++++++++++++++++++++++++
12 files changed, 2,106 insertions(+), 54 deletions(-)
diff --git a/src/api/open.js b/src/api/open.js
index 617e84f..0526a65 100644
--- a/src/api/open.js
+++ b/src/api/open.js
@@ -64,7 +64,7 @@
// 鑾峰彇鎵�鏈夎溅杈嗕俊鎭�
export const getAll = (params) => {
- return getRequest('/car/getAll', params)
+ return getRequest('/car/getAllCar', params)
}
// 鍒嗛〉鑾峰彇鍔犳补淇℃伅
@@ -180,4 +180,24 @@
// 鏌ヨ鐗囧尯淇℃伅
export const getSuggest = (params) => {
return getRequest('/suggest/getByPage', params)
-}
\ No newline at end of file
+}
+
+// 鍒犻櫎鎺ヨ揣浜轰俊鎭�
+export const deleteSuggest = (params) => {
+ return postRequest('/suggest/delByIds', params)
+}
+
+// 鏌ヨ鎺ヨ揣浜轰俊鎭�
+export const getCar = (params) => {
+ return getRequest('/car/getAll', params)
+}
+
+// 瀵煎嚭excel
+export const getOilExcel = (params) => {
+ return getRequest('/addOil/getExcel', params)
+}
+
+// 鏍规嵁杞﹁締ID鏌ヨ鍔犳补璁板綍
+export const getByDate = (params) => {
+ return getRequest('/addOil/getByDate', params)
+}
diff --git a/src/views/your/accident-manage/accidentManage.vue b/src/views/your/accident-manage/accidentManage.vue
index e20fadd..edede87 100644
--- a/src/views/your/accident-manage/accidentManage.vue
+++ b/src/views/your/accident-manage/accidentManage.vue
@@ -8,7 +8,6 @@
<Card>
<Row class="operation">
<Button @click="addOil" type="primary" icon="md-add">娣诲姞浜嬫晠璁板綍</Button>
- <Button @click="delAll" icon="md-trash">鎵归噺鍒犻櫎</Button>
<Button @click="init" icon="md-refresh">鍒锋柊</Button>
<Button type="dashed" @click="openTip = !openTip">{{
openTip ? "鍏抽棴鎻愮ず" : "寮�鍚彁绀�"
diff --git a/src/views/your/addOil-manage/addOilManage.vue b/src/views/your/addOil-manage/addOilManage.vue
index e96119f..1cd128a 100644
--- a/src/views/your/addOil-manage/addOilManage.vue
+++ b/src/views/your/addOil-manage/addOilManage.vue
@@ -8,7 +8,6 @@
<Card>
<Row class="operation">
<Button @click="addOil" type="primary" icon="md-add">娣诲姞鍔犳补璁板綍</Button>
- <Button @click="delAll" icon="md-trash">鎵归噺鍒犻櫎</Button>
<Button @click="init" icon="md-refresh">鍒锋柊</Button>
<Button type="dashed" @click="openTip = !openTip">{{
openTip ? "鍏抽棴鎻愮ず" : "寮�鍚彁绀�"
@@ -66,29 +65,46 @@
:label-width="80"
:rules="addOilFormValidate"
>
- <FormItem label="杞﹁締" prop="carId">
- <Select v-model="addOilForm.carId" filterable>
- <Option v-for="item in carList" :value="item.id">{{ item.carNo }}</Option>
- </Select>
- </FormItem>
- <Form-item label="鍔犳补鏃ユ湡" prop="addDate">
- <Row>
- <Col span="11">
+ <Row :gutter="0">
+ <Col span="12">
+ <FormItem label="杞﹁締" prop="carId">
+ <Select v-model="addOilForm.carId" filterable>
+ <Option v-for="item in carList" :value="item.id">{{ item.carNo }}</Option>
+ </Select>
+ </FormItem>
+ </Col>
+ <Col span="12">
+ <Form-item label="鍔犳补鏃ユ湡" prop="addDate">
<Date-picker @on-change="change1" type="date" value="yyyy-MM-dd" placeholder="閫夋嫨鏃ユ湡" v-model="addOilForm.addDate"></Date-picker>
- </Col>
- </Row>
- </Form-item>
- <FormItem label="鍔犳补閲�" prop="amount">
- <Input v-model="addOilForm.amount" type="number"/>
- </FormItem>
- <FormItem label="鍗曚环" prop="unitPrice">
- <Input v-model="addOilForm.unitPrice" type="number"/>
- </FormItem>
- <FormItem label="鍔犳补閲戦" prop="money">
- <Input v-model="addOilForm.money" type="number"/>
- </FormItem>
- <FormItem label="鍔犳补鏃堕噷绋�" prop="mileage">
- <Input v-model="addOilForm.mileage" type="number"/>
+ </Form-item>
+ </Col>
+ </Row>
+ <Row :gutter="0">
+ <Col span="12">
+ <FormItem label="鍔犳补閲�" prop="amount">
+ <Input v-model="addOilForm.amount" type="number"/>
+ </FormItem>
+ </Col>
+ <Col span="12">
+ <FormItem label="鍗曚环" prop="unitPrice">
+ <Input v-model="addOilForm.unitPrice" type="number"/>
+ </FormItem>
+ </Col>
+ </Row>
+ <Row :gutter="0">
+ <Col span="12">
+ <FormItem label="鍔犳补閲戦" prop="money">
+ <Input v-model="addOilForm.money" type="number"/>
+ </FormItem>
+ </Col>
+ <Col span="12">
+ <FormItem label="閲岀▼" prop="mileage">
+ <Input v-model="addOilForm.mileage" type="number"/>
+ </FormItem>
+ </Col>
+ </Row>
+ <FormItem label="鍔犳补鍗″彿" prop="addOilCode">
+ <Input v-model="addOilForm.addOilCode" />
</FormItem>
<FormItem label="澶囨敞" prop="remarks">
<Input v-model="addOilForm.remarks" />
@@ -262,6 +278,12 @@
sortable: true,
},
{
+ title: "鍔犳补鍗″彿",
+ key: "addOilCode",
+ width: 100,
+ sortable: true,
+ },
+ {
title: "鍔犳补鏃ユ湡",
key: "addDate",
width: 150,
@@ -424,7 +446,7 @@
this.loading = false;
if (res.success) {
this.data = res.result.records;
- this.total = res.result.total;
+ this.total = res.result.length;
}
});
},
diff --git a/src/views/your/addOilInfo-manage/addOilInfoManage.less b/src/views/your/addOilInfo-manage/addOilInfoManage.less
new file mode 100644
index 0000000..789f8db
--- /dev/null
+++ b/src/views/your/addOilInfo-manage/addOilInfoManage.less
@@ -0,0 +1,13 @@
+.permModal {
+ .ivu-modal-body {
+ max-height: 560px;
+ overflow: auto;
+ }
+}
+
+.depModal {
+ .ivu-modal-body {
+ max-height: 500px;
+ overflow: auto;
+ }
+}
\ No newline at end of file
diff --git a/src/views/your/addOilInfo-manage/addOilInfoManage.vue b/src/views/your/addOilInfo-manage/addOilInfoManage.vue
new file mode 100644
index 0000000..7f39e8b
--- /dev/null
+++ b/src/views/your/addOilInfo-manage/addOilInfoManage.vue
@@ -0,0 +1,899 @@
+<style lang="less">
+ @import "@/styles/table-common.less";
+ @import "@/styles/drawer-common.less";
+ @import "./addOilInfoManage.less";
+</style>
+<template>
+ <div class="search">
+ <Card>
+ <Row class="operation">
+ <Button @click="init" icon="md-refresh">鍒锋柊</Button>
+ <Button type="dashed" @click="openTip = !openTip">{{
+ openTip ? "鍏抽棴鎻愮ず" : "寮�鍚彁绀�"
+ }}</Button>
+ <Date-picker v-model="value" @on-change="getDataList"
+ value-format="yyyy-MM-dd" type="daterange" placement="bottom-end" placeholder="璇烽�夋嫨鏃ユ湡" style="width: 240px;padding-left: 20px">
+ </Date-picker>
+ <Dropdown @on-click="handleDropdown" style="padding-left: 20px">
+ <Button>
+ 瀵煎嚭鏁版嵁
+ <Icon type="md-arrow-dropdown" />
+ </Button>
+ <DropdownMenu slot="list">
+ <DropdownItem name="exportAll">瀵煎嚭鎵�閫夋棩鏈熸暟鎹�</DropdownItem>
+ </DropdownMenu>
+ </Dropdown>
+ </Row>
+ <Alert show-icon v-show="openTip">
+ 宸查�夋嫨
+ <span class="select-count">{{ selectList.length }}</span> 椤�
+ <a class="select-clear" @click="clearSelectAll">娓呯┖</a>
+ </Alert>
+ <Table
+ :loading="loading"
+ border
+ :columns="columns"
+ :data="data"
+ ref="table"
+ sortable="custom"
+ @on-sort-change="changeSort"
+ @on-selection-change="changeSelect"
+ ></Table>
+ <Row type="flex" justify="end" class="page">
+ <Page
+ :current="searchForm.pageNumber"
+ :total="total"
+ :page-size="searchForm.pageSize"
+ @on-change="changePage"
+ @on-page-size-change="changePageSize"
+ :page-size-opts="[10, 20, 50]"
+ size="small"
+ show-total
+ show-elevator
+ show-sizer
+ v-show="this.page"
+ ></Page>
+ </Row>
+ </Card>
+
+ <!-- 缂栬緫 -->
+ <Modal
+ :title="modalTitle"
+ v-model="roleModalVisible"
+ :mask-closable="false"
+ :width="500"
+ >
+ </Modal>
+ <!-- 鑿滃崟鏉冮檺 -->
+ <Drawer
+ :title="modalTitle"
+ v-model="permModalVisible"
+ :mask-closable="false"
+ :width="500"
+ draggable
+ >
+ <div :style="{ maxHeight: maxHeight }" class="drawer-content">
+ <div style="position: relative">
+ <Tree
+ ref="tree"
+ :data="permData"
+ show-checkbox
+ :render="renderContent"
+ :check-strictly="true"
+ ></Tree>
+ <Spin size="large" fix v-if="treeLoading"></Spin>
+ </div>
+ </div>
+ <div class="drawer-footer br">
+ <Button
+ type="primary"
+ :loading="submitPermLoading"
+ @click="submitPermEdit"
+ >鎻愪氦</Button
+ >
+ <Button @click="selectTreeAll">鍏ㄩ��/鍙嶉��</Button>
+ <Select
+ v-model="openLevel"
+ @on-change="changeOpen"
+ style="width: 110px"
+ transfer
+ >
+ <Option value="0">灞曞紑鎵�鏈�</Option>
+ <Option value="1">鏀跺悎鎵�鏈�</Option>
+ <Option value="2">浠呭睍寮�涓�绾�</Option>
+ <Option value="3">浠呭睍寮�涓ょ骇</Option>
+ </Select>
+ <Button type="text" @click="cancelPermEdit">鍙栨秷</Button>
+ </div>
+ </Drawer>
+ <!-- 鏁版嵁鏉冮檺 -->
+ <Modal
+ :title="modalTitle"
+ v-model="carModalVisible"
+ :mask-closable="false"
+ :width="500"
+ class="depModal"
+ >
+ <Form :label-width="85" ref="removeForm" :model="removeForm">
+ <FormItem label="绉婚櫎鍘熷洜" prop="removeReason">
+ <Input v-model="removeForm.removeReason"/>
+ </FormItem>
+ </Form>
+ <div v-show="dataType == 1" style="margin-top: 15px">
+ <div style="position: relative">
+ <Tree
+ ref="depTree"
+ :data="depData"
+ :load-data="loadData"
+ @on-toggle-expand="expandCheckDep"
+ multiple
+ style="margin-top: 15px"
+ ></Tree>
+ <Spin size="large" fix v-if="depTreeLoading"></Spin>
+ </div>
+ </div>
+ <div slot="footer">
+ <Button type="text" @click="depModalVisible = false">鍙栨秷</Button>
+ <Button
+ type="primary"
+ :loading="submitDepLoading"
+ @click="submitRemove"
+ >鎻愪氦</Button
+ >
+ </div>
+ </Modal>
+ <Modal
+ v-model="exportModalVisible"
+ :title="exportTitle"
+ :loading="loadingExport"
+ @on-ok="exportCustomData"
+ >
+ <Form ref="exportForm" :label-width="100">
+ <FormItem label="瀵煎嚭鏂囦欢鍚�">
+ <Input v-model="filename" />
+ </FormItem>
+ </Form>
+ </Modal>
+ </div>
+</template>
+
+<script>
+ import {
+ getAllPermissionList,
+ setDefaultRole,
+ editRolePerm,
+ initDepartment,
+ loadDepartment,
+ editRoleDep,
+ } from "@/api/index";
+
+ import {
+ getAll,
+ getAddOilList,
+ addOil,
+ deleteAddOil,
+ getCarList,
+ editCar,
+ deleteCar,
+ getByDate,
+ getOilExcel
+ } from "@/api/open";
+ import util from "@/libs/util.js";
+ import excel from "@/libs/excel.js";
+ import XLSX from 'xlsx';
+ import {exportColumn} from "./exportColumn";
+ export default {
+ name: "car-manage",
+ data() {
+ return {
+ maxHeight: 510,
+ openTip: true,
+ openLevel: "0",
+ loading: true,
+ treeLoading: true,
+ depTreeLoading: true,
+ submitPermLoading: false,
+ submitDepLoading: false,
+ searchKey: "",
+ sortColumn: "createTime",
+ sortType: "desc",
+ modalType: 0,
+ roleModalVisible: false,
+ page: true,
+ carModalVisible: false,
+ exportModalVisible: false,
+ loadingExport: true,
+ permModalVisible: false,
+ depModalVisible: false,
+ modalTitle: "",
+ searchForm: {
+ // 鎼滅储妗嗗垵濮嬪寲瀵硅薄
+ pageNumber: 1, // 褰撳墠椤垫暟
+ pageSize: 10, // 椤甸潰澶у皬
+ sort: "createTime", // 榛樿鎺掑簭瀛楁
+ order: "desc", // 榛樿鎺掑簭鏂瑰紡
+ key: "",
+ },
+ addOilForm: {
+ status : 0
+ },
+ removeForm: {
+ status : 1
+ },
+ addOilFormValidate: {
+ name: [
+ { required: true, message: "瑙掕壊鍚嶇О涓嶈兘涓虹┖", trigger: "change" },
+ ],
+ },
+ submitLoading: false,
+ selectList: [],
+ columns: [
+ {
+ type: "selection",
+ width: 60,
+ align: "center",
+ },
+ {
+ type: "index",
+ width: 60,
+ align: "center",
+ },
+ {
+ title: "杞︾墝鍙�",
+ key: "carNo",
+ width: 100,
+ },
+ {
+ title: "鍔犳补鍗″彿",
+ key: "addOilCode",
+ width: 130,
+ sortable: true,
+ align: "center",
+ },
+ {
+ title: "鍔犳补鏃ユ湡",
+ key: "addDate",
+ width: 120,
+ sortable: true,
+ align: "center",
+ },
+ {
+ title: "鍔犳补閲戦(鍏�)",
+ key: "money",
+ minWidth: 130,
+ sortable: true,
+ align: "center",
+ render: (h, params) => {
+ return h("div",params.row.money==0 ? '':params.row.money);
+ }
+ },
+ {
+ title: "鍔犳补閲�(鍗�)",
+ key: "amount",
+ width: 130,
+ sortable: true,
+ align: "center",
+ render: (h, params) => {
+ return h("div",params.row.amount==0 ? '':params.row.amount);
+ }
+ },
+ {
+ title: "琛屼娇閲岀▼(KM)",
+ key: "mileage",
+ minWidth: 130,
+ sortable: true,
+ align: "center",
+ render: (h, params) => {
+ return h("div",params.row.mileage==0 ? '':params.row.mileage);
+ }
+ },
+ {
+ title: "鐧惧叕閲屾补鑰�(鍗�)",
+ key: "oilWear",
+ minWidth: 150,
+ align: "center",
+ sortable: true,
+ },
+ {
+ title: "澶囨敞",
+ key: "remarks",
+ align: "center",
+ minWidth: 150,
+ },
+ ],
+ data: [],
+ chooseColumns: [],
+ total: 0,
+ permData: [],
+ exportColumns: exportColumn,
+ filename: "鍔犳补鏁版嵁",
+ exportTitle: "纭瀵煎嚭",
+ editRolePermId: "",
+ selectAllFlag: false,
+ depData: [],
+ dataType: 0,
+ editDepartments: [],
+ buyYear:'',
+ carList:[],
+ value:[]
+ };
+ },
+ methods: {
+ change1(e){
+ this.addDate = e;
+ },
+ init() {
+ this.getDataList();
+ // 鑾峰彇鎵�鏈夎彍鍗曟潈闄愭爲
+ this.getPermList();
+ this.getAllCar();
+ },
+ renderContent(h, { root, node, data }) {
+ let icon = "";
+ if (data.level == 0) {
+ icon = "ios-navigate";
+ } else if (data.level == 1) {
+ icon = "md-list-box";
+ } else if (data.level == 2) {
+ icon = "md-list";
+ } else if (data.level == 3) {
+ icon = "md-radio-button-on";
+ } else {
+ icon = "md-radio-button-off";
+ }
+ return h(
+ "span",
+ {
+ style: {
+ display: "inline-block",
+ cursor: "pointer",
+ },
+ on: {
+ click: () => {
+ if (data.status == -1) {
+ return;
+ }
+ data.checked = !data.checked;
+ },
+ },
+ },
+ [
+ h("span", [
+ h("Icon", {
+ props: {
+ type: icon,
+ size: "16",
+ },
+ style: {
+ "margin-right": "8px",
+ "margin-bottom": "3px",
+ },
+ }),
+ h("span", data.title),
+ ]),
+ ]
+ );
+ },
+ handleDropdown(name) {
+ if (name == "refresh") {
+ this.getDataList();
+ } else if (name == "exportData") {
+ if (this.selectList.length <= 0) {
+ this.$Message.warning("鎮ㄨ繕鏈�夋嫨瑕佸鍑虹殑鏁版嵁");
+ return;
+ }
+ this.exportType = "part";
+ this.exportModalVisible = true;
+ this.exportTitle =
+ "纭瀵煎嚭鏁版嵁";
+ } else if (name == "exportAll") {
+ this.exportType = "all";
+ this.exportModalVisible = true;
+ this.exportTitle = "纭瀵煎嚭鍏ㄩ儴鏁版嵁";
+ getOilExcel(this.searchForm).then((res) => {
+ if (res.success) {
+ this.exportData = res.result;
+ }
+ });
+ } else if (name == "importData") {
+ this.importModalVisible = true;
+ }
+ },
+ //瀵煎嚭鏁版嵁
+ exportCustomData() {
+ if (this.filename == "") {
+ this.filename = "鍔犳补鏁版嵁";
+ }
+ // 鍒ゆ柇鍕鹃�夊鍑哄垪
+ let exportColumns = [];
+ this.exportColumns.forEach((e) => {
+ exportColumns.push(e);
+ });
+ this.exportModalVisible = false;
+ let title = [];
+ let key = [];
+ exportColumns.forEach((e) => {
+ title.push(e.title);
+ key.push(e.key);
+ });
+ console.log(this.exportData)
+ const params = {
+ title: title,
+ key: key,
+ data: this.exportData,
+ autoWidth: true,
+ filename: this.filename,
+ };
+ this.exportData.forEach((i) => {
+ console.log(i);
+
+ i.amount = i.amount == 0 ? '': i.amount ;
+ i.unitPrice = i.unitPrice == 0 ? '' : i.unitPrice;
+ i.money = i.money == 0 ? '' : i.money;
+ i.mileage = i.mileage == 0 ? '' : i.mileage;
+ });
+ excel.export_array_to_excel(params);
+ },
+ changePage(v) {
+ this.searchForm.pageNumber = v;
+ this.getDataList();
+ this.clearSelectAll();
+ },
+ changePageSize(v) {
+ this.searchForm.pageSize = v;
+ this.getDataList();
+ },
+ changeSort(e) {
+ this.searchForm.sort = e.key;
+ this.searchForm.order = e.order;
+ if (e.order == "normal") {
+ this.searchForm.order = "";
+ }
+ this.getDataList();
+ },
+ selectDate(dateData) {
+ let date = new Date (dateData)
+ let y = date . getFullYear()
+ let m = date . getMonth() + 1
+ m=m<10?('0'+m):m
+ let d = date.getDate()
+ d = d< 10?('0'+ d):d
+ const time = y + '-' + m + '-' + d;
+ return time
+ },
+ getDataList() {
+ this.loading = true;
+ if (this.value[0]!="" && this.value[1]!=""){
+ this.searchForm.beginTime = this.selectDate(this.value[0]);
+ this.searchForm.endTime = this.selectDate(this.value[1]);
+ this.page=false;
+ }else{
+ this.searchForm.beginTime = "";
+ this.searchForm.endTime = "";
+ }
+ getOilExcel(this.searchForm).then((res) => {
+ this.loading = false;
+ if (res.success) {
+ this.data = res.result;
+ this.total = res.result.length;
+ }
+ });
+ },
+ getPermList() {
+ this.treeLoading = true;
+ getAllPermissionList().then((res) => {
+ if (res.success) {
+ this.deleteDisableNode(res.result);
+ this.permData = res.result;
+ this.treeLoading = false;
+ }
+ this.treeLoading = false;
+ });
+ },
+ // 閫掑綊鏍囪绂佺敤鑺傜偣
+ deleteDisableNode(permData) {
+ let that = this;
+ permData.forEach(function (e) {
+ if (e.status == -1) {
+ e.title = "[宸茬鐢╙ " + e.title;
+ e.disabled = true;
+ }
+ if (e.children && e.children.length > 0) {
+ that.deleteDisableNode(e.children);
+ }
+ });
+ },
+ carRole() {
+ this.roleModalVisible = false;
+ },
+ submitAddOil() {
+ this.addOilForm.addDate = this.addDate;
+ this.$refs.addOilForm.validate((valid) => {
+ if (valid) {
+ if (this.modalType == 0) {
+ // 娣诲姞
+ this.submitLoading = true;
+ addOil(this.addOilForm).then((res) => {
+ this.submitLoading = false;
+ if (res.success) {
+ this.$Message.success("鎿嶄綔鎴愬姛");
+ this.getDataList();
+ this.roleModalVisible = false;
+ }
+ });
+ } else {
+ this.submitLoading = true;
+ addOil(this.addOilForm).then((res) => {
+ this.submitLoading = false;
+ if (res.success) {
+ this.$Message.success("鎿嶄綔鎴愬姛");
+ this.getDataList();
+ this.roleModalVisible = false;
+ }
+ });
+ }
+ }
+ });
+ },
+ submitRemove(){
+ this.$refs.removeForm.validate((valid) => {
+ if (valid) {
+ this.submitLoading = true;
+ editCar(this.removeForm).then((res) => {
+ this.submitLoading = false;
+ if (res.success) {
+ this.$Message.success("鎿嶄綔鎴愬姛");
+ this.getDataList();
+ this.carModalVisible = false;
+ }
+ });
+ }
+ });
+ },
+ addOil() {
+ this.modalType = 0;
+ this.modalTitle = "娣诲姞鍔犳补璁板綍";
+ this.$refs.addOilForm.resetFields();
+ delete this.addOilForm.id;
+ this.roleModalVisible = true;
+ },
+ edit(v) {
+ this.getAllCar();
+ this.addDate = v.addDate;
+ this.modalType = 1;
+ this.modalTitle = "缂栬緫鍔犳补淇℃伅";
+ this.$refs.addOilForm.resetFields();
+ // 杞崲null涓�""
+ for (let attr in v) {
+ if (v[attr] == null) {
+ v[attr] = "";
+ }
+ }
+ let str = JSON.stringify(v);
+ let roleInfo = JSON.parse(str);
+
+ this.addOilForm = roleInfo;
+ this.roleModalVisible = true;
+ },
+ removeCar(v) {
+ this.dataType = 0;
+ this.modalTitle = "绉婚櫎杞﹁締";
+ this.$refs.addOilForm.resetFields();
+ // 杞崲null涓�""
+ for (let attr in v) {
+ if (v[attr] == null) {
+ v[attr] = "";
+ }
+ }
+ let str = JSON.stringify(v);
+ let roleInfo = JSON.parse(str);
+ roleInfo.status=1
+ console.log(roleInfo);
+ this.removeForm = roleInfo;
+ this.carModalVisible = true;
+
+ },
+ getAllCar(){
+ getAll().then((res) => {
+ if(res.success){
+ this.carList = res.result;
+ console.log(this.carList);
+ }
+ });
+ },
+ remove(v) {
+ this.$Modal.confirm({
+ title: "纭鍒犻櫎",
+ content: "鎮ㄧ‘璁よ鍒犻櫎鍚� ",
+ loading: true,
+ onOk: () => {
+ deleteAddOil({ ids: v.id }).then((res) => {
+ this.$Modal.remove();
+ if (res.success) {
+ this.clearSelectAll();
+ this.$Message.success("鍒犻櫎鎴愬姛");
+ this.getDataList();
+ }
+ });
+ },
+ });
+ },
+ setDefault(v) {
+ this.loading = true;
+ let params = {
+ id: v.id,
+ isDefault: true,
+ };
+ setDefaultRole(params).then((res) => {
+ this.loading = false;
+ if (res.success) {
+ this.$Message.success("鎿嶄綔鎴愬姛");
+ this.getDataList();
+ }
+ });
+ },
+ cancelDefault(v) {
+ this.loading = true;
+ let params = {
+ id: v.id,
+ isDefault: false,
+ };
+ setDefaultRole(params).then((res) => {
+ this.loading = false;
+ if (res.success) {
+ this.$Message.success("鎿嶄綔鎴愬姛");
+ this.getDataList();
+ }
+ });
+ },
+ clearSelectAll() {
+ this.$refs.table.selectAll(false);
+ },
+ changeSelect(e) {
+ this.selectList = e;
+ },
+ delAll() {
+ if (this.selectList.length <= 0) {
+ this.$Message.warning("鎮ㄨ繕鏈�夋嫨瑕佸垹闄ょ殑鏁版嵁");
+ return;
+ }
+ this.$Modal.confirm({
+ title: "纭鍒犻櫎",
+ content: "鎮ㄧ‘璁よ鍒犻櫎鎵�閫夌殑 " + this.selectList.length + " 鏉℃暟鎹�?",
+ loading: true,
+ onOk: () => {
+ let ids = "";
+ this.selectList.forEach(function (e) {
+ ids += e.id + ",";
+ });
+ ids = ids.substring(0, ids.length - 1);
+ deleteCar({ ids: ids }).then((res) => {
+ this.$Modal.remove();
+ if (res.success) {
+ this.$Message.success("鍒犻櫎鎴愬姛");
+ this.clearSelectAll();
+ this.getDataList();
+ }
+ });
+ },
+ });
+ },
+ editPerm(v) {
+ this.editRolePermId = v.id;
+ this.modalTitle = "鍒嗛厤 " + v.name + " 鐨勮彍鍗曟潈闄�";
+ // 鍖归厤鍕鹃��
+ let rolePerms = v.permissions;
+ if (this.treeLoading) {
+ this.$Message.warning("鑿滃崟鏉冮檺鏁版嵁鍔犺浇涓紝璇风◢鍚庣偣鍑绘煡鐪�");
+ return;
+ }
+ // 閫掑綊鍒ゆ柇瀛愯妭鐐�
+ this.checkPermTree(this.permData, rolePerms);
+ this.permModalVisible = true;
+ },
+ // 閫掑綊鍒ゆ柇瀛愯妭鐐�
+ checkPermTree(permData, rolePerms) {
+ let that = this;
+ permData.forEach(function (p) {
+ if (that.hasPerm(p, rolePerms) && p.status != -1) {
+ p.checked = true;
+ } else {
+ p.checked = false;
+ }
+ if (p.children && p.children.length > 0) {
+ that.checkPermTree(p.children, rolePerms);
+ }
+ });
+ },
+ // 鍒ゆ柇瑙掕壊鎷ユ湁鐨勬潈闄愯妭鐐瑰嬀閫�
+ hasPerm(p, rolePerms) {
+ let flag = false;
+ for (let i = 0; i < rolePerms.length; i++) {
+ if (p.id == rolePerms[i].permissionId) {
+ flag = true;
+ break;
+ }
+ }
+ if (flag) {
+ return true;
+ }
+ return false;
+ },
+ // 鍏ㄩ�夊弽閫�
+ selectTreeAll() {
+ this.selectAllFlag = !this.selectAllFlag;
+ let select = this.selectAllFlag;
+ this.selectedTreeAll(this.permData, select);
+ },
+ // 閫掑綊鍏ㄩ�夎妭鐐�
+ selectedTreeAll(permData, select) {
+ let that = this;
+ permData.forEach(function (e) {
+ e.checked = select;
+ if (e.children && e.children.length > 0) {
+ that.selectedTreeAll(e.children, select);
+ }
+ });
+ },
+ submitPermEdit() {
+ this.submitPermLoading = true;
+ let permIds = "";
+ let selectedNodes = this.$refs.tree.getCheckedNodes();
+ selectedNodes.forEach(function (e) {
+ permIds += e.id + ",";
+ });
+ permIds = permIds.substring(0, permIds.length - 1);
+ editRolePerm({
+ roleId: this.editRolePermId,
+ permIds: permIds,
+ }).then((res) => {
+ this.submitPermLoading = false;
+ if (res.success) {
+ this.$Message.success("鎿嶄綔鎴愬姛");
+ // 鏍囪閲嶆柊鑾峰彇鑿滃崟鏁版嵁
+ this.$store.commit("setAdded", false);
+ util.initRouter(this);
+ this.getDataList();
+ this.permModalVisible = false;
+ }
+ });
+ },
+ cancelPermEdit() {
+ this.permModalVisible = false;
+ },
+ loadData(item, callback) {
+ loadDepartment(item.id, { openDataFilter: false }).then((res) => {
+ if (res.success) {
+ res.result.forEach(function (e) {
+ e.selected = false;
+ if (e.isParent) {
+ e.loading = false;
+ e.children = [];
+ }
+ if (e.status == -1) {
+ e.title = "[宸茬鐢╙ " + e.title;
+ e.disabled = true;
+ }
+ });
+ callback(res.result);
+ }
+ });
+ },
+ expandCheckDep(v) {
+ // 鍒ゆ柇灞曞紑瀛愯妭鐐�
+ this.checkDepTree(v.children, this.editDepartments);
+ },
+ // 鍒ゆ柇瀛愯妭鐐�
+ checkDepTree(depData, roleDepIds) {
+ let that = this;
+ depData.forEach(function (p) {
+ if (that.hasDepPerm(p, roleDepIds)) {
+ p.selected = true;
+ } else {
+ p.selected = false;
+ }
+ });
+ },
+ // 鍒ゆ柇瑙掕壊鎷ユ湁鐨勬潈闄愯妭鐐瑰嬀閫�
+ hasDepPerm(p, roleDepIds) {
+ let flag = false;
+ for (let i = 0; i < roleDepIds.length; i++) {
+ if (p.id == roleDepIds[i].departmentId) {
+ flag = true;
+ break;
+ }
+ }
+ if (flag) {
+ return true;
+ }
+ return false;
+ },
+ submitDepEdit() {
+ let depIds = "";
+ if (this.dataType == 1) {
+ let selectedNodes = this.$refs.depTree.getSelectedNodes();
+ selectedNodes.forEach(function (e) {
+ depIds += e.id + ",";
+ });
+ depIds = depIds.substring(0, depIds.length - 1);
+ }
+ this.submitDepLoading = true;
+ editRoleDep({
+ roleId: this.editRolePermId,
+ dataType: this.dataType,
+ depIds: depIds,
+ }).then((res) => {
+ this.submitDepLoading = false;
+ if (res.success) {
+ this.$Message.success("鎿嶄綔鎴愬姛");
+ this.getDataList();
+ this.depModalVisible = false;
+ }
+ });
+ },
+ changeOpen(v) {
+ if (v == "0") {
+ this.permData.forEach((e) => {
+ e.expand = true;
+ if (e.children && e.children.length > 0) {
+ e.children.forEach((c) => {
+ c.expand = true;
+ if (c.children && c.children.length > 0) {
+ c.children.forEach(function (b) {
+ b.expand = true;
+ });
+ }
+ });
+ }
+ });
+ } else if (v == "1") {
+ this.permData.forEach((e) => {
+ e.expand = false;
+ if (e.children && e.children.length > 0) {
+ e.children.forEach((c) => {
+ c.expand = false;
+ if (c.children && c.children.length > 0) {
+ c.children.forEach(function (b) {
+ b.expand = false;
+ });
+ }
+ });
+ }
+ });
+ } else if (v == "2") {
+ this.permData.forEach((e) => {
+ e.expand = true;
+ if (e.children && e.children.length > 0) {
+ e.children.forEach((c) => {
+ c.expand = false;
+ if (c.children && c.children.length > 0) {
+ c.children.forEach(function (b) {
+ b.expand = false;
+ });
+ }
+ });
+ }
+ });
+ } else if (v == "3") {
+ this.permData.forEach((e) => {
+ e.expand = true;
+ if (e.children && e.children.length > 0) {
+ e.children.forEach((c) => {
+ c.expand = true;
+ if (c.children && c.children.length > 0) {
+ c.children.forEach(function (b) {
+ b.expand = false;
+ });
+ }
+ });
+ }
+ });
+ }
+ },
+ },
+ mounted() {
+ this.maxHeight = Number(document.documentElement.clientHeight - 121) + "px";
+ this.init();
+ },
+ };
+</script>
\ No newline at end of file
diff --git a/src/views/your/addOilInfo-manage/exportColumn.js b/src/views/your/addOilInfo-manage/exportColumn.js
new file mode 100644
index 0000000..c64f701
--- /dev/null
+++ b/src/views/your/addOilInfo-manage/exportColumn.js
@@ -0,0 +1,56 @@
+export const exportColumn = [
+ {
+ title: "杞︾墝鍙�",
+ key: "carNo",
+ width: 100,
+ align: "center",
+ },
+ {
+ title: "鍔犳补鍗″彿",
+ key: "addOilCode",
+ width: 140,
+ sortable: true,
+ align: "center",
+ },
+ {
+ title: "鍔犳补鏃ユ湡",
+ key: "addDate",
+ width: 150,
+ sortable: true,
+ align: "center",
+ },
+ {
+ title: "鍔犳补閲戦(鍏�)",
+ key: "money",
+ minWidth: 100,
+ sortable: true,
+ align: "center",
+ },
+ {
+ title: "鍔犳补閲�(鍗�)",
+ key: "amount",
+ width: 130,
+ sortable: true,
+ align: "center",
+ },
+ {
+ title: "琛屼娇閲岀▼(KM)",
+ key: "mileage",
+ minWidth: 100,
+ sortable: true,
+ align: "center",
+ },
+ {
+ title: "鐧惧叕閲屾补鑰�(鍗�)",
+ key: "oilWear",
+ minWidth: 100,
+ sortable: true,
+ align: "center",
+ },
+ {
+ title: "澶囨敞",
+ key: "remarks",
+ minWidth: 150,
+ align: "center",
+ },
+]
\ No newline at end of file
diff --git a/src/views/your/area-manage/areaManage.vue b/src/views/your/area-manage/areaManage.vue
index d9c42b1..8b49c36 100644
--- a/src/views/your/area-manage/areaManage.vue
+++ b/src/views/your/area-manage/areaManage.vue
@@ -89,7 +89,7 @@
</Table>
- </Modal>05
+ </Modal>
<Modal :title="modalTitle3" v-model="customerVisible" :mask-closable="false" :width="1050">
<Row class="operation" style="padding-bottom: 20px">
<Button @click="addCustomer" type="primary" icon="md-add">娣诲姞</Button>
@@ -135,22 +135,36 @@
<FormItem label="鍟嗘埛缂栧彿" prop="code">
<Input v-model="customerForm.code" />
</FormItem>
- <FormItem label="鑱旂郴鏂瑰紡" prop="phone">
- <Input v-model="customerForm.phone" />
- </FormItem>
- <FormItem label="缁忓害" prop="lng">
- <Input v-model="customerForm.lng" />
- </FormItem>
- <FormItem label="绾害" prop="lat">
- <Input v-model="customerForm.lat" />
- </FormItem>
- <Form-item label="涓婃閰嶉�佹棩鏈�" prop="lastTime">
- <Row>
- <Col>
- <Date-picker @on-change="change1" type="date" value="yyyy-MM-dd" placeholder="閫夋嫨鏃ユ湡" v-model="customerForm.lastTime"></Date-picker>
- </Col>
- </Row>
- </Form-item>
+
+ <Row :gutter="0">
+ <Col span="12">
+ <FormItem label="缁忓害" prop="lng">
+ <Input v-model="customerForm.lng" />
+ </FormItem>
+ </Col>
+ <Col span="12">
+ <FormItem label="绾害" prop="lat">
+ <Input v-model="customerForm.lat" />
+ </FormItem>
+ </Col>
+ </Row>
+ <Row :gutter="0">
+ <Col span="12">
+ <Form-item label="涓婃閰嶉�佹棩鏈�" prop="lastTime">
+ <Row>
+ <Col>
+ <Date-picker @on-change="change1" type="date" value="yyyy-MM-dd" placeholder="閫夋嫨鏃ユ湡" v-model="customerForm.lastTime"></Date-picker>
+ </Col>
+ </Row>
+ </Form-item>
+ </Col>
+ <Col span="12">
+ <FormItem label="鑱旂郴鏂瑰紡" prop="phone">
+ <Input v-model="customerForm.phone" type="number"/>
+ </FormItem>
+ </Col>
+ </Row>
+
<FormItem label="鍟嗘埛娉ㄥ唽鍦板潃" prop="registeredAddress">
<Input v-model="customerForm.registeredAddress" />
</FormItem>
diff --git a/src/views/your/car-manage/carManage.vue b/src/views/your/car-manage/carManage.vue
index 6df3551..6c89acb 100644
--- a/src/views/your/car-manage/carManage.vue
+++ b/src/views/your/car-manage/carManage.vue
@@ -8,7 +8,6 @@
<Card>
<Row class="operation">
<Button @click="addCar" type="primary" icon="md-add">娣诲姞杞﹁締</Button>
- <Button @click="delAll" icon="md-trash">鎵归噺鍒犻櫎</Button>
<Button @click="init" icon="md-refresh">鍒锋柊</Button>
<Button type="dashed" @click="openTip = !openTip">{{
openTip ? "鍏抽棴鎻愮ず" : "寮�鍚彁绀�"
diff --git a/src/views/your/carInfo-manage/carInfoManage.less b/src/views/your/carInfo-manage/carInfoManage.less
new file mode 100644
index 0000000..789f8db
--- /dev/null
+++ b/src/views/your/carInfo-manage/carInfoManage.less
@@ -0,0 +1,13 @@
+.permModal {
+ .ivu-modal-body {
+ max-height: 560px;
+ overflow: auto;
+ }
+}
+
+.depModal {
+ .ivu-modal-body {
+ max-height: 500px;
+ overflow: auto;
+ }
+}
\ No newline at end of file
diff --git a/src/views/your/carInfo-manage/carInfoManage.vue b/src/views/your/carInfo-manage/carInfoManage.vue
new file mode 100644
index 0000000..217e4b9
--- /dev/null
+++ b/src/views/your/carInfo-manage/carInfoManage.vue
@@ -0,0 +1,964 @@
+<style lang="less">
+ @import "@/styles/table-common.less";
+ @import "@/styles/drawer-common.less";
+ @import "src/views/your/carInfo-manage/carInfoManage.less";
+</style>
+<template>
+ <div class="search">
+ <Card>
+ <Row class="operation">
+ <Button @click="init" icon="md-refresh">鍒锋柊</Button>
+ <Button type="dashed" @click="openTip = !openTip">{{
+ openTip ? "鍏抽棴鎻愮ず" : "寮�鍚彁绀�"
+ }}</Button>
+
+ <Date-picker v-model="value" @on-change="getDataList"
+ value-format="yyyy-MM-dd" type="daterange" placement="bottom-end" placeholder="璇烽�夋嫨鏃ユ湡" style="width: 240px;padding-left: 20px">
+ </Date-picker>
+ <Dropdown @on-click="handleDropdown" style="padding-left: 20px">
+ <Button>
+ 瀵煎嚭鏁版嵁
+ <Icon type="md-arrow-dropdown" />
+ </Button>
+ <DropdownMenu slot="list">
+ <DropdownItem name="exportData">瀵煎嚭鎵�閫夋暟鎹�</DropdownItem>
+ <DropdownItem name="exportAll">瀵煎嚭鍏ㄩ儴鏁版嵁</DropdownItem>
+ </DropdownMenu>
+ </Dropdown>
+ </Row>
+
+ <Alert show-icon v-show="openTip">
+ 宸查�夋嫨
+ <span class="select-count">{{ selectList.length }}</span> 椤�
+ <a class="select-clear" @click="clearSelectAll">娓呯┖</a>
+ </Alert>
+ <Table
+ :loading="loading"
+ border
+ :columns="columns"
+ :data="data"
+ ref="table"
+ sortable="custom"
+ @on-sort-change="changeSort"
+ @on-selection-change="changeSelect"
+ ></Table>
+ <Row type="flex" justify="end" class="page">
+ <Page
+ :current="searchForm.pageNumber"
+ :total="total"
+ :page-size="searchForm.pageSize"
+ @on-change="changePage"
+ @on-page-size-change="changePageSize"
+ :page-size-opts="[10, 20, 50]"
+ size="small"
+ show-total
+ show-elevator
+ show-sizer
+ ></Page>
+ </Row>
+ </Card>
+
+ <!-- 缂栬緫 -->
+ <Modal
+ :title="modalTitle"
+ v-model="roleModalVisible"
+ :mask-closable="false"
+ :width="500"
+ >
+ <div slot="footer">
+ <Button type="text" @click="carRole">鍙栨秷</Button>
+ <Button type="primary" :loading="submitLoading" @click="submitAddOil"
+ >鎻愪氦</Button
+ >
+ </div>
+ </Modal>
+ <!-- 鑷畾涔夊鍑烘暟鎹� -->
+ <Modal
+ v-model="exportModalVisible"
+ :title="exportTitle"
+ :loading="loadingExport"
+ @on-ok="exportCustomData"
+ >
+ <Form ref="exportForm" :label-width="100">
+ <FormItem label="瀵煎嚭鏂囦欢鍚�">
+ <Input v-model="filename" />
+ </FormItem>
+ </Form>
+ </Modal>
+ <!-- 鑿滃崟鏉冮檺 -->
+ <Drawer
+ :title="modalTitle"
+ v-model="permModalVisible"
+ :mask-closable="false"
+ :width="500"
+ draggable
+ >
+ <div :style="{ maxHeight: maxHeight }" class="drawer-content">
+ <div style="position: relative">
+ <Tree
+ ref="tree"
+ :data="permData"
+ show-checkbox
+ :render="renderContent"
+ :check-strictly="true"
+ ></Tree>
+ <Spin size="large" fix v-if="treeLoading"></Spin>
+ </div>
+ </div>
+ <div class="drawer-footer br">
+ <Button
+ type="primary"
+ :loading="submitPermLoading"
+ @click="submitPermEdit"
+ >鎻愪氦</Button
+ >
+ <Button @click="selectTreeAll">鍏ㄩ��/鍙嶉��</Button>
+ <Select
+ v-model="openLevel"
+ @on-change="changeOpen"
+ style="width: 110px"
+ transfer
+ >
+ <Option value="0">灞曞紑鎵�鏈�</Option>
+ <Option value="1">鏀跺悎鎵�鏈�</Option>
+ <Option value="2">浠呭睍寮�涓�绾�</Option>
+ <Option value="3">浠呭睍寮�涓ょ骇</Option>
+ </Select>
+ <Button type="text" @click="cancelPermEdit">鍙栨秷</Button>
+ </div>
+ </Drawer>
+ <!-- 鏁版嵁鏉冮檺 -->
+ <Modal
+ :title="modalTitle"
+ v-model="carModalVisible"
+ :mask-closable="false"
+ :width="500"
+ class="depModal"
+ >
+ <Form :label-width="85" ref="removeForm" :model="removeForm">
+ <FormItem label="绉婚櫎鍘熷洜" prop="removeReason">
+ <Input v-model="removeForm.removeReason"/>
+ </FormItem>
+ </Form>
+ <div v-show="dataType == 1" style="margin-top: 15px">
+ <div style="position: relative">
+ <Tree
+ ref="depTree"
+ :data="depData"
+ :load-data="loadData"
+ @on-toggle-expand="expandCheckDep"
+ multiple
+ style="margin-top: 15px"
+ ></Tree>
+ <Spin size="large" fix v-if="depTreeLoading"></Spin>
+ </div>
+ </div>
+ <div slot="footer">
+ <Button type="text" @click="depModalVisible = false">鍙栨秷</Button>
+ <Button
+ type="primary"
+ :loading="submitDepLoading"
+ @click="submitRemove"
+ >鎻愪氦</Button
+ >
+ </div>
+ </Modal>
+ </div>
+</template>
+
+<script>
+ import {
+ getAllPermissionList,
+ setDefaultRole,
+ editRolePerm,
+ initDepartment,
+ loadDepartment,
+ editRoleDep,
+ } from "@/api/index";
+
+ import {
+ getAll,
+ getAddOilList,
+ addOil,
+ deleteAddOil,
+ getCarList,
+ editCar,
+ deleteCar,
+ getCar,
+ getSuggest,
+ deleteSuggest,
+ } from "@/api/open";
+ import util from "@/libs/util.js";
+ import excel from "@/libs/excel.js";
+ import {exportColumn} from "./exportColumn";
+ export default {
+ name: "car-manage",
+ data() {
+ return {
+ maxHeight: 510,
+ openTip: true,
+ openLevel: "0",
+ loading: true,
+ treeLoading: true,
+ depTreeLoading: true,
+ submitPermLoading: false,
+ submitDepLoading: false,
+ searchKey: "",
+ sortColumn: "createTime",
+ sortType: "desc",
+ modalType: 0,
+ loadingExport: true,
+ roleModalVisible: false,
+ exportModalVisible: false,
+ carModalVisible: false,
+ permModalVisible: false,
+ depModalVisible: false,
+ modalTitle: "",
+ searchForm: {
+ // 鎼滅储妗嗗垵濮嬪寲瀵硅薄
+ pageNumber: 1, // 褰撳墠椤垫暟
+ pageSize: 10, // 椤甸潰澶у皬
+ sort: "createTime", // 榛樿鎺掑簭瀛楁
+ order: "desc", // 榛樿鎺掑簭鏂瑰紡
+ key: "",
+ },
+ addOilForm: {
+ status : 0
+ },
+ removeForm: {
+ status : 1
+ },
+ addOilFormValidate: {
+ name: [
+ { required: true, message: "瑙掕壊鍚嶇О涓嶈兘涓虹┖", trigger: "change" },
+ ],
+ },
+ submitLoading: false,
+ selectList: [],
+ columns: [
+ {
+ type: "selection",
+ width: 60,
+ align: "center",
+ },
+ {
+ type: "index",
+ width: 60,
+ align: "center",
+ },
+ {
+ title: "閫佽揣绾胯矾",
+ key: "areaName",
+ width: 130,
+ render: (h, params) => {
+ return h("div",params.row.car.areaName);
+ }
+ },
+ {
+ title: "杞︾墝鍙�",
+ key: "carNo",
+ width: 120,
+ render: (h, params) => {
+ return h("div",params.row.car.carNo);
+ }
+ },
+ {
+ title: "鍔犳补鍗″彿",
+ key: "addOilCode",
+ width: 140,
+ sortable: true,
+ render: (h, params) => {
+ return h("div",params.row.car.addOilCode);
+ }
+ },
+ {
+ title: "璧峰閲岀▼(鍏噷)",
+ key: "beginMileage",
+ width: 140,
+ },
+ {
+ title: "鏈熸湯閲岀▼(鍏噷)",
+ key: "endMileage",
+ width: 140,
+ },
+ {
+ title: "鏈堣椹堕噷绋�(鍏噷)",
+ key: "mileage",
+ width: 150,
+ render: (h, params) => {
+ return h("div",params.row.endMileage-params.row.beginMileage);
+ }
+ },
+ {
+ title: "鏈堟补鑰�(鍗�)",
+ key: "oilWear",
+ width: 130,
+ },
+ {
+ title: "鐧惧叕閲屾补鑰�",
+ key: "oil",
+ width: 130,
+ render: (h, params) => {
+ var mileage = params.row.endMileage-params.row.beginMileage;
+ if (mileage==0 || params.row.oilWear==0){
+ return h("div","0");
+ }else {
+ return h("div",(parseFloat(params.row.oilWear/mileage*100).toFixed(2)));
+ }
+ }
+ },
+ {
+ title: "椹鹃┒鍛�",
+ key: "nickname",
+ width: 120,
+ render: (h, params) => {
+ return h("div",params.row.car.nickName);
+ }
+ },
+ {
+ title: "鏈堝姞娌归噾棰�(鍏�)",
+ key: "money",
+ width: 140,
+ },
+ {
+ title: "鎿嶄綔",
+ key: "action",
+ align: "center",
+ width: 120,
+ render: (h, params) => {
+ return h("div", [
+ h(
+ "a",
+ {
+ on: {
+ click: () => {
+ this.remove(params.row);
+ },
+ },
+ },
+ "鍒犻櫎"
+ ),
+ ]);
+ },
+ },
+ ],
+ data: [],
+ chooseColumns: [],
+ total: 0,
+ permData: [],
+ exportColumns: exportColumn,
+ filename: "杞﹁締鏁版嵁",
+ exportTitle: "纭瀵煎嚭",
+ editRolePermId: "",
+ selectAllFlag: false,
+ depData: [],
+ dataType: 0,
+ editDepartments: [],
+ buyYear:'',
+ carList:[],
+ value:[],
+ exportData: [],
+ };
+ },
+ methods: {
+ change1(e){
+ this.addDate = e;
+ },
+ init() {
+ this.getDataList();
+ // 鑾峰彇鎵�鏈夎彍鍗曟潈闄愭爲
+ this.getPermList();
+ // 鍒濆鍖栧鍑哄垪鏁版嵁
+ let array = [];
+ this.exportColumns.forEach((e) => {
+ // 鎸囧畾鍒楅檺鍒舵潈闄�
+ if (
+ !this.getStore("roles").includes("ROLE_ADMIN") &&
+ e.key == "mobile"
+ ) {
+ e.title = "[鏃犳潈瀵煎嚭] " + e.title;
+ e.disabled = true;
+ } else {
+ e.disabled = false;
+ }
+ array.push(e.title);
+ });
+ this.chooseColumns = array;
+ },
+ renderContent(h, { root, node, data }) {
+ let icon = "";
+ if (data.level == 0) {
+ icon = "ios-navigate";
+ } else if (data.level == 1) {
+ icon = "md-list-box";
+ } else if (data.level == 2) {
+ icon = "md-list";
+ } else if (data.level == 3) {
+ icon = "md-radio-button-on";
+ } else {
+ icon = "md-radio-button-off";
+ }
+ return h(
+ "span",
+ {
+ style: {
+ display: "inline-block",
+ cursor: "pointer",
+ },
+ on: {
+ click: () => {
+ if (data.status == -1) {
+ return;
+ }
+ data.checked = !data.checked;
+ },
+ },
+ },
+ [
+ h("span", [
+ h("Icon", {
+ props: {
+ type: icon,
+ size: "16",
+ },
+ style: {
+ "margin-right": "8px",
+ "margin-bottom": "3px",
+ },
+ }),
+ h("span", data.title),
+ ]),
+ ]
+ );
+ },
+ changePage(v) {
+ this.searchForm.pageNumber = v;
+ this.getDataList();
+ this.clearSelectAll();
+ },
+ changePageSize(v) {
+ this.searchForm.pageSize = v;
+ this.getDataList();
+ },
+ changeSort(e) {
+ this.searchForm.sort = e.key;
+ this.searchForm.order = e.order;
+ if (e.order == "normal") {
+ this.searchForm.order = "";
+ }
+ this.getDataList();
+ },
+ getDataList() {
+ this.loading = true;
+ if (this.value[0]!="" && this.value[1]!=""){
+ this.searchForm.beginTime = this.selectDate(this.value[0]);
+ this.searchForm.endTime = this.selectDate(this.value[1]);
+ }else{
+ this.searchForm.beginTime = "";
+ this.searchForm.endTime = "";
+ }
+ getCar(this.searchForm).then((res) => {
+ this.loading = false;
+ if (res.success) {
+ this.data = res.result;
+ this.total = res.result.length;
+ }
+ });
+ },
+ selectDate(dateData) {
+ let date = new Date (dateData)
+ let y = date . getFullYear()
+ let m = date . getMonth() + 1
+ m=m<10?('0'+m):m
+ let d = date.getDate()
+ d = d< 10?('0'+ d):d
+ const time = y + '-' + m + '-' + d;
+ return time
+ },
+ getPermList() {
+ this.treeLoading = true;
+ getAllPermissionList().then((res) => {
+ if (res.success) {
+ this.deleteDisableNode(res.result);
+ this.permData = res.result;
+ this.treeLoading = false;
+ }
+ this.treeLoading = false;
+ });
+ },
+ // 閫掑綊鏍囪绂佺敤鑺傜偣
+ deleteDisableNode(permData) {
+ let that = this;
+ permData.forEach(function (e) {
+ if (e.status == -1) {
+ e.title = "[宸茬鐢╙ " + e.title;
+ e.disabled = true;
+ }
+ if (e.children && e.children.length > 0) {
+ that.deleteDisableNode(e.children);
+ }
+ });
+ },
+ carRole() {
+ this.roleModalVisible = false;
+ },
+ submitAddOil() {
+ this.addOilForm.addDate = this.addDate;
+ this.$refs.addOilForm.validate((valid) => {
+ if (valid) {
+ if (this.modalType == 0) {
+ // 娣诲姞
+ this.submitLoading = true;
+ addOil(this.addOilForm).then((res) => {
+ this.submitLoading = false;
+ if (res.success) {
+ this.$Message.success("鎿嶄綔鎴愬姛");
+ this.getDataList();
+ this.roleModalVisible = false;
+ }
+ });
+ } else {
+ this.submitLoading = true;
+ addOil(this.addOilForm).then((res) => {
+ this.submitLoading = false;
+ if (res.success) {
+ this.$Message.success("鎿嶄綔鎴愬姛");
+ this.getDataList();
+ this.roleModalVisible = false;
+ }
+ });
+ }
+ }
+ });
+ },
+ handleDropdown(name) {
+ if (name == "refresh") {
+ this.getDataList();
+ } else if (name == "exportData") {
+ if (this.selectList.length <= 0) {
+ this.$Message.warning("鎮ㄨ繕鏈�夋嫨瑕佸鍑虹殑鏁版嵁");
+ return;
+ }
+ this.exportType = "part";
+ this.exportModalVisible = true;
+ this.exportTitle =
+ "纭瀵煎嚭 " + this.selectList.length + " 鏉℃暟鎹�";
+ } else if (name == "exportAll") {
+ this.exportType = "all";
+ this.exportModalVisible = true;
+ this.exportTitle = "纭瀵煎嚭鍏ㄩ儴 " + this.total + " 鏉℃暟鎹�";
+ getCar().then((res) => {
+ if (res.success) {
+ this.exportData = this.data;
+ }
+ });
+ } else if (name == "importData") {
+ this.importModalVisible = true;
+ }
+ },
+ //瀵煎嚭鏁版嵁
+ exportCustomData() {
+ if (this.filename == "") {
+ this.filename = "杞﹁締鏁版嵁";
+ }
+ // 鍒ゆ柇鍕鹃�夊鍑哄垪
+ let exportColumns = [];
+ this.exportColumns.forEach((e) => {
+ exportColumns.push(e);
+ });
+ this.exportModalVisible = false;
+ let title = [];
+ let key = [];
+ exportColumns.forEach((e) => {
+ title.push(e.title);
+ key.push(e.key);
+ });
+
+
+ console.log(this.exportData)
+ const params = {
+ title: title,
+ key: key,
+ data: this.exportData,
+ autoWidth: true,
+ filename: this.filename,
+ };
+ this.exportData.forEach((i) => {
+ i.areaName = i.car.areaName;
+ i.carNo = i.car.carNo;
+ i.addOilCode = i.car.addOilCode;
+ i.oil = i.car.oil;
+ i.nickName = i.car.nickName;
+ i.mileage=i.endMileage-i.beginMileage;
+ if (i.oilWear!=0 && i.mileage!=0){
+ i.oil=parseFloat((i.oilWear/i.mileage*100).toFixed(2));
+ }else {
+ i.oil=0
+ }
+ });
+ excel.export_array_to_excel(params);
+ },
+ submitRemove(){
+ this.$refs.removeForm.validate((valid) => {
+ if (valid) {
+ this.submitLoading = true;
+ editCar(this.removeForm).then((res) => {
+ this.submitLoading = false;
+ if (res.success) {
+ this.$Message.success("鎿嶄綔鎴愬姛");
+ this.getDataList();
+ this.carModalVisible = false;
+ }
+ });
+ }
+ });
+ },
+ addOil() {
+ this.getAllCar();
+ this.modalType = 0;
+ this.modalTitle = "娣诲姞鍔犳补璁板綍";
+ this.$refs.addOilForm.resetFields();
+ delete this.addOilForm.id;
+ this.roleModalVisible = true;
+ },
+ edit(v) {
+ this.getAllCar();
+ this.addDate = v.addDate;
+ this.modalType = 1;
+ this.modalTitle = "缂栬緫鍔犳补淇℃伅";
+ this.$refs.addOilForm.resetFields();
+ // 杞崲null涓�""
+ for (let attr in v) {
+ if (v[attr] == null) {
+ v[attr] = "";
+ }
+ }
+ let str = JSON.stringify(v);
+ let roleInfo = JSON.parse(str);
+
+ this.addOilForm = roleInfo;
+ this.roleModalVisible = true;
+ },
+ removeCar(v) {
+ this.dataType = 0;
+ this.modalTitle = "绉婚櫎杞﹁締";
+ this.$refs.addOilForm.resetFields();
+ // 杞崲null涓�""
+ for (let attr in v) {
+ if (v[attr] == null) {
+ v[attr] = "";
+ }
+ }
+ let str = JSON.stringify(v);
+ let roleInfo = JSON.parse(str);
+ roleInfo.status=1
+ this.removeForm = roleInfo;
+ this.carModalVisible = true;
+
+ },
+ getAllCar(){
+ getAll().then((res) => {
+ if(res.success){
+ this.carList = res.result;
+ console.log(this.carList);
+ }
+ });
+ },
+ remove(v) {
+ this.$Modal.confirm({
+ title: "纭鍒犻櫎",
+ content: "鎮ㄧ‘璁よ鍒犻櫎鍚� ",
+ loading: true,
+ onOk: () => {
+ deleteSuggest({ ids: v.id }).then((res) => {
+ this.$Modal.remove();
+ if (res.success) {
+ this.clearSelectAll();
+ this.$Message.success("鍒犻櫎鎴愬姛");
+ this.getDataList();
+ }
+ });
+ },
+ });
+ },
+ setDefault(v) {
+ this.loading = true;
+ let params = {
+ id: v.id,
+ isDefault: true,
+ };
+ setDefaultRole(params).then((res) => {
+ this.loading = false;
+ if (res.success) {
+ this.$Message.success("鎿嶄綔鎴愬姛");
+ this.getDataList();
+ }
+ });
+ },
+ cancelDefault(v) {
+ this.loading = true;
+ let params = {
+ id: v.id,
+ isDefault: false,
+ };
+ setDefaultRole(params).then((res) => {
+ this.loading = false;
+ if (res.success) {
+ this.$Message.success("鎿嶄綔鎴愬姛");
+ this.getDataList();
+ }
+ });
+ },
+ clearSelectAll() {
+ this.$refs.table.selectAll(false);
+ },
+
+ changeSelect(e) {
+ this.exportData = e;
+ this.selectList = e;
+ },
+ delAll() {
+ if (this.selectList.length <= 0) {
+ this.$Message.warning("鎮ㄨ繕鏈�夋嫨瑕佸垹闄ょ殑鏁版嵁");
+ return;
+ }
+ this.$Modal.confirm({
+ title: "纭鍒犻櫎",
+ content: "鎮ㄧ‘璁よ鍒犻櫎鎵�閫夌殑 " + this.selectList.length + " 鏉℃暟鎹�?",
+ loading: true,
+ onOk: () => {
+ let ids = "";
+ this.selectList.forEach(function (e) {
+ ids += e.id + ",";
+ });
+ ids = ids.substring(0, ids.length - 1);
+ deleteCar({ ids: ids }).then((res) => {
+ this.$Modal.remove();
+ if (res.success) {
+ this.$Message.success("鍒犻櫎鎴愬姛");
+ this.clearSelectAll();
+ this.getDataList();
+ }
+ });
+ },
+ });
+ },
+ editPerm(v) {
+ this.editRolePermId = v.id;
+ this.modalTitle = "鍒嗛厤 " + v.name + " 鐨勮彍鍗曟潈闄�";
+ // 鍖归厤鍕鹃��
+ let rolePerms = v.permissions;
+ if (this.treeLoading) {
+ this.$Message.warning("鑿滃崟鏉冮檺鏁版嵁鍔犺浇涓紝璇风◢鍚庣偣鍑绘煡鐪�");
+ return;
+ }
+ // 閫掑綊鍒ゆ柇瀛愯妭鐐�
+ this.checkPermTree(this.permData, rolePerms);
+ this.permModalVisible = true;
+ },
+ // 閫掑綊鍒ゆ柇瀛愯妭鐐�
+ checkPermTree(permData, rolePerms) {
+ let that = this;
+ permData.forEach(function (p) {
+ if (that.hasPerm(p, rolePerms) && p.status != -1) {
+ p.checked = true;
+ } else {
+ p.checked = false;
+ }
+ if (p.children && p.children.length > 0) {
+ that.checkPermTree(p.children, rolePerms);
+ }
+ });
+ },
+ // 鍒ゆ柇瑙掕壊鎷ユ湁鐨勬潈闄愯妭鐐瑰嬀閫�
+ hasPerm(p, rolePerms) {
+ let flag = false;
+ for (let i = 0; i < rolePerms.length; i++) {
+ if (p.id == rolePerms[i].permissionId) {
+ flag = true;
+ break;
+ }
+ }
+ if (flag) {
+ return true;
+ }
+ return false;
+ },
+ // 鍏ㄩ�夊弽閫�
+ selectTreeAll() {
+ this.selectAllFlag = !this.selectAllFlag;
+ let select = this.selectAllFlag;
+ this.selectedTreeAll(this.permData, select);
+ },
+ // 閫掑綊鍏ㄩ�夎妭鐐�
+ selectedTreeAll(permData, select) {
+ let that = this;
+ permData.forEach(function (e) {
+ e.checked = select;
+ if (e.children && e.children.length > 0) {
+ that.selectedTreeAll(e.children, select);
+ }
+ });
+ },
+ submitPermEdit() {
+ this.submitPermLoading = true;
+ let permIds = "";
+ let selectedNodes = this.$refs.tree.getCheckedNodes();
+ selectedNodes.forEach(function (e) {
+ permIds += e.id + ",";
+ });
+ permIds = permIds.substring(0, permIds.length - 1);
+ editRolePerm({
+ roleId: this.editRolePermId,
+ permIds: permIds,
+ }).then((res) => {
+ this.submitPermLoading = false;
+ if (res.success) {
+ this.$Message.success("鎿嶄綔鎴愬姛");
+ // 鏍囪閲嶆柊鑾峰彇鑿滃崟鏁版嵁
+ this.$store.commit("setAdded", false);
+ util.initRouter(this);
+ this.getDataList();
+ this.permModalVisible = false;
+ }
+ });
+ },
+ cancelPermEdit() {
+ this.permModalVisible = false;
+ },
+ loadData(item, callback) {
+ loadDepartment(item.id, { openDataFilter: false }).then((res) => {
+ if (res.success) {
+ res.result.forEach(function (e) {
+ e.selected = false;
+ if (e.isParent) {
+ e.loading = false;
+ e.children = [];
+ }
+ if (e.status == -1) {
+ e.title = "[宸茬鐢╙ " + e.title;
+ e.disabled = true;
+ }
+ });
+ callback(res.result);
+ }
+ });
+ },
+ expandCheckDep(v) {
+ // 鍒ゆ柇灞曞紑瀛愯妭鐐�
+ this.checkDepTree(v.children, this.editDepartments);
+ },
+ // 鍒ゆ柇瀛愯妭鐐�
+ checkDepTree(depData, roleDepIds) {
+ let that = this;
+ depData.forEach(function (p) {
+ if (that.hasDepPerm(p, roleDepIds)) {
+ p.selected = true;
+ } else {
+ p.selected = false;
+ }
+ });
+ },
+ // 鍒ゆ柇瑙掕壊鎷ユ湁鐨勬潈闄愯妭鐐瑰嬀閫�
+ hasDepPerm(p, roleDepIds) {
+ let flag = false;
+ for (let i = 0; i < roleDepIds.length; i++) {
+ if (p.id == roleDepIds[i].departmentId) {
+ flag = true;
+ break;
+ }
+ }
+ if (flag) {
+ return true;
+ }
+ return false;
+ },
+ submitDepEdit() {
+ let depIds = "";
+ if (this.dataType == 1) {
+ let selectedNodes = this.$refs.depTree.getSelectedNodes();
+ selectedNodes.forEach(function (e) {
+ depIds += e.id + ",";
+ });
+ depIds = depIds.substring(0, depIds.length - 1);
+ }
+ this.submitDepLoading = true;
+ editRoleDep({
+ roleId: this.editRolePermId,
+ dataType: this.dataType,
+ depIds: depIds,
+ }).then((res) => {
+ this.submitDepLoading = false;
+ if (res.success) {
+ this.$Message.success("鎿嶄綔鎴愬姛");
+ this.getDataList();
+ this.depModalVisible = false;
+ }
+ });
+ },
+ changeOpen(v) {
+ if (v == "0") {
+ this.permData.forEach((e) => {
+ e.expand = true;
+ if (e.children && e.children.length > 0) {
+ e.children.forEach((c) => {
+ c.expand = true;
+ if (c.children && c.children.length > 0) {
+ c.children.forEach(function (b) {
+ b.expand = true;
+ });
+ }
+ });
+ }
+ });
+ } else if (v == "1") {
+ this.permData.forEach((e) => {
+ e.expand = false;
+ if (e.children && e.children.length > 0) {
+ e.children.forEach((c) => {
+ c.expand = false;
+ if (c.children && c.children.length > 0) {
+ c.children.forEach(function (b) {
+ b.expand = false;
+ });
+ }
+ });
+ }
+ });
+ } else if (v == "2") {
+ this.permData.forEach((e) => {
+ e.expand = true;
+ if (e.children && e.children.length > 0) {
+ e.children.forEach((c) => {
+ c.expand = false;
+ if (c.children && c.children.length > 0) {
+ c.children.forEach(function (b) {
+ b.expand = false;
+ });
+ }
+ });
+ }
+ });
+ } else if (v == "3") {
+ this.permData.forEach((e) => {
+ e.expand = true;
+ if (e.children && e.children.length > 0) {
+ e.children.forEach((c) => {
+ c.expand = true;
+ if (c.children && c.children.length > 0) {
+ c.children.forEach(function (b) {
+ b.expand = false;
+ });
+ }
+ });
+ }
+ });
+ }
+ },
+ },
+ mounted() {
+ this.maxHeight = Number(document.documentElement.clientHeight - 121) + "px";
+ this.init();
+ },
+ };
+</script>
\ No newline at end of file
diff --git a/src/views/your/carInfo-manage/exportColumn.js b/src/views/your/carInfo-manage/exportColumn.js
new file mode 100644
index 0000000..b5af350
--- /dev/null
+++ b/src/views/your/carInfo-manage/exportColumn.js
@@ -0,0 +1,53 @@
+export const exportColumn = [
+ {
+ title: "閫佽揣绾胯矾",
+ key: "areaName",
+ width: 130,
+ },
+ {
+ title: "杞︾墝鍙�",
+ key: "carNo",
+ width: 120,
+ },
+ {
+ title: "鍔犳补鍗″彿",
+ key: "addOilCode",
+ width: 140,
+ sortable: true,
+ },
+ {
+ title: "璧峰閲岀▼",
+ key: "beginMileage",
+ width: 130,
+ },
+ {
+ title: "鏈熸湯閲岀▼",
+ key: "endMileage",
+ width: 130,
+ },
+ {
+ title: "鏈堣椹堕噷绋�",
+ key: "mileage",
+ width: 130,
+ },
+ {
+ title: "鏈堟补鑰�",
+ key: "oilWear",
+ width: 130,
+ },
+ {
+ title: "鐧惧叕閲屾补鑰�",
+ key: "oil",
+ width: 130,
+ },
+ {
+ title: "椹鹃┒鍛�",
+ key: "nickName",
+ width: 120,
+ },
+ {
+ title: "鏈堝姞娌归噾棰�",
+ key: "money",
+ width: 120,
+ }
+]
\ No newline at end of file
diff --git a/src/views/your/suggest-manage/suggestManage.vue b/src/views/your/suggest-manage/suggestManage.vue
index bc975a7..8994f67 100644
--- a/src/views/your/suggest-manage/suggestManage.vue
+++ b/src/views/your/suggest-manage/suggestManage.vue
@@ -7,16 +7,15 @@
<div class="search">
<Card>
<Row class="operation">
- <Button @click="addOil" type="primary" icon="md-add">娣诲姞鍔犳补璁板綍</Button>
<Button @click="init" icon="md-refresh">鍒锋柊</Button>
<Button type="dashed" @click="openTip = !openTip">{{
openTip ? "鍏抽棴鎻愮ず" : "寮�鍚彁绀�"
}}</Button>
<Input
- v-model="searchForm.carNo"
+ v-model="searchForm.content"
suffix="ios-search"
@on-change="getDataList"
- placeholder="杈撳叆杞︾墝鍙锋悳绱�"
+ placeholder="杈撳叆鍙嶉鍐呭鎼滅储"
clearable
style="width: 250px"
/>
@@ -199,6 +198,8 @@
getCarList,
editCar,
deleteCar,
+ getSuggest,
+ deleteSuggest,
} from "@/api/open";
import util from "@/libs/util.js";
export default {
@@ -256,7 +257,7 @@
},
{
title: "鎰忚鍒嗙被",
- key: "dictDataId",
+ key: "title",
width: 150,
},
{
@@ -267,19 +268,18 @@
{
title: "鍙嶉鏃堕棿",
key: "createTime",
- width: 180,
+ width: 240,
sortable: true,
},
{
title: "鍙嶉鍟嗘埛",
- key: "customerId",
+ key: "name",
width: 150,
},
{
title: "鎿嶄綔",
key: "action",
align: "center",
- width: 195,
render: (h, params) => {
return h("div", [
h(
@@ -383,7 +383,7 @@
},
getDataList() {
this.loading = true;
- getAddOilList(this.searchForm).then((res) => {
+ getSuggest(this.searchForm).then((res) => {
this.loading = false;
if (res.success) {
this.data = res.result.records;
@@ -520,7 +520,7 @@
content: "鎮ㄧ‘璁よ鍒犻櫎鍚� ",
loading: true,
onOk: () => {
- deleteAddOil({ ids: v.id }).then((res) => {
+ deleteSuggest({ ids: v.id }).then((res) => {
this.$Modal.remove();
if (res.success) {
this.clearSelectAll();
--
Gitblit v1.9.1