车辆管理系统-后台管理系统web
spring
3 天以前 d7606a9a3c81114f5d255c72d0eeb55e87d8aabb
fix: 打包配置
已添加2个文件
已修改6个文件
21197 ■■■■ 文件已修改
.eslintrc.js 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.gitignore 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
package.json 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/settings.js 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/vehicle/queuing/index.vue 287 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/vehicle/registration/index.vue 269 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
vue.config.js 30 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
yarn.lock 20560 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.eslintrc.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,14 @@
module.exports = {
  root: true,
  env: {
    browser: true,
    node: true,
  },
  extends: ["eslint:recommended", "plugin:vue/recommended"],
  parserOptions: {
    sourceType: "module",
    ecmaVersion: 2018,
  },
  rules: {},
};
.gitignore
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
node_modules/
dist/
eslint_print_config.json
package-lock.json
dist.zip
__MACOSX/
package.json
@@ -5,7 +5,7 @@
  "author": "CMS",
  "license": "MIT",
  "scripts": {
    "dev": "set NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve",
    "dev": "vue-cli-service serve",
    "build": "vue-cli-service build",
    "build:stage": "vue-cli-service build --mode staging",
    "preview": "node build/index.js --preview",
@@ -112,6 +112,21 @@
    "node": ">=8.9",
    "npm": ">= 3.0.0"
  },
  "eslintConfig": {
    "root": true,
    "env": {
      "browser": true,
      "node": true
    },
    "extends": [
      "eslint:recommended",
      "plugin:vue/recommended"
    ],
    "parserOptions": {
      "sourceType": "module"
    },
    "rules": {}
  },
  "browserslist": [
    "> 1%",
    "last 2 versions"
src/settings.js
@@ -8,13 +8,16 @@
// | Author: CMS Team <admin@CMS.com>
// +----------------------------------------------------------------------
// è¯·æ±‚接口地址 å¦‚果没有配置自动获取当前网址路径
const VUE_APP_API_URL = process.env.VUE_APP_BASE_API || `${location.origin}/api/`;
// è¯·æ±‚接口地址:
// - æµè§ˆå™¨è¿è¡Œæ—¶å¯ä½¿ç”¨ location.origin
// - Node æž„建/加载阶段(vue-cli-service åŠ è½½ vue.config.js)没有 location,必须兜底
const VUE_APP_API_URL =
  process.env.VUE_APP_BASE_API || "http://172.17.0.1:9031/api/";
module.exports = {
  // æŽ¥å£è¯·æ±‚地址
  apiBaseURL: VUE_APP_API_URL,
  title: 'CMS',
  title: "CMS",
  /**
   * @type {boolean} true | false
@@ -46,5 +49,5 @@
   * The default is only used in the production env
   * If you want to also use it in dev, you can pass ['production', 'development']
   */
  errorLog: 'production'
}
  errorLog: "production",
};
src/views/vehicle/queuing/index.vue
@@ -1,24 +1,44 @@
<template>
  <div class="divBox relative vehicle-queue">
    <el-card class="box-card">
      <div slot="header" class="clearfix">
        <el-tabs v-model="tableFrom.areaId" @tab-click="handleChangeArea">
      <div
        slot="header"
        class="clearfix"
      >
        <el-tabs
          v-model="tableFrom.areaId"
          @tab-click="handleChangeArea"
        >
          <el-tab-pane
            :label="item.name"
            :name="item.id.toString()"
            v-for="(item, index) in headeNum"
            :key="index"
            :label="item.name"
            :name="item.id.toString()"
          />
        </el-tabs>
        <div class="sts-contanier" v-if="stsList.length > 0">
          <div v-for="item in stsList" :key="item.title" class="sts-box">
            <div class="sts-num">{{ item.num }}</div>
            <div class="sts-title">{{ item.title }}</div>
        <div
          v-if="stsList.length > 0"
          class="sts-contanier"
        >
          <div
            v-for="item in stsList"
            :key="item.title"
            class="sts-box"
          >
            <div class="sts-num">
              {{ item.num }}
            </div>
            <div class="sts-title">
              {{ item.title }}
            </div>
          </div>
        </div>
        <div class="container mt-1">
          <el-form inline size="small">
          <el-form
            inline
            size="small"
          >
            <el-form-item label="排队号码">
              <el-input
                v-model="tableFrom.queueNumber"
@@ -26,8 +46,7 @@
                class="selWidth"
                size="small"
                clearable
              >
              </el-input>
              />
            </el-form-item>
            <el-form-item label="手机号">
              <el-input
