Joe il y a 3 ans
Parent
commit
2f7288670b

+ 390 - 0
src/views/dept/Dept_AddOil/adjust.vue

@@ -0,0 +1,390 @@
+<template>
+  <div class="app-container">
+    <el-form
+      :model="queryParams"
+      ref="queryForm"
+      :inline="true"
+      label-width="68px"
+    >
+      <el-form-item>
+        <el-button
+          type="primary"
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          >添加油品</el-button
+        >
+      </el-form-item>
+    </el-form>
+    <el-table :data="addedOilList" ref="dataTable">
+      <af-table-column width="55" align="center" />
+      <af-table-column
+        label="油品价格id"
+        v-if="false"
+        align="center"
+        prop="oilPriceId"
+      />
+      <af-table-column label="油品名称" align="center" prop="oilName" />
+      <af-table-column label="油品价格" align="center" prop="oilPrice" />
+      <af-table-column
+        label="油站id"
+        v-if="false"
+        align="center"
+        prop="stationId"
+      />
+      <!--
+      <af-table-column label="油站名称" align="center" prop="stationNanme" />
+      -->
+      <af-table-column label="操作时间" align="center" prop="date" />
+      <af-table-column
+        label="操作"
+        align="center"
+        class-name="small-padding fixed-width"
+      >
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            >删除</el-button
+          >
+          <el-button
+            type="text"
+            icon="el-icon-edit"
+            size="mini"
+            @click="handleUpdata(scope.row)"
+            >调价</el-button
+          >
+        </template>
+      </af-table-column>
+    </el-table>
+
+    <pagination
+      v-show="total > 0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加油品对话框 -->
+    <el-dialog title="添加油品" :visible.sync="addOpen" width="350px">
+      <el-form ref="addForm" :model="addForm" :rules="addRules" label-width="90px">
+        <el-form-item label="油品名称" prop="oilName">
+          <el-select
+            v-model="addForm.oilName"
+            placeholder="油品名称"
+            clearable
+            size="small"
+            @change="onOilNameChang"
+          >
+            <el-option
+              v-for="dict in filterOilList"
+              :key="dict.dictLabel"
+              :label="dict.dictLabel"
+              :value="dict.dictLabel"
+            />
+          </el-select>
+        </el-form-item>
+        <el-form-item label="油品价格" prop="oilPrice" v-show="showOilPrice" :required="showOilPrice">
+          <el-input-number
+            v-model="addForm.oilPrice"
+            :precision="2"
+            :min="0"
+            :step="1"
+          ></el-input-number>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitAddForm">确 定</el-button>
+        <el-button @click="cancelAdd">取 消</el-button>
+      </div>
+    </el-dialog>
+
+    <!-- 调价信息对话框 -->
+    <el-dialog
+      title="油品调价"
+      :visible.sync="updataOpen"
+      width="400px"
+      append-to-body
+    >
+      <el-form ref="updataForm" :model="updataForm" :rules="updataRules"  label-width="80px">
+        
+        <el-form-item label="油品" prop="oilName" width="80px">
+          {{updataForm.oilName}}
+        </el-form-item>
+        <el-form-item label="调整价格" prop="oilAdjustPrice">
+          <el-input-number
+            v-model="updataForm.oilAdjustPrice"
+            :precision="2"
+            :min="0"
+            :step="1"
+            style="width: 150px"
+          />元
+        </el-form-item>
+        <el-form-item label="生效状态" prop="takeEffectStatus">
+          <el-radio-group v-model="updataForm.takeEffectStatus">
+            <el-radio-button label="1">立即生效</el-radio-button>
+            <el-radio-button label="2">定时生效</el-radio-button>
+          </el-radio-group>
+        </el-form-item>
+        <el-form-item
+          label="生效时间"
+          prop="takeEffectDate"
+          v-show="updataForm.takeEffectStatus==2"
+          :required="updataForm.takeEffectStatus==2"
+        >
+          <el-date-picker
+            clearable
+            size="small"
+            style="width: 200px"
+            v-model="updataForm.takeEffectDate"
+            type="datetime"
+            value-format="yyyy-MM-dd HH:mm:ss"
+            placeholder="选择生效时间"
+          >
+          </el-date-picker>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitUpdataForm">确 定</el-button>
+        <el-button @click="cancelUpdata">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import {
+  listPrice,
+  delPrice,
+  addPrice,
+  updatePrice,
+  exportPrice,
+} from "@/api/station/price";
+import { addAdjust, updateAdjust } from "@/api/station/adjust";
+import { getDept } from "@/api/system/dept";
+import { stationinfo } from "@/api/station/gun";
+import { queryOilType } from "@/utils/oil"
+export default {
+  name: "adjust",
+  data() {
+    const validateOilPrice = (rule, value, callback) => {
+      // 判断是不是非油品
+      const res = this.allOilList.find((ele)=>{
+        return ele.dictLabel===this.addForm.oilName
+      })
+      if(!res){
+        callback(new Error("请选择油品后进行价格操作"));
+        return
+      }
+      if(res.dictValue != 3){
+        if (value == 0){
+          callback(new Error("请填入价格"));
+          return
+        }
+      }
+      callback();
+    };
+    const validateTakeEffectDate = (rule, value, callback) => {
+      if(this.updataForm.takeEffectStatus == 2){
+        if(!value){
+          callback(new Error("请选择调价时间"));
+          return
+        }
+      }
+      callback();
+    };
+
+    return {
+      // 总条数
+      total: 0,
+      // 油品价格表格数据
+      addedOilList: [],
+      // 是否显示弹出层
+      addOpen: false,
+      updataOpen: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+      },
+      stationOptions: [],
+      // 表单参数
+      addForm: {},
+      updataForm: {},
+      // 表单校验
+      addRules:{
+        oilName:[
+          {
+            required: true,
+            trigger: "change",
+            message: "请选择油品",
+          }
+        ],
+        oilPrice:[
+          {
+            validator: validateOilPrice, 
+            trigger: 'blur' 
+          }
+        ]
+      },
+      updataRules: {
+        oilAdjustPrice:[
+          {
+            required: true,
+            trigger: "blur",
+            message: "调整价格必须慎重填写",
+          }
+        ],
+        takeEffectStatus: [
+          {
+            required: true,
+            trigger: "blur",
+            message: "生效状态必须选择",
+          },
+        ],
+        takeEffectDate:[
+          {
+            validator: validateTakeEffectDate, 
+            trigger: 'change' 
+          }
+        ]
+      },
+      allOilList: [],
+      showOilPrice:true
+    };
+  },
+  created() {
+    this.init();
+  },
+  computed: {
+    filterOilList() {
+      return this.allOilList.filter((ele) => {
+        let flag = true;
+        this.addedOilList.map((item) => {
+          if (item.oilName === ele.dictLabel) {
+            flag = false;
+          }
+        });
+        return flag;
+      });
+    },
+  },
+  methods: {
+    init(){
+      this.getList();
+      this.getDicts("oil_name").then((response) => {
+        this.allOilList = response.data;
+      });
+    },
+    /** 查询油品价格列表 */
+    getList() {
+      this.queryParams.stationId = this.deptId;
+      listPrice(this.queryParams).then((response) => {
+        this.addedOilList = response.rows;
+        this.total = response.total;
+      });
+    },
+    // 取消按钮
+    cancelAdd() {
+      this.addOpen = false;
+    },
+    /** 搜索按钮操作 */
+    // handleQuery() {
+    //   this.queryParams.pageNum = 1;
+    //   this.getList();
+    // },
+
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.addForm = {
+        ...this.addForm,
+        stationId:this.deptId,
+        oilPrice:0,
+        oilName:''
+      }
+      this.addOpen = true;
+    },
+    onOilNameChang(oilName) {
+      queryOilType(oilName).then((res) => {
+        if(res == 3){
+          this.showOilPrice = false
+        }else{
+          this.showOilPrice = true
+        }
+      })
+    },
+    /** 提交按钮 */
+    submitAddForm() {
+      this.addForm.stationId = this.deptId;
+      this.$refs["addForm"].validate((valid) => {
+        if (valid) {
+          addPrice(this.addForm).then((response) => {
+            this.msgSuccess("添加油品成功");
+            this.addOpen = false;
+            this.getList();
+          });
+        }
+      });
+    },
+    handleUpdata(row) {
+      this.updataForm = {
+        ...this.updataForm,
+        oilName: row.oilName,
+        stationId: row.stationId,
+        oilPriceId: row.oilPriceId,
+        oilAdjustPrice: row.oilPrice,
+        takeEffectStatus: 1,
+      };
+      this.updataOpen = true;
+    },
+    // 取消按钮
+    cancelUpdata() {
+      this.updataOpen = false;
+    },
+    submitUpdataForm() {
+      this.$refs["updataForm"].validate((valid) => {
+        if (valid) {
+          addAdjust(this.updataForm).then((response) => {
+            this.msgSuccess("调价成功");
+            this.updataOpen = false;
+            this.getList();
+          });
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      this.$confirm("是否确认删除油品价格", "警告", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      })
+        .then(function () {
+          return delPrice(row.oilPriceId);
+        })
+        .then(() => {
+          this.getList();
+          this.msgSuccess("删除成功");
+        });
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      const queryParams = this.queryParams;
+      this.$confirm("是否确认导出所有油品价格数据项?", "警告", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      })
+        .then(function () {
+          return exportPrice(queryParams);
+        })
+        .then((response) => {
+          this.download(response.msg);
+        });
+    },
+  },
+};
+</script>

