wansfa 1 year ago
parent
commit
8e04c90fe3

+ 53 - 0
src/api/company/schedule.js

@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询中医档期管理列表
+export function listSchedule(query) {
+  return request({
+    url: '/company/schedule/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询中医档期管理详细
+export function getSchedule(id) {
+  return request({
+    url: '/company/schedule/' + id,
+    method: 'get'
+  })
+}
+
+// 新增中医档期管理
+export function addSchedule(data) {
+  return request({
+    url: '/company/schedule',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改中医档期管理
+export function updateSchedule(data) {
+  return request({
+    url: '/company/schedule',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除中医档期管理
+export function delSchedule(id) {
+  return request({
+    url: '/company/schedule/' + id,
+    method: 'delete'
+  })
+}
+
+// 导出中医档期管理
+export function exportSchedule(query) {
+  return request({
+    url: '/company/schedule/export',
+    method: 'get',
+    params: query
+  })
+}

+ 63 - 0
src/api/company/scheduleReport.js

@@ -0,0 +1,63 @@
+import request from '@/utils/request'
+
+// 查询中医档期业绩报表列表
+export function listTcmScheduleReport(query) {
+  return request({
+    url: '/company/tcmScheduleReport/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询中医档期业绩报表详细
+export function getTcmScheduleReport(id) {
+  return request({
+    url: '/company/tcmScheduleReport/' + id,
+    method: 'get'
+  })
+}
+
+// 新增中医档期业绩报表
+export function addTcmScheduleReport(data) {
+  return request({
+    url: '/company/tcmScheduleReport',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改中医档期业绩报表
+export function updateTcmScheduleReport(data) {
+  return request({
+    url: '/company/tcmScheduleReport',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除中医档期业绩报表
+export function delTcmScheduleReport(id) {
+  return request({
+    url: '/company/tcmScheduleReport/' + id,
+    method: 'delete'
+  })
+}
+
+// 导出中医档期业绩报表
+export function exportTcmScheduleReport(query) {
+  return request({
+    url: '/company/tcmScheduleReport/export',
+    method: 'get',
+    params: query
+  })
+}
+
+
+// 查询中医档期管理列表
+export function listSchedule(query) {
+  return request({
+    url: '/company/tcmScheduleReport/getScheduleList',
+    method: 'get',
+    params: query
+  })
+}

+ 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
+  })
 }

+ 11 - 1
src/api/store/storeOrder.js

@@ -11,7 +11,7 @@ export function listStoreOrder(query) {
 // 查询推广订单列表
 export function listPromotionOrder(query) {
   return request({
-    url: '/store/storeOrder/Plist',
+    url: '/store/storeOrder/promotionList',
     method: 'get',
     params: query
   })
@@ -24,6 +24,7 @@ export function listHealthStoreOrder(query) {
     params: query
   })
 }
+
 export function getCustomerOrderList(query) {
   return request({
     url: '/store/storeOrder/getCustomerOrderList',
@@ -105,6 +106,15 @@ export function exportHealthStoreOrder(query) {
   })
 }
 
+// 导出订单
+export function exportPromotionOrder(query) {
+  return request({
+    url: '/store/storeOrder/promotionExport',
+    method: 'get',
+    params: query
+  })
+}
+
 // 导出付尾款订单
 export function exportStorePayRemainOrder(query) {
   return request({

+ 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: {

+ 305 - 0
src/views/company/schedule/config.vue

@@ -0,0 +1,305 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="档期名称" prop="name">
+        <el-input
+          v-model="queryParams.name"
+          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 label="创建时间" prop="createTime">
+        <el-date-picker clearable size="small" style="width: 200px"
+          v-model="queryParams.createTime"
+          type="date"
+          value-format="yyyy-MM-dd"
+          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>
+      </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"
+          v-hasPermi="['company:schedule:add']"
+        >新增</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['company:schedule:edit']"
+        >修改</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['company:schedule:remove']"
+        >删除</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-hasPermi="['company:schedule:export']"
+        >导出</el-button>
+      </el-col>
+	  <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="scheduleList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="id" align="center" prop="id" />
+      <el-table-column label="档期名称" align="center" prop="name" />
+      <el-table-column label="档期状态" align="center" prop="status" :formatter="statusFormat" />
+
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['company:schedule:edit']"
+          >修改</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['company:schedule:remove']"
+          >删除</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+    
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改中医档期管理对话框 -->
+    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="档期名称" prop="name">
+          <el-input v-model="form.name" placeholder="请输入档期名称" />
+        </el-form-item>
+        <el-form-item label="档期状态">
+          <el-radio-group v-model="form.status">
+            <el-radio
+              v-for="dict in statusOptions"
+              :key="dict.dictValue"
+              :label="parseInt(dict.dictValue)"
+            >{{dict.dictLabel}}</el-radio>
+          </el-radio-group>
+        </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 { listSchedule, getSchedule, delSchedule, addSchedule, updateSchedule, exportSchedule } from "@/api/company/schedule";
+
+export default {
+  name: "Schedule",
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 中医档期管理表格数据
+      scheduleList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 档期状态字典
+      statusOptions: [],
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        name: null,
+        status: null,
+        createTime: null,
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        name: [
+          { required: true, message: "档期名称不能为空", trigger: "blur" }
+        ],
+      }
+    };
+  },
+  created() {
+    this.getList();
+    this.getDicts("company_status").then(response => {
+      this.statusOptions = response.data;
+    });
+  },
+  methods: {
+    /** 查询中医档期管理列表 */
+    getList() {
+      this.loading = true;
+      listSchedule(this.queryParams).then(response => {
+        this.scheduleList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 档期状态字典翻译
+    statusFormat(row, column) {
+      return this.selectDictLabel(this.statusOptions, row.status);
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        name: null,
+        createUserId: null,
+        updateUserId: null,
+        status: 0,
+        createTime: null,
+        updateTime: null
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length!==1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加中医档期";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getSchedule(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改中医档期";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updateSchedule(this.form).then(response => {
+              if (response.code === 200) {
+                this.msgSuccess("修改成功");
+                this.open = false;
+                this.getList();
+              }
+            });
+          } else {
+            addSchedule(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 delSchedule(ids);
+        }).then(() => {
+          this.getList();
+          this.msgSuccess("删除成功");
+        }).catch(function() {});
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      const queryParams = this.queryParams;
+      this.$confirm('是否确认导出所有中医档期管理数据项?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          return exportSchedule(queryParams);
+        }).then(response => {
+          this.download(response.msg);
+        }).catch(function() {});
+    }
+  }
+};
+</script>

+ 697 - 0
src/views/company/schedule/list.vue

@@ -0,0 +1,697 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
+       <el-form-item label="所属部门" prop="deptId">
+          <treeselect style="width:205.4px" v-model="queryParams.deptId" :options="deptOptions" :show-count="true" placeholder="请选择所属部门" />
+      </el-form-item>
+       <el-form-item label="员工姓名" prop="userNickName">
+        <el-input
+          v-model="queryParams.userNickName"
+          placeholder="请输入员工姓名"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+
+      <el-form-item label="所属档期" prop="scheduleId">
+            <el-select  style="width:205.4px" v-model="queryParams.scheduleId" placeholder="请选择档期" clearable size="small" >
+                  <el-option
+                      v-for="item in scheduleList"
+                      :key="item.id"
+                      :label="item.name"
+                      :value="item.id"
+                    />
+            </el-select>
+        </el-form-item>
+
+       <!-- <el-form-item label="档期名称" prop="scheduleName">
+        <el-input
+          v-model="queryParams.name"
+          placeholder="请输入档期名称"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item> -->
+
+    <!-- <el-form-item label="档期状态" prop="scheduleStatus">
+        <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 label="创建时间" prop="createTime">
+            <el-date-picker
+              style="width:205.4px"
+              clearable size="small"
+              v-model="dateRange"
+              type="daterange"
+              value-format="yyyy-MM-dd"
+              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>
+      </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"
+          v-hasPermi="['company:tcmScheduleReport:add']"
+        >新增</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['company:tcmScheduleReport:edit']"
+        >修改</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['company:tcmScheduleReport:remove']"
+        >删除</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-hasPermi="['company:tcmScheduleReport:export']"
+        >导出</el-button>
+      </el-col>
+	  <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="tcmScheduleReportList" @selection-change="handleSelectionChange">
+       <!-- <el-table-column  type="expand" >
+            <template slot-scope="scope">
+                <el-table border :data="[scope.row]">
+                    <el-table-column prop="round1Money" label="一轮业绩" ></el-table-column>
+                    <el-table-column prop="round1Order" label="一轮单数"></el-table-column>
+                    <el-table-column prop="count" label="一轮转化率">
+                        <template slot-scope="scope1">
+                             {{(scope1.row.onlineRate*100).toFixed(2)+"%"}}
+                        </template>
+                    </el-table-column>
+                    <el-table-column prop="round2Unit" label="一轮客单"></el-table-column>
+                </el-table>
+            </template>
+      </el-table-column> -->
+
+      <el-table-column label="id"  width="50" align="center" prop="id" />
+      <el-table-column label="档期" align="center" prop="scheduleName" />
+      <el-table-column label="公司名称" align="center" prop="companyName" />
+      <el-table-column label="所在部门" align="center" prop="deptName" />
+      <el-table-column label="员工姓名" align="center" prop="userNickName" />
+
+      <el-table-column label="总进线"  width="60"  align="center" prop="totalNum" />
+      <el-table-column label="注册数"  width="60"  align="center" prop="registerNum" />
+      <el-table-column label="上线数"  width="60"  align="center" prop="onlineNum" />
+      <el-table-column label="完课数"  width="60"  align="center" prop="finishNum" />
+      <el-table-column label="注册率"  width="70"  align="center" prop="registerRate"   >
+            <template slot-scope="scope">
+              {{(scope.row.registerRate*100).toFixed(2)+"%"}}
+            </template>
+     </el-table-column>
+     <el-table-column  label="上线率" width="70" align="center" prop="onlineRate"   >
+            <template slot-scope="scope">
+              {{(scope.row.onlineRate*100).toFixed(2)+"%"}}
+            </template>
+    </el-table-column>
+     <el-table-column  label="完课率" width="70" align="center" prop="finishRate"   >
+           <template slot-scope="scope">
+              {{(scope.row.finishRate*100).toFixed(2)+"%"}}
+           </template>
+    </el-table-column>
+     <el-table-column  label="累计总业绩" width="90" align="center" prop="totalMoney"   >
+            <template slot-scope="scope">
+               {{!scope.row.totalMoney?0:(scope.row.totalMoney).toFixed(2)}}
+            </template>
+    </el-table-column>
+     <el-table-column  label="累计总单" width="80" align="center" prop="totalOrder"   >
+            <template slot-scope="scope">
+              {{!scope.row.totalOrder?0:scope.row.totalOrder}}
+            </template>
+    </el-table-column>
+   <el-table-column  label="目标业绩"  width="80"  align="center" prop="targetMoney"   >
+          <template slot-scope="scope">
+            {{!scope.row.targetMoney?0:(scope.row.targetMoney).toFixed(2)}}
+          </template>
+    </el-table-column>
+    <el-table-column  label="目标完成率"  width="90" align="center" prop="targetRate"   >
+           <template slot-scope="scope">
+                {{!scope.row.targetRate?0:(scope.row.targetRate*100).toFixed(2)+"%" }}
+           </template>
+    </el-table-column>
+    <el-table-column label="创建时间" align="center" prop="createTime" width="100">
+            <template slot-scope="scope">
+               <span>{{ parseTime(scope.row.createTime) }}</span>
+            </template>
+      </el-table-column>
+
+       <el-table-column  label="一轮业绩"  width="72"  align="center" prop="round1Money"   >
+           <template slot-scope="scope">
+                {{!scope.row.round1Money?0:(scope.row.round1Money).toFixed(2)}}
+           </template>
+      </el-table-column>
+      <el-table-column label="一轮单数"  width="72" align="center" prop="round1Order" ></el-table-column>
+      <el-table-column label="一轮转化率" width="85"  align="center" prop="count">
+            <template slot-scope="scope1">
+                {{(scope1.row.onlineRate*100).toFixed(2)+"%"}}
+            </template>
+      </el-table-column>
+      <el-table-column label="一轮客单"  width="72"  align="center" prop="round1Unit">
+             <template slot-scope="scope1">
+                {{(scope1.row.round2Unit).toFixed(2)}}
+             </template>
+      </el-table-column>
+
+      <el-table-column  label="二轮业绩"  width="72"  align="center" prop="round2Money"   >
+           <template slot-scope="scope">
+                {{!scope.row.round2Money?0:(scope.row.round2Money).toFixed(2)}}
+           </template>
+      </el-table-column>
+      <el-table-column label="二轮单数"  width="72" align="center" prop="round2Order" ></el-table-column>
+      <el-table-column label="二轮转化率" width="85"  align="center" prop="round2Rate">
+            <template slot-scope="scope1">
+                {{(scope1.row.round2Rate*100).toFixed(2)+"%"}}
+            </template>
+      </el-table-column>
+      <el-table-column label="二轮客单"  width="72"  align="center" prop="round2Unit">
+             <template slot-scope="scope1">
+                {{(scope1.row.round2Unit).toFixed(2)}}
+             </template>
+      </el-table-column>
+
+
+      <el-table-column  label="三轮业绩"  width="72"  align="center" prop="round3Money"   >
+           <template slot-scope="scope">
+                {{!scope.row.round3Money?0:(scope.row.round3Money).toFixed(2)}}
+           </template>
+      </el-table-column>
+      <el-table-column label="三轮单数"  width="72" align="center" prop="round3Order" ></el-table-column>
+      <el-table-column label="三轮转化率" width="85"  align="center" prop="round3Rate">
+            <template slot-scope="scope1">
+                {{(scope1.row.round3Rate*100).toFixed(2)+"%"}}
+            </template>
+      </el-table-column>
+      <el-table-column label="三轮客单"  width="72"  align="center" prop="round3Unit">
+             <template slot-scope="scope1">
+                {{(scope1.row.round3Unit).toFixed(2)}}
+             </template>
+      </el-table-column>
+   
+      <el-table-column  label="四轮业绩"  width="72"  align="center" prop="round4Money"   >
+           <template slot-scope="scope">
+                {{!scope.row.round4Money?0:(scope.row.round4Money).toFixed(2)}}
+           </template>
+      </el-table-column>
+      <el-table-column label="四轮单数"  width="72" align="center" prop="round4Order" ></el-table-column>
+      <el-table-column label="四轮转化率" width="85"  align="center" prop="round4Rate">
+            <template slot-scope="scope1">
+                {{(scope1.row.round4Rate*100).toFixed(2)+"%"}}
+            </template>
+      </el-table-column>
+      <el-table-column label="四轮客单"  width="72"  align="center" prop="round4Unit">
+             <template slot-scope="scope1">
+                {{(scope1.row.round4Unit).toFixed(2)}}
+             </template>
+      </el-table-column>
+
+      <el-table-column  label="五轮业绩"  width="72"  align="center" prop="round5Money"   >
+           <template slot-scope="scope">
+                {{!scope.row.round5Money?0:(scope.row.round5Money).toFixed(2)}}
+           </template>
+      </el-table-column>
+      <el-table-column label="五轮单数"  width="72" align="center" prop="round5Order" ></el-table-column>
+      <el-table-column label="五轮转化率" width="85"  align="center" prop="round5Rate">
+            <template slot-scope="scope1">
+                {{(scope1.row.round5Rate*100).toFixed(2)+"%"}}
+            </template>
+      </el-table-column>
+      <el-table-column label="五轮客单"  width="72"  align="center" prop="round5Unit">
+             <template slot-scope="scope1">
+                {{(scope1.row.round5Unit).toFixed(2)}}
+             </template>
+      </el-table-column>
+      
+      <el-table-column  label="六轮业绩"  width="72"  align="center" prop="round6Money"   >
+           <template slot-scope="scope">
+                {{!scope.row.round6Money?0:(scope.row.round6Money).toFixed(2)}}
+           </template>
+      </el-table-column>
+      <el-table-column label="六轮单数"  width="72" align="center" prop="round6Order" ></el-table-column>
+      <el-table-column label="六轮转化率" width="85"  align="center" prop="round6Rate">
+            <template slot-scope="scope1">
+                {{(scope1.row.round6Rate*100).toFixed(2)+"%"}}
+            </template>
+      </el-table-column>
+      <el-table-column label="六轮客单"  width="72"  align="center" prop="round6Unit">
+             <template slot-scope="scope1">
+                {{(scope1.row.round6Unit).toFixed(2)}}
+             </template>
+      </el-table-column>
+
+      <el-table-column  label="七轮业绩"  width="72"  align="center" prop="round7Money"   >
+           <template slot-scope="scope">
+                {{!scope.row.round7Money?0:(scope.row.round7Money).toFixed(2)}}
+           </template>
+      </el-table-column>
+      <el-table-column label="七轮单数"  width="72" align="center" prop="round7Order" ></el-table-column>
+      <el-table-column label="七轮转化率" width="85"  align="center" prop="round7Rate">
+            <template slot-scope="scope1">
+                {{(scope1.row.round7Rate*100).toFixed(2)+"%"}}
+            </template>
+      </el-table-column>
+      <el-table-column label="七轮客单"  width="72"  align="center" prop="round7Unit">
+             <template slot-scope="scope1">
+                {{(scope1.row.round7Unit).toFixed(2)}}
+             </template>
+      </el-table-column>
+
+      <el-table-column  label="八轮业绩"  width="72"  align="center" prop="round8Money"   >
+           <template slot-scope="scope">
+                {{!scope.row.round8Money?0:(scope.row.round8Money).toFixed(2)}}
+           </template>
+      </el-table-column>
+      <el-table-column label="八轮单数"  width="72" align="center" prop="round8Order" ></el-table-column>
+      <el-table-column label="八轮转化率" width="85"  align="center" prop="round8Rate">
+            <template slot-scope="scope1">
+                {{(scope1.row.round8Rate*100).toFixed(2)+"%"}}
+            </template>
+      </el-table-column>
+      <el-table-column label="八轮客单"  width="72"  align="center" prop="round8Unit">
+             <template slot-scope="scope1">
+                {{(scope1.row.round8Unit).toFixed(2)}}
+             </template>
+      </el-table-column>
+
+      <el-table-column  label="九轮业绩"  width="72"  align="center" prop="round9Money"   >
+            <template slot-scope="scope">
+                    {{!scope.row.round9Money?0:(scope.row.round9Money).toFixed(2)}}
+            </template>
+      </el-table-column>
+      <el-table-column label="九轮单数"  width="72" align="center" prop="round9Order" ></el-table-column>
+      <el-table-column label="九轮转化率" width="85"  align="center" prop="round9Rate">
+            <template slot-scope="scope1">
+                {{(scope1.row.round9Rate*100).toFixed(2)+"%"}}
+            </template>
+      </el-table-column>
+      <el-table-column label="九轮客单"  width="72"  align="center" prop="round9Unit">
+             <template slot-scope="scope1">
+                {{(scope1.row.round9Unit).toFixed(2)}}
+             </template>
+      </el-table-column>
+
+
+        <el-table-column  fixed="right" label="操作" width="150px" align="center" class-name="small-padding fixed-width">
+            <template slot-scope="scope">
+            <el-button size="mini" type="text" @click="handleDetails(scope.row)">查看</el-button>
+            <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)" v-hasPermi="['company:tcmScheduleReport:edit']">修改</el-button>
+            <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)" v-hasPermi="['company:tcmScheduleReport:remove']">删除</el-button>
+            </template>
+        </el-table-column>
+
+    </el-table>
+    
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改中医档期业绩报表对话框 -->
+    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+
+       <el-form-item label="所属档期" prop="scheduleId">
+            <el-select style="width: 200px" v-model="form.scheduleId" placeholder="请选择档期" clearable size="small" >
+              <el-option
+                      v-for="item in scheduleList"
+                      :key="item.id"
+                      :label="item.name"
+                      :value="item.id"
+                    />
+            </el-select>
+        </el-form-item>
+
+        <el-form-item label="总进线" prop="totalNum">  
+          <el-input v-model="form.totalNum"  onkeyup="value=(value.replace(/\D/g,'')==''?'':parseInt(value))" type="number" placeholder="请输入总进线" />  
+        </el-form-item>
+        <el-form-item label="注册数" prop="registerNum">
+          <el-input v-model="form.registerNum" onkeyup="value=(value.replace(/\D/g,'')==''?'':parseInt(value))" type="number" placeholder="请输入注册数" />  
+        </el-form-item>
+        <el-form-item label="上线数" prop="onlineNum">
+          <el-input v-model="form.onlineNum" onkeyup="value=(value.replace(/\D/g,'')==''?'':parseInt(value))" type="number" placeholder="请输入上线数" />
+        </el-form-item>
+        <el-form-item label="完课数" prop="finishNum">
+          <el-input v-model="form.finishNum"  onkeyup="value=(value.replace(/\D/g,'')==''?'':parseInt(value))" type="number" placeholder="请输入完课数" />
+        </el-form-item>
+
+         <el-row>
+              <el-col :span="8" v-if="form.registerRate!='0'">
+                    <el-form-item label-width="80px" label="注册率" prop="registerRate">
+                           {{form.registerRate*100+"%"}}
+                      <!-- <el-input v-model="form.registerRate" placeholder="请输入注册率" /> -->
+                    </el-form-item>
+              </el-col>
+               <el-col :span="8" v-if="form.onlineRate!='0'">
+                   <el-form-item label-width="80px" label="上线率" prop="onlineRate" style="margin-right:10px">
+                           {{form.onlineRate*100+"%"}}
+                    </el-form-item>
+              </el-col>  
+              <el-col :span="8" v-if="form.onlineRate!='0'">
+                    <el-form-item label-width="80px" label="完课率" prop="onlineRate">
+                         {{form.finishRate*100+"%"}}
+                    </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>
+  </div>
+</template>
+
+<script>
+import { treeselect } from "@/api/company/companyDept";
+import Treeselect from "@riophae/vue-treeselect";
+import "@riophae/vue-treeselect/dist/vue-treeselect.css";
+import { listTcmScheduleReport, getTcmScheduleReport, delTcmScheduleReport, addTcmScheduleReport, updateTcmScheduleReport, exportTcmScheduleReport,listSchedule } from "@/api/company/scheduleReport";
+
+export default {
+  name: "TcmScheduleReport",
+  components: { Treeselect },
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 中医档期业绩报表表格数据
+      tcmScheduleReportList: [],
+      scheduleList:[],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      dateRange: [],
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        scheduleId: null,
+        deptId:null,
+        userId: null,
+        companyId: null,
+        totalNum: null,
+        registerNum: null,
+        onlineNum: null,
+        finishNum: null,
+        registerRate: null,
+        onlineRate: null,
+        finishRate: null,
+        totalMoney: null,
+        
+      },
+      users:[],
+      // 部门树选项
+      deptOptions: [],
+      // 部门名称
+      deptName: undefined,
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: { 
+          scheduleId: [    
+            { required: true, message: "请选择档期", trigger: "blur" }
+          ],
+          totalNum: [    
+            { required: true, message: "总进线不能为空", trigger: "blur" }
+          ],
+          registerNum: [
+            { required:  true, message: "注册数不能为空", trigger: "blur" },
+            { required: true, validator: registerNumRule, trigger: "blur" },
+            // { pattern: /^[1-9]\d*$/, message: '只能输入整数'}
+          ],
+          onlineNum: [
+            { required: true, message: "上线数不能为空", trigger: "blur" },
+            { required: true, validator: onlineNumRule, trigger: "blur" }
+          ],
+          finishNum: [
+            { required: true, message: "完课数不能为空", trigger: "blur" },
+            { required: true, validator: finishNumRule, trigger: "blur" }
+          ],
+      }
+    };
+  },
+  watch:{
+    'form.registerNum':function(newVal,oldVal){
+        console.log('newVal->',newVal)
+        console.log('oldVal->',oldVal)
+        this.form.registerRate=0;
+        if(!!newVal && Number(newVal)<=this.form.totalNum){
+           this.form.registerRate=(newVal/this.form.totalNum*1.0).toFixed(2);
+        }
+    },
+    'form.onlineNum':function(newVal,oldVal){
+        console.log('newVal->',newVal)
+        console.log('oldVal->',oldVal)
+        if(!!newVal){
+           this.form.onlineRate=(newVal/this.form.registerNum*1.0).toFixed(2);
+        }
+        
+    },
+    'form.finishNum':function(newVal,oldVal){
+        console.log('newVal->',newVal)
+        console.log('oldVal->',oldVal)
+        if(!!newVal){
+           this.form.finishRate=(newVal/this.form.registerNum*1.0).toFixed(2); 
+        }
+        
+    }
+  },
+  created() {
+    this.getTreeselect();
+    this.getListSchedule();
+    this.getList();
+  },
+  methods: {
+
+    calcRegister(){
+        
+    },
+    calcOnline(){
+
+    },
+    calcFinish(){
+
+    },
+    getTreeselect() {
+        treeselect().then((response) => {
+           this.deptOptions = response.data;
+        });
+    },
+    getListSchedule() {
+        this.loading = true;
+        listSchedule().then(response => {
+            this.scheduleList = response.rows;
+        });
+    },
+    /** 查询中医档期业绩报表列表 */
+    getList() {
+      this.loading = true;
+      listTcmScheduleReport(this.addDateRange(this.queryParams,this.dateRange)).then(response => {
+          this.tcmScheduleReportList = response.rows;
+          this.total = response.total;
+          this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        scheduleId: null,
+        userId: null,
+        companyId: null,
+        totalNum: null,
+        registerNum: null,
+        onlineNum: null,
+        finishNum: null,
+        registerRate: null,
+        onlineRate: null,
+        finishRate: null,
+        totalMoney: null,
+        totalOrder: null,
+        targetMoney: null,
+        targetRate: null,
+        round1Money: null,
+        round1Order: null,
+        round1Rate: null,
+        round1Unit: null,
+        round2Money: null,
+        round2Order: null,
+        round2Rate: null,
+        round2Unit: null,
+        round3Money: null,
+        round3Order: null,
+        round3Rate: null,
+        round3Unit: null,
+        round4Money: null,
+        round4Order: null,
+        round4Rate: null,
+        round4Unit: null,
+        round5Money: null,
+        round5Order: null,
+        round5Rate: null,
+        round5Unit: null,
+        round6Money: null,
+        round6Order: null,
+        round6Rate: null,
+        round6Unit: null,
+        round7Money: null,
+        round7Order: null,
+        round7Rate: null,
+        round7Unit: null,
+        round8Money: null,
+        round8Order: null,
+        round8Rate: null,
+        round8Unit: null,
+        round9Money: null,
+        round9Order: null,
+        round9Rate: null,
+        round9Unit: null
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length!==1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加中医档期业绩报表";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getTcmScheduleReport(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改中医档期业绩报表";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updateTcmScheduleReport(this.form).then(response => {
+              if (response.code === 200) {
+                this.msgSuccess("修改成功");
+                this.open = false;
+                this.getList();
+              }
+            });
+          } else {
+            addTcmScheduleReport(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 delTcmScheduleReport(ids);
+        }).then(() => {
+          this.getList();
+          this.msgSuccess("删除成功");
+        }).catch(function() {});
+    },
+    handleDetails(row){
+        this.$router.push({path:'/schedule/report/add',query:{"scheduleId":row.scheduleId,"reportId":row.id}});
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      const queryParams = this.queryParams;
+      this.$confirm('是否确认导出所有中医档期业绩报表数据项?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          return exportTcmScheduleReport(queryParams);
+        }).then(response => {
+          this.download(response.msg);
+        }).catch(function() {});
+    }
+  }
+};
+</script>

+ 1 - 0
src/views/company/statistics/smsLogs.vue

@@ -206,6 +206,7 @@ export default {
               data={type:this.value,deptId:this.deptId}
           }
           smsLogs(data).then((response) => {
+           this.list=response.list;
            this.dates=response.dates;
            this.smsCount=response.smsCount;
            this.successCount=response.successCount;

+ 6 - 6
src/views/crm/components/assignCompany.vue

@@ -54,7 +54,7 @@
 
 
     </div>
-</template>>
+</template>
 
 
 <script>
@@ -78,14 +78,14 @@
                 },
                 // 表单校验
                 assignRules: {
-                    
+
                 },
                 companys:[],
-                 
+
             };
         },
         created() {
-          
+
         },
         methods: {
             init(customerIds){
@@ -102,7 +102,7 @@
                          row.count=0;
                          this.computeCount();
                     });
-                   
+
                 }
             },
             handleRemoveCompany(index){
@@ -210,7 +210,7 @@
     height: 100%;
     background-color: #fff;
     padding: 20px;
-        
+
 }
 .footer{
     display: flex;

+ 7 - 1
src/views/oms/orderInternal/add.vue

@@ -1,7 +1,13 @@
 <template>
   <div class="app-container">
       <el-form ref="form" :model="form" :rules="rules" label-width="80px" style="margin-bottom:40px">
-        <div class="bj-divider"><div class="left"><span class="default-text">三方订单基本信息</span><div class="button"></div><span class="tips"></span></div></div>
+        <div class="bj-divider">
+          <div class="left"> 
+                <span class="default-text">三方订单基本信息</span>
+                <div class="button"></div>
+                <span class="tips"></span>
+            </div>
+        </div>
         <el-row>
           <el-col :span="9">
               <el-form-item  label-width="100px" label="三方订单号" prop="outerOrderNo"  style="margin-right:20px">

+ 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>

+ 0 - 1
src/views/store/components/productAfterSalesOrder.vue

@@ -1,6 +1,5 @@
 <template>
   <div class="order-content">
-
       <div class="order-status" v-if="afterSales!=null" >
           <el-steps  :active="afterSales.status==4?afterSales.status+1:afterSales.status" align-center>
             <el-step title="待审核(24小时自动审核)"></el-step>

+ 5 - 4
src/views/store/components/productOrder.vue

@@ -315,11 +315,12 @@
                     />
             </el-select>
         </el-form-item>
-        <el-form-item label="状态" prop="status" v-if="order.status >=1">
+       <el-form-item label="状态" prop="status" v-if="order.status >=1">
            <el-select style="width:220px" v-model="editForm.status" placeholder="请选择状态" clearable size="small">
-              <el-option key="2"  label="待收货" value="2" />
-            </el-select>
-          </el-form-item>
+            <el-option key="1"  label="待发货" value="1" />
+             <el-option key="2"  label="待收货" value="2" />
+           </el-select>
+         </el-form-item>
         <el-form-item label="备注" prop="mark"  >
           <el-input v-model="editForm.mark" placeholder="请输入备注" />
         </el-form-item>

+ 105 - 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,46 @@
         <el-button @click="cancel">取 消</el-button>
       </div>
     </el-dialog>
+
+    <el-dialog :title="allot.title" :visible.sync="allot.open" width="1100px"   append-to-body>
+      <el-transfer
+        filterable
+        width="960px"
+        :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 +200,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 +241,9 @@ export default {
       this.open = false;
       this.reset();
     },
+    cancel1() {
+      this.allot.open = false;
+    },
     // 表单重置
     reset() {
       this.form = {
@@ -220,6 +281,10 @@ export default {
       this.open = true;
       this.title = "添加快递公司";
     },
+    handleAllot(row){
+      this.allot.open = true;
+      this.formId = row.omsCode;
+    },
     /** 修改按钮操作 */
     handleUpdate(row) {
       this.reset();
@@ -281,6 +346,42 @@ export default {
           this.download(response.msg);
         }).catch(function() {});
     }
-  }
+  },
+
 };
 </script>
+
+<style scoped lang="scss">
+.container {
+  display: flex;
+  justify-content: space-between;
+  margin-bottom: 20px;
+}
+.box {
+  width: 300px;
+}
+.el-scrollbar {
+  max-height: 300px;
+  overflow-y: auto; /* 添加滚动条 */
+}
+/* 新增样式 */
+.container {
+  display: flex;
+  justify-content: center;
+  align-items: flex-start;
+}
+.box {
+  margin: 0 10px;
+}
+
+/deep/.el-transfer-panel {
+    width:40%;
+}
+/deep/.el-transfer-panel__body{
+  height: 450px;
+}
+/deep/.el-transfer-panel__list.is-filterable {
+   height: 88%;
+}
+
+</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;

+ 11 - 0
src/views/store/storeOrder/index.vue

@@ -73,6 +73,17 @@
               />
         </el-select>
       </el-form-item>
+      <el-form-item label="支付方式" prop="payType">
+         <el-select   v-model="queryParams.payType" placeholder="请选择支付方式" clearable size="small" >
+         <el-option
+                v-for="item in payTypeOptions"
+                :key="item.dictValue"
+                :label="item.dictLabel"
+                :value="item.dictValue"
+              />
+        </el-select>
+      </el-form-item>
+
       <el-form-item label="物流状态" prop="deliveryStatus">
          <el-select   v-model="queryParams.deliveryStatus" placeholder="请选择物流状态" clearable size="small" >
          <el-option

+ 3 - 3
src/views/store/storeOrder/promotionList.vue

@@ -140,7 +140,7 @@
           icon="el-icon-download"
           size="mini"
             @click="handleExport"
-          v-hasPermi="['store:storeOrder:export']"
+          v-hasPermi="['store:promotionOrder:export']"
         >导出订单</el-button>
       </el-col>
         <el-col :span="1.5">
@@ -414,7 +414,7 @@
 </template>
 
 <script>
-import { importTemplate,exportStoreOrderItems,createUserOrder,listPromotionOrder, getStoreOrder, delStoreOrder, addStoreOrder, updateStoreOrder, exportStoreOrder } from "@/api/store/storeOrder";
+import { importTemplate,exportStoreOrderItems,createUserOrder,listPromotionOrder, getStoreOrder, delStoreOrder, addStoreOrder, updateStoreOrder, exportPromotionOrder } from "@/api/store/storeOrder";
 import { getUserList } from "@/api/store/user";
 import { getAddressList } from "@/api/store/userAddress";
 import productOrder from "../components/productOrder";
@@ -854,7 +854,7 @@ export default {
           cancelButtonText: "取消",
           type: "warning"
         }).then(function() {
-          return exportStoreOrder(queryParams);
+          return exportPromotionOrder(queryParams);
         }).then(response => {
           this.download(response.msg);
         }).catch(function() {});

+ 16 - 13
src/views/store/storeProduct/index.vue

@@ -1,7 +1,7 @@
 <template>
   <div class="app-container">
     <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
- 
+
       <el-form-item label="商品分类" prop="cateId">
          <treeselect  v-model="queryParams.cateId"  style="width:205.4px" :options="categoryOptions" :normalizer="normalizer" placeholder="请选择分类" />
       </el-form-item>
@@ -93,7 +93,7 @@
           v-hasPermi="['store:storePayment:export']"
         >导出</el-button>
       </el-col>
-      
+
 	    <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
     </el-row>
 
@@ -159,7 +159,7 @@
         </template>
       </el-table-column>
     </el-table>
-    
+
     <pagination
       v-show="total>0"
       :total="total"
@@ -195,7 +195,7 @@
               <el-input v-model="form.unitName" placeholder="请输入单位名" />
             </el-form-item>
           </el-col>
-          
+
         </el-row>
         <el-row>
           <el-col :span="24">
@@ -274,6 +274,7 @@
               <!-- 多规格表格-->
               <el-col :span="24">
                 <el-form-item label="商品属性:" class="labeltop">
+                  
                   <el-table :data="manyFormValidate" size="small" style="width: 90%;">
                     <el-table-column type="myindex" v-for="(item,index) in form.header" :key="index"  :width="item.minWidth" :label="item.title" :property="item.slot" align="center">
                       <template slot-scope="scope">
@@ -292,10 +293,12 @@
                       </template>
                     </el-table-column>
                   </el-table>
+
                 </el-form-item>
               </el-col>
             </el-col>
           </el-col>
+          
           <!-- 单规格表格-->
           <el-col :xl="23" :lg="24" :md="24" :sm="24" :xs="24" v-if="form.specType === 0">
             <el-form-item >
@@ -310,7 +313,7 @@
                     <el-input type="text" v-model="scope.row.price"/>
                   </template>
                 </el-table-column>
-                <el-table-column prop="price" label="代理价" align="center">
+                <el-table-column prop="agentPrice" label="代理价" align="center">
                   <template slot-scope="scope">
                     <el-input type="text" v-model="scope.row.agentPrice"/>
                   </template>
@@ -440,7 +443,7 @@
             </el-form-item>
           </el-col>
           <el-col :span="8">
-            
+
             <el-form-item label="排序" prop="sort">
                <el-input-number :min="0"  v-model="form.sort" placeholder="请输入排序" />
             </el-form-item>
@@ -450,7 +453,7 @@
                <el-input-number :min="0"  v-model="form.sales" placeholder="请输入销量" />
             </el-form-item>
           </el-col>
-      
+
         </el-row>
         <el-form-item label="推广分类" prop="tuiCateId">
           <el-select style="width: 240px" v-model="form.tuiCateId" placeholder="请选择推广分类" clearable size="small" >
@@ -589,7 +592,7 @@ export default {
         productType: null,
         isShow: "1",
         barCode:null,
-       
+
       },
       // 表单参数
       form: {},
@@ -632,7 +635,7 @@ export default {
           { required: true, message: "处方药不能为空", trigger: "blur" }
         ],
 
-        
+
       }
     };
   },
@@ -703,7 +706,7 @@ export default {
             //   }
             // });
         }
-        
+
       }).catch(res => {
       })
     },
@@ -772,7 +775,7 @@ export default {
       that.ruleList.forEach(function (item, index) {
         if (item.ruleName === that.form.selectRule) {
           that.attrs =JSON.parse( item.ruleValue);
-          
+
         }
       });
 
@@ -901,13 +904,13 @@ export default {
     /** 新增按钮操作 */
     handleAdd() {
       this.reset();
-     
+
       this.open = true;
       this.title = "添加商品";
       setTimeout(() => {
         this.$refs.myeditor.setText("");
       }, 500);
-     
+
     },
     /** 修改按钮操作 */
     handleUpdate(row) {

+ 2 - 3
src/views/store/storeProductPackage/index.vue

@@ -171,7 +171,6 @@
         </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">
@@ -202,8 +201,8 @@
         </el-form-item>
 
         <el-form-item label="套餐商品" prop="productList"  >
-              <el-row  >
-                <el-col >
+              <el-row>
+                <el-col>
                       <el-button plain  type="primary" icon="el-icon-plus" @click="handleAddProduct">添加商品</el-button>
                 </el-col>
               </el-row>