@@ -36,47 +55,83 @@
                class="selWidth"
                size="small"
                clearable
              >
              </el-input>
              />
            </el-form-item>
            <el-form-item>
              <el-button
                v-hasPermi="['admin:vehicle:queue']"
                size="small"
                type="primary"
                class="mr10"
                @click="getList(1)"
                v-hasPermi="['admin:vehicle:queue']"
                >查询</el-button
              >
                æŸ¥è¯¢
              </el-button>
            </el-form-item>
          </el-form>
        </div>
      </div>
      <el-table
        :key="tableKey"
        v-loading="listLoading"
        :data="tableData.data"
        style="width: 100%"
        size="mini"
        :key="tableKey"
        :highlight-current-row="true"
        :cell-style="{ textAlign: 'center' }"
        :header-cell-style="{ fontWeight: 'bold', textAlign: 'center' }"
      >
        <el-table-column prop="queueNumber" label="排队号码" min-width="80" />
        <el-table-column prop="sort" label="当前排序" width="70" />
        <el-table-column prop="name" label="姓名" min-width="80" />
        <el-table-column prop="licensePlate" label="车牌号" width="90" />
        <el-table-column prop="phone" label="手机号" min-width="100" />
        <el-table-column prop="idCard" label="身份证号" min-width="150" />
        <el-table-column
          prop="queueNumber"
          label="排队号码"
          min-width="80"
        />
        <el-table-column
          prop="sort"
          label="当前排序"
          width="70"
        />
        <el-table-column
          prop="name"
          label="姓名"
          min-width="80"
        />
        <el-table-column
          prop="licensePlate"
          label="车牌号"
          width="90"
        />
        <el-table-column
          prop="phone"
          label="手机号"
          min-width="100"
        />
        <el-table-column
          prop="idCard"
          label="身份证号"
          min-width="150"
        />
        <el-table-column
          prop="loadingAreaName"
          label="装卸区域"
          min-width="70"
        />
        <el-table-column prop="orderTypeName" label="订单类型" min-width="70" />
        <el-table-column prop="loadUnloadQty" label="装卸数量" min-width="70" />
        <el-table-column prop="unitName" label="单位" min-width="50" />
        <el-table-column
          prop="orderTypeName"
          label="订单类型"
          min-width="70"
        />
        <el-table-column
          prop="loadUnloadQty"
          label="装卸数量"
          min-width="70"
        />
        <el-table-column
          prop="unitName"
          label="单位"
          min-width="50"
        />
        <el-table-column
          prop="vehicleStatusName"
          label="车辆状态"
@@ -88,7 +143,7 @@
              <template
                v-if="
                  scope.row.vehicleStatusCode == 1256 ||
                  scope.row.vehicleStatusCode == 1257
                    scope.row.vehicleStatusCode == 1257
                "
              >
                <el-tooltip
@@ -100,20 +155,29 @@
                    class="over-img"
                    src="../../../assets/imgs/over.svg"
                    alt=""
                  />
                  >
                </el-tooltip>
              </template>
            </div> </template
        ></el-table-column>
            </div>
          </template>
        </el-table-column>
        <el-table-column
          prop="goodsStatusName"
          label="货物状态"
          min-width="70"
        />
        <el-table-column prop="reasonName" label="事由" min-width="60" />
        <el-table-column
          prop="reasonName"
          label="事由"
          min-width="60"
        />
        <el-table-column label="登记时间" width="135" align="center">
        <el-table-column
          label="登记时间"
          width="135"
          align="center"
        >
          <template slot-scope="scope">
            <span>{{ scope.row.registerTime | vformatDate }}</span>
          </template>
@@ -133,21 +197,23 @@
              >生成二维码</el-button
            > -->
            <el-button
              v-hasPermi="['admin:vehicle:print']"
              type="text"
              @click="handlePrintVehicle(scope.row)"
              size="small"
              class="mr10"
              v-hasPermi="['admin:vehicle:print']"
              >打印</el-button
              @click="handlePrintVehicle(scope.row)"
            >
              æ‰“印
            </el-button>
            <el-button
              v-hasPermi="['admin:vehicle:sort']"
              type="text"
              size="small"
              class="mr10"
              @click="handleChangeSort(scope.row)"
              v-hasPermi="['admin:vehicle:sort']"
              >调整排序</el-button
            >
              è°ƒæ•´æŽ’序
            </el-button>
            <el-dropdown trigger="click">
              <span class="el-dropdown-link">
                æ›´å¤š<i class="el-icon-arrow-down el-icon--right" />