+ 54 - 0
src/views/dept/Dept_AddOil/index.vue

@@ -0,0 +1,54 @@
+<template>
+    <div class="tabZujian" >
+    <el-tabs v-model="activeName"  @tab-click="handleClick">
+      <el-tab-pane label="油品管理" name="adjust" key="adjust">
+        <adjust />
+      </el-tab-pane>
+      <el-tab-pane label="调价记录" name="record" key="record">
+        <record  :getListChange="getListChange"/>
+      </el-tab-pane>
+    </el-tabs>
+  </div>
+
+
+
+</template>
+<script>
+import adjust from "./adjust";
+import record from "./record";
+export default {
+  name: "Station_Adjustment",
+  components: {
+    adjust,
+    record,
+  },
+  data() {
+    return {
+      activeName: "adjust",
+      pageStatus: 0,
+      getListChange:true
+    };
+  },
+  created() {
+    this.setPageStatus();
+  },
+  methods: {
+    setPageStatus() {
+      this.queryPageStatus([2]).then((res) => {
+        this.pageStatus = res;
+      });
+    },
+    handleClick(tab) {
+      if(tab.name=="record"){
+        this.getListChange = !this.getListChange
+      }
+    }
+  },
+};
+</script>
+<style>
+.tabZujian {
+  margin-left: 20px;
+  margin-top: 20px;
+}
+</style>

+ 124 - 0
src/views/dept/Dept_AddOil/record.vue

