From 6dd00a42b1cf315525e69dc0ebb01ab86727c305 Mon Sep 17 00:00:00 2001
From: douqi <630797947@qq.com>
Date: Tue, 21 Feb 2023 13:13:06 +0800
Subject: [PATCH] =?UTF-8?q?feat:=E8=B4=A2=E5=8A=A1=E4=B8=AD=E5=BF=83-?=
 =?UTF-8?q?=E5=85=AC=E5=8F=B8=E8=B4=A6=E6=88=B7=E7=AE=A1=E7=90=86-?=
 =?UTF-8?q?=E8=B4=A6=E6=88=B7=E7=AE=A1=E7=90=86=20=E5=88=86=E9=A1=B5?=
 =?UTF-8?q?=E6=9F=A5=E8=AF=A2?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 src/api/financialCenter/accountManagement.js  |  31 +
 .../accountManagement/components/recharge.vue |  81 ++
 .../accountManagement/index.vue               | 712 ++++++++----------
 3 files changed, 421 insertions(+), 403 deletions(-)
 create mode 100644 src/api/financialCenter/accountManagement.js
 create mode 100644 src/views/financialCenter/accountManagement/components/recharge.vue

diff --git a/src/api/financialCenter/accountManagement.js b/src/api/financialCenter/accountManagement.js
new file mode 100644
index 0000000..59ea848
--- /dev/null
+++ b/src/api/financialCenter/accountManagement.js
@@ -0,0 +1,31 @@
+import request from "utils/axios.js";
+// table
+const getByPage = (params) => {
+  return request.postJson(
+    "/oil-finance/oilCompanyAccount/getByPage",
+    params
+  );
+};
+//修改账户状态
+const updateAccountState = (params) => {
+  return request.postJson(
+    "/oil-finance/oilCompanyAccount/getByPage",
+    params
+  );
+};
+//详情
+const get = (id) => {
+  return request.get(`/oil-finance/oilCompanyAccount/get/${id}`);
+};
+// //详情
+// const getCompanyAccountRecord = (params) => {
+//   return request.postJson(
+//     "oil-finance/oilCompanyAccountRecord/getCompanyAccountRecord",
+//     params
+//   );
+// };
+export default {
+  getByPage,
+  updateAccountState,
+  get
+};
diff --git a/src/views/financialCenter/accountManagement/components/recharge.vue b/src/views/financialCenter/accountManagement/components/recharge.vue
new file mode 100644
index 0000000..5ce448c
--- /dev/null
+++ b/src/views/financialCenter/accountManagement/components/recharge.vue
@@ -0,0 +1,81 @@
+<template>
+  <el-dialog
+    title="充值"
+    :visible="controlWindows.recharge"
+    width="30%"
+    :before-close="closeWindow"
+    @opened="openDrawer"
+  >
+    <div class="recharge.vue">
+      <el-form ref="form" :rules="rules" :model="form" label-width="120px">
+        <el-form-item label="成本价" prop="floorPrice">
+          <el-input
+            maxlength="50"
+            v-checkNum
+            v-model="form.floorPrice"
+            placeholder="请输入成本价"
+          ></el-input>
+        </el-form-item>
+        <el-form-item label="企业销售价" prop="salePrice2company">
+          <el-input
+            maxlength="50"
+            v-checkNum
+            v-model="form.salePrice2company"
+            placeholder="请输入企业销售价"
+          ></el-input>
+        </el-form-item>
+      </el-form>
+    </div>
+    <span slot="footer" class="dialog-footer">
+      <el-button @click="controlWindows.recharge = false">取 消</el-button>
+      <el-button type="primary" @click="submit">确 定</el-button>
+    </span>
+  </el-dialog>
+</template>
+
+<script>
+import serve from "api/financialCenter/accountManagement.js";
+
+export default {
+  props: {
+    controlWindows: Object,
+  },
+  data() {
+    return {
+      form: {},
+      rules: {
+        floorPrice: [
+          { required: true, message: "请输入成本价", trigger: "blur" },
+        ],
+        salePrice2company: [
+          { required: true, message: "请输入企业销售价", trigger: "blur" },
+        ],
+      },
+    };
+  },
+  methods: {
+    openDrawer() {},
+    submit() {
+      this.$refs["form"].validate((valid) => {
+        if (valid) {
+          Object.assign(this.form, this.controlWindows.addInfo);
+          serve.modifyPrice(this.form).then((res) => {
+            this.$message.success(res.msg);
+            this.closeWindow();
+          });
+        }
+      });
+    },
+    closeWindow() {
+      this.form = {};
+      this.$emit("closeWindow");
+      this.$nextTick(() => {
+        this.$refs.form.clearValidate();
+        this.controlWindows.recharge = false;
+      });
+    },
+  },
+};
+</script>
+
+</style>
diff --git a/src/views/financialCenter/accountManagement/index.vue b/src/views/financialCenter/accountManagement/index.vue
index 7270f13..15c9cb5 100644
--- a/src/views/financialCenter/accountManagement/index.vue
+++ b/src/views/financialCenter/accountManagement/index.vue
@@ -2,25 +2,29 @@
   <div class="bill-details">
     <div class="frame">
       <!-- 公司名称 -->
