Joe пре 3 година
родитељ
комит
182ddd2271
1 измењених фајлова са 230 додато и 133 уклоњено
  1. 230 133
      src/views/system/dept/index.vue

+ 230 - 133
src/views/system/dept/index.vue

@@ -1,6 +1,11 @@
 <template>
   <div class="app-container">
-    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch">
+    <el-form
+      :model="queryParams"
+      ref="queryForm"
+      :inline="true"
+      v-show="showSearch"
+    >
       <el-form-item label="部门名称" prop="deptName">
         <el-input
           v-model="queryParams.deptName"
@@ -11,7 +16,12 @@
         />
       </el-form-item>
       <el-form-item label="状态" prop="status">
-        <el-select v-model="queryParams.status" placeholder="部门状态" clearable size="small">
+        <el-select
+          v-model="queryParams.status"
+          placeholder="部门状态"
+          clearable
+          size="small"
+        >
           <el-option
             v-for="dict in statusOptions"
             :key="dict.dictValue"
@@ -21,8 +31,16 @@
         </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-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>
 
@@ -34,9 +52,13 @@
           size="mini"
           @click="handleAdd"
           v-hasPermi="['system:dept:add']"
-        >新增</el-button>
+          >新增</el-button
+        >
       </el-col>
-      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+      <right-toolbar
+        :showSearch.sync="showSearch"
+        @queryTable="getList"
+      ></right-toolbar>
     </el-row>
 
     <el-table
@@ -44,19 +66,46 @@
       :data="deptList"
       row-key="deptId"
       default-expand-all
-      :tree-props="{children: 'children', hasChildren: 'hasChildren'}"
+      :tree-props="{ children: 'children', hasChildren: 'hasChildren' }"
     >
-      <el-table-column prop="deptName" label="部门名称" width="260"></el-table-column>
+      <el-table-column
+        prop="deptName"
+        label="部门名称"
+        width="260"
+      ></el-table-column>
       <el-table-column prop="deptId" label="ID" width="110"></el-table-column>
-      <el-table-column prop="orderNum" label="排序" width="200"></el-table-column>
-      <el-table-column prop="status" label="状态" :formatter="statusFormat" width="100"></el-table-column>
-      <el-table-column prop="jiBie" label="级别" v-if ="false" width="100"></el-table-column>
-      <el-table-column label="创建时间" align="center" prop="createTime" width="200">
+      <el-table-column
+        prop="orderNum"
+        label="排序"
+        width="200"
+      ></el-table-column>
+      <el-table-column
+        prop="status"
+        label="状态"
+        :formatter="statusFormat"
+        width="100"
+      ></el-table-column>
+      <el-table-column
+        prop="jiBie"
+        label="级别"
+        v-if="false"
+        width="100"
+      ></el-table-column>
+      <el-table-column
+        label="创建时间"
+        align="center"
+        prop="createTime"
+        width="200"
+      >
         <template slot-scope="scope">
           <span>{{ parseTime(scope.row.createTime) }}</span>
         </template>
       </el-table-column>
-      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+      <el-table-column
+        label="操作"
+        align="center"
+        class-name="small-padding fixed-width"
+      >
         <template slot-scope="scope">
           <el-button
             size="mini"
@@ -64,14 +113,16 @@
             icon="el-icon-edit"
             @click="handleUpdate(scope.row)"
             v-hasPermi="['system:dept:edit']"
-          >修改</el-button>
+            >修改</el-button
+          >
           <el-button
             size="mini"
             type="text"
             icon="el-icon-plus"
             @click="handleAdd(scope.row)"
             v-hasPermi="['system:dept:add']"
-          >新增</el-button>
+            >新增</el-button
+          >
           <el-button
             v-if="scope.row.parentId != 0"
             size="mini"
@@ -79,26 +130,33 @@
             icon="el-icon-delete"
             @click="handleDelete(scope.row)"
             v-hasPermi="['system:dept:remove']"