@@ -0,0 +1,124 @@
+<template>
+  <div class="app-container">
+    <el-table :data="adjustList">
+      <el-table-column
+        label="调价自增主键id"
+        v-if="false"
+        align="center"
+        prop="adjustPriceId"
+      />
+      <el-table-column label="油品名称" align="center" prop="oilName" />
+      <el-table-column label="调整价格" align="center" prop="oilAdjustPrice" />
+      <!--
+      <el-table-column
+        label="生效状态"
+        align="center"
+        prop="takeEffectStatus"
+        :formatter="statusFormat"
+      />
+      -->
+      <el-table-column label="生效状态" align="center" prop="deviceStatus">
+        <template slot-scope="scope">
+          {{ scope.row.takeEffectStatus == "1" ? "立即生效" : "定时生效" }}
+        </template>
+      </el-table-column>
+
+      <el-table-column
+        label="生效时间"
+        align="center"
+        prop="takeEffectDate"
+        width="180"
+      />
+      <el-table-column
+        label="调价时间"
+        align="center"
+        prop="adjustDate"
+        width="180"
+      />
+      <el-table-column
+        label="油站id"
+        v-if="false"
+        align="center"
+        prop="stationId"
+      />
+      <el-table-column label="油站名称" align="center" prop="stationName" />
+      <el-table-column label="操作员" align="center" prop="operator" />
+    </el-table>
+
+    <pagination
+      v-show="total > 0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+  </div>
+</template>
+
+<script>
+import { listAdjust } from "@/api/station/adjust";
+import { stationinfo } from "@/api/station/gun";
+
+export default {
+  name: "Adjust",
+  props: ["getListChange"],
+  data() {
+    return {
+      // 总条数
+      total: 0,
+      // 油品调价信息表格数据
+      adjustList: [],
+      takeEffectStatusOptions: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        oilName: null,
+        oilAdjustPrice: null,
+        takeEffectStatus: null,
+        takeEffectDate: null,
+        adjustDate: null,
+        stationId: null,
+        stationName: null,
+        operator: null,
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {},
+    };
+  },
+  watch: {
+    getListChange(newVal, oldVal) {
+      this.getList();
+    },
+  },
+  created() {
+    this.getList();
+    this.getDicts("take_effect_status").then((response) => {
+      this.takeEffectStatusOptions = response.data;
+    });
+  },
+  methods: {
+    /** 查询油品调价信息列表 */
+    getList() {
+      this.queryParams.stationId = this.deptId;
+      listAdjust(this.queryParams).then((response) => {
+        this.adjustList = response.rows;
+        this.total = response.total;
+      });
+    },
+    // 菜单状态字典翻译
+    statusFormat(row, column) {
+      return this.selectDictLabel(
+        this.takeEffectStatusOptions,
+        row.takeEffectStatus
+      );
+    },
+  },
+};
+</script>

+ 202 - 112
src/views/dept/Dept_Group.vue

@@ -187,14 +187,17 @@
 
           <el-col :span="11">
             <el-form-item label="油企名称" prop="deptName">
-              <el-input v-model="form.deptName" placeholder="请输入部门名称" />
+              <el-input
+                v-model="groupForm.deptName"
+                placeholder="请输入部门名称"
+              />
             </el-form-item>
           </el-col>
 
           <el-col :span="11" :offset="1">
             <el-form-item label="平台结算模式" prop="isLngFlag">
               <el-select
-                v-model="form.isLngFlag"
+                v-model="groupForm.isLngFlag"
                 placeholder="请选择是否为平台结算"
                 clearable
                 :style="{ width: '100%' }"
@@ -208,7 +211,7 @@
           <el-col :span="11">
             <el-form-item label="是否启用支付宝">
               <el-select
-                v-model="form.isAlipayFlag"
+                v-model="groupForm.isAlipayFlag"
                 placeholder="请选择是否启用支付宝"
                 clearable
                 :style="{ width: '100%' }"
@@ -219,11 +222,11 @@
             </el-form-item>
           </el-col>
           -->
-          <el-col :span="11" :offset="1" >
-            <el-form-item label="部门状态" prop="status">
+          <el-col :span="11">
+            <el-form-item label="油企状态" prop="status">
               <el-select
-                v-model="form.status"
-                placeholder="请选择是部门的状态"
+                v-model="groupForm.status"
+                placeholder="请选择油企状态"
                 clearable
                 :style="{ width: '100%' }"
               >
@@ -236,7 +239,7 @@
           <el-col :span="23">
             <el-form-item label="支付通道选择" prop="payWay">
               <el-cascader
-                v-model="form.payWay"
+                v-model="groupForm.payWay"
                 :options="payWayOptions"
                 :props="{ multiple: true }"
                 :style="{ width: '100%' }"
@@ -249,7 +252,7 @@
           <el-col :span="11">
             <el-form-item label="联系人" prop="leader">
               <el-input
-                v-model="form.leader"
+                v-model="groupForm.leader"
                 placeholder="请输入联系人"
                 maxlength="20"
               />
@@ -259,21 +262,19 @@
           <el-col :span="11" :offset="1">
             <el-form-item label="联系电话" prop="phone">
               <el-input
-                v-model="form.phone"
+                v-model="groupForm.phone"
                 placeholder="请输入联系电话"
                 maxlength="11"
               />
             </el-form-item>
           </el-col>
 
-          
-
           <el-col :span="11">
             <el-form-item label="省市区" prop="regionData">
               <el-cascader
                 size="large"
                 :options="regionDataOptions"
-                v-model="form.regionData"
+                v-model="groupForm.regionData"
                 @change="handleChangeRegionData"
                 :style="{ width: '100%' }"
                 clearable
@@ -286,7 +287,7 @@
           <el-col :span="11" :offset="1">
             <el-form-item label="详情地址" prop="detailRegionData">
               <el-input