-      <autocomplete
-        class="mr20"
-        :params="parameter.params"
-        :config="configAutocomplete"
-      />
+      <autocomplete class="mr20" :params="parameter.params" :config="configAutocomplete"/>
+      <!-- 总公司名称 -->
+      <autocomplete class="mr20" :params="parameter.params" :config="configAutocompleteSec"/>
 
-      <el-select
-        v-model="parameter.params.billType"
-        placeholder="交易类型"
-        clearable
-      >
+      <el-select v-model="parameter.params.accountState" placeholder="账户状态" clearable>
         <el-option
-          v-for="(item, index) in rechargeTypeEnum"
+          v-for="(item, index) in accountStateEnum"
           :key="index"
           :label="item.label"
           :value="item.value"
-        >
-        </el-option>
+        />
+      </el-select>
+
+      <el-select v-model="parameter.params.companyNature" placeholder="企业性质" clearable>
+        <el-option
+          v-for="(item, index) in companyNatureEnum"
+          :key="index"
+          :label="item.label"
+          :value="item.value"
+        />
       </el-select>
+      <!-- 业务负责人 -->
+      <autocomplete :params="parameter.params" :config="configAutocompleteBusinessLeader"/>
 
       <div class="buttons">
         <el-button icon="el-icon-search" @click="search">查询</el-button>
@@ -29,7 +33,9 @@
     </div>
     <div class="table">
       <div class="operation">
-        <el-button @click="addition">新增产品</el-button>
+        <el-button @click="accountTypeHandler(0)">禁用</el-button>
+        <el-button @click="accountTypeHandler(1)">启用</el-button>
+        <el-button @click="accountTypeHandler(-1)">冻结</el-button>
       </div>
       <el-table
         v-if="tableHeight"
@@ -39,436 +45,336 @@
         style="width: 100%"
       >
         >
-        <el-table-column type="selection" width="55"> </el-table-column>
-        <el-table-column prop="name" label="公司名称" show-overflow-tooltip>
-        </el-table-column>
-
-        <el-table-column label="交易类型/发生金额">
-          <template slot-scope="{ row }">
-            <p v-if="!/\W+/.test(row.billType)">
-              {{
-                rechargeTypeEnum.find((item) => item.value === row.billType)
-                  .label
-              }}
-            </p>
-            <p v-else>{{ row.billType }}</p>
-
-            <p>{{ row.occurTotalAmount }}</p>
-          </template>
-        </el-table-column>
-
-        <el-table-column label="账户余额">
-          <template slot-scope="{ row }">
-            <p>
-              上次 <span>{{ row.lastBalance }}</span>
-            </p>
-            <p>
-              本次 <span>{{ row.currentBalance }}</span>
-            </p>
-          </template>
-        </el-table-column>
-
-        <el-table-column label="充值余额">
-          <template slot-scope="{ row }">
-            <p>
-              上次 <span>{{ row.lastRechargeBalance }}</span>
-            </p>
-            <p>
-              本次 <span>{{ row.currentRechargeBalance }}</span>
-            </p>
-          </template>
-        </el-table-column>
-
-        <el-table-column label="赊销余额">
+        <el-table-column type="selection" width="55"/>
+        <el-table-column prop="companyName" label="公司名称" minWidth="300">
           <template slot-scope="{ row }">
