yaoyao 2 лет назад
Родитель
Сommit
8cf18d0b70
2 измененных файлов с 489 добавлено и 0 удалено
  1. 49 0
      src/http/moudules/sys.js
  2. 440 0
      src/views/Sys/CarType.vue

+ 49 - 0
src/http/moudules/sys.js

@@ -176,4 +176,53 @@ export const deleteSwitch = (params) => {
         url: '/sys/switch/' + params,
         method: 'delete',
     })
+}
+
+// 新增车型查询
+export const vehicleConfig = (data) => {
+    return axios({
+        url: '/sys/vehicleConfig',
+        method: 'post',
+        data
+    })
+}
+
+// 车型查询列表
+export const vehicleConfigInquire = (data) => {
+    return axios({
+        url: '/sys/vehicleConfig/inquire',
+        method: 'post',
+        data
+    })
+}
+
+// 车型查询详情
+export const vehicleConfigDetail = (id) => {
+    return axios({
+        url: '/sys/vehicleConfig/' + id,
+        method: 'get',
+    })
+}
+// 修改车型查询
+export const vehicleConfigEdit = (data) => {
+    return axios({
+        url: '/sys/vehicleConfig/' + data.sysQueryVehicleConfigDTO.id,
+        method: 'put',
+        data
+    })
+}
+
+// 删除车型查询
+export const vehicleConfigDelete = (params) => {
+    return axios({
+        url: '/sys/vehicleConfig/' + params,
+        method: 'delete',
+    })
+}
+// 修改车型开关
+export const vehicleConfigOpen = (id) => {
+    return axios({
+        url: '/sys/vehicleConfig/open/' + id,
+        method: 'put',
+    })
 }

+ 440 - 0
src/views/Sys/CarType.vue