-                v-model="form.detailRegionData"
+                v-model="groupForm.detailRegionData"
                 placeholder="请填写详细地址"
                 maxlength="50"
               />
@@ -296,7 +297,7 @@
           <el-col :span="11">
             <el-form-item label="油站经度" prop="stationLatitude">
               <el-input
-                v-model="form.stationLatitude"
+                v-model="groupForm.stationLatitude"
                 maxlength="50"
                 placeholder="请填写油站经度"
               />
@@ -305,7 +306,7 @@
           <el-col :span="11" :offset="1">
             <el-form-item label="油站纬度" prop="stationLongitude">
               <el-input
-                v-model="form.stationLongitude"
+                v-model="groupForm.stationLongitude"
                 maxlength="50"
                 placeholder="请填写油站纬度"
               />
@@ -314,17 +315,14 @@
           <el-col :span="24">
             <el-form-item label="营业执照编号" prop="licenseNo">
               <el-input
-                v-model="form.licenseNo"
+                v-model="groupForm.licenseNo"
                 placeholder="请输入营业执照编号"
                 maxlength="50"
               />
             </el-form-item>
           </el-col>
           <el-col :span="12">
-            <el-form-item
-              label="营业执照上传"
-              prop="licenseImg"
-            >
+            <el-form-item label="营业执照上传" prop="licenseImg">
               <el-upload
                 class="avatar-uploader"
                 :action="imgUpConfig.addressUrl"
@@ -332,7 +330,7 @@
                 multiple
                 list-type="picture-card"
                 :limit="imgUpConfig.limit"
-                :file-list="form.licenseImg"
+                :file-list="groupForm.licenseImg"
                 accept="image/gif,image/jpeg,image/png,image/jpg,image/bmp"
                 :before-upload="beforeAvatarUpload"
                 :on-remove="handleAvatarRemove"
@@ -355,7 +353,7 @@
           <el-col :span="11">
             <el-form-item label="开户行" prop="corporateBank">
               <el-input
-                v-model="form.corporateBank"
+                v-model="groupForm.corporateBank"
                 placeholder="请输入开户行名称"
                 maxlength="50"
               />
@@ -365,7 +363,7 @@
           <el-col :span="11" :offset="1">
             <el-form-item label="开户行账号" prop="corporateAccount">
               <el-input
-                v-model="form.corporateAccount"
+                v-model="groupForm.corporateAccount"
                 placeholder="请输入对公账户"
                 maxlength="50"
               />
@@ -375,7 +373,7 @@
           <el-col :span="23">
             <el-form-item label="开户行账户名" prop="corporateAccountName">
               <el-input
-                v-model="form.corporateAccountName"
+                v-model="groupForm.corporateAccountName"
                 placeholder="请输入对公银行"
                 maxlength="50"
               />
@@ -384,7 +382,7 @@
           <el-col :span="23">
             <el-form-item label="手续费" prop="serviceCharge">
               <el-input
-                v-model="form.serviceCharge"
+                v-model="groupForm.serviceCharge"
                 placeholder="请输入手续费"
                 maxlength="50"
               >
@@ -400,17 +398,29 @@
           </el-col>
           <el-col :span="11">
             <el-form-item label="小程序AppId" prop="appId">
-              <el-input v-model="form.appId" maxlength="50" placeholder="请输入小程序AppId"/>
+              <el-input
+                v-model="groupForm.appId"
+                maxlength="50"
+                placeholder="请输入小程序AppId"
+              />
             </el-form-item>
           </el-col>
           <el-col :span="11" :offset="1">
             <el-form-item label="小程序AppSecret" prop="appSecret">
-              <el-input v-model="form.appSecret" maxlength="50" placeholder="请输入小程序AppSecret"/>
+              <el-input
+                v-model="groupForm.appSecret"
+                maxlength="50"
+                placeholder="请输入小程序AppSecret"
+              />
             </el-form-item>
           </el-col>
           <el-col :span="23">
             <el-form-item label="小程序原始Id" prop="originId">
-              <el-input v-model="form.originId" maxlength="50" placeholder="请输入小程序原始Id"/>
+              <el-input
+                v-model="groupForm.originId"
+                maxlength="50"
+                placeholder="请输入小程序原始Id"
+              />
             </el-form-item>
           </el-col>
           <el-col :span="24">
@@ -421,77 +431,153 @@
           </el-col>
           <el-col :span="11">
             <el-form-item label="公众号AppId" prop="gzhAppId">
-              <el-input v-model="form.gzhAppId" maxlength="50" placeholder="请输入公众号AppId"/>
+              <el-input
+                v-model="groupForm.gzhAppId"
+                maxlength="50"
+                placeholder="请输入公众号AppId"
+              />
             </el-form-item>
           </el-col>
           <el-col :span="11" :offset="1">
             <el-form-item label="公众号AppSecret" prop="gzhAppSecret">
-              <el-input v-model="form.gzhAppSecret" maxlength="50"  placeholder="请输入公众号AppSecret"/>
+              <el-input
+                v-model="groupForm.gzhAppSecret"
+                maxlength="50"
+                placeholder="请输入公众号AppSecret"
+              />
             </el-form-item>
           </el-col>
