wlzboy
3 天以前 8cb5d3440208a3be3e772e65f1bd0ec63031ba62
ruoyi-ui/src/views/system/vehicle/index.vue
@@ -11,19 +11,20 @@
        />
      </el-form-item>
      <el-form-item label="车辆类型" prop="vehicleType">
        <el-input
          v-model="queryParams.vehicleType"
          placeholder="请输入车辆类型"
          clearable
          size="small"
          @keyup.enter.native="handleQuery"
        />
        <el-select v-model="queryParams.vehicleType" placeholder="请选择车辆类型" clearable size="small">
          <el-option
            v-for="dict in dict.type.sys_vehicle_type"
            :key="'vtype-' + dict.value"
            :label="dict.label"
            :value="dict.value"
          />
        </el-select>
      </el-form-item>
      <el-form-item label="状态" prop="status">
        <el-select v-model="queryParams.status" placeholder="请选择状态" clearable size="small">
          <el-option
            v-for="dict in dict.type.sys_normal_disable"
            :key="dict.value"
            :key="'status-' + dict.value"
            :label="dict.label"
            :value="dict.value"
          />
@@ -33,9 +34,19 @@
        <el-select v-model="queryParams.platformCode" placeholder="请选择平台" clearable size="small">
          <el-option
            v-for="dict in dict.type.sys_platform"
            :key="dict.value"
            :key="'platform-' + dict.value"
            :label="dict.label"
            :value="dict.value"
          />
        </el-select>
      </el-form-item>
      <el-form-item label="归属部门" prop="deptId">
        <el-select v-model="queryParams.deptId" placeholder="请选择部门" clearable size="small">
          <el-option
            v-for="dept in deptList"
            :key="dept.deptId"
            :label="dept.deptName"
            :value="dept.deptId"
          />
        </el-select>
      </el-form-item>
@@ -95,12 +106,24 @@
      <el-table-column type="selection" width="55" align="center" />
      <el-table-column label="车辆ID" align="center" prop="vehicleId" />
      <el-table-column label="车牌号" align="center" prop="vehicleNo" />
      <el-table-column label="车辆类型" align="center" prop="vehicleType" />
      <el-table-column label="车辆类型" align="center" prop="vehicleType">
        <template slot-scope="scope">
          <dict-tag :options="dict.type.sys_vehicle_type" :value="scope.row.vehicleType"/>
        </template>
      </el-table-column>
      <el-table-column label="车辆品牌" align="center" prop="vehicleBrand" />
      <el-table-column label="车辆型号" align="center" prop="vehicleModel" />
      <el-table-column label="平台标识" align="center" prop="platformCode">
        <template slot-scope="scope">
          <dict-tag :options="dict.type.sys_platform" :value="scope.row.platformCode"/>
        </template>
      </el-table-column>
      <el-table-column label="归属分公司" align="center" prop="deptNames" width="200">
        <template slot-scope="scope">
          <span v-if="scope.row.deptNames && scope.row.deptNames.length > 0">
            {{ scope.row.deptNames.join('、') }}
          </span>
          <span v-else>-</span>
        </template>
      </el-table-column>
      <el-table-column label="状态" align="center" prop="status">
@@ -148,7 +171,14 @@
          <el-input v-model="form.vehicleNo" placeholder="请输入车牌号" />
        </el-form-item>
        <el-form-item label="车辆类型" prop="vehicleType">
          <el-input v-model="form.vehicleType" placeholder="请输入车辆类型" />
          <el-select v-model="form.vehicleType" placeholder="请选择车辆类型" clearable style="width: 100%">
            <el-option
              v-for="dict in dict.type.sys_vehicle_type"
              :key="'form-vtype-' + dict.value"
              :label="dict.label"
              :value="dict.value"
            />
          </el-select>
        </el-form-item>
        <el-form-item label="车辆品牌" prop="vehicleBrand">
          <el-input v-model="form.vehicleBrand" placeholder="请输入车辆品牌" />
@@ -160,7 +190,7 @@
          <el-select v-model="form.platformCode" placeholder="请选择平台" clearable>
            <el-option
              v-for="dict in dict.type.sys_platform"
              :key="dict.value"
              :key="'form-platform-' + dict.value"
              :label="dict.label"
              :value="dict.value"
            />