@@ -0,0 +1,440 @@
+<template>
+  <div>
+    <div>
+      <templateTable :formList="formList" :searchData.sync="queryFrom" :tableConfig="tableConfig" :btnGroup="btnGroup"
+        :data="pageResult" @getList="findPage" @handleSearchList="handleSearchList" :pagination="pageData">
+        <template slot="companyId">
+          <el-select
+            filterable
+            v-model="queryFrom.companyId"
+            clearable
+            size="small"
+          >
+            <el-option
+              v-for="(item, index) in companyselect"
+              :key="index.id"
+              :label="item.namesimple"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </template>
+        <template slot="enabled" slot-scope="scope">
+          <el-switch
+            v-model="scope.row.enabled"
+            active-text="启动"
+            inactive-text="关闭"
+            :inactive-value="0"
+            :active-value="1"
+            @change="switchChange(scope.row)"
+            >
+          </el-switch>
+        </template>
+      </templateTable>
+    </div>
+
+    <!-- 新增修改界面 -->
+    <el-dialog :title="dialogTitle" width="40%" :visible.sync="dialogVisible" :close-on-click-modal="false"
+      :before-close="handleDialogBefore" @close="closeDialog" v-dialogDrag>
+      <el-form :model="formData" :rules="rules" ref="formData" :inline="true" label-width="110px" size="small">
+        <el-row>
+          <el-col :span="12">
+            <el-form-item label="保险公司编号" prop="companyId">
+              <el-input v-model="formData.companyId" disabled placeholder="请选择保险公司"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="保险公司" prop="companyId">
+              <el-select
+                class="widths1"
+                filterable
+                v-model="formData.companyId"
+                clearable
+              >
+                <el-option
+                  v-for="(item, index) in companyselect"
+                  :key="index.id"
+                  :label="item.namesimple"
+                  :value="item.id"
+                ></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="请求地址" prop="url">
+              <el-input v-model="formData.url"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="是否开启" prop="enabled">
+              <el-radio-group v-model="formData.enabled" style="line-height: 32px;">
+                <el-radio :label="0">关闭</el-radio>
+                <el-radio :label="1">启动</el-radio>
+              </el-radio-group>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="核心用户名" prop="username">
+              <el-input v-model="formData.username"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="核心密码" prop="password">
+              <el-input v-model="formData.password"></el-input>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <p>链接</p>
+        <div class="edit-list">
+          <div>{{ sysQueryVehicleUrlDTOList[0].type }}</div>
+          <div style="width: 100px;">车架号查询</div>
+          <div>
+            <el-input v-model="sysQueryVehicleUrlDTOList[0].link" size="small" style="width: 200px;"></el-input>
+          </div>
+        </div>
+        <div class="edit-list">
+          <div>{{ sysQueryVehicleUrlDTOList[1].type }}</div>
+          <div style="width: 100px;">车型查询</div>
+          <div>
+            <el-input v-model="sysQueryVehicleUrlDTOList[1].link" size="small" style="width: 200px;"></el-input>
+          </div>
+        </div>
+      </el-form>
+      <span slot="footer" class="dialog-footer">
+        <el-button size="small" @click="dialogVisible = false">取 消</el-button>
+        <el-button type="primary" size="small" @click="submitForm">提交</el-button>
+      </span>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import templateTable from "@/components/TemplateTable/index.vue";
+export default {
+  components: {
+    templateTable,
+  },
+  data() {
+    return {
+      formList: [
+      {
+          label: "保险公司",
+          name: "companyId",
+          type: "slot",
+        },
+        {
+          label: "是否启动",
+          prop: "enabled",
+          type: "select",
+          options: [
+            {
+              label: "启动",
+              value: '1',
+            },
+            {
+              label: "关闭",
+              value: '0',
+            },
+          ],
+        },
+      ],
+      btnGroup: [
+        {
+          name: "新增",
+          click: (row, index) => { return this.handleAddButton() },
+
+        },
+      ],
+      tableConfig: {
+        columns: [
+          // 数据列
+          { prop: "companyId", label: "保险公司编号", type: "text" },
+          { prop: "companyName", label: "保险公司", type: "text" },
+          { name: "enabled", label: "是否开启", type: "slot" },
+          { prop: "username", label: "核心用户名", type: "text" },
+          { prop: "password", label: "核心账号密码", type: "text" },
+        ],
+        loading: true,
+        isPaginationShow: true,
+        isShowIndex: true,
+        optBtns: [
+          {
+            type: "primary",
+            label: "编辑",
+            perm: "sys:agent:edit",
+            icon: "fa fa-edit",
+            click: (row, index) => {
+              return this.handleTableEdit(row);
+            },
+          },
+          {
+            type: "primary",
+            label: "删除",
+            icon: "el-icon-delete",
+            click: (row, index) => {
+              return this.handleTableDeleteFlag(row);
+            },
+          },
+        ],
+      },
+      rules: {
+        companyId: [
+          { required: true, message: '请选择保险公司', trigger: ['blur', 'change'] },
+        ],
+        password: [
+          { required: true, message: '请输入保险公司核心密码', trigger: 'blur' }
+        ],
+        url: [
+          { required: true, message: '请输入请求地址', trigger: 'blur' }
+        ],
+        username: [
+          { required: true, message: '请输入保险公司核心用户名', trigger: 'blur' }
+        ]
+      },
+      sysQueryVehicleUrlDTOList: [
+        {
+          type: 1,
+          link: '',
+        },
+        {
+          type: 2,
+          link: '',
+        }
+      ],    // 新增编辑列表
+      pageData: {
+        pageNum: 1,
+        pageSize: 10,
+        totalSize: 0,
+      },
+      formData: {
+        enabled: 0,
+        companyId: '',
+        companyName: '',
+        password: '',
+        url: '',
+        username: '',
+      },
+      queryFrom: {},
+      pageResult: [],
+      dialogTitle: "",
+      dialogVisible: false, // 新增编辑界面是否显示
+      companyselect: [],
+    };
+  },
+  created() {
+    this.$api.insCompany.gainTopList("1").then((res) => {
+      this.companyselect = res.data;
+    });
+    this.findPage()
+  },
+  methods: {
+    // 开关
+    switchChange(data) {
+      this.$api.sys
+        .vehicleConfigOpen(data.id)
+        .then((res) => {
+          if (res.code == 200) {
+            this.$message({
+              message: "设置成功",
+              type: "success",
+            });
+            this.findPage();
+          } else {
+            this.$message({
+              message: `设置失败,(${res.msg})`,
+              type: "error",
+            });
+          }
+        });
+    },
+    // 右侧列表的方法Start
+    findPage(data) {
+      this.tableConfig.loading = true;
+      this.$api.sys
+        .vehicleConfigInquire({
+          ...this.pageData,
+          ...data,
+        })
+        .then((res) => {
+          this.tableConfig.loading = false;
+          this.pageResult = res.data.content;
+          this.pageData.pageNum = res.data.pageNum;
+          this.pageData.pageSize = res.data.pageSize;
+          this.pageData.totalSize = res.data.totalSize;
+        });
+    },
+    handleSearchList(data) {
+      this.findPage({...data, ...this.queryFrom});
+    },
+    //编辑
+    async handleTableEdit(params) {
+      this.dialogTitle = "编辑";
+      // this.formData = {...params}
+      this.$api.sys.vehicleConfigDetail(params.id).then((res) => {
+        if (res.code == 200) {
+          this.formData = res.data.sysQueryVehicleConfig
+          this.sysQueryVehicleUrlDTOList = res.data.sysQueryVehicleUrlList
+          this.dialogVisible = true
+        } else {
+          this.$message.error
+        }
+      })
+    },
+    // 删除
+    handleTableDeleteFlag(data) {
+      this.$confirm("确认删除?")
+        .then(() => {
+          this.$api.sys.vehicleConfigDelete(data.id).then((res) => {
+            if (res.code == 200) {
+              this.$message({
+                message: "删除成功",
+                type: "success",
+              });
+              this.findPage();
+            } else {
+              this.$message.error(res.msg);
+            }
+          });
+        })
+        .catch(() => { });
+    },
+    //添加人员
+    handleAddButton() {
+      this.dialogTitle = "新增";
+      this.formData = {
+        enabled: 0,
+        companyId: '',
+        companyName: '',
+        password: '',
+        url: '',
+        username: '',
+      }
+      if (this.$refs["formData"]) {
+        this.$refs["formData"].resetFields();
+      }
+      this.dialogVisible = true;
+    },
+    handleDialogBefore(done) {
+      // 退出对话框之前确认提示
+      this.$confirm("确认关闭?")
+        .then((_) => {
+          done();
+        })
+        .catch((_) => { });
+    },
+    closeDialog() {
+      // 清空数据
+      this.deptInfo = {};
+      this.dialogVisible = false;
+    },
+    // 提交
+    submitForm() {
+      this.$refs.formData.validate((valid) => {
+        if (valid) {
+          this.$confirm("确认提交吗?", "提示", {}).then(() => {
+            this.companyselect.forEach((val) => {
+              if (val.id == this.formData.companyId) {
+                this.formData.companyName = val.namesimple
+              }
+            })
+            if (this.dialogTitle == "新增") {
+              this.$api.sys
+                .vehicleConfig({
+                  sysQueryVehicleConfigDTO: {...this.formData},
+                  sysQueryVehicleUrlDTOList: this.sysQueryVehicleUrlDTOList
+                })
+                .then((res) => {
+                  if (res.code == 200) {
+                    this.$message({
+                      message: "保存成功",
+                      type: "success",
+                    });
+                    this.dialogVisible = false;
+                    this.$refs["formData"].resetFields();
+                    this.findPage();
+                  } else {
+                    this.$message({
+                      message: `保存失败,请重新添加,(${res.msg})`,
+                      type: "error",
+                    });
+                  }
+                });
+            } else {
+              this.$api.sys
+                .vehicleConfigEdit({
+                  sysQueryVehicleConfigDTO: {...this.formData},
+                  sysQueryVehicleUrlDTOList: this.sysQueryVehicleUrlDTOList
+                })
+                .then((res) => {
+                  if (res.code == 200) {
+                    this.$message({
+                      message: "编辑成功",
+                      type: "success",
+                    });
+                    this.dialogVisible = false;
+                    this.$refs["formData"].resetFields();
+                    this.findPage();
+                  } else {
+                    this.$message({
+                      message: `编辑失败,请重新添加,(${res.msg})`,
+                      type: "error",
+                    });
+                  }
+                });
+            }
+          });
+        }
+      });
+    },
+    // 下一步
+
+  },
+};
+</script>
+
+<style scoped lang="scss">
+.el-divider--horizontal {
+  margin: 4px 0;
+}
+
+/* 顶部查询条件样式Start */
+.queryFrom .el-row {
+  margin: 10px 0px;
+}
+
+.queryFrom .el-form-item {
+  margin-bottom: 0px;
+}
+
+.queryFrom .queryButton .el-form-item__content {
+  margin-left: 0px !important;
+}
+
+.disc {
+  -webkit-text-security: disc;
+  position: relative;
+}
+
+.none {
+  -webkit-text-security: none;
+  position: relative;
+}
+
+.icon {
+  color: #ccc;
+  position: absolute;
+  right: 0;
+  top: 10px;
+  text-align: center;
+}
+
+.edit-list {
+  padding: 0 30px;
+  display: flex;
+  text-align: center;
+  margin-bottom: 10px;
+  > div {
+    line-height: 32px;
+    margin-right: 20px;
+  }
+}
+</style>