-          >删除</el-button>
-            <el-button
-          
+            >删除</el-button
+          >
+          <el-button
             size="mini"
             type="text"
             icon="el-icon-paperclip"
             @click="handleMnoSplit(scope.row)"
             v-hasPermi="['system:dept:sign']"
-          >分账确认</el-button>
+            >分账确认</el-button
+          >
         </template>
       </el-table-column>
     </el-table>
 
     <!-- 添加或修改部门对话框 -->
-    <el-dialog :title="title" :visible.sync="open" width="600px" append-to-body>
+    <el-dialog :title="title" :visible.sync="open" width="700px" append-to-body>
       <el-form ref="form" :model="form" :rules="rules" label-width="80px">
         <el-row>
           <el-col :span="24" v-if="form.parentId !== 0">
             <el-form-item label="上级部门" prop="parentId">
-              <treeselect v-model="form.parentId" :options="deptOptions" :normalizer="normalizer" @select="selectDepart" placeholder="选择上级部门" />
+              <treeselect
+                v-model="form.parentId"
+                :options="deptOptions"
+                :normalizer="normalizer"
+                @select="selectDepart"
+                placeholder="选择上级部门"
+              />
             </el-form-item>
           </el-col>
           <el-col :span="12">
@@ -109,128 +167,152 @@
 
           <el-col :span="12">
             <el-form-item label="显示排序" prop="orderNum">
-              <el-input-number v-model="form.orderNum" controls-position="right" :min="0" />
+              <el-input-number
+                v-model="form.orderNum"
+                controls-position="right"
+                :min="0"
+              />
             </el-form-item>
           </el-col>
 
           <el-col :span="12">
             <el-form-item label="负责人" prop="leader">
-              <el-input v-model="form.leader" placeholder="请输入负责人" maxlength="20" />
+              <el-input
+                v-model="form.leader"
+                placeholder="请输入负责人"
+                maxlength="20"
+              />
             </el-form-item>
           </el-col>
 
           <el-col :span="12">
             <el-form-item label="联系电话" prop="phone">
-              <el-input v-model="form.phone" placeholder="请输入联系电话" maxlength="11" />
+              <el-input
+                v-model="form.phone"
+                placeholder="请输入联系电话"
+                maxlength="11"
+              />
             </el-form-item>
           </el-col>
-         
+
           <el-col :span="12" v-show="false">
             <el-form-item label="jiBie " prop="jiBie">
-              <el-input v-model="form.jiBie"  maxlength="50" />
+              <el-input v-model="form.jiBie" maxlength="50" />
             </el-form-item>
           </el-col>
           <el-col :span="12" v-show="isShow">
             <el-form-item label="所属城市" prop="city">
-              <el-input v-model="form.city" placeholder="所属城市" maxlength="50" />
+              <el-input
+                v-model="form.city"
+                placeholder="所属城市"
+                maxlength="50"
+              />
             </el-form-item>
           </el-col>
           <el-col :span="12" v-show="isShow">
             <el-form-item label="油站地址" prop="deptAddress">
-              <el-input v-model="form.deptAddress"  maxlength="50" />
+              <el-input v-model="form.deptAddress" maxlength="50" />
             </el-form-item>
           </el-col>
           <el-col :span="12" v-show="isShow">
             <el-form-item label="油站经度" prop="stationLatitude">
-              <el-input v-model="form.stationLatitude"  maxlength="50" />
+              <el-input v-model="form.stationLatitude" maxlength="50" />
             </el-form-item>
           </el-col>
           <el-col :span="12" v-show="isShow">
             <el-form-item label="油站纬度" prop="stationLongitude">
-              <el-input v-model="form.stationLongitude"  maxlength="50" />
+              <el-input v-model="form.stationLongitude" maxlength="50" />
             </el-form-item>
           </el-col>