-            <p>
-              上次 <span>{{ row.lastChargeRechargeBalance }}</span>
-            </p>
-            <p>
-              本次 <span>{{ row.currentChargeRechargeBalance }}</span>
-            </p>
+            <span style='padding-left:8px;'>{{row.companyName}}</span>
+            <br/>
+            <span style='padding-left:8px;'>业务负责人:{{row.businessLeader}}</span>
           </template>
         </el-table-column>
-
-        <el-table-column label="充值返利余额">
+        <el-table-column label="企业性质" minWidth="120">
           <template slot-scope="{ row }">
-            <p>
-              上次 <span>{{ row.lastRechargeRebateBalance }}</span>
-            </p>
-            <p>
-              本次 <span>{{ row.currentRechargeRebateBalance }}</span>
-            </p>
+            {{companyNatureEnum.find((item) => item.value === row.companyNature).label}}
           </template>
         </el-table-column>
-
-        <el-table-column label="消费返利余额">
+        <el-table-column prop="totalBalance" label="公司企业总余额" minWidth="120"/>
+        <el-table-column label="司机油卡余额" minWidth="130">
           <template slot-scope="{ row }">
-            <p>
-              上次 <span>{{ row.lastConsumeRebateAmount }}</span>
-            </p>
-            <p>
-              本次 <span>{{ row.currentConsumeRebateAmount }}</span>
-            </p>
+            <span>外:{{row.outCountBalance}}</span>
+            <br/>
+            <span>自:{{row.inCountBalance}}</span>
           </template>
         </el-table-column>
+        <el-table-column prop="balance" label="账户总余额" minWidth="120"/>
+        <el-table-column prop="rechargeBalance" label="充值余额" minWidth="120"/>
+        <el-table-column prop="chargeRechargeBalance" label="赊销充值余额" minWidth="120"/>
+        <el-table-column prop="rechargeRebateBalance" label="充值返利余额" minWidth="120"/>
+        <el-table-column prop="consumeRebateBalance" label="消费返利余额" minWidth="120"/>
+        <el-table-column prop="totalChargeAmount" label="赊销待还" minWidth="120"/>
+        <el-table-column prop="createTime" label="创建时间" minWidth="200"/>
 
-        <el-table-column prop="createTime" label="创建时间"> </el-table-column>
-
-        <el-table-column label="操作">
+        <el-table-column fixed="right" label="操作" width="150px">
           <template slot-scope="{ row }">
             <span class="el-dropdown-link" @click="detail(row)">详情</span>
+            <el-dropdown>
+              <el-button type="text">
+                更多<i class="el-icon-arrow-down el-icon--right"/>
+              </el-button>
+              <el-dropdown-menu slot="dropdown">
+                <el-dropdown-item
+                  @click.native="toRecharge(row.id)"
+                >
+                  <el-button
+                    :size="$store.getters.size"
+                    type="text"
+                  >
+                    <svg-icon icon-class="iconicon-"/>
+                    充值
+                  </el-button>
+                </el-dropdown-item>
+              </el-dropdown-menu>
+            </el-dropdown>
           </template>
         </el-table-column>
       </el-table>
       <!-- 分页 -->
-      <pagination :parameter="parameter" @searchAgain="getByPage" />
+      <pagination :parameter="parameter" @searchAgain="getByPage"/>
     </div>