@@ -170,10 +200,20 @@
          <el-radio-group v-model="form.status">
            <el-radio
              v-for="dict in dict.type.sys_normal_disable"
              :key="dict.value"
              :key="'form-status-' + dict.value"
              :label="dict.value"
            >{{dict.label}}</el-radio>
          </el-radio-group>
        </el-form-item>
        <el-form-item label="归属分公司" prop="deptIds">
          <el-select v-model="form.deptIds" placeholder="请选择归属分公司" multiple clearable style="width: 100%">
            <el-option
              v-for="dept in deptList"
              :key="dept.deptId"
              :label="dept.deptName"
              :value="dept.deptId"
            />
          </el-select>
        </el-form-item>
        <el-form-item label="备注" prop="remark">
          <el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />
@@ -189,10 +229,11 @@
<script>
import { listVehicle, getVehicle, delVehicle, addVehicle, updateVehicle } from "@/api/system/vehicle";
import { listDept } from "@/api/system/dept";
export default {
  name: "Vehicle",
  dicts: ['sys_normal_disable', 'sys_platform'],
  dicts: ['sys_normal_disable', 'sys_platform', 'sys_vehicle_type'],
  data() {
    return {
      // 遮罩层
@@ -209,6 +250,8 @@
      total: 0,
      // 车辆信息表格数据
      vehicleList: [],
      // 部门列表数据
      deptList: [],
      // 弹出层标题
      title: "",
      // 是否显示弹出层
@@ -222,7 +265,8 @@
        vehicleBrand: null,
        vehicleModel: null,
        status: null,
        platformCode: null
        platformCode: null,
        deptId: null
      },
      // 表单参数
      form: {
@@ -233,7 +277,9 @@
        vehicleModel: null,
        status: "0",
        remark: null,
        platformCode: null
        platformCode: null,
        deptId: null,
        deptIds: []  // 多个分公司ID数组
      },
      // 表单校验
      rules: {
@@ -245,12 +291,16 @@
        ],
        platformCode: [
          { required: true, message: "平台标识不能为空", trigger: "change" }
        ],
        deptIds: [
          { required: true, message: "归属分公司不能为空", trigger: "change", type: 'array' }
        ]
      }
    };
  },
  created() {
    this.getList();
    this.getDeptList();
  },
  methods: {
    /** 查询车辆信息列表 */
@@ -260,6 +310,20 @@
        this.vehicleList = response.rows;
        this.total = response.total;
        this.loading = false;
      });
    },
    /** 获取部门列表(只显示分公司:parent_id=100) */
    getDeptList() {
      listDept({ parentId: 100 }).then(response => {
        // 过滤出分公司(parent_id=100的部门)
        if (response.data) {
          this.deptList = response.data.filter(dept => dept.parentId === "100");
          // console.log("deptList: ",this.deptList,response.data.filter(dept => dept.parentId === "100"));
        } else {
          this.deptList = [];
        }
      });
    },
    // 取消按钮
@@ -277,7 +341,9 @@
        vehicleModel: null,
        status: "0",
        remark: null,
        platformCode: null
        platformCode: null,
        deptId: null,
        deptIds: []  // 重置为空数组
      };
      this.resetForm("form");
    },
@@ -309,6 +375,14 @@
      const vehicleId = row.vehicleId || this.ids
      getVehicle(vehicleId).then(response => {
        this.form = response.data;
        // 确保deptIds是一个数组
        if (!this.form.deptIds) {
          this.form.deptIds = [];
        }
        // 如果deptIds为空数组,但deptId有值,则添加deptId到deptIds中
        if (this.form.deptIds.length === 0 && this.form.deptId) {
          this.form.deptIds = [this.form.deptId];
        }
        this.open = true;
        this.title = "修改车辆信息";
      });
@@ -317,6 +391,11 @@
    submitForm() {
      this.$refs["form"].validate(valid => {
        if (valid) {
          // 如果选择了多个分公司,将第一个设置为deptId(主分公司)
          if (this.form.deptIds && this.form.deptIds.length > 0) {
            this.form.deptId = this.form.deptIds[0];
          }
          if (this.form.vehicleId != null) {
            updateVehicle(this.form).then(response => {
              this.$modal.msgSuccess("修改成功");