-
+          <el-col :span="12">
+            <el-form-item label="部门状态">
+              <el-radio-group v-model="form.status">
+                <el-radio
+                  v-for="dict in statusOptions"
+                  :key="dict.dictValue"
+                  :label="dict.dictValue"
+                  >{{ dict.dictLabel }}</el-radio
+                >
+              </el-radio-group>
+            </el-form-item>
+          </el-col>
+          <el-col :span="24" v-show="isShow"></el-col>
           <el-col :span="12" v-show="isShow">
             <el-form-item label="小程序appID" prop="appId">
-              <el-input v-model="form.appId"  maxlength="50" />
+              <el-input v-model="form.appId" maxlength="50" />
             </el-form-item>
           </el-col>
           <el-col :span="12" v-show="isShow">
             <el-form-item label="小程序appSecret" prop="appSecret">
-              <el-input v-model="form.appSecret"  maxlength="50" />
+              <el-input v-model="form.appSecret" maxlength="50" />
             </el-form-item>
           </el-col>
           <el-col :span="12" v-show="isShow">
             <el-form-item label="公众号appID" prop="gzhAppId">
-              <el-input v-model="form.gzhAppId"  maxlength="50" />
+              <el-input v-model="form.gzhAppId" maxlength="50" />
             </el-form-item>
           </el-col>
           <el-col :span="12" v-show="isShow">
             <el-form-item label="公众号appSecret" prop="gzhAppSecret">
-              <el-input v-model="form.gzhAppSecret"  maxlength="50" />
+              <el-input v-model="form.gzhAppSecret" maxlength="50" />
             </el-form-item>
           </el-col>
           <el-col :span="12" v-show="isShow">
             <el-form-item label="商户号" prop="mno">
-              <el-input v-model="form.mno"  maxlength="50" />
+              <el-input v-model="form.mno" maxlength="50" />
             </el-form-item>
           </el-col>
 
-           <el-col :span="12" v-show="isShow">
+          <el-col :span="12" v-show="isShow">
             <el-form-item label="云闪付商户号码" prop="merchantNo">
-              <el-input v-model="form.merchantNo"  maxlength="50" />
+              <el-input v-model="form.merchantNo" maxlength="50" />
             </el-form-item>
           </el-col>
-           <el-col :span="12" v-show="isShow">
+          <el-col :span="12" v-show="isShow">
             <el-form-item label="云闪付终端号" prop="terminalId">
-              <el-input v-model="form.terminalId"  maxlength="50" />
+              <el-input v-model="form.terminalId" maxlength="50" />
             </el-form-item>
           </el-col>
-           <el-col :span="12" v-show="isShow">
+          <el-col :span="12" v-show="isShow">
             <el-form-item label="云闪付密钥" prop="yunKey">
-              <el-input v-model="form.yunKey"  maxlength="50" />
+              <el-input v-model="form.yunKey" maxlength="50" />
             </el-form-item>
           </el-col>
-         
-           <el-col :span="12" >
-            <el-form-item label="分账收款商户编号" prop="mnoArray">
-              <el-input v-model="form.mnoArray"  maxlength="50" />
-            </el-form-item>
-          </el-col>
-           <el-col :span="12" >
-            <el-form-item label="分账账号比例" prop="mnoProportion">
-              <el-input v-model="form.mnoProportion"  maxlength="50" />
+          <el-col :span="24" v-show="isShow">
+            <el-form-item label="是否启用支付宝">
+              <el-radio-group v-model="form.isAlipayFlag">
+                <el-radio label="1"> 是 </el-radio>
+                <el-radio label="0"> 否 </el-radio>
+              </el-radio-group>
             </el-form-item>
           </el-col>
-
-         <el-col :span="12" >
-            <el-form-item label="是否分账" >
+          <el-col :span="24" v-show="isShow">
+            <el-form-item label="是否分账">
               <el-radio-group v-model="form.mnoStatus">
                 <el-radio label="1"> 是 </el-radio>
                 <el-radio label="0"> 否 </el-radio>
               </el-radio-group>
             </el-form-item>
           </el-col>