+        </el-row>
+      </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>
+
+    <el-dialog
+      :title="'配置支付渠道'"
+      :visible.sync="payOpen"
+      width="800px"
+      append-to-body
+    >
+      <el-form
+        ref="payForm"
+        :model="payForm"
+        :rules="rules"
+        label-width="80px"
+        label-position="top"
+      >
+      
+        <el-col :span="23">
+          <el-form-item label="支付渠道类型">
+            <el-select
+              v-model="payForm.type"
+              placeholder="请选择是否启用分账"
+              clearable
+              :style="{ width: '100%' }"
+            >
+              <el-option label="随行付" value="1"></el-option>
+              <el-option label="云闪付" value="0"></el-option>
+            </el-select>
+          </el-form-item>
+        </el-col>
+        <!--
           <el-col :span="24">
             <div style="font-size: 22px; font-weight: bolder; margin-top: 20px">
               随行付信息
               <hr />
             </div>
           </el-col>
-          <el-col :span="11">
-            <el-form-item label="随行付商户号" prop="mno">
-              <el-input v-model="form.mno" maxlength="50" placeholder="请输入随行付商户号"/>
-            </el-form-item>
-          </el-col>
-          <el-col :span="11" :offset="1">
-            <el-form-item label="是否分账">
-              <el-select
-                v-model="form.mnoStatus"
-                placeholder="请选择是否启用分账"
-                clearable
-                :style="{ width: '100%' }"
-              >
-                <el-option label="启用分账" value="1"></el-option>
-                <el-option label="禁用分账" value="0"></el-option>
-              </el-select>
-            </el-form-item>
-          </el-col>
-          <el-col :span="11">
-            <el-form-item label="分账收款商户编号" prop="mnoArray">
-              <el-input v-model="form.mnoArray" maxlength="50" placeholder="请输入分账收款商户编号"/>
-            </el-form-item>
-          </el-col>
-          <el-col :span="11" :offset="1">
-            <el-form-item label="分账账号比例" prop="mnoProportion">
-              <el-input v-model="form.mnoProportion" maxlength="50" placeholder="请输入分账账号比例"/>
-            </el-form-item>
-          </el-col>
+        -->
+        <el-col :span="11" v-if="payForm.type=='1'">
+          <el-form-item label="随行付商户号" prop="mno">
+            <el-input
+              v-model="payForm.mno"
+              maxlength="50"
+              placeholder="请输入随行付商户号"
+            />
+          </el-form-item>
+        </el-col>
+
+        <el-col :span="11" :offset="1" v-if="payForm.type=='1'">
+          <el-form-item label="是否分账">
+            <el-select
+              v-model="payForm.mnoStatus"
+              placeholder="请选择是否启用分账"
+              clearable
+              :style="{ width: '100%' }"
+            >
+              <el-option label="启用分账" value="1"></el-option>
+              <el-option label="禁用分账" value="0"></el-option>
+            </el-select>
+          </el-form-item>
+        </el-col>
+
+        <el-col :span="11" v-if="payForm.type=='1'">
+          <el-form-item label="分账收款商户编号" prop="mnoArray">
+            <el-input
+              v-model="payForm.mnoArray"
+              maxlength="50"
+              placeholder="请输入分账收款商户编号"
+            />
+          </el-form-item>
+        </el-col>
+
+        <el-col :span="11" :offset="1" v-if="payForm.type=='1'">
+          <el-form-item label="分账账号比例" prop="mnoProportion">
+            <el-input
+              v-model="payForm.mnoProportion"
+              maxlength="50"
+              placeholder="请输入分账账号比例"
+            />
+          </el-form-item>
+        </el-col>
+        <!--
           <el-col :span="24">
             <div style="font-size: 22px; font-weight: bolder; margin-top: 20px">
               云闪付信息
               <hr />
             </div>
           </el-col>
-          <el-col :span="11">
-            <el-form-item label="云闪付商户号码" prop="merchantNo">
-              <el-input v-model="form.merchantNo" maxlength="50" placeholder="请输入云闪付商户号码"/>
-            </el-form-item>
-          </el-col>
-          <el-col :span="11" :offset="1">
-            <el-form-item label="云闪付终端号" prop="terminalId">
-              <el-input v-model="form.terminalId" maxlength="50" placeholder="请输入云闪付终端号"/>
-            </el-form-item>
-          </el-col>
-          <el-col :span="23">
-            <el-form-item label="云闪付密钥" prop="yunKey">
-              <el-input v-model="form.yunKey" maxlength="50" placeholder="请输入云闪付密钥"/>
-            </el-form-item>
-          </el-col>
-        </el-row>
+          -->
+        <el-col :span="11" v-if="payForm.type=='2'">
+          <el-form-item label="云闪付商户号码" prop="merchantNo">
+            <el-input
+              v-model="payForm.merchantNo"
+              maxlength="50"
+              placeholder="请输入云闪付商户号码"
+            />
+          </el-form-item>
+        </el-col>
+
+        <el-col :span="11" :offset="1" v-if="payForm.type=='2'">
+          <el-form-item label="云闪付终端号" prop="terminalId">
+            <el-input
+              v-model="payForm.terminalId"
+              maxlength="50"
+              placeholder="请输入云闪付终端号"
+            />
+          </el-form-item>
+        </el-col>
+
+        <el-col :span="23" v-if="payForm.type=='2'">
+          <el-form-item label="云闪付密钥" prop="yunKey">
+            <el-input
+              v-model="payForm.yunKey"
+              maxlength="50"
+              placeholder="请输入云闪付密钥"
+            />
+          </el-form-item>
+        </el-col>
+
       </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>
-    
+
     <!-- 添加或修改部门对话框 -->
     <el-dialog :title="title" :visible.sync="open" width="800px" append-to-body>
       <el-form ref="form" :model="form" :rules="rules" label-width="80px">