-    <!-- 详情 -->
-    <el-drawer
-      title="详情"
-      direction="ltr"
-      size="60%"
-      :withHeader="false"
-      :visible="controlWindows.detail"
-    >
-      <general-details
-        title="详情"
-        :isHeader="true"
-        v-if="controlWindows.detail"
-        :sourceData="oilCompanyMatch"
-        :mappingData="mappingData"
-        @close="controlWindows.detail = false"
-      >
-        <template #balance>
-          <p class="ft14">
-            上次:<span>{{ oilCompanyMatch.lastBalance }}</span>
-          </p>
-          <p class="ft14">
-            本次:<span>{{ oilCompanyMatch.currentBalance }}</span>
-          </p>
-        </template>
-        <template #rechargeBalance>
-          <p class="ft14">
-            上次:<span>{{ oilCompanyMatch.lastRechargeBalance }}</span>
-          </p>
-          <p class="ft14">
-            本次:<span>{{ oilCompanyMatch.currentRechargeBalance }}</span>
-          </p>
-        </template>
-        <template #chargeRechargeBalance>
-          <p class="ft14">
-            上次:<span>{{ oilCompanyMatch.lastChargeRechargeBalance }}</span>
-          </p>
-          <p class="ft14">
-            本次:<span>{{ oilCompanyMatch.currentChargeRechargeBalance }}</span>
-          </p>
-        </template>
-        <template #rechargeRebateBalance>
-          <p class="ft14">
-            上次:<span>{{ oilCompanyMatch.lastRechargeRebateBalance }}</span>
-          </p>
-          <p class="ft14">
-            本次:<span>{{ oilCompanyMatch.currentRechargeRebateBalance }}</span>
-          </p>
-        </template>
-        <template #consumeRebateAmount>
-          <p class="ft14">
-            上次:<span>{{ oilCompanyMatch.lastConsumeRebateAmount }}</span>
-          </p>
-          <p class="ft14">
-            本次:<span>{{ oilCompanyMatch.currentConsumeRebateAmount }}</span>
-          </p>
-        </template>
-        <template #table>
-          <el-table :data="tableDataSec" style="width: 100%">
-            <el-table-column
-              prop="businessOrderId"
-              label="关联订单"
-            ></el-table-column>
-            <el-table-column label="交易类型">
-              <template slot-scope="{ row }">
-                <p v-if="!/\W+/.test(row.billType)">
-                  {{
-                    rechargeTypeEnum.find(
-                      (item) => item.value === row.billTypes
-                    ).label
-                  }}
-                </p>
-                <p v-else>
-                  {{ row.billTypes }}
-                </p>
-              </template>
-            </el-table-column>
-            <el-table-column prop="nickName" label="司机"></el-table-column>
-            <el-table-column
-              prop="plateNumber"
-              label="车牌号"
-            ></el-table-column>
-            <el-table-column
-              prop="payRealAmount"
-              label="订单金额"
-            ></el-table-column>
-            <el-table-column
-              prop="createTime"
-              label="创建时间"
-            ></el-table-column>
-          </el-table>
-        </template>
-      </general-details>
-    </el-drawer>
+
+    <!-- 添加充值 -->
+    <recharge :controlWindows="controlWindows" @closeWindow="closeDialog" />
+
   </div>
 </template>
 
 <script>
-import serve from "api/financialCenter/billDetails.js";
-import commonServe from "api/common.js";
+  import serve from 'api/financialCenter/accountManagement.js'
+  import commonServe from 'api/common.js'
 
