Kaynağa Gözat

客户管理页面

@dongkboy 1 yıl önce
ebeveyn
işleme
29fe29418d

+ 7 - 3
src/views/customerManage/customer.vue

@@ -41,7 +41,11 @@ export default {
         gourpName: '',
         weTags: [],
       },
-      list: [], // 客户列表
+      list: [
+        {
+          customerName:"321231"
+        }
+      ], // 客户列表
       staffList: [], // 所有员工列表
       dialogVisible: false, // 选择标签弹窗显隐
       dialogVisibleSelectUser: false, // 选择添加人弹窗显隐
@@ -209,7 +213,7 @@ export default {
               })
             }
           })
-          this.list = rows
+          // this.list = rows
           this.total = +total
           this.lastSyncTime = lastSyncTime
           this.noRepeatCustomerTotal = +noRepeatCustomerTotal
@@ -537,7 +541,7 @@ export default {
           <el-button type="info" @click="exportCustomerFn">
             导出列表
           </el-button>
-          
+
         </div>
       </div>
 

+ 61 - 0
src/views/customerManage/userSync/detail.vue

@@ -0,0 +1,61 @@
+<!-- 模板区域 -->
+<template>
+  <div>
+    <!-- 模板内容 -->
+    <div class="g-card  ">
+      <span class="g-card-title">用户详情</span>
+      <!-- 表单 -->
+      <!-- 模板内容 -->
+      <el-form ref="queryForm"  :model="queryForm" label-width="100px" >
+        <el-form-item label="用户ID" prop="name">
+          <el-input v-model="queryForm.name" placeholder="用户ID"></el-input>
+        </el-form-item>
+        <el-form-item label="用户姓名" prop="name">
+          <el-input v-model="queryForm.name" placeholder="请输入用户姓名"></el-input>
+        </el-form-item>
+        <el-form-item label="性别" prop="name">
+          <el-input v-model="queryForm.name" placeholder="请输入性别"></el-input>
+        </el-form-item>
+        <el-form-item label="生日" prop="name">
+          <el-input v-model="queryForm.name" placeholder="请输入生日"></el-input>
+        </el-form-item>
+        <el-form-item label="手机号" prop="name">
+          <el-input v-model="queryForm.name" placeholder="请输入手机号"></el-input>
+        </el-form-item>
+        <el-form-item label="用户状态" prop="name">
+          <el-input v-model="queryForm.name" placeholder="用户状态"></el-input>
+        </el-form-item>
+        <el-form-item label="用户类型" prop="name">
+          <el-input v-model="queryForm.name" placeholder="用户类型"></el-input>
+        </el-form-item>
+        <el-form-item label="注册时间" prop="name">
+          <el-input v-model="queryForm.name" placeholder="注册时间"></el-input>
+        </el-form-item>
+      </el-form>
+    </div>
+  </div>
+</template>
+
+<!-- 行为区域 -->
+<script>
+export default {
+  // 数据存放区域
+  data() {
+    return {
+      queryForm:{},
+
+    }
+  },
+  // 生命周期函数
+  created() {
+  },
+  // 方法函数
+  methods: {
+  },
+  // 计算属性
+  computed: {
+  }
+}
+</script>
+<!-- 样式区域 -->
+<style lang='scss' scoped></style>

+ 160 - 0
src/views/customerManage/userSync/list.vue

@@ -0,0 +1,160 @@
+<!-- 模板区域 -->
+<template>
+  <div>
+    <!-- 模板内容 -->
+    <el-form ref="queryForm" :inline="true" :model="query" label-width="100px" class="top-search">
+      <el-form-item label="用户ID" prop="name">
+        <el-input v-model="query.name" placeholder="请输入"></el-input>
+      </el-form-item>
+      <el-form-item label="用户姓名" prop="name">
+        <el-input v-model="query.name" placeholder="请输入"></el-input>
+      </el-form-item>
+      <el-form-item label="手机号" prop="name">
+        <el-input v-model="query.name" placeholder="请输入"></el-input>
+      </el-form-item>
+      <el-form-item label="用户来源" prop="name">
+        <el-input v-model="query.name" placeholder="请输入"></el-input>
+      </el-form-item>
+      <el-form-item label="用户状态" prop="name">
+        <el-input v-model="query.name" placeholder="请输入"></el-input>
+      </el-form-item>
+      <el-form-item label="企微触达状态" prop="name">
+        <el-input v-model="query.name" placeholder="请输入"></el-input>
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" @click="getList(1)">查询</el-button>
+        <el-button @click="resetForm()">重置</el-button>
+        <!-- <el-button
+          v-hasPermi="['customerManage:customer:export']"
+          type="info"
+          @click="exportCustomer"
+          >导出列表</el-button
+        > -->
+      </el-form-item>
+    </el-form>
+    <div class="g-card  ">
+      <div class="mid-action">
+        <div style="margin-left: auto;">
+          <span class="desc">最近同步:321313131231</span>
+          <el-button class="ml10" type="primary" @click="syncUser">
+            同步用户
+          </el-button>
+        </div>
+      </div>
+      <templateTable ref="commonTable" :operationWidth="200" :showOperation="true" :showBatchDelete="false"
+        :data="Result" :columns="Columns" @findPage="findPage">
+        <template slot="buttonSlot" slot-scope="{ row }">
+          <el-button type="text" @click="viewDetails(row)">查看</el-button>
+          <el-button type="text" @click="transferUser">转出</el-button>
+        </template>
+      </templateTable>
+    </div>
+    <el-dialog title="选择员工" :visible.sync="transferUserShow" width="40%">
+      <div>
+        <el-form ref="form" :rules="rules" :model="form" label-position="left" label-width="120px">
+          <el-form-item label="选择员工" prop="labelName">
+            <el-select v-model="form.labelName" placeholder="请选择,支持关键词搜索" clearable filterable>
+              <el-option label="321" value="3"></el-option>
+              <el-option label="321" value="3"></el-option>
+              <el-option label="321" value="3"></el-option>
+            </el-select>
+          </el-form-item>
+
+        </el-form>
+      </div>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="transferUserShow = false">取 消</el-button>
+        <el-button type="primary" @click="userOperation">确 定</el-button>
+      </span>
+    </el-dialog>
+  </div>
+</template>
+
+<!-- 行为区域 -->
+<script>
+import templateTable from "@/components/templateTable.vue";
+import { Row } from "element-ui";
+export default {
+  components: {
+    templateTable
+  },
+  // 数据存放区域
+  data() {
+    return {
+      transferUserShow: false,//转出弹窗
+      query: {},//页面检索对象
+      form: {},//提交表单
+      rules: {
+        labelName: [
+          {
+            required: true,
+            message: '请选择员工',
+            trigger: 'chnage',
+          },
+        ],
+
+      },
+      Result: {
+        content: [
+          {
+            name: "3232"
+          }
+        ],
+        totalSize: 100,
+      },
+      Columns: [
+        { prop: "name", label: "用户ID", minWidth: 180, },
+        { prop: "mobile", label: "用户姓名", minWidth: 160 },
+        { prop: "userId", label: "性别", minWidth: 120 },
+        { prop: "deptName", label: "生日", minWidth: 160 },
+        { prop: "type", label: "手机号", minWidth: 160, formatter: this.typeFormatter },
+        { prop: "originalLevel", label: "用户来源", minWidth: 160, formatter: this.originalLevelFormatter },
+        { prop: "originalLevel1", label: "用户状态", minWidth: 160, },
+        { prop: "originalLevel2", label: "用户类型", minWidth: 160, },
+        { prop: "originalLevel3", label: "注册时间", minWidth: 160, },
+        { prop: "originalLevel4", label: "企微触达状态", minWidth: 160, },
+        { prop: "originalLevel5", label: "添加时间", minWidth: 160, },
+        { prop: "originalLevel6", label: "最近互动时间", minWidth: 160, },
+
+      ],
+    }
+  },
+  // 生命周期函数
+  created() {
+  },
+  // 方法函数
+  methods: {
+    // 查看详情
+    viewDetails() {
+      this.$router.push({
+        path: 'userSyncDetail',
+        query: {name:"232" },
+      })
+    },
+    // 操作用户
+    userOperation() {
+      this.$refs['form'].validate((valid) => {
+        if (valid) {
+          console.log(valid)
+        }
+      })
+    },
+    // 用户转出弹窗
+    transferUser() {
+      this.transferUserShow = true;
+    },   //列表查询
+    findPage() {
+      console.log(1)
+    },
+    // 同步用户
+    syncUser() {
+
+    },
+  },
+  // 计算属性
+  computed: {
+  }
+}
+</script>
+<!-- 样式区域 -->
+<style lang='scss' scoped></style>

+ 63 - 0
src/views/customerManage/wechatCustomer/detail.vue

@@ -0,0 +1,63 @@
+<!-- 模板区域 -->
+<template>
+  <div>
+    <!-- 模板内容 -->
+    <div class="g-card  ">
+      <span class="g-card-title">用户详情</span>
+      <!-- 表单 -->
+      <!-- 模板内容 -->
+      <el-form ref="detailForm"  :model="detailForm" label-position="left" label-width="80px" >
+        <el-form-item label="openid" prop="name">
+          <el-input v-model="detailForm.name" placeholder="用户openid"></el-input>
+        </el-form-item>
+        <el-form-item label="用户ID" prop="name">
+          <el-input v-model="detailForm.name" placeholder="请输入用户ID"></el-input>
+        </el-form-item>
+        <el-form-item label="微信昵称" prop="name">
+          <el-input v-model="detailForm.name" placeholder="请输入微信昵称"></el-input>
+        </el-form-item>
+        <el-form-item label="手机号" prop="name">
+          <el-input v-model="detailForm.name" placeholder="请输入手机号"></el-input>
+        </el-form-item>
+        <el-form-item label="头像" prop="name">
+            <div class="avatar"></div>
+        </el-form-item>
+        <el-form-item label="绑定时间" prop="name">
+          <el-input v-model="detailForm.name" placeholder="绑定时间"></el-input>
+        </el-form-item>
+      </el-form>
+    </div>
+  </div>
+</template>
+
+<!-- 行为区域 -->
+<script>
+export default {
+  // 数据存放区域
+  data() {
+    return {
+      detailForm:{},
+
+    }
+  },
+  // 生命周期函数
+  created() {
+  },
+  // 方法函数
+  methods: {
+  },
+  // 计算属性
+  computed: {
+  }
+}
+</script>
+<!-- 样式区域 -->
+<style lang='scss' scoped>
+.avatar{
+  width: 100px;
+  height: 100px;
+  border-radius: 50%;
+  border: 1px solid #DCDFE6;
+  margin-left: 10px;
+}
+</style>

+ 177 - 0
src/views/customerManage/wechatCustomer/list.vue

@@ -0,0 +1,177 @@
+<!-- 模板区域 -->
+<template>
+  <div>
+    <!-- 模板内容 -->
+    <el-form ref="queryForm" :inline="true" :model="queryform" label-width="80px" class="top-search">
+      <el-form-item label="openid" prop="name">
+        <el-input v-model="queryform.name" placeholder="请输入"></el-input>
+      </el-form-item>
+      <el-form-item label="用户ID" prop="name">
+        <el-input v-model="queryform.name" placeholder="请输入"></el-input>
+      </el-form-item>
+      <el-form-item label="微信昵称" prop="name">
+        <el-input v-model="queryform.name" placeholder="请输入"></el-input>
+      </el-form-item>
+      <el-form-item label="状态" prop="name">
+        <el-select v-model="queryform.labelName" placeholder="请选择,支持关键词搜索" clearable filterable>
+          <el-option label="全部" value="1"></el-option>
+          <el-option label="已绑定" value="2"></el-option>
+          <el-option label="未绑定" value="3"></el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" @click="getList(1)">查询</el-button>
+        <el-button @click="resetForm()">重置</el-button>
+        <!-- <el-button
+          v-hasPermi="['customerManage:customer:export']"
+          type="info"
+          @click="exportCustomer"
+          >导出列表</el-button
+        > -->
+      </el-form-item>
+    </el-form>
+    <div class="g-card  ">
+      <div class="mid-action">
+        <div style="margin-left: auto;">
+          <span class="desc">最近同步:321313131231</span>
+          <el-button class="ml10" type="primary" @click="syncUser">
+            同步用户
+          </el-button>
+        </div>
+      </div>
+      <templateTable ref="commonTable" :operationWidth="200" :showOperation="true" :showBatchDelete="false"
+        :data="Result" :columns="Columns" @findPage="findPage">
+        <template slot="buttonSlot" slot-scope="{ row }">
+          <el-button type="text" @click="viewDetails(row)">查看</el-button>
+          <el-button type="text" @click="userBinding(row)">{{ row.status ? "解绑" : "绑定" }}</el-button>
+        </template>
+      </templateTable>
+    </div>
+    <el-dialog title="选择用户" :visible.sync="userBindingShow" width="40%">
+      <div>
+        <el-form ref="form" :rules="rules" :model="form" label-position="left" label-width="120px">
+          <el-form-item label="选择用户" prop="labelName">
+            <el-select v-model="form.labelName" placeholder="请选择,支持关键词搜索" clearable filterable>
+              <el-option label="321" value="3"></el-option>
+              <el-option label="321" value="3"></el-option>
+              <el-option label="321" value="3"></el-option>
+            </el-select>
+          </el-form-item>
+
+        </el-form>
+      </div>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="userBindingShow = false">取 消</el-button>
+        <el-button type="primary" @click="userOperation">确 定</el-button>
+      </span>
+    </el-dialog>
+  </div>
+</template>
+
+<!-- 行为区域 -->
+<script>
+import templateTable from "@/components/templateTable.vue";
+export default {
+  components: {
+    templateTable
+  },
+  // 数据存放区域
+  data() {
+    return {
+      userBindingShow: false,//转出弹窗
+      queryform: {},//页面检索对象
+      form: {},//提交表单
+      rules: {
+        labelName: [
+          {
+            required: true,
+            message: '请选择员工',
+            trigger: 'chnage',
+          },
+        ],
+
+      },
+      Result: {
+        content: [
+          {
+            name: "3232",
+            status: true
+          },
+          {
+            name: "3232",
+            status: false
+          }
+        ],
+        totalSize: 100,
+      },
+      Columns: [
+        { prop: "name", label: "openid", minWidth: 180, },
+        { prop: "name", label: "用户ID", minWidth: 180, },
+        { prop: "mobile", label: "微信昵称", minWidth: 160 },
+        { prop: "userId", label: "手机号码", minWidth: 120 },
+        { prop: "deptName", label: "头像URL", minWidth: 160 },
+        { prop: "type", label: "绑定时间", minWidth: 160, formatter: this.typeFormatter },
+        { prop: "originalLevel", label: "状态", minWidth: 160, formatter: this.originalLevelFormatter },
+        { prop: "originalLevel1", label: "最后同步时间", minWidth: 160, },
+
+      ],
+    }
+  },
+  // 生命周期函数
+  created() {
+  },
+  // 方法函数
+  methods: {
+    // 查看详情
+    viewDetails() {
+      this.$router.push({
+        path: 'wechatCustomerDetail',
+        query: { name: "232" },
+      })
+    },
+    // 操作用户
+    userOperation() {
+      this.$refs['form'].validate((valid) => {
+        if (valid) {
+          console.log(valid)
+        }
+      })
+    },
+    /**
+     * 绑定方法
+     * @param row status 状态 true 已绑定 false 未绑定
+     */
+    userBinding(row) {
+      if (row.status) {
+        this.$confirm('您正在执行解绑操作。解绑后,该 openid 与客户 ID的关联关系将被清除,若需重新绑定需手动操作。</br>请再次确认是否解绑?', '提示', {
+          confirmButtonText: '确定',
+          cancelButtonText: '取消',
+          dangerouslyUseHTMLString: true,
+        }).then(() => {
+          this.$message({
+            type: 'success',
+            message: '删除成功!'
+          });
+        }).catch(() => {
+
+        });
+      } else {
+        this.userBindingShow = true;
+
+      }
+    },   //列表查询
+    findPage() {
+      console.log(1)
+    },
+    // 同步用户
+    syncUser() {
+
+    },
+  },
+  // 计算属性
+  computed: {
+  }
+}
+</script>
+<!-- 样式区域 -->
+<style lang='scss' scoped></style>