@@ -827,55 +913,59 @@ export default {
 
       groupList: [
         {
-          enterpriseName:'',
+          enterpriseName: "",
           deptName: "李哈哈",
         },
         {
-          enterpriseName:'',
+          enterpriseName: "",
           deptName: "李哈哈",
         },
       ],
       groupForm: {
-        enterpriseName:'', 
-        status:'',
-        leader:'',
-        phone:'',
-        stationLatitude:'',
-        stationLongitude:'',
-        appId:'',
-        appSecret:'',
-        originId:'',
-        gzhAppId:'',
-        gzhAppSecret:'',
-        mno:'',
-        mnoStatus:'',
-        mnoArray:'',
-        mnoProportion:'',
-        merchantNo:'',
-        terminalId:'',
-        yunKey:'',
-
-
+        enterpriseName: "",
+        status: "",
+        leader: "",
+        phone: "",
+        stationLatitude: "",
+        stationLongitude: "",
+        appId: "",
+        appSecret: "",
+        originId: "",
+        gzhAppId: "",
+        gzhAppSecret: "",
+        mno: "",
+        mnoStatus: "",
+        mnoArray: "",
+        mnoProportion: "",
+        merchantNo: "",
+        terminalId: "",
+        yunKey: "",
 
         regionData: [], //["120000","120100","120102"] 省市区码
-        detailRegionData:[], //详细地址
-        corporateAccountName:'', //开户行账户名
-        corporateAccount:'',// 开户行账号
-        corporateBank:'',  // 对公银行 
-        serviceCharge: '', // 手续费
-        licenseImg:[],  // img图片的list  营业执照
-        licenseNo:'', // 营业执照编号
-        payWay:[[1,2],[1,3]], //支付方式list[[微信,随行付]
-        
+        detailRegionData: [], //详细地址
+        corporateAccountName: "", //开户行账户名
+        corporateAccount: "", // 开户行账号
+        corporateBank: "", // 对公银行
+        serviceCharge: "", // 手续费
+        licenseImg: [], // img图片的list  营业执照
+        licenseNo: "", // 营业执照编号
+        payWay: [
+          [1, 2],
+          [1, 3],
+        ], //支付方式list[[微信,随行付]
       },
       imgUpConfig: {
-        headers:{
+        headers: {
           Authorization: "Bearer " + getToken(),
         },
         addressUrl: process.env.VUE_APP_BASE_API + "/common/upload",
-        limit:5
+        limit: 5,
+      },
+      groupOpen: false,
+      payOpen: true,
+      payForm: {
+        type:'1'
       },
-      groupOpen: true,
     };
   },
   created() {
@@ -893,7 +983,7 @@ export default {
     },
     handleChangeRegionData(value) {
       console.log(this.form.regionData);
-      console.log(this.form)
+      console.log(this.form);
     },
     beforeAvatarUpload(file) {
       const isLt5M = file.size / 1024 / 1024 < 5;
@@ -910,7 +1000,7 @@ export default {
         ...this.form.licenseImg,
         {
           name: file.name,
-          url:  response.url,
+          url: response.url,
         },
       ];
     },

+ 0 - 0
src/views/dept/Dept_OilPrice.vue


+ 583 - 0
src/views/dept/Dept_PayWay.vue

@@ -0,0 +1,583 @@
+<template>
+  <div class="app-container">
+    <el-form
+      :model="queryParams"
+      ref="queryForm"
+      :inline="true"
+      v-show="showSearch"
+    >
+      <el-form-item label="油企名称" prop="deptName">
+        <el-input
+          v-model="queryParams.deptName"
+          placeholder="请输入油企名称"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </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 statusOptions"
+            :key="dict.dictValue"
+            :label="dict.dictLabel"
+            :value="dict.dictValue"
+          />
+        </el-select>
+      </el-form-item>
+      <el-form-item>
+        <el-button
+          type="cyan"
+          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"
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          >新增</el-button
+        >
+      </el-col>
+      <right-toolbar
+        :showSearch.sync="showSearch"
+        @queryTable="getList"
+      ></right-toolbar>
+    </el-row>
+    
+    <el-table :data="payList" style="width: 100%">
+      <el-table-column prop="deptName" label="油企名称" width="180">
+      </el-table-column>
+      <el-table-column prop="deptName" label="ID" width="180">
+      </el-table-column>
+      <el-table-column prop="deptName" label="排序" width="180">
+      </el-table-column>
+    </el-table>
+
+    <el-dialog
+      :title="'配置支付渠道'"
+      :visible.sync="payOpen"
+      width="800px"
+      append-to-body
+    >
+      <el-form
+        ref="payForm"
+        :model="payForm"
+        :rules="rules"
+        label-width="80px"
+        label-position="top"
+      >
+      
+        <el-col :span="23">
+          <el-form-item label="支付渠道类型">
+            <el-select
+              v-model="payForm.payType"
+              placeholder="请选择支付渠道"
+              clearable
+              :style="{ width: '100%' }"
+            >
+              <el-option label="随行付" value="1"></el-option>
+              <el-option label="云闪付" value="2"></el-option>
+            </el-select>
+          </el-form-item>
+        </el-col>
+          <el-col :span="11">
+          <el-form-item label="使用类型">
+            <el-select
+              v-model="payForm.useType"
+              placeholder="请选择支付渠道的类型"
+              clearable
+              :style="{ width: '100%' }"
+            >
+              <el-option label="消费" value="1"></el-option>
+              <el-option label="充值" value="0"></el-option>
+            </el-select>
+          </el-form-item>
+        </el-col>
+        <el-col :span="11" :offset="1">
+          <el-form-item label="应用渠道">
+            <el-select
+              v-model="payForm.appType"
+              placeholder="请选择支付渠道应用的类型"
+              clearable
+              :style="{ width: '100%' }"
+            >
+              <el-option label="微信" value="1"></el-option>
+              <el-option label="支付宝" value="2"></el-option>
+              <el-option label="银行卡" value="3"></el-option>
+            </el-select>
+          </el-form-item>
+        </el-col>
+
+        <!--
+          <el-col :span="24">
+            <div style="font-size: 22px; font-weight: bolder; margin-top: 20px">
+              随行付信息
+              <hr />
+            </div>
+          </el-col>
+        -->
+        <el-col :span="11" v-if="payForm.payType=='1'">
+          <el-form-item label="随行付商户号" prop="mno">
+            <el-input
+              v-model="payForm.mno"
+              maxlength="50"
+              placeholder="请输入随行付商户号"
+            />
+          </el-form-item>
+        </el-col>
+
+        <el-col :span="11" :offset="1" v-if="payForm.payType=='1'">
+          <el-form-item label="是否分账">
+            <el-select
+              v-model="payForm.mnoStatus"
+              placeholder="请选择是否启用分账"
+              clearable
+              :style="{ width: '100%' }"
+            >
+              <el-option label="启用分账" value="1"></el-option>
+              <el-option label="禁用分账" value="0"></el-option>
+            </el-select>
+          </el-form-item>
+        </el-col>
+
+        <el-col :span="11" v-if="payForm.payType=='1'">
+          <el-form-item label="分账收款商户编号" prop="mnoArray">
+            <el-input
+              v-model="payForm.mnoArray"
+              maxlength="50"
+              placeholder="请输入分账收款商户编号"
+            />
+          </el-form-item>
+        </el-col>
+
+        <el-col :span="11" :offset="1" v-if="payForm.payType=='1'">
+          <el-form-item label="分账账号比例" prop="mnoProportion">
+            <el-input
+              v-model="payForm.mnoProportion"
+              maxlength="50"
+              placeholder="请输入分账账号比例"
+            />
+          </el-form-item>
+        </el-col>
+        <!--
+          <el-col :span="24">
+            <div style="font-size: 22px; font-weight: bolder; margin-top: 20px">
+              云闪付信息
+              <hr />
+            </div>
+          </el-col>
+          -->
+        <el-col :span="11" v-if="payForm.payType=='2'">
+          <el-form-item label="云闪付商户号码" prop="merchantNo">
+            <el-input
+              v-model="payForm.merchantNo"
+              maxlength="50"
+              placeholder="请输入云闪付商户号码"
+            />
+          </el-form-item>
+        </el-col>
+
+        <el-col :span="11" :offset="1" v-if="payForm.payType=='2'">
+          <el-form-item label="云闪付终端号" prop="terminalId">
+            <el-input
+              v-model="payForm.terminalId"
+              maxlength="50"
+              placeholder="请输入云闪付终端号"
+            />
+          </el-form-item>
+        </el-col>
+
+        <el-col :span="23" v-if="payForm.payType=='2'">
+          <el-form-item label="云闪付密钥" prop="yunKey">
+            <el-input
+              v-model="payForm.yunKey"
+              maxlength="50"
+              placeholder="请输入云闪付密钥"
+            />
+          </el-form-item>
+        </el-col>
+
+      </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 {
+  listDept,
+  getDept,
+  delDept,
+  addDept,
+  updateDept,
+  listDeptExcludeChild,
+  listTree,
+  setMnoSplit,
+} from "@/api/system/dept";
+import Treeselect from "@riophae/vue-treeselect";
+import "@riophae/vue-treeselect/dist/vue-treeselect.css";
+import { regionData } from "element-china-area-data";
+import { getToken } from "@/utils/auth";
+
+export default {
+  name: "Dept",
+  components: { Treeselect },
+  data() {
+    return {
+      regionDataOptions: regionData, // 地址组件
+      selectedRegionData: [],
+      // 遮罩层
+      loading: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 表格树数据
+      deptList: [],
+      // 部门树选项
+      deptOptions: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      isShow: false,
+      showIsLngFlag: false,
+      splitShow: false,
+      // 状态数据字典
+      statusOptions: [],
+      // 查询参数
+      queryParams: {
+        deptName: undefined,
+        status: undefined,
+      },
+      // 表单参数
+      form: {},
+      payWayOptions: [
+        {
+          label: "微信支付",
+          value: 1,
+          children: [
+            {
+              label: "随行付",
+              value: 1,
+            },
+            {
+              label: "云闪付",
+              value: 2,
+            },
+            {
+              label: "全民付",
+              value: 3,
+            },
+          ],
+        },
+        {
+          label: "支付宝支付",
+          value: 2,
+          children: [
+            {
+              label: "随行付",
+              value: 1,
+            },
+            {
+              label: "云闪付",
+              value: 2,
+            },
+            {
+              label: "上海富友",
+              value: 4,
+            },
+          ],
+        },
+        {
+          label: "银行卡",
+          value: 3,
+          children: [
+            {
+              label: "随行付",
+              value: 1,
+            },
+            {
+              label: "云闪付",
+              value: 2,
+            },
+          ],
+        },
+      ],
+      // 表单校验
+      rules: {
+        parentId: [
+          { required: true, message: "上级部门不能为空", trigger: "blur" },
+        ],
+        deptName: [
+          { required: true, message: "部门名称不能为空", trigger: "blur" },
+        ],
+        orderNum: [
+          { required: true, message: "显示排序不能为空", trigger: "blur" },
+        ],
+        // singleStationFlag: [
+        //   { required: true, message: "站点类型不能为空", trigger: "change" }
+        // ],
+        email: [
+          {
+            type: "email",
+            message: "'请输入正确的邮箱地址",
+            trigger: ["blur", "change"],
+          },
+        ],
+        phone: [
+          {
+            pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
+            message: "请输入正确的手机号码",
+            trigger: "blur",
+          },
+        ],
+      },
+
+      payList: [
+        {
+          enterpriseName: "",
+          deptName: "李哈哈",
+        },
+        {
+          enterpriseName: "",
+          deptName: "李哈哈",
+        },
+      ],
+      imgUpConfig: {
+        headers: {
+          Authorization: "Bearer " + getToken(),
+        },
+        addressUrl: process.env.VUE_APP_BASE_API + "/common/upload",
+        limit: 5,
+      },
+      groupOpen: false,
+      payOpen: true,
+      payForm: {
+        payType:'1',
+        useType:'0',
+        appType:'2'
+      },
+    };
+  },
+  created() {
+    this.getList();
+    this.getDicts("sys_normal_disable").then((response) => {
+      this.statusOptions = response.data;
+    });
+  },
+  methods: {
+    handleAdd(row) {
+      this.payForm = {
+      };
+      this.payOpen = true;
+    },
+    handleChangeRegionData(value) {
+      console.log(this.form.regionData);
+      console.log(this.form);
+    },
+    beforeAvatarUpload(file) {
+      const isLt5M = file.size / 1024 / 1024 < 5;
+      if (!isLt5M) {
+        this.$message.error("上传头像图片大小不能超过 5MB!");
+      }
+      return isLt5M;
+    },
+    handleAvatarRemove(file, fileList) {
+      this.form.licenseImg = fileList;
+    },
+    handleAvatarSuccess(response, file, fileList) {
+      this.form.licenseImg = [
+        ...this.form.licenseImg,
+        {
+          name: file.name,
+          url: response.url,
+        },
+      ];
+    },
+    /** 查询部门列表 */
+    getList() {
+      this.loading = true;
+      // listTree(this.queryParams).then(response => {
+      //   this.deptList = this.handleTree(response.data, "deptId");
+      //   this.loading = false;
+      // });
+      listDept(this.queryParams).then((response) => {
+        this.deptList = this.handleTree(response.data, "deptId");
+        this.loading = false;
+      });
+    },
+    selectDepart(val) {
+      this.form.jiBie = parseInt(val.jiBie);
+      if (val.jiBie == 1) {
+        this.isShow = true;
+        this.showIsLngFlag = false;
+      } else {
+        this.isShow = false;
+        this.showIsLngFlag = true;
+      }
+    },
+    /** 转换部门数据结构 */
+    normalizer(node) {
+      if (node.children && !node.children.length) {
+        delete node.children;
+      }
+      return {
+        id: node.deptId,
+        label: node.deptName,
+        children: node.children,
+      };
+    },
+    // 字典状态字典翻译
+    statusFormat(row, column) {
+      return this.selectDictLabel(this.statusOptions, row.status);
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.isShow = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        deptId: undefined,
+        parentId: undefined,
+        deptName: undefined,
+        orderNum: undefined,
+        leader: undefined,
+        phone: undefined,
+        email: undefined,
+        status: "0",
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    /** 新增按钮操作 */
+    handleAdd1(row) {
+      this.reset();
+      if (row != undefined) {
+        this.form.parentId = row.deptId;
+        //判断级别 1是集团,如果是集团展示的是油站的所有数据
+        if (row.jiBie == 1) {
+          this.form.jiBie = parseInt(row.jiBie);
+          this.isShow = true;
+          this.isLngFlag = false;
+        } else {
+          this.isLngFlag = true;
+          this.isShow = false;
+        }
+      }
+      this.open = true;
+      this.title = "添加部门";
+      listDept().then((response) => {
+        this.deptOptions = this.handleTree(response.data, "deptId");
+      });
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      getDept(row.deptId).then((response) => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改部门";
+      });
+      listDeptExcludeChild(row.deptId).then((response) => {
+        this.deptOptions = this.handleTree(response.data, "deptId");
+      });
+      //判断级别 1是集团,如果是集团展示的是油站的所有数据
+      if (row.jiBie == 2) {
+        this.isShow = true;
+        this.showIsLngFlag = false;
+      } else {
+        this.isShow = false;
+        this.showIsLngFlag = true;
+      }
+    },
+    //设置分账的参数
+    handleMnoSplit(row) {
+      this.$confirm('是否进行分账设置,点击确定跳转确认页面"', "警告", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      })
+        .then(() => {
+          return setMnoSplit(row.deptId);
+        })
+        .then((res) => {
+          // this.getList();
+          window.open(res.msg, "_blank");
+          //this.msgSuccess("分账设置成功");
+        });
+    },
+
+    /** 提交按钮 */
+    submitForm: function () {
+      this.$refs["form"].validate((valid) => {
+        if (valid) {
+          if (this.form.deptId != undefined) {
+            updateDept(this.form).then((response) => {
+              //window.location=response.message;
+              this.msgSuccess("修改成功");
+              this.open = false;
+              this.isShow = false;
+              this.getList();
+            });
+          } else {
+            addDept(this.form).then((response) => {
+              this.msgSuccess("新增成功");
+              this.open = false;
+              this.isShow = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      this.$confirm(
+        '是否确认删除名称为"' + row.deptName + '"的数据项?',
+        "警告",
+        {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning",
+        }
+      )
+        .then(function () {
+          return delDept(row.deptId);
+        })
+        .then(() => {
+          this.getList();
+          this.msgSuccess("删除成功");
+        });
+    },
+  },
+};
+</script>