Kaynağa Gözat

单位后台界面增加接入标志;
增加公务用车后台界面

zhanghao 6 ay önce
ebeveyn
işleme
6bae8bd802

+ 53 - 0
src/api/zcustom/carDetail.js

@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询公务用车年度增加减少列表
+export function listPlatPublicCarChangeDetail(query) {
+  return request({
+    url: '/zcustom/carDetail/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询公务用车年度增加减少所有列表
+export function listAllPlatPublicCarChangeDetail(query) {
+  return request({
+    url: '/zcustom/carDetail/listAll',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询公务用车年度增加减少详细
+export function getPlatPublicCarChangeDetail(id) {
+  return request({
+    url: '/zcustom/carDetail/getInfo/' + id,
+    method: 'get'
+  })
+}
+
+// 新增公务用车年度增加减少
+export function addPlatPublicCarChangeDetail(data) {
+  return request({
+    url: '/zcustom/carDetail/add',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改公务用车年度增加减少
+export function updatePlatPublicCarChangeDetail(data) {
+  return request({
+    url: '/zcustom/carDetail/edit',
+    method: 'post',
+    data: data
+  })
+}
+
+// 删除公务用车年度增加减少
+export function delPlatPublicCarChangeDetail(id) {
+  return request({
+    url: '/zcustom/carDetail/remove/' + id,
+    method: 'get'
+  })
+}

+ 53 - 0
src/api/zcustom/carRank.js

@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询公务用车列表
+export function listPlatPublicCarRankPerson(query) {
+  return request({
+    url: '/zcustom/carRank/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询公务用车所有列表
+export function listAllPlatPublicCarRankPerson(query) {
+  return request({
+    url: '/zcustom/carRank/listAll',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询公务用车详细
+export function getPlatPublicCarRankPerson(id) {
+  return request({
+    url: '/zcustom/carRank/getInfo/' + id,
+    method: 'get'
+  })
+}
+
+// 新增公务用车
+export function addPlatPublicCarRankPerson(data) {
+  return request({
+    url: '/zcustom/carRank/add',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改公务用车
+export function updatePlatPublicCarRankPerson(data) {
+  return request({
+    url: '/zcustom/carRank/edit',
+    method: 'post',
+    data: data
+  })
+}
+
+// 删除公务用车
+export function delPlatPublicCarRankPerson(id) {
+  return request({
+    url: '/zcustom/carRank/remove/' + id,
+    method: 'get'
+  })
+}

+ 53 - 0
src/api/zcustom/public.js

@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询公务用车列表
+export function listPlatPublicCar(query) {
+  return request({
+    url: '/zcustom/public/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询公务用车所有列表
+export function listAllPlatPublicCar(query) {
+  return request({
+    url: '/zcustom/public/listAll',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询公务用车详细
+export function getPlatPublicCar(id) {
+  return request({
+    url: '/zcustom/public/getInfo/' + id,
+    method: 'get'
+  })
+}
+
+// 新增公务用车
+export function addPlatPublicCar(data) {
+  return request({
+    url: '/zcustom/public/add',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改公务用车
+export function updatePlatPublicCar(data) {
+  return request({
+    url: '/zcustom/public/edit',
+    method: 'post',
+    data: data
+  })
+}
+
+// 删除公务用车
+export function delPlatPublicCar(id) {
+  return request({
+    url: '/zcustom/public/remove/' + id,
+    method: 'get'
+  })
+}

+ 53 - 0
src/api/zcustom/unitRank.js

@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询公务用车列表
+export function listPlatPublicCarRankUnit(query) {
+  return request({
+    url: '/zcustom/unitRank/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询公务用车所有列表
+export function listAllPlatPublicCarRankUnit(query) {
+  return request({
+    url: '/zcustom/unitRank/listAll',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询公务用车详细
+export function getPlatPublicCarRankUnit(id) {
+  return request({
+    url: '/zcustom/unitRank/getInfo/' + id,
+    method: 'get'
+  })
+}
+
+// 新增公务用车
+export function addPlatPublicCarRankUnit(data) {
+  return request({
+    url: '/zcustom/unitRank/add',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改公务用车
+export function updatePlatPublicCarRankUnit(data) {
+  return request({
+    url: '/zcustom/unitRank/edit',
+    method: 'post',
+    data: data
+  })
+}
+
+// 删除公务用车
+export function delPlatPublicCarRankUnit(id) {
+  return request({
+    url: '/zcustom/unitRank/remove/' + id,
+    method: 'get'
+  })
+}

+ 53 - 0
src/api/zcustom/warnDetail.js

@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询公务用车预警明细列表
+export function listPlatPublicCarWarnDetail(query) {
+  return request({
+    url: '/zcustom/warnDetail/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询公务用车预警明细所有列表
+export function listAllPlatPublicCarWarnDetail(query) {
+  return request({
+    url: '/zcustom/warnDetail/listAll',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询公务用车预警明细详细
+export function getPlatPublicCarWarnDetail(id) {
+  return request({
+    url: '/zcustom/warnDetail/getInfo/' + id,
+    method: 'get'
+  })
+}
+
+// 新增公务用车预警明细
+export function addPlatPublicCarWarnDetail(data) {
+  return request({
+    url: '/zcustom/warnDetail/add',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改公务用车预警明细
+export function updatePlatPublicCarWarnDetail(data) {
+  return request({
+    url: '/zcustom/warnDetail/edit',
+    method: 'post',
+    data: data
+  })
+}
+
+// 删除公务用车预警明细
+export function delPlatPublicCarWarnDetail(id) {
+  return request({
+    url: '/zcustom/warnDetail/remove/' + id,
+    method: 'get'
+  })
+}

+ 325 - 0
src/views/zcustom/carDetail/index.vue

@@ -0,0 +1,325 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="80px">
+      <el-form-item label="所属单位" prop="appEncode">
+        <el-input
+          v-model="queryParams.appEncode"
+          placeholder="请输入所属单位"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="车牌号" prop="vehicleNum">
+        <el-input
+          v-model="queryParams.vehicleNum"
+          placeholder="请输入车牌号"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['zcustom:platPublicCarChangeDetail:add']"
+        >新增</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['zcustom:platPublicCarChangeDetail:remove']"
+        >删除</el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="platPublicCarChangeDetailList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="序号" width="50">
+        <template slot-scope="scope">
+          {{(scope.$index + 1) + ((queryParams.pageNum - 1) * queryParams.pageSize)}}
+        </template>
+      </el-table-column>
+      <el-table-column label="所属单位" align="center" prop="appEncode" />
+      <el-table-column label="车牌号" align="center" prop="vehicleNum" />
+      <el-table-column label="车辆用途" align="center" prop="useProperty" />
+      <el-table-column label="资产卡号" align="center" prop="assetsCard" />
+      <el-table-column label="配置日期" align="center" prop="orgDate" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.orgDate) }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="处置日期" align="center" prop="handleDate" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.handleDate) }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="处置原因" align="center" prop="handleReason" />
+      <el-table-column label="类别" align="center" prop="flag" />
+      <el-table-column label="操作" align="center" fixed="right" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['zcustom:platPublicCarChangeDetail:edit']"
+          >修改</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['zcustom:platPublicCarChangeDetail:remove']"
+          >删除</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改公务用车年度增加减少对话框 -->
+    <el-dialog :title="title" :visible.sync="open" :close-on-click-modal="false" width="800px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="所属单位" prop="appEncode">
+          <el-input v-model="form.appEncode" placeholder="请输入所属单位" />
+        </el-form-item>
+        <el-form-item label="车牌号" prop="vehicleNum">
+          <el-input v-model="form.vehicleNum" placeholder="请输入车牌号" />
+        </el-form-item>
+        <el-form-item label="车辆用途" prop="useProperty">
+          <el-input v-model="form.useProperty" placeholder="请输入车辆用途" />
+        </el-form-item>
+        <el-form-item label="类别" prop="flag">
+          <el-radio v-model="form.flag" :label=0>增加</el-radio>
+          <el-radio v-model="form.flag" :label=1>减少</el-radio>
+        </el-form-item>
+        <el-form-item v-if="form.flag===0" label="资产卡号" prop="assetsCard">
+          <el-input v-model="form.assetsCard" placeholder="请输入资产卡号" />
+        </el-form-item>
+        <el-form-item v-if="form.flag===0" label="配置日期" prop="orgDate">
+          <el-date-picker clearable
+                          v-model="form.orgDate"
+                          type="date"
+                          value-format="yyyy-MM-dd HH:mm:ss"
+                          placeholder="请选择配置日期">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item v-if="form.flag===1" label="处置日期" prop="handleDate">
+          <el-date-picker clearable
+                          v-model="form.handleDate"
+                          type="date"
+                          value-format="yyyy-MM-dd HH:mm:ss"
+                          placeholder="请选择处置日期">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item v-if="form.flag===1" label="处置原因" prop="handleReason">
+          <el-input v-model="form.handleReason" placeholder="请输入处置原因" />
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listPlatPublicCarChangeDetail, getPlatPublicCarChangeDetail, delPlatPublicCarChangeDetail, addPlatPublicCarChangeDetail, updatePlatPublicCarChangeDetail } from "@/api/zcustom/carDetail";
+
+export default {
+  name: "PlatPublicCarChangeDetail",
+  data() {
+    return {
+      // 根路径
+      baseURL: process.env.VUE_APP_BASE_API,
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 公务用车年度增加减少表格数据
+      platPublicCarChangeDetailList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      flag:0,
+
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        appEncode: null,
+        vehicleNum: null,
+        useProperty: null,
+        assetsCard: null,
+        orgDate: null,
+        handleDate: null,
+        handleReason: null,
+        flag: null
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        id: [
+          { required: true, message: "id不能为空", trigger: "blur" }
+        ],
+        delFlag: [
+          { required: true, message: "删除标志不能为空", trigger: "blur" }
+        ],
+        appEncode: [
+          { required: true, message: "所属单位不能为空", trigger: "blur" }
+        ],
+        vehicleNum: [
+          { required: true, message: "车牌号不能为空", trigger: "blur" }
+        ],
+        useProperty: [
+          { required: true, message: "车辆用途不能为空", trigger: "blur" }
+        ],
+        assetsCard: [
+          { required: true, message: "资产卡号不能为空", trigger: "blur" }
+        ],
+        orgDate: [
+          { required: true, message: "配置日期不能为空", trigger: "blur" }
+        ],
+        handleDate: [
+          { required: true, message: "处置日期不能为空", trigger: "blur" }
+        ],
+        handleReason: [
+          { required: true, message: "处置原因不能为空", trigger: "blur" }
+        ],
+        flag: [
+          { required: true, message: "类别不能为空", trigger: "blur" }
+        ]
+      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+
+    /** 查询公务用车年度增加减少列表 */
+    getList() {
+      this.loading = true;
+      listPlatPublicCarChangeDetail(this.queryParams).then(response => {
+        this.platPublicCarChangeDetailList =  response.data.records;
+        this.total = response.data.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        delFlag: null,
+        appEncode: null,
+        vehicleNum: null,
+        useProperty: null,
+        assetsCard: null,
+        orgDate: null,
+        handleDate: null,
+        handleReason: null,
+        flag: null
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length!==1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加公务用车年度增加减少";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getPlatPublicCarChangeDetail(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改公务用车年度增加减少";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updatePlatPublicCarChangeDetail(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addPlatPublicCarChangeDetail(this.form).then(response => {
+              this.$modal.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('是否确认删除?').then(function() {
+        return delPlatPublicCarChangeDetail(ids);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("删除成功");
+      }).catch(() => {});
+    }
+  }
+};
+</script>

+ 259 - 0
src/views/zcustom/carRank/index.vue

@@ -0,0 +1,259 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="80px">
+      <el-form-item label="车牌号" prop="vechileNum">
+        <el-input
+          v-model="queryParams.vechileNum"
+          placeholder="请输入车牌号"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="单位编码" prop="appEncode">
+        <el-input
+          v-model="queryParams.appEncode"
+          placeholder="请输入单位编码"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['zcustom:platPublicCarRankPerson:add']"
+        >新增</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['zcustom:platPublicCarRankPerson:remove']"
+        >删除</el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="platPublicCarRankPersonList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="序号" width="50">
+        <template slot-scope="scope">
+          {{(scope.$index + 1) + ((queryParams.pageNum - 1) * queryParams.pageSize)}}
+        </template>
+      </el-table-column>
+      <el-table-column label="派车单总数" align="center" prop="pcdCount" />
+      <el-table-column label="车牌号" align="center" prop="vechileNum" />
+      <el-table-column label="单位编码" align="center" prop="appEncode" />
+      <el-table-column label="操作" align="center" fixed="right" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['zcustom:platPublicCarRankPerson:edit']"
+          >修改</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['zcustom:platPublicCarRankPerson:remove']"
+          >删除</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改公务用车对话框 -->
+    <el-dialog :title="title" :visible.sync="open" :close-on-click-modal="false" width="800px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="100px">
+        <el-form-item label="派车单总数" prop="pcdCount">
+          <el-input v-model="form.pcdCount" placeholder="请输入派车单总数" />
+        </el-form-item>
+        <el-form-item label="车牌号" prop="vechileNum">
+          <el-input v-model="form.vechileNum" placeholder="请输入车牌号" />
+        </el-form-item>
+        <el-form-item label="单位编码" prop="appEncode">
+          <el-input v-model="form.appEncode" placeholder="请输入单位编码" />
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listPlatPublicCarRankPerson, getPlatPublicCarRankPerson, delPlatPublicCarRankPerson, addPlatPublicCarRankPerson, updatePlatPublicCarRankPerson } from "@/api/zcustom/carRank";
+
+export default {
+  name: "PlatPublicCarRankPerson",
+  data() {
+    return {
+      // 根路径
+      baseURL: process.env.VUE_APP_BASE_API,
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 公务用车表格数据
+      platPublicCarRankPersonList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        pcdCount: null,
+        vechileNum: null,
+        appEncode: null
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        id: [
+          { required: true, message: "id不能为空", trigger: "blur" }
+        ],
+        delFlag: [
+          { required: true, message: "删除标志不能为空", trigger: "blur" }
+        ],
+        pcdCount: [
+          { required: true, message: "派车单总数不能为空", trigger: "blur" }
+        ],
+        vechileNum: [
+          { required: true, message: "车牌号不能为空", trigger: "blur" }
+        ],
+        appEncode: [
+          { required: true, message: "单位编码不能为空", trigger: "blur" }
+        ]
+      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 查询公务用车列表 */
+    getList() {
+      this.loading = true;
+      listPlatPublicCarRankPerson(this.queryParams).then(response => {
+        this.platPublicCarRankPersonList =  response.data.records;
+        this.total = response.data.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        delFlag: null,
+        pcdCount: null,
+        vechileNum: null,
+        appEncode: null
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length!==1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加公务用车";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getPlatPublicCarRankPerson(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改公务用车";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updatePlatPublicCarRankPerson(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addPlatPublicCarRankPerson(this.form).then(response => {
+              this.$modal.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('是否确认删除?').then(function() {
+        return delPlatPublicCarRankPerson(ids);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("删除成功");
+      }).catch(() => {});
+    }
+  }
+};
+</script>

+ 10 - 0
src/views/zcustom/platAppOrg/index.vue

@@ -55,6 +55,12 @@
       </el-table-column>
       <el-table-column label="地区编码" align="center" prop="appOrg" />
       <el-table-column label="地区名称" align="center" prop="appName" />
+      <el-table-column label="接入标志" align="center" prop="connectFlag">
+        <template slot-scope="scope">
+          <span v-if="scope.row.connectFlag==='1'">已接入</span>
+          <span v-if="scope.row.connectFlag==='0'">未接入</span>
+        </template>
+      </el-table-column>
       <el-table-column label="操作" align="center" fixed="right" class-name="small-padding fixed-width">
         <template slot-scope="scope">
           <el-button
@@ -99,6 +105,10 @@
         <el-form-item label="地区名称" prop="appName">
           <el-input v-model="form.appName" placeholder="请输入地区名称" />
         </el-form-item>
+        <el-form-item label="接入标志" prop="connectFlag">
+            <el-radio v-model="form.connectFlag" label="1">已接入</el-radio>
+            <el-radio v-model="form.connectFlag" label="0">未接入</el-radio>
+        </el-form-item>
       </el-form>
       <div slot="footer" class="dialog-footer">
         <el-button type="primary" @click="submitForm">确 定</el-button>

+ 466 - 0
src/views/zcustom/public/index.vue

@@ -0,0 +1,466 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="80px">
+      <el-form-item label="所属单位" prop="appEncode">
+        <el-input
+          v-model="queryParams.appEncode"
+          placeholder="请输入所属单位"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['zcustom:platPublicCar:add']"
+        >新增</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['zcustom:platPublicCar:remove']"
+        >删除</el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="platPublicCarList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="序号" width="50">
+        <template slot-scope="scope">
+          {{(scope.$index + 1) + ((queryParams.pageNum - 1) * queryParams.pageSize)}}
+        </template>
+      </el-table-column>
+      <el-table-column label="所属单位" align="center" prop="appEncode" />
+      <el-table-column label="公务车实有总数" align="center" prop="totalCarNum" />
+      <el-table-column label="商务车数量" align="center" prop="carNumOne" />
+      <el-table-column label="越野车数量" align="center" prop="carNumTwo" />
+      <el-table-column label="小轿车数量" align="center" prop="carNumThree" />
+      <el-table-column label="小型客车数量" align="center" prop="carNumFour" />
+      <el-table-column label="大型客车数量" align="center" prop="carNumFive" />
+      <el-table-column label="企业用车数量" align="center" prop="enterpriseCarNum" />
+      <el-table-column label="企业负责人用车数量" align="center" prop="headCarNum" />
+      <el-table-column label="燃油车数量" align="center" prop="oilCarNum" />
+      <el-table-column label="新能源车数量" align="center" prop="newPowerCarNum" />
+      <el-table-column label="公务车缺编率" align="center" prop="lackRate" />
+      <el-table-column label="公务车占编率" align="center" prop="possesRate" />
+      <el-table-column label="公务车编制数" align="center" prop="establishmentsCarNum" />
+      <el-table-column label="公务车年度增加数" align="center" prop="yearAddNum" />
+      <el-table-column label="公务车年度减少数" align="center" prop="yearReduceNum" />
+      <el-table-column label="公务车终端安装率" align="center" prop="terminalInstallRate" />
+      <el-table-column label="公务车终端在线率" align="center" prop="terminalOnlineRate" />
+      <el-table-column label="处置未归档数量" align="center" prop="notArchivedNum" />
+      <el-table-column label="未带工单数" align="center" prop="noPidNum" />
+      <el-table-column label="超速预警数" align="center" prop="overSpeedNum" />
+      <el-table-column label="节假日预警数" align="center" prop="holidayNum" />
+      <el-table-column label="派车单总数" align="center" prop="pcdNum" />
+      <el-table-column label="均车派车单数" align="center" prop="avgPcdNum" />
+      <el-table-column label="公务车行驶总里程" align="center" prop="mileCount" />
+      <el-table-column label="均车里程" align="center" prop="avgMile" />
+      <el-table-column label="操作" align="center" fixed="right" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['zcustom:platPublicCar:edit']"
+          >修改</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['zcustom:platPublicCar:remove']"
+          >删除</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改公务用车对话框 -->
+    <el-dialog :title="title" :visible.sync="open" :close-on-click-modal="false" width="800px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="150px">
+        <el-form-item label="所属单位" prop="appEncode">
+          <el-input v-model="form.appEncode" placeholder="请输入所属单位" />
+        </el-form-item>
+        <el-form-item label="公务车实有总数" prop="totalCarNum">
+          <el-input v-model="form.totalCarNum" placeholder="请输入公务车实有总数" />
+        </el-form-item>
+        <el-form-item label="商务车数量" prop="carNumOne">
+          <el-input v-model="form.carNumOne" placeholder="请输入商务车数量" />
+        </el-form-item>
+        <el-form-item label="越野车数量" prop="carNumTwo">
+          <el-input v-model="form.carNumTwo" placeholder="请输入越野车数量" />
+        </el-form-item>
+        <el-form-item label="小轿车数量" prop="carNumThree">
+          <el-input v-model="form.carNumThree" placeholder="请输入小轿车数量" />
+        </el-form-item>
+        <el-form-item label="小型客车数量" prop="carNumFour">
+          <el-input v-model="form.carNumFour" placeholder="请输入小型客车数量" />
+        </el-form-item>
+        <el-form-item label="大型客车数量" prop="carNumFive">
+          <el-input v-model="form.carNumFive" placeholder="请输入大型客车数量" />
+        </el-form-item>
+        <el-form-item label="企业用车数量" prop="enterpriseCarNum">
+          <el-input v-model="form.enterpriseCarNum" placeholder="请输入企业用车数量" />
+        </el-form-item>
+        <el-form-item label="企业负责人用车数量" prop="headCarNum">
+          <el-input v-model="form.headCarNum" placeholder="请输入企业负责人用车数量" />
+        </el-form-item>
+        <el-form-item label="燃油车数量" prop="oilCarNum">
+          <el-input v-model="form.oilCarNum" placeholder="请输入燃油车数量" />
+        </el-form-item>
+        <el-form-item label="新能源车数量" prop="newPowerCarNum">
+          <el-input v-model="form.newPowerCarNum" placeholder="请输入新能源车数量" />
+        </el-form-item>
+        <el-form-item label="公务车缺编率" prop="lackRate">
+          <el-input v-model="form.lackRate" placeholder="请输入公务车缺编率" />
+        </el-form-item>
+        <el-form-item label="公务车占编率" prop="possesRate">
+          <el-input v-model="form.possesRate" placeholder="请输入公务车占编率" />
+        </el-form-item>
+        <el-form-item label="公务车编制数" prop="establishmentsCarNum">
+          <el-input v-model="form.establishmentsCarNum" placeholder="请输入公务车编制数" />
+        </el-form-item>
+        <el-form-item label="公务车年度增加数" prop="yearAddNum">
+          <el-input v-model="form.yearAddNum" placeholder="请输入公务车年度增加数" />
+        </el-form-item>
+        <el-form-item label="公务车年度减少数" prop="yearReduceNum">
+          <el-input v-model="form.yearReduceNum" placeholder="请输入公务车年度减少数" />
+        </el-form-item>
+        <el-form-item label="公务车终端安装率" prop="terminalInstallRate">
+          <el-input v-model="form.terminalInstallRate" placeholder="请输入公务车终端安装率" />
+        </el-form-item>
+        <el-form-item label="公务车终端在线率" prop="terminalOnlineRate">
+          <el-input v-model="form.terminalOnlineRate" placeholder="请输入公务车终端在线率" />
+        </el-form-item>
+        <el-form-item label="处置未归档数量" prop="notArchivedNum">
+          <el-input v-model="form.notArchivedNum" placeholder="请输入处置未归档数量" />
+        </el-form-item>
+        <el-form-item label="未带工单数" prop="noPidNum">
+          <el-input v-model="form.noPidNum" placeholder="请输入未带工单数" />
+        </el-form-item>
+        <el-form-item label="超速预警数" prop="overSpeedNum">
+          <el-input v-model="form.overSpeedNum" placeholder="请输入超速预警数" />
+        </el-form-item>
+        <el-form-item label="节假日预警数" prop="holidayNum">
+          <el-input v-model="form.holidayNum" placeholder="请输入节假日预警数" />
+        </el-form-item>
+        <el-form-item label="派车单总数" prop="pcdNum">
+          <el-input v-model="form.pcdNum" placeholder="请输入派车单总数" />
+        </el-form-item>
+        <el-form-item label="均车派车单数" prop="avgPcdNum">
+          <el-input v-model="form.avgPcdNum" placeholder="请输入均车派车单数" />
+        </el-form-item>
+        <el-form-item label="公务车行驶总里程" prop="mileCount">
+          <el-input v-model="form.mileCount" placeholder="请输入公务车行驶总里程" />
+        </el-form-item>
+        <el-form-item label="均车里程" prop="avgMile">
+          <el-input v-model="form.avgMile" placeholder="请输入均车里程" />
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listPlatPublicCar, getPlatPublicCar, delPlatPublicCar, addPlatPublicCar, updatePlatPublicCar } from "@/api/zcustom/public";
+
+export default {
+  name: "PlatPublicCar",
+  data() {
+    return {
+      // 根路径
+      baseURL: process.env.VUE_APP_BASE_API,
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 公务用车表格数据
+      platPublicCarList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        appEncode: null,
+        totalCarNum: null,
+        carNumOne: null,
+        carNumTwo: null,
+        carNumThree: null,
+        carNumFour: null,
+        carNumFive: null,
+        enterpriseCarNum: null,
+        headCarNum: null,
+        oilCarNum: null,
+        newPowerCarNum: null,
+        lackRate: null,
+        possesRate: null,
+        establishmentsCarNum: null,
+        yearAddNum: null,
+        yearReduceNum: null,
+        terminalInstallRate: null,
+        terminalOnlineRate: null,
+        notArchivedNum: null,
+        noPidNum: null,
+        overSpeedNum: null,
+        holidayNum: null,
+        pcdNum: null,
+        avgPcdNum: null,
+        mileCount: null,
+        avgMile: null
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        id: [
+          { required: true, message: "id不能为空", trigger: "blur" }
+        ],
+        delFlag: [
+          { required: true, message: "删除标志不能为空", trigger: "blur" }
+        ],
+        appEncode: [
+          { required: true, message: "所属单位不能为空", trigger: "blur" }
+        ],
+        totalCarNum: [
+          { required: true, message: "公务车实有总数不能为空", trigger: "blur" }
+        ],
+        carNumOne: [
+          { required: true, message: "商务车数量不能为空", trigger: "blur" }
+        ],
+        carNumTwo: [
+          { required: true, message: "越野车数量不能为空", trigger: "blur" }
+        ],
+        carNumThree: [
+          { required: true, message: "小轿车数量不能为空", trigger: "blur" }
+        ],
+        carNumFour: [
+          { required: true, message: "小型客车数量不能为空", trigger: "blur" }
+        ],
+        carNumFive: [
+          { required: true, message: "大型客车数量不能为空", trigger: "blur" }
+        ],
+        enterpriseCarNum: [
+          { required: true, message: "企业用车数量不能为空", trigger: "blur" }
+        ],
+        headCarNum: [
+          { required: true, message: "企业负责人用车数量不能为空", trigger: "blur" }
+        ],
+        oilCarNum: [
+          { required: true, message: "燃油车数量不能为空", trigger: "blur" }
+        ],
+        newPowerCarNum: [
+          { required: true, message: "新能源车数量不能为空", trigger: "blur" }
+        ],
+        lackRate: [
+          { required: true, message: "公务车缺编率不能为空", trigger: "blur" }
+        ],
+        possesRate: [
+          { required: true, message: "公务车占编率不能为空", trigger: "blur" }
+        ],
+        establishmentsCarNum: [
+          { required: true, message: "公务车编制数不能为空", trigger: "blur" }
+        ],
+        yearAddNum: [
+          { required: true, message: "公务车年度增加数不能为空", trigger: "blur" }
+        ],
+        yearReduceNum: [
+          { required: true, message: "公务车年度减少数不能为空", trigger: "blur" }
+        ],
+        terminalInstallRate: [
+          { required: true, message: "公务车终端安装率不能为空", trigger: "blur" }
+        ],
+        terminalOnlineRate: [
+          { required: true, message: "公务车终端在线率不能为空", trigger: "blur" }
+        ],
+        notArchivedNum: [
+          { required: true, message: "处置未归档数量不能为空", trigger: "blur" }
+        ],
+        noPidNum: [
+          { required: true, message: "未带工单数不能为空", trigger: "blur" }
+        ],
+        overSpeedNum: [
+          { required: true, message: "超速预警数不能为空", trigger: "blur" }
+        ],
+        holidayNum: [
+          { required: true, message: "节假日预警数不能为空", trigger: "blur" }
+        ],
+        pcdNum: [
+          { required: true, message: "派车单总数不能为空", trigger: "blur" }
+        ],
+        avgPcdNum: [
+          { required: true, message: "均车派车单数不能为空", trigger: "blur" }
+        ],
+        mileCount: [
+          { required: true, message: "公务车行驶总里程不能为空", trigger: "blur" }
+        ],
+        avgMile: [
+          { required: true, message: "均车里程不能为空", trigger: "blur" }
+        ]
+      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 查询公务用车列表 */
+    getList() {
+      this.loading = true;
+      listPlatPublicCar(this.queryParams).then(response => {
+        this.platPublicCarList =  response.data.records;
+        this.total = response.data.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        delFlag: null,
+        appEncode: null,
+        totalCarNum: null,
+        carNumOne: null,
+        carNumTwo: null,
+        carNumThree: null,
+        carNumFour: null,
+        carNumFive: null,
+        enterpriseCarNum: null,
+        headCarNum: null,
+        oilCarNum: null,
+        newPowerCarNum: null,
+        lackRate: null,
+        possesRate: null,
+        establishmentsCarNum: null,
+        yearAddNum: null,
+        yearReduceNum: null,
+        terminalInstallRate: null,
+        terminalOnlineRate: null,
+        notArchivedNum: null,
+        noPidNum: null,
+        overSpeedNum: null,
+        holidayNum: null,
+        pcdNum: null,
+        avgPcdNum: null,
+        mileCount: null,
+        avgMile: null
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length!==1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加公务用车";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getPlatPublicCar(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改公务用车";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updatePlatPublicCar(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addPlatPublicCar(this.form).then(response => {
+              this.$modal.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('是否确认删除?').then(function() {
+        return delPlatPublicCar(ids);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("删除成功");
+      }).catch(() => {});
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      this.download('zcustom/platPublicCar/export', {
+        ...this.queryParams
+      }, `platPublicCar_${new Date().getTime()}.xlsx`)
+    }
+  }
+};
+</script>
+

+ 253 - 0
src/views/zcustom/unitRank/index.vue

@@ -0,0 +1,253 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="80px">
+
+      <el-form-item label="单位编码" prop="appEncode">
+        <el-input
+          v-model="queryParams.appEncode"
+          placeholder="请输入单位编码"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['zcustom:platPublicCarRankUnit:add']"
+        >新增</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['zcustom:platPublicCarRankUnit:remove']"
+        >删除</el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="platPublicCarRankUnitList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="序号" width="50">
+        <template slot-scope="scope">
+          {{(scope.$index + 1) + ((queryParams.pageNum - 1) * queryParams.pageSize)}}
+        </template>
+      </el-table-column>
+      <el-table-column label="公务车总数" align="center" prop="gwcCount" />
+      <el-table-column label="公务车派车次数" align="center" prop="gwcPcd" />
+      <el-table-column label="单位编码" align="center" prop="appEncode" />
+      <el-table-column label="操作" align="center" fixed="right" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['zcustom:platPublicCarRankUnit:edit']"
+          >修改</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['zcustom:platPublicCarRankUnit:remove']"
+          >删除</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改公务用车对话框 -->
+    <el-dialog :title="title" :visible.sync="open" :close-on-click-modal="false" width="800px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="120px">
+        <el-form-item label="公务车总数" prop="gwcCount">
+          <el-input v-model="form.gwcCount" placeholder="请输入公务车总数" />
+        </el-form-item>
+        <el-form-item label="公务车派车次数" prop="gwcPcd">
+          <el-input v-model="form.gwcPcd" placeholder="请输入公务车派车次数" />
+        </el-form-item>
+        <el-form-item label="单位编码" prop="appEncode">
+          <el-input v-model="form.appEncode" placeholder="请输入单位编码" />
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listPlatPublicCarRankUnit, getPlatPublicCarRankUnit, delPlatPublicCarRankUnit, addPlatPublicCarRankUnit, updatePlatPublicCarRankUnit } from "@/api/zcustom/unitRank";
+
+export default {
+  name: "PlatPublicCarRankUnit",
+  data() {
+    return {
+      // 根路径
+      baseURL: process.env.VUE_APP_BASE_API,
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 公务用车表格数据
+      platPublicCarRankUnitList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        gwcCount: null,
+        gwcPcd: null,
+        appEncode: null
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        id: [
+          { required: true, message: "id不能为空", trigger: "blur" }
+        ],
+        delFlag: [
+          { required: true, message: "删除标志不能为空", trigger: "blur" }
+        ],
+        gwcCount: [
+          { required: true, message: "公务车总数不能为空", trigger: "blur" }
+        ],
+        gwcPcd: [
+          { required: true, message: "公务车派车次数不能为空", trigger: "blur" }
+        ],
+        appEncode: [
+          { required: true, message: "单位编码不能为空", trigger: "blur" }
+        ]
+      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 查询公务用车列表 */
+    getList() {
+      this.loading = true;
+      listPlatPublicCarRankUnit(this.queryParams).then(response => {
+        this.platPublicCarRankUnitList =  response.data.records;
+        this.total = response.data.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        delFlag: null,
+        gwcCount: null,
+        gwcPcd: null,
+        appEncode: null
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length!==1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加公务用车";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      console.log(row)
+      getPlatPublicCarRankUnit(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改公务用车";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updatePlatPublicCarRankUnit(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addPlatPublicCarRankUnit(this.form).then(response => {
+              this.$modal.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('是否确认删除?').then(function() {
+        return delPlatPublicCarRankUnit(ids);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("删除成功");
+      }).catch(() => {});
+    },
+  }
+};
+</script>

+ 282 - 0
src/views/zcustom/warnDetail/index.vue

@@ -0,0 +1,282 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="80px">
+      <el-form-item label="所属单位" prop="appEncode">
+        <el-input
+          v-model="queryParams.appEncode"
+          placeholder="请输入所属单位"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="车牌号" prop="vehicleNum">
+        <el-input
+          v-model="queryParams.vehicleNum"
+          placeholder="请输入车牌号"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['zcustom:platPublicCarWarnDetail:add']"
+        >新增</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['zcustom:platPublicCarWarnDetail:remove']"
+        >删除</el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="platPublicCarWarnDetailList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="序号" width="50">
+        <template slot-scope="scope">
+          {{(scope.$index + 1) + ((queryParams.pageNum - 1) * queryParams.pageSize)}}
+        </template>
+      </el-table-column>
+      <el-table-column label="所属单位" align="center" prop="appEncode" />
+      <el-table-column label="车牌号" align="center" prop="vehicleNum" />
+      <el-table-column label="预警类型" align="center" prop="alertType" />
+      <el-table-column label="预警开始时间" align="center" prop="startTime" />
+      <el-table-column label="预警结束时间" align="center" prop="endTime" />
+      <el-table-column label="操作" align="center" fixed="right" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['zcustom:platPublicCarWarnDetail:edit']"
+          >修改</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['zcustom:platPublicCarWarnDetail:remove']"
+          >删除</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改公务用车预警明细对话框 -->
+    <el-dialog :title="title" :visible.sync="open" :close-on-click-modal="false" width="800px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="120px">
+        <el-form-item label="所属单位" prop="appEncode">
+          <el-input v-model="form.appEncode" placeholder="请输入所属单位" />
+        </el-form-item>
+        <el-form-item label="车牌号" prop="vehicleNum">
+          <el-input v-model="form.vehicleNum" placeholder="请输入车牌号" />
+        </el-form-item>
+        <el-form-item label="预警开始时间" prop="startTime">
+          <el-date-picker
+            v-model="form.startTime"
+            type="date"
+            placeholder="请输入预警开始时间">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="预警结束时间" prop="endTime">
+          <el-date-picker
+            v-model="form.endTime"
+            type="date"
+            placeholder="请输入预警结束时间">
+          </el-date-picker>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listPlatPublicCarWarnDetail, getPlatPublicCarWarnDetail, delPlatPublicCarWarnDetail, addPlatPublicCarWarnDetail, updatePlatPublicCarWarnDetail } from "@/api/zcustom/warnDetail";
+
+export default {
+  name: "PlatPublicCarWarnDetail",
+  data() {
+    return {
+      // 根路径
+      baseURL: process.env.VUE_APP_BASE_API,
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 公务用车预警明细表格数据
+      platPublicCarWarnDetailList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        appEncode: null,
+        vehicleNum: null,
+        alertType: null,
+        startTime: null,
+        endTime: null
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        id: [
+          { required: true, message: "id不能为空", trigger: "blur" }
+        ],
+        delFlag: [
+          { required: true, message: "删除标志不能为空", trigger: "blur" }
+        ],
+        appEncode: [
+          { required: true, message: "所属单位不能为空", trigger: "blur" }
+        ],
+        vehicleNum: [
+          { required: true, message: "车牌号不能为空", trigger: "blur" }
+        ],
+        alertType: [
+          { required: true, message: "预警类型不能为空", trigger: "change" }
+        ],
+        startTime: [
+          { required: true, message: "预警开始时间不能为空", trigger: "blur" }
+        ],
+        endTime: [
+          { required: true, message: "预警结束时间不能为空", trigger: "blur" }
+        ]
+      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 查询公务用车预警明细列表 */
+    getList() {
+      this.loading = true;
+      listPlatPublicCarWarnDetail(this.queryParams).then(response => {
+        this.platPublicCarWarnDetailList =  response.data.records;
+        this.total = response.data.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        delFlag: null,
+        appEncode: null,
+        vehicleNum: null,
+        alertType: null,
+        startTime: null,
+        endTime: null
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length!==1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加公务用车预警明细";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getPlatPublicCarWarnDetail(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改公务用车预警明细";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updatePlatPublicCarWarnDetail(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addPlatPublicCarWarnDetail(this.form).then(response => {
+              this.$modal.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('是否确认删除?').then(function() {
+        return delPlatPublicCarWarnDetail(ids);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("删除成功");
+      }).catch(() => {});
+    }
+  }
+};
+</script>