@@ -156,32 +222,36 @@
                <el-dropdown-item
                  v-if="scope.row.vehicleStatusCode == 1256"
                  @click.native="handleMoreAction(0, scope.row)"
                  >发送短信提醒</el-dropdown-item
                >
                  å‘送短信提醒
                </el-dropdown-item>
                <el-dropdown-item
                  v-if="
                    checkPermi(['admin:vehicle:call']) &&
                    scope.row.vehicleStatusCode == 1255
                      scope.row.vehicleStatusCode == 1255
                  "
                  @click.native="handleMoreAction(1, scope.row)"
                  >手动叫号</el-dropdown-item
                >
                  æ‰‹åŠ¨å«å·
                </el-dropdown-item>
                <el-dropdown-item
                  v-if="
                    checkPermi(['admin:vehicle:pass']) &&
                    scope.row.vehicleStatusCode == 1256
                      scope.row.vehicleStatusCode == 1256
                  "
                  @click.native="handleMoreAction(2, scope.row)"
                  >标记为已过号</el-dropdown-item
                >
                  æ ‡è®°ä¸ºå·²è¿‡å·
                </el-dropdown-item>
                <el-dropdown-item
                  v-if="
                    checkPermi(['admin:vehicle:reQueue']) &&
                    scope.row.vehicleStatusCode == 1257
                      scope.row.vehicleStatusCode == 1257
                  "
                  @click.native="handleMoreAction(3, scope.row)"
                  >重新排队</el-dropdown-item
                >
                  é‡æ–°æŽ’队
                </el-dropdown-item>
              </el-dropdown-menu>
            </el-dropdown>
          </template>
@@ -208,7 +278,7 @@
        <edit
          v-if="editDialogConfig.visible"
          :edit-data="editDialogConfig.editData"
          :isReQueue="editDialogConfig.isReQueue"
          :is-re-queue="editDialogConfig.isReQueue"
          @hideEditDialog="hideEditDialog"
          @editSuccess="handleReloadData"
        />
@@ -216,10 +286,20 @@
    </el-card>
    <el-card v-show="false">
      <div class="print-dom">
        <div class="print-dom-box" v-if="printInfo" id="printArea">
          <div class="title">出入证信息</div>
          <div class="code-title">排队号码</div>
          <div class="code-code">{{ printInfo.queueNumber }}</div>
        <div
          v-if="printInfo"
          id="printArea"
          class="print-dom-box"
        >
          <div class="title">
            å‡ºå…¥è¯ä¿¡æ¯
          </div>
          <div class="code-title">
            æŽ’队号码
          </div>
          <div class="code-code">
            {{ printInfo.queueNumber }}
          </div>
          <div class="code-wait">
            å‰æ–¹è¿˜æœ‰{{ printInfo.currentWaitNum }}辆车排队中...
          </div>
@@ -227,46 +307,84 @@
            <qrcode
              v-if="printInfo.visible"
              :size="160"
              :qrUrl="printInfo.url"
            ></qrcode>
              :qr-url="printInfo.url"
            />
          </div>
          <div class="qrcode-text">微信扫码查看排队进度</div>
          <div class="line"></div>
          <div class="qrcode-text">
            å¾®ä¿¡æ‰«ç æŸ¥çœ‹æŽ’队进度
          </div>
          <div class="line" />
          <div class="cell">
            <div class="cell-label">姓名</div>
            <div class="cell-value">{{ printInfo.name }}</div>
            <div class="cell-label">
              å§“名
            </div>
            <div class="cell-value">
              {{ printInfo.name }}
            </div>
          </div>
          <div class="cell">
            <div class="cell-label">车牌号</div>
            <div class="cell-value">{{ printInfo.licensePlate }}</div>
            <div class="cell-label">
              è½¦ç‰Œå·
            </div>
            <div class="cell-value">
              {{ printInfo.licensePlate }}
            </div>
          </div>
          <div class="cell">
            <div class="cell-label">手机号</div>
            <div class="cell-value">{{ printInfo.phone }}</div>
            <div class="cell-label">
              æ‰‹æœºå·
            </div>
            <div class="cell-value">
              {{ printInfo.phone }}
            </div>
          </div>
          <div class="cell">
            <div class="cell-label">身份证号码</div>
            <div class="cell-value">{{ printInfo.idCard }}</div>
            <div class="cell-label">
              èº«ä»½è¯å·ç 
            </div>
            <div class="cell-value">
              {{ printInfo.idCard }}
            </div>
          </div>
          <div class="cell">
            <div class="cell-label">装卸数量</div>
            <div class="cell-value">{{ printInfo.loadUnloadQty }}</div>
            <div class="cell-label">
              è£…卸数量
            </div>
            <div class="cell-value">
              {{ printInfo.loadUnloadQty }}
            </div>
          </div>
          <div class="cell">
            <div class="cell-label">单位</div>
            <div class="cell-value">{{ printInfo.unitName }}</div>
            <div class="cell-label">
              å•位
            </div>
            <div class="cell-value">
              {{ printInfo.unitName }}
            </div>
          </div>
          <div class="cell">
            <div class="cell-label">装卸区域</div>
            <div class="cell-value">{{ printInfo.loadingAreaName }}</div>
            <div class="cell-label">
              è£…卸区域
            </div>
            <div class="cell-value">
              {{ printInfo.loadingAreaName }}
            </div>
          </div>
          <div class="cell">
            <div class="cell-label">登记时间</div>
            <div class="cell-value">{{ printInfo.registerTime }}</div>
            <div class="cell-label">
              ç™»è®°æ—¶é—´
            </div>
            <div class="cell-value">
              {{ printInfo.registerTime }}
            </div>
          </div>
          <div class="cell">
            <div class="cell-label">备注</div>
            <div class="cell-value over-line">{{ printInfo.remark }}</div>
            <div class="cell-label">
              å¤‡æ³¨
            </div>
            <div class="cell-value over-line">
              {{ printInfo.remark }}
            </div>
          </div>
        </div>
      </div>