-        <el-col :span="12">
-            <el-form-item label="LNG平台" v-show="showIsLngFlag">
+          <el-col :span="12" v-show="isShow">
+            <el-form-item label="分账收款商户编号" prop="mnoArray">
+              <el-input v-model="form.mnoArray" maxlength="50" />
+            </el-form-item>
+          </el-col>
+          <el-col :span="12" v-show="isShow">
+            <el-form-item label="分账账号比例" prop="mnoProportion">
+              <el-input v-model="form.mnoProportion" maxlength="50" />
+            </el-form-item>
+          </el-col>
+          <el-col :span="12" v-show="showIsLngFlag">
+            <el-form-item label="LNG平台">
               <el-radio-group v-model="form.isLngFlag">
                 <el-radio label="1"> 是 </el-radio>
                 <el-radio label="0"> 否 </el-radio>
               </el-radio-group>
             </el-form-item>
           </el-col>
-          <el-col :span="12">
-            <el-form-item label="部门状态">
-              <el-radio-group v-model="form.status">
-                <el-radio
-                  v-for="dict in statusOptions"
-                  :key="dict.dictValue"
-                  :label="dict.dictValue"
-                >{{dict.dictLabel}}</el-radio>
-              </el-radio-group>
-            </el-form-item>
-          </el-col>
+
         </el-row>
       </el-form>
       <div slot="footer" class="dialog-footer">
@@ -242,7 +324,16 @@
 </template>
 
 <script>
-import { listDept, getDept, delDept, addDept, updateDept, listDeptExcludeChild,listTree,setMnoSplit } from "@/api/system/dept";
+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";
 