-import autocomplete from "components/autocomplete/index.vue";
-import pagination from "components/pagination/index.vue";
-import generalDetails from "components/generalDetails/index.vue";
-export default {
-  components: {
-    pagination,
-    autocomplete,
-    generalDetails,
-  },
-  data() {
-    return {
-      controlWindows: {
-        detail: false,
-      },
-      tableDataSec: [],
-      tableHeight: 0,
-      tableData: [],
-      configAutocomplete: {
-        serveTarget: commonServe.getRefineryCompanyList,
-        autocompleteKey: "name",
-        labelKey: "name",
-        valueKey: "id",
-        placeholder: "企业名称",
-        querykey: "companyId",
-      },
-      parameter: {
-        currentPage: 1,
-        pageSize: 10,
-        total: 0,
-        params: {},
-      },
-      rechargeTypeEnum: [
-        {
-          label: "分油",
-          value: "SEPARATION_OIL",
-        },
-        {
-          label: "充值",
-          value: "RECHARGE",
-        },
-        {
-          label: "圈回",
-          value: "TURN",
-        },
-        {
-          label: "销账",
-          value: "REVOKE",
+  import recharge from "./components/recharge.vue";
+  import autocomplete from 'components/autocomplete/index.vue'
+  import pagination from 'components/pagination/index.vue'
+  import generalDetails from 'components/generalDetails/index.vue'
+
+  export default {
+    components: {
+      recharge,
+      pagination,
+      autocomplete,
+      generalDetails
+    },
+    data() {
+      return {
+        oilCompanyAccount: {},
+        controlWindows: {
+          detail: false,
+          recharge:false // 充值弹窗
         },
-        {
-          label: "赊销",
-          value: "CHARGE_SALES",
+        tableDataSec: [],
+        tableHeight: 0,
+        tableData: [],
+        multipleSelection: [],// 选择表格数据集合
+        configAutocomplete: {
+          serveTarget: commonServe.getRefineryCompanyList,
+          autocompleteKey: 'name',
+          labelKey: 'name',
+          valueKey: 'id',
+          placeholder: '企业名称',
+          querykey: 'companyId'
         },
-        {
-          label: "充值返利",
-          value: "RECHARGE_REBETE",
+        configAutocompleteSec: {
+          serveTarget: commonServe.getRefineryCompanyList,
+          autocompleteKey: 'name',
+          labelKey: 'name',
+          valueKey: 'id',
+          placeholder: '总公司名称',
+          querykey: 'name'
         },
-        {
-          label: "消费返利",
-          value: "CONSUME_REBATE",
+        configAutocompleteBusinessLeader: {
+          serveTarget: commonServe.liekQuery,
+          autocompleteKey: '',
+          labelKey: 'nickName',
+          valueKey: 'id',
+          placeholder: '业务负责人',
+          querykey: 'businessLeader'
         },
-      ],
-
-      oilCompanyMatch: {},
-      mappingData: [
-        {
-          carTitle: "企业账单明细详情",
-          carItems: [
-            { label: "企业名称", value: "name" },
-            { label: "发生金额", value: "occurTotalAmount" },
-            { label: "交易类型", value: "billType" },
-            { label: "交易时间", value: "createTime" },
-            { label: "账户余额(元)", value: "balance" },
-            { label: "充值余额(元)", value: "rechargeBalance" },
-            { label: "赊销余额(元)", value: "chargeRechargeBalance" },
-            { label: "充值返利余额(元)", value: "rechargeRebateBalance" },
-            { label: "消费返利余额(元)", value: "consumeRebateAmount" },
-            {
-              label: "赊销待还款金额(元)",
-              value: "currentTotalChargeAmount",
-            },
-            {
-              label: "累计返利总金额(元)",
-              value: "currentTotalRebateAmount",
-            },
-            {
-              label: "累计充值返利总金额(元)",
-              value: "currentTotalRechargeRebateAmount",
-            },
-            {
-              label: "累计消费返利总金额(元)",
-              value: "currentTotalConsumeRebateAmount",
-            },
-          ],
+        parameter: {
+          currentPage: 1,
+          pageSize: 10,
+          total: 0,
+          params: {}
         },
-        {
-          carTitle: "账单关联订单",
-          carItems: [
-            {
-              value: "table",
-            },
-          ],
-        },
-      ],
-    };
-  },
-  created() {
-    this.getByPage();
-  },
-  updated() {
-    this.$nextTick(() => {
-      this.$refs.multipleTable && this.$refs.multipleTable.doLayout();
-    });
-  },
-  mounted() {
-    this.$nextTick(() => {
-      this.heightHandle();
-    });
-    window.addEventListener(
-      "resize",
-      this.$utils.debounce(this.heightHandle, 500)
-    );
-  },
-  methods: {
-    search() {
-      this.parameter.currentPage = 1;
-      this.getByPage();
-    },
-    //table list
-    getByPage() {
-      serve.getByPage(this.parameter).then((res) => {
-        this.tableData = res.data.list;
-        this.parameter.total = res.data.totalCount;
-      });
+        accountStateEnum: [
+          {
+            label: '禁用',
+            value: 0
+          },
+          {
+            label: '启用',
+            value: 1
+          },
+          {
+            label: '冻结',
+            value: -1
+          }
+        ],
+        companyNatureEnum: [
+          {
+            label: '零售客户',
+            value: 0
+          },
+          {
+            label: '外请客户',
+            value: 1
+          },
+          {
+            label: '渠道客户',
+            value: 2
+          },
+          {
+            label: '存量客户',
+            value: 3
+          },
+          {
+            label: '批发客户',
+            value: 4
+          },
+          {
+            label: 'LNG客户',
+            value: 5
+          }
+          ,
+          {
+            label: '推广业务',
+            value: 6
+          }
+        ]
+      }
     },
-    //新增
-    addition() {
-      this.controlWindows.addInfo.title = "产品新增";
-      this.controlWindows.add = true;
+    created() {
+      this.getByPage()
     },
-    detail(row) {
-      let params = {
-        businessOrderId: row.businessOrderId,
-        billType:
-          row.billType == "分油" || row.billType == "SEPARATION_OIL"
-            ? "SEPARATION_OIL"
-            : "TURN",
-      };
-      serve.getCompanyAccountRecord(params).then((res) => {
-        this.tableDataSec = [];
-        this.oilCompanyMatch = row;
-        this.controlWindows.detail = true;
-      });
+    updated() {
+      this.$nextTick(() => {
+        this.$refs.multipleTable && this.$refs.multipleTable.doLayout()
+      })
     },
-    //重置
-    reset() {
-      this.parameter = {
-        currentPage: 1,
-        pageSize: 10,
-        total: 0,
-        params: {},
-      };
+    mounted() {
+      this.$nextTick(() => {
+        this.heightHandle()
+      })
+      window.addEventListener(
+        'resize',
+        this.$utils.debounce(this.heightHandle, 500)
+      )
     },
+    methods: {
+      search() {
+        this.parameter.currentPage = 1
+        this.getByPage()
+      },
+      //table list
+      getByPage() {
+        serve.getByPage(this.parameter).then((res) => {
+          this.tableData = res.data.list
+          this.parameter.total = res.data.totalCount
+        })
+      },
 
-    // table height
-    heightHandle() {
-      let bodyHeight = document.body.clientHeight;
-      let frameHeight = this.obtainElement(".frame").clientHeight;
-      let operationHeight = this.obtainElement(".operation").clientHeight;
-      let paginationHeight = this.obtainElement(".el-pagination").clientHeight;
-      this.tableHeight =
-        bodyHeight - frameHeight - operationHeight - paginationHeight - 145;
-    },
-    obtainElement(className) {
-      return document.documentElement.querySelector(className);
-    },
-  },
-};
+      //修改账户状态
+      accountTypeHandler(type) {
+        //0:禁用 1:启用 -1:冻结
+        if (!this.multipleSelection || this.multipleSelection.length < 1) {
+          this.$message.error('请选择需要操作的数据')
+          return
+        }
+        this.multipleSelection.forEach(item => {
+          item.accountState = type
+        })
+        serve.updateAccountState(this.multipleSelection).then(res => {
+          if (res.code === 20000) {
+            this.$message.success(res.msg)
+          }
+          this.getByPage()
+        })
+      },
+      detail(row) {
+        //TODO
+      },
+      toRecharge(id) {
+        // 跳转到充值
+        serve.get(id).then(res => {
+          this.oilCompanyAccount = res.data
+          this.controlWindows.recharge = true
+        })
+      },
+      //重置
+      reset() {
+        this.parameter = {
+          currentPage: 1,
+          pageSize: 10,
+          total: 0,
+          params: {}
+        }
+      },
+      closeDialog() {
+        this.controlWindows.recharge = false
+      },
+      // table height
+      heightHandle() {
+        let bodyHeight = document.body.clientHeight
+        let frameHeight = this.obtainElement('.frame').clientHeight
+        let operationHeight = this.obtainElement('.operation').clientHeight
+        let paginationHeight = this.obtainElement('.el-pagination').clientHeight
+        this.tableHeight =
+          bodyHeight - frameHeight - operationHeight - paginationHeight - 145
+      },
+      obtainElement(className) {
+        return document.documentElement.querySelector(className)
+      }
+    }
+  }
 </script>
 
 <style lang="scss" scoped>
-.bill-details {
-  .frame {
-    margin: 20px;
-    padding: 20px;
-    border-radius: 6px;
-    border: 1px solid #e3e3e5;
-    background: #fff;
-    .el-input,
-    .el-select {
-      width: 183px;
-      height: 40px;
-    }
-    .el-autocomplete + .el-input,
-    .el-input + .el-autocomplete,
-    .el-autocomplete + .el-select,
-    .el-input + .el-input,
-    .el-input + .el-select,
-    .el-select + .el-select,
-    .el-select + .el-input {
-      margin-right: 20px;
-      margin-bottom: 15px;
-    }
-    .mr20 {
-      margin-right: 20px;
-    }
-    .buttons {
-      text-align: right;
-    }
-  }
+  .bill-details {
+    .frame {
+      margin: 20px;
+      padding: 20px;
+      border-radius: 6px;
+      border: 1px solid #e3e3e5;
+      background: #fff;
 
-  .table {
-    overflow: hidden;
-    margin: 0 20px;
-    padding-bottom: 20px;
-    background: #fff;
-    border-radius: 6px;
-    border: 1px solid #e3e3e5;
-    > .operation {
-      box-sizing: content-box;
-      padding: 15px;
-    }
-    .gray {
-      color: #999;
-      span {
-        color: #333;
+      .el-input,
+      .el-select {
+        width: 183px;
+        height: 40px;
+      }
+
+      .el-autocomplete + .el-input,
+      .el-input + .el-autocomplete,
+      .el-autocomplete + .el-select,
+      .el-input + .el-input,
+      .el-input + .el-select,
+      .el-select + .el-select,
+      .el-select + .el-input {
+        margin-right: 20px;
+        margin-bottom: 15px;
+      }
+
+      .mr20 {
+        margin-right: 20px;
+      }
+
+      .buttons {
+        text-align: right;
       }
     }
-    .el-table {
-      margin-bottom: 20px;
-      border-radius: 10px 10px 0px 0px;
-    }
 
-    .el-dropdown-link {
-      margin-right: 10px;
-      cursor: pointer;
-      color: #409eff;
-      &.special {
-        margin-right: 0;
+    .table {
+      overflow: hidden;
+      margin: 0 20px;
+      padding-bottom: 20px;
+      background: #fff;
+      border-radius: 6px;
+      border: 1px solid #e3e3e5;
+
+      > .operation {
+        box-sizing: content-box;
+        padding: 15px;
+      }
+
+      .gray {
+        color: #999;
+
+        span {
+          color: #333;
+        }
+      }
+
+      .el-table {
+        margin-bottom: 20px;
+        border-radius: 10px 10px 0px 0px;
+      }
+
+      .el-dropdown-link {
+        margin-right: 10px;
+        cursor: pointer;
+        color: #409eff;
+
+        &.special {
+          margin-right: 0;
+        }
+      }
+
+      .el-icon-arrow-down {
+        font-size: 12px;
       }
     }
-    .el-icon-arrow-down {
-      font-size: 12px;
+
+    .ft14 {
+      font-size: 14px;
     }
   }
-  .ft14 {
-    font-size: 14px;
-  }
-}
 </style>