@@ -283,9 +401,9 @@
      <div class="qrcodebox-container">
        <qrcode
          v-if="qrcodeDialogConfig.visible"
          :qrUrl="qrcodeDialogConfig.url"
          :showText="qrcodeDialogConfig.text"
        ></qrcode>
          :qr-url="qrcodeDialogConfig.url"
          :show-text="qrcodeDialogConfig.text"
        />
      </div>
    </el-dialog>
  </div>
@@ -355,7 +473,7 @@
      overTimeObj: null,
      // wsUrl: "wss://car-manager.truekey.mobi/admin/lineup",
      wsUrl: "wss://car-internalmanager.ztt.cn/admin/lineup",
      wsUrl: "wss://172.17.0.1:9031/admin/lineup",
      ws: null,
      lockReconnect: false, // æ˜¯å¦è¿žæŽ¥æˆåŠŸ
@@ -365,8 +483,7 @@
  },
  mounted() {
    if (process.env.NODE_ENV === "production") {
      console.log("当前是生产环境");
      let url = "https://car-internalmanager.ztt.cn/time";
      let url = "https://172.17.0.1:9031/time";
      // let url = "https://car-manager.truekey.mobi/time";
      fetch(url, {
        method: "GET",
@@ -382,7 +499,6 @@
          this.goodHeade();
        });
    } else {
      console.log("当前是开发环境");
      this.currentTime = this.getCurrentDate();
      this.goodHeade();
    }
@@ -412,7 +528,7 @@
      this.getList(1);
    },
    //切换区域
    handleChangeArea(tab, event) {
    handleChangeArea(tab) {
      this.tableFrom.areaId = tab.name;
      this.getList(1);
      this.getStsInfo();
@@ -420,7 +536,6 @@
    handlePrintVehicle(item) {
      let that = this;
      getPrintVehcicleInfoApi({ queueNumber: item.queueNumber }).then((res) => {
        console.log("打印信息:", res);
        that.printInfo = undefined;
        let newEl = {};
        newEl.queueNumber = res.queueNumber || "-";
@@ -439,7 +554,7 @@
        newEl.registerTime = res.registerTime || "-";
        newEl.remark = res.remark || "-";
        // newEl.url = `https://car-manager.truekey.mobi/driver/javaMobile/queryResult/${res.linkCode}`;
        newEl.url = `https://car-manager.ztt.cn/driver/javaMobile/queryResult/${res.linkCode}`;
        newEl.url = `https://172.17.0.1:9031/driver/javaMobile/queryResult/${res.linkCode}`;
        newEl.visible = true;
        setTimeout(() => {
@@ -467,7 +582,7 @@
      if (type == 0) {
        this.$modalSure("发送短信提醒吗?").then(() => {
          sendSmsApi(item.id)
            .then((res) => {
            .then(() => {
              that.getList(1);
              that.listLoading = false;
              that.$message.success(tipsArr[type]);
@@ -488,7 +603,7 @@
          that.listLoading = true;
          const api = ["", putQueueCallNumberApi, putQueuePassNumberApi][type];
          api(type == 1 ? item.id : item.masterId)
            .then((res) => {
            .then(() => {
              this.getList(1);
              that.listLoading = false;
              that.$message.success(tipsArr[type]);
@@ -513,7 +628,7 @@
    },
    reloadOverTime() {
      let that = this;
      let url = "https://car-internalmanager.ztt.cn/time";
      let url = "https://172.17.0.1:9031/time";
      // let url = "https://car-manager.truekey.mobi/time";
      fetch(url, {
        method: "GET",
@@ -567,7 +682,6 @@
            _fields.map((item) => {
              if (_lItem.status) {
                this.overtime = item.value;
                console.log("overtime", this.overtime);
              }
            });
          });
@@ -594,7 +708,6 @@
          });
          this.headeNum = _selfList;
          console.log("xxxxx", this.headeNum);
          this.tableFrom.areaId = this.headeNum[0].id.toString();
          this.getList(1);
          this.getStsInfo(this.tableFrom.areaId);
@@ -654,8 +767,8 @@
        // console.log('websocket创建连接-----》成功')
        if ("WebSocket" in window) {
          that.ws = new WebSocket(that.wsUrl);
        } else if ("MozWebSocket" in window) {
          that.ws = new MozWebSocket(that.wsUrl);
        } else if ("MozWebSocket" in window && window.MozWebSocket) {
          that.ws = new window.MozWebSocket(that.wsUrl);
        } else {
          alert(
            "您的浏览器不支持websocket协议,建议使用新版谷歌、火狐等浏览器,请勿使用IE10以下浏览器,360浏览器请使用极速模式,不要使用兼容模式!"
src/views/vehicle/registration/index.vue
@@ -11,7 +11,12 @@
    <el-card class="box-card">
      <div class="clearfix">
        <div class="container">
          <el-form size="small" label-width="70px" ref="vehicleInfo" inline>
          <el-form
            ref="vehicleInfo"
            size="small"
            label-width="70px"
            inline
          >
            <el-form-item label="身份证号">
              <el-input
                v-model="tableFrom.idCard"
@@ -19,8 +24,7 @@
                class="selWidth"
                size="small"
                clearable
              >
              </el-input>
              />
            </el-form-item>
            <el-form-item label="姓名">
              <el-input
@@ -29,8 +33,7 @@
                class="selWidth"
                size="small"
                clearable
              >
              </el-input>
              />
            </el-form-item>
            <el-form-item label="手机号">
              <el-input
@@ -39,8 +42,7 @@
                class="selWidth"
                size="small"
                clearable
              >
              </el-input>
              />
            </el-form-item>
            <el-form-item label="车牌号">
              <el-input
@@ -49,8 +51,7 @@
                class="selWidth"
                size="small"
                clearable
              >
              </el-input>
              />
            </el-form-item>
            <el-form-item label="装卸区域">
              <el-select
@@ -64,8 +65,7 @@
                  :key="item.id"
                  :label="item.name"
                  :value="item.id"
                >
                </el-option>
                />
              </el-select>
            </el-form-item>
            <el-form-item label="订单类型">
@@ -80,8 +80,7 @@
                  :key="item.id"
                  :label="item.name"
                  :value="item.id"
                >
                </el-option>
                />
              </el-select>
            </el-form-item>
            <el-form-item label="装卸数量">
@@ -91,8 +90,7 @@
                class="smallSelW"
                size="small"
                clearable
              >
              </el-input>
              />
              ï½ž
              <el-input
                v-model="tableFrom.loadUnloadQtyMax"
@@ -100,8 +98,7 @@
                class="smallSelW"
                size="small"
                clearable
              >
              </el-input>
              />
            </el-form-item>
            <el-form-item label="单位">
              <el-select
@@ -115,8 +112,7 @@
                  :key="item.id"
                  :label="item.name"
                  :value="item.id"
                >
                </el-option>
                />
              </el-select>
            </el-form-item>
            <el-form-item label="车辆状态">
@@ -131,8 +127,7 @@
                  :key="item.id"
                  :label="item.name"
                  :value="item.id"
                >
                </el-option>
                />
              </el-select>
            </el-form-item>
            <el-form-item label="货物状态">
@@ -147,8 +142,7 @@
                  :key="item.id"
                  :label="item.name"
                  :value="item.id"
                >
                </el-option>
                />
              </el-select>
            </el-form-item>
            <el-form-item label="排队号码">
@@ -158,8 +152,7 @@
                class="selWidth"
                size="small"
                clearable
              >
              </el-input>
              />
            </el-form-item>
            <el-form-item label="事由">
              <el-select
@@ -173,8 +166,7 @@
                  :key="item.id"
                  :label="item.name"
                  :value="item.id"
                >
                </el-option>
                />
              </el-select>
            </el-form-item>
@@ -192,34 +184,54 @@
              />
            </el-form-item>
            <el-form-item>
              <el-button type="primary" @click="getList(1)" size="small"
                >查询</el-button
              <el-button
                type="primary"
                size="small"
                @click="getList(1)"
              >
                æŸ¥è¯¢
              </el-button>
            </el-form-item>
            <el-form-item>
              <el-button @click="resetForm('vehicleInfo')" size="small"
                >重置</el-button
              <el-button
                size="small"
                @click="resetForm('vehicleInfo')"
              >
                é‡ç½®
              </el-button>
            </el-form-item>
          </el-form>
          <el-button
            v-hasPermi="['admin:vehicle:add']"
            size="small"
            type="primary"
            class="mr10"
            @click="handleAddVehicle()"
            v-hasPermi="['admin:vehicle:add']"
            >添加车辆信息</el-button
          >
            æ·»åŠ è½¦è¾†ä¿¡æ¯
          </el-button>
        </div>
      </div>
    </el-card>
    <el-card v-show="showPrint">
      <div class="print-dom">
        <div class="print-dom-box" id="printArea">
          <div v-for="item in printInfos" :key="item.id">
            <div class="title">出入证信息</div>
            <div class="code-title">排队号码</div>
            <div class="code-code">{{ item.queueNumber }}</div>
        <div
          id="printArea"
          class="print-dom-box"
        >
          <div
            v-for="item in printInfos"
            :key="item.id"
          >
            <div class="title">
              å‡ºå…¥è¯ä¿¡æ¯
            </div>
            <div class="code-title">
              æŽ’队号码
            </div>
            <div class="code-code">
              {{ item.queueNumber }}
            </div>
            <div class="code-wait">
              å‰æ–¹è¿˜æœ‰{{ item.currentWaitNum }}辆车排队中...
            </div>
@@ -227,46 +239,84 @@
              <qrcode
                v-if="item.visible"
                :size="160"
                :qrUrl="item.url"
              ></qrcode>
                :qr-url="item.url"
              />
            </div>
            <div class="qrcode-text">微信扫码查看排队进度</div>
            <div class="line"></div>
            <div class="qrcode-text">
              å¾®ä¿¡æ‰«ç æŸ¥çœ‹æŽ’队进度
            </div>
            <div class="line" />
            <div class="cell">
              <div class="cell-label">姓名</div>
              <div class="cell-value">{{ item.name }}</div>
              <div class="cell-label">
                å§“名
              </div>
              <div class="cell-value">
                {{ item.name }}
              </div>
            </div>
            <div class="cell">
              <div class="cell-label">车牌号</div>
              <div class="cell-value">{{ item.licensePlate }}</div>
              <div class="cell-label">
                è½¦ç‰Œå·
              </div>
              <div class="cell-value">
                {{ item.licensePlate }}
              </div>
            </div>
            <div class="cell">
              <div class="cell-label">手机号</div>
              <div class="cell-value">{{ item.phone }}</div>
              <div class="cell-label">
                æ‰‹æœºå·
              </div>
              <div class="cell-value">
                {{ item.phone }}
              </div>
            </div>
            <div class="cell">
              <div class="cell-label">身份证号码</div>
              <div class="cell-value">{{ item.idCard }}</div>
              <div class="cell-label">
                èº«ä»½è¯å·ç 
              </div>
              <div class="cell-value">
                {{ item.idCard }}
              </div>
            </div>
            <div class="cell">
              <div class="cell-label">装卸数量</div>
              <div class="cell-value">{{ item.loadUnloadQty }}</div>
              <div class="cell-label">
                è£…卸数量
              </div>
              <div class="cell-value">
                {{ item.loadUnloadQty }}
              </div>
            </div>
            <div class="cell">
              <div class="cell-label">单位</div>
              <div class="cell-value">{{ item.unitName }}</div>
              <div class="cell-label">
                å•位
              </div>
              <div class="cell-value">
                {{ item.unitName }}
              </div>
            </div>
            <div class="cell">
              <div class="cell-label">装卸区域</div>
              <div class="cell-value">{{ item.loadingAreaName }}</div>
              <div class="cell-label">
                è£…卸区域
              </div>
              <div class="cell-value">
                {{ item.loadingAreaName }}
              </div>
            </div>
            <div class="cell">
              <div class="cell-label">登记时间</div>
              <div class="cell-value">{{ item.registerTime }}</div>
              <div class="cell-label">
                ç™»è®°æ—¶é—´
              </div>
              <div class="cell-value">
                {{ item.registerTime }}
              </div>
            </div>
            <div class="cell">
              <div class="cell-label">备注</div>
              <div class="cell-value over-line">{{ item.remark }}</div>
              <div class="cell-label">
                å¤‡æ³¨
              </div>
              <div class="cell-value over-line">
                {{ item.remark }}
              </div>
            </div>
            <!-- <div v-if="printInfos && printInfos.length > 1" class="mb"></div> -->
          </div>
@@ -284,19 +334,47 @@
        :cell-style="{ textAlign: 'center' }"
        :header-cell-style="{ fontWeight: 'bold', textAlign: 'center' }"
      >
        <el-table-column prop="idCard" label="身份证号" width="150" />
        <el-table-column prop="name" label="姓名" min-width="80" />
        <el-table-column
          prop="idCard"
          label="身份证号"
          width="150"
        />
        <el-table-column
          prop="name"
          label="姓名"
          min-width="80"
        />
        <el-table-column prop="phone" label="手机号" min-width="100" />
        <el-table-column prop="licensePlate" label="车牌号" min-width="90" />
        <el-table-column
          prop="phone"
          label="手机号"
          min-width="100"
        />
        <el-table-column
          prop="licensePlate"
          label="车牌号"
          min-width="90"
        />
        <el-table-column
          prop="loadingAreaName"
          label="装卸区域"
          min-width="70"
        />
        <el-table-column prop="orderTypeName" label="订单类型" width="70" />
        <el-table-column prop="loadUnloadQty" label="装卸数量" min-width="70" />
        <el-table-column prop="unitName" label="单位" min-width="50" />
        <el-table-column
          prop="orderTypeName"
          label="订单类型"
          width="70"
        />
        <el-table-column
          prop="loadUnloadQty"
          label="装卸数量"
          min-width="70"
        />
        <el-table-column
          prop="unitName"
          label="单位"
          min-width="50"
        />
        <el-table-column
          prop="vehicleStatusName"
          label="车辆状态"
@@ -307,14 +385,30 @@
          label="货物状态"
          min-width="70"
        />
        <el-table-column prop="queueNumber" label="排队号码" min-width="80" />
        <el-table-column prop="reasonName" label="事由" min-width="60" />
        <el-table-column label="登记时间" min-width="135" align="center">
        <el-table-column
          prop="queueNumber"
          label="排队号码"
          min-width="80"
        />
        <el-table-column
          prop="reasonName"
          label="事由"
          min-width="60"
        />
        <el-table-column
          label="登记时间"
          min-width="135"
          align="center"
        >
          <template slot-scope="scope">
            <span>{{ scope.row.registerTime | vformatDate }}</span>
          </template>
        </el-table-column>
        <el-table-column prop="remark" label="备注" min-width="60" />
        <el-table-column
          prop="remark"
          label="备注"
          min-width="60"
        />
        <el-table-column
          label="操作"
@@ -324,21 +418,23 @@
        >
          <template slot-scope="scope">
            <el-button
              v-hasPermi="['admin:vehicle:edit']"
              type="text"
              @click="handleEditVehicle(scope.row)"
              size="small"
              class="mr10"
              v-hasPermi="['admin:vehicle:edit']"
              >编辑</el-button
              @click="handleEditVehicle(scope.row)"
            >
              ç¼–辑
            </el-button>
            <el-button
              v-hasPermi="['admin:vehicle:delete']"
              type="text"
              size="small"
              v-hasPermi="['admin:vehicle:delete']"
              @click="handleDeleteVehicle(scope.row.masterId)"
              >删除</el-button
            >
              åˆ é™¤
            </el-button>
          </template>
        </el-table-column>
      </el-table>
@@ -375,18 +471,15 @@
<script>
import * as systemGroupDataApi from "@/api/systemGroupData.js";
import { getVehicleListApi, deleteVehicleApi } from "@/api/vehicle";
import cardsData from "@/components/cards/index";
import { checkPermi } from "@/utils/permission"; // æƒé™åˆ¤æ–­å‡½æ•°
import { Debounce } from "@/utils/validate";
import edit from "./edit";
import qrcode from "@/components/qrcode/index.vue";
import printJS from "print-js";
import printCss from "./printCss";
export default {
  name: "systemLog",
  name: "SystemLog",
  components: {
    cardsData,
    edit,
    qrcode,
  },
@@ -462,9 +555,6 @@
  },
  methods: {
    checkPermi,
    resetForm() {
      this.dialogVisible = false;
    },
    getOptionList(id) {
      // èŽ·å–åˆ—è¡¨æ•°æ®
@@ -499,15 +589,6 @@
        }
      });
    },
    handlerSubmit: Debounce(function (formValue) {
      formValue.id = this.applyId;
      formValue.extractType = this.extractType;
      applyUpdateApi(formValue).then((data) => {
        this.$message.success("编辑成功");
        this.dialogVisible = false;
        this.getList();
      });
    }),
    hideEditDialog() {
      this.editDialogConfig.visible = false;
@@ -515,7 +596,7 @@
    handleDeleteVehicle(id) {
      this.$modalSure("删除该车辆信息吗?关联的其他区域的车辆信息会一起删除").then(() => {
        deleteVehicleApi(id)
          .then((res) => {
          .then(() => {
            this.$message.success("删除成功");
            this.getList(1);
          })
@@ -644,7 +725,7 @@
        newEl.registerTime = element.registerTime || "-";
        newEl.remark = element.remark || "-";
        // newEl.url = `https://car-manager.truekey.mobi/driver/javaMobile/queryResult/${element.linkCode}`;
         newEl.url = `https://car-manager.ztt.cn/driver/javaMobile/queryResult/${element.linkCode}`;
         newEl.url = `https://172.17.0.1:9031/driver/javaMobile/queryResult/${element.linkCode}`;
        newEl.visible = true;
        printArr.push(newEl);
      }
vue.config.js
@@ -1,6 +1,9 @@
"use strict";
const path = require("path");
const defaultSettings = require("./src/settings.js");
// ä»£ç†ç›®æ ‡åœ°å€ï¼ˆåŽç«¯æœåŠ¡ï¼‰ï¼Œä¾‹å¦‚: http://172.17.0.1:8080
// å¯åŠ¨æ—¶å¯é€šè¿‡çŽ¯å¢ƒå˜é‡è¦†ç›–ï¼šVUE_APP_PROXY_TARGET=...
const baseUrl = process.env.VUE_APP_PROXY_TARGET || "http://1.15.17.182/:9031";
function resolve(dir) {
  return path.join(__dirname, dir);
@@ -13,7 +16,8 @@
// For example, Mac: sudo npm run
// You can change the port by the following method:
// port = 9527 npm run dev OR npm run dev --port = 9527
const port = process.env.port || process.env.npm_config_port || 9527; // dev port
// å›ºå®šå¼€å‘服务端口:确保外部可访问 `172.17.0.1:9031`
const port = 9001; // dev port
// All configuration item explanations can be find in https://cli.vuejs.org/config/
module.exports = {
@@ -34,18 +38,29 @@
  publicPath: "/",
  outputDir: "dist",
  assetsDir: "static",
  lintOnSave: process.env.NODE_ENV === "development",
  // åœ¨éƒ¨åˆ†çŽ¯å¢ƒä¸‹ eslint-loader ä¼šå› é…ç½®è§£æžå¤±è´¥ç›´æŽ¥å¯¼è‡´æž„建中断
  // è¿™é‡Œå…ˆå…³é—­ï¼Œç¡®ä¿é¡¹ç›®å¯ä»¥æ­£å¸¸è¿è¡Œï¼›ä½ åŽç»­å†è¡¥é½ eslint è§„则即可。
  lintOnSave: false,
  productionSourceMap: false,
  devServer: {
    // è®©å¤–部(例如 172.17.0.1)能访问开发服务
    port: port,
    open: true,
    open: false,
    overlay: {
      warnings: false,
      errors: true,
    },
    // æœ¬åœ°ä»£ç†ï¼šå¯¹æ¯” Vite çš„ proxy é…ç½®æ€è·¯ï¼Œä½¿ç”¨ vue-cli çš„ proxy
    // ç”±äºŽæœ¬é¡¹ç›®æŽ¥å£ä¸»è¦ä»¥ /api å¼€å¤´ï¼Œè¿™é‡ŒåŒæ—¶ä»£ç† /api ä¸Ž /dev-api。
    proxy: {
      // é¡¹ç›®å®žé™…请求一般是 /api/...,这里直接转发并保持 /api å‰ç¼€ä¸å˜
      "^/api": {
        target: baseUrl,
        changeOrigin: true,
      },
    },
  },
  configureWebpack: {
    // provide the app's title in webpack's name field, so that
    // it can be accessed in index.html to inject the correct title.
@@ -63,7 +78,10 @@
    config.plugins.delete("prefetch"); // TODO: need test
    // set svg-sprite-loader
    config.module.rule("svg").exclude.add(resolve("src/icons")).end();
    config.module
      .rule("svg")
      .exclude.add(resolve("src/icons"))
      .end();
    config.module
      .rule("icons")
      .test(/\.svg$/)
yarn.lock
ÎļþÌ«´ó