@@ -264,27 +355,27 @@ export default {
       // 是否显示弹出层
       open: false,
       isShow: false,
-      showIsLngFlag:false,
+      showIsLngFlag: false,
       splitShow: false,
       // 状态数据字典
       statusOptions: [],
       // 查询参数
       queryParams: {
         deptName: undefined,
-        status: undefined
+        status: undefined,
       },
       // 表单参数
       form: {},
       // 表单校验
       rules: {
         parentId: [
-          { required: true, message: "上级部门不能为空", trigger: "blur" }
+          { required: true, message: "上级部门不能为空", trigger: "blur" },
         ],
         deptName: [
-          { required: true, message: "部门名称不能为空", trigger: "blur" }
+          { required: true, message: "部门名称不能为空", trigger: "blur" },
         ],
         orderNum: [
-          { required: true, message: "显示排序不能为空", trigger: "blur" }
+          { required: true, message: "显示排序不能为空", trigger: "blur" },
         ],
         // singleStationFlag: [
         //   { required: true, message: "站点类型不能为空", trigger: "change" }
@@ -293,27 +384,26 @@ export default {
           {
             type: "email",
             message: "'请输入正确的邮箱地址",
-            trigger: ["blur", "change"]
-          }
+            trigger: ["blur", "change"],
+          },
         ],
         phone: [
           {
             pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
             message: "请输入正确的手机号码",
-            trigger: "blur"
-          }
-        ]
-      }
+            trigger: "blur",
+          },
+        ],
+      },
     };
   },
   created() {
     this.getList();
-    this.getDicts("sys_normal_disable").then(response => {
+    this.getDicts("sys_normal_disable").then((response) => {
       this.statusOptions = response.data;
     });
   },
   methods: {
-
     /** 查询部门列表 */
     getList() {
       this.loading = true;
@@ -321,19 +411,19 @@ export default {
       //   this.deptList = this.handleTree(response.data, "deptId");
       //   this.loading = false;
       // });
-      listDept(this.queryParams).then(response => {
+      listDept(this.queryParams).then((response) => {
         this.deptList = this.handleTree(response.data, "deptId");
         this.loading = false;
       });
     },
     selectDepart(val) {
-      this.form.jiBie=parseInt(val.jiBie)+1;
-      if(val.jiBie==1){
-        this.isShow=true;
-        this.showIsLngFlag=false;
-      }else{
-        this.isShow=false;
-         this.showIsLngFlag=true;
+      this.form.jiBie = parseInt(val.jiBie) + 1;
+      if (val.jiBie == 1) {
+        this.isShow = true;
+        this.showIsLngFlag = false;
+      } else {
+        this.isShow = false;
+        this.showIsLngFlag = true;
       }
     },
     /** 转换部门数据结构 */
@@ -344,7 +434,7 @@ export default {
       return {
         id: node.deptId,
         label: node.deptName,
-        children: node.children
+        children: node.children,
       };
     },
     // 字典状态字典翻译
@@ -354,7 +444,7 @@ export default {
     // 取消按钮
     cancel() {
       this.open = false;
-      this.isShow=false;
+      this.isShow = false;
       this.reset();
     },
     // 表单重置
@@ -367,7 +457,7 @@ export default {
         leader: undefined,
         phone: undefined,
         email: undefined,
-        status: "0"
+        status: "0",
       };
       this.resetForm("form");
     },
@@ -385,75 +475,76 @@ export default {
       this.reset();
       if (row != undefined) {
         this.form.parentId = row.deptId;
-       //判断级别 1是集团,如果是集团展示的是油站的所有数据
-        if(row.jiBie==1){
-          this.form.jiBie=parseInt(row.jiBie)+1;
-          this.isShow=true;
-          this.isLngFlag =false;
-        }else{
-          this.isLngFlag =true;
-          this.isShow=false;
+        //判断级别 1是集团,如果是集团展示的是油站的所有数据
+        if (row.jiBie == 1) {
+          this.form.jiBie = parseInt(row.jiBie) + 1;
+          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");
+      listDept().then((response) => {
+        this.deptOptions = this.handleTree(response.data, "deptId");
       });
     },
     /** 修改按钮操作 */
     handleUpdate(row) {
       this.reset();
-      getDept(row.deptId).then(response => {
+      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");
+      listDeptExcludeChild(row.deptId).then((response) => {
+        this.deptOptions = this.handleTree(response.data, "deptId");
       });
       //判断级别 1是集团,如果是集团展示的是油站的所有数据
-      if(row.jiBie==2){
-        this.isShow=true;
+      if (row.jiBie == 2) {
+        this.isShow = true;
         this.showIsLngFlag = false;
-      }else{
-        this.isShow=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("分账设置成功");
+        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 => {
+    submitForm: function () {
+      this.$refs["form"].validate((valid) => {
         if (valid) {
           if (this.form.deptId != undefined) {
-            updateDept(this.form).then(response => {
+            updateDept(this.form).then((response) => {
               //window.location=response.message;
               this.msgSuccess("修改成功");
               this.open = false;
-              this.isShow=false;
+              this.isShow = false;
               this.getList();
-
             });
           } else {
-            addDept(this.form).then(response => {
+            addDept(this.form).then((response) => {
               this.msgSuccess("新增成功");
               this.open = false;
-              this.isShow=false;
+              this.isShow = false;
               this.getList();
             });
           }
@@ -462,17 +553,23 @@ export default {
     },
     /** 删除按钮操作 */
     handleDelete(row) {
-      this.$confirm('是否确认删除名称为"' + row.deptName + '"的数据项?', "警告", {
+      this.$confirm(
+        '是否确认删除名称为"' + row.deptName + '"的数据项?',
+        "警告",
+        {
           confirmButtonText: "确定",
           cancelButtonText: "取消",
-          type: "warning"
-        }).then(function() {
+          type: "warning",
+        }
+      )
+        .then(function () {
           return delDept(row.deptId);
-        }).then(() => {
+        })
+        .then(() => {
           this.getList();
           this.msgSuccess("删除成功");
-        })
-    }
-  }
+        });
+    },
+  },
 };
 </script>