baijunde 1 год назад
Родитель
Сommit
d3b6e49fcb
5 измененных файлов с 459 добавлено и 33 удалено
  1. 45 0
      src/api/system/bank.js
  2. 15 0
      src/router/index.js
  3. 370 0
      src/views/bank/bank.vue
  4. 28 32
      src/views/index.vue
  5. 1 1
      src/views/technician/technician/index.vue

+ 45 - 0
src/api/system/bank.js

@@ -0,0 +1,45 @@
+import request from '@/utils/request'
+
+// 查询银行列表
+export function listBank(query) {
+  return request({
+    url: '/tBank/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询银行详细
+export function getBank(id) {
+  return request({
+    url: '/system/bank/' + id,
+    method: 'get'
+  })
+}
+
+// 新增银行
+export function addBank(data) {
+  return request({
+    url: '/tBank/save',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改银行
+export function updateBank(data) {
+  return request({
+    url: '/system/bank',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除银行
+export function delBank(data) {
+  return request({
+    url: '/tBank/delete',
+    method: 'post',
+    data: data
+  })
+}

+ 15 - 0
src/router/index.js

@@ -242,6 +242,21 @@ export const constantRoutes = [
       }
     ]
   },
+     // 银行
+     {
+      path: '/bank',
+      component: Layout,
+      hidden: true,
+      redirect: 'bank',
+      children: [
+        {
+          path: '',
+          component: () => import('@/views/bank/bank'),
+          name: 'teamWork',
+          meta: { title: '银行' }
+        }
+      ]
+    },
    // 投诉管理
    {
     path: '/complain',

+ 370 - 0
src/views/bank/bank.vue

@@ -0,0 +1,370 @@
+<template>
+  <div class="app-container">
+    <el-form
+      :model="queryParams"
+      ref="queryForm"
+      size="small"
+      :inline="true"
+      v-show="showSearch"
+      label-width="68px"
+    >
+      <el-form-item label="银行名称" prop="bankName">
+        <el-input
+          v-model="queryParams.bankName"
+          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"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['system:bank:add']"
+          >新增</el-button
+        >
+      </el-col>
+      <!-- <el-col :span="1.5">
+        <el-button
+          type="success"
+          plain
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['system:bank:edit']"
+          >修改</el-button
+        >
+      </el-col> -->
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['system:bank:remove']"
+          >删除</el-button
+        >
+      </el-col>
+      <!-- <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-hasPermi="['system:bank:export']"
+        >导出</el-button>
+      </el-col> -->
+      <right-toolbar
+        :showSearch.sync="showSearch"
+        @queryTable="getList"
+      ></right-toolbar>
+    </el-row>
+
+    <el-table
+      v-loading="loading"
+      :data="bankList"
+      @selection-change="handleSelectionChange"
+    >
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="银行名称" align="center" prop="bankName" />
+      <!-- <el-table-column label="银行logo" align="center" prop="bankLogo" /> -->
+      <el-table-column label="图片" align="center" prop="bankLogo" width="100">
+        <template slot-scope="scope">
+          <image-preview :src="scope.row.bankLogo" :width="50" :height="50" />
+        </template>
+      </el-table-column>
+      <!-- <el-table-column label="是否删除0否1是" align="center" prop="isDelete" /> -->
+      <el-table-column
+        label="操作"
+        align="center"
+        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="['system:bank:edit']"
+            >修改</el-button
+          >
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['system:bank: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" width="500px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="100px">
+        <!-- <el-form-item label="${comment}" prop="id">
+          <el-input v-model="form.id" placeholder="请输入${comment}" />
+        </el-form-item> -->
+        <el-form-item label="银行名称" prop="bankName">
+          <el-input v-model="form.bankName" placeholder="请输入银行名称" />
+        </el-form-item>
+        <el-form-item label="上传logo" prop="bankLogo">
+          <!-- <el-input v-model="form.cImgUrl" type="textarea" placeholder="请输入内容" /> -->
+          <el-upload
+            action="#"
+            class="avatar-uploader"
+            :http-request="handleAvatarSuccess"
+            :before-upload="beforeAvatarUpload"
+            :show-file-list="false"
+          >
+            <img v-if="form.bankLogo" :src="form.bankLogo" class="avatar" />
+            <i v-else class="el-icon-plus avatar-uploader-icon"></i>
+          </el-upload>
+        </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 {
+  listBank,
+  getBank,
+  delBank,
+  addBank,
+  updateBank,
+} from "@/api/system/bank";
+import { upload } from "@/api/public";
+
+export default {
+  name: "Bank",
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 银行表格数据
+      bankList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        bankName: null,
+        bankLogo: null,
+      },
+      // 表单参数
+      form: {
+        bankLogo:''
+      },
+      // 表单校验
+      rules: {},
+    };
+  },
+  created() {
+    this.getList();
+  },
+  watch() {
+  },
+  methods: {
+    /** 查询银行列表 */
+    getList() {
+      this.loading = true;
+      listBank(this.queryParams).then((response) => {
+        this.bankList = response.data.records;
+        this.total = response.data.total;
+        this.loading = false;
+      });
+    },
+    // 图片上传
+    handleAvatarSuccess(file) {
+      // console.log(file,"file")
+      const formData = new FormData();
+      formData.append("file", file.file);
+      upload(formData).then((response) => {
+        // this.queryParams.cImgUrl = response.fileName;
+        // this.form.cImgUrl = process.env.VUE_APP_BASE_API + response.fileName;
+        this.$set(this.queryParams, 'bankLogo', response.fileName);
+        this.$set(this.form, 'bankLogo', process.env.VUE_APP_BASE_API + response.fileName);
+      });
+    },
+    beforeAvatarUpload(file) {
+      if (file.type.indexOf("image/") == -1) {
+        this.$modal.msgError(
+          "文件格式错误,请上传图片类型,如:JPG,PNG后缀的文件。"
+        );
+      }
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        bankName: null,
+        bankLogo: null,
+        createTime: null,
+        updateTime: null,
+        isDelete: 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;
+      this.open = true;
+      this.form = row
+      // getBank(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) {
+            this.form.bankLogo = this.queryParams.bankLogo;
+            updateBank(this.form).then((response) => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addBank(this.form).then((response) => {
+              this.$modal.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      let idList = []
+      idList.push(ids)
+      this.$modal
+        .confirm('是否确认删除银行编号为"' + ids + '"的数据项?')
+        .then(function () {
+          return delBank(idList);
+        })
+        .then(() => {
+          this.getList();
+          this.$modal.msgSuccess("删除成功");
+        })
+        .catch(() => {});
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      this.download(
+        "system/bank/export",
+        {
+          ...this.queryParams,
+        },
+        `bank_${new Date().getTime()}.xlsx`
+      );
+    },
+  },
+};
+</script>
+<style scoped>
+.avatar-uploader .el-upload {
+    border: 1px dashed #d9d9d9;
+    border-radius: 6px;
+    cursor: pointer;
+    position: relative;
+    overflow: hidden;
+  }
+  .avatar-uploader .el-upload:hover {
+    border-color: #409EFF;
+  }
+  .avatar-uploader-icon {
+    font-size: 28px;
+    color: #8c939d;
+    width: 178px;
+    height: 178px;
+    line-height: 178px;
+    text-align: center;
+  }
+  .avatar {
+    width: 178px;
+    height: 178px;
+    display: block;
+  }
+</style>

+ 28 - 32
src/views/index.vue

@@ -44,7 +44,7 @@
         <div class="bnottom">
           <!-- {{ getAmount.slice(0,6)}}%,同上月对比 -->
           {{
-            typeof getAmount === "string" && getAmount.length > 0
+            typeof getAmount === "string" && getAmount.length >= 0
               ? getAmount.slice(0, 6) +
                 (getAmount.length > 6 ? "" : "") +
                 "%,同上月对比"
@@ -108,7 +108,7 @@
             :picker-options="pickerOptions"
             value-format="yyyy-MM-dd"
             @change="ranking"
-            :clearable = "false"
+            :clearable="false"
           >
           </el-date-picker>
           <div class="js_num">
@@ -192,7 +192,7 @@ export default {
           },
         ],
       },
-      value2:['2024-01-01','2025-01-01'],
+      value2: ["2024-01-01", "2025-01-01"],
       jsList: [],
       upOrderNum: {},
       Turnover: 0,
@@ -209,12 +209,8 @@ export default {
     this.getInfo();
   },
   methods: {
-    defaultDate() {
-     
-      
-    },
-    clearDate(){
-      
+    defaultDate() {},
+    clearDate() {
       // this.ranking()
     },
     ranking() {
@@ -248,31 +244,31 @@ export default {
       data.deptId = deptId;
       block(data).then((res) => {
         this.upOrderNum = res;
-        (res.turnover - res.upTurnover) / res.upTurnover >= 0
-          ? (this.Turnover =
-              "+" + ((res.turnover - res.upTurnover) / res.upTurnover) * 100)
-          : (this.Turnover =
-              "" + ((res.turnover - res.upTurnover) / res.upTurnover) * 100);
-        (res.orderNum - res.upOrderNum) / res.upOrderNum >= 0
-          ? (this.order =
-              "+" + ((res.orderNum - res.upOrderNum) / res.upOrderNum) * 100)
-          : (this.order =
-              "" + ((res.orderNum - res.upOrderNum) / res.upOrderNum) * 100);
-        (res.getAmount - res.upGetAmount) / res.upGetAmount >= 0
-          ? (this.getAmount =
-              "+" + ((res.getAmount - res.upGetAmount) / res.upGetAmount) * 100)
-          : (this.getAmount =
-              "" + ((res.getAmount - res.upGetAmount) / res.upGetAmount) * 100);
-        (res.userNum - res.upUserNum) / res.upUserNum >= 0
-          ? (this.userNum =
-              "+" + ((res.userNum - res.upUserNum) / res.upUserNum) * 100)
-          : (this.userNum =
-              "" + ((res.userNum - res.upUserNum) / res.upUserNum) * 100);
-        (res.jsNum - res.upJsNum) / res.upJsNum >= 0
-          ? (this.jsNum = "+" + ((res.jsNum - res.upJsNum) / res.upJsNum) * 100)
-          : (this.jsNum = "" + ((res.jsNum - res.upJsNum) / res.upJsNum) * 100);
+        this.Turnover = this.computed(res.turnover, res.upTurnover);
+
+        this.order = this.computed(res.orderNum, res.upOrderNum);
+
+        this.getAmount = this.computed(res.getAmount, res.upGetAmount);
+
+        this.userNum = this.computed(res.userNum, res.upUserNum);
+
+        this.jsNum = this.computed(res.jsNum, res.upJsNum);
       });
     },
+    computed(current, up) {
+      var retnum = "";
+      if (up == 0) {
+        if (current == 0) {
+          return (retnum = 0);
+        }
+        return (retnum = 100);
+      } else {
+        (current - up) / up >= 0
+          ? (retnum = "+" + ((current - up) / up) * 100)
+          : (retnum = "" + ((current - up) / up) * 100);
+        return retnum;
+      }
+    },
 
     initBarChart() {
       // 通过 $ref 进行挂载

+ 1 - 1
src/views/technician/technician/index.vue

@@ -179,7 +179,7 @@
       <el-table-column label="头像" align="center">
         <template slot-scope="scope">
           <div style="width: 100%">
-            <img :src="scope.row.cPortrait" style="width: 100%" alt="" />
+            <img :src="scope.row.cPortrait" style="width: 100%;height: 100px;" alt="" />
           </div>
         </template>
       </el-table-column>