Browse Source

admin前端bug提交 8.25 zyp

阿拉蕾 1 năm trước cách đây
mục cha
commit
706eeb3702

+ 53 - 0
src/api/qw/account.js

@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询企微功能账号管理列表
+export function listAccount(query) {
+  return request({
+    url: '/qw/account/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询企微功能账号管理详细
+export function getAccount(id) {
+  return request({
+    url: '/qw/account/' + id,
+    method: 'get'
+  })
+}
+
+// 新增企微功能账号管理
+export function addAccount(data) {
+  return request({
+    url: '/qw/account',
+    method: 'post',
+    data: data
+  })
+}
+
+// 审核企微功能账号管理
+export function auditAccount(data) {
+  return request({
+    url: '/qw/account',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除企微功能账号管理
+export function delAccount(id) {
+  return request({
+    url: '/qw/account/' + id,
+    method: 'delete'
+  })
+}
+
+// 导出企微功能账号管理
+export function exportAccount(query) {
+  return request({
+    url: '/qw/account/export',
+    method: 'get',
+    params: query
+  })
+}

+ 16 - 0
src/api/store/express.js

@@ -17,6 +17,13 @@ export function getExpress(id) {
   })
 }
 
+export function getExpressList() {
+  return request({
+    url: '/store/express/getExpressList',
+    method: 'get'
+  })
+}
+
 // 新增快递公司
 export function addExpress(data) {
   return request({
@@ -50,4 +57,13 @@ export function exportExpress(query) {
     method: 'get',
     params: query
   })
+}
+
+//分配快递公司
+export function allotExpress(data,omsCode) {
+  return request({
+    url: '/store/express/allotExpress/'+omsCode,
+    method: 'post',
+    data: data
+  })
 }

+ 16 - 1
src/views/company/company/index.vue

@@ -185,6 +185,16 @@
         <el-form-item label="坐席数量" prop="voiceCallerNumber">
           <el-input-number v-model="form.voiceCallerNumber"  :min="0" :max="10000"  ></el-input-number>
         </el-form-item>
+        <el-form-item label="选择快递" prop="omsCode">
+          <el-select clearable v-model="form.omsCode"  placeholder="请选择快递名称"  size="small">
+              <el-option
+                v-for="item in expressOptions"
+                :key="item.omsCode"
+                :label="item.name"
+                :value="item.omsCode"
+              />
+          </el-select>
+        </el-form-item>
         <el-form-item  label="管理员帐号" prop="userName" v-if="form.companyId==null">
           <el-input v-model="form.userName" placeholder="请输入管理员帐号" />
         </el-form-item>
@@ -268,7 +278,7 @@
 
 <script>
 import {recharge,deduct, resetPwd,listCompany, getCompany, delCompany, addCompany, updateCompany, exportCompany } from "@/api/company/company";
-
+import { getExpressList } from "@/api/store/express";
 import {getVoiceApiList } from "@/api/company/companyVoiceApi";
 
 export default {
@@ -308,6 +318,7 @@ export default {
       typeOptions:[],
       voiceApis:[],
       statusOptions:[],
+      expressOptions:[],
       // 遮罩层
       loading: true,
       // 选中数组
@@ -387,6 +398,10 @@ export default {
     getVoiceApiList().then((response) => {
       this.voiceApis = response.data;
     });
+    getExpressList().then(response => {
+      this.expressOptions = response.data;
+       
+    });
     this.getList();
   },
   methods: {

+ 0 - 0
src/views/qw/components


+ 312 - 0
src/views/qw/qwAccounts/index.vue

@@ -0,0 +1,312 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="公司名" prop="companyId">
+          <el-select filterable style="width: 220px" v-model="queryParams.companyId" placeholder="请选择公司名" clearable size="small">
+                <el-option
+                  v-for="item in companys"
+                  :key="item.companyId"
+                  :label="item.companyName"
+                  :value="item.companyId"
+                />
+          </el-select>
+        </el-form-item>          
+      <el-form-item label="企微账号" prop="userName">
+        <el-input
+          v-model="queryParams.userName"
+          placeholder="请输入企微账号"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="手机号码" prop="phone">
+        <el-input
+          v-model="queryParams.phone"
+          placeholder="请输入手机号码"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </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="danger"
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['qw:account:remove']"
+        >删除</el-button>
+      </el-col>
+    </el-row>
+    <el-tabs type="card" v-model="queryParams.isAudit" @tab-click="handleClick">
+      <el-tab-pane label="待审核" name="0"></el-tab-pane>
+      <el-tab-pane label="已通过" name="1"></el-tab-pane>
+      <el-tab-pane label="已驳回" name="-1"></el-tab-pane>
+    </el-tabs>
+    <el-table v-loading="loading" :data="accountList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="序号"  width="55" type="index" align="center" />
+      <el-table-column label="id" align="center" prop="id" />
+      <el-table-column label="企微账号" align="center" prop="userName" />
+      <el-table-column label="姓名" align="center" prop="nickName" />
+      <el-table-column label="手机号码" align="center" prop="phone" />
+      <el-table-column label="归属公司" align="center" prop="companyName" />
+      <el-table-column label="归属员工" align="center" prop="companyUserName" />
+      <el-table-column width="500" label="关联设备id" align="center" prop="deviceId"  v-if="queryParams.isAudit == 1"/>
+      <el-table-column label="备注" align="center" prop="remark" />
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            v-if="scope.row.isAudit==0"
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleAudit(scope.row)"
+            v-hasPermi="['qw:account:audit']"
+          >审核</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['qw:account:remove']"
+          >删除</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+    
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <el-dialog :title="title" :visible.sync="open" width="600px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="120px">
+        <el-form-item label="公司" prop="companyName">
+          <el-input v-model="form.companyName" disabled   />
+        </el-form-item>
+        <el-form-item label="归属员工" prop="companyUserName">
+          <el-input v-model="form.companyUserName" disabled  />
+        </el-form-item>
+        <el-form-item label="状态">
+          <el-radio-group v-model="form.isAudit">
+            <el-radio label="1">通过</el-radio>
+            <el-radio label="-1">驳回</el-radio>
+          </el-radio-group>
+        </el-form-item>
+        <el-form-item label="备注" prop="remark">
+          <el-input v-model="form.remark"  type="textarea" :row="5"  />
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listAccount, getAccount, delAccount, addAccount, auditAccount, exportAccount } from "@/api/qw/account";
+import { getCompanyList } from "@/api/company/company";
+
+export default {
+  name: "Account",
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      companys:[],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      activeName:"1",
+      // 企微功能账号管理表格数据
+      accountList: [],
+      isAuditOptions:[],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        userName: null,
+        passWord: null,
+        phone: null,
+        email: null,
+        status: null,
+        realName: null,
+        nickName: null,
+        companyId: null,
+        deviceId: null,
+        deptId: null,
+        companyUserId: null,
+        isAudit: 0,
+      },
+      // 表单参数
+      form: {},
+      auditForm:{
+        id:null,
+        isAudit: null,
+        deviceId: null,
+      },
+      // 表单校验
+      rules: {
+        deviceId: [
+          { required: true, message: "关联设备id不能为空", trigger: "blur" }
+        ],
+        isAudit: [
+          { required: true, message: "是否审核不能为空", trigger: "blur" }
+        ],
+      }
+    };
+  },
+  created() {
+    this.getList();
+    getCompanyList().then(response => {
+      this.companys = response.data;
+    });
+    this.getDicts("common_audit").then((response) => {
+      this.isAuditOptions = response.data;
+    });
+  },
+  methods: {
+    /** 查询企微功能账号管理列表 */
+    getList() {
+      this.loading = true;
+      listAccount(this.queryParams).then(response => {
+        this.accountList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        userName: null,
+        passWord: null,
+        phone: null,
+        email: null,
+        createTime: null,
+
+        remark: null,
+        realName: null,
+        nickName: null,
+        companyId: null,
+        deviceId: null,
+        deptId: null,
+        companyUserId: null,
+        isAudit: null,
+        updateTime: null
+      };
+      this.resetForm("form");
+    },
+    handleClick(tab, event) {
+      this.queryParams.isAudit=tab.name;
+      this.getList();
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length!==1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加企微功能账号管理";
+    },
+    
+    handleAudit(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getAccount(id).then(response => {
+        this.form = response.data;
+        this.form.companyName = row.companyName;
+        this.form.companyUserName = row.companyUserName;
+        this.form.isAudit="1"
+        this.open = true;
+        this.title = "账号审核";
+      });
+    },
+   /** 提交按钮 */
+   submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          auditAccount(this.form).then(response => {
+            if (response.code === 200) {
+              this.msgSuccess("审核成功");
+              this.open = false;
+              this.getList();
+            }
+          });
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$confirm('是否确认删除企微功能账号管理编号为"' + ids + '"的数据项?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          return delAccount(ids);
+        }).then(() => {
+          this.getList();
+          this.msgSuccess("删除成功");
+        }).catch(function() {});
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      const queryParams = this.queryParams;
+      this.$confirm('是否确认导出所有企微功能账号管理数据项?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          return exportAccount(queryParams);
+        }).then(response => {
+          this.download(response.msg);
+        }).catch(function() {});
+    }
+  }
+};
+</script>

+ 98 - 4
src/views/store/express/index.vue

@@ -58,6 +58,13 @@
       <el-table-column label="排序" align="center" prop="sort" />
       <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
         <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleAllot(scope.row)"
+            v-hasPermi="['store:express:allot']"
+          >分配公司</el-button>
           <el-button
             size="mini"
             type="text"
@@ -75,7 +82,7 @@
         </template>
       </el-table-column>
     </el-table>
-    
+
     <pagination
       v-show="total>0"
       :total="total"
@@ -105,20 +112,44 @@
         <el-button @click="cancel">取 消</el-button>
       </div>
     </el-dialog>
+
+    <el-dialog :title="allot.title" :visible.sync="allot.open" width="700px" append-to-body>
+      <el-transfer
+        filterable
+        :filter-method="filterMethod"
+        filter-placeholder="请输入公司名称"
+        v-model="value"
+        :data="allCompanies">
+      </el-transfer>
+    <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="handleAllotCompany">分 配</el-button>
+        <el-button @click="cancel1">取 消</el-button>
+    </div>
+    </el-dialog>
   </div>
 </template>
 
 <script>
-import { listExpress, getExpress, delExpress, addExpress, updateExpress, exportExpress } from "@/api/store/express";
-
+import { listExpress, getExpress, delExpress, addExpress, updateExpress, exportExpress ,allotExpress ,getExpressList} from "@/api/store/express";
+import { getCompanyList} from "@/api/company/company";
 export default {
   name: "Express",
   data() {
     return {
+      formId:null,
+        value: [],
+        filterMethod(query, item) {
+          return item.label.indexOf(query) > -1;
+        },
       // 遮罩层
       loading: true,
       // 选中数组
       ids: [],
+      allCompanies:undefined,
+      allot:{
+        title:"分配公司",
+        open:false,
+      },
       // 非单个禁用
       single: true,
       // 非多个禁用
@@ -167,10 +198,35 @@ export default {
   },
   created() {
     this.getList();
+
   },
+
   methods: {
+    handleAllotCompany(){
+      console.log(this.value);
+      allotExpress(this.value,this.formId).then(response => {
+      if (response.code === 200) {
+      this.msgSuccess("修改成功");
+      this.allot.open = false;
+      this.getList();
+      }
+      });
+    },
+
     /** 查询快递公司列表 */
     getList() {
+      getCompanyList().then(response => {
+      let data = [];
+      response.data.forEach((item,index) => {
+        data.push({
+          key: item.companyId,
+          label:item.companyName,
+        })
+      });
+      this.allCompanies = data;
+      console.log("aaaa",data);
+    });
+
       this.loading = true;
       listExpress(this.queryParams).then(response => {
         this.expressList = response.rows;
@@ -183,6 +239,9 @@ export default {
       this.open = false;
       this.reset();
     },
+    cancel1() {
+      this.allot.open = false;
+    },
     // 表单重置
     reset() {
       this.form = {
@@ -220,6 +279,10 @@ export default {
       this.open = true;
       this.title = "添加快递公司";
     },
+    handleAllot(row){
+      this.allot.open = true;
+      this.formId = row.omsCode;
+    },
     /** 修改按钮操作 */
     handleUpdate(row) {
       this.reset();
@@ -281,6 +344,37 @@ export default {
           this.download(response.msg);
         }).catch(function() {});
     }
-  }
+  },
+
 };
 </script>
+
+<style>
+.container {
+  display: flex;
+  justify-content: space-between;
+  margin-bottom: 20px;
+}
+
+.box {
+  width: 300px;
+}
+
+.el-scrollbar {
+  max-height: 200px;
+  overflow-y: auto; /* 添加滚动条 */
+}
+
+/* 新增样式 */
+.container {
+  display: flex;
+  justify-content: center;
+  align-items: flex-start;
+}
+
+.box {
+  margin: 0 10px;
+}
+
+
+</style>

+ 5 - 1
src/views/store/storeCoupon/index.vue

@@ -41,6 +41,9 @@
           </el-select>
         </el-form-item>
 
+        <el-form-item label="创建时间">
+            <el-date-picker v-model="dateRange" size="small" style="width: 220px" value-format="yyyy-MM-dd" type="daterange" range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期"></el-date-picker>
+        </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>
@@ -239,6 +242,7 @@ export default {
         title:"批量发布",
         open:false,
       },
+      dateRange:[],
       statusOptions:[],
       // 遮罩层
       loading: true,
@@ -350,7 +354,7 @@ export default {
     /** 查询优惠券列表 */
     getList() {
       this.loading = true;
-      listStoreCoupon(this.queryParams).then(response => {
+      listStoreCoupon(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
         this.storeCouponList = response.rows;
         this.total = response.total;
         this.loading = false;

+ 6 - 1
src/views/store/storeCouponIssue/index.vue

@@ -29,6 +29,9 @@
               />
         </el-select>
       </el-form-item>
+      <el-form-item label="发布时间">
+            <el-date-picker v-model="dateRange" size="small" style="width: 220px" value-format="yyyy-MM-dd" type="daterange" range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期"></el-date-picker>
+        </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>
@@ -73,6 +76,7 @@
               <el-tag prop="status" v-for="(item, index) in statusOptions"    v-if="scope.row.status==item.dictValue">{{item.dictLabel}}</el-tag>
           </template>
       </el-table-column>
+      <el-table-column label="发布时间" align="center" prop="createTime" />
       <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
         <template slot-scope="scope">
           <el-button
@@ -127,6 +131,7 @@ export default {
     return {
       couponTypeOptions:[],
       statusOptions:[],
+      dateRange:[],
       // 遮罩层
       loading: true,
       // 选中数组
@@ -192,7 +197,7 @@ export default {
     /** 查询优惠券领取列表 */
     getList() {
       this.loading = true;
-      listStoreCouponIssue(this.queryParams).then(response => {
+      listStoreCouponIssue(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
         this.storeCouponIssueList = response.rows;
         this.total = response.total;
         this.loading = false;

+ 5 - 1
src/views/store/storeCouponUser/index.vue

@@ -21,6 +21,9 @@
               />
         </el-select>
       </el-form-item>
+      <el-form-item label="领取时间">
+            <el-date-picker v-model="dateRange" size="small" style="width: 220px" value-format="yyyy-MM-dd" type="daterange" range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期"></el-date-picker>
+      </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>
@@ -93,6 +96,7 @@ export default {
       loading: true,
       // 选中数组
       ids: [],
+      dateRange:[],
       // 非单个禁用
       single: true,
       // 非多个禁用
@@ -170,7 +174,7 @@ export default {
     /** 查询优惠券发放记录列表 */
     getList() {
       this.loading = true;
-      listStoreCouponUser(this.queryParams).then(response => {
+      listStoreCouponUser(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
         this.storeCouponUserList = response.rows;
         this.total = response.total;
         